Released: 2026-02-16
Major stabilization release with significant improvements to shellper reliability, project management, protocol orchestration, and multi-agent consultation.
- GitHub Issues as source of truth: Projects are now tracked via GitHub Issues instead of
projectlist.md - Unified Work view: Dashboard overview, builder status, and backlog in a single view
- Reworked
afx spawnCLI: Positional arg +--protocolflag replaces old-p/--issuesyntax - Overview API endpoint:
GET /api/overviewandPOST /api/overview/refreshfor dashboard data
- Async workspace operations: Workspace creation and adoption converted to async subprocess execution
- Async git status:
handleWorkspaceGitStatusconverted to async exec
- Multi-client protocol: Multiple clients can connect to the same shellper session
afx attachterminal mode: Direct shellper socket connection for terminal access- Backpressure handling: Write-failure backpressure for socket connections
- SDK replaces CLI: Codex consultation now uses the OpenAI SDK directly instead of spawning the CLI subprocess
- Better error handling: ThreadErrorEvent handling and configuration assertions
- Rebuttal flow: Consultation reviews can now include rebuttals for iterative feedback
- Stderr capture bridge: Shellper-side stderr lifecycle logging
- Tower-side SessionManager: Event logging for session management
- Exit info propagation: Better diagnostic information on process exit
- MetricsDB: SQLite-backed metrics database for tracking consultation usage
consult statssubcommand: View consultation statistics by project, model, and time period- Usage extraction: Token and cost tracking for Gemini, Codex, and Claude consultations
afx sendcommand: Send messages between architect and builder agents- WebSocket message bus: Real-time message delivery with subscriber management
- Tower send endpoint:
POST /api/sendfor programmatic messaging
- Shellper resource leakage (Spec 0116): Periodic cleanup of orphaned shellper processes, defensive creation, PTY exhaustion prevention
- Shellper reconnect on Tower restart (Spec 0122): Tower reconnects to running shellper sessions after stop/start cycle
- Consolidate session creation (Spec 0117): Unified session creation path, removed redundant code
- Test suite consolidation (Spec 0124): Removed ~285 redundant/obsolete tests
- Terminal size defaults: Fixed shellper terminal size from 200x50 to standard 80x24
- Orphaned process cleanup (#341): Kill orphaned shellper and consult processes, scoped to own socket directory
- PR overview fields (#328): Added
createdAtto PR interfaces and builder overview - Builder discovery (#326): Filter
discoverBuilders()to only show live terminal sessions - Shellper process survival (#324): Fixed shellper processes dying when Tower restarts, added backpressure handling
- Builder notification timing (#335): Enforce CMAP result waiting before architect notification
- Work view backlog (#333): Pass workspace cwd to
ghCLI in overview endpoint - Duplicate gate notifications (#319, #315): Removed duplicate notifications and stale gate indicators
- Spawn resume (#316): Find existing worktree by issue number on resume
- Terminal responsiveness (#313): Backpressure handling to prevent terminal unresponsiveness
- Terminal cleanup (#290): Remove terminal from in-memory registry on DELETE
- Fullscreen shells (#296): Remove double-prefixed tab IDs that broke fullscreen shells
- Codex consultation output (#297, #280): Fix JSONL parsing, instruct models to read files from disk
- Dashboard mobile fixes (#285, #286): Fix tab bar scrolling and annotator dialog positioning on mobile
- Terminal rendering (#205): Fix replay scroll-to-bottom behavior
- Porch duplicate notifications: Fixed duplicate gate notifications in SPIR protocol