v2.1.0 — Ishtar Gate
v2.1.0 — Ishtar Gate
Named after the magnificent blue-glazed entrance to ancient Babylon — a grand gateway, fitting for a release that rebuilds the foundations.
662 commits | 41 feature specs | 78 bugfixes
New Protocols
- AIR (Autonomous Implement & Review) — Lightweight two-phase protocol for small features (<300 LOC). No spec/plan artifacts; review goes in the PR body only. (#494)
- ASPIR (Autonomous SPIR) — SPIR without human approval gates on spec and plan. Builder runs autonomously through all phases; human approval at PR gate only. (#438)
- EXPERIMENT/Spike — Disciplined experimentation protocol with protocol.json, templates, and documentation. (#462)
Workspace Overview & Dashboard
- Unified Work view replacing the old Dashboard — single view with Builders, Needs Attention, and project status (#126)
- Analytics tab with GitHub metrics, builder stats, consultation costs, and Recharts visualizations (#456)
- Open Files & Shells section showing active shells (running/idle status) and open annotation files (#467)
- Collapse/expand buttons in architect toolbar for split pane panels, desktop only (#495, #513)
- Emoji tab icons replacing static unicode symbols (#507)
- TipBanner component with contextual tips in the Work view (#350)
- Tower version displayed in dashboard header (#425)
- Project name branding replacing "Agent Farm" in dashboard chrome (#425)
- Clickable artifact links in Recently Closed items (#465)
- Spike label support in Work view (#463)
- Work tab font sizes increased 1.2x for readability (#466)
- Scrollbar for Work view content (#477)
- Builder elapsed time showing both wall clock and agent time (#405)
- Tower hostname from registered name instead of OS hostname (#470)
- GitHub integration layer for overview data (#126)
- Overview API with GET /api/overview and POST /api/overview/refresh (#126)
Terminal Architecture
- WebSocket auto-reconnect with session resumption and exponential backoff (#442)
- Connection status icon in toolbar (replacing inline reconnecting text) (#451, #493)
- WebSocket ping/pong heartbeat for dead connection detection (#109)
- Terminal controls component — Reload, End, scroll buttons (#364)
- Preserve scroll position during terminal fit/resize (#423)
- Architect terminal auto-restart on crash with loop guard (#418)
- Persistent terminal CWD in SQLite for annotator path resolution (#506)
- Backpressure handling to prevent terminal unresponsiveness (#313)
- Multi-client shellper — protocol extension for simultaneous tower + terminal connections (#118)
- Shellper debug logging — stderr lifecycle logging, Tower-side SessionManager (#113)
- af attach terminal mode with direct shellper socket connection (#118)
- Database migrations v9 through v12
Messaging Infrastructure
- af send Enter fix — delayed \r after multi-line paste so PTY processes the message before receiving Enter (#492)
- Typing-aware delivery — defers message delivery when user is actively typing (#403)
- Composing flag removal from deferral logic — was getting stuck true after non-Enter keystrokes, causing 60s delays (#492)
- Tower send endpoint with address resolution (POST /api/send) (#110)
- WebSocket message bus with subscriber management for real-time notifications (#110)
- Standardized agent naming — consistent architect/builder identifiers (#110)
- Structured message format with headers/footers (#110)
- Push-based gate notifications via af send, replacing polling (#108)
- CLI send refactor to use POST /api/send endpoint (#110)
Mobile
- Duplicate character fix — replaced UA sniffing with pointer:coarse media query + composition event tracking. Catches iPads which report desktop UA. (#517)
- Collapse buttons hidden on mobile (#513)
- SSE auto-reconnect for dashboard after Tower restart (#472)
Consultation & Metrics
- Consultation metrics & cost tracking — MetricsDB, usage extractor, per-model cost tracking (#115)
- consult stats subcommand for viewing consultation statistics (#115)
- Consultation output persistence — auto-saves results to project directory instead of temp files that get cleaned up (#512)
- Codex SDK integration — replaced CLI subprocess with SDK (#120)
- Rebuttal-based review advancement — porch advances after rebuttals without re-running consultation (#121)
- porch --protocol/--project-id flags for flexible consultation routing (#115)
Developer Experience
- Risk-based PR triage guide for architect integration reviews with subsystem mappings (#469)
- Workflow reference documentation updates (#469)
- af open from any directory — removed CWD restriction and workspace containment check (#500, #502)
- af rename — Tower API endpoint and CLI command for renaming builders (#468)
- codev update --agent flag for selective updates (#446)
- porch rollback command to rewind project phase (#401)
- Async workspace lifecycle — converted workspace creation and adoption to async exec (#127)
- Periodic cleanup with defensive creation for stale state (#116)
Codebase Health
- Workspace rename — "project" → "workspace" throughout codebase, database migration v9 (#112)
- Dead code removal — vanilla dashboard code and clipboard test deleted (#111)
- Gate watcher removal — polling infrastructure replaced by push notifications (#108)
- Path boundary safety for prefix deletion (#474)
- PrismJS, marked, DOMPurify bundled locally to avoid CSP blocks (#269)
Bugfixes (78 total)
Including: terminal reconnection reliability, tunnel keepalive, file path resolution, dashboard startup latency, tab switch delay, Work page performance, builder progress calculation, stale docstrings, monorepo build paths, and much more.
Full changelog: v2.0.0...v2.1.0
Install: npm install -g @cluesmith/codev@2.1.0