- driveToCompletion() now catches inner waitForAgentAttention timeouts instead of letting them propagate — long-running execute/detail agents (>3 min without transitioning to waiting_for_input) no longer crash the polling loop; the outer deadline handles termination correctly - Switch execute stage from waitForAgentCompletion to driveToCompletion so any clarifying questions get auto-answered - Increase DETAIL_TIMEOUT_MS 8→15 min, PLAN_TIMEOUT_MS 8→12 min, EXECUTE_TIMEOUT_MS 10→20 min — architect agents are variable in practice; these are upper bounds not expectations - Raise FULL_FLOW_TIMEOUT 30→60 min to cover worst-case stacking - Update CLAUDE.md test command with correct --test-timeout=3600000 Verified: full pipeline (discuss→plan→detail→execute) passes in ~499s
3.4 KiB
Codewalk District
Multi-agent workspace for orchestrating multiple AI coding agents working in parallel on a shared codebase.
Architecture: docs/architecture.md — system diagram, module map, entity relationships, tech stack.
Quick Reference
| Module | Docs | Path |
|---|---|---|
| Agent (lifecycle, providers, accounts) | docs/agent.md | src/agent/ |
| Database (schema, repositories) | docs/database.md | src/db/ |
| Server & API (tRPC procedures) | docs/server-api.md | src/server/, src/trpc/, src/coordination/ |
| Frontend (React UI) | docs/frontend.md | packages/web/ |
| CLI & Config | docs/cli-config.md | src/cli/, src/config/ |
| Dispatch & Events | docs/dispatch-events.md | src/dispatch/, src/events/ |
| Git, Process, Logging | docs/git-process-logging.md | src/git/, src/process/, src/logger/, src/logging/ |
| Preview (Docker deployments) | docs/preview.md | src/preview/ |
| Testing | docs/testing.md | src/test/ |
| Database Migrations | docs/database-migrations.md | drizzle/ |
| Logging Guide | docs/logging.md | src/logger/ |
Pre-implementation design docs are archived in docs/archive/.
Key Rules
- Database: Never use raw SQL for schema initialization. Use
drizzle-kit generateand the migration system. See docs/database-migrations.md. - Logging: Use
createModuleLogger()fromsrc/logger/index.ts. Keepconsole.logfor CLI user-facing output only. - Hexagonal architecture: Repository ports in
src/db/repositories/*.ts, Drizzle adapters insrc/db/repositories/drizzle/*.ts. All re-exported fromsrc/db/index.ts. - tRPC context: Optional repos accessed via
require*Repository()helpers insrc/trpc/routers/_helpers.ts.
UI Patterns
- Shift+click to skip confirmation: Destructive actions (delete task, etc.) show a
window.confirm()dialog on click. Holding Shift bypasses the dialog and executes immediately. Apply this pattern to all new destructive buttons.
Build
npm run build && npm link
Run after any change to server-side code (src/**).
Testing
npm test # Unit + E2E tests (no API cost)
CW_CASSETTE_RECORD=1 npm test -- <test-file> # Record new cassettes locally
REAL_CLAUDE_TESTS=1 npm test -- src/test/integration/real-providers/ --test-timeout=300000 # Real provider tests (~$0.50)
FULL_FLOW_TESTS=1 npm test -- src/test/integration/full-flow/ --test-timeout=3600000 # Full end-to-end test (~$2-5)
See docs/testing.md for details, including the cassette system for pipeline integration tests that run without API costs.
Documentation Maintenance
After every code change, update the relevant docs/ file. Documentation must stay in sync with implementation. When adding a new module, table, tRPC procedure, component, or CLI command, update the corresponding doc. When refactoring, update affected docs and remove stale information.
Committing
After completing & verifying changes always commit the changes.