Steps Completed: 1-13 of 13 ✅ Tests: 557 collected (3 pre-existing failures: 2 Docker, 1 UAT) Post-v1 enhancements: shipped — see Recent Changes below
- New
arch/web_dashboard.py— single-page HTML/CSS/JS dashboard served from MCP server at/dashboard DashboardEventBroadcasterpushes real-time updates via SSE to browser clients- New API endpoints:
/api/dashboard/state,/api/dashboard/events,/api/dashboard/messages,/api/dashboard/events-log,/api/dashboard/send - MCP server tool handlers broadcast state changes (agents, messages, escalations, costs, events)
archie dashboardnow opens browser instead of Textual TUI- Textual dashboard (
arch/dashboard.py) deprecated but retained for backward compatibility - 51 new tests in
tests/test_web_dashboard.py - Screenshots:
docs/dashboard-web.png,docs/dashboard-costs.png,docs/dashboard-escalation.png,docs/dashboard-messages-web.png,docs/dashboard-events.png
- Added
yarn,pnpm,bun,deno,cargo,go,make,docker,curl,wget,kill,lsof, and many more toDEFAULT_ALLOWED_TOOLS_ALL - Agents can now launch dev servers, run build tools, test APIs, and manage background processes
README.mdupdated with dashboard screenshots (main view, help, messages, events)docs/arch-architecture.excalidraw— full system architecture diagramCOMPACTION-DESIGN.md— context compaction strategy designed (not yet implemented)KNOWN-ISSUES.md— updated with agent context persistence issues and completed v2 enhancements
on_outputcallback wired in orchestrator — logs agent text (truncated 200 chars) and tool callsarchie upterminal now shows what agents are thinking and doing
- Dashboard escalation panel renders clickable
Buttonwidgets when options provided - Permission requests show "Yes (once)" / "Always" / "No" buttons
- Free-text input remains below buttons for custom answers
- Root cause fix:
optionswas set AFTERquestionin_refresh_data(), sowatch_questionran beforeself.optionswas populated. Fixed by settingoptionsbeforequestion.
- Worker agents now get saved context (
save_progress) injected into CLAUDE.md on restart - Previously only Archie had this — workers lost context on crash/restart
close_projectescalates to user before shutting down: "Is everything done?"- Only explicit "Yes" confirms shutdown
- Any other response (including custom feedback) forwarded to Archie as actionable instructions
- BRIEF.md only updated to COMPLETE after user confirms (not before)
- Bug fixed: Operator precedence caused custom feedback to fall through to shutdown
update_brief(section: "done_when", content: "substring")checks off matching checklist items- Archie persona updated with explicit instructions to check off items after each merge
- Agents can now run
python,node,npm,npx,pip,cat,ls,find, etc. - Previously only
Bash(git *)was allowed — agents escalated test execution to user
mcp__arch__list_personasandmcp__arch__plan_teamwere missing fromDEFAULT_ALLOWED_TOOLS_ARCHIE- Archie's calls hit the permission system, which has a different schema (
reasonrequired), causing validation errors
- Costs panel hidden by default — toggle with
ckey - Activity log messages no longer truncated (was 47 chars!)
- Default Archie model updated to
claude-opus-4-6
- Auto-merge on teardown hardcodes
"main"— should use current branch - Latent bug, not yet fixed (doesn't affect most runs)
- Team planning worked: Archie proposed frontend + qa (skipped backend) ✓
- Escalation buttons rendered correctly ✓
- Agents built landing page and tests ✓
- Discovered bugs: plan_team permission error (fixed), close_project custom feedback (fixed), BRIEF.md not updated (fixed), agents couldn't run python tests (fixed)
- UAT #8 script written but not yet run
Terminal 1: archie up → Orchestrator → MCP Server (port 3999)
Browser: localhost:3999/dashboard → Web dashboard (SSE real-time updates)
Archie calls plan_team via MCP
→ User approves team in dashboard
→ Roles added to runtime agent_pool
Archie calls spawn_agent for each role
→ WorktreeManager.create()
→ SessionManager.spawn()
→ StateStore.register_agent()
Agent works, calls report_completion
Archie calls request_merge (or teardown auto-merges)
Archie calls close_project → user confirms → BRIEF.md updated → shutdown
- All agents: send_message, get_messages, update_status, report_completion, save_progress
- Archie only: spawn_agent, teardown_agent, list_agents, escalate_to_user, request_merge, get_project_context, close_project, update_brief, list_personas, plan_team
- GitHub (Archie): gh_create_issue, gh_list_issues, gh_close_issue, gh_update_issue, gh_add_comment, gh_create_milestone, gh_list_milestones
state/agents.json— agent registrystate/messages.json— message busstate/pending_decisions.json— escalationsstate/usage.json— per-agent token counts and costsstate/events.jsonl— MCP tool call history (append-only)
source .venv/bin/activate
GIT_CONFIG_GLOBAL=/dev/null python -m pytest tests/ -v- Context compaction — full design in
COMPACTION-DESIGN.md, 6 fixes outlined (monitoring, compact-and-restart cycle, dashboard indicators) - Token budget enforcement —
token_budget_usdis parsed and displayed but never enforced at runtime - UAT #8 — script written (
tests/uat8.sh) but not yet run
atexithandler prints "Emergency cleanup" 8 times during test suite_permission_gateuses blockinginput()on async event looprun()loop polls withasyncio.sleep(1)instead of using an Event- Auto-merge on teardown hardcodes
"main"branch _seen_message_idsin dashboard grows unbounded