- Add 8 tests for timmy_serve/cli.py (start, invoice, status commands)
covering default args, custom args, and output validation
- Add 8 tests for voice_enhanced route covering all intent types
(status, help, swarm, voice, chat fallback) plus error handling
- Add 17 tests for websocket/handler.py covering broadcast to
multiple clients, dead connection cleanup, history trimming,
connect/disconnect, and all convenience broadcast methods
- Add 4 tests for the new GET /swarm/live page route
Total new tests: 37
- Add spawn_in_process_agent() to SwarmCoordinator: creates lightweight
SwarmNode instances that share the coordinator's comms layer and
AuctionManager, enabling synchronous bid submission
- Fix post_task() to open the auction BEFORE announcing via comms so
in-process agent callbacks can submit bids into an open auction
- Fix run_auction_and_assign() to close an already-open auction instead
of re-opening (which would discard bids)
- Add POST /swarm/tasks/auction route for atomic task+auction flow
- Add 7 integration tests (TDD) covering the full lifecycle:
spawn → post → auction → assign → complete
- Add QUALITY_ANALYSIS.md — 10-point architect review covering
architecture coherence, completeness (~35-40% vs vision), mobile UX,
security, test coverage, code quality, and DX
- Fix P0 XSS: mobile.html chat input now uses DOM textContent instead
of innerHTML string interpolation with raw user input
- Fix P0 XSS: swarm_live.html agent/auction rendering rewritten with
safe DOM methods (_t/_el helpers) — no more ${agent.name} in innerHTML
- Add M7xx test category (4 new tests) covering XSS prevention assertions;
total suite now 232 passing (was 228)
- HITL session guide included in analysis with step-by-step phone test
instructions and critical scenario priority ordering
https://claude.ai/code/session_0183Nzcy7TMqjrAopnTtygds
Adds `src/self_tdd/watchdog.py` with a `_run_tests()` function that
shells out to pytest and a `watch` command that polls on a configurable
interval, printing green on recovery and full short-traceback output on
regression. No files are modified and no commits are made automatically.
Usage:
self-tdd watch # default 60s interval
self-tdd watch -i 15 # poll every 15s
Also adds 6 unit tests and wires the `self-tdd` entry point +
`src/self_tdd` wheel include into pyproject.toml.
https://claude.ai/code/session_01DMjQ5qMZ8iHeyix1j3GS7c
TIMMY_STATUS_PROMPT was defined in timmy/prompts.py and covered by
tests, but never wired into the application. The CLI status command
was passing a hardcoded inline string instead. Replace the inline
string with the canonical prompt and add two CLI tests that verify
the correct prompt is used.
https://claude.ai/code/session_01DMjQ5qMZ8iHeyix1j3GS7c
- Add dashboard/store.py: MessageLog dataclass singleton tracking
user/agent/error messages for the lifetime of the server process
- agents.py: write each chat turn to MessageLog; add GET and DELETE
/agents/timmy/history routes returning the history.html partial
- partials/history.html: render stored messages by role (YOU / TIMMY /
SYSTEM); falls back to the Mission Control init message when empty
- index.html: chat-log loads history via hx-get on page start; new
CLEAR button in panel header sends hx-delete to reset the log
- style.css: add .mc-btn-clear (muted, red-on-hover for the header)
- tests: autouse reset_message_log fixture in conftest; 5 new history
tests covering empty state, recording, offline errors, clear, and
post-clear state → 32 tests total, all passing
https://claude.ai/code/session_01KZMfwBpLuiv6x9GbzTqbys