Released: 2026-02-26
Stability and quality release with targeted bugfixes across porch, Tower, dashboard, and developer tooling, plus comprehensive documentation updates for HN launch.
- Language-agnostic porch check overrides (#550): Non-Node.js projects can now override or skip any porch check via
porch.checksinaf-config.json. Supports custom commands, working directories, and skip flags. Python, Rust, and Go projects no longer need to editprotocol.json. - Per-project agent time tracking (#541): Analytics dashboard now tracks and displays agent time per project.
- Comprehensive docs update (#558): Updated FAQ, cheatsheet, CLI overview with ASPIR/BUGFIX/porch documentation. Replaced deprecated
afx dashreferences withafx workspace. Fixed stale version references and remote access docs. - README for HN launch (#556): Added Tour of CodevOS article link, updated VIBE vs SPIR section with R4 data, added production metrics.
- Newsletter subscribe link (#551): Added to README.
- Terminal scroll-to-top (#560): Terminals no longer scroll to top when switching tabs. Root cause: xterm's
viewportYresets to 0 when container isdisplay:none. Fix: track scroll state externally viaterm.onScroll(). - Shell buttons regression (#563): Fixed regression from scroll fix where shell buttons stopped working. Stale
scrollState.baseYcausedsafeFit()to take the wrong code path. - Tower crash: H2 stream destroyed (#565): Added
stream.destroyedguards to all 4 unguardedstream.respond()calls in tunnel-client. Prevents crash when tunnel WebSocket disconnects during in-flight proxy requests. - TICK --amends required (#562):
afx spawn --protocol ticknow requires--amends <spec-number>. Previously, omitting it caused the builder to read the wrong spec file. - pr_exists check for merged PRs (#568): Added
--state alltogh pr listin allpr_existsporch checks. Previously, merged PRs were invisible to the check. - Dashboard E2E scheduled runs (#566): Added
GH_TOKENto the Playwright test step indashboard-e2e.yml. Scheduled workflows don't auto-propagate the token.