Release history

Changelog

v5.348.0

2026-11-05
Added
  • wire Q as read-only consumer of episode facts (#4612) (1aecfc063)
  • automatic episode retrieval at session start (#4614) (393a999f0)
Changed
  • commit stale SPINE.md date bump and snapshot update (2f3232594)
  • add Sub-check C for compose-level maxToolRoundsPerNode precedence (#4639) (#4672) (f0f4333ee)
  • protect bundled reference file integrity (#4676) (df2e67b41)
Fixed
  • bracket-notation for index-signature payloads and update stale snapshot (581742f0e)
  • suspend stall watchdog during afk pause and inject resume context (#4691) (a96cb6b98)
  • correct category mismatch and wire inject into session (#4684) (ccde4a7f5)
  • add risk facet to empty-string test and document command guard asymmetry (#4671) (06d0eb75e)
  • address advisory findings for dynamic model param description (#4669) (1215899cb)
  • migrate remaining afterEach/afterAll teardown sites to rmSyncRetry (#4673) (3ecee23e3)
  • raise readLastTickTime limit to prevent window exhaustion by skipped records (#4665) (a4f6ab95c)
  • address summary-mode thinking indicator advisory findings (#4678) (fc4d02841)
  • address workspace subscription parity advisory findings (#4677) (d916a35cb)
  • harden Worth doing pipeline — drop fallback needle, add tests, document omission (#4666) (3d359c5a6)
  • address advisory findings from SubagentHandle test coupling review (#4670) (7748bddfb)
  • harden closeAll ordering test and extract required helper (#4668) (c9f39fdb5)

v5.347.0

2026-11-03
Added
  • named delegation profiles via AFK_DELEGATION_PROFILE (#4313) (339f2086a)
  • add read_journal tool for structured journal access (#4658) (80722d184)
  • add model identifier to session receipts (#4657) (77c6ac4df)
  • subagent orientation context injection at fork time (212d2e8df)
  • enrich afk doctor with subsystem health checks (917f40a6a)
Changed
  • replace LLM synthesis with deterministic facet bridge (155457e87)
  • guide read_file offset/limit in ground-state eval-pipeline check (3e0dbd951)
Fixed
  • address 4 blocking review findings on PR #4659 (5357791c9)
  • remove false read_file tail-return claim in ground-state SKILL.md (8c61607d6)
  • use correct subcommands in CLI orientation block (a841f2467)
  • handle EPERM as alive, add missing hook events, fix bundle path (e77ea8f77)
  • address advisory findings from #4503 review (#4648) (33e0051b0)
  • fix inverted log message, add remoteDetail and size===0 test coverage (#4649) (f5ac931c2)
  • fix stale comment, add @internal tag, and improve session-id test coverage (#4653) (0276d7413)
  • raise maxBuffer to 4096, emit debugLog on signal, add ENOBUFS test, fix docs, rename interface (#4656) (594272a03)
  • fix fail() usage, test description, and add closeAll ordering test (a891a38c0)
  • dynamic model param description with slot and default info (19bba464e)
  • restructure test describe block and add startup quarantine telemetry (#4632) (aac50ec4f)
  • bump episode MAX_TOKENS from 512 to 1024 (1257faf1f)
  • wire "Worth doing" bullet through terminal-state pipeline (#4643) (00a030009)
  • skip daemon sessions and add synthesis canary logging (f8c0c8b1e)

v5.346.0

2026-11-02
Added
  • add afk pause/resume to freeze and unfreeze all sessions (#4566) (bd8a6172f)
  • populate facet decisions from episode synthesis (#4610) (3b152a75e)
Fixed
  • auto-restore files on /branches switch using on-disk turn log (#4613) (c18fb7306)
  • finite unattended session defaults (bounded partial) (#4548) (ace41b9e2)
  • use renameWithRetrySync to fix Windows EPERM on rename (c1dfc5b96)
  • increase Windows EBUSY retry budget in LSP exit-cleanup test (bb1b48dce)
  • address advisory findings from CI Windows shard PR (5ebe05de5)
  • add agentType + double-cast to fix lint:tests ratchet (+4 errors) (88b15d4be)
  • use rmSyncRetry in useTmpAfkHome to avoid ENOTEMPTY teardown race (61d8ea1fe)
  • reduce test coupling to SubagentHandle internals (880a35ff2)
  • add empty-string facet test, document dropped path, fix declaration order (22478ccbb)
  • correct precedence comment in compose node builder (af833b2a4)
  • add missing test todo and insertion-order comment (56780355e)

v5.345.0

2026-11-02
Added
  • add layout-jump decision table reference (#4609) (ad468b192)
  • summary-mode thinking indicator and unknown-error hint (a0d82bd1a)
Fixed
  • harden wrapping across 9 files (#4617) (9c687a5d8)
  • disambiguate Windows EPERM in daemon instance lock (#4605) (7aeba989e)
  • skip preamble-only user records in goal extraction (#4604) (09d08195a)
  • add episode backfill CLI command (10bdd60bf)
  • address advisory findings from workspace subscription parity (877cd86a7)
  • address advisory findings from command classifier facets (94f8e37d3)
  • cap thinking lane on dispose + fix stall test fixture (5b4b4361e)

v5.344.0

2026-11-01
Added
  • LSP repo map summary for system prompt (#3904, phase 3) (3b5c1d603)
  • console output discipline CI gate (audit:console:check) (af289de75)
  • fit-and-finish quality sweep + POSIX guard CI gate (#4594) (8ef8f1b45)
  • worktree tool accepts explicit repo parameter (#4430) (341862851)
  • stamp session cwd on run receipt (#4582) (d4aea92d7)
Changed
  • route console output through palette across cli, telegram, and improve surfaces (d804b67b9, f6ad97936, bb58b7249)
Fixed
  • single-instance guard to prevent concurrent daemon execution (#4434) (9e629b249)
  • opt-in OS-level bash sandbox (sandbox-exec / bwrap) (#4554) (9229778aa)
  • per-rule instrumentation, denial-breaker blindspot, and insights panel (#3849) (8e257ec0c)
  • expose bounded read-only artifact registry tools (#1415) (687024cca)
  • forward opt-in idempotency keys and reconcile uncertain effects (#3714) (f344834e6)
  • prepare canonical workspace experiment storage (#1539) (ac3538cd3)
  • ESLint import/no-restricted-paths CI rule for layer contract (#4464) (f27b95dbe)
  • audit-layer non-blocking findings from #4464 review (#4588) (d9df6666e)
  • test runner wrapper for vitest jsdom hang (#4595) (9ecb26831)
  • strip harness preamble from episode goal extraction (#4585) (6868a7e08)
  • Windows test failures in repo-map and bash-sandbox tests (#4593) (ab3704482)
  • bound every bash output viewer row to available width (#4510) (3b623548b)
  • name sanctioned alternatives in restricted-path block reasons (#3850) (4b316bbad)
  • readLedgerHead entry-guard asymmetry and test gaps (#4524) (4014fac71)
  • exercise resume repository filtering and daemon fallback (#4504) (612f7cee2)
  • pin explicit read-root replacement in query setup tests (#4505) (87106cf11)
  • cover newline-only alternate paths (#4511) (8b7a99902)

v5.343.0

2026-10-30
Added
  • compute outcomes once at SessionEnd for receipt v3 and outcome store (99ee9bb2d)
  • pure computeOutcomes and OutcomesV1 schema with git-range adapter (39e2d5124)
Fixed
  • receipt schemaVersion v3 + Windows path normalization in outcomes (#4581) (21ea68311)
  • address 4 blocking review findings on PR #4535 (a3f3c98d3)
  • bound git command matching to avoid backtracking (13450fa3c)
  • preserve attributed outcomes and bound teardown input (be3eb5f27)
  • use u flag instead of v flag for FTS5 regex (ES2022 compat) (0ebce56a5)
  • use Unicode-aware boundaries in FTS5 sanitization regex (f59b0e2f5)
  • use Unknown goal sentinel instead of unreachable empty-field guard (a225af857)
  • episode synthesis quality — compaction, promise tracking, tests (69dbf3263)
  • use word boundaries in FTS5 sanitization regex (d490928ca)

v5.342.0

2026-10-30
Added
  • agent episode synthesis — opt-in, journal-based, deferred (#4565) (c32e1ac4f)
  • consumer-surface annotation + unified skill (#4564) (3d7c0ada4)
Changed
  • remove /reauth slash command and dead-code chain (#4575) (1bb7a2600)
Fixed
  • allowlist gaps causing ground-state errors (#4560) (cb4b700e0)

v5.341.0

2026-10-30
Added
  • keep abandoned conversations as branches and switch with /branches (#4294) (8d4adf1e3)
  • add PTY integration test for type-during-tool-round steering (6e63f85e0)
  • add docs/acp.md — editor integration guide for afk acp (42d68c80f)
  • add /where slash command and enrich AFK.md introspection surface (8fd77f752)
Changed
  • shard Windows tests and preserve aggregate check (53a2ccff9)
  • consolidate usage formatter with shared pipeline (2e43da5de)
  • stage 3 — named-agent budget parity in buildComposeDagNode (8ec4ecc49)
  • add introspection reference docs and glossary (f8ee1faca)
Fixed
  • canonical paths in credential denials, drop matched from roots variant (72fc000f3)
  • unify daemon allowedTools and wire web backgroundAutoDeliver (#4539) (7d3a5b428)
  • share command analysis facets across security consumers (331530078)
  • share write-floor and actor-root path decisions (637a357fe)
  • share model-intent and credential dispatch preparation (2a25323b4)
  • pill positioning and transcript tab-stop (#4435) (d97a3747d)
  • delete .git-commit-msg.txt and add CLAUDE_CODE_OAUTH_TOKEN test (#4528) (d48726eeb)
  • /where slash command — tests, security, null guard (#4527) (b6a45ad7a)
  • whatif provider cleanup — unused exports, import migration, test (#4531) (564077b6e)
  • add afk receipt regenerate to rebuild v1 receipts as v2 (#4463) (26ea1b44b)
  • prevent ghost branches on failed rewind; add isSafeLedgerSessionId guard and fork tests (#4495) (2e1385a37)
  • add isSameSession guard in handleSwitch; eliminate newId! assertion in forkBeforeRewind (802e509a7)
  • check forkJournal return value; memoize loadSession in collectBranches (c0256be7e)
  • export resolveFromFound; split forkBeforeRewind try/catch with orphan cleanup (e4297d8a9)
  • address 6 review findings — security, correctness, tests (79ca958ee)
  • narrow RegisteredAgent cast to BudgetHint; add maxTurns parity probe (68e3f7edf)
  • correct acp.md — done response shape, AbortController cancel, remove Cursor MCP section (88387da8d)
  • three P0 tool reliability improvements from 30-day audit (#4475) (bfd0affb3)
  • session-meta follow-up cleanups from #4453 sidecar migration (#4460) (5ddb756e1)
  • gate claude login hint on anthropic provider; preserve codex detail (9c45397ae)
  • replace ! non-null assertions with ?? fail() for noUncheckedIndexedAccess (45d7825a6)
  • drop /orient alias collision and guard non-git directories (1ca34fedd)
  • restore claude login hint and stale status tag in formatUsage (d6f4adf31)
  • compose-level max_tool_rounds_per_node wins over named-agent frontmatter budget (4e0fd3d51)
  • surface whatif/ provider imports through stable agent/ public API (33ae3b079)
  • address advisory findings from #4259 auth account switch review (349e51e94)

v5.340.0

2026-10-29
Added
  • implement ToolCallLedger class with bounded turn-window map (427b33a7d)
  • inline terminal image rendering via Kitty graphics protocol (99d58b7f7)
Changed
  • suppress advisory bash path-containment console.warn (#4516) (8522f2ac8)
  • correct user-backgrounded steering/cancel semantics (c3a960351)
  • regenerate env-registry docs after #2143 env vars (54671c6bd)
  • document provenance fail-safe default in background-registry (533fd31b5)
Fixed
  • cap bash-output-viewer lines to terminal width in buildRows (79ed7ff7e)
  • consolidate picker row truncation and add skipBandTruncation flag (c264b0651)
  • reject non-integer turnIndex; bump test-typecheck baseline (35600553a)
  • add RangeError guard in record() and fix import path (1ed585c8d)
  • add missing defaultSubagentModel to makeReadScopeExecutor in subagent-executor.test.ts (d724493d2)
  • merge duplicate JSDoc blocks on createTranscriber into one (eac20ef78)
  • remaining advisory findings — TOCTOU doc, JSDoc, CHANGELOG preamble, import order, synthetic-completedAt comment, utils tests (11880132f)
  • stat catch returns early; realpathSync.native for tmpdir prefix (e9de65b99)
  • derive worktree slug from agent_type when id_prefix is omitted (#4474) (1e5b9fd30)
  • address 4 blocking review findings in inline-image-render (703bae2ef)
  • address review findings #5 and #6 in bash-checkpoint tests (c5e0c3865)
  • address review feedback on inline-image-render (a0614c853)
  • tighten formatter test anchors and fix stale comment (330dc7c2c)
  • extend operator-notify port to cover remaining agent/ → telegram/ imports (3c1ff62d0)
  • address remaining advisory findings from triage batch (750203c07)
  • apply fail-closed grantsToolStrict to workspace prompt gate (9ec00cc22)
  • move pause→resume test to its own describe block (8e3092dfa)
  • address plugin-api state store advisory findings (2937125d9)
  • read raw journal records for receipt firstUserMessage to survive compaction (8099e684d)
  • fix bg process count accuracy and add display tests (49fa60ddc)
  • add executor-level parentCwd fallback test and document unwired-manager collapse (14f4516de)
  • add riskCategory forwarding integration test (e901a2035)
  • address bash side-effect capture advisory findings (92130fcf3)
  • fix misleading comments and add write_file test in artifact-modified (3fbd5f2e4)
  • add agent↔compose cross-references and budget mapping note (1a902c6a6)
  • wire /usage slash command to multi-provider pipeline (8eefe8b52)

v5.339.0

2026-10-28
Added
  • capture bash side effects so /rewind can undo them (#4271 stage 2) (c08d69130)
Changed
  • unify fork read-scope computation (83cc8c4aa)
  • git-snapshot contract for bash capture (#4271 stage 2) (3c8e2e916)
Fixed
  • skip band-width truncation for editable text-input overlays (f5c9f9258)
  • replace console.error with debugLog in session-meta to fix flaky teardown (#4459) (9e78cd651)
  • add per-fragment token-count logging at prompt assembly time (05c65bdbd)
  • restore parentCwd fallback for grandchild read roots (cf9b511fb)
  • forward riskCategory through HookBlockedError on BLOCK path (312f5d323)
  • harden git snapshot capture per review (#4271 stage 2) (40075cff5)
  • strip credential env vars from snapshot git subprocesses (ec60aca6b)
  • split diff-tree buffer on NUL bytes before UTF-8 decode (5820ed665)
  • migrate remaining consumers to session-meta.json sidecar (#4453) (26f3128dd)
  • wire release-boundary-detect into shared RiskCategory enum (8caa47f0d)
  • address remaining advisory findings from Oct 14 triage (43e6b1633)
  • shared deadline in finish(), guard standing warning (c948daba2)
Older releases1671 more

v5.338.1

2026-10-26
Fixed
  • add missing mock exports for chat.mcp and chat.trace-identity tests (f1b06cc0b)

v5.338.0

2026-10-26
Added
  • enrich general-purpose agent prompt with quality and parallelism guidance (#4451) (f14a54bb3)
  • three-value provenance for Ctrl+B steering (#4359) (ea29e3abc)
  • journal infrastructure — meta.cwd (#4426), receipt v2 (#4427), session-meta.json (#4429) (#4428) (e300f89a3)
  • per-slot endpoint concurrency cap for local model servers (#4190) (295a31643)
Changed
  • trim system-prompt overlay from 307 to 110 lines (6d2cbd61d)
Fixed
  • release mascot band reservation between turns (be35eb357)
  • make error classifier provider-aware for auth and overloaded errors (872935aab)
  • retire() session before control, mirroring closeAll() ordering (a266f1990)
  • close WebSessionControl on retire, add test, fix comments (50b0a976c)
  • add colon to single-quote prefix class and regression test (41201fc44)
  • fix normalizer over-collapse, compound duration regex, and stale JSDoc (dad18fc86)
  • fix stop-reason terminal set gaps and stale comments (05fc0f3fb)
  • parallel-session safety fixes + CI audit gate (#4421) (ae2b0ccf6)
  • hydrate usageAwareness on resume + add slash command test (2f82cac49)
  • startup recall + dashboard follow-ups (4463df3d4)
  • widen wind-down markup regex and update stale comment (d92f0e2ad)
  • read rootCauseClass from failureClassBreakdown, hyphenate handler paths, medium confidence, integration test (741acf6e6)
  • wire tool-specific helpers into proposeFromCard; fix CLI flags and handler paths (c28433a00)
  • tool-failure-density template now produces tool-specific proposals (410db37fe)
  • rewrite shadow-verify nudge from advisory to action-gated imperative (#4447) (9dae4df52)

v5.337.0

2026-10-25
Added
  • dynamic startup recall + ambient dashboard (#4397) (3a4908ef2)
  • add /usage-awareness toggle to control model visibility of subscription usage (#4402) (4fe650879)
Changed
  • bump @anthropic-ai/sdk from 0.134.0 to 1.1.0 (4c77cbc4f)
  • bump the prod-minor-patch group across 1 directory with 4 updates (efaf9f731)
  • bump the dev-minor-patch group with 3 updates (#4383) (eaec2cd7f)
  • bump vscode-jsonrpc from 9.0.3 to 10.0.0 (#4385) (771decc5a)
  • bump pnpm/action-setup (#4384) (0d634bf4f)
  • bump github/codeql-action/analyze from 3.39.1 to 4.39.1 (#4387) (88feeb9c6)
  • bump github/codeql-action/init from 3.39.1 to 4.39.1 (#4388) (4717c274d)
  • bump actions/checkout from 4.4.0 to 7.0.1 (#4389) (481ac0f76)
  • bump the dashboard-dev-minor-patch group (d3d80ea03)
  • bump lucide-react (71a40f056)
  • bump the fumadocs group in /website with 3 updates (68eb10254)
Fixed
  • stale comments, fail-closed gate parity, provider gate tests (#4223) (619e4c371)
  • replace it.fails with pinned assertions in cross-classifier Section 3 (#3846) (ae2534944)
  • extend cross-classifier helpers to all four classifiers + add tier assertions (7df520797)
  • narrow stampLastContent to UserMessageParam | AssistantMessageParam for SDK v1.x (9e52858ed)
  • use git_read-compatible flag forms in state survey (#4390) (a76a99e67)

v5.336.0

2026-10-25
Added
  • LSP server pool: persistent LspClient + LspServerPool with auto-detect, auto-install, and migrated code_symbols + post-edit diagnostics (#4272) (b4c1f012f)
  • Plugin API: add state store and peer messaging to PluginApi (afe6832e8)
  • cluster tool failures by normalized errorHead (#4229) (21ebc8518)
  • show background process counts in the health rail (9d7e043fa)
Fixed
  • context-pressure wind-down passes stale text or markup as answer (#3983) (37d910718)
  • only show table row separators after multi-line rows (#4391) (2f9e1d62b)
  • overwrite stale tool-stop reason on abort instead of preserving via ??= (#3965) (74dad4a3e)
  • normalize git_read count shorthand, empty pattern, and echoed subcommand (#4227) (6a49f9768)
  • widen log/rev-list allowlist and fix git-investigator prompt (59cdf065b)
  • worktree-isolated depth-2+ forks inherit correct write root (e91964135)
  • pin childSkillExecutorFactory cwd inheritance in worktree-isolated depth-2+ tests (553d5e192)
  • retire session from owner maps on /exit (8b5a08b5c)
  • bind plugin peer helpers to calling sessions (2cbcd5b24)
  • add sightingCount to track recurrence beyond evidence cap (6174b00be)
  • gate firstSeen/lastSeen update on new evidence, not scan wall clock (56acfe3df)
  • post-turn re-check for bg injections that land while a turn is claimed (fb380c038)
  • stamp STREAM_INCOMPLETE unconditionally in buffered-text branch (26fb5f1a9)

v5.335.1

2026-10-24
Fixed
  • adopt a Claude account switch at turn start, no /reauth needed (#4259) (4f14beed9)
  • improve chip color contrast for WCAG AA compliance (827e18173)
  • populate model field in WebSessionSummary (ec21c7659)
  • error-path teardown test, dedup test, and perf doc (64c03bb03)
  • address advisory findings from 2026-10-23 PR triage (75cf5c839)
  • address advisory findings from 2026-10-23 triage batch (a70bbeb67)
  • add --force to 401 hint and tighten classifier test (47d94075a)
  • short-option = guard and missing bash-lexer tests (fa37cbc02)
  • assert 60_000 fallback timeout, remove stray blank lines (b8c1dd82f)

v5.335.0

2026-10-24
Added
  • Web chat UI overhaul: live token streaming with full-length answers (b57ad799a), ⌘K palette indexing sessions and commands (16e0cd196), responsive single-textarea composer with retry/edit wiring (82a5c54bd), one-tap new chat in the phone header (8884d3b5d), layout & navigation UX (edfced3d8), turn controls & composer (5d8a79d72), legible tool rows with collapsible code and fast long transcripts (469fae359), WorkingIndicator placeholder for slow turns (82b0deaba), D2 code highlighting and a11y fixes (293879196), D4 tool rows & shell polish (003b76546), E2 design-pass-2 non-streaming fixes (8905a006b)
Changed
  • model picker redesign + slash palette grouping (66d163f8b)
  • extract schedule/daemon routes from server.ts dispatch() (8b9105c42)
Fixed
  • settle() now drops current-turn sealed drafts when turn has ended (399fd1657)
  • promote git-cache hits to MRU via delete+re-insert (b51a08858)
  • move agent-type listing from tool description to system prompt for prefix-cache stability (a3f582b72)
  • prevent orphan roots when parent commits over running children (26cb94878)
  • resolve symlinked dirs + extract shouldFilePickerSubmit predicate (aa90c4c4c)
  • Enter on @file picker submits for files, navigates for directories (ac0cfa6db)
  • no blank frame between "Thinking" and the first answer text (e3def2bce)
  • transcript follows after Retry and send; ⌘K ranks command names first (501497883)
  • a reload keeps the transcript pinned to the bottom (27b3e485f)
  • sealed drafts only end the indicator for the current turn (b0cffc5ed)
  • mobile tables scroll sideways instead of wrapping rows tall (7600a116d)
  • welcome screen of an empty session shows folder and model (58f746f61)
  • /name shows exactly what was typed; no terminal hint on the web (7a6ab3318)
  • tool durations survive Retry and /rewind (e4e89fc4b)
  • no "Thinking 0s" flash under a finished answer (04b285d73)
  • picker Esc/Cancel/Select hands focus to the re-enabled composer (d908484ec)
  • highlighted code keeps its indentation (b5cb45bcc)
  • show an explicit /name verbatim; humanize only derived titles (2ed85556e)
  • layout scroll events no longer unpin the transcript (bab3a4d5c)
  • working indicator waits for visible text and shows Running (ce9fee658)
  • stream every turn live, not only the first after a reset (66c997225)
  • jump-to-latest button always visible when scrolled up (4421af279)
  • fix contrast violations in WorkingIndicator and session-model span (770933193)
  • grep/glob summaries keep the search pattern (8e843fb7c)
  • fix language label contrast in code-block header (2bd5f00ee)
  • boost contrast on Agent label and kbd shortcut chip (e2bfd9b68)
  • approval dismissal returns focus to the composer while a turn runs (b16d3e617)
  • spine grouping hung the tab on a stopped item (cdd937da9)
  • stamp stopReason 'interrupted' on a Stop that ends via the loop's terminal (6dcfece36)
  • idle live sessions stay "Idle", not "Done"; busy badge on mobile drawer (04ffaa2ac)
  • retry/edit are conversation-only rewinds of the newest prompt (3a68c04d1)
  • tighten /model picker radio selector to match sonnet alias not medium slot (3401991bc)
  • address advisory findings from multiple triage batches and reviews (35a87ece4) (d2b74ab3b) (edfc28665) (c9867b0db)
  • make git-common-dir relative-cwd assertion Windows-portable (92d9b2308)

v5.334.0

2026-10-23
Added
  • add subagent routing slot for provider-independent subagent inference (#4324) (872115b62)
Changed
  • replace inlined slot constants in hints.ts with lazy getters (7963a558d)
Fixed
  • SHA-pin all GitHub Actions, bump vite, cap daemon body size (2e5227d63)
  • add seenToolUseIds to child-activity-select test fixtures (f47fd70b0)
  • pin softprops/action-gh-release to SHA in publish workflow (4268ce8f0)
  • annotate actionName as string to satisfy TS2367 lint:tests ratchet (4ac3863bb)
  • fix LSP test timing and document DEFAULT_LSP_CMD type (fff9e2586)
  • fix bash lexer comments, guards, and test coverage (346b6cd5b)
  • fix blockReason backticks and add stash false-positive boundary test (4d1b22b94)
  • fix 403 hint and update transient-retry invariant comment (63540874c)
  • fix dangling JSDoc on completeWithWireWithStop (eb3d6c15a)
  • stamp renderedSubagentIds on error path to prevent duplicate Channel B lines (2bbf6d6f4)
  • stall annotation never re-creates flushed lane entries; label parents awaiting children (ea15ee44d)
  • suppress hook completion line for subagents the tool lane already rendered (5bd27e2e0)
  • do not stack spine-only separator rows between nested agent commits (6e7c92c9a)
  • count each subagent tool call once in Done summary (aa6f9bf26)
  • address advisory findings from #4292 review (78c03e423)
  • add subagent slot ENV_KEYS and dispatch integration test (46669f5fc)
  • fix vacuous tests and improve idempotency-header test coverage (8c5f3dc92)
  • add vote-sign guard and unit tests for collapseSingleCountVotes (9acf9c227)
  • bump ip-address 10.7.3 → 10.7.4 + dismiss 7 stale Dependabot alerts (#4336) (dc4c83a50)

v5.333.0

2026-10-23
Added
  • warn at load time when AFK.md overlay exceeds 10k tokens (#4292) (aa4181981)
Changed
  • remove deprecated completeWithWire wrapper (bc5589349)
  • pin Scenario 2 idempotency-key header forwarding defect (63be9cdbc)
Fixed
  • raise macOS CI timeout, fix daemon teardown race, fix tailLedger flake (#4255) (fe358f8f7)
  • risk-classifier dd over-gate test + resize ghost-erase clamp assertions (#4253) (c0ccae422)
  • add cwd field to wait_for command conditions (#4237) (53e2679c9)
  • add handler tests for lost-outcome reconnect exhaustion framing (#3981) (30bd25dec)
  • status-line render nits and shadow-git observe decision filter (lane C) (#4210) (3bbd2c609)
  • fix release() test, stale comment, and inline invariant comment (#4243) (42c1fa9dc)
  • enforce maxBudgetUsd across REPL /clear cycles (cause 4) (#4280) (1f696573b)
  • deflake tailLedger via onCaughtUp synchronization barrier (#4332) (ce9a5a0d8)
  • guard disk roundtrip assertion with toBeDefined check (dbbeaf0c6)
  • handle Anthropic 403 with opportunistic token refresh (#4316) (870bf07f4)
  • add kind/startedAt to ToolEntry literals; use synthetic POSIX path in Windows-portable test (5020f67ea)
  • count fix_of_fix at most once toward the two-minor-negatives rule (#4289) (232bdee09)
  • shorten paths before SGR styling in grouped bash rows (83013a341)
  • run shortenPaths before styleBashCommand in grouped path (698963add)
  • correct false drain guarantee and overly-restrictive JSDoc (7f4915f72)
  • style grouped bash entries before flattening newlines (6f2a33a1f)
  • address remaining advisory findings from 2026-10-15 triage (52f0ba827)
  • pin Scenario 2 reconciliation tests (3575d334c)
  • clarify decideStatus JSDoc and add missing unsupported test (e80a28b6e)
  • stale comment, blockReason backticks, false-positive note, normalizeSeps early return, Windows tests, show-p tests (121feeb65)
  • re-export buildSubagentBlockCorpus from contracts.ts; fix stale JSDoc in contracts.test.ts (6bd809364)

v5.332.0

2026-10-22
Added
  • OpenAI family aliases (sol/luna/astra/terra) (#4310) (ed09d4eab)
  • /resume repo-root filtering, smarter naming, daemon exclusion (#4308) (ad8dc1d99)
  • web/CLI parity Stages 1-5: cross-surface slash commands, choices, lifecycle (/fork, /resume, /exit), structured /diff, session controls (#4295) (6a7043d2a)
  • /rewind conversation|files|both with cross-turn file restore (#4286) (2fd716087)
  • child-to-parent yield for foreground subagents (#4297) (7cb903fa3)
Changed
  • stage 3 — use resolveChildModel in dispatchDagNode for model-resolution parity (#4288) (30b8993d7)
Fixed
  • await plugin init before "Unknown command" on early slash input (#4320) (e5fea17c0)
  • clear handler timeout, truncate echoed text, pin 504 shape (#4277) (62cb67efe)
  • scope picker row truncation to selection picker only (8503ce382)
  • address remaining advisory findings from Oct 14 triage (#3794) (a01e78715)
  • address PR #4310 review findings (713734ac2)
  • remove write-only pending-question-store (#4299) (728d32c01)
  • address remaining advisory findings from 2026-10-19 evening triage (#4301) (a82a9aaac)
  • bash lexer long wrapper options, pipe-ampersand, truncated verbs (#4303) (9c0037771)

v5.330.0

2026-10-22
Added
  • emphasise and colour bash command words in the REPL tool lane (#4275) (4ff66f8d9)
  • Stage 0 of web/CLI parity: run native slash commands in afk web (#4246) (12e9e6e58)
Changed
  • pin Scenario 2 reconciliation – unknown→confirmed lifecycle (#4257) (2efeacc47)
Fixed
  • removeEventListener on abort, unconditional parseLocation assertions, AbortSignal tests, DEFAULT_LSP_CMD constant (#4241) (db873a09d)
  • emit mcp_server_status OutputEvent for embedder health UI (#4256) (bb6c99325)
  • reject TS1xxx syntax errors before baseline comparison (#3773) (#4260) (52e75bea0)
  • remove pnpm version: 9 from live-provider-tests.yml (#4236) (808fbfb7c)

v5.329.0

2026-10-22
Added
  • continue a capped subagent with its full prior conversation (#4263) (cd4599bc7)
Changed
  • POST /api/sessions/:id/prompt now returns 422 for native slash commands (use POST /api/sessions/:id/commands instead), REPL-only commands, and unknown commands (#4246)
  • cover the round_cap_notice_dropped path (#4264) (075cd68be)
Fixed
  • continuation hardening from #4263 final review (#4265) (1c6a2fb7f)
  • replace mismapped subagent-block contract with real hook-block detector probe (#4245) (f15e5f81d)
  • never silently drop the subagent round-cap notice (#4258) (d1a66c704)
  • decideStatus returns unsupported (not pass) when no replay handler exists (#4244) (6c14878e8)
  • block mutating git stash inside linked worktrees (#4249) (2fa896cfe)
  • handle.ts cancel comment, mint finally leak, disarmCols reset, manager truncation, redactSecrets test, composeTool pin (#4224) (c65852a6d)
  • telegram /insights help, logging, NaN guard, tests (#4211) (2daf01cd2)
  • checkEgress try/catch, atomic release push, unconditional breaker assertion, SlotProvider import type, stale AFK.md (#4221) (67ca3156c)
  • OTLP push hardening and test gaps (#4212) (dbebae914)
  • LSP symbol lookup hardening (abort, realpath, timeout, response checks) (#4213) (1c846bee0)
  • dashboard handoffs view polling, in-flight guard, types (#4216) (556d88844)
  • misc follow-ups: cli-reference tests, joinContinuation case, to-definition git_read (#4215) (c187df0b9)
  • agent host remote-path invariants and test accuracy (#4214) (aa0bce8f1)
  • move background-job tools to optional tail; fix schemas.order.ts JSDoc (#4222) (751979da9)
  • move agent-type listing from tool description to system prompt (#4219) (dd7410af9)

v5.328.2

2026-10-20
Changed
  • remove the auto-release workflow; releases are manual (#4146) (e056015e)
Fixed
  • SSRF host guard, timeout tests, botInfo fail-closed (#4145) (1688dc5d)
  • pin agent-tool error strings, fix DAG isolation test name, add Invariant comment, fix stale docstring (#4148) (5dca1d07)
  • move duplicated normalizeSlotProvider/parseStringField into model-slots.utils.ts (#4143) (d130f41b)
  • advisory findings from 2026-10-14 PR triage batch (#4002) (40d9bb2f)
  • make durationMs test deterministic — drop wall-clock margin (#4144) (0d244dbf)

v5.328.1

2026-10-20
Fixed
  • fix word-doubling in joinContinuation, add missing tests, deprecate completeWithWire (#4174) (81b38187)

v5.328.0

2026-10-20
Added
  • grant git_read to research-agent under AFK_READONLY_GIT_TOOL (#4196) (a4c82f2f)
Fixed
  • address handoffs-view review findings (#4197 follow-up) (#4207) (56420f74)
  • plan-mode gate for agent{host}, host control-char rejection (#4206) (c0a8bdd3)

v5.327.13

2026-10-20
Changed
  • stable tool-list partition for prefix-cache reuse (#4205) (06c5cb04)

v5.327.12

2026-10-20
Added
  • wire host field on agent tool to RemoteSubagentHandle (#4202) (5262a205)
  • pending handoffs view in dashboard (poll + answer form) (#4197) (6ff53f95)
  • LSP symbol lookup tool (phase 2, opt-in, off by default) (#4201) (bcaf1538)
Fixed
  • route DaemonHandle.registerTask through quarantine, fix JSDoc, strengthen quarantine tests (#4175) (4d4604fe)
  • fix dead code in checkMirror, improve order-mismatch logging, export registrations/checkMirror, add tests (#4193) (14e5a0f7)

v5.327.11

2026-10-20
Added
  • measure shadow-git-detect observe-window firing rate (#4200) (53c4e74f)
  • live OTLP/HTTP push for afk trace export-otlp (#4195) (0f09b9fe)
  • add /insights Telegram command for text summary of usage analytics (#4194) (95f3ecc3)
  • surface riskCategory in trace show and status-line chip (#4199) (9263d0c9)
Fixed
  • @internal tags on OTLP wire types; ROOT_PARENT_SENTINEL for background agents (#4192) (becd7fa1)
  • use "safe idempotent" in web_request retry wording (#4191) (096a2c75)

v5.327.10

2026-10-20
Fixed
  • add disarmCols to ResetStateHost and zero it in resetState (#4177) (2ce59472)
  • clean up fallbackBySession on mint completion and document void close() (#4178) (0f2a4f47)

v5.327.9

2026-10-20
Fixed
  • correct billing_settled comment to say cumulative totals, not delta (#4184) (a918fbec)
  • pin readRoots/writeRoots confinement descriptions in CI (#3772) (#4186) (65265cbb)

v5.327.8

2026-10-20
Fixed
  • record failed/cancelled child costUsd in subagentRunningCostUsd (#4185) (c8aff4ed)
  • narrow catch to race error, add pending-status pre-check, add tests (#4179) (30696807)
  • JSDoc ALL_TOOL_SCHEMAS flag note; tighten Scenario 4 vote assertion (#4187) (1ed6a132)

v5.327.7

2026-10-20
Fixed
  • oauth_pending servers and mid-session disconnects now surface model-visible notices (#4183) (b6542f25)
  • fix four low-risk advisory correctness gaps in /handoffs:answer (#4180) (a7b97e60)
  • add missing test assertions from 2026-10-19 advisory findings (#4176) (8e7eb6bc)

v5.327.6

2026-10-20
Changed
  • fix lint:tests ratchet regression from #4153 (#4188) (2198554c)
Fixed
  • pass explicit scanCmd to writeReference; add mirror check to scan:cli:check (#4152) (551e74c8)

v5.327.5

2026-10-19
Changed
  • mark Task Scheduler service backend as shipped in windows-setup.md (#4150) (f5ed0866)
  • update evidence-gate header and test description to "on by default" (#4149) (6e170733)
Fixed
  • correct web_request schema and header to match retry implementation (#4151) (dba2b24e)
  • correct root span status, best-effort completed-only spans, omit errorHead by default, index background_agent (#4153) (7a589b4a)

v5.327.4

2026-10-19
Fixed
  • sanitise toolName in mcpUnknownToolMessage + make dedup test reach collision branch (#4157 follow-up) (#4173) (61baa1b3)
  • include offending value in startup quarantine warning (#4161 follow-up) (#4171) (5695f9b7)

v5.327.3

2026-10-19
Fixed
  • harden MCP failure-notice sanitiser and wire-prefix glob (#4157) (64df554b)

v5.327.2

2026-10-19
Fixed
  • cross-reference mirror guard comment + document per-call allocation nit (#4163) (aa0596dd)
  • apply reflowedPhysicalRows inflation to disarmed EXPAND path (#4162) (4fc3100c)
  • quarantine malformed runAt/expiresAt tasks at daemon startup (#4161) (7791f0f4)
  • advisory findings from #3986 — mixed provider on BillingUsage (#4160) (a6dac97b)
  • advisory closure-provenance test improvements from #4021 review (#4159) (5676dfcb)
  • add explicit test for pause→resume→same-text not superseded (#4158) (4b54ee4f)
  • add Known residual test for FS_MUTATING over-gate in risk-classifier (#4156) (c0b2dd37)
  • doc, test, comment, and regex-safety fixes for wind-down-final (#4155) (fec0d50e)
  • add single-quoted -c test case and document -C/--git-dir omission (#4154) (0b00bc7f)

v5.327.1

2026-10-19
Added
  • /export md|html — self-contained session export (#4026) (23c7c271)
  • afk acp — Agent Client Protocol JSON-RPC 2.0 stdio server (#4040) (b1f8b8c8)
Fixed
  • Linux CHROME_CONFIG_HOME/XDG_CONFIG_HOME ignored by real-Chrome probe; surface silent catch in error-hints (#4023) (c46be820)
  • bash write-shaped verification command also advances lastMutationIndex (#4028) (ca6edc96)
  • stop hardcoding bash/workspace_query as forbidden in compose prompt suffix (#4016) (f116f20d)
  • regenerate slash-command reference after /handoffs landed (#4164) (875c97e5)

v5.327.0

2026-10-19
Added
  • add /handoffs and /handoffs:answer REPL slash commands (#4027) (e9dba5f2)
  • POST /api/handoffs/:taskId/answer with CSRF + responder identity (#4033) (2c328d93)
  • fall back to parent model when the default subagent model is rejected (#4117) (bc465c2f)
Fixed
  • stop LLM ghost-text suggestions from truncating mid-word (#4142) (c663ec63)

v5.326.3

2026-10-19
Added
  • journal AI ghost-text suggestions and their outcomes (#4128) (f15358df)
Changed
  • stage 2 — shared root validation + reuse setupIsolationWorktree in DAG dispatch (#4138) (c6fffd6a)

v5.326.2

2026-10-19
Fixed
  • address advisory findings from voice/audio transcription review (#4132) (a27acb0f)
  • harden regen:generated marker scan and conflicted-stage parsing (#4131) (c5a8db4b)
  • forward toolCount through provider boundary; add mcpServers e2e variant (#4137) (acc498b6)

v5.326.1

2026-10-19
Fixed
  • add centered reflow-shift eviction test and document fallback contracts (#4133) (96a9b94d)
  • mark full-width frame rows as hard for tmux reflow-shift (#4129) (d66bc7b0)
  • typecheck baseline reason edge cases in regen:generated merges (#4130) (4c9c9b59)
  • complete prediction fixture in baseline-budget test (#4134) (c6c48cf7)
  • address advisory findings from bash_timeout_clamped review (#4136) (bdff2e4b)
  • delegate grantsTool in XaiProvider, note tool-grant.ts gap, fix nit comment (#4135) (4a30545a)

v5.326.0

2026-10-18
Added
  • resolve generated-file conflicts with pnpm regen:generated (#4116) (a50df293)

v5.325.0

2026-10-18
Added
  • transcribe inbound Telegram voice and audio messages (#4047) (9a5169e8)
Fixed
  • erase tmux-reflowed echo duplicate on pane split (#4114) (97eaa72f)

v5.324.4

2026-10-18
Fixed
  • strip quoted content before dispatch-intent classification (#4101) (9c9f6bdf)
  • tidy two-phase MCP provider rebuild from #4069 (#4093) (7cadc910)
  • add missing read-only subcommands to git_read (#4099) (4b595a2f)
  • keep tools on anthropic-direct wind-down rounds for prefix-cache preservation (#4094) (b2ee0b22)

v5.324.3

2026-10-18
Added
  • drain REPL queue at tool-round boundary (AFK_STEER_MODE=boundary) (#4041) (2b84cf58)
Fixed
  • add e2e MCP fixture test, assert public exports, fix stale sdk.mdx MCP text (#4092) (b26f111a)

v5.324.2

2026-10-18
Fixed
  • clone gate falls back to two-dot diff when shallow checkout has no merge base (#4115) (0bd621db)

v5.324.1

2026-10-18
Changed
  • regenerate env-registry after #4037 + #4044 (unbreak main scan:env:check) (#4113) (b4084131)
Fixed
  • correct misleading comment in live-frame-margin test (#4091) (5622b70b)
  • stop telling children to call workspace tools they are not granted (#4071) (3374497a)
  • address advisory findings from #4025 per-slot maxOutputTokens (#4100) (f64c0bd0)
  • add regression test for baseline-sample cost deduction from verifyRun budget (#4098) (acfb2e87)
  • move bash_timeout_clamped telemetry after min-1000 guard, add spy assertions and background clamp test (#4096) (7f779581)
  • address advisory findings from #4005 review (#4097) (7efdf98c)

v5.324.0

2026-10-18
Added
  • post-edit LSP diagnostics (phase 1, opt-in, off by default) (#4044) (8573cfa3)
  • per-provider subagent concurrency caps for fan-out waves (#4037) (c6cf83d9)
Changed
  • complete docs overhaul: new navigation, every feature documented, generated references with CI drift gates (#4070) (ff5c18b2)

v5.323.0

2026-10-18
Added
  • add jscpd clone gate that blocks only NEW copy-paste clones (#4043) (6666a9d1)
  • add RiskCategory enum to every gate verdict and hook_decision trace event (#4045) (9dce34ea)
  • measure guardrail false-positive rate for hook-block-repeat meta-guard (#4035) (c08d437a)

v5.322.19

2026-10-18
Added
  • RemoteSubagentHandle implementing SubagentHandle over SSH transport (#4038) (b29df7f8)
  • GitHub event polling producer for the pull queue (#4039) (77838847)
Changed
  • introduce decidePathAccess — single resolve-then-decide credential floor (#4036) (61bb3f8e)
  • bump react-dom from 19.3.0 to 19.3.1 in /website (#4083) (5a9a225e)
  • bump the dashboard-dev-minor-patch group across 1 directory with 3 updates (#4089) (b61d201e)
  • bump @vitejs/plugin-react in /dashboard (#4087) (09c90e17)
  • bump next from 16.4.0 to 16.4.1 in /website (#4080) (863aae3a)
  • bump pnpm/action-setup from 4 to 6 (#4077) (9bd433d4)
  • bump the dev-minor-patch group across 1 directory with 3 updates (#4088) (23a52b97)
Fixed
  • replace Array.prototype.push.apply with concat in maskHookCommandData (#4031) (ad950330)
  • advisory findings from PR triage batch (#3831, #3812, #3810) (#4029) (6d0465c3)
  • gate bash read carve-outs on read-only commands; grant SSH public keys (#4030) (964679ff)

v5.322.18

2026-10-18
Changed
  • bump @types/node from 26.6.4 to 26.6.5 in /website (#4082) (6aeac344)
  • bump the fumadocs group in /website with 3 updates (#4079) (46697ce8)
  • bump actions/setup-node from 4 to 7 (#4078) (4b475ed7)
  • bump the prod-minor-patch group with 7 updates (#4086) (e093c5ec)
  • bump the dashboard-prod-minor-patch group (#4084) (55c38a76)
  • bump react from 19.3.0 to 19.3.1 in /website (#4081) (862168d2)
  • bump actions/checkout from 4 to 7 (#4076) (9d149f55)
Fixed
  • MCP-aware unknown-tool messages and session-init failure notice (#4068) (ad38d39a)

v5.322.17

2026-10-18
Added
  • offline OTLP/JSON export of witness traces with GenAI semantic conventions (#4046) (1fbf2426)
Changed
  • guard safe-table verdict with classifyBashCommand mutation check (#4032) (305b5f3c)
Fixed
  • strip git commit -F - heredoc body from restricted-path scan (#4034) (b5e17a20)
  • keep tools on wind-down rounds so prefix caches survive (#4048) (a139de71)
  • tell read-only git agents about the git_read swap (#4056) (d689813c)

v5.322.16

2026-10-18
Fixed
  • SDK builds and owns McpManager from config.mcpServers (#4069) (7fecda4d)

v5.322.15

2026-10-18
Fixed
  • deduct baseline-sample cost from maxUsdRemaining in verifyRun (#4004) (5a9f1b8f)
  • address remaining advisory findings from 2026-10-14 PR triage batch (#4003) (64c0ba92)
  • accumulate costUsd across all turns in RunBillingContext (#4005) (c3db1d1a)

v5.322.14

2026-10-18
Added
  • add per-slot maxOutputTokens; derive smarter default for unlisted openai-compat ids (#4025) (386a9b36)
Changed
  • cross-path dispatch-policy parity matrix (#4049) (5870700b)
Fixed
  • restore telemetry for clamped bash timeout_ms and tighten warning test (#4022) (1aaf5cbf)

v5.322.13

2026-10-18
Changed
  • verify closure provenance stamping through real emitClosureEvent path (#4021) (71460dc5)
Fixed
  • apply reflow inflation to EXPAND branch; fix tautological center-band test; add widen-guard and EXPAND tests (#4019) (c02c55c2)
  • isSuperseded cleared/paused goal, escapeXml notice, cleared-goal tests (#3987) (d9f31330)
  • warn and skip on malformed stored runAt/expiresAt (#4024) (4bbf1200)
  • document mixed provider on BillingUsage and add rollup test (#3986) (2a320c75)
  • correct billing_settled JSDoc to say cumulative totals, not delta (#4020) (a7b7a68d)

v5.322.12

2026-10-17
Fixed
  • publish remote-dispatch guide and fix broken link in tools-reference (#4018) (938dd63c)

v5.322.11

2026-10-17
Fixed
  • append wait in stdin-isolation test to drain background job before cleanup (#4017) (08bc05c9)

v5.322.10

2026-10-17
Fixed
  • add boundary test, document permissionMode host field, restore blank line (#3982) (ef9d5ec6)

v5.322.9

2026-10-17
Fixed
  • fix stale comments, add JSDoc note, extract named opts objects (#3999) (b5d2c97f)
  • advisory findings from PR triage batch (#3780, #3798, #3800, #3801) (#4000) (5ac5e6f2)

v5.322.8

2026-10-17
Fixed
  • forward operator-explicit permissionMode only; extract ResolvedSessionManagerOptions alias (#3994) (77110792)

v5.322.7

2026-10-17
Fixed
  • per-entry _schemaVersion guard in write path; shape error for primitives (#3993) (4ec15faf)
  • add missing tests for scalar-JSON guard and inflight dedup (#3991) (a2a587a9)
  • JSDoc invariants and compose exemption tests for dispatch-intent gate (#3990) (ce5822c8)
  • address advisory findings from 2026-10-15 PR triage batch (#4001) (9457323a)

v5.322.6

2026-10-17
Fixed
  • clear 2 test-typecheck errors that turned main's ratchet red (#4015) (a78bcb2a)

v5.322.5

2026-10-17
Fixed
  • tighten registry drift-catcher to reject 'inherit' model pins (#3995) (b8e10f09)
  • add hasWorkspacePreamble test and drop true as const nit (#3992) (5a08681b)
  • tighten recovery tests, add reply hint, fix readonly cast, harden rmSync (#3998) (6ae521cc)
  • tighten isStdoutOnlyCat regex and fix threat-model citation (#3996) (330ad864)
  • fix Bearer stopword lookahead \b→\s; add 8-char boundary and hyphenated-token tests (#3997) (be00c1db)

v5.322.4

2026-10-17
Fixed
  • add pinning tests for unconfined-parent writeRoots/readRoots no-op behaviour (#3797) (e88363d6)

v5.322.3

2026-10-17
Fixed
  • safe filename encoding for Telegram topic sessions; deterministic tailLedger test (#3814) (afb59aeb)

v5.322.2

2026-10-17
Added
  • add Telegram /inbox command for held peer messages (#3616) (9146a963)
Fixed
  • gate dashboard install on .modules.yaml, clean partial dir on failure, add tests (#3608) (ee1e15b8)
  • hasHandler sessionKey, concurrent-tick latch, setupNotice field (#3661) (0b298a8d)
  • strict ISO 8601 validator, overflow/null rejection, tests (#3591) (36bf64a3)
  • align dispatch guidance with tool allowlists (#3816) (35cb7ea4)

v5.322.1

2026-10-17
Fixed
  • expose skippedByBudget in VerifyResult and replace tautological assertion (#3988) (4fd46664)

v5.322.0

2026-10-17
Added
  • self-diagnosing real-Chrome setup for afk browser connect (#3933) (263b3f20)
Fixed
  • add remote_agent to tools reference (#3914) (36d51ca4)
  • shadow-git false negatives (bundled flags, backslash continuation, escaped quotes) + abort-only lost-work test (#3799) (a9ea6acf)
  • inflate pendingResizeErase footprint for centered-content narrowing resize (#3802) (b02bcd74)
  • detect lost root closure by actor provenance, not cost equality (#3935) (64ed2cfe)
  • clamp over-max timeout_ms instead of rejecting (#3820) (d5804441)
  • emit billing_settled phase for post-cancel delta; move runInProgress inside try (#3938) (9d4e021a)

v5.321.10

2026-10-17
Added
  • wake idle Telegram sessions when a background subagent settles (#3953) (7fa10cef)
Fixed
  • carry accumulated usage across stop-hook continuations (#3936) (ba01631a)
  • add --permission-mode to afk chat and pin it on remote runs (#3947) (2154b025)

v5.321.9

2026-10-17
Fixed
  • narrow read-only dispatch-intent gate, name the match, enforce in compose (#3944) (733eff5b)
  • await startup recovery in HandoffMaintenanceHandle.stop() (#3948) (e7b0dd40)
  • lost-args failureClass, alignment guard, and missing tests (#3952) (1757ff41)

v5.321.8

2026-10-17
Fixed
  • thread parentBillingStreams registry so depth-2+ abandoned streams reach session_sealed (#3962) (29b36826)

v5.321.7

2026-10-17
Added
  • mark subagent results as superseded when goal changed at delivery (#3951) (b1cdb4f1)
Fixed
  • add missing stderr tests for OAuth/refresh paths; use restoreAllMocks (#3946) (8e47c5d4)
  • harden skill-reference telemetry — non-object JSON guard, in-flight promise dedup, Set-based dedup (#3940) (57a037df)
  • address advisory findings from 2026-10-16 PR triage batch (#3955) (10b91b0e)

v5.321.6

2026-10-17
Fixed
  • add maxTurns to cost estimator to model multi-turn episode spend (#3949) (fa420138)
  • gate splitAtWorkspacePreamble on fork provenance, not marker text (#3943) (eeca6650)
  • clarify JournalMeta.model semantics, fix child provider source, add noop forSubagent params (#3950) (12694cb0)
  • guard sumBillingUsage provider mismatch + document outcome tag on SessionExecutorsBindTarget (#3941) (bb3f0ffe)
  • remove skippedByBudget double-count in runTask (#3945) (a4e87629)
  • add schema-version guard to loadSchedules; refuse future/unknown shapes (#3954) (4e0c0a17)
  • wire bot-level permissionMode into every Telegram session's AgentConfig (#3942) (7a9fd9f4)
  • narrow Bearer/AWS false positives from loosened anchors (#3937) (2ea8bc3d)

v5.321.5

2026-10-16
Fixed
  • roll nested and skill fork spend into root session (#3960) (713edaea)

v5.321.4

2026-10-16
Fixed
  • pin receipt cost rows and trace total; fix facet doc (#3911) (9835afd8)
  • reclaim parked lease immediately when periodic sweep expires its handoff (#3913) (72ab0460)

v5.321.3

2026-10-16
Fixed
  • harden remote_agent cwd validation, quoting, and output framing (#3917) (e4b55fd6)

v5.321.2

2026-10-16
Fixed
  • re-send handoff reminder with inline keyboard buttons on recovery (#3915) (9b6e374c)
  • stop builtin agents and fix-pr from pinning models (#3926) (801f2a85)
  • stamp subagentId on child closure events so root-filter guard works (#3912) (060ee7a1)

v5.321.1

2026-10-16
Fixed
  • resolve each probed slot's route once instead of twice (#3910) (0a8139a9)
  • merge prompt-dump secret shapes into canonical redactSecrets; add parity test (#3918) (d4d7fb05)
  • correct lost-root-closure under-report and backstop-seal $0 root (#3909) (b694971f)

v5.321.0

2026-10-16
Added
  • billing-normalized token rollups split by provider (#3889) (ff2316cf)
Fixed
  • downgrade plan mode to default on Telegram (seed drain is REPL-only) (#3916) (c5f7f45c)

v5.320.5

2026-10-16
Fixed
  • keep per-fork workspace preamble out of the sibling-shared cached prefix (#3923) (5d12bcde)

v5.320.4

2026-10-16
Fixed
  • retire dead gpt-5.4/grok-4.6 ids, add gpt-6 family (#3825) (2a1ac81c)

v5.320.3

2026-10-16
Fixed
  • stop runAt overlap noise, record blocked reasons, warn on date-pinned crons (#3824) (e6437fc7)

v5.320.2

2026-10-16
Fixed
  • truncatedByBudget false when all episodes ran despite budget exceeded (#3906) (7fa0605d)
  • send MCP status logs to stderr so -f json stdout stays clean (#3905) (1c7a04c6)

v5.320.1

2026-10-16
Fixed
  • preserve existing body >300 chars when reinforcing SPINE entries (#3908) (58c9dd16)
  • resolve slash-routing contradiction and measure mid-message skill references (#3884) (99ac1575)
  • stop /clear waiting on the SPINE classifier (#3843) (5817ea85)
  • route-aware credential check and suppress SPINE.md rewrites in A/B arms (#3907) (d98a6350)
  • stream chatgpt-oauth turn events instead of buffering the whole turn (#3826) (40ee2959)

v5.320.0

2026-10-16
Added
  • probe model slots with a custom endpoint + docs: local Mac model guide (#3887) (283cc1f0)

v5.319.6

2026-10-16
Fixed
  • one shared session-cost definition that includes subagent spend (#3888) (a5bb4943)

v5.319.5

2026-10-16
Fixed
  • guard stale-unlink retry in worktree-sweep lock on Windows (#3881) (ebeaadd9)
  • keep [vitals] notes out of the Esc-Esc rewind picker (#3870) (048b33d9)

v5.319.4

2026-10-16
Changed
  • add explicit threat model (docs/threat-model.md) (#3851) (835fe595)
Fixed
  • apply Windows delete-pending contention fix to 3 remaining O_EXCL lock sites (#3875) (01c74ea8)
  • treat mutating bash calls as writes for last-mutation ordering (#3872) (be5fcef5)
  • extract splitFrontmatter to unify three divergent frontmatter parsers (#3874) (f0de21bc)
  • anchor truncated-marker fallback to tail; export shared constant (#3873) (0b4fe90f)
  • accept read-only polling builtins and pipelines (#3853) (2980ab38)
  • add remote_agent to ALWAYS_EXTERNAL_TOOLS (#3871) (8b51407c)
  • ignore proven quoted heredoc data (#3855) (2a65059c)
  • let confined forks write to the OS temp dir (#3864) (95dbc2c2)

v5.319.3

2026-10-16
Fixed
  • run handoff maintenance and resumption in every daemon mode (#3877) (c6f259ea)

v5.319.2

2026-10-16
Fixed
  • pin shared WorkspaceStore lifetime across child session close (#3827) (bd119ab9)

v5.319.1

2026-10-15
Changed
  • retire proxy-redundant egress checks (#3854) (c2a3cb8e)

v5.319.0

2026-10-15
Added
  • accept free-text revision feedback in exit_plan_mode (#3832) (4d1fb31d)

v5.318.13

2026-10-15
Fixed
  • stop confining unconfined openai-compatible forks to read roots [] (#3815) (82aa12e4)

v5.318.12

2026-10-15
Added
  • read-only GET /api/handoffs lists pending daemon handoffs (#3858) (9fcc9ae5)
Changed
  • replace fixed sleep with vi.waitFor in background-registry stopReason meta test (#3844) (e2a95438)
Fixed
  • expire daemon handoffs on the pull tick under the handoff lock (#3859) (d8e0c3fc)

v5.318.11

2026-10-15
Added
  • remote_agent tool dispatches afk agents to other machines over SSH (#3837) (70fd1d49)
Fixed
  • canonical redactSecrets in whatif runner; escape bg-result envelope attributes (#3857) (b5b407b5)

v5.318.10

2026-10-15
Fixed
  • reject whatif --aa --verify, which silently ran no episodes (#3856) (0c7d88a8)

v5.318.9

2026-10-15
Added
  • record running afk version and the child's real model in journal meta (#3808) (#3830) (d5f4731b)
  • opt-in git_read tool replaces bash on read-only children (#3812) (74f4daba)
Changed
  • pin Scenario 4, a bash write after a test pass leaves the artifact unverified (#3810) (1d8cfc99)
Fixed
  • do not dispatch tool calls whose arguments were lost or unparseable (#3829) (f0c8dd46)
  • bound seal() wait on pending child writes; InMemoryTraceWriter parity (#3831) (d336dafc)

v5.318.8

2026-10-15
Changed
  • pin Scenario 5, future-version schedules.json is cast, not refused (#3809) (7f76a0c5)
  • never cancel in-progress CI runs on main (#3818) (3cfa7a6b)
  • add nightly live provider test workflow (#2217) (eda80a93)
Fixed
  • refuse to overwrite an unreadable schedules.json (#3819) (5224e6cc)

v5.318.7

2026-10-15
Fixed
  • stop treating "next" Done bullets as deferred work (#3813) (324d4eb7)

v5.318.6

2026-10-15
Fixed
  • distinguish hook command data from executable input (#3780) (36fa3b4d)
  • center status line under AFK_CENTER_CONTENT (#3801) (7b900f23)

v5.318.5

2026-10-15
Changed
  • BgResultNotifier.dispose() with pending injections (turn-ends-before-drain) (#3804) (957616d5)
Fixed
  • preserve GhError detail, tighten test coverage across advisory items (#3798) (1ff57c30)
  • replace fixed sleep(600) with vi.waitFor in send-failures test (#3800) (0cf36811)

v5.318.4

2026-10-15
Changed
  • pin Scenario 3 – goal change while worker runs yields no superseded marker (#3806) (4af5afe4)
Fixed
  • await pending child cancellation writes inside TraceWriter.seal() (#3807) (6f391479)

v5.318.3

2026-10-15
Fixed
  • import REDUNDANCY_THRESHOLD and add fixture similarity assertion in run.test.ts (#3803) (476bc5b5)
  • add direct unit tests for checkReadOnlyDispatchIntent gate (#3805) (3bbce2c0)

v5.318.2

2026-10-15
Fixed
  • correct mislabelled catch-branch line numbers in schedule.test.ts (#3733) (4981f257)

v5.318.1

2026-10-15
Added
  • block-evasion monitor — analyzer, tests, and afk trace show --evasion (#3785) (48f2fa56)
  • shadow-mode detector for git --no-verify and identity overrides (#3783) (b4457491)
Fixed
  • address advisory findings from 2026-10-14 PR triage batch (#3791) (4949cadf)

v5.318.0

2026-10-15
Added
  • hook-block repeat circuit breaker (#3789) (adcc1ace)
Changed
  • Happy Eyeballs fallback + split connect/inactivity timeout (#3792) (1612ec17)

v5.317.1

2026-10-15
Changed
  • skip SessionStart dispatch entirely for forked children (#3784) (7dfcc534)
Fixed
  • remove catchHandled dead code, fix exhaustiveness cast, drop unused generic (#3790) (ca243e50)
  • reject implementation dispatches to read-only named agents at dispatch time (#3786) (6319c4ba)

v5.317.0

2026-10-15
Added
  • read-only hooks view; config_get errors on unknown keys (#3735) (db3038da)
Fixed
  • drop redundant early-return, warn on partial mid-flight deletion, reorder collectAsyncIter, add direct unit tests (#3782) (9385e52b)

v5.316.4

2026-10-15
Changed
  • restore .test-typecheck-baseline.json (2767) (#3793) (a43552fb)
Fixed
  • document compose leaf tool restrictions (#3778) (1fa2e823)

v5.316.3

2026-10-15
Fixed
  • repair test type errors from #3765 breaking lint:tests:check on main (#3788) (69f323a3)

v5.316.2

2026-10-15
Changed
  • Delete .test-typecheck-baseline.json (5982190e)
  • Delete .commit-msg (ccf73716)
  • Delete themes/terax directory (8b4656cd)
Fixed
  • fix value/checked precedence, escape testId, wrap map callback, JSDoc, targeted tests (#3729) (c16ea0e0)

v5.316.1

2026-10-15
Changed
  • fix journal writer path in tracing section (#3787) (1e236048)
  • cover gh jq flag alternatives (#3777) (b15eac1e)
  • cover production dispatcher cwd setup (#3775) (adcb0671)
  • clarify root grants for unconfined forks (#3772) (1a76dde6)
Fixed
  • distinguish recovered gate blocks from failed runs (#3781) (295e9b22)
  • reject fatal test typecheck input diagnostics (#3773) (000c958e)
  • make AFK_CENTER_CONTENT render as faithfully as non-centered mode (#3765) (e33892ff)
  • redact raw value from budget env warnings; say "finite" for Infinity (#3743) (14d97841)
  • tighten refusal guidance and clarify factory contracts (#3774) (42eda72b)
  • pin bug filing host and bound confirmation previews (#3776) (4275b6d3)

v5.316.0

2026-10-14
Added
  • /bug --file files the report directly with gh after confirmation (#3750) (81098984)

v5.315.3

2026-10-14
Added
  • add /bug to report bugs via a prefilled GitHub issue link (#3746) (e30f0b14)
Fixed
  • show status-bar cap when maxBudgetUsd === 0 (hard-stop sentinel) (#3745) (be9a4a94)
  • name sanctioned alternatives in high-risk refusals (#3727 follow-up) (#3760) (ef09815a)

v5.315.2

2026-10-14
Fixed
  • restore lint:tests:check on main (merge race #3748/#3747) (#3768) (6184908e)

v5.315.1

2026-10-14
Changed
  • write mutable JSON snapshots atomically (#3749) (d58ad5cb)
  • assert maxBudgetUsd reaches Telegram/REPL; add Infinity parser cases (#3748) (bd200f8f)
  • MCP tools are top-level only, not shared with subagents (#3753) (923061a4)
Fixed
  • stop confining unconfined forks to read roots [] (#3734) (761a2580)
  • match BASH_SAFE only at command position (#3761) (e608a1d6)
  • refresh advertised catalog on setCwd so execution and wire catalog agree (#3744) (c27de050)
  • make lint:tests:check gate visible by fixing TS6059 rootDir blindness (#3747) (3c1ec3ae)

v5.315.0

2026-10-14
Added
  • content-addressed checkpoint blobs with integrity verification (#3628) (1215b324)

v5.314.0

2026-10-14
Added
  • suppress no-info hook_decision rows, add hook_summary and search_witness where filter (#3728) (b5c39cab)

v5.313.15

2026-10-14
Fixed
  • extract streamer.utils.ts, add settled guard, consolidate killGroup, add helpers tests (#3740) (6621d7a0)
  • close egress proxy test coverage gaps (items 1-4) (#3742) (484d37dd)

v5.313.14

2026-10-14
Fixed
  • add PreToolUse order assertion and deduplicate Invariant comment (#3730) (54af8768)
  • route browser login launch through GuardedEgress proxy (#3731) (a415bd0b)
  • batched nits — comment, unreachable fallback, mock cleanup, collectAsyncIter, named guard, debugLog (#3640) (1d93e243)

v5.313.13

2026-10-14
Fixed
  • name the safe alternative in two high-friction denials (#3727) (aa94b8e7)

v5.313.12

2026-10-14
Added
  • durable pending-question store wired into elicitation router (#3678) (3cceb09d)
Changed
  • adopt atomic-write at 5 hand-rolled sites (#3668) (3e47d1ec)
  • add SW(29,16) symmetric weighing matrix (#3722) (034e2f89)
Fixed
  • split question-only prompts over 4096 chars (item 3) (#3663) (990f8646)

v5.313.11

2026-10-14
Changed
  • split createDefaultHookRegistry under 200-line ceiling (#3684) (c8151569)
  • split transformProviderEvent under 200-line ceiling (#3667) (6b6691a2)
  • split startShell under 200-line ceiling (#3682) (9b1d4554)
  • split parseAgentInput under 200-line ceiling (#3666) (aa03c31a)
  • split observePage under 200-line ceiling (#3681) (2c42787c)
  • split parseComposeInput under 200-line ceiling (#3683) (4e0a74d4)
  • raise coverage on COV-009..013 modules (#3669) (688e0fa1)

v5.313.10

2026-10-14
Changed
  • SW(27,16) result write-up and README section (#3717) (cfcb1f06)
Fixed
  • apply SSRF egress guard to browser_open navigation (#2313) (109db833)

v5.313.9

2026-10-14
Changed
  • split registerChatCommand under 200-line ceiling (#3685) (55a74162)

v5.313.8

2026-10-14
Changed
  • split buildChildConfig under 200-line ceiling (#3688) (2c4945d7)

v5.313.7

2026-10-14
Added
  • write-ahead intent, outcome-unknown status, and pre-execution retry gate (#3713) (e7ee6b30)
Changed
  • clean-install guide, task pack, and intervention log for outside-user trial (#3711) (fb322dc2)
  • shared execFileAsync export and abortReason helper (#3686) (1b612231)
  • deterministic repro for parent seal over live child subagents (#3712) (86e8ea18)
  • pathExists helper and atomic-write adoption at remaining tmp+rename sites (#3687) (d129bd58)
  • extract rawPostOAuthForm; consolidate xAI device-code POST blocks (#3702) (5523afb6)
Fixed
  • replace fixed sleeps with vi.waitFor in elicitation intercept tests (#3701) (7046c5b2)
  • make afk whatif --aa reachable from the CLI and /whatif (#3715) (1b18068f)

v5.313.6

2026-10-14
Fixed
  • resolve nit/low advisory findings from PR triage batch #3670-#3680 (#3703) (10538e16)

v5.313.5

2026-10-14
Added
  • per-model-slot tool deny list (tools.disabledBySlot) (#3704) (2e6ea1aa)
Fixed
  • wire AFK_MAX_BUDGET_USD to daemon, Telegram, and REPL sessions (#2314) (ebdf6a4d)

v5.313.4

2026-10-14
Changed
  • split createBashHandler under 200-line ceiling (#3690) (93ff16b5)
  • split SubagentHandleImpl.run under 200-line ceiling (#3700) (cbfbe6b7)

v5.313.3

2026-10-14
Changed
  • split SubagentManager.forkSubagent under 200-line ceiling (#3699) (f0c909da)

v5.313.2

2026-10-14
Changed
  • split anthropic-direct runTurn under 200-line ceiling (#3698) (e43106db)
  • split preserveRowsBeforeFrameRender under 200-line ceiling (#3692) (1a8a234b)

v5.313.1

2026-10-14
Changed
  • split consumeRoundStream under 200-line ceiling (#3697) (84ca3e2b)
  • split ComposeExecutor.execute under 200-line ceiling (#3696) (d4801b60)
  • split streamToFinalMessage under 200-line ceiling (#3695) (755eaf31)
  • split handleEnter under 200-line ceiling (#3691) (300d76ee)
  • split runForegroundWithPromotion under 200-line ceiling (#3689) (e16db44d)

v5.313.0

2026-10-13
Added
  • tag learning facts with [auto-reflected] at recall (#3677) (d5a9697c)
Fixed
  • cosmetic comment fixes — resize-burst B5 discriminant, advanceTimersByTime explanation, rm onRetry warn (#3671) (a559dd18)
  • replace raw bash/grep overflow-kill warn with a styled tool-row label (#3680) (0ae2bdfd)

v5.312.9

2026-10-13
Added
  • document and test redundancy preflight warning (#2414) (#3675) (c2b661ac)
Changed
  • split applyPatch and createImageGenerateHandler under 200-line ceiling (#3673) (4fbf2222)
  • extract renderRootOrderLines + flush helper; handleCompact method (#3672) (8a766a43)
  • drop NodeJS.ErrnoException casts at 12 production sites (#3676) (0506684c)
  • adopt IncrementalLineReader/readJsonlFile at remaining hand-rolled sites (#3670) (c41bc657)
Fixed
  • static deliverClean import, restore Invariant comment, add ALS comment, dedupe JSDoc, remove unused env re-export (#3679) (3332ed78)

v5.312.8

2026-10-13
Changed
  • split interactive runTurn under 200-line ceiling (#3650) (43d3a44b)
Fixed
  • advisory findings from PR triage batch #3638-#3647 (#3664) (9e3cf384)
  • remaining cosmetic items — fast-path comment, dedupe compose-agent-resolve tests (#3662) (e1012b60)

v5.312.7

2026-10-13
Changed
  • split telegram streamResponse under 200-line ceiling (#3658) (4b286689)

v5.312.6

2026-10-13
Changed
  • split makeTelegramElicitationHandler under 200-line ceiling (#3656) (2d3cf0b5)
  • split runSweep under 200-line ceiling (#3657) (2fa61bb6)

v5.312.5

2026-10-13
Changed
  • split registerInteractiveCommand under 200-line ceiling (#3651) (7cebc1cf)

v5.312.4

2026-10-13
Changed
  • split setupSurface under 200-line ceiling (#3648) (26ffc64e)

v5.312.3

2026-10-13
Changed
  • split renderToolLaneOverlay under 200-line ceiling (#3649) (52e8909b)
  • add shared execFileAsync (#3653) (20968114)
  • add abortReason helper for AbortSignal.reason sites (#3654) (ccfe7fe5)
  • adopt isErrnoCode/isEnoent at errno cast sites (#3655) (79026f23)

v5.312.2

2026-10-13
Fixed
  • narrow-terminal layout: wrap to real width, force spill below 20 cols, add edge-case tests (#3643) (2cc5fb5f)

v5.312.1

2026-10-12
Changed
  • split stream-rendering functions under 200-line ceiling (#3609) (68740aeb)
  • telegram clear-or-queue delegation + bareSkillName helper (#3645) (9a99c78b)
  • adopt isEnoent at file-checkpoint, peer inbox, and user-skills sites (#3647) (538f6c74)
Fixed
  • use native Rolldown dashboard build options (#3592) (ee49d01a)
  • verify OAuth form global fetch fallback (#3590) (9c24cc0a)
  • advisory follow-ups — store comment, selectors guard, drain-rejects test, outcomes barrel doc (#3593) (45ddcb2e)
  • collision-only scrollback, type-guard filter, echo original, derive prefix cols, spill-ordering tests (#3639) (f5bc519c)
  • telegram ask_question edge cases near 4096-char limit (#3646) (fddb4b67)
  • address advisory findings from 2026-10-12 PR triage batch (#3642) (f59ec87c)
  • refactor updateHandoffAnswer to options object, tighten from type, add PII JSDoc, debugLog, and tests (#3641) (ecc51dbe)
  • low/cosmetic fixes — @internal, EPERM note, spawnError, workspaceClose assert, mcp example (#3644) (0bd4138c)
  • remove unused _sandboxes param, reject --aa+--spec, clarify A/A stage name (#3638) (a0045d86)

v5.312.0

2026-10-12
Added
  • content-addressed artifact registry (put/get/list/read) (#3629) (f22ec95a)

v5.311.0

2026-10-12
Added
  • return committed fact access metadata (#3623) (2ebcb5d8)
  • add --aa flag for A/A calibration mode (Step 0) (#3630) (6a50ad73)
  • install daemon elicitation handler for cron/sessionstart tasks (#3619) (8e10e234)

v5.310.14

2026-10-12
Added
  • add responderIdentity to HandoffRecord for response provenance (#3627) (a1e07953)
Changed
  • adopt readJsonlFile in ledger/store; audit remaining sites (#3622) (5f38fe77)
Fixed
  • address advisory findings from 2026-10-12 PR triage batch (#3626) (dec4d416)
  • thread customBaseURL into resolveWireMode on complete() and one-shot-router paths (#3624) (a93be7fe)

v5.310.13

2026-10-12
Added
  • opt-in repo-declared worktree setup step (#3611) (8715836c)
Changed
  • adopt atomic-write for launchd plist install/upgrade (#3615) (8788ae22)

v5.310.12

2026-10-12
Fixed
  • never cut off ask_question text (#3625) (4f04d330)

v5.310.11

2026-10-12
Changed
  • raise bot.ts statement coverage 56.5% → 91.6% (setupHandlers closures) (#3618) (a99e34ef)
  • extract connectMcpTraced helper (MCP trace-phase duplication) (#3617) (937f8fd8)
  • adopt errorMessage at ?? 'aborted' sites in abort.ts and browser/web handlers (#3614) (01c1cb90)
  • convert score/writeScore to writeJsonFileAsync (#3612) (4037a8a2)
  • strengthen B3/B5 resize-burst precision + add cpr diagnostic (#3603) (b61e74d7)
Fixed
  • match BASH_HIGH tokens only at shell word starts (#3610) (f4cf9300)
  • thread AFK_THINKING/AFK_EFFORT into Telegram bot constructor (#3613) (1192ede6)

v5.310.10

2026-10-12
Changed
  • wait for schedule writers to close before retrying cleanup (#3600) (43676d18)
  • reuse one validated temp-root snapshot per write classification (#3604) (5dc1b243)
Fixed
  • track StateStore handles to fix Windows EBUSY on kv.db teardown (#3605) (5144a3ba)
  • review follow-ups from #3582, #3583, #3584 (#3598) (d5c71a3d)
  • move WorkspaceStore into try and log session-close failures (#3597) (073ac4e8)
  • advisory findings from 2026-10-09 PR triage batch (#3594) (42bfa165)
  • align mkdir options and preserve private state parents (#3599) (c313e2e5)
  • per-root try in afkStateRootsResolved, test hygiene (#3596) (d0fdeebd)
  • unify OAuth resolution and guard one-shot endpoints (#3595) (79966b65)

v5.310.9

2026-10-12
Fixed
  • auto-install dashboard deps in build-web-ui when missing (local only) (#3602) (ffe5fa8f)

v5.310.8

2026-10-12
Fixed
  • support comma-list brace expansion in the glob tool (#3578) (#3582) (29d90d53)

v5.310.7

2026-10-12
Fixed
  • one leaf tool surface for every compose node (#3579, #3580) (#3583) (61164044)
  • credential gate honors --model/--provider (#3581) (#3584) (b6e3e8ba)

v5.310.6

2026-10-12
Added
  • file checkpoint and rewind (write_file, edit_file, patch_apply) (#3355) (5365d21a)
Fixed
  • recreate owned stores after provider close (#3567) (5f671185)

v5.310.5

2026-10-12
Fixed
  • pass thinking/effort from env to Telegram bot sessions (#3289) (9ea268b9)

v5.310.4

2026-10-12
Added
  • add afk restart for AFK background services (#3290) (3ccb0096)
Fixed
  • close surface-owned session stores (#3568) (13cc408a)
  • finish one-shot schedule surfacing and advisory cleanup (#3573) (86ec6d15)
  • exclude all AFK state roots from temp writes (#3566) (79e3e979)
  • finish scoped advisory fixes and regression coverage (#3571) (f147fd64)
  • strengthen isIndexLine guard to AND all field checks (#3565) (226dc7b0)

v5.310.3

2026-10-12
Changed
  • document verdict reasons and temp-root privacy (#3569) (6eab069d)
  • add Invariant: prefix to long JSDoc block in stream-renderer-dispose.ts (#3564) (c0ead9bd)
Fixed
  • correct workflow annotations and formatter edge cases (#3570) (3dec3a1e)

v5.310.2

2026-10-11
Fixed
  • complete advisory cleanup and release test ledger (#3574) (98980630)

v5.310.1

2026-10-11
Changed
  • pin conservative BASH_HIGH classification for heredoc prose (#3549) (0c6adaf9)
Fixed
  • preserve width-only erase snapshot during SHRINK within a CPR burst (#3293) (bf2cfba1)
  • cross-prefix npm, post-update service restart, Cellar execPath normalization (#3300) (dfb5699e)

v5.310.0

2026-10-11
Added
  • remove AFK_OPENAI_CHATGPT_OAUTH; ChatGPT OAuth is the last-resort tier (#3388) (23404057)

v5.309.5

2026-10-11
Fixed
  • posix-guard timeout, scheduler gate indentation, double applyAutoDisable, JSDoc corrections (#3526) (e8a88411)

v5.309.4

2026-10-11
Changed
  • extend skip-audit table with 4 additional non-JSONL-parse sites (#3528) (ae5ab60d)
  • retire disposeRenderer from funcsize baseline (#3525) (c2a497c5)
  • extract getScopeAbortMessage to utils/abort (#3529) (b63407ba)
Fixed
  • strengthen isIndexLine guard and fix isError assertion (#3527) (a253e5f2)
  • dedupeAndSort simplification, double-bind guard, armTimeout-after-dispose test, JSDoc fix (#3523) (efae12ce)

v5.309.3

2026-10-11
Fixed
  • never close caller-injected stores in provider.close() (#3559) (c08635e2)

v5.309.2

2026-10-11
Changed
  • raise coverage on src/cli/commands/browser.ts (16% → 98%) (#3557) (21c749fa)
Fixed
  • advisory findings from 2026-10-11 PR triage batch (#3552) (157854cd)

v5.309.1

2026-10-11
Added
  • support object-valued source entries in marketplace manifests (#3551) (a29885d3)
  • make cron-task elicitations visible via handoff + notifyOn (#3531) (0410547f)
Changed
  • bump the fumadocs group across 1 directory with 2 updates (#3535) (5aca60fc)
  • bump typescript from 5.9.3 to 7.0.2 in /dashboard (#3543) (b2181af7)
  • adopt atomic-write helper at 4 hand-rolled tmp+rename sites (#3530) (1328d226)
  • adopt errorMessage helper at 4 telegram sites (#3548) (79bbbe49)
Fixed
  • close provider SQLite handle (kv.db) when session closes (#3550) (a7f30981)

v5.309.0

2026-10-11
Added
  • treat system temp dir as safe for AFK writes; specific block reasons (#3533) (170bf9ef)
Changed
  • bump vite from 6.4.3 to 8.3.3 in /dashboard (#3541) (38e1ab9c)
  • bump lucide-react from 1.52.0 to 1.53.0 in /dashboard in the dashboard-prod-minor-patch group (#3540) (eb47e9f9)
  • bump next from 16.3.8 to 16.4.0 in /website (#3536) (f94afd18)
  • bump actions/upload-artifact from 6 to 7 (#3539) (91f3c0cd)
  • bump actions/setup-node from 4.4.0 to 7.1.0 (#3538) (976928a8)
  • bump actions/checkout from 4.4.0 to 7.0.1 (#3537) (3bc9e5b7)
  • bump the prod-minor-patch group with 3 updates (#3542) (0228d146)
  • fix plugin install example — use real plugin, show marketplace flow (#3343) (2d579b46)
Fixed
  • blockquotes own one trailing newline and keep their bar across gaps (#3547) (a63ffaa8)
  • start nested lists in tight items on their own line (#3544) (c643e0e2)

v5.308.13

2026-10-11
Added
  • service status shows running version and warns on skew (#3313) (72b5dd8c)
Fixed
  • model_complete accepts empty prompt when input_path is set (#3344) (60bbe3e2)
  • advisory findings from 2026-10-08 pr-triage batch (#3347) (e17bf566)
  • render ledgerTruncated in insights HTML; remove dispatcher double-gate; export LEDGER_READ_LIMIT (#3374) (cd35a29e)

v5.308.12

2026-10-11
Changed
  • extract downloadTelegramFile into media-download.ts (#3306) (f0e3f9d6)
Fixed
  • fix --days 0 parsing, ledger cap warning, hidden-cluster count, path sanitization (#3373) (53aaf569)
  • add unnamed-worker empty-guard test + fix JSDoc arg reference (#3391) (b13a1f86)

v5.308.11

2026-10-11
Changed
  • extract renderPickerRows/handlePickerKey from runPicker; extract renderOverlayNestingChild from renderOverlayChildren (#3515) (39776e19)

v5.308.10

2026-10-11
Changed
  • extract runDaemonAction and runFarmPostRun under 200-line ceiling (#3516) (4f6800ba)

v5.308.9

2026-10-11
Changed
  • retire handleNavKey + readWithAutocompleteTty from funcsize baseline (#3514) (b03e5ae8)

v5.308.8

2026-10-11
Changed
  • raise coverage on entry.ts, manager.ts, setup-wizard.ts, bot.ts (COV-011,014,016,017) (#3521) (c638b1e5)
  • adopt atomicWrite/writeJsonFile in spine/dag/worktree/migrate/oauth (#3520) (86d5df9d)
  • audit remaining parseJsonlLines sites; document skipped loops in telemetry-reader (#3518) (0d6a09e8)
  • DEAD-033 incremental — agent/index.ts + tools/schemas.ts (88 unused exports) (#3517) (b873c472)
  • DEAD-033 incremental — src/agent/outcomes/index.ts (54 unused exports) (#3513) (ae40bfe6)
  • convert remaining hand-rolled error/execFile sites to shared helpers (#3461) (37a4467c)
Fixed
  • disposed guard in armTimeout, formatApprovalTimeout helper, crash-notifier comment, test nits (#3512) (4d6ce9ec)
  • dedupeAndSort helper, discriminant cast, ledger comment, audit-fit hoisted default, runtime-source history prefix, test name fixes (#3511) (36e22aef)
  • address advisory findings from #3472 review (#3510) (3fdedcf6)
  • dispose latch, compose-toggle guard, @experimental tag, concurrent-dispose test (#3509) (f41e6d26)
  • guard sessionId undefined + merge preflight imports (#3508) (81f05202)
  • address advisory findings from #3471 review (#3507) (e07192c4)
  • drop async from submitPrompt/submitSkillMessage, move buildChatGptOAuthResult up (#3506) (6e7c86db)
  • migrate createWiredExecutors inline proxy onto makeDeferredParentProxy (#3505) (53a3ede4)
  • address advisory findings from #3473 selector refactor (#3504) (9a9d7f99)
  • migrate external mcp/config-loader importers to barrel (#3503) (2b2e28c3)
  • advisory findings from 2026-10-09 PR triage batch (#3468) (ec6d0785)

v5.308.7

2026-10-10
Changed
  • remove log-update — compositor-less TTY path is unreachable (#3486) (7f9a56f2)
Fixed
  • daemon tasks can disable their own schedule without approval (#3488) (dfa60454)

v5.308.6

2026-10-10
Added
  • first-class runAt one-shots and expiresAt hard expiry for schedules (#3491) (95541352)
Changed
  • retire the last 6 .filesize-baseline.json entries (#3492) (37160e26)
  • retire 4 TUI funcsize baseline entries via helper extraction (#3487) (fd472209)
  • extract postOAuthForm shared helper for xAI OAuth form POSTs (#3469) (a0162904)
  • correct tui-architecture-map tracks, pain points, and hotspot table (#3484) (c8855c04)
Fixed
  • record status:blocked and fire notifyOn:failure when AFK gate hard-blocks tool calls (#3489) (1ecf9ada)
  • classify 403 oauth_not_allowed_for_organization as transient (#3485) (9cb00718)
  • replace clearAllMocks with resetAllMocks and widen far-reset margin (#3490) (d88cbef0)

v5.308.5

2026-10-10
Added
  • opt-in agent/skill/compose executors for SDK sessions (#3442) (#3483) (3a2918c7)
Changed
  • advisory cosmetic fixes from 2026-10-09 PR triage batch (#3471) (1696be99)
  • extract buildVerificationResultTail shared helper (#3472) (abcd0b75)
  • DEAD-033 incremental — src/agent/mcp/index.ts (15 unused exports) (#3474) (782f55ec)
  • same-file private helper extractions (#3477) (36cbd123)
  • extract makeDeferredParentProxy shared helper (#3475) (5f72a5d4)
  • extract invokeSkillPreflight shared helper (#3476) (6ed1083b)
  • extract runSelectorLoop skeleton shared by both selectors (#3473) (239b51fa)
Fixed
  • crash-notifier reset leak, double busy_timeout, shared deferred abort scope (#3482) (2ed4a8c3)
  • discriminant guards, parseFlagsField dedupe, audit-fit test, runtime-source comments (#3470) (ac88fdc9)

v5.308.4

2026-10-10
Changed
  • upgrade vitest to v5 (#3455) (db92de18)
Fixed
  • address advisory findings from #3401 review (#3449) (f794878f)
  • fix advisory findings from pr-triage review #3398 (#3447) (beb2cafb)

v5.308.3

2026-10-10
Changed
  • fix bufferedLength JSDoc and remove duplicate newline comment (#3410) (1e35a8fa)
  • cover afk schedule command (COV-012) (#3453) (60f0f9d9)
  • cover marketplace browse slash command (COV-015) (#3451) (7b286760)
  • cover REPL cleanup (COV-018) (#3456) (9296fe4a)
  • cover afk browser command (COV-010) (#3452) (ffe88ce9)
  • extract installCrashNotifier shared by telegram and daemon (#3459) (156e70fe)
  • share request abort scope between web_request and web_scrape (#3458) (d5612e18)
  • remove Agent Browser backend; Playwright is the only backend (#3450) (f21d81d3)
  • extract configureSqliteConnection for state/workspace/memory stores (#3457) (b397c8d0)
  • upgrade marked to v18 (#3437) (537f3e41)
Fixed
  • add safety comment to rest as T cast in clampBreakpoints (#3445) (428e2697)
  • remove stale 'threads' category, guard default backticks, regen MDX (#3448) (9cd8c1c6)
  • warn and document that SDK sessions lack agent/skill/compose tools (#3454) (d5364a23)

v5.308.2

2026-10-10
Changed
  • cover afk service command (COV-007) (#3421) (a29df44b)
  • cover audit-fit skill (COV-013) (#3436) (1ce3dba1)
  • cover afk telegram command (COV-008) (#3432) (fc314fc3)
  • remove internal @deprecated symbols that need no major (#3435) (1c22de65)
  • extract 4 same-site helpers (category, enum, changelog, fixture-parse) (#3418) (d2c29953)
  • prune unused exports surfaced by knip (#3438) (89c24937)
  • adopt parseJsonlLines in 3 parse loops; migrate gates.ts to bounded telemetry reader (#3417) (d43618b2)
  • adopt atomicWrite in utils/journal/tools/peer/score (#3433) (f64c635e)
  • adopt json-file read-or-default helper (#3423) (45b4f139)
  • regenerate env-var page for AFK_VITALS (unbreak main CI) (#3446) (c6f7088e)
Fixed
  • assert path extension and tighten output_format body regex in tests (#3441) (ff0e5ded)
  • address advisory findings from #3395 review (#3440) (6589479c)
  • thread afkHome through RuntimeSourceDeps, add TTL cache tests and debug log (#3415) (705c9507)
  • strip [vitals] spoof lines from tool output on openai-compatible path (#3443) (69d3e4b2)
  • validate frontmatter flags, cap body scan, cache harvest, document contract (#3444) (2cbb6aff)
  • hermetic EACCES mocks and narrow parse-phase catch in json-file (#3414) (be1ec37f)
  • test hygiene, flake guard, boundary perf, docs nit (#3412) (1e36f8d1)
  • advisory follow-ups from #3381, #3376, #3375 (#3411) (abfeec38)
  • use isEnoent in queue-store, fix import spacing (#3439) (2f90a13d)
  • retry ChatGPT-OAuth 401 with fresh token from disk (#3413) (b0a06791)

v5.308.1

2026-10-10
Changed
  • upgrade dotenv to v18 (#3422) (ba8bdbd2)
  • adopt atomicWrite in daemon/worktree/session stores (#3420) (37dbd6fd)
Fixed
  • distinguish thrown push from unconfigured, add redaction+overflow tests (#3416) (a5c863c5)

v5.308.0

2026-10-10
Added
  • per-round [vitals] note for live clock, context, and usage awareness (#3419) (e56c1072)
  • optional retries for cron daemon tasks (#3403) (f4bc39d3)
Fixed
  • harden hydration against malformed nested parts; surface corrupt-journal resume degradation (#3393) (ee4560d7)

v5.307.14

2026-10-10
Changed
  • add hermetic query()-level resume tests and journal-load benchmark (#3395) (2ebdfebb)
  • carry plugin-skill flags + category through discovery (#3400) (d7dd4feb)
  • adopt shared execFileAsync, add isEnoent, replace private helpers (#3399) (f5f8b265)
  • generate website env-var page from ENV_REGISTRY and gate drift (#3402) (039584e8)
Fixed
  • send output_format in image_edit multipart body (#3392) (df524091)
  • triage advisory findings from 2026-10-07 /pr-triage (#3398) (93cf94ec)
  • narrow CacheableToolLike, add 5m TTL test, widen dispatcher timing (#3394) (0b3a82b9)
  • resume on account switch without /reauth; safely join paused waits (#3401) (ae932132)

v5.307.13

2026-10-09
Fixed
  • retry bootstrap after bootout with ETIMEDOUT guard and clear recovery message (#3382) (3b93b9a0)

v5.307.12

2026-10-09
Changed
  • run-afk action reproducibility and doc follow-ups (#3362) (e00643d7)
  • race guard, RTT seam, assertion margins, dead helper (#3365) (56511127)
Fixed
  • redact taskId fallback in crash notices; early-handler single-call guard (#3375) (a260860d)

v5.307.11

2026-10-09
Changed
  • daemon wave-resume push logging, named constants, explicit promise awaiting (#3377) (08e276ec)
Fixed
  • clear resizeGeometryStale on repin early-return; fix stale prose (#3376) (9460ebf2)
  • bufferedLength units doc, explicit first-line discard, drop redundant existsSync (#3380) (e931b4de)
  • deliver mid-turn background-process results at the tool-round boundary (#3384) (a6d323cc)
  • surface timeoutRate/p95Ms in summary, add summary to subagents view, TTL cache, narrow non-null assertions, fake timers in tests (#3379) (6139b570)
  • narrow loose-reader error handling — rethrow EACCES/EISDIR (#3378) (550e4850)
  • correct h1ModelFetch docs and strengthen Responses-wire test (#3381) (712a1dc4)

v5.307.10

2026-10-09
Added
  • auto-load journal on resume so SDK consumers rehydrate conversation context (#3372) (9cd65ba9)
Fixed
  • route image-model tool handlers through HTTP/1.1 transport (#3363) (73d36148)

v5.307.9

2026-10-09
Changed
  • full-request cache-breakpoint guard (system + tools + messages) (#3366) (0844df6e)
  • SW(25,16) result write-up and README section (#3383) (91b8c2a6)

v5.307.8

2026-10-09
Changed
  • dedupe TOOL_SYSTEM_PROMPT_BASE for unnamed workers (#3364) (e744caf1)

v5.307.7

2026-10-09
Fixed
  • tighten collapsed-frame predecessor regex and add missing tests (#3312) (0277d318)

v5.307.6

2026-10-09
Changed
  • adopt errorMessage/ensureError/isErrnoCode and add execFileAsync helper (#3354) (ecd33f7e)
  • repro test suite for committed-band hole after pane resize (#3360) (77562805)
Fixed
  • post-merge hardening for #3326 #3327 #3329 #3336 (budget-gate stub, short-read loop, json-file tests, dispatcher restore) (#3356) (a928fb93)

v5.307.5

2026-10-09
Fixed
  • adapt afk defects to LedgerReadResult (main tsc break) (#3367) (152a709c)

v5.307.4

2026-10-09
Added
  • add afk defects CLI subcommand for recurring defect ledger (#3350) (3ef3c90d)
Changed
  • add solo-timeout test and explicit spy restore in model-complete (#3311) (f1b560f2)
  • note that model_complete max_tokens is ignored on ChatGPT-subscription models (#3292) (79b9be8a)
  • extract appendSystemPromptBlock, formatDuration, detectMediaType, brace scanners, printWarnings, chatLabel helpers (#3349) (d7514c7e)
Fixed
  • tighten heartbeat test assertions and waitFor options (#3310) (1dadb52a)
  • redact in-flight command heads in crash notices; register crash handlers before startup (#3358) (5b8751f9)
  • union re-wrapped operator deny lists; surface ledger tail-cap truncation (#3357) (d9284998)
  • suppress legacy deficit eviction while resize burst is in flight (#3361) (45d44cd2)
  • add end-to-end regression test for preset {append} in system message (#3351) (219d0d71)

v5.307.3

2026-10-09
Changed
  • give unnamed subagents a scoped worker prompt instead of the full parent base (~54 KB) (#3324) (09ca83dd)

v5.307.2

2026-10-09
Added
  • push wave-resume offers to Telegram from daemon; include in-flight tasks in crash notices (#3323) (50ed2aa7)
Changed
  • add json-file + pathExists helpers, migrate 13 call sites (#3329) (1c7cb9e7)

v5.307.1

2026-10-09
Added
  • ship a reusable GitHub Action for running afk in CI (#3321) (82e44ca7)
Fixed
  • force HTTP/1.1 for all model API calls to prevent nghttp2 DATA-frame freeze on Node 26 (#3336) (0ce406ba)

v5.307.0

2026-10-09
Added
  • add OverlapAlertLatch — one Telegram alert per overlap episode (#3326) (7b90c16b)
  • aggregate subagent outcomes by model, type and depth and surface in get_runtime_state (#3328) (43540bc2)
Changed
  • split system prompt into stable cached prefix and volatile env tail (#3322) (a7202c80)
  • shared JSONL helpers and bounded schedule-telemetry reader (#3327) (2edd291f)
Fixed
  • address CPR late-reply advisory findings from #3240 review (#3314) (6a932100)
  • harvest flags from flat-installed plugin roots (#3333) (849c625a)
  • address advisory findings from 2026-10-08 /pr-triage (#3294–#3309) (#3325) (3b3ab7b5)

v5.306.4

2026-10-09
Fixed
  • block restricted paths in bash on headless surfaces (#2312) (9becef0b)

v5.306.3

2026-10-08
Changed
  • shared type-guards, sleep, truncate, truncateTelegramLabel, stripAnsi in tests (#3318) (eb6a5650)

v5.306.2

2026-10-08
Changed
  • surface /whatif and Jev as differentiators in README (#3315) (e04095c8)
  • shared walker + resolveTraceFile + groupViolationsByFile; fix --reason drift in check-test-typecheck (#3319) (495196f4)
  • extract checkout-lifecycle helpers; plugin update warns before discarding edits (#3317) (d7eb6282)
Fixed
  • apply advisory findings from 2026-10-07 pr-triage (#3316) (24c952c5)

v5.306.1

2026-10-08
Fixed
  • share normalizeSystemPromptOverlay; fix OpenAI preset {append} drop (#3305) (29241d8c)

v5.306.0

2026-10-08
Added
  • add preexisting-defect ledger reader and afk insights section (#3307) (1dbc57c5)
  • operator tool deny list (tools.disabled) with /config → Tools toggles (#3297) (abbd92bb)

v5.305.8

2026-10-08
Changed
  • add wiring regression tests for PreToolUse injectContext delivery (#3308) (b78b8c69)
  • add router anthropic/xai branches and model_complete path-approval once/subagent cases (#3294) (ebedf10c)
Fixed
  • add mid-session endpoint switch tests for reasoning replay (#3309) (6827c08e)
  • apply advisory findings from 2026-10-08 pr-triage (#3296) (08175418)

v5.305.7

2026-10-08
Changed
  • openai-compatible compaction defaults to gpt-6-luna on real OpenAI endpoints (#3288) (481340df)
Fixed
  • address advisory findings from 2026-10-08 /pr-triage (#3295) (b7bda6f0)

v5.305.6

2026-10-08
Fixed
  • tidy three comment nits in mascot.ts and mascot-mini.ts (#3115) (8cd25714)
  • replace fixed sleep with vi.waitFor in heartbeat test (#3285) (eafc8118)
  • accept collapsed-frame marker as Python traceback predecessor (#3287) (8883a81a)
  • guard CPR late-reply leak + adaptive timeout (#3240) (a25d355b)
  • prefer timeoutSignal.aborted over caller signal when both fire (#3286) (2d66cbc2)

v5.305.5

2026-10-08
Fixed
  • enforce named-agent tool and bash restrictions on compose nodes; block peer tools for children at dispatch (#3270) (d9fdf69b)

v5.305.4

2026-10-08
Added
  • support Claude Haiku 5.5 and point haiku alias at it (#3280) (a776f1c2)
Changed
  • bump typescript from 5.9.3 to 6.0.3 (#3236) (ff81872e)
Fixed
  • report prompt counts in /compact, not inflated raw message counts (#3132) (9bfd8411)
  • apply advisory findings from 2026-09-30 pr-triage (#3137) (e127727b)
  • wire ownerStartTime pid-reuse check and unify parentSessionId spread (#3118) (6f1f2f6f)
  • document TOCTOU window, normalize notifyOn comparison, assert store isolation in shell tests (#3117) (5d12437a)
  • keep enabled thinking on opus-4-6, mute SDK deprecation warning (#3279) (b949763d)

v5.305.3

2026-10-08
Fixed
  • share sweep-policy resolver; /worktree prune now honors config and env age limits (#3272) (e2d8f13f)
  • advisory findings from Cerebras support PRs (#2788, #2789, #2790, #2793) (#3138) (9e09cc86)
  • validate text minLength/maxLength in Telegram elicitation handler (#3275) (3d9cf10e)

v5.305.2

2026-10-08
Fixed
  • move isNewerVersion to update-version.ts; fix prerelease compare in afk update (#3271) (4aaa2ea5)
  • share buildWhatifRunOptions between CLI and slash; forward operatorPredictions (#3274) (46537334)
  • reject chatgpt-oauth in image_edit; extract makeSessionCounter (#3273) (251ff682)
  • treat null-equivalent Deferred values as empty (none/n/a/-) (#3237) (8d7e5064)

v5.305.1

2026-10-08
Fixed
  • erase ghost spinner and CPR-reanchor on width-only tmux resize (#3228) (0e46a05d)
  • tighten strategy-nudge error-line detection (#3223) (55d06547)
  • cap earlySettled and sanitize toolUseId in detached-tool-notifier (#3222) (fac366f4)

v5.305.0

2026-10-08
Added
  • add model_complete, a one-shot completion against any configured model (#3254) (1dcf8f26)
Changed
  • bump @types/node from 26.6.3 to 26.6.4 in /website (#3230) (cfdd9539)
  • bump ora from 8.2.0 to 9.4.1 (#3239) (fb500b1d)

v5.304.1

2026-10-08
Fixed
  • regenerate pnpm-lock.yaml broken by sequential dependabot merges (#3253) (bb91c807)

v5.304.0

2026-10-08
Added
  • make fact tracking and soft-delete GC safe per archive (#3211) (5ffb7f4f)
Changed
  • bump the fumadocs group in /website with 3 updates (#3229) (ab12fef1)
  • bump @testing-library/jest-dom in /dashboard (#3231) (904d8a6f)
  • bump lucide-react from 0.468.0 to 1.52.0 in /dashboard (#3233) (44fe7df7)
  • bump jsdom from 26.1.0 to 30.1.2 in /dashboard (#3234) (0b916557)
  • bump jsdom (#3232) (f6b82938)
  • bump commander from 12.1.0 to 15.0.0 (#3235) (c5f7c4ff)
  • bump undici from 7.30.0 to 8.11.2 (#3238) (c4dae640)
  • bump softprops/action-gh-release from 2 to 3 (#3225) (e01e6735)
  • bump actions/upload-artifact from 4 to 6 (#3226) (da3c889d)
  • bump actions/setup-node from 4 to 7 (#3227) (a029e391)
  • bump actions/checkout from 4 to 7 (#3224) (94534ea2)
Fixed
  • address advisory findings from #2854 (Fable 5.1 support) (#3148) (4ad89fee)

v5.303.10

2026-10-07
Fixed
  • deliver non-blocking PreToolUse additionalContext (#3157) (e80d1327)

v5.303.9

2026-10-07
Fixed
  • reference RAW_VALUE_CAP in inbound-mode boundary tests (#3219) (1ec88e05)
  • tighten EgressBlockedError assertions in egress lookup tests (#3221) (47b48886)
  • address advisory review findings for tool-health monitor and daemon builtin (#3135) (f1057945)
  • remove duplicate ToolFailureClassSchema, tighten isContentBlockArray return type (#3133) (d00f99f6)
  • advisory findings from #2770, #2879, #2824 (#3134) (7274f3ae)
  • document internal-only helpers in effect-ledger barrel (#3209) (15ee4fbe)
  • raise engines.node to jsdom 30's floor (#3150) (825d7761)
  • address advisory findings from #2810 peer boundary delivery (#3136) (19c7e3da)
  • address advisory findings from review of #3063 (#3116) (f76fdba2)
  • address advisory findings from review of #3077 (#3097) (ba46e740)
  • remove dead applyPostRunNotices (#3220) (f6e86014)
  • replay reasoning for destination endpoints (#3156) (387daa69)
  • bound Windows bash kill cleanup without blocking (#3210) (e7e07b30)
  • add _renameFn/_platform injectables to atomicWriteFileAsync for portable EPERM retry testing (#3153) (26021cbc)
  • add maxRetries to rm in temp git repo teardowns to avoid ENOTEMPTY (#3208) (53152e90)

v5.303.8

2026-10-07
Fixed
  • re-anchor live frame after tmux pane resize (no more duplicated frame on kill-pane/split) (#3204) (6f07459d)

v5.303.7

2026-10-07
Added
  • add opt-in Stop hook that blocks closing on unproven external diagnosis (#3190) (22ca5a25)
Fixed
  • harden stream termination and retry observability (#3159) (3d9008fa)

v5.303.6

2026-10-07
Fixed
  • read vision/reasoning/context from the Codex catalog so gpt-6 models see pasted images (#3188) (c240ca37)
  • count patch_apply as file write, bash external effects corroboration, move version history (#3191) (edc66634)

v5.303.5

2026-10-07
Fixed
  • complete advisory review follow-ups (#3158) (e4db9d85)

v5.303.4

2026-10-07
Fixed
  • strategy-nudge keys on the real error line, not boilerplate (#3160) (343c2503)
  • add RAW_VALUE_CAP boundary tests and move getPeerInboundModeConfig into list branch (#3186) (00b7acfe)
  • address advisory findings from detached-tool-notifier review (#3189) (688ec803)
  • use makeNonIpError on deps so non-IP records reject with EgressBlockedError (#3187) (14d60a55)

v5.303.3

2026-10-07
Added
  • trace-backed downgrade signals — closure reason + subagent budget exhaustion (#3195) (b3f82314)
Changed
  • add unit tests for three worst-coverage CLI/service modules (COV-007..009) (#3203) (a5903f52)
  • remove buildPromptAsync internal deprecated shim (#3196) (80b8167e)

v5.303.2

2026-10-07
Added
  • add UPDATE-failure-resilience test for access tracking (#3192) (358c8669)
Changed
  • Web dashboard: session titles, new-session hang, and sidecars for daemon/web/skill sessions (#3197) (91e2d6d5)
  • DEAD-033 incremental — remove 72 unused exports from src/agent/trace/index.ts (#3202) (3a725829)
  • patch picomatch ReDoS, bump openai+@types/node, fix website/ baseline-browser-mapping (#3193) (d7ba5ea7)
Fixed
  • migrate task-view describe blocks to task-view-mode.test.ts (#3200) (1308f538)
  • execFileSync for findGitRoot; shell-metachar tests; gitleaksignore cleanup (#3199) (ee2f4181)
  • add { unref? } option to sleepWithAbort; tighten test; cover sleep() unref paths (#3198) (b551e708)

v5.303.1

2026-10-07
Added
  • catalog-backed route limits, configurable in-turn context guard, model awareness (#3177) (5f9e91bf)
Fixed
  • re-fork zero-output transport failures once, fail closed on any tool activity (#3172) (2bcae018)

v5.303.0

2026-10-07
Added
  • opt-in elapsed-time connection retry budget + connect-failure diagnostics (#3173) (c605e2b2)
  • explicit incomplete handoff and findings salvage at the tool-round cap (#3176) (5e15142c)
Changed
  • add unit tests for three worst-coverage CLI/service modules (#3178) (92e7f89b)
Fixed
  • address advisory review findings from 2026-10-06 pr-triage (#3175) (22971afa)

v5.302.13

2026-10-07
Changed
  • delete task-view.ts, remove @types/node-cron, prune 25 unused exports (#3174) (4a9def34)
Fixed
  • observe yield probe failures and cover cached PR paths (#3154) (130d8ed4)
  • add maxRetries to rm in peer wake teardown to avoid Windows ENOTEMPTY (#3179) (0daf2a5b)
  • keep the event loop alive during retry backoff sleeps (#3171) (72991e20)
  • replace shell execSync with execFileSync for worktree ops; add .gitleaksignore (#3180) (69c38902)

v5.302.12

2026-10-07
Fixed
  • pass --allow-scripts=agent-afk to npm install so postinstall runs on npm >=11.19 (#3152) (9005022b)

v5.302.11

2026-10-07
Added
  • add --predict flag and spec predictions field for deterministic operator-supplied predictions (#3162) (9cfccc5f)
Fixed
  • add portable POSIX-utility regression test for settle-after-kill fallback (#3167) (7833d6f9)
  • dispatch UserPromptSubmit in Telegram per-turn path (#3163) (f3853eb6)

v5.302.10

2026-10-07
Added
  • downgrade self-reported Done using corroborating signals (#3168) (4b1b07a5)
Changed
  • note dropped **Done** — text single-line form next to 'unknown' in FacetOutcomeSchema JSDoc (#2797)
Fixed
  • note dropped single-line Done form next to 'unknown' in schema JSDoc (#3165) (a4d78b4b)
  • wire DetachableToolRegistry.settled subscriber (#3164) (644bf907)
  • peer hardening — typo visibility, bare-filename guard, corrupt-orphan rescan test (#3161) (649073cb)
  • harden createGuardedLookup — catch callback throw, block non-IP, prove all=true (#3166) (ad9dfea9)

v5.302.9

2026-10-07
Fixed
  • session sidecar exitReason/eof advisory findings (#3145) (7402bddf)

v5.302.8

2026-10-07
Fixed
  • extract shared sleepSync util, strengthen backoff ceiling test, add retry log (#3146) (561f230d)
  • address advisory findings from traced retry layer (#2851) (#3144) (73b10717)
  • address advisory findings from 2026-09-29 /pr-triage (#3142) (ae9d977b)
  • document far-reset probe tradeoff and provider scope for autoResume env var (#3140) (e75ddf2d)
  • advisory findings from #2850 — peer activity presence fixes (#3139) (b09ae05d)

v5.302.7

2026-10-06
Fixed
  • address advisory review findings from #2857 (#3147) (be9c4ba9)
  • advisory findings from #2835, #2860, #2862 (#3143) (50042fd7)
  • address advisory findings from #2852 presence review (#3141) (3314dc73)

v5.302.6

2026-10-06
Fixed
  • guard history.push for silent auto-resume; add held size hint (#3122) (8d7749ce)
  • harden process-jobs — escapeXmlAttr apos, sweep tests, quota-rotation guard, trace observability, docs (#3123) (73d850d6)
  • truthful background-result delivery note so agents stop busy-polling (#3125) (68c7d0b3)
  • add containment and uid checks to EXDEV cleanup fallback (#3131) (a62bf115)

v5.302.5

2026-10-06
Fixed
  • address advisory findings from review of #3075 (#3121) (8578aecb)
  • shorten regression test title, justify realistic variant, inline JSDoc (#3120) (1881a64f)
  • reject {content: null, edits: []} as no_change_specified (#3130) (0355ed77)
  • bash-detach stale listener, unref timer, sentinel + compose JSDoc/guard fixes (#3124) (0d2b846f)
  • address combined advisory findings from 2026-10-06 triage (#3119) (45c1993c)

v5.302.4

2026-10-06
Changed
  • unit-test applyDeferPeers branches and processJobNotifier ordering (#3099) (ac4303e7)
Fixed
  • treat standalone content: null as absent, not a parse error (#3100) (2df47ac1)

v5.302.3

2026-10-06
Fixed
  • add test-typecheck error-count ratchet and document tsconfig.test.json include scope (#3114) (5676f002)

v5.302.2

2026-10-06
Fixed
  • report rewound prompts, not raw API message counts (#3109) (29a0d8d7)
  • complete truncated SPINE.md citations and trim SKILL.md descriptions (#3112) (3ff0fa7b)
  • complete schema extraction, add type guards (#3113) (919afeec)
  • document onTaskComplete disk-durability contract and add afterEach flag-leak guard (#3110) (9d52188f)
  • close lingering .rm sibling, add EXDEV fallback, add .rm-linger test assertion (#3101) (5a8c68b0)
  • fix cwd precedence comment, restore tilde JSDoc, add EXDEV lock-degrade test (#3111) (7e8845ef)
  • poll groupAlive assertions to avoid zombie-window flake (#3098) (2f4c5695)

v5.302.1

2026-10-06
Fixed
  • record ownerPid in bg meta.json and reconcile dead-owner jobs on read (#2319) (d2387bcb)

v5.302.0

2026-10-06
Added
  • fold forge SALVAGE candidates into shadow-verify and automate (#3094) (4b652616)
Changed
  • unknown corruption path that orphans tool_use blocks past two defenses (#2344) (62c18815)
  • add non-blocking test-file typecheck gate (#3054) (124e2184)
Fixed
  • guard schedule read-modify-write with O_EXCL advisory lock (#2318) (ae6b8696)
  • decouple fireOnTaskComplete from telemetry append try-catch (#2317) (2a30f2e2)
  • reject executor:"shell" on POST /tasks HTTP control surface (#2316) (b2ecd991)

v5.301.3

2026-10-06
Changed
  • inject execSync via deps, extract mockPrefix helper, share win32 invariant helper (#3055) (41062f4b)
  • replace wall-clock budget, fix EBUSY teardown, harden watch timing (#3056) (67ef042b)

v5.301.2

2026-10-06
Fixed
  • wire Stop on afk web, forward beforeTurnEnd, honor cap=0 (#3057) (9a918d6c)

v5.301.1

2026-10-06
Fixed
  • persist compose partial flags in the journal and count partial nodes (#3058) (f0dc157a)
  • explicit case + tests for no-usable-auth-forced-chatgpt-oauth and source:config (#3059) (c37ef0d9)
  • harden gate-liveness test assertions — URL check, module reset scope, neutral token, catch comment (#3092) (146b93e9)
  • drop unused flushed var, move comment, add isDirty rationale (#3091) (f736859a)
  • bind resolver inside vi.waitFor to eliminate post-poll non-null assertion (#3090) (b03df02d)
  • add curl -si allowlist comment; pin execSync arg in gh run list test; fix double-space nit (#3089) (fd608e90)
  • de-flake windows tests (rm retries; sync process-jobs cancel test on registry leader-exit) (#3093) (b11580ae)

v5.301.0

2026-10-06
Added
  • perfect the goblin — v17 banner portrait + sharper mini sprite (#3064) (23c6001d)
Changed
  • replace fixed sleeps with vi.waitFor polling in afk-two-way-roundtrip (#3073) (f65a3fe3)
  • harden gate-liveness tests — fake token, fail-open coverage, real workspace dir (#3062) (939d49b1)
  • direct _mergeVotes ordering tests + accurate ordering docs (#3074) (a5ee46fa)
  • cover cappedHistory and falling-start/rising-tail burn-rate paths (#3075) (2b1173bf)
  • assert pendingWindowCap via test hook in S2 (#3077) (caaa28ef)
Fixed
  • correct curl -si comment; add gh run list wait_for test (#3060) (ef678e0d)
  • advisory findings from #2895 — security, perf, nit cleanup (#3061) (6aa297d8)
  • close lstat-to-rm TOCTOU window in session-tmpdir cleanup (#3076) (c31f825e)
  • address advisory findings from #2883 review (#3063) (bf4383e4)

v5.300.0

2026-10-06
Added
  • run_in_background for managed long-running processes (#3037) (254fb1cc)

v5.299.9

2026-10-06
Changed
  • unit-test queuedSubmission + restore runInputLoop funcsize headroom (#3050) (88c290df)
Fixed
  • harden per-session TMPDIR (TOCTOU, registry leak, hook shells, cache, docs) (#3052) (e5faf816)
  • restore pendingWindowCap invariant on all-sentinel displacement, document sync guarantee, add compact+sentinel tests (#3014) (6c06fbb0)
  • treat blank optional args as absent in edit_file and patch_apply (#3051) (359fbcca)
  • suppress burn-rate ETA when latest sample pair is non-increasing (#3048) (d068b217)
  • real candidates count + debugLog in memory GC sweep (#3049) (a0e22e77)
  • delete-then-set in _mergeVotes to preserve Map arrival order (#3047) (c5bc6887)
  • use path.relative-based containment in sandbox-guard (#3033) (a4cb15fd)

v5.299.8

2026-10-06
Fixed
  • widen drift-test job regex to include digits/uppercase; annotate heredoc (#3042) (2a7676d8)

v5.299.7

2026-10-06
Changed
  • strengthen spy assertions in telemetry-write-guard tests (#3036) (988d38a7)
Fixed
  • replace as OutputEvent[] casts with satisfies in stream tests (#3041) (2742fbdd)
  • head+tail signature cap, remove dead nudged field, reword invariant comment (#3043) (be05492c)
  • parentRootSessionId JSDoc and microtask test drain (#3035) (fcf63c7a)
  • consolidate safeAnswer into farm-callbacks.helpers.ts (#3044) (7992ff73)
  • update is_current_session description, fix TOCTOU, document 2048-byte bound (#3045) (47eb5f2e)
  • locale-neutral schtasks CSV parsing, CR/LF/NUL guard, restart upgrade, dedup (#3034) (f29b7d75)

v5.299.6

2026-10-06
Fixed
  • override proxy-addr >=2.0.8 and source-map-js >=1.2.2 (GHSA-jqcg-44mw-7w3h, GHSA-68fv-2mgg-jv7q) (#3046) (d627aedd)
  • exhaustive switch in closureFromTrace and inline comment in normalClosure (#3031) (2e6349e7)

v5.299.5

2026-10-06
Added
  • Windows Task Scheduler backend for afk service (install/uninstall/status/restart/upgrade via schtasks, user-level, no elevation) (#1602)
  • advisory same-error strategy nudge + surprise rule in system prompt (#3016) (6bfe6196)
  • add orchestrator-owned pre-push re-check to /ship (#3023) (c1134ebc)
Changed
  • no service/auto-start support (daemon, Telegram bot) (#2347) (2e16379c)
  • audit production code for POSIX path assumptions (#2345) (585a17ae)
  • add hook-level dedup test and root-only contract comment (#3011) (8e2c1ce8)
Fixed
  • restore handleEnter invariants and narrow CsiHost width (#3025) (6cdbd0d9)
  • don't re-show archived rows on small content-hug shrinks (#3018) (b207b50e)
  • Shift+Tab mode switch toggles one live notice instead of stacking scrollback lines (#3021) (856931eb)
  • harden dead-letter quarantine — unique suffix, orphan dead-letter, benign race doc (#3024) (8d64c73c)
  • address advisory findings from pre-push hook review (#3019) (74661760)
  • tighten isExecError guard, add response-output tests, fix farm.ts arrows (#3022) (e44c2c2c)
  • readSidecarCwdSlice prefix read, is_current_session self-alias only, additive contract doc (#3017) (5def1400)
  • import renderReceiptMarkdown before re-exporting in receipt.ts (#3020) (a5e0edfc)

v5.299.4

2026-10-06
Fixed
  • bare-filename guard, corrupt trace file field, races test coverage (#3009) (1b0177cb)
  • outcomes combiner v2 advisory findings (#3012) (9201818c)

v5.299.3

2026-10-05
Fixed
  • fix misleading JSDoc comments and deflake attribution tests (#3005) (27951e02)
  • address advisory findings from #2974 review (#3010) (cfa71b5e)

v5.299.2

2026-10-05
Fixed
  • tighten replay-renderer test assertions per advisory review (#3013) (5eb61262)
  • harden /history test hygiene — 4 advisory findings from #3000 review (#3015) (96147112)

v5.299.1

2026-10-05
Changed
  • cover /history journal-first path and flush-before-read (#3000) (70c9f939)
Fixed
  • resolveBinding promotes a raw slot id to the full slot binding (#3001) (1f211c21)
  • protect worktrees pinned by scheduled task cwd fields (#2996) (737f34b9)
  • close stale pending window after compact→preamble→provider_switch; add soft-truncate tests (#3002) (64da2894)
  • three small journal replay renderer defects (blank paragraph, overcount, TTY echo) (#2999) (1769b0b2)
  • drop stale hardcoded model list from ChatGPT backend 400 error (#2998) (20bbddd6)

v5.299.0

2026-10-05
Added
  • combiner v2 with severity tiers and good-by-default (#2997) (db76e12a)

v5.298.2

2026-10-05
Fixed
  • skip sessionstart agent tasks and alert when telemetry file is not writable (#2974) (22f4fbc5)

v5.298.1

2026-10-05
Fixed
  • remove stale bypass-mode execFile warning (#2716) (a73ac02c)
  • stop SessionEnd hook classifying its own SPINE.md edits and the main checkout's stale diff (#2641) (6fbb9d98)
  • credit nested sub-agent commits to the root session (#2710) (698bdf4f)
  • get_facet cwd-aware 'latest'; add 'current'/'self'; add resolution fields (#2975) (1bd93f34)
  • quarantine unparseable pending/ peer envelopes to held/ (#2976) (8eb6408b)

v5.298.0

2026-10-05
Added
  • self-installing pre-push hook running CI audit gates (#2686) (9686172f)

v5.297.0

2026-10-05
Added
  • re-render resumed and forked sessions from the message journal (#2715) (fefcf386)

v5.296.9

2026-10-05
Fixed
  • dead-letter malformed handoff records instead of silently skipping forever (#2973) (403ef1a9)
  • address remaining advisory findings from 2026-09-29 pr-triage (#2731) (217ef7f5)

v5.296.8

2026-10-05
Changed
  • split memory-store and memory-tools under the 350-line ceiling (#832) (#2959) (e75edd2e)

v5.296.7

2026-10-05
Fixed
  • make dynamic .mjs import tests portable to Windows (#2730) (3ee6bc78)

v5.296.6

2026-10-05
Changed
  • split 4 files under the 350-line ceiling (#832) (#2962) (46a8b1a8)
Fixed
  • surface soft-deadline partial compose nodes in the facet (#2977) (d852cbb7)

v5.296.5

2026-10-05
Changed
  • split worktree-sweep, readonly-bash, receipt, path-approval-hook under the 350-line ceiling (#832) (#2965) (10818c08)

v5.296.4

2026-10-05
Changed
  • split chat.ts, farm.ts, interactive/worktree.ts under the 350-line ceiling (#832) (#2963) (5831eb62)
Fixed
  • add in-process cooldown fallback when alert state write fails (#2972) (ee31fa7d)

v5.296.3

2026-10-05
Changed
  • split message handler, session manager and farm callbacks under the 350-line ceiling (#832) (#2964) (e0c0087f)

v5.296.2

2026-10-05
Changed
  • split audit-sdk-dependency and audit-fit under the 350-line ceiling (#832) (#2960) (babec7ad)
  • regenerate env-registry var count after concurrent merges (#2969) (d2c7b1b7)

v5.296.1

2026-10-05
Changed
  • split eval-run/contracts, runner, and propose/template-engine under the 350-line ceiling (#832) (#2961) (6f01d6d2)

v5.296.0

2026-10-05
Added
  • export plugin userConfig options and data dir to plugin hooks (#2732) (2ddcab6d)
  • add soft-delete GC sweep for stale fact archive entries (#2733) (78d51225)
  • burn-rate projection for subscription-quota indicator (#2951) (ceaeda9c)
Fixed
  • restore context.cwd as deprecated alias of context.resolveBase (#2948) (f9963c36)
  • hoist wslPrefixes, document dirname assumption, add ordering comment (#2949) (caa6088d)
  • peer-messaging docs/schema polish (#2950) (6e807701)

v5.295.9

2026-10-05
Fixed
  • enforce domain policy independently of unrelated browser config fields (#2919) (5a4ee000)

v5.295.8

2026-10-05
Fixed
  • replace wall-clock budget with ordering probe in 'returns immediately' test (#2947) (6dfbe3ae)

v5.295.7

2026-10-05
Fixed
  • deliver queued user messages at end of turn, not between tool rounds (#2956) (66f8e7da)

v5.295.6

2026-10-05
Added
  • record thumbs reactions as /good and /bad feedback (#2646) (90c9bb06)
Fixed
  • explicit truncation notice with line count on both Telegram and REPL (#2642) (0fb04855)
  • render the skill identity preview once per dispatch (#2915) (9bc80faa)

v5.295.5

2026-10-05
Changed
  • drop the spinner to 4 Hz after a 2 s warm-up and skip identical frames (#2946) (1e43fa75)

v5.295.4

2026-10-05
Fixed
  • recover claimed-but-uninjected peer envelopes after crash (#2924) (4c199481)

v5.295.3

2026-10-05
Added
  • blocking Stop hook continues the turn with a hard cap (#2740) (082b7609)
Changed
  • rebuild parseSelfReport on parseTerminalState (#2922) (23b9194e)
Fixed
  • introduce parentCredential to atomically pair key+sourceModel (#2928) (86ebeab6)
  • preserve body text when annotating; strip dangling label fragments (#2921) (cec37cf8)

v5.295.2

2026-10-05
Fixed
  • anchor breaking-change footer grep to line start (#2918) (598406db)
  • unref poller and exit on stdin close in test-server-dynamic fixture (#2917) (68e536a7)
  • pick most-representative verb for mixed parallel tool waves (#2920) (2a87e812)

v5.295.1

2026-10-04
Fixed
  • root session dirs at /tmp on darwin to fix sun_path EINVAL (#2942) (aa759578)
  • patch prod-path SSRF advisories (fast-uri, MCP SDK stack) (#2943) (92e65c4c)

v5.295.0

2026-10-04
Added
  • fire Stop on every top-level surface from the session layer (#2713) (ab6a3bc7)

v5.294.0

2026-10-04
Added
  • hint that a queued message stops a running wait_for (#2926) (58d369d6)
Changed
  • make the dynamic MCP fixture exit on stdin EOF (removes 10s vitest teardown stall) (#2930) (9c899d20)
Fixed
  • add subagent PR detection (gap 6) and refactor detection to shared module (#2925) (634be66d)
  • surface Responses-API overload shapes as retryable errors (#2923) (aa724051)
  • tell the model its timeout limit and when a value was clamped (#2927) (d8c08dc1)

v5.293.1

2026-10-04
Added
  • detach in-flight compose with Ctrl+B (#2746) (5b6e5510)
Changed
  • remove internal @deprecated items (#2748) (9d2cf2f3)
Fixed
  • skip WSL bash.exe in findGitBashOnWindows; derive from git.exe (#2763) (4deddfe0)
  • correct stale delivery-timing text and add sender rules (#2907) (616a9a05)

v5.293.0

2026-10-04
Changed
  • regenerate env-registry after per-session TMPDIR change (#2929) (a57839af)
  • regenerate env-registry after #2747 merge (212 vars) (#2916) (8c1ab0ea)
Fixed
  • SIGTERM tracked stdio servers at process exit so stubborn servers are never orphaned (#2931) (7f904dff)
  • wire DetachableToolRegistry at REPL bootstrap so Ctrl+B works on bash (#2753) (26064ba9)

v5.292.3

2026-10-04
Added
  • per-session and per-subagent private TMPDIR for spawned shells (#2747) (824f383d)
Fixed
  • settle post-detach deliver() on bounded timer when close never arrives (#2743) (7366139d)
  • newest explicit feedback vote wins (#2751) (00ccaa24)

v5.292.2

2026-10-04
Changed
  • bump the prod-minor-patch group across 1 directory with 7 updates (#2890) (46c634f0)
Fixed
  • fix npm bin PATH check for Windows (delimiter and /bin suffix) (#2768) (d08d77c6)
  • silence Ajv unknown-format warnings for gRPC integer formats (#2767) (2696e63a)

v5.292.1

2026-10-04
Changed
  • gate-liveness coverage for safety-gate wiring (#2882) (c78dcfb0)
Fixed
  • emit PowerShell-compatible env-var syntax in Playwright install hint on win32 (#2765) (5a13c15e)
  • allowlist gh/curl read-only CI polls; fail fast on classifier block (#2769) (a034b5ff)
  • doctor: use resolveOpenAIAuth to cover ChatGPT/Codex OAuth (#2766) (85f9c2e8)

v5.292.0

2026-10-04
Added
  • integrate skill previews with live dispatch activity (#2895) (0d2b4bc8)
  • improve peer-arrival UX — sanitized identity, silent auto-resume echo (#2896) (f68305fd)
Changed
  • redirect HOME in every test worker so tests can never hit the real home (#2905) (4f0d82d0)
Fixed
  • consistent, provider-labeled usage-limit errors for Claude and Codex (#2883) (5d3c2cb5)

v5.291.1

2026-10-04
Changed
  • bump openai from 6.38.0 to 7.25.0 (#2893) (ff5379c3)
  • bump shiki (#2898) (077d20f3)
  • bump vitest from 3.2.7 to 5.0.3 in /dashboard (#2889) (fcfe9576)
  • bump @vitejs/plugin-react in /dashboard (#2888) (524c13df)
  • bump @types/node from 26.6.2 to 26.6.3 in /website (#2885) (de8d70f5)
  • bump jsdom and @types/jsdom (#2892) (ddd4991e)
  • bump @types/node from 22.19.11 to 26.6.3 (#2897) (fdd13ba7)
  • bump the fumadocs group across 1 directory with 3 updates (#2884) (df8022ff)
Fixed
  • read tool arguments from Responses *.done events (#2904) (45a3a0fc)

v5.291.0

2026-10-04
Added
  • cooperative mid-turn boundary delivery for both providers (#2810) (fa17faaa)
  • tool-health builtin alerts on cross-session tool degradation (#2774 3/3) (#2785) (14c7fc9f)
  • per-session ToolHealthMonitor + tool_degraded trace event (#2774 2/3) (#2784) (fd77b367)
  • Claude Fable 5.1 support with drop_block prefix-binding observable (#2854) (b9dddee3)
  • one traced retry layer for compaction and one-shot calls (#2851) (baad7c6a)
  • opt-in usage-limit park for subagents so an account switch rescues in-flight children (#2826) (464fdac3)
  • cross-process usage awareness (per-provider buckets, afk usage, daemon budget gate) (#2853) (b90e9112)
Changed
  • document SessionFacet v7 outcome semantics for public consumers (#2797)
  • remove @types/jest, refresh lockfile to clear prod advisories (#2825) (afd64a82)
  • bump the dashboard-minor-patch group (#2886) (6b1d592e)
  • bump chalk from 5.6.2 to 6.0.1 (#2894) (297013ea)
  • bump the dev-minor-patch group with 2 updates (#2891) (a305976e)
  • bump next from 16.3.6 to 16.3.8 in /website (#2887) (260f51f5)
  • point Dependabot at the root package and dashboard (#2824) (77cf1bd7)
  • remove stale autoRouting daemon refs (#2862) (03469197)
  • regression tests for redactSecrets at Telegram push boundary (#2849) (#2866) (e25238dd)
Fixed
  • keep facet schema backward-compatible with v7 caches missing pr_url (#2863)
  • unify spinner verbs onto humanVerbForTool and prune flavour pools (#2878) (17b30f66)
  • key unparseable baseURLs distinctly in rate-limit/ledger (#2872) (#2879) (f0d82a2b)
  • add endedAt + exitReason to session sidecar on all exit paths (#2771) (aafff031)
  • prefer remote default branch over mutable local HEAD in resolveAnchorBaseRef (#2770) (e08b023c)
  • polish v7 public schema notes (#2863) (8f447b64)
  • fix gh pr create detection gaps (quoted separators, $(), flattened multi-line) (#2834) (71aceb7f)
  • resolve ghost-text credential per suggest model; route ChatGPT OAuth over Responses (#2864) (884a2da4)
  • accept completed response when transport drops after stop_reason (#2835) (68f14880)
  • advisory follow-ups from #2845 review (#2855) (#2860) (93b90799)
  • address allowlist wiring test and fork-site audit (#2848) (#2859) (a60783f9)
  • treat raised engines.node floor as major in auto-release (#2839) (c4db34e1)

v5.290.4

2026-10-03
Fixed
  • refuse dangling symlinks in image_generate and image_edit output paths (#2836) (a6e67f59)

v5.290.3

2026-10-03
Fixed
  • retry SDK connect timeouts; redact connection_retry trace text (#2856) (f4332787)

v5.290.2

2026-10-03
Fixed
  • refill the screen after a tall overlay collapses (content-hug blank gap) (#2857) (eed966f0)

v5.290.1

2026-10-03
Fixed
  • invariant comment + redactSecrets at Telegram delivery boundary (#2849) (#2858) (e17db879)
  • address advisory findings from #2805 atomic-write review (#2837) (9e1b9b10)

v5.290.0

2026-10-03
Added
  • show peer session activity in list_sessions (#2850) (4e7e64d9)
Fixed
  • defeat pid reuse in presence liveness, refresh heartbeat, reap dead presence files (#2852) (e39708f8)

v5.289.1

2026-10-03
Fixed
  • do not retry egress-blocked requests in retryFetch (#2832) (1c7d48ba)

v5.289.0

2026-10-03
Added
  • disabledPluginHooks config key; warn before marketplace update discards local edits (#2841) (f8c0c4fe)

v5.288.3

2026-10-03
Fixed
  • retry and pause on status-less mid-stream overload errors (#2845) (42457e6f)
  • per-file retention for inbox delivered/ receipts (#2840) (7cd2d35b)
  • never forward an Anthropic credential to OpenAI-routed compose nodes (#2846) (f831dffc)

v5.288.2

2026-10-03
Fixed
  • enforce CommonMark fence rules in fencedLines() so unbalanced fence-like lines no longer hide the end-of-turn heading (#2833) (16bb8711)
  • retry connection-phase network errors (regression from #2422) (#2838) (fe5c90aa)
  • make default provider stores lazy so importing a provider opens no SQLite files (#2842) (2096f82e)

v5.288.1

2026-10-03
Fixed
  • exclude subagent tool events from toolDurationsMs; document trace interleaving (#2831) (cd682695)
  • persist result bodies and fix mislabeled delivered witness events (#2830) (5afd055d)

v5.288.0

2026-10-03
Added
  • tell scoped children which agent_type values they may dispatch (#2829) (23633647)

v5.287.2

2026-10-03
Changed
  • remove dead autoRouting.daemon key (#2827) (b8a0b1e1)
  • upgrade vitest + @vitest/coverage-v8 2.1.9 -> 4.1.11 (#2828) (88914f3c)
Fixed
  • keep bash output on abort/timeout; make write_file atomic (#2814) (936a6f27)

v5.287.1

2026-10-03
Fixed
  • diagnostic detail on no readable content errors (#2808) (42a5be5e)

v5.287.0

2026-10-03
Added
  • cross-session peer messaging (list_sessions / send_to_session) (#2806) (dff4418f)

v5.286.2

2026-10-03
Fixed
  • retry rename on Windows EPERM/EACCES/EBUSY (#2805) (1d3ef5ca)
  • right-size /review budgets, fix compose guidance, trace the effective budget (#2815) (c90e1303)

v5.286.1

2026-10-03
Changed
  • unskip clipboard and tildifyHome tests on Windows (#2744) (f1c022f4)
  • exercise real undici + egress-guard fetch path (#2774) (#2783) (510a003c)
Fixed
  • address advisory findings from 2026-09-30 pr-triage (#2745) (da8899f6)

v5.286.0

2026-10-03
Added
  • warn when agent-afk was upgraded under a running session (#2809) (5e4eeea6)
Fixed
  • back off harder on HTTP 429 and guide retries (#2807) (b6e0a6ad)

v5.285.0

2026-10-03
Added
  • context_window kwarg for the Harbor afk adapter (#2802) (9e1a92af)
  • run it, don't relay it; stop handing safe commands to the user (#2803) (2efa268e)
Changed
  • harden 30-day boundary coverage for session-sidecar and session-dir sweep (#2800) (54d208c8)
Fixed
  • no history hole while a tall overlay covers committed rows (content-hug) (#2804) (f17c7e46)

v5.284.0

2026-10-02
Added
  • per-slot contextWindow override (#2793) (6ced67c5)

v5.283.0

2026-10-02
Added
  • add Cerebras gpt-oss-120b and qwen-3.8-27b context windows (#2789) (11a5e1b8)

v5.282.9

2026-10-02
Fixed
  • reject/recover JSON-string model-slot values instead of treating them as a model id (#2790) (ce285210)

v5.282.8

2026-10-02
Fixed
  • echo reasoning under its origin field (Cerebras 400) (#2788) (ae814b46)

v5.282.7

2026-10-02
Fixed
  • trustworthy outcome, primary_success, produced_pr, tool_errors_total (#2777) (#2781) (bd054244)

v5.282.6

2026-10-02
Fixed
  • re-drive mid-stream network termination (TypeError: terminated) (#2780) (#2786) (677d09a5)

v5.282.5

2026-10-02
Fixed
  • clear disconnect timeout timer when disconnect succeeds (#2764) (e0749da6)

v5.282.4

2026-10-02
Fixed
  • re-drive mid-stream network termination (TypeError: terminated) (#2776) (#2779) (28e4f60b)

v5.282.3

2026-10-02
Changed
  • use --ak for Harbor agent kwargs (#2775) (dd1fbcbf)
Fixed
  • read Claude Code OAuth credentials on Windows (#2755) (9a4b20b8)

v5.282.2

2026-10-02
Fixed
  • honor undici lookup all:true contract in egress guard (web_scrape fetch failed) (#2754) (86f77d75)

v5.282.1

2026-10-01
Changed
  • remove retired capture-flag deprecation notice (#2668) (ab2bbd75)
Fixed
  • add fake-timer comment and extract rmSyncRetry test helper (#2673) (2d76fda3)

v5.282.0

2026-10-01
Added
  • detach contract with Ctrl+B backgrounding for in-flight bash (#2735) (74c74b10)

v5.281.0

2026-10-01
Added
  • add scrollable in-TUI viewer for captured bash output (#2739) (5da98b86)

v5.280.0

2026-10-01
Added
  • Harbor installed-agent adapter and eval program (#2741) (dbabc71b)
Changed
  • classify Windows-skipped tests (#2738) (25c43d0b)

v5.279.2

2026-10-01
Fixed
  • forward MCP image content blocks to the model (#2734) (f785c05a)

v5.279.1

2026-10-01
Fixed
  • address advisory findings from pr-triage pass 2 (#2737) (4b0b84d0)

v5.279.0

2026-10-01
Added
  • add image_edit tool via OpenAI Images Edit API (#2725) (50e4d361)
Fixed
  • address advisory findings from 2026-09-30 pr-triage (#2720) (a6549920)

v5.278.2

2026-10-01
Fixed
  • restore funcsize/filesize ratchets on openai-compatible query() after #2711/#2721 collision (#2729) (a3010b28)

v5.278.1

2026-09-30
Added
  • openai-compatible waits out usage/quota limits (#2721) (f66156a3)
  • add access-pattern reporting for the fact archive (#2724) (91739adb)
  • whatif preflight checks whether the experiment can answer the question (#2722) (556a53f8)
Changed
  • read outcome tool results from the message journal (#2718) (bad8a911)
  • provider accounting parity audit and fixes (#2723) (523d9761)
Fixed
  • address remaining advisory findings from 2026-09-30 pr-triage (#2719) (93a31b65)
  • address advisory findings from #2661 review (#2717) (4f2d08e0)

v5.278.0

2026-09-30
Added
  • hide skills from the model manifest via disable-model-invocation / skills.hidden (#2707) (2d988efe)
  • add setSystemPrompt, setBeforeNextRound, and rewind to openai-compatible (#2711) (ee7af094)
Fixed
  • contain AFK_FRAMEWORK_PROMPT_FILE throw at mid-lifecycle sites (#2704) (c3e7395d)
  • set maxRetries: 0 on SDK clients so AFK owns the retry loop (#2702) (ef707371)

v5.277.0

2026-09-30
Added
  • PreToolUse hook updatedInput support (tool input rewrite) (#2706) (2d09ce1a)
Changed
  • cross-provider conformance suite for resilience-feature drift (#2709) (27b3351f)
  • record why openai-compatible needs no many-image guard (#2705) (be4f787a)
Fixed
  • address advisory findings from 2026-09-30 pr-triage (#2703) (8d7d23d9)

v5.276.23

2026-09-30
Fixed
  • stable session id for non-CLI surfaces + correct id in get_runtime_state (#2708) (4dcfb31d)
  • update resolver cache and use live getter for parentApiKey after /reauth (#2699) (1f0ec2a4)
  • address advisory findings from 2026-09-30 pr-triage (#2693) (ea594f57)

v5.276.22

2026-09-30
Fixed
  • close frozen Playwright context safely in renderHtml (#2698) (c6573703)

v5.276.21

2026-09-30
Added
  • per-plugin hook env allowlist (#2700) (4c3db5ee)
Fixed
  • use undici's own fetch+Agent instead of globalThis.fetch+foreign dispatcher (#2697) (77e4fce9)
  • sort-then-slice fingerprint, drop unused barrel exports, clarify docs (#2696) (31d61c0a)
  • exitCode guarantee, module-scope const, beforeEach fake timers (#2690) (2f2dc903)
  • plumb tailWidth into grouped-root suffix; sum fixed-part widths directly (#2692) (be879a9d)
  • address advisory test-hygiene findings from #2671 + #2672 (#2691) (1e921566)

v5.276.20

2026-09-30
Fixed
  • reorder realpathSync before manifestName, validate CODEX_HOME absolute, use realPath for asset path (#2678) (51a97242)
  • address advisory findings from 2026-09-29 pr-triage (#2684) (9c9355af)

v5.276.19

2026-09-30
Fixed
  • address advisory test-quality findings from Windows-compat PR batch (#2677) (0ce311df)
  • lift textContainsQuestion to module scope, tighten regex, improve tests (#2676) (13c357e4)
  • tighten comment precision, add prefix-boundary test cases, fix unresolvable @link (#2680) (826d881d)
  • harden pack check with jq and clarify postinstall docs (#2681) (5009c6e7)
  • extract clusterHits to cluster.ts; tighten detector test; fix doc order (#2682) (72698c27)
  • sanitize FTS5 queries with hyphens/colons before retrying (#2674) (448d3722)
  • count foreground subagents in health rail N/M subs (#2685) (c0b47588)
  • document latch/ask invariant, add selectBaseSchemas tests, annotate dead ternary (#2683) (57c7f6ae)

v5.276.18

2026-09-30
Fixed
  • add avail=1 degenerate-terminal unit test for band reserve clamp (#2671) (e5128b7d)
  • sync message description, add test comment, clarify mock comment (#2675) (97fb0ffa)

v5.276.17

2026-09-30
Changed
  • remove redundant subagent-status overlay slot (#2661) (3732b866)

v5.276.16

2026-09-30
Fixed
  • stop clipping failed-tool error lines to 20 columns (#2667) (6a0681dd)
  • add updated and missing-dir stdout assertions to single-plugin update tests (#2672) (469f98bb)
  • add multi-byte elision test, explicit utf8 arg, fix JSDoc phrase (#2670) (b1447315)
  • epoch guard, over-cap fallback test, and clarifying comments (#2652) (e8a33963)
  • memoize daemonDefaultCwd, improve fallback warning, add EACCES test (#2655) (f9324b9a)
  • redact err.message, guard ambient credential on custom baseUrl, add missing tests (#2659) (2cb16e2e)
  • symlink guard, GlobAbortedError message, foldsOverlap predicate, hardlink test (#2658) (40a2f0ae)

v5.276.15

2026-09-30
Fixed
  • apply contentMargin() padding in appendLinesAtCursor (#2660) (3b9b1c4b)
  • stabilize tests that flake under local load (#2650) (2a0a457c)
  • tighten DATE_TEMPLATE, type label as union, expand boundary tests (#2654) (b5dada27)
  • print single-plugin update outcome to stdout (#2649) (600efab1)
  • fix bytes/chars mismatch, extract TurndownLike, tighten MIME cap (#2651) (83df6550)
  • fix AFK_SUBAGENT_LOG parenthesis, stale shell-escape doc, raw-input trailing blank (#2657) (3fe4fb8a)
  • guard queueMicrotask push against post-dispose settled events (#2656) (f3ebbdad)
  • address advisory findings from RetryLayer swapped detection review (#2653) (971e9908)

v5.276.14

2026-09-30
Fixed
  • populate transcript_path in hook payloads from REPL transcript (#2647) (39e88574)
  • reserve viewport rows for the committed band under content-hug (#2648) (e8afd50b)

v5.276.13

2026-09-30
Fixed
  • fix --yes --force prompt bug and add measured-refusal handling (#2645) (1e695814)

v5.276.12

2026-09-30
Fixed
  • fix JSON credential source label, tier order, and xAI auth branch (#2634) (2aebb10d)
  • track client-built token in RetryLayer to fix swapped detection (#2636) (141ed326)

v5.276.11

2026-09-30
Fixed
  • openai-compatible has no first-byte or stream-stall timeout (also affects xAI and local runners) (#2431) (5fff9fa7)
  • strip truncated annotation fragments before re-appending (#2635) (63cfee41)
  • resolve confirmSpec promise before closing readline (#2633) (128284a1)

v5.276.10

2026-09-30
Fixed
  • discover installed Claude plugins and native Codex plugins (#2524) (1336213e)

v5.276.9

2026-09-30
Fixed
  • render Markdown in send_telegram messages (#2521) (db2dc20e)
  • default daemon session cwd to daemon-state-dir, not process.cwd() (#2613) (f3a7baff)

v5.276.8

2026-09-30
Changed
  • make Windows a required test leg (closes #703) (#2630) (64532d99)
  • order-preserving parallel readdir in glob walker (#2614) (cbf614ec)

v5.276.7

2026-09-30
Fixed
  • give oauthRefresher and port-file-lifecycle startDaemon calls an isolated telemetryPath (#2616) (25067360)

v5.276.6

2026-09-30
Changed
  • add ratcheted POSIX-assumption guard enforced in pnpm test (#2626) (0487ad6e)
  • replace hardcoded /tmp with os.tmpdir() (#2618) (d9784900)
Fixed
  • bash credential floor failed open on Windows (#2625) (138b7636)
  • unconfined sessions no longer denied with 'write roots []' (#2624) (abbff067)
  • L7+L8 postinstall import and three misc Windows test failures (#703) (#2623) (493d044e)
  • use resolveShell() in shell-task instead of hardcoded /bin/sh (#2622) (1b57dc2b)
  • close provider SQLite handles before test tmpdir removal (#2621) (30867b8d)
  • fix Windows path separator and 8.3 short-name bugs in sandbox containment (#703) (#2620) (e6c8d532)
  • fix POSIX path literals in util/tool tests and glob pattern separator bug (#2619) (6e2301ad)

v5.276.5

2026-09-30
Changed
  • fix POSIX path literals in daemon tests for Windows compat (#2617) (b0f1515f)
Fixed
  • reset denylist cache and use vi.stubEnv in symlink test block (#2615) (44477480)
  • wait (bounded) for killed ripgrep to exit before resolving (#2631) (c9aaf2e1)

v5.276.4

2026-09-29
Fixed
  • askedBeforeActing now detects prose questions after read-only tools (#2606) (adf452be)
  • wire --no-baseline-sample into the afk whatif CLI command (#2608) (607306b6)
  • preserve ask_question in whatif episodes so asking behavior is measurable (#2612) (24a94ce8)
  • keep POSIX semantics for /-rooted scan candidates on win32 (#2605) (887c0aed)

v5.276.3

2026-09-29
Fixed
  • session.init reports session cwd instead of process.cwd() (#2611) (d1d68320)
  • include prediction text in refused.json (#2607) (6b6329dd)

v5.276.2

2026-09-29
Changed
  • Merge pull request #2603 from griffinwork40/afk/whatif-slash-force (cf640033)
  • Merge pull request #2483 from griffinwork40/afk/issue-2402-b545 (6aad35f4)
  • Merge pull request #2532 from griffinwork40/afk/iso-agent-tool-3-fgt9ns (11983933)
  • Merge branch 'main' into afk/issue-2402-b545 (a8543b48)
Fixed
  • forward --force from the /whatif REPL slash command (6df2ecf3)
  • extract describeIgnoredRefusal helper; add ignored meta fields to teardown (a5dc7415)
  • drop unfounded ._build/ pattern; pass ignored detail to isolation debug log (5f213188)
  • classify SwiftPM .build/ as rebuildable and name the real path in ignored-local-state lock reasons (218a8e0f)
  • probe grounding buffer cap, async git, warning on unexpected failure, grounding clause hygiene, all-dropped test (9fdf32bc)

v5.276.1

2026-09-29
Added
  • local, prose-free record of deferred "pre-existing" defects (89cd5eb3)
Changed
  • Merge pull request #2589 from griffinwork40/afk/preexisting-ledger (b68b6e53)
  • Merge pull request #2588 from griffinwork40/afk/bash-scan-sink-exempt (17797dfc)
  • Merge pull request #2587 from griffinwork40/afk/iso-agent-tool-4-u026vb (e2546a82)
  • Merge pull request #2570 from griffinwork40/afk/iso-agent-tool-5-hdypjv (2f095fd4)
Fixed
  • address Codex review (sidecar-less surfaces, ambiguous loci, deferred size category) (c610875e)
  • stop path-escape advisory firing on /dev/null and /tmp (509d7e57)
  • shut down lazily-launched browser after afk chat completes (89539544)
  • address console-bridge advisory findings from #2517 review (34ecda0f)

v5.276.0

2026-09-29
Added
  • add overload pause tier to openai-compatible provider (70a30f0d)
Changed
  • Merge pull request #2569 from griffinwork40/afk/iso-agent-tool-4-xon4bj (b24066b6)
  • Merge pull request #2574 from griffinwork40/afk/iso-agent-tool-4-mh9o62 (262fa048)
  • Merge remote-tracking branch 'origin/main' into afk/fix-2574-conflict (f43e7208)
  • Merge origin/main into afk/iso-agent-tool-4-mh9o62 (#2574) (785a9ed3)
  • merge origin/main + apply review findings (#2574) (6039e638)
Fixed
  • pin SHARED_CONTEXT_DIRECTIVE in ordering test and tighten separator count (9136739b)

v5.275.6

2026-09-29
Changed
  • Merge pull request #2584 from griffinwork40/afk/iso-agent-tool-3-ez4uwm (55b1611e)
  • Merge pull request #2583 from griffinwork40/afk/drop-dist-postinstall (b6969ee5)
  • Merge pull request #2582 from griffinwork40/afk/glob-rg-2543 (bcb9d260)
  • Merge pull request #2581 from griffinwork40/afk/iso-agent-tool-3-k7xlsp (387dca76)
  • stop copying postinstall into dist/ (0201388b)
  • stop per-entry sync stat probes in the read-denylist check (#2543) (e4183e66)
Fixed
  • elide data: URI payloads in web_scrape extracted markdown (ba6e5d07)
  • retire AFK_CAPTURE_SUBAGENT_OUTPUT and AFK_CAPTURE_SUBAGENT_PROMPTS (8a0bbac2)

v5.275.5

2026-09-29
Added
  • add redundancy preflight check to /whatif (c45dfd4e)
Changed
  • Merge pull request #2571 from griffinwork40/afk/iso-agent-tool-5-hvsx44 (42ea0bc3)
  • Merge pull request #2523 from 0x7067/fix/pnpm-11-install (5422b42d)
Fixed
  • fix over-stemming, heading false-match, progress excerpt, and weak tests (cc91d375)

v5.275.4

2026-09-29
Changed
  • Merge pull request #2572 from griffinwork40/afk/iso-agent-tool-2-86ybes (9441ccc7)
  • Merge pull request #2575 from griffinwork40/afk/iso-agent-tool-3-qdnucb (706c42af)
  • decompose openai-compatible/query.ts under the 350-line ceiling (e1589a52)
Fixed
  • bound tool-lane preview formatting so huge tool results cannot starve the REPL (#2578) (247a06f6)
  • make query.ts mutable fields private with live getters (81261a07)
  • fd leak, tie-break parity, typeof guard (9a51b6aa)
  • async non-blocking tool-result lookup for web route (b94fad6e)

v5.275.3

2026-09-29
Changed
  • Merge pull request #2573 from griffinwork40/afk/iso-agent-tool-2-xnqdzl (4fb3854c)
Fixed
  • advisory findings from 2026-09-29 pr-triage review (fa3647e1)

v5.275.2

2026-09-29
Changed
  • Merge pull request #2544 from griffinwork40/afk/iso-agent-tool-15-x0ud5c (7d8775f1)
  • Merge pull request #2537 from griffinwork40/afk/iso-agent-tool-6-2xmiio (6542bb2b)
  • Merge pull request #2547 from griffinwork40/afk/whatif-2478-consolidate (35f55f43)
  • merge remote afk/iso-agent-tool-6-2xmiio (already-resolved conflict) (e139b662)
  • resolve conflict with origin/main in src/whatif/run.ts (188bd348)
  • merge origin/main into afk/iso-agent-tool-6-2xmiio (54974335)
  • Merge remote-tracking branch 'origin/main' into afk/fix-2547-conflict (d9346ac9)
  • Merge branch 'main' into afk/iso-agent-tool-15-x0ud5c (1d6b44a8)
  • Merge branch 'main' into afk/iso-agent-tool-6-2xmiio (1fac705f)
  • Merge branch 'main' into afk/whatif-2478-consolidate (eba47b60)
Fixed
  • unref deferred exit timers and use fake timers in crash-handler tests (95d325db)
  • record kept sandbox roots in /sandboxes.json (cb19fa3a)
  • defer crash-notification exit and guard against duplicate handler registration (def2b0ad)
  • address advisory findings from #2518 and #2512 (whatif) (adbd876b)

v5.275.1

2026-09-29
Changed
  • Merge pull request #2545 from griffinwork40/afk/iso-agent-tool-13-6nh80t (a4acbbb7)
  • Merge pull request #2538 from griffinwork40/afk/iso-agent-tool-7-aol66x (3ac45ad5)
  • Merge branch 'main' into afk/iso-agent-tool-13-6nh80t (fb3ea471)
  • Merge branch 'main' into afk/iso-agent-tool-7-aol66x (f6f77b22)
Fixed
  • log stale-source overwrites in bg-injection; defer push body formatting (efffc209)
  • address advisory findings from overlap guard review (08d50bc1)

v5.275.0

2026-09-29
Added
  • yield-to-user contract; wait_for ends early when the user types (174bedd4)
Changed
  • Merge pull request #2540 from griffinwork40/afk/iso-agent-tool-12-oia21r (fb0fc39f)
  • Merge pull request #2541 from griffinwork40/afk/tool-user-yield (a9bc7668)
  • Merge branch 'main' into afk/tool-user-yield (4837051e)
  • Merge branch 'main' into afk/iso-agent-tool-12-oia21r (a98bc831)
Fixed
  • image-bearing queued messages also wake a yielding tool (aa516af0)
  • advance turn index only after a turn passes its gate, add ordinal-list and anaphora test coverage, scope corpusExclusions JSDoc (850d9a32)

v5.274.8

2026-09-29
Changed
  • Merge pull request #2546 from griffinwork40/afk/iso-agent-tool-11-sd0rtt (85a9dcd4)
  • Merge branch 'main' into afk/iso-agent-tool-11-sd0rtt (9d92842c)
Fixed
  • address advisory findings from PR #2385 review (#2539) (6d476bf2)
  • document regex matcher alias asymmetry in hook config docs (#2533) (80694d78)
  • replace non-null assertions with explicit guards, drop redundant cast, move test hooks inside describe (#2534) (9a73762d)
  • add --probes/--max-predictions to flags, Set-based dedupe, Map-based syntheticPerArm (#2536) (01fd7342)
  • advisory findings from journal provenance adapters review (61008718)

v5.274.7

2026-09-29
Changed
  • Merge pull request #2566 from griffinwork40/afk/pnpm-11-migration (0446aec3)
  • Merge pull request #2548 from griffinwork40/afk/iso-agent-tool-16-sw8jmm (deeea47a)
  • raise Node floor to 22.13 to match pnpm 11 (4066f2f0)
  • migrate to pnpm 11 (531c8031)
Fixed
  • address advisory findings from #2494 review (9ba5a742)

v5.274.6

2026-09-29
Changed
  • Merge pull request #2549 from griffinwork40/afk/iso-agent-tool-20-qclu1t (966ca8a7)
Fixed
  • improve thinking-chunk exclusion test coverage (fccdf961)

v5.274.5

2026-09-29
Changed
  • Merge pull request #2550 from griffinwork40/afk/iso-agent-tool-17-7rv2wh (8dcf3b67)
  • Merge pull request #2555 from griffinwork40/afk/iso-agent-tool-24-p6atnz (9a7d8d23)
  • Merge pull request #2552 from griffinwork40/afk/iso-agent-tool-18-jtnfy4 (e1babded)
  • Merge pull request #2558 from griffinwork40/afk/iso-agent-tool-25-ya41kq (32e8a39c)
  • Merge pull request #2564 from griffinwork40/afk/iso-agent-tool-27-nx7lh8 (77a0057d)
Fixed
  • address advisory findings from /pr-triage 2026-09-27 (693ced57)
  • advisory findings from #2507 — turn budgets across retry-tier replays (7f7360b5)
  • document above/below contract, defensive rail sets, and add missing tests (42bac34e)
  • advisory findings from #2476 (MDE preflight and gate) (7e2372d9)
  • betaSample degenerate guard + ICC clamp comment (9d607d24)

v5.274.4

2026-09-29
Changed
  • Merge pull request #2556 from griffinwork40/afk/iso-agent-tool-21-b7yd2v (165718b3)
  • Merge pull request #2559 from griffinwork40/afk/iso-agent-tool-26-3jc9h1 (08257bc5)
  • Merge pull request #2553 from griffinwork40/afk/iso-agent-tool-22-0mzqmg (94ffb408)
  • Merge pull request #2551 from griffinwork40/afk/iso-agent-tool-19-3gz36h (b78b5625)
  • Merge pull request #2557 from griffinwork40/afk/iso-agent-tool-23-7kkz12 (85a9d461)
Fixed
  • address advisory review findings from #2469 reauth fix (19a0346f)
  • advisory findings from #2370 — preview budget, type narrowing, Telegram spoofing guard (5450732e)
  • advisory findings from #2438 — tool_calls cast removal, interleaved repair order, fast path, type tightening (4cb2a525)
  • plan-text-tracker advisory findings — comments, zero-width strip, test (f00e617c)
  • use CROSS_CHECK_MIN_* constants, drop redundant guard, strengthen test (64119b14)

v5.274.3

2026-09-29
Changed
  • Merge pull request #2510 from griffinwork40/afk/outcome-journal-fallback (ea54deff)
  • Merge remote-tracking branch 'origin/main' into afk/pr-2510-rebaseline (f50f078e)
  • Merge remote-tracking branch 'origin/main' into afk/pr2510-push (8c711f8f)
Fixed
  • address review feedback on outcome journal fallback (f7703b47)
  • fall back to the session journal when the sidecar is absent (05929cf6)

v5.274.2

2026-09-29
Changed
  • Merge pull request #2554 from griffinwork40/afk/fix-query-filesize-ratchet (84be5439)
Fixed
  • extract compact summarize wiring to restore the filesize ratchet (b5aba032)

v5.274.1

2026-09-29
Changed
  • Merge pull request #2529 from griffinwork40/afk/iso-agent-tool-2-fzg8lh (19a7b263)
Fixed
  • raise undici floor to ^7.27.1; add Node 26 CI leg (issue #2525) (#2535) (edb8ed42)
  • move JEV_DISREGARD_NOTE to leading grading-instructions preamble (#2531) (9f56ada4)
  • correct postinstall docs — Linux Telegram notice, bot.pid wording, bold emphasis (#2527) (ed8218c8)
  • pin geometryStale+anchorRow invariant; add suspended to makeHost defaults (#2530) (aaa8c90a)

v5.274.0

2026-09-29
Added
  • add shared-context directive for interactive surfaces (f64ea156)
Changed
  • Merge pull request #2522 from griffinwork40/afk/shared-context-directive (225534b6)

v5.273.0

2026-09-29
Added
  • AFK_COMPACT_MODEL works across providers (7aaf663a)
Changed
  • Merge pull request #2517 from griffinwork40/afk/diagnose-error-wrapping (a1ebe921)
  • Merge pull request #2451 from griffinwork40/afk/issue-2449-plr9 (d881b7b3)
  • Merge pull request #2474 from griffinwork40/afk/compact-model-cross-provider (b5afc0e9)
  • drop stale personal claude-jev path from fixture comment (36a9886a)
  • Merge remote-tracking branch 'origin/main' into afk/pr2474-fix (726e9e2d)
Fixed
  • route console.warn/error through the compositor while armed (5575382e)
  • reject still-expired xAI OAuth token in compaction (89531f3e)
  • address review feedback (c8ba85a5)
  • scope privacy warns per-instance, fix DOMException abort, normalize xai-oauth family (617b34f0)
  • stop persisting raw first prompts in the outcome store (d6bc5738)

v5.272.1

2026-09-29
Changed
  • Merge pull request #2512 from griffinwork40/afk/whatif-repl-throttle-pdisplay (b99155d1)
Fixed
  • render tiny sign-flip p-value as <0.001 instead of 0.000 (5e985d2d)
  • REPL progress throttle shows every preflight milestone line (b164eb80)

v5.272.0

2026-09-29
Added
  • measure baseline headroom with a small baseline-only sample (#2511) (15516608)
Changed
  • Merge pull request #2518 from griffinwork40/afk/whatif-baseline-sample (144d578c)
Fixed
  • baseline sample cost estimate includes its cold-cache start (92b9e8ed)
  • a refused baseline sample writes refused.json with its evidence and spend (13cebc97)
  • baseline sample gates on the full run's MDE and is not bypassed by --force (9fdd170e)

v5.271.3

2026-09-29
Fixed
  • show the real Anthropic credential source in afk status (#2458) (38046fab)

v5.271.2

2026-09-29
Fixed
  • record --ref on update when the checkout is already at it (#2457) (663e1f56)

v5.271.1

2026-09-29
Fixed
  • load plugins nested under a marketplace root plugin (#2456) (8b57cb81)

v5.271.0

2026-09-29
Added
  • persist doneUnverified in schedule telemetry (1eabf0ea)
Changed
  • Merge pull request #2322 from griffinwork40/afk/iso-agent-tool-4-foq9u1 (fbd08d2f)
  • merge main; drop scheduler.ts filesize grandfather (fits at 350 after #2320) (2348c891)
  • Merge remote-tracking branch 'origin/main' into afk/pr2322-rebase-main (b92756e7)
  • Merge remote-tracking branch 'origin/main' into afk/pr2322-fix (6eaefd5a)
Fixed
  • address review feedback — JSDoc, record assertion, baseline (1fb0a6bb)

v5.270.3

2026-09-29
Changed
  • Merge pull request #2320 from griffinwork40/afk/iso-agent-tool-7-p3r1o7 (653858b5)
Fixed
  • use real-length sk- token in redaction test (7fdc7913)
  • redact secrets in makeSessionStartSkipRecord; add test; merge main; add JSDoc notes (9383e9f5)
  • add per-task in-flight overlap guard to CronScheduler (391861a2)

v5.270.2

2026-09-29
Added
  • derive session facets from the message journal (27e9d8cf)
Changed
  • Merge pull request #2438 from griffinwork40/afk/issue-2417-4d60 (3b625eab)
  • Merge pull request #2496 from griffinwork40/afk/issue-2412-dok6 (16ea924b)
  • Merge pull request #2506 from griffinwork40/afk/issue-2461-q7r3 (0f7d533a)
  • Merge pull request #2505 from griffinwork40/afk/whatif-headroom-2504 (6c106678)
  • fix postinstall docs — platform split, silent-skip wording, hook duties, isGlobalInstall, marker file (#2280) (d4c11229)
  • restore #2412 regression tests dropped by prior fix commit (51eeed80)
  • remove pr-body.md (76677951)
  • remove pr-body.md (leftover) (ba4e181c)
Fixed
  • address review feedback on repair-orphan-tool-calls (e49a0d8f)
  • address review feedback (d4bd47fd)
  • extract aggregateToolEvents, clean journal-adapter, unify dedup (de4f8c96)
  • strip leading newlines from append change.text; add content-ops tests (bada0594)
  • keep journal commit detection and home isolation (3a851063)
  • headroom warning also prints under --force; rates render as % (8b554574)
  • probe headroom check (#2504) (a3a8de71)
  • append operator inserts an extra blank line (2b04e7fd)
  • openai-compatible never repairs orphaned tool calls before sending history (643e9be6)

v5.270.1

2026-09-29
Changed
  • Merge pull request #2497 from griffinwork40/afk/fix-hidden-lines-spine (90843dcf)
Fixed
  • keep turn budgets across retry-tier replays; report hard-timeout partials (#2507) (32513ed5)
  • add crash notification handlers to standalone telegram bot (#2311) (e3f01b70)
  • hidden-lines gutter follows the active glyph set (8bc30f47)
  • keep tree spine intact on "N earlier lines hidden" row (9c7d3c97)

v5.270.0

2026-09-28
Added
  • support Claude Sonnet 5.5 (claude-sonnet-5-5) (#2495) (774930c6)

v5.269.0

2026-09-28
Added
  • paired per-probe sign-flip analysis (#2477 step 3) (#2498) (2a9d4503)

v5.268.1

2026-09-28
Changed
  • Merge pull request #2494 from griffinwork40/afk/iso-compose-fix-2411-2-ryvk37 (75c9dcb5)
  • Merge pull request #2493 from griffinwork40/afk/iso-compose-judge-grades-1-gez9da (e2340f0b)
  • Merge pull request #2490 from griffinwork40/afk/issue-2479-q3x8 (0cb54a34)
  • Merge pull request #2492 from griffinwork40/afk/iso-compose-fix-2489-3-ewvk4x (717dae9f)
  • report failed episodes per arm and flag arm-imbalance (#2411) (09bf99b8)
  • persist per-output judge grades to grades.jsonl (#2491) (0945fafc)
Fixed
  • correct estimateVerifyCost 1.92x overestimate (#2489) (78317b05)
  • simulate calibration harness ICC presets and endpoint base rates correctly (633f3ac8)

v5.268.0

2026-09-28
Added
  • --probes N, probe dedupe, predictions cap, probes before replay (#2477 step 1) (c0326ab1)
  • provenance-carrying adapters keep provider switches lossless (#2464) (693337c8)
Changed
  • Merge pull request #2463 from 0x7067/docs/plugin-hook-contract (8e5c7f28)
  • Merge pull request #2482 from griffinwork40/afk/whatif-probes-2477 (59663207)
  • Merge pull request #2468 from griffinwork40/afk/journal-provenance (8e25b580)
  • Merge pull request #2469 from griffinwork40/afk/20260928-131257-4d5c6b (07bad547)
  • record live A→B→A signature result (#2464) (0aec3759)
  • bring the command-hook contract up to date (770d9de9)
Fixed
  • subagents ignore /reauth account switch (stale boot-token cache) (019efea1)

v5.267.0

2026-09-28
Added
  • minimum-detectable-effect preflight, gate, and report limit (#2410) (3c9e04e3)
  • per-prediction judge agreement downgrades verdicts when judges disagree (#2413) (64dd1196)
Changed
  • Merge pull request #2476 from griffinwork40/afk/iso-compose-mde-2-plh7j1 (c7aeada0)
  • Merge pull request #2475 from griffinwork40/afk/iso-compose-crosscheck-3-2azvpb (7493ff53)
  • remove stray commit-message files (ae01c313)
  • Merge remote-tracking branch 'origin/afk/iso-compose-stats-1-e7z5zf' into afk/iso-compose-mde-2-plh7j1 (134ea19b)
Fixed
  • correct power convention and use per-prediction probe count (d5b0c8bd)

v5.266.2

2026-09-28
Changed
  • Merge pull request #2473 from griffinwork40/afk/iso-compose-stats-1-e7z5zf (292422fe)
  • remove stray commit-message files (d2f20703)
  • extend calibration harness — Beta latent, tau dimension, updated thresholds (e500f913)
Fixed
  • per-episode analysis and real equivalence test for verdicts (#2404, #2405) (16345281)

v5.266.1

2026-09-28
Changed
  • Merge pull request #2467 from griffinwork40/afk/iso-agent-tool-1-aafzkj (3a3e203e)
  • Merge pull request #2465 from griffinwork40/afk/iso-compose-harness-1-oxi4or (43cbeab3)
  • calibration harness: add ICC dimension, regenerate docs (beb2e90c)
  • model-free calibration harness for verify verdicts (#2404, #2405) (5ca9806e)
Fixed
  • isolate arm sandboxes so episodes cannot reach the other arm (#2466) (05b263ac)

v5.266.0

2026-09-28
Added
  • per-session message journal (full tool results, resume/fork source) (#2452) (416a11d1)

v5.265.3

2026-09-28
Changed
  • Merge pull request #2400 from griffinwork40/afk/issue-2382-suspend-commit (2573e900)
  • drop agent report file from repo root (d743a658)
  • add 2400-fixes-report.md with per-finding evidence and gate results (6844dfee)
  • extract processChunk + helpers to suspend-observer.process.ts (funcsize gate) (1c327415)
  • restore strict oracles + add counted-handoff tests (3675208d)
  • Merge remote-tracking branch 'origin/main' into afk/issue-2382-suspend-commit (dff035d7)
Fixed
  • F1/F2/F3/F6 re-review findings for disarm-while-suspended owner-wrote path (5f15ef41)
  • B1 CSI tracking, L1 idempotent remove, L2 resetState, L3 live dims, B2 pending archive (346d2d21)
  • remove debugLog from disarm (not in LifecycleHost interface) (72704a52)
  • counted-handoff suspend/resume + prior-band archive fix (69fc5465)
  • settle+queue design for suspend-commit (issue #2382, PR #2390) (a105362d)

v5.265.2

2026-09-28
Changed
  • Merge pull request #2448 from griffinwork40/afk/issue-2445-escape-sanitize (48807429)
Fixed
  • address PR #2448 review findings (F1/F2/F3/F5) (0a026366)
  • strip escape sequences from task-view header and error events (#2445) (11137394)

v5.265.1

2026-09-28
Fixed
  • ground synthetic probes in real repo paths (#2407) (#2430) (fb3bea51)

v5.265.0

2026-09-28
Added
  • capture resultTail on verification events; parse pass/fail from tail (e0d90c2a)
Changed
  • intercepted actions are scored as 'did not happen', so unobservable predictions show as refuted (#2436) (3f6bd6cb)
  • Merge pull request #2437 from griffinwork40/afk/verified-outcome-capture (c433b43c)
  • Merge remote-tracking branch 'origin/main' into afk/sync-capture (fe274377)

v5.264.0

2026-09-28
Added
  • M2 nightly delayed-relabel job (c1b7350c)
Changed
  • Merge pull request #2439 from griffinwork40/afk/verified-outcome-relabel (13a1da72)
  • Merge remote-tracking branch 'origin/main' into afk/sync-relabel (2e27e6f5)
  • Merge remote-tracking branch 'origin/afk/verified-outcome-m2' into afk/relabel-conflict-fix (b9b52919)
Fixed
  • relabel job caps provisional records, not the directory scan (726e69b3)

v5.263.0

2026-09-28
Added
  • M2 part 2 — session-end hook, child attribution, closure LF, cross_session_reask (762b7fb6)
  • outcome store, /good and /bad feedback, get_facet join (5d3391a1)
Changed
  • episodes are not blind; the agent can detect the experiment and read which change was applied (#2447) (ebc4ac4f)
  • Merge pull request #2441 from griffinwork40/afk/verified-outcome-m2 (dec21498)
  • Merge remote-tracking branch 'origin/main' into afk/sync-m2 (1da2fef8)
  • Merge remote-tracking branch 'origin/main' into afk/sync-m2 (a9cb26ad)

v5.262.1

2026-09-28
Added
  • events.jsonl reader extends backfill to 16k older sessions (4abb48dd)
Changed
  • Merge pull request #2440 from griffinwork40/afk/verified-outcome-history (988faf4b)
  • Merge pull request #2393 from griffinwork40/afk/taskview-alt-screen (4e9b388f)
  • Merge remote-tracking branch 'origin/main' into afk/sync-history (84be5da0)
  • Merge remote-tracking branch 'origin/main' into afk/taskview-alt-screen (7e53d264)
Fixed
  • exclude whatif sessions and context-dependent follow-ups from replay corpus (#2435) (3c3a92a9)
  • F1/F2/F3 review findings (session 5) (de82082f)
  • guarantee alt-screen teardown on SIGINT and all process.exit paths (#2393) (946703cb)
  • mid-turn task view uses the alternate screen (9ef02e46)

v5.262.0

2026-09-28
Added
  • M0 backfill — verified_outcome labeling functions and distribution report (1aec6259)
Changed
  • Merge pull request #2429 from griffinwork40/afk/verified-outcome-m0 (cd192e9c)
Fixed
  • M0 precision fixes; exit check now honestly FAILS (887b194d)

v5.261.7

2026-09-28
Changed
  • hook-injected context differs between arms (path- and recency-sensitive hooks confound deltas) (#2434) (9fbe8314)
Fixed
  • score predictions on their relevant episodes (#2403) (#2427) (b9a5cc96)

v5.261.6

2026-09-28
Fixed
  • gate report headline on significance, scale adverb, name total predictions (#2433) (4ff87436)

v5.261.5

2026-09-28
Changed
  • Merge pull request #2432 from griffinwork40/afk/issue-2428-q8w3 (e068f969)
Fixed
  • address advisory findings from #2213 — plugin hook registration (#2337) (56081762)

v5.261.4

2026-09-27
Changed
  • Merge pull request #2380 from griffinwork40/afk/issue-2364-opk9 (f6ec52e4)
  • Merge pull request #2362 from griffinwork40/afk/debug-advocate-output (210910d7)
  • Merge pull request #2354 from griffinwork40/afk/oai-dispatcher-sessionid (836507df)
  • Merge branch 'main' into afk/oai-dispatcher-sessionid (c019a80d)
Fixed
  • prefer context.sessionId over registration-time id in command hooks (#2392) (12eaee43)
  • dispose() marks buffered jobs delivered; clarify truncateBytes JSDoc (f355f975)
  • trim query() invariant comment to pass funcsize ratchet (65d9999b)
  • clear resetArmed in stream.retry branch of PlanTextTracker (9c20a166)
  • deliver background subagent results to chat and next turn (68c9a1d0)
  • refuse exit_plan_mode when the plan was never written as visible text (e3fb66bc)
  • pass the resolved session id to the tool dispatcher (d4692df5)

v5.261.3

2026-09-27
Changed
  • Merge pull request #2356 from griffinwork40/afk/issue-2349-q8x3 (919975c8)
  • fix stale comments and tighten tests from #2324–#2333 triage batch (d237819c)
Fixed
  • regenerate env-registry docs after AFK_WHATIF_ALLOW_MCP description update (9c1aa0b1)

v5.261.2

2026-09-27
Changed
  • Merge pull request #2384 from griffinwork40/afk/issue-2369-correction (4965ae74)
Fixed
  • correct overlayTallEnoughToStrand analysis after adversarial review (d64cce8c)

v5.261.1

2026-09-27
Changed
  • Merge pull request #2390 from griffinwork40/afk/issue-2382-suspend-commit (3058fe66)
  • Merge pull request #2391 from griffinwork40/afk/issue-2389-q7t3 (4ae9896f)
  • pin accumulateStreamJson's deliberate exclusion of thinking chunks (a0da2998)
Fixed
  • two follow-up defects from #2382 suspend-commit review (e0c69603)
  • treat a suspended frame as top-unknown so suspended commits survive (#2382) (3ade1cba)

v5.261.0

2026-09-27
Added
  • gate major versions behind a manual dispatch; auto-update never crosses a major (2b54bd1c)
Changed
  • Merge pull request #2385 from griffinwork40/afk/major-release-gate (bb9e16c3)
  • Merge pull request #2370 from griffinwork40/afk/issue-2363-l7jj (a26af363)
  • show the full high-risk command in approval prompts (head+tail preview, no 256-char form cap) (554513af)

v5.260.0

2026-09-27
Added
  • A/B framework prompt edits and capture inter-tool narration (c7614ff8)
Changed
  • Merge pull request #2374 from griffinwork40/afk/whatif-framework-prompt (0bd4e4be)
Fixed
  • address review feedback (36ba1f07)

v5.259.2

2026-09-27
Fixed
  • wire AFK risk gate for daemon ticks and afk chat (#2315) (9ee45429)

v5.259.1

2026-09-27
Fixed
  • flag empty-output success and mark truncated response excerpt (#2383) (69b2f986)

v5.259.0

2026-09-27
Added
  • light narration on interactive surfaces (#2375) (a497294f)
Changed
  • compositor-level regression for tall-overlay strand gap (#2369) (#2381) (52d00e30)

v5.258.2

2026-09-27
Added
  • Claude Code matcher and timeout compatibility (#2377) (#2379) (7ec0269f)
Fixed
  • include tool_input in PostToolUse and PostToolUseFailure command-hook payloads (#2378) (506125c0)

v5.258.1

2026-09-27
Fixed
  • surface active shell in tool description; PowerShell syntax guidance on Windows fallback (#2346) (b13ab6b4)

v5.258.0

2026-09-27
Added
  • content-hug+banner — first reply flows under banner (#2229) (27342ddb)
Changed
  • Merge pull request #2368 from griffinwork40/afk/issue-2229-hug-banner (9c1748f0)
  • assert the kept banner is painted exactly once (#2229) (f39e4133)
  • content-hug boot-warning scenario expects warnings in the viewport (#2229) (b86c788f)
  • note preCommitBannerSync's caller precondition (0627abe7)
  • Merge remote-tracking branch 'origin/main' into afk/issue-2229-hug-banner (c738fe16)
Fixed
  • scope the content-hug strand exclusion to frames with slack (#2229) (45b775de)

v5.257.9

2026-09-27
Changed
  • advisory findings from #2333 — many-image guard hardening (#2352) (3fdaf63f)
Fixed
  • honour pinnedRef pin when repo has semver tags (#2358) (#2360) (922f0e3d)

v5.257.8

2026-09-27
Changed
  • Merge pull request #2359 from griffinwork40/afk/issue-1619-diff-width (639a84ec)
Fixed
  • resolve remote-only branch names before git checkout --detach (#2361) (645af141)
  • size the diff preview box from the tool-lane row budget (#1619) (0fd9d2bd)

v5.257.7

2026-09-27
Added
  • dev/test geometry consistency guard at compositor entry points (1361e151)
Changed
  • Merge pull request #2336 from griffinwork40/afk/tui-geometry-guard (63cd3db8)
  • remove no-op identity spreads and clarify fork-preamble docs (#2321) (56fc1f62)
  • drop dead SETTLED constant and unused imports in OSC test (#2339) (ba1f7265)
  • bump next from 16.3.5 to 16.3.6 in /website (#2343) (d678c2aa)
  • bump @types/node from 26.6.1 to 26.6.2 in /website (#2342) (98f1124e)
  • seed #2290 content-hug band at a reachable bottom row (e48e0e40)
  • Merge remote-tracking branch 'origin/main' into afk/tui-geometry-guard (82f92b9c)
  • TUI research brief and architecture map (f0611d5c)
Fixed
  • geometry guard reports instead of throwing under AFK_DEBUG_COMPOSITOR (8b336c8e)

v5.257.6

2026-09-27
Changed
  • Merge pull request #2335 from griffinwork40/afk/issue-2239-ekdo (61bdc5a6)
Fixed
  • show child-failure badge on completed nested agent rows (cfb66840)

v5.257.5

2026-09-27
Changed
  • Merge pull request #2330 from griffinwork40/afk/iso-agent-tool-10-grctv3 (bcede334)
  • Merge pull request #2328 from griffinwork40/afk/iso-agent-tool-6-dns1ai (a40d99ea)
  • Merge pull request #2332 from griffinwork40/afk/issue-2249-m4k9 (8ada5643)
  • consolidate shared makeResult/makeError helpers into tool-lane-render.fixtures.ts (#2323) (3737deb2)
  • bump the fumadocs group in /website with 3 updates (#2341) (814ce249)
  • extract emitDispatchedToolOutputs to fix funcsize gate (06049024)
Fixed
  • move builtin-cwd warning to cwd-validator to satisfy filesize gate (175323e4)
  • prevent double SIGKILL timer and extra/unset bypass; document empty-changes behavior (f5514f6a)
  • align update_schedule cwd schema, null-on-create, error messages (2bf7a94a)
  • remove dead firstCompletedAt, widen timing margin (06ad6ec1)
  • per-call durationMs for parallel tool batches (e9cd3280)
  • advisory review findings — daemon per-task cwd (40cfa944)
  • address advisory findings from #2274 whatif prediction engine (fbb710d9)

v5.257.4

2026-09-27
Fixed
  • tighten --allow-growth/--reason arg guards and fix bootstrap JSDoc (#2279) (f3ca1a61)
  • child hot-write guard follow-ups from #2093 review (#2338) (8b92fc85)
  • address #2245 advisory findings for session_id_assigned (#2340) (a2da7450)

v5.257.3

2026-09-27
Changed
  • Merge pull request #2333 from griffinwork40/afk/fix-many-image-2000px (0617e7b9)
  • Merge pull request #2325 from griffinwork40/afk/iso-agent-tool-5-ykvy1a (b4a5609a)
  • Merge pull request #2326 from griffinwork40/afk/iso-agent-tool-7-avd1is (63d84e43)
  • Merge pull request #2327 from griffinwork40/afk/iso-agent-tool-9-brrvpd (af5b05ee)
  • Merge pull request #2329 from griffinwork40/afk/iso-agent-tool-8-c25noy (6e505c75)
  • Merge pull request #2324 from griffinwork40/afk/iso-agent-tool-3-2ouwtw (ad599bf1)
  • cover web-ui-assets exclusion; merge redundant CI scan step (#2334) (afdbf17c)
  • add content-hug guard test and update banner-path trigger comment (6df2a2d4)
  • correct five doc/help strings that contradicted runtime behavior (3bcbc122)
Fixed
  • enforce 2000px many-image limit at request-build time (7f142a65)
  • tighten fast-mode service_tier error latch, add catalog deps injection, trailing-slash normalisation, NoticeKind export, and staleness doc (688b9a99)
  • widen C1 regex, fix truncate code-point safety, update docs/comments (2c3467eb)
  • advisory nits from #2272/#2273 — unref guard, flatMap dead filter, stub type, export, shared helper, trailing blank, mid-file import (a9b34acf)

v5.257.2

2026-09-26
Added
  • organic smoke reveal, eased settle, reduced-motion gate (886bdec1)
Changed
  • Merge pull request #2284 from griffinwork40/afk/iso-agent-tool-1-6yudyk (22c6b0ae)
  • Merge pull request #2293 from griffinwork40/afk/smoke-organic (1314992c)
  • Merge pull request #2294 from griffinwork40/afk/iso-agent-tool-7-2cu3t7 (e006ab00)
  • Merge pull request #2292 from griffinwork40/afk/iso-agent-tool-9-tztgv1 (700b9ca6)
Fixed
  • thread depth/maxDepth through skill-fork and compose/DAG paths (8361a778)
  • advisory fixes for glob-absolute — metacharacter comment, separator normalization, typed test context, win32 testability (19cb41ea)
  • fix false-green tracking test, assert rank stripped, clean up unused vars (4dc68625)

v5.257.1

2026-09-26
Changed
  • Merge pull request #2282 from griffinwork40/afk/iso-agent-tool-2-ooggj4 (4f18deaf)
  • Merge pull request #2286 from griffinwork40/afk/iso-agent-tool-10-eqc3rn (702fd9b4)
  • Merge pull request #2287 from griffinwork40/afk/iso-agent-tool-6-cnewvw (fbac52da)
  • Merge pull request #2283 from griffinwork40/afk/iso-agent-tool-5-4hsys6 (0401dbae)
  • Merge pull request #2285 from griffinwork40/afk/iso-agent-tool-8-pa8nhz (39a19e63)
  • Merge pull request #2281 from griffinwork40/afk/iso-agent-tool-3-0lxtuh (4e7296fc)
  • extract shared makeResult/makeTool into fixtures (aac2ef52)
  • fix mutation count, reword pkgRoot comment, assert labels (ddb48d5d)
  • fix hasBadge boundary checks and stale badge format in tool-lane tests (1a7ad085)
  • fix subagent-attachment-propagation status; skip goal-feature-plan (7839637f)
Fixed
  • pin opus-5.5 alias, update env examples, clarify adaptive-thinking doc (32adcf35)
  • reuse margin var and clip input viewport unconditionally (efa52756)

v5.257.0

2026-09-26
Added
  • afk whatif and /whatif, a prediction engine for agent context changes (ebd1e518)
Changed
  • Merge pull request #2274 from griffinwork40/afk/whatif (ba616c06)
  • Merge origin/main into afk/whatif (bfcadd08)

v5.256.0

2026-09-26
Added
  • add errorHead to failed tool_call.completed events (#2264) (cd4d86a0)
  • episode mode runtime plumbing for sandboxed what-if runs (ae7169c4)
Changed
  • Merge pull request #2273 from griffinwork40/afk/whatif-runtime (ff40270a)
  • Merge origin/main into afk/whatif-runtime (92d23d30)

v5.255.0

2026-09-26
Added
  • /fast mode via service_tier "priority", incl. ChatGPT OAuth (#2270) (1195093f)
  • per-task working directory for scheduled tasks (482c23a5)
Changed
  • Merge pull request #2272 from griffinwork40/afk/fix-chat-silent-exit (aa974e39)
  • Merge pull request #2253 from griffinwork40/afk/iso-agent-tool-1-gxjpro (8a4d20dd)
  • review follow-ups from #2226 (test assertion, resetState, doc, banner-path guard) (#2275) (5ae78ce2)
  • Merge remote-tracking branch 'origin/main' into afk/pr2253-fix (f2764c70)
Fixed
  • send the OAuth billing system prefix so one-shot calls work on non-haiku models (5c624a5d)
  • keep command-hook children ref'd until they settle so chat cannot exit silently (a9010276)
  • validate cwd on daemon POST /tasks; reject empty cwd in web routes (19bffc3f)
  • carry cwd through POST /tasks, TOCTOU guard, and validation fixes (36a78d94)

v5.254.4

2026-09-26
Added
  • optional MCP server health-check pre-flight (AFK_MCP_HEALTHCHECK) (2a89587f)
  • activate fact access tracking (e54f371b)
Changed
  • Merge pull request #2218 from griffinwork40/afk/iso-agent-tool-2-dscfff (699c04ef)
  • Merge pull request #2223 from griffinwork40/afk/iso-agent-tool-8-f7mzud (d133c58a)
  • Merge pull request #2221 from griffinwork40/feat/1848-access-tracking-v3 (0c40a5fc)
  • Merge pull request #2220 from griffinwork40/afk/iso-agent-tool-5-owts6x (ce1fb454)
  • Merge pull request #2219 from griffinwork40/afk/iso-agent-tool-1-jkox3h (9ff29e66)
  • correct index status summaries (a83c4e4a)
  • harden AFK_SMOKE_TEXT scenarios (check for all smoke glyphs, restore env) (#2271) (4a2ad8b0)
  • cover CLI-restart fallback in tests/ suite + guard spawnSync (#2244) (#2263) (b437cb72)
  • document pnpm 10 postinstall skip behaviour and remedies (#2222) (0a4954e9)
  • add trailing boundary to hasBadge regex in tool-lane batch-start test (#2257) (14743ece)
  • exercise maybeRestartServices default pkgRoot on darwin (#2258) (2d0c96df)
  • add docs/README.md index (85597f55)
Fixed
  • clip centered input viewport to prevent column-0 wrap (65f227e9)
  • comment explicit blank-row commits at flushCompletedRoots sites + indent test (12a42e5e)

v5.254.3

2026-09-26
Added
  • tell forked children they are subagents; drop unused 'subagent' PromptSurface (#2255) (7ecc7819)
  • AFK_SMOKE_TEXT visual hierarchy, machine-status UI fades in (#2254) (1a16ebad)
  • point opus alias at claude-opus-5-5 (#2252) (c9c49148)
Fixed
  • put tool_result blocks first in persisted user turns (#2251) (c1f6dd04)

v5.254.2

2026-09-26
Fixed
  • prune .afk-worktrees and walk absolute patterns from their prefix (#2248) (507446a9)

v5.254.1

2026-09-26
Changed
  • tighten compact scrollback renderer tests (#2236) (#2243) (8bc8f826)
Fixed
  • re-join on-screen committed-band rows on widen (#2234) (526179cf)

v5.254.0

2026-09-26
Added
  • emit session_id_assigned event so traces are self-identifying (#2245) (f21a289a)

v5.253.1

2026-09-26
Fixed
  • scan OSC sequences past 254 bytes to their real terminator in smoke-reveal mask (#2250) (fd0c804d)

v5.253.0

2026-09-26
Added
  • AFK_SMOKE_TEXT, streamed prose condenses out of smoke (#2232) (d0da883d)
Changed
  • AFK.md and ci.yml comments contradict current gate state (funcsize, filesize, CLAUDE.md) (#2224) (1d5de9ba)
  • Replace workspace A/B runner with fail-closed TypeScript orchestration (#2230) (cb0f9cd9)

v5.252.0

2026-09-26
Added
  • unblock target:fact writes from subagents (#2093) (418cda94)
Changed
  • add real-PTY scenarios for SIGWINCH mid-active-turn (#2225) (348edc85)
  • stop a test from restarting the developer's real launchd services (#2233) (e1d123c8)

v5.251.1

2026-09-26
Fixed
  • erase displaced footer after banner scroll; center the user echo (#2231) (19963445)

v5.251.0

2026-09-26
Added
  • expose process-scoped hook registration to plugins (#2213) (3b4e3708)
Changed
  • extract maybeRestartServices and cover the isGlobalInstall call site (#2204) (7f4fdf18)

v5.250.1

2026-09-26
Fixed
  • content-hug placement — no blank gaps between output and prompt (#2226) (164170ed)

v5.250.0

2026-09-26
Added
  • bubble failure indicators to parent agent rows (#2171) (41f43ff7)
Changed
  • funcsize baseline can grow via 'sync after rebase' regenerations (#2215) (ce992f50)

v5.249.4

2026-09-26
Changed
  • add unit tests for compact scrollback renderer (#2203) (6e17c434)
  • promote macOS test leg to required (#2216) (88e5320e)
  • make the filesize gate blocking and fix the env.ts regression (#2214) (45dbc4c0)
Fixed
  • tighten hasBadge to ∥i/N pattern, fix stale comment, fix light-review id_prefix (#2202) (a56923c5)

v5.249.3

2026-09-25
Fixed
  • clean up non-blocking review findings from #2176 (#2201) (d1cecd53)
  • isMain fails on URL-encoded install paths; use fileURLToPath; comment cleanups (#2205) (fac6d59c)

v5.249.2

2026-09-25
Fixed
  • spine-continuation separator between compose/skill sibling bands (#2196) (931e368a)

v5.249.1

2026-09-25
Fixed
  • add GPT-5.6 and GPT-6 model prices (#2200) (789a5a0f)
  • only restart launchd services on global installs (#2195) (c91d81b1)

v5.249.0

2026-09-25
Added
  • split active vs. completed dimming for readable agent rows (dc2bf885)
Changed
  • add .afk/generated-images/ to ignore list (70a75347)
  • Merge pull request #2172 from griffinwork40/afk/tui-contrast-split (6ef88a6f)
  • sync funcsize baseline after rebase (681dace0)
Fixed
  • address review feedback (061847bc)

v5.248.1

2026-09-25
Changed
  • Merge pull request #2178 from griffinwork40/afk/iso-agent-tool-1-6jr39a (6f3fb823)
  • add 4 missing DAG isolation edge-case tests (087d4762)
Fixed
  • restore strict assertions in 2 DAG isolation tests (8e183b1f)

v5.248.0

2026-09-25
Added
  • surface task responsibility labels on agent rows (#2173) (2e1c4830)
  • add placeholder prevention SessionStart hook (Layer 1) (8fbb3008)
Changed
  • Merge pull request #2179 from griffinwork40/afk/iso-agent-tool-2-05vah6 (239cc28c)
  • update stale hash pins after rebase on main (df3d2e57)
  • sync baseline after rebase on main (createDefaultHookRegistry 240→250) (b993f072)
  • promote funcsize gate to CI-blocking (fa94f211)
  • Merge pull request #2192 from griffinwork40/afk/iso-agent-tool-1-bo5jkl (bd5898f2)
  • Merge pull request #2189 from griffinwork40/afk/iso-agent-tool-3-2a5ujd (bfa99f3f)
Fixed
  • gracefully handle shallow-checkout diff failure in changedSince() (a2a30fa2)
  • update SessionStart hook count assertion to 2 (placeholder-prevent built-in) (e1f1baab)
  • cap blank gap above committed band on short terminals (#2182) (a3428c82)

v5.247.2

2026-09-25
Changed
  • Merge pull request #2190 from griffinwork40/afk/iso-agent-tool-2-c2aqyb (503cf42b)
  • Merge pull request #2188 from griffinwork40/fix/image-generate-sessionid-wiring (9dfc9c80)
  • Merge pull request #2187 from griffinwork40/afk/iso-agent-tool-1-thtbyl (2ada9857)
  • Merge pull request #2186 from griffinwork40/afk/iso-agent-tool-2-hdzwj1 (52ef1aaf)
  • Merge pull request #2185 from griffinwork40/afk/iso-agent-tool-5-1qs2bs (9b360bac)
  • add 4 missing DAG isolation edge-case tests (#2183) (19fb251d)
  • improve colorize test coverage (#2184) (a75de197)
  • harden colorize regex patterns (068bbe21)
Fixed
  • remove setTimeout race conditions in lifecycle module (b062de37)
  • thread resolved sessionId into tool dispatcher for fresh sessions (beeee004)
  • gate compactScrollback on captureMode (f8c78b76)
  • view_image non-blocking follow-ups from review (8f74c792)

v5.247.1

2026-09-25
Fixed
  • preserve spine root anchor on short-terminal overlay truncation (#2176) (b25115e5)

v5.247.0

2026-09-25
Added
  • collapse completed agent subtrees in scrollback (#2174) (0efa2c8a)

v5.246.0

2026-09-25
Added
  • add proposal/eval-case promotion workflow (0bcd564e)
  • track human vs agent review coverage at merge time (a4dc600a)
Changed
  • Merge pull request #2105 from griffinwork40/refactor/2064-cast-removal (518d1441)
  • Merge pull request #2101 from griffinwork40/afk/fix-of-fix-detector-2012 (dcf9fcc7)
  • Merge pull request #2089 from griffinwork40/feat/1916-approve-promotion-workflow (2be8d9bf)
  • Merge pull request #2150 from griffinwork40/afk/iso-issue-1941-8-qn5otw (e6c5fc48)
  • remove type-assertion casts in AgentSession provider delegations (6e59e0a2)
  • regenerate env-registry docs (USER, USERNAME added) (c4b2c09a)
Fixed
  • route USER/USERNAME through env registry; always validate --status (be50b56a)
  • address review feedback — parsePrNumber, ExecFn import, SKILL.md body-append, hash pins (a59f82ff)
  • windows production code gaps blocking test skips (fa467349)

v5.245.0

2026-09-25
Added
  • add view_image tool for inline local image inspection (#2169) (7ec3dd1a)

v5.244.1

2026-09-25
Added
  • visual redesign — depth dimming, spacing, centering (#2141) (fa30684a)
Fixed
  • make Google results clearly show this is docs (#2170) (c5c6dac0)

v5.244.0

2026-09-25
Added
  • add opt-in vision context for image_generate (1c6bb0fb)
  • add system prompt instruction to prevent placeholder generation (bb278a77)
Changed
  • Merge pull request #2153 from griffinwork40/afk/iso-agent-tool-4-p7d75e (66db8f72)
  • Merge pull request #2156 from griffinwork40/afk/iso-agent-tool-2-0sp802 (e8f8f8c3)
  • Merge pull request #2159 from griffinwork40/afk/iso-agent-tool-1-9dym94 (3d8facb3)
  • Merge pull request #2155 from griffinwork40/afk/iso-agent-tool-5-gghkjn (de537c9d)
  • Merge pull request #2158 from griffinwork40/afk/iso-agent-tool-6-qt40zz (08f15829)
  • Merge pull request #2163 from griffinwork40/afk/iso-agent-tool-2-zd7h0w (5aa5e36c)
  • Merge pull request #2162 from griffinwork40/afk/iso-agent-tool-4-gonjmv (71753331)
  • follow-up cleanup from recentActivity review (f09dfe38)
  • add isolation test coverage for compose DAG executor (394c8b87)
  • compose isolation minor follow-ups (88cff1ec)
Fixed
  • add writeRoots + isolation mutual exclusion guard to compose parser (d4d0ac7d)
  • raise daemon shell executor timeout to 45min, surface timeout source (ea59c3d3)

v5.243.0

2026-09-25
Added
  • route ChatGPT subscription through Codex Responses endpoint (3f3a2911)
  • add image_generate tool with gated opt-in safety (#1421) (33643935)
Changed
  • Merge pull request #2140 from griffinwork40/feat/image-generate (d69105a1)
Fixed
  • remove dag-subagent.isolation.test.ts (belongs to PR #2156, not this branch) (6c2b373a)
  • update test expectations + categorizer for post-rebase tool count (75fc197b)
  • address 4 blocking security/correctness findings from code review (8670fc00)
  • parse response.output_item.done SSE event for ChatGPT backend (04681585)

v5.242.1

2026-09-25
Added
  • add get_background_job_health tool for parent-owned job inspection (e0e4044b)
Changed
  • Merge pull request #2139 from griffinwork40/afk/bg-job-health-snapshot (69689e26)
  • Merge pull request #2135 from griffinwork40/afk/fix-orphan-tool-use-400 (37a00e72)
  • Merge pull request #2138 from griffinwork40/afk/investigate-macos-bash-sigkill (63e0edcd)
Fixed
  • replace fixed 100ms reap wait with retry loop in SIGKILL process-group test (ccd4741e)
  • add last-resort orphan tool_use repair before every messages.create (7d703eb9)

v5.242.0

2026-09-25
Added
  • add semantic coloring to bash tail previews (#2152) (cfff19a9)

v5.241.1

2026-09-24
Changed
  • Merge pull request #2151 from griffinwork40/perf/issue-2100-session-close-timeout (5f825cc6)
  • add timeout guard to session.current.close() in teardown (e3e10723)

v5.241.0

2026-09-24
Added
  • add session yield rate tracking via facet enrichment (046ef91d)
Changed
  • Merge pull request #2113 from griffinwork40/afk/issue-2016-yield (64587f68)
  • Merge pull request #2128 from griffinwork40/afk/iso-agent-tool-5-fc02dr (3d895ced)
  • remove type-assertion casts in AgentSession provider delegations (aac92372)
Fixed
  • address review feedback — cwd threading, branch injection guard, patchYieldFields test, gh error distinction (18af1717)
  • update AGENTS_STUB to match AgentInfo shape (13025ffa)

v5.240.2

2026-09-24
Added
  • surface recentActivity on background job snapshots for parent steering (#2134) (031e2151)
  • enforce delegation budget in SubagentManager.forkSubagent (ff15f46f)
Changed
  • Merge pull request #2115 from griffinwork40/afk/issue-1899-budget (d1b0ef44)
  • Merge pull request #2114 from griffinwork40/fix/resume-history-skip-guard (cfc971ce)
  • Merge pull request #2112 from griffinwork40/afk/fix-resume-role-alternation (b4264dd3)
  • Merge pull request #2130 from griffinwork40/afk/wake-up-consistency-issue (66c0e226)
  • trigger CI run for PR #2130 (4ffb1d58)
Fixed
  • move onAwaitingInput after compositor setup; gate to turn-boundary readLine only (21618188)
  • auto-wake REPL when background results settle mid-turn (878c1daa)
  • guard against silent user-message skip in resumeHistoryToMessages (15d8b0c6)
  • repair role-alternation violations in resumed/forked session history (0d24a7fd)

v5.240.1

2026-09-24
Changed
  • split cup-frame-renderer.ts (#2127) (73eaca36)

v5.240.0

2026-09-24
Added
  • add update_schedule tool for editing daemon schedules (54a46c5c)
Changed
  • Merge pull request #2132 from griffinwork40/afk/20260924-143115-1c8cba (a7b9a200)
Fixed
  • address review feedback — slug validation, mock update, handler count, toggleScheduleEnabled delegation (3be6498e)

v5.239.1

2026-09-24
Changed
  • Merge pull request #2133 from griffinwork40/afk/iso-agent-tool-3-1locyd (9837b072)
  • Merge pull request #2131 from griffinwork40/afk/iso-agent-tool-4-7bm6ck (07bdf860)
  • Merge pull request #2129 from griffinwork40/afk/iso-agent-tool-2-s07lrt (002d5fdc)
  • split markdown-stream.ts into concern-based siblings (ed20a3b0)
  • split terminal-compositor.lifecycle.ts into concern-based siblings (421657d7)
  • split terminal-compositor.frame.ts into concern-based siblings (1503edb6)

v5.239.0

2026-09-24
Added
  • detect unresolved placeholders in agent output (300027a5)
  • activate access tracking in memory fact archive (a11d9e5e)
Changed
  • Merge pull request #2123 from griffinwork40/afk/agent-placeholder-validation (7b972b9c)
  • Merge pull request #2096 from griffinwork40/fix/1917-reclassify-web-request-card (75cd5cdb)
  • use code-block register instead of lastAssistantText (bb0ea456)
  • Merge branch 'main' into fix/1917-reclassify-web-request-card (3d087553)
Fixed
  • tighten screaming-snake prefix set to eliminate env-var false positives (a87d7d9d)
  • reclassify tool-failure-web-request as environment connectivity (ecf22b7e)

v5.238.0

2026-09-24
Added
  • activate access tracking in memory fact archive (b8197def)
  • per-node delegation budget tracking in compose DAG executor (63c68c26)
Changed
  • Merge pull request #2095 from griffinwork40/afk/issue-1924-fix (435beb47)
  • Merge pull request #2088 from griffinwork40/feat/1896-per-node-delegation-budget (795f3955)
  • Merge pull request #2087 from griffinwork40/chore/1820-mcp-failed-servers-warnings (f5d3a87e)
  • surface MCP failedServers warnings on Telegram and web-server (75e72cb8)
Fixed
  • restore suspected-loop telemetry and add gate-shape tracing (411709aa)

v5.237.3

2026-09-24
Changed
  • Merge pull request #2121 from griffinwork40/afk/20260924-115004-572602 (4185f5a1)
  • Merge remote-tracking branch 'origin/main' into afk/20260924-115004-572602 (8672193e)
  • split runTurn god-function into concern modules (issue #2107) (7cf5e522)
Fixed
  • rename turn-handler.subagent-promotion to bg-promotion to satisfy boundary test (7ead56e8)

v5.237.2

2026-09-24
Fixed
  • make prefillInput delegation consistent with sibling functions (#2122) (7797f983)

v5.237.1

2026-09-24
Changed
  • extract thin-facade API methods to terminal-compositor.api.ts (#2119) (c093dd1e)

v5.237.0

2026-09-24
Added
  • add per-node worktree isolation to compose DAG executor (a2b82b11)
Changed
  • Merge pull request #2104 from griffinwork40/feat/1939-compose-worktree-isolation (6f32cb66)

v5.236.1

2026-09-24
Fixed
  • add 2s timeout guard to session.close() in REPL teardown (17c19ad7)

v5.236.0

2026-09-24
Added
  • add eval pipeline staleness guard (d9444d97)
  • add fix-of-fix cross-reference detector at merge time (e2fd4522)
Changed
  • Merge pull request #2102 from griffinwork40/afk/2012-fix-of-fix-detector (eb36c4cd)
  • Merge pull request #2103 from griffinwork40/afk/issue-2010-eval-staleness (a4fdea04)
  • regenerate env-registry docs for AFK_EVAL_STALENESS_DAYS (2fdfeefb)
Fixed
  • handle URL-form currentPrNumber in self-reference guard + update ship pin (8bd777e2)

v5.235.1

2026-09-24
Changed
  • Merge pull request #2097 from griffinwork40/fix/issue-1940-unskip-detectpathgap (2c54ddc3)
  • Merge pull request #2099 from griffinwork40/fix/quit-teardown-latency (26365d73)
  • reduce /quit teardown latency from 10s+ to ~4s (71a4fcef)
Fixed
  • unskip detectPathGap test from .mjs import guard (d8704fa2)

v5.235.0

2026-09-23
Added
  • implement replay infrastructure for repeated-tool-use pattern (#2091) (d8883477)

v5.234.1

2026-09-23
Changed
  • Merge pull request #2085 from griffinwork40/afk/issue-1828-fix (7f76b367)
  • Merge pull request #2084 from griffinwork40/afk/fix-1906-concurrency-test-boundary (6e16fbc0)
  • Merge pull request #2082 from griffinwork40/afk/iso-agent-tool-2-2ozuic (8f86a699)
  • Merge pull request #2081 from griffinwork40/afk/iso-agent-tool-1-u5s78k (09c98502)
  • Merge pull request #2080 from griffinwork40/afk/iso-agent-tool-3-an5zuy (5cf8aca4)
  • Merge pull request #2079 from griffinwork40/afk/iso-agent-tool-5-naicb7 (8e7f41d9)
  • Merge pull request #2078 from griffinwork40/afk/iso-agent-tool-4-t2w52r (fada59e2)
  • enforce test-only boundary for resetConcurrencyWarnings (66bbb350)
  • update resumeHistoryToMessages JSDoc after pairing-guard removal (ccb17950)
  • consolidate duplicate sha256Hex (ca52ed00)
Fixed
  • add commitInFlight/committing guards to banner-scroll block (12d90a2c)
  • scope disabled-thinking rejection to Opus 5.5 only (ebee93fa)
  • Opus 5.5 follow-up hygiene: comments, discoverability, golden tests (b8ecb67c)
  • throw before first request when disabled thinking is unsupported (d2e94837)
  • simplify partial_failure guard, update schema prose, add tests (538643c2)

v5.234.0

2026-09-23
Added
  • add new invariants and rejected patterns for compose node behavior (8e733565)
Changed
  • Merge pull request #2070 from griffinwork40/feat/2015-parallel-dispatch-ratio (816f1a29)
  • resolve SPINE.md conflict with main (post #2071 merge) (e213fa3a)
  • extract agent-type resolution to compose-agent-resolve.ts (e843aa7c)
  • Merge branch 'main' into feat/2015-parallel-dispatch-ratio (e3f47c89)
Fixed
  • restore attachment resolution and [k/N] agentType suffix (26dbcfc5)
  • reinforce invariant on attachment resolution in compose nodes (ad87e477)
  • update invariant reinforcement dates for clarity (f71de171)

v5.233.0

2026-09-23
Added
  • wire structured content blocks in recordTurn (af455a5a)
  • add parallel dispatch ratio metric to session facets (dc21f6c0)
Changed
  • Merge pull request #2071 from griffinwork40/afk/iso-agent-tool-1-wc6lpl (24d8dd5a)
Fixed
  • wire buildUserContentBlocks in production recordTurn path (76550d97)

v5.232.2

2026-09-23
Added
  • add branch prune command for stale remote worktree branches (0b6ad866)
Changed
  • Merge pull request #2069 from griffinwork40/feat/branch-prune-command (ebf2ade5)
  • Merge pull request #2077 from griffinwork40/fix/opus-55-effort-alias (89ff5f3f)
  • Quick Start with auth step, docs link, improved troubleshooting (#2061) (80ce5461)
Fixed
  • default Opus 5.5 to high effort, not max (cbbb5257)
  • harden expected_hash format validation and add cross-tool test (aefa285f)

v5.232.1

2026-09-23
Changed
  • add maxItems constraint to attachments fields (#2067) (2a263a94)
Fixed
  • remove stale compose agent_type prohibition in fix-pr SKILL.md (#2072) (ec22fd9f)

v5.232.0

2026-09-23
Added
  • add Claude Opus 5.5 support (#2066) (11f756ec)
Changed
  • Update guideline on dash usage (32ddaeda)

v5.231.2

2026-09-23
Fixed
  • skip auth prompt when user is already authenticated (#2063) (40cbb530)

v5.231.1

2026-09-23
Fixed
  • harden expected_hash format validation and add cross-tool test (#2068) (7764c96a)

v5.231.0

2026-09-23
Changed
  • Merge pull request #2045 from griffinwork40/afk/iso-agent-tool-1-p7v1dt (b72541f3)
Fixed
  • rebase + resolve review feedback (2a39a108)

v5.230.11

2026-09-23
Changed
  • Merge pull request #2054 from griffinwork40/afk/fix-2039 (b0c4ba54)
Fixed
  • preserve existing MCP config permissions (ef50bf50)
  • use standard 0o644 permissions for MCP config file writes (db182cd9)

v5.230.10

2026-09-23
Changed
  • Merge pull request #2056 from griffinwork40/afk/fix-2042 (3e78c881)
  • Merge pull request #2057 from griffinwork40/refactor/interactive-lifecycle-1929 (fd990914)
  • extract lifecycle phases into sibling modules (1abb96a3)
Fixed
  • update filesize baseline ratchets post-rebase (23ddb8ea)
  • extend _reread_warning to partial_failure and document in schema (d45ce5df)

v5.230.9

2026-09-23
Changed
  • replace passthrough artifacts with real concern extraction (#2058) (db10731c)

v5.230.8

2026-09-23
Changed
  • extract shared options from chat/interactive commands (#2060) (0ae0dc32)

v5.230.7

2026-09-23
Changed
  • consolidate session builders into shared builder (#2059) (2f5102fd)

v5.230.6

2026-09-23
Changed
  • clarify hasValidToolUsePairing staging and fix misleading test comment (#2050) (97462ad4)
  • add SDK sync comment to ALLOWED_CONTENT_BLOCK_TYPES (#2051) (d813e782)
Fixed
  • fix locked verdict color and acknowledge palette layer exception (#2055) (0fd874ea)

v5.230.5

2026-09-23
Changed
  • Merge pull request #2020 from griffinwork40/seo/docs-p1-fixes (20c0a8cb)
  • Merge pull request #2022 from griffinwork40/afk/iso-fix-2007-1-bsuenv (c4f728f8)
Fixed
  • extend repairOrphanToolUses to scan all messages, not just tail (669f74b4)
  • repair non-tail orphan tool_use blocks in resumed history (#2007) (dcbd8a49)
  • P1 — structured data, OG image, cache headers, meta improvements (70d62b22)

v5.230.4

2026-09-23
Changed
  • Merge pull request #2031 from griffinwork40/afk/iso-agent-tool-1-p7gsfu (d3738222)
  • isSubagentContext predicate + forwardAbortSignal utility (#1835) (0a60ae88)

v5.230.3

2026-09-22
Changed
  • Merge pull request #2038 from griffinwork40/afk/iso-agent-tool-1-ugktlk (d002fa0c)
  • Merge pull request #2037 from griffinwork40/fix/issue-1915-worktree-error-msg (af18b393)
  • Merge pull request #2034 from griffinwork40/fix/issue-2028-patch-apply-stale-context (4b45d97c)
  • Merge pull request #2023 from griffinwork40/afk/iso-fix-1998-2-kjx7ob (f3db69c9)
  • Merge pull request #2033 from griffinwork40/fix/issue-2005-tool-summary-fallback (378e4a0e)
  • Merge remote-tracking branch 'origin/main' into afk/resolve-pr-2030 (b3ea6345)
  • retrigger CI after test fix push (520091ab)
  • Revert "fix(#1915): improve worktree tool error message for non-git cwd" (a1e86311)
  • fix CI test failure and address review feedback (d1d675ea)
  • add SKILLS (Gap D) to expected read-root Sets in worktree-readroot tests (ee0ab1ea)
Fixed
  • narrow hasValidToolUsePairing to search only nextUserBlocks (d7080fe4)
  • improve worktree tool error message for non-git cwd (9a5b2ee7)
  • warn agent to re-read files after patch_apply to prevent stale-context reverts (b0146ec9)
  • always append tool summary to text field for fallback path (5251817f)
  • improve worktree tool error message for non-git cwd (e79ef696)
  • rename SubagentDAGNode.readRoots to pinnedReadRoots + grant ~/.afk/skills to confined forks (9aba3c29)
  • resolve playwright chromium version mismatch and download timeout (#1998) (6a7cdb40)

v5.230.2

2026-09-22
Changed
  • Merge pull request #2032 from griffinwork40/afk/i-don-t-have (96d0d063)
  • deduplicate CLI and slash command display formatters (#1836) (#2021) (f0f8c6bd)
Fixed
  • rename SubagentDAGNode.readRoots to pinnedReadRoots + grant ~/.afk/skills to confined forks (#2030) (80fe7dec)
  • add expected_hash input gate to edit_file (#2028) (f030e2ed)

v5.230.1

2026-09-22
Changed
  • Merge pull request #2027 from griffinwork40/fix/issue-1839-provider-consolidation (f68f5ba8)
  • Merge pull request #2029 from griffinwork40/afk/iso-fix-2003-4-m0hy42 (02fa79bc)
  • Merge pull request #2025 from griffinwork40/fix/issue-2013-zero-observation-closure-reasons (5f4a1817)
  • Merge pull request #2026 from griffinwork40/afk/iso-fix-2006-3-qnobvr (c918acb5)
  • Merge pull request #2024 from griffinwork40/fix/telegram-session-lifecycle-1854 (2d41ba59)
  • consolidate shared tracing-fetch, retry predicates, compaction shell (#1839) (625358ba)
  • add surrogate-safe truncation regression tests (#2006) (171e7e7c)
  • extract shared session lifecycle helper (#1854) (c4292e4d)
  • deduplicate CLI and slash command display formatters (#1836) (e16babed)
  • consolidate atomic write pattern into shared utility (#1833) (dd5f0931)
  • throughput inflection audit + self-correction loop follow-up (25a51b6e)
Fixed
  • complete runtime type validation for deserialized sidecar content blocks (#2003) (664110a8)
  • classify and test zero-observation closure reasons (63d52383)

v5.230.0

2026-09-22
Added
  • add per-node attachments for multimodal DAG workflows (50121314)
Changed
  • Merge pull request #1993 from griffinwork40/afk/iso-agent-tool-1-souy55 (2772724a)
  • add coverage for resolvedAttachments branch in dag-subagent (ba6a2e3a)
Fixed
  • filter edges referencing pre-failed attachment nodes (#1993) (fd7d0086)
  • isolate per-node attachment resolution errors (#1993) (c2db9779)

v5.229.0

2026-09-22
Added
  • gate-shape telemetry + compose agent_type parse tests (22fd3fde)

v5.228.0

2026-09-22
Added
  • visual replay and content block preservation for session resumption (#1996) (a8bb65db)

v5.227.1

2026-09-22
Added
  • scope goals per-project instead of global (97a25810)
Changed
  • Merge pull request #1999 from griffinwork40/afk/iso-impl-per-project-goals-1-xxs0dj (2d893dbc)
  • Merge pull request #1872 from griffinwork40/afk/fix-1850-sleep-unref (0e266c58)
Fixed
  • cap slug in projectKeyForCwd to preserve hash suffix (b92a35e4)
  • replace local sleep with sleepWithAbort in rate-limit-bucket (#1850) (fd0abe13)

v5.227.0

2026-09-22
Added
  • expose subagent runtime knowledge to the coordinator model (#1997) (1172c6ad)

v5.226.5

2026-09-22
Fixed
  • add manifest cwd test + fix extraReadRoots error message naming (#1992) (ec579ec4)

v5.226.4

2026-09-22
Fixed
  • revert misleading compose agent_type safety claim in fix-pr SKILL.md (#2001) (f6512776)

v5.226.3

2026-09-22
Fixed
  • correct stale compose limitations in fix-pr SKILL.md (#1994) (347c1d8c)
  • buffer streaming content chunks in mid-turn task view (#1995) (58afe726)

v5.226.2

2026-09-22
Changed
  • audit and backfill 25 missing architectural entries (cd111c55)
  • Merge pull request #1875 from griffinwork40/afk/fix-1856-grant-manager (b8831284)
  • fix GrantManager layer inversion (#1856) (80472b07)

v5.226.1

2026-09-22
Changed
  • Merge pull request #1986 from griffinwork40/fix/issue-1982-resolve-agent-type (c1a63241)
  • Merge pull request #1979 from griffinwork40/fix/issue-1967-dag-error-names (e99cdfc2)
Fixed
  • wire agentRegistry + inherit model + budgets + workspace store for named agent_type nodes (3e449f1b)
  • resolve named agent definitions for per-node agent_type (7c9c8d2d)
  • complete invariant comment, add extraReadRoots validation, per-node cwd manifest test (0f3883fb)
  • user-facing error names in validateDagNodeRoots + manifest cwd test (4ed4257f)

v5.226.0

2026-09-22
Added
  • add per-node agent_type for DAG nodes (#1943) (bcbadf1c)
Changed
  • Merge pull request #1980 from griffinwork40/fix/issue-1949-clean (b08481ae)
  • Merge pull request #1978 from griffinwork40/feat/issue-1943-agent-type (0166b349)
Fixed
  • eval-gen fixture fallback review follow-ups (#1949) (e8dc405b)

v5.225.5

2026-09-22
Changed
  • Merge pull request #1983 from griffinwork40/fix/win32-tsx-shim-writer-test (001e6d91)
  • Merge pull request #1953 from griffinwork40/fix/issue-1950-executor-validation (b1f9f6bd)
  • Merge pull request #1937 from griffinwork40/afk/fix-1928-resolvereporoot (027ecb9c)
  • Merge pull request #1935 from griffinwork40/afk/fix-1919-closure-anomaly-root-only (ccb33bd1)
  • Merge pull request #1934 from griffinwork40/afk/fix-1923-test-gaps (6b95653e)
  • Revert "fix(daemon): tighten executor validation + add disable-re-enable test" (a79e63c6)
  • consolidate resolveRepoRoot() survivors + add git.ts unit tests (#1928) (86377075)
  • close parallel gate path test coverage gaps (#1923) (31f35ab6)
Fixed
  • tighten executor validation + add disable-re-enable test (6fc76987)
  • robust cross-platform tsx invocation in writer backstop test (104daea0)
  • replace POSIX tsx shim with cross-platform spawn in writer.test.ts (13d37b98)
  • tighten executor validation and add re-enable regression test (54ee266b)
  • address review feedback (3416ff9f)
  • address review feedback — JSDoc, conservative-fallback test, observability counter (e0085230)
  • address review feedback — Gap 2 parallel gate path, Gap 1 precondition guard, Gap 3 dedup (934b3bff)
  • scope closure-anomaly-abort detector to root sessions only (#1919) (53146b90)

v5.225.4

2026-09-22
Changed
  • Merge pull request #1989 from griffinwork40/fix/issue-1922-fork-subagent-try-catch (c8645572)
  • Merge pull request #1990 from griffinwork40/fix/issue-1984-v2 (c6b3142b)
  • Merge pull request #1987 from griffinwork40/fix/issue-1966-remove-dead-registry-field (b0606d92)
  • Merge pull request #1988 from griffinwork40/chore/1925-internal-annotation-accountDenialBreakerPostGate (75f6aaae)
  • add @internal annotation to accountDenialBreakerPostGate (b2b6ef68)
Fixed
  • add migration note for extraReadRoots removal + per-node cwd test (ba006c5a)
  • widen forkSubagent try/catch to cover register-to-active.set span (1576478a)
  • remove dead inboundAttachmentRegistry field (3687928c)

v5.225.3

2026-09-22
Changed
  • Merge pull request #1959 from griffinwork40/test/banner-scroll-coverage-1829 (e94d82cd)
  • test(tui)(#1829): cover banner-scroll path in ordering-invariant and protocol tests (f79b5af1)
Fixed
  • increase idleSessionMs timer margin to avoid macOS CI race (#1959) (bcd869cf)

v5.225.2

2026-09-22
Changed
  • Merge pull request #1977 from griffinwork40/fix/issue-1926-replay-suspected-loop-parallel (adcd3a3f)
  • Merge pull request #1976 from griffinwork40/fix/spine-worktree-resolution (3df7d24a)
  • replay observeSuspectedLoop after parallel wave (#1926) (7cb51e12)
Fixed
  • resolve SPINE.md to main repo root in worktrees, auto-stage after write (c9e40a9b)

v5.225.1

2026-09-22
Changed
  • Merge pull request #1975 from griffinwork40/afk/fix-1965-writeroots-denylist-tests (661f2c9a)
  • Merge pull request #1981 from griffinwork40/afk/iso-s2s3-v2-3-xb7kko (a245e762)
Fixed
  • add defense-in-depth breadth guards to parseNodePaths (b3e09d5f)
  • add isReadDenied guard to writeRoots + test coverage (e91d1d2e)

v5.225.0

2026-09-22
Added
  • expose per-node cwd, readRoots, writeRoots for DAG nodes (#1944) (7e926de0)
Changed
  • Merge pull request #1948 from griffinwork40/afk/fix-rounding-edge-cases (d765ea6e)
  • Merge remote-tracking branch 'origin/main' into afk/merge-1948 (faa3341c)
  • Merge branch 'main' into afk/fix-rounding-edge-cases (6e40bf46)
  • add env registry uniqueness guard and invariant docs (#1930) (f84ecaa8)
  • Merge branch 'main' into afk/fix-rounding-edge-cases (8cc9e29e)
  • remove stale PR draft artifacts (f24bbe99)
Fixed
  • remove unwired max_turns/max_tool_rounds from node schema (43ca2ee1)
  • remove unused imports from compose-executor (44fcde35)
  • close extraReadRoots breadth-guard bypass + add isReadDenied (d1808395)
  • address eval-gen fixture fallback review findings (aa56c92f)
  • segment-split .. check + additive readRoots (4faad992)
  • harden per-node roots — inline schema docs, #1939 contract, writeRoots tests (f9a24531)

v5.224.7

2026-09-22
Added
  • add per-node max_turns and max_tool_rounds overrides (1b87f912)
Changed
  • Merge pull request #1968 from griffinwork40/feat/issue-1947-per-node-budgets (ddc9afdd)
  • Merge pull request #1963 from griffinwork40/seo/docs-p0-fixes (66ee0b40)
  • Merge pull request #1962 from griffinwork40/refactor/tool-dispatcher-1861 (da3f7c79)
  • Merge pull request #1961 from griffinwork40/refactor/centralize-atomic-write-1921 (1ea0430f)
  • consolidate ToolDispatcher/ToolDispatcherLike into single definition (#1861) (ff0f2f73)
  • centralize atomic-write pattern (#1921) (6cbcce1a)
Fixed
  • add robots.txt, sitemap, canonical tags, and OG metadata (d19fd71a)

v5.224.6

2026-09-22
Changed
  • Merge pull request #1957 from griffinwork40/test/delegation-budget-integration-1898 (e1d42bfe)
  • Merge pull request #1954 from griffinwork40/fix/issue-1952-output-capture-status (53003b80)
  • test(dashboard)(#1822): strengthen claimed-tool dedup assertion (#1955) (32cb67ea)
  • add delegation-budget integration test coverage (ceeb538c)
  • fix GrantManager layer inversion (#1856) (1f49bb1d)
Fixed
  • thread completion status into subagent output capture end marker (ceeced23)

v5.224.5

2026-09-22
Changed
  • add env registry uniqueness guard and invariant docs (#1930) (814d13e3)

v5.224.4

2026-09-22
Changed
  • extract toggleScheduleEnabled, fix POST body drift (#1838) (#1879) (aa58a883)
Fixed
  • eval-gen falls back to existing fixture when source trace is swept (#1920) (0cc77470)

v5.224.3

2026-09-22
Changed
  • extract _onTerminal callback into fork-terminal-hook.ts (#1931) (#1936) (6676d3b5)
  • recategorize concurrency env vars from model to process (#1905) (#1932) (6105cfcd)

v5.224.2

2026-09-22
Changed
  • add keepLast + delegation interaction and id-correlation tests (#1927) (#1933) (466c1b35)
Fixed
  • remove unnecessary win32 test skips and normalize paths (#1604) (#1938) (b4506ae8)

v5.224.1

2026-09-21
Changed
  • fix reset scoping and dedup setupDiffMock helpers (#1826) (efeba056)
  • thread warn parameter through scalar concurrency resolvers (#1907) (b3833563)
  • add @internal annotation to accountDenialBreakerPostGate (#1925) (b4da5f56)
Fixed
  • update stale childrenByAgent references in dag-subagent.ts (#1910) (e77370a8)

v5.224.0

2026-09-21
Added
  • delegation-aware microcompaction preserves subagent findings (a3e2d2ea)
Changed
  • Merge pull request #1902 from griffinwork40/afk/20260920-163857-b4d985 (b34fef08)
  • Merge remote-tracking branch 'origin/main' into afk/20260920-163857-b4d985 (739e20ab)

v5.223.6

2026-09-21
Changed
  • Merge pull request #1914 from griffinwork40/afk/issue-1825-bocf (825b623b)
  • Merge pull request #1912 from griffinwork40/afk/resolve-repo-root-1834 (52c41c4f)
  • consolidate resolveRepoRoot() into single canonical implementation (#1834) (19cd2e90)
Fixed
  • clamp negative idle-ms, add eviction threshold test, fix formatting (#1825) (925be557)

v5.223.5

2026-09-21
Changed
  • parallelize Phase 1 pre-dispatch gates for safe tools (#1901) (d745ac79)
  • fix half-verifications, add cwd never-drop test, remove unused helper (#1827) (#1913) (227e376e)
  • update stale fromConfig mock shape in chat tests (#1821) (#1886) (3837ff95)
  • strengthen multiline idle-dup test with value assertions (#1843) (#1880) (4293e2a3)
  • remove confirmed dead code (AFK_DIAGNOSE_BASELINE, loadXaiCredential, PlaywrightHintOptions) (#1849) (#1909) (38121d9d)

v5.223.4

2026-09-20
Fixed
  • remove session ID from delegation-budget refusal messages (#1900) (#1908) (a30a47ec)

v5.223.3

2026-09-20
Fixed
  • make maxChildrenPerAgent a concurrent cap + rename to maxConcurrentChildrenPerAgent (#1904) (3447b55d)

v5.223.2

2026-09-20
Fixed
  • use shared parseRetryAfterMs in OpenAI provider (#1851) (#1874) (dfe6aa7d)

v5.223.1

2026-09-20
Changed
  • rename skills/index.ts to skill-registry.ts, extract types (#1862) (#1890) (ca4b9b64)

v5.223.0

2026-09-20
Added
  • add tree-wide delegation budget (maxChildren/concurrent/total agents) (#1894) (d936c080)

v5.222.18

2026-09-20
Changed
  • bump @types/node from 26.5.1 to 26.6.1 in /website (#1869) (39a8ca8a)
  • extract resolveBrowserProvider from browser handlers (#1832) (#1888) (73c6656c)

v5.222.17

2026-09-20
Changed
  • add unit tests for builtin-task.ts (#1897) (7e4b92c5)
  • add unit tests for errorMessage() utility (#1884) (#1889) (3cfbee1c)
  • split auto-compact.ts mixed concerns (#1863) (#1891) (f2d91c87)
  • replace remaining errorMessage() inline ternary (#1885) (#1887) (7a28daed)
  • remove dead toolClaimedByAgent Set (#1892) (72824ccc)
  • extract improve pipeline shared utils (#1858) (#1893) (68fea350)

v5.222.16

2026-09-20
Changed
  • add errorMessage() utility, replace 65 inline casts (#1837) (#1883) (140a2faf)

v5.222.15

2026-09-20
Changed
  • collapse createHookRegistry indirection chain (#1855) (#1873) (10398d96)

v5.222.14

2026-09-20
Changed
  • collapse trace emit 12-way repetition into generic (#1840) (#1878) (12cd680d)
  • extract browser handler provider acquisition (#1853) (#1882) (ebef899b)
  • remove deprecated cli/keychain.ts shim (#1857) (#1871) (5345fb90)

v5.222.13

2026-09-20
Changed
  • consolidate Tier-1 duplicate code (8 items) (#1845) (97e9baf5)
Fixed
  • remove CompletedCache double-write in forkSubagent (#1841) (#1876) (aa691277)
  • add reflection cue to end-of-turn protocol (#1846) (73b4cb02)

v5.222.12

2026-09-20
Changed
  • bump the fumadocs group across 1 directory with 3 updates (#1868) (fcc7c9ca)
  • extract mint phase fork helper (#1852) (#1881) (a55ae542)
  • bump next from 16.3.4 to 16.3.5 in /website (#1870) (52cdd37f)

v5.222.11

2026-09-20
Changed
  • consolidate double measure() call in cursor-follow repaint (#1842) (#1877) (b037e62d)

v5.222.10

2026-09-20
Fixed
  • use shared parseRetryAfterMs in openai tracing-fetch (fixes retry-after-ms) (#1867) (f925fc03)

v5.222.9

2026-09-20
Changed
  • update boot-warning-survives-clear to inScrollback after #1823 banner-scroll (#1866) (dc4284a9)
Fixed
  • preserve identifier names in published bundles (#1844) (423f984d)

v5.222.8

2026-09-19
Fixed
  • use physical row count for cursor-follow targetBottomRow (#1831) (90124337)

v5.222.7

2026-09-19
Changed
  • PR #1686 low-severity follow-ups (testability, docs, observability) (#1812) (c6ad6909)
  • add xai/xai-oauth providers, annotate openai-codex deprecated (#1803) (cd8a45ea)
  • clarify AGENT_SURFACE registry entry and setter comment (#1830) (e30e2888)
Fixed
  • increase inline comment per_page from 25 to 100 (#1807) (39efa207)

v5.222.6

2026-09-19
Fixed
  • scroll banner to scrollback to eliminate idle-state gap (#1823) (f2b1e4e3)

v5.222.5

2026-09-19
Changed
  • clarify parentId must be a tool_use_id in ForkSubagentOptions (#1804) (3656d895)
  • add direct unit tests for formatStatusLine (#1809) (891aecbb)
Fixed
  • upgradeService preserves existing env vars on restart (#1717) (#1810) (1284b282)

v5.222.4

2026-09-19
Changed
  • add tests for /spine slash command, idempotency guard, and pending-log writes (#1679) (#1813) (c847a1ac)
Fixed
  • bound live-session growth and reload settings on eviction (#1687) (#1816) (b9485001)
  • fix 3 bugs in on-demand shiki grammar loading (#1644) (#1819) (3b1e11f0)
  • restore claimed-tool roots and comprehensive topology tests (#1818) (3c0a5f39)

v5.222.3

2026-09-19
Fixed
  • erase slash-command dropdown rows on cursor-follow close (#1817) (3f65c1f6)

v5.222.2

2026-09-19
Changed
  • add unit tests for builtin-task.ts (#1805) (b741f5b2)
  • export filename regex as named constant for test import (#1806) (c0a44af5)
Fixed
  • sort spine roots by SSE arrival order (closes #1647) (#1808) (98b1b455)

v5.222.1

2026-09-19
Fixed
  • add trust-boundary guards to classifier prompt (#1678) (#1811) (048ac326)

v5.222.0

2026-09-19
Added
  • load shiki grammars on-demand per code block (#1644) (f0ff4c48)
Changed
  • add regression test for path-traversal filename filter (#1790) (#1800) (e9f17bcb)
  • fix five minor completeness gaps from site audit (#1728) (#1799) (094ec7a5)
  • add shell-task.ts test coverage (#1797) (4b678d8a)
  • use getTerminalHeight() in preview-cap sites for consistency (#1780) (#1796) (3c3b2f53)
  • fix TurnRunnerDeps docstring inaccuracy and hoist coreExecDeps (#1761) (#1795) (388713ac)
  • assert sideband event in takePendingPlanExitSeed success path (#1792) (#1794) (f2803e21)
  • merge duplicate JSDoc on placementMode in terminal-compositor (#1781) (#1793) (c26bfad1)

v5.221.6

2026-09-18
Changed
  • add #1720 structural invariant test and changelog comment (#1725) (#1787) (7814c0af)
  • use getter for providerIterator in runInitialization (#1760) (#1786) (ce82003b)
  • clarify droppablePriority: 0 intent (#1771) (#1782) (347ea693)
Fixed
  • update invariant example list and epistemic-scope for prior-feedback (#1724) (#1788) (8ff3fd57)
  • clarify timestamp normalization and cap pagination (#1723) (#1785) (52ca1042)
  • add timeout guard to spawnAndKill helpers (#1747) (#1784) (b48c1b34)
  • validate filenames against path traversal (#1706) (#1783) (bed5e465)
  • correct JSDoc and add unit tests for session-config (#1778) (#1789) (66a7c8de)

v5.221.5

2026-09-18
Changed
  • Merge pull request #1779 from griffinwork40/fix/docstring-dispatcher-1761-v2 (5b8d953f)
  • Merge pull request #1749 from griffinwork40/afk/20260917-195714-9ab821 (033e00a6)
  • Merge pull request #1765 from griffinwork40/afk/fix-preview-ghost-rows (15b78d2f)
  • fix TurnRunnerDeps docstring inaccuracy and hoist coreExecDeps (#1761) (3f4e934b)
Fixed
  • cap all preview paths to viewport height, not just fences/tables (690b173b)
  • cap streaming preview height to viewport, preventing ghost-row duplicates (616836b4)
  • eliminate empty gap between banner and prompt on fresh sessions (9b56cfe6)

v5.221.4

2026-09-18
Changed
  • Merge pull request #1776 from griffinwork40/afk/iso-1756-session-shrink-1-z5fyzt (0f7d17e2)
  • Merge pull request #1774 from griffinwork40/fix/bench-assertions-1746 (6e4a4264)
  • Merge pull request #1773 from griffinwork40/fix/stale-clear-comment-1758 (0c5c810e)
  • Merge pull request #1772 from griffinwork40/afk/test-pin-1759 (3bd36f22)
  • extract config-mutation methods into session-config.ts (#1756) (540ee3ea)
  • tighten hook-block-fidelity assertions and cleanup (#1746) (a35d6a74)
  • pin reverse-nested marker and non-TTY done() branch (#1759) (18e88742)
Fixed
  • revalidate eviction candidates after async close (#1715) (784548d2)
  • remove stale clear() reference in cup-frame-renderer catch comment (#1758) (28e6dc95)

v5.221.3

2026-09-18
Changed
  • add child-process timeout to spawnAndWait in bench tests (#1747) (a540fe97)
Fixed
  • clarify droppablePriority: 0 intent with inline comment (#1771) (9092f83b)
  • validate --limit flag and session directory names (#1706) (8824fac7)

v5.221.2

2026-09-18
Changed
  • move system-prompt.md to repo root — eliminate single-file prompts/ dir (#1763) (3d5e40e9)
Fixed
  • erase ghost status-line artifacts + consolidate TUI follow-ups (#1766) (2ec1a242)

v5.221.1

2026-09-18
Added
  • show live code and table content during streaming (4322cb07)
  • improve streaming text UX — atomic sync output + inline syntax close (59624176)
Changed
  • Merge pull request #1754 from griffinwork40/afk/streaming-ux-phase3 (7bbba997)
  • Merge remote-tracking branch 'origin/main' into afk/streaming-ux-phase3 (bae9f388)
  • Phase 3 render-path and cell-width invariant tests (51caafa4)
Fixed
  • streaming UX preview — remove double-wrap, add bare-fence fallback (#1764) (7999de38)

v5.221.0

2026-09-18
Added
  • streaming UX phase 2 — live code/table previews + atomic sync output (#1762) (7fb44015)

v5.220.0

2026-09-18
Added
  • streaming UX phase 1 — atomic sync output + inline syntax close (#1752) (2f4fcf3d)
  • remove deprecated PR body for bash preview configuration (3e3b2c15)
  • add new invariants for hook block decision tracing and error handling (494bd67a)
Changed
  • complete #832 Tier 3 extractions -- dispatcher, session, scheduler, daemon (#1755) (40726323)

v5.219.4

2026-09-18
Fixed
  • surface failed MCP servers in get_runtime_state and REPL startup (#1702) (#1748) (3bdf7c07)

v5.219.3

2026-09-18
Changed
  • consolidate legacy BUILTIN_WORKTREE_PRUNE compat shim (#1736) (#1742) (bc321b78)
  • freeze time in eviction exact-boundary test (#1716) (#1738) (608b83f8)
  • add coverage for sort order, limit boundaries, escape stripping (#1707) (#1740) (5b4d3262)
  • add hook-block fidelity benchmark (#1745) (a8f650e2)
  • Merge pull request #1744 from griffinwork40/bench/concurrent-emitter-trace (6c26f932)
  • add concurrent-emitter trace integrity benchmark (2c828bb5)
  • fix mid-sequence scenario description in trace-completeness benchmark (#1727) (#1737) (49b21593)
Fixed
  • guard surrogate-pair boundary in shell-task excerpt truncation (#1734) (#1743) (229a10c8)
  • trace-completeness benchmark test improvements (#1726) (#1741) (975173ae)
  • guard ToolLaneFlash onRepaint callback against throws (#1718) (#1739) (ed03f3bf)

v5.219.2

2026-09-18
Changed
  • consolidate legacy BUILTIN_WORKTREE_PRUNE compat shim (#1736) (bdc01061)
  • add coverage for sort order, limit boundaries, escape stripping (#1707) (4340199b)
  • freeze time in eviction exact-boundary test (#1716) (194577a5)
  • fix mid-sequence scenario description in trace-completeness benchmark (#1727) (7facd4af)
Fixed
  • guard surrogate-pair boundary in shell-task excerpt truncation (#1734) (9c184aff)
  • trace-completeness benchmark test improvements (#1726) (8741f890)
  • guard ToolLaneFlash onRepaint callback against throws (#1718) (ffff6a87)

v5.219.1

2026-09-17
Fixed
  • remove double-slash prefix on slash-command autocomplete (#1654) (19dc7edb)

v5.219.0

2026-09-17
Added
  • add executor tagged union for scheduled tasks (#1719) (090e976b)

v5.218.2

2026-09-17
Fixed
  • remove tsx watch from dev script (#1733) (86abb85c)
  • extract readable titles from XML-tagged skill dispatch sessions (70deb28d)

v5.218.1

2026-09-17
Fixed
  • extract session titles from preamble-bearing ledger records (#1732) (975ea7bf)

v5.218.0

2026-09-17
Added
  • add shell-mode input visuals for ! prefix (#1730) (7fb33211)
Changed
  • add crash-to-resume DAG checkpoint benchmark (#1731) (24ca8537)
  • add abort-cascade correctness benchmark (#1729) (9df5bb7c)

v5.217.0

2026-09-17
Added
  • add prior-reviewer-feedback awareness for PR targets (#1720) (7e5fc83c)
Changed
  • comprehensive site audit and update (#1722) (79ebf803)

v5.216.2

2026-09-17
Changed
  • add MomentumTicker unit tests and fix stale comments (#1692) (#1713) (78a218d9)
Fixed
  • strip existing annotations in idempotency guard, fix TOCTOU comment (#1677) (#1709) (48895d8b)

v5.216.1

2026-09-17
Changed
  • deduplicate TranscriptItem type definition (#1710) (c2183d52)
  • merge SPINE.md service invariants into main baseline (798b0713)
Fixed
  • surface upgradeService failure in restart() (#1695) (#1714) (b3495044)
  • forward opts to upgradeService in restart() (#1694) (#1711) (9e144158)
  • harden eviction module (#1705) (#1708) (3ad1e10d)
  • lane flash reduced-motion gate, tests, dead ternary (#1693) (#1712) (9d081ebb)

v5.216.0

2026-09-17
Added
  • add searchable capture index CLI command (#1502) (#1641) (54160008)

v5.215.2

2026-09-17
Fixed
  • use repo default merge strategy instead of hardcoding --squash (#1704) (61cc0c7f)

v5.215.1

2026-09-17
Fixed
  • bound elicitation route registry growth (#1700) (c765fce2)

v5.215.0

2026-09-17
Added
  • offer to merge docs/test-only PRs after MERGE verdict (#1703) (36d3ee8e)

v5.214.1

2026-09-17
Changed
  • track initialized SPINE.md for agent-afk repo (7670e286)
Fixed
  • drain micro-buffer before terminal-state inspection (#1701) (2b7b8835)

v5.214.0

2026-09-17
Added
  • read SPINE.md in ground-state pre-flight (#1699) (f2f1a8a6)

v5.213.3

2026-09-17
Fixed
  • make /spine init actually populate entries from codebase artifacts (#1698) (38152c80)

v5.213.2

2026-09-17
Fixed
  • widen /spine init grep to cover all documented comment prefixes and file types (#1697) (9f7977ae)

v5.213.1

2026-09-17
Fixed
  • add plist upgrade path for existing installs (#1686) (d196ed8e)

v5.213.0

2026-09-17
Added
  • 150ms glyph flash on tool completion (#1691) (3a88c42f)
  • live tok/s momentum ticker in status line (#1690) (1e5126e4)

v5.212.12

2026-09-17
Fixed
  • callback-gated exit for Windows --version + widen watch.test timing budget (#1689) (1de4bcdd)

v5.212.11

2026-09-16
Fixed
  • close SQLite handle before test cleanup + flush --version on Windows pipes (23f5a98a)

v5.212.10

2026-09-16
Fixed
  • periodic sessionData eviction and elicitation route cleanup (#1657, #1662) (#1668) (d9ed4479)

v5.212.9

2026-09-16
Fixed
  • prevent watchdog suspension ceiling stacking (#1660) (#1665) (59e059ba)

v5.212.8

2026-09-16
Fixed
  • resolve stacked Windows smoke test failures (pnpm ENOENT + dashboard deps) (#1685) (fe1ea69d)

v5.212.7

2026-09-16
Fixed
  • revert top-aligned band to bottom-aligned (#1670 regression) (#1684) (999925e5)

v5.212.6

2026-09-16
Fixed
  • add manifest gate and scoped re-review to reduce cycling (#1680) (990dcf5c)

v5.212.5

2026-09-16
Fixed
  • resolve remaining umber references and add UserDefaults migration (#1681) (98306679)

v5.212.4

2026-09-16
Changed
  • add end-to-end CLI smoke test (#1603) (#1638) (7cf76048)
Fixed
  • update stale BANNER_LINE_10 assertion in PTY scrollback test (#1683) (3ef0f7b3)

v5.212.3

2026-09-16
Changed
  • bump react-dom and @types/react-dom in /website (#1652) (9c2ab252)
Fixed
  • normalize CRLF to LF in esbuild prompt-inlining plugin (#1682) (0a2eb930)
  • replace POSIX path assumptions with platform-agnostic APIs (#1600) (#1642) (35c80942)

v5.212.2

2026-09-15
Fixed
  • top-align committed band to eliminate dropdown gap (#1670) (1e34de69)

v5.212.1

2026-09-15
Fixed
  • remove blank row at top of scrollback history (#1674) (a229e376)

v5.212.0

2026-09-15
Added
  • parallel-first scheduling posture (#1676) (12b25e09)

v5.211.0

2026-09-15
Added
  • agent-maintained SPINE.md (#17) (#1649) (9b71939c)

v5.210.0

2026-09-15
Added
  • word-by-word ghost acceptance via Right arrow (#1673) (693d5f9d)

v5.209.5

2026-09-15
Changed
  • extract shared Collapse component (#1648) (#1667) (f0bc0279)

v5.209.4

2026-09-15
Added
  • persistent cross-session objective tracking (#1632) (2467ad19)
Fixed
  • use os.userInfo().uid fallback in guiDomain() (#1661) (#1664) (d3967925)

v5.209.3

2026-09-15
Changed
  • bump react and @types/react in /website (#1653) (6ed00fbc)
Fixed
  • warn about systemd >= 240 requirement for log output (#1659) (#1669) (7a9c606c)

v5.209.2

2026-09-15
Added
  • add AFK_STREAM_BUFFER_MS for smoother streaming output (#1671) (126772d3)
Changed
  • bump the fumadocs group in /website with 2 updates (#1650) (ef2c14ce)
Fixed
  • close leaked FDs in start() (#1656) (#1663) (fe23c824)

v5.209.1

2026-09-14
Changed
  • bump @types/node from 26.4.1 to 26.5.1 in /website (#1651) (d2601bb9)
Fixed
  • boost docs site favicon palette for small-size legibility (#1655) (a3d3997b)

v5.209.0

2026-09-13
Added
  • overhaul chat UI with topology spine (#1635) (d0af56f9)

v5.208.4

2026-09-12
Added
  • add read-only Settings view with config API endpoint (#1581) (#1640) (12678d25)
Changed
  • add workspace persistence decision record — won't-fix (#1541) (#1639) (a6ffff01)
Fixed
  • add debug logging for closeTab window.close() limitation (#1628) (#1636) (0c0430a7)

v5.208.3

2026-09-12
Fixed
  • drop envelope fallback in call() for void-result methods (#1629) (#1637) (04705f23)

v5.208.2

2026-09-11
Fixed
  • replace emoji logo with Handoff Arc brand mark (#1634) (c4011bc9)

v5.208.1

2026-09-11
Changed
  • consolidate web layer — remove legacy frontend, rename src/web/ (#1633) (df7705d8)
  • add unit tests for AgentBrowserClient (#1630) (#1631) (cecca5ea)
Fixed
  • add missing dashboard install step to auto-release workflow (070673c3)

v5.208.0

2026-09-10
Added
  • hierarchical subagent tree, settings view, and bg-jobs polish (#1625) (5d8d7be0)

v5.207.2

2026-09-10
Fixed
  • align AgentBrowserClient with Agent Browser v0.3.0 API (#1627) (a8035282)

v5.207.1

2026-09-10
Changed
  • convert markdown repaint debounce to leading+trailing throttle (#1626) (f120924c)

v5.207.0

2026-09-10
Added
  • add token budget + fan-out count to status line (#1609) (#1623) (af8963a2)
Changed
  • add test infrastructure and baseline MarkdownContent tests (#1606) (3e52e848)

v5.206.4

2026-09-10
Fixed
  • align design tokens with AFK brand theme (#1624) (c1d8ae73)

v5.206.3

2026-09-10
Changed
  • address remaining review follow-ups from #1554 and #1555 (#1566) (#1595) (91c11fc8)
Fixed
  • harden build-web-ui.mjs with CI fail-fast and pinned Vite (#1591) (9ebc0a6c)
  • fix stale caches in React dashboard (#1584) (#1593) (a0244133)

v5.206.2

2026-09-09
Fixed
  • resolve 401 errors in Vite dev mode (#1599) (47f85347)

v5.206.1

2026-09-09
Fixed
  • wave 1 - hook executor wiring, EBUSY fix, POSIX test portability (#703) (#1578) (9990099a)

v5.206.0

2026-09-09
Added
  • port @-file, model selector, and queue panels to React (#1605) (495a0614)

v5.205.0

2026-09-09
Added
  • wire slash-command dispatch into web UI prompt path (#1598) (4c0be1ea)

v5.204.4

2026-09-09
Fixed
  • approval error feedback and stable React keys in memory view (#1587) (#1592) (00fbbdd0)

v5.204.3

2026-09-09
Fixed
  • add URL scheme allowlist to MarkdownContent links (#1590) (9832092c)

v5.204.2

2026-09-09
Changed
  • add route-level tests for memory, models, and bg-jobs endpoints (#1583) (#1594) (cfc025d5)
Fixed
  • make tool record toolUseId optional for backward compat (#1588) (#1589) (0f068ef9)

v5.204.1

2026-09-09
Changed
  • deduplicate ledger-adapter to single source of truth (#1582) (#1596) (5f13806c)

v5.204.0

2026-09-09
Added
  • React dashboard - full implementation (Phases 1-5) (#1580) (ae5d5e9b)

v5.203.1

2026-09-09
Changed
  • review follow-ups from #1554 and #1555 — tests and comments (#1566) (#1576) (35b69c84)
Fixed
  • wire executors, MCP, and trace for web and Telegram OpenAI/xAI surfaces (#1579) (b07828dd)

v5.203.0

2026-09-09
Added
  • TUI-parity upgrade with 5 panels, emission wiring, and full audit fixes (#1572) (343687f8)

v5.202.1

2026-09-08
Changed
  • cover combined steering + workspace beforeNextRound (#1564) (#1575) (b9ca73bb)
  • cover setSubscribeHandler injection path (#1563) (#1574) (6ce52c5e)
  • scope workspace_subscribe to child allowlists only (#1562) (#1577) (dc497243)
Fixed
  • include grep include arg in resource fingerprint (#1565) (#1573) (d5fbd466)

v5.202.0

2026-09-08
Added
  • add schedule CRUD UI to afk web (#1570) (35bd80f0)
  • default-on Done verification for unattended execution (#1571) (8d98e8ff)

v5.201.1

2026-09-08
Fixed
  • address rolling tail review feedback (#1569) (0ba10c86)

v5.201.0

2026-09-08
Added
  • live rolling tail during long-running commands (#1506) (#1568) (d46be13a)

v5.200.1

2026-09-08
Fixed
  • close TOCTOU window in persistRouteAndMessageId (#1557) (#1567) (5b1663bc)

v5.200.0

2026-09-08
Added
  • wire rich handoff sender into daemon elicitation path (#1550) (#1555) (11f20e74)

v5.199.0

2026-09-08
Added
  • resource-level fingerprinting and tested analyzer (#1537) (#1554) (846e865f)

v5.198.1

2026-09-08
Changed
  • move worktree-* cluster into src/agent/worktree/ (#1561) (2382f84c)

v5.198.0

2026-09-07
Added
  • reactive workspace subscriptions via workspace_subscribe (#1418) (#1560) (3ba59f00)

v5.197.1

2026-09-07
Fixed
  • address #1558 review feedback -- revert OAuth and capture defaults (#1559) (8ae06419)

v5.197.0

2026-09-07
Added
  • flip 5 env var defaults from opt-in to opt-out (#1558) (6b81547b)
Changed
  • Delete drafts directory (69e6d60a)
  • Delete assets/demo-placeholder.png (23a90acd)
  • Delete .afk/prompts/parallel-primitives-wave1.md (1ff519cd)

v5.196.0

2026-09-07
Added
  • honor allowCustom in durable handoff questions (#1551) (#1553) (cacfe68b)

v5.195.1

2026-09-07
Fixed
  • re-read record in persistRouteAndMessageId to prevent race (#1549) (#1552) (b1fd4ccf)

v5.195.0

2026-09-07
Added
  • auto-reclaim locked worktrees when preservation reason expires (#1545) (#1548) (480d45bb)

v5.194.0

2026-09-07
Added
  • wire durable handoff answers into Telegram (#1416) (#1533) (f4e07c4c)

v5.193.0

2026-09-07
Added
  • add orient skill to awa-bundled (#1546) (b4681c2a)

v5.192.1

2026-09-07
Fixed
  • detect resize while disarmed via snapshot, not listener (#1544) (ac415758)

v5.192.0

2026-09-07
Added
  • configurable preview size with head/tail line count (#1542) (c9cdcc4f)

v5.191.9

2026-09-07
Changed
  • extend closure contract to cover truncated guidance (#1529) (#1536) (38844778)
Fixed
  • auto-append unique suffix on name collision (#1516) (#1543) (afca1cdd)
  • apply pushOutcomeLines to grouped-root single-entry path (#1532) (#1534) (3e4bdebc)
  • warn on Ctrl+B promotion of non-isolated write-capable child (#1513) (#1535) (002509ad)

v5.191.8

2026-09-07
Changed
  • remove Steer option from interrupt picker (#1531) (1b8c00cd)

v5.191.7

2026-09-07
Fixed
  • spine severed on multi-line tool outcomes in nested tree (#1530) (5ee8454a)

v5.191.6

2026-09-07
Fixed
  • detect truncated closure reason as anomalous (#1503) (6684050e)
  • surface touched files on cancelAll drain timeout (#1514) (#1522) (6f92f6c9)
  • send_message_to_agent returns error on non-steering providers (#1495) (#1520) (aaa13fd7)

v5.191.5

2026-09-06
Changed
  • bump next from 16.3.3 to 16.3.4 in /website (#1528) (a171be6c)
  • bump @types/node from 26.4.0 to 26.4.1 in /website (#1527) (1e749aa0)
  • bump the fumadocs group in /website with 3 updates (#1526) (d86e4661)
Fixed
  • improve error messages and schema guidance to reduce 46% failure rate (#1515) (c2046fef)
  • Windows compatibility — security, shell resolution, and test fixes (#703) (#1518) (4eb94bf0)

v5.191.4

2026-09-06
Fixed
  • warn on Ctrl+B promotion of non-isolated write-capable child (#1513) (#1524) (de04805e)

v5.191.3

2026-09-06
Fixed
  • regenerate env-registry docs and harden test cleanup (#1522) (#1525) (d00d8f18)

v5.191.2

2026-09-06
Changed
  • Delete commit-msg.txt (9d424f84)
  • Delete draft-reddit-post.md (425fc09a)
Fixed
  • resolve credentials fresh per-node at fork time (#1511) (31195fbb)
  • resolve 6 perceptual color collisions via CIEDE2000 audit (#1523) (6f83cd25)

v5.191.1

2026-09-06
Changed
  • add teardown/cancel clearing assertions for steer() ring buffer (#1496) (#1519) (9259509b)
Fixed
  • clear pendingStopInjection on /resume session swap (#1512) (#1521) (24a3c1a2)

v5.191.0

2026-09-06
Added
  • widen left gutter to 3-space indent (#1509) (7a94d1da)

v5.190.0

2026-09-06
Added
  • tighter prose measure for non-code blocks (#1510) (e645de8d)

v5.189.0

2026-09-05
Added
  • improved bash output visibility in TUI (#1500) (88091f9e)

v5.188.0

2026-09-05
Added
  • child-to-parent progress events via emit_progress tool (#1418) (#1504) (e6ea06d6)

v5.187.0

2026-09-05
Added
  • add turn-boundary separator between conversation turns (#1508) (2a9e657d)
  • thread trigger into spawnSession and wire handoff handler (#1416) (#1498) (d6619f02)

v5.186.1

2026-09-05
Changed
  • centralize subagent model resolution into resolveChildModel() (#1499) (db62c706)

v5.186.0

2026-09-05
Added
  • show inline colored diffs for patch_apply tool (#1497) (87c4d4d4)

v5.185.0

2026-09-05
Added
  • mid-run agent steering via tool-call boundary injection (#1418) (#1494) (78c13734)

v5.184.0

2026-09-05
Added
  • wire durable handoff store into elicitation path (#1416) (#1493) (2d8a2f1c)
Changed
  • add endTurnFlush test for fully-pending band (committedBandPaintedRows === 0) (#1492) (51ef6f1d)

v5.183.1

2026-09-04
Fixed
  • add stale-guard to terminal-compositor lifecycle redraw (#1487) (#1490) (53c8f2b5)

v5.183.0

2026-09-04
Added
  • auto-cap oversized foreground results with sidecar spill (#1491) (de65c1e5)

v5.182.1

2026-09-04
Fixed
  • deduplicate wave-resume offers across session starts (#1489) (7b4b1877)

v5.182.0

2026-09-04
Added
  • model-facing clipboard tool (#1422) (#1480) (93941ebc)
  • durable cross-session structured state store (#1449) (b147396b)
Fixed
  • pin VS 2022 for node-gyp on windows-latest (af688900)
  • update tool count assertions after state store + clipboard PRs (396a0d2f)
  • reset auto-resume counter per-turn instead of per-session (964b7c7d)

v5.181.1

2026-09-04
Fixed
  • contain project-local MCP stdio server env (#578) (#1483) (d454a30e)

v5.181.0

2026-09-04
Added
  • structured JSON query tool (#1423) (#1482) (5c739ea9)
  • add HandoffRecord schema and file-based handoff store (#1416) (#1484) (791c6f74)
Fixed
  • forward image content blocks from MCP servers (#1421) (#1481) (caab0b2b)

v5.180.1

2026-09-04
Fixed
  • reconcile grant-manager divergences (#500) (#1479) (a069a8e5)

v5.180.0

2026-09-04
Added
  • live parallel-batch indicator during pending window (#516) (#1485) (d011a388)

v5.179.0

2026-09-04
Added
  • compositor A2 — Stage 2 + Stage 3 (#540) (#1486) (ec728f5f)

v5.178.5

2026-09-03
Fixed
  • suffix viewport for long input in mid-turn prompt (#1477) (#1478) (9185b471)

v5.178.4

2026-09-03
Fixed
  • guard computeIdempotencyKey throw in pre-hook (#1475) (#1476) (7534f3ea)

v5.178.3

2026-09-03
Fixed
  • add breakLongWords to todo-panel wrapToWidth (#1455) (#1466) (3c153306)

v5.178.2

2026-09-03
Fixed
  • apply width guard to slash writer raw() on TTY (#1456) (#1470) (dcfc1264)

v5.178.1

2026-09-03
Fixed
  • harden dedup, session scoping, error safety, and read caching (#1474) (cda9e1a9)
  • replace timing-based sync with rendezvous signal in flaky test (#1473) (7258aed3)
  • enable hard wrap in thinking-paragraph to prevent overflow (#1454) (#1467) (9aac66ad)
  • skip indentMarker replace when fallback is undefined (#1457) (#1468) (d7628170)

v5.178.0

2026-09-03
Added
  • external-effect and idempotency ledger (#1412) (#1440) (32609e37)
Fixed
  • apply width guard to elicitation fallback writers (#1458) (#1465) (acb45cdb)

v5.177.4

2026-09-03
Changed
  • add mtime-ordering regression test for get_facet latest resolution (#1463) (#1471) (959522ae)
  • close wrapping test coverage gaps from #1451/#1452/#1453 (#1462) (#1472) (f921fc34)
Fixed
  • make per-direction token_breakdown fields optional instead of zero-fill (#1460) (#1469) (6f8d08d1)

v5.177.3

2026-09-03
Fixed
  • restore statSync optimization and session_id trace path (#1464) (422182ff)

v5.177.2

2026-09-03
Fixed
  • add breakLongWords to wrapToWidth, harden padDisplayRight (#1451) (ef050386)

v5.177.1

2026-09-03
Fixed
  • hard-wrap code block body lines at maxTableWidth (#1453) (65bebea5)
  • clamp content lines to terminal width in task-view-mid-turn (#1452) (b8c14b97)

v5.177.0

2026-09-03
Added
  • canonize facets as the primary session-level query surface (#1450) (b9b2e310)

v5.176.3

2026-09-02
Added
  • cap exponential backoff growth in computeBackoffMs (#1442) (#1446) (dc95f7d3)
Fixed
  • align PID=1 threshold between parseInput and evaluateProcess (#1443) (#1447) (4d4c7a6b)

v5.176.2

2026-09-02
Changed
  • remove dead TTFB code after double-spinner fix (#1448) (bc9790e5)

v5.176.1

2026-09-02
Fixed
  • suppress redundant TTFB "Generating…" spinner (#1445) (1fc6914d)

v5.176.0

2026-09-02
Added
  • safe web_request tool with SSRF guard and risk classification (#1413) (#1439) (af19d227)

v5.175.1

2026-09-02
Changed
  • generate env getters from ENV_REGISTRY instead of hand-maintaining (#830) (#1441) (9aa94132)

v5.175.0

2026-09-02
Added
  • wire streamProgress into live overlay spinner (#1399) (#1438) (76c64ec5)
  • restrict evaluateProcess PID probing to session-owned PIDs (#1430) (#1436) (109d635c)
  • wire computeBackoffMs into re-enqueue path (#1432) (#1435) (03764fa1)
Changed
  • remove orphaned progressBar component (#1400) (#1437) (3b4b5340)

v5.174.0

2026-09-01
Added
  • wave 1 parallel issues — #1402, #1404, #1407, #1431, #1433 (#1434) (24d18857)

v5.173.0

2026-09-01
Added
  • test_run tool with discovery and structured results (#1426) (d2d0b0a1)
  • patch_apply tool with atomic multi-file changes (#1425) (deeaab29)
  • wait_for tool with poll-based condition waiting (#1424) (53f5d726)
  • durable task lifecycle with lease recovery and DAG checkpointing (#1427) (a2596639)

v5.172.1

2026-09-01
Fixed
  • lazy-load playwright to fix Next.js standalone import (#1428) (#1429) (db9a2fc9)

v5.172.0

2026-09-01
Added
  • wire toolCard into primary tool-lane rendering (#1403) (#1410) (55278d54)
Fixed
  • handle committed terminal-state block in dedup (#1407) (#1408) (1d0894cb)

v5.171.0

2026-09-01
Added
  • wire newsletter funnel links across README, CLI, and docs (#1406) (522a20bb)

v5.170.1

2026-08-31
Fixed
  • gate expired chatgpt-oauth tokens instead of passing opaque 401 (#555) (#1394) (6fea8329)

v5.170.0

2026-08-31
Added
  • extract costTokenParts into shared component (#1401) (#1409) (7b418e8a)

v5.169.6

2026-08-31
Fixed
  • deduplicate terminal-state rendering -- verdict card only (#1405) (81e64720)

v5.169.5

2026-08-31
Fixed
  • handle chatgpt-oauth in standalone oneshot auth path (#555) (#1393) (85c38f31)

v5.169.4

2026-08-31
Changed
  • wire component library -- kill shadows, promote context components, migrate separators (#1398) (34323467)
Fixed
  • add SCOPE paragraphs to tool descriptions to prevent misuse (#1397) (d0ff7251)

v5.169.3

2026-08-31
Fixed
  • reconcile 3 dispatcher/provider behavior divergences (#500) (#1396) (ce143232)

v5.169.2

2026-08-31
Fixed
  • resolve open issues #740, #654, #555 (bash grant policy, openai-compat test debt, chatgpt-oauth follow-ups) (#1395) (31aba866)

v5.169.1

2026-08-31
Fixed
  • surface durationMs via public handle API and route stdin through compositor (#1346) (#1390) (cec9a458)

v5.169.0

2026-08-31
Added
  • mid-turn task view + user-to-subagent interaction (#1387) (f1df4fa4)
Changed
  • add tests for live tail loop, natural completion, and Esc abort (#1333) (#1391) (f63ffec4)
  • align README and LICENSING with website positioning (#1392) (ea73aeed)

v5.168.2

2026-08-31
Fixed
  • make auth diagnose slot-aware for chatgpt-oauth (#555) (#1389) (21cafcf4)

v5.168.1

2026-08-31
Changed
  • bump next from 16.3.2 to 16.3.3 in /website (#1380) (33a4bc38)
  • bump @types/node from 26.2.0 to 26.4.0 in /website (#1379) (6568916e)
  • bump @types/react-dom from 19.2.4 to 19.2.5 in /website (#1378) (f2ddc308)
  • bump the fumadocs group in /website with 3 updates (#1377) (0bb4d1a1)
Fixed
  • add missing category annotations to audit-fit and diagnose (#12) (#1388) (2fe82bf0)

v5.168.0

2026-08-30
Added
  • code quality contract, verification evidence classifier, temperature plumbing (#1386) (73542f95)

v5.167.4

2026-08-30
Fixed
  • remove dispatch cast and add whenToUse precedence test (#1385) (8db1ae0d)

v5.167.3

2026-08-30
Fixed
  • wire pluginSkill.whenToUse into /skills detail card (#1383) (255ab5d4)

v5.167.2

2026-08-30
Changed
  • add disk-scan coverage for whenToUse frontmatter parsing (#1374) (#1384) (36b61b6d)
Fixed
  • restore BM25 normalization and add FTS5 DELETE/UPDATE triggers (#1381) (0cefed00)

v5.167.1

2026-08-30
Fixed
  • strip orphaned trailing ** from parsed field values (#1375) (859793f6)

v5.167.0

2026-08-30
Added
  • skill when-to-use frontmatter + routing hints (Claude Code compat) (#1368) (7fbf0853)
  • replace LIKE search with FTS5 full-text search (#1370) (613dcaec)
  • first-class browser routing -- Agent Browser preferred, Playwright fallback (#1369) (b87d6de7)
Fixed
  • add missing setPlanExitQueueCheck to repl-loop-wiring mock (#1376) (64f31f26)
  • skip exit_plan_mode picker when user has a queued message (4767128a)

v5.166.1

2026-08-29
Changed
  • unify duplicate $() helpers with consistent null-safety (#1347) (#1367) (5bbd065d)

v5.166.0

2026-08-29
Added
  • pre-execution diff preview for edit_file (#1366) (07f13a73)

v5.165.2

2026-08-29
Fixed
  • retire pathApprovalGrantRef + Gate 1/Gate 2 containment regression test (#1364) (df87736c)

v5.165.1

2026-08-28
Fixed
  • proactive OAuth token refresh timer (#1296) (#1363) (4e074928)

v5.165.0

2026-08-28
Added
  • add /ghost and /suggestions slash commands (#1365) (e44a5800)

v5.164.1

2026-08-28
Fixed
  • register diagnose, false-completion-gate, fix-pr, polish in update-hash-pins.ts (#1362) (5744d246)

v5.164.0

2026-08-28
Added
  • wire toolCard into task-view + fix duplicate barrel export (#1361) (3255790b)

v5.163.3

2026-08-28
Changed
  • memoize mkdirSync per sessionLabel to avoid redundant syscalls (#1320) (#1353) (f7efcda3)
  • separate stack traces from recovery hints in errorCard (#1327) (#1356) (c2814faa)
Fixed
  • harden drawBox width coupling and fragile newline assertion (#1345) (#1355) (10dd79a2)
  • document one-line overshoot contract and tighten cap test (#1316) (#1351) (4c416607)
  • sanitize id_prefix to prevent assertSafeJobId rejection (#1319) (#1350) (8397a6fd)

v5.163.2

2026-08-28
Fixed
  • formatTokenCount boundary shows '100.0k' at 99999 (#1328) (#1348) (024c9325)

v5.163.1

2026-08-28
Fixed
  • log errors from enterTaskViewMode instead of swallowing (#1334) (#1357) (fc31c3dd)

v5.163.0

2026-08-28
Added
  • reorder model name leftward in status line for visibility (#1343) (#1360) (9410f734)
Fixed
  • default AFK_SUBAGENT_LOG to off — raw tool args written without redaction (#1318) (#1359) (d85e1f1f)

v5.162.1

2026-08-28
Changed
  • gate subagent status ticker flush on second-boundary change (#1330) (#1354) (70520b7c)
  • remove dead renderEventsView export (#1335) (#1352) (183e44b1)
  • add coverage for stream-open-window writes and zero-write close (#1317) (#1349) (596ec25a)
  • add integration tests for subagent status bar processEvent lifecycle (#1329) (#1358) (5106a5e3)

v5.162.0

2026-08-28
Added
  • conversation preview with view-mode before session resume (#1315) (c018cbc5)
  • add CompactDiffView component (#1340) (44e281aa)
Fixed
  • restore hunks dropped in #1315 squash merge (ed882c31)
  • composer & interaction improvements (#1203) (6be4ae6d)

v5.161.0

2026-08-28
Added
  • add ToolCard component (#1341) (03c3b082)

v5.160.0

2026-08-28
Added
  • show running/total subagent count (#1342) (#1344) (500c2ff8)

v5.159.0

2026-08-28
Added
  • add InterruptPeek component (#1339) (e6c6a47b)

v5.158.3

2026-08-28
Changed
  • migrate errorBox to errorCard, remove old component (#1337) (db0bb911)
Fixed
  • block direct launchctl/systemctl service registration (#1311) (09de4da0)

v5.158.2

2026-08-28
Changed
  • extract formatElapsed + statusBadge shared primitives (#1322) (#1336) (0af763a8)
Fixed
  • address v2 review follow-ups (#1331, #1332, #1333, #1334, #1335) (#1338) (d1119a45)

v5.158.1

2026-08-28
Changed
  • extract hydrateStatsFromStore from session-manager.ts (#1288) (4bbbe465)

v5.158.0

2026-08-28
Added
  • live view-mode switching for subagent conversations (v2) (#1313) (d708050b)
  • component library foundation — SubagentStatusBar, StreamProgress, ErrorCard + live overlay integration (#1321) (c5f8f883)

v5.157.1

2026-08-27
Changed
  • add guideline against using emdashes (08550970)
Fixed
  • seed context-overflow guard from restored session usage (#1294) (#1304) (a210965e)

v5.157.0

2026-08-27
Added
  • /tasks commands + always-on subagent conversation logging (v1) (#1312) (5d37b230)
  • add job-to-be-done category grouping to /skills listing (#12) (#1264) (eb175b9e)

v5.156.0

2026-08-27
Added
  • add tool_name filter to search_witness (#1314) (40687d88)

v5.155.0

2026-08-27
Added
  • render-time artifact capture for non-code copyable regions (#1287) (#1310) (12ffd199)
  • add /copy plain mode for Slack/email-friendly output (#1286) (#1309) (2997ae66)
  • accept inbound documents with text extraction (#687) (#1306) (67ca3ba4)
Fixed
  • run microcompaction unconditionally after compaction (#1293) (#1303) (0b5367d3)
  • record verbatim tool args in subagent output capture (#948) (#1308) (c7912731)
  • add edit_file TOCTOU guard and verify grep ENOENT enrichment (#441) (#1307) (4809c097)

v5.154.0

2026-08-27
Added
  • add sidecar retention sweep with age + count eviction (#1190) (319cb7ec)
Changed
  • add unit tests for streaming handlers and progress modules (#1305) (16b776d2)

v5.153.0

2026-08-27
Added
  • add OBSERVE + BASH_HIGH coverage for outbound curl writes (#1280) (#1302) (d3f3ff7d)
Changed
  • Merge pull request #1299 from griffinwork40/afk/iso-issue-1281-4-ostjix (c1ec9d64)
  • Merge pull request #1301 from griffinwork40/afk/iso-issue-1282-6-vbnzvj (d99f087f)
  • document credibility signal policy — PR/test counts over npm downloads (#1282) (af122e5e)
  • expand irreversible-action examples for service install and production proxies (#1281) (629cc262)

v5.152.5

2026-08-26
Fixed
  • guard code-block register with enabled flag (#1289) (#1300) (c9c205d6)

v5.152.4

2026-08-26
Changed
  • extract watch command handler from bot.ts (#1290) (5b681553)

v5.152.3

2026-08-26
Changed
  • extract paused-event handler from turn-handler.ts (#1291) (c1666ff6)

v5.152.2

2026-08-25
Fixed
  • cap list_directory output at 500 entries (#1292) (aff2d362)

v5.152.1

2026-08-25
Fixed
  • skip node_modules in plugin skill discovery walk (#1297) (b086417b)

v5.152.0

2026-08-25
Added
  • add Steer option to interrupt-picker (post-stop redirect) (#1268) (473cda2f)

v5.151.1

2026-08-25
Fixed
  • render block-level markdown (tables, code) in verdict cards (#1295) (d26ada64)

v5.151.0

2026-08-25
Added
  • add /copy slash command with render-time code block capture (#1285) (e4c1844e)

v5.150.2

2026-08-25
Changed
  • add unit tests for streaming watchdog module (#1123) (#1275) (ade4b218)
Fixed
  • guard bot.catch and acknowledge unsupported message types (#1178) (b4702a4b)

v5.150.1

2026-08-25
Fixed
  • resolve autoRoute thread at send time, not tick time (#1271) (#1273) (cab2217b)

v5.150.0

2026-08-25
Added
  • wire reconcileWaveManifests into session startup paths (#1082) (#1266) (c9fcac8f)

v5.149.7

2026-08-24
Changed
  • add unit tests for streaming watchdog and sender (#1123) (#1277) (b7162c70)
Fixed
  • handle threadId=0 edge case in route normalization (#1271) (#1276) (30bc58ba)

v5.149.6

2026-08-24
Added
  • add OpenAI models to /model picker (#1258) (#1274) (e45e35f9)
Fixed
  • keep auto-watch routes current (#1270) (7c2ca4b2)

v5.149.5

2026-08-24
Changed
  • add unit tests for resolveForkInputs precedence paths (#1269) (#1272) (8cd25c7a)
Fixed
  • route auto-subscribe watch output to active topic thread (#1222) (#1267) (9f6c0ba3)

v5.149.4

2026-08-24
Fixed
  • UI polish — code lang badge, centered transcript, blockquotes, transitions (#23-30) (#1201) (5f9eafea)

v5.149.3

2026-08-24
Fixed
  • route auto-subscribe watch output to active topic thread (#1222) (#1262) (a013af50)

v5.149.2

2026-08-24
Changed
  • extract pure resolution chain from forkSubagent (#1265) (e9951979)

v5.149.1

2026-08-24
Fixed
  • add xAI/Grok models to /model picker and docs (#1105) (#1263) (77717022)

v5.149.0

2026-08-24
Added
  • add stats line and context-specific affordances (#1257) (f9bd4c2d)
Changed
  • add endpoint-layer tests for GrokCliHeaderDeps forwarding (#1244) (#1261) (773624fa)
  • upgrade better-sqlite3 to v13 (#1259) (#1260) (bb4d1461)

v5.148.0

2026-08-24
Added
  • add claim normalization, STALE verdict, scale cap, and gate verdict (#1253) (c1add023)
  • report shadowed AFK.md files and lock overlay provenance (#845 follow-up) (#1255) (2a3b7f65)
Changed
  • memoize plugin discovery walks and cap breadth (#990) (#1240) (c6a483b2)
Fixed
  • auto-recover ghost dirs on install (#1204) (46586071)
  • pass message_thread_id to elicitation keyboards (#1219) (#1233) (f5c42658)
  • stream grep output through a bounded collector instead of buffering 8MB (#1254) (ada88650)

v5.147.2

2026-08-24
Changed
  • bump next from 16.3.0 to 16.3.2 in /website (#1251) (4770c815)
  • bump the fumadocs group in /website with 3 updates (#1250) (5bde8195)
Fixed
  • populate structured fields and improve fallback display (#1252) (557bc535)

v5.147.1

2026-08-24
Fixed
  • enforce version floor on ~/.grok/version.json reads (#1249) (d49ae2ec)

v5.147.0

2026-08-23
Added
  • add system prompt instructions for workspace tools (#1248) (467e616f)

v5.146.4

2026-08-23
Changed
  • extract Enter/Tab handlers from handleKeypress (#1072) (#1247) (24890ad6)

v5.146.3

2026-08-22
Fixed
  • suppress duplicate header seam between consecutive tables (#1246) (ff9e8f31)

v5.146.2

2026-08-22
Changed
  • incremental DOM render and input preview cap (#1, #22) (#1202) (3e9bf5a3)
Fixed
  • approval UX overhaul — multi_choice, title alert, context, tiers (#3,#4,#6,#7,#21) (#1200) (e35c65ef)

v5.146.1

2026-08-22
Changed
  • swap demo video with polished 43s cut (b6b4460f)
Fixed
  • bash guard SENSITIVE_PATH_SIGNAL covers relocated AFK_HOME (#778) (#1237) (f892f1a0)

v5.146.0

2026-08-21
Added
  • mechanical Windows compatibility pass (#703) (#1215) (0e131e2d)

v5.145.5

2026-08-21
Fixed
  • send valid Grok CLI version to proxy (#1242) (0c821d26)

v5.145.4

2026-08-21
Changed
  • replace demo placeholder with live video (80464c95)
Fixed
  • eliminate phantom blank rows from double-setOverlay race (#1243) (f35793c6)

v5.145.3

2026-08-20
Changed
  • extract helpers from executeBatch to reduce nesting (#1074) (#1241) (65cf4e63)
Fixed
  • derive MAX_API_ROUND_INFLIGHT_MS from live TTFB config (#1142) (#1239) (1ef8955d)

v5.145.2

2026-08-20
Fixed
  • extract shared credential-floor marker constants (#861) (#1235) (3375608d)
  • thread threadId through to background job notifications (#1220) (#1232) (0597515a)
  • surface hint when notify routing silently prefers DM over group (#1221) (#1236) (c70562d0)

v5.145.1

2026-08-20
Fixed
  • visual affordances — chevron, diff colors, pulse dot, stop feedback, tool digest (#9,#10,#11,#13,#16) (#1198) (34abf523)

v5.145.0

2026-08-20
Added
  • add extract_document tool for cross-platform document text extraction (#660) (#1164) (1b2ce58a)
Changed
  • harden portHasOwner — execFileSync, permission-denied, IPv6 guard (#1167) (#1181) (a63ebd20)
  • add Awesome Harness Engineering badge to README (d3391207)
Fixed
  • bump builtin tool count 26 → 27 for extract_document (#1231) (b23016cf)
  • thread workspace-enabled provider to compose DAG nodes (#1229) (19c5d909)
  • restore prompt suggestion ghost after deleting back to empty (#1230) (1b9e20e1)
  • derive MAX_API_ROUND_INFLIGHT_MS from live TTFB config (#1142) (#1173) (0db8055d)
  • buffer setCwd/setSystemPrompt before query init (#1062) (#1157) (81fa8b34)

v5.144.0

2026-08-20
Added
  • plain-language pass on user-facing chrome for non-technical readability (#1228) (877443d2)

v5.143.0

2026-08-20
Added
  • live elapsed counters on in-flight tool/subagent overlay rows; fix stalled tick loop (#1225) (50000443)

v5.142.0

2026-08-20
Added
  • plain-output progress parity — tool/subagent lines + TTFB cleanup (#1226) (fa349e16)

v5.141.1

2026-08-20
Fixed
  • stop bgStatusBar and mascotBar during pager/editor handoffs (#1170) (#1193) (cf7c5edc)

v5.141.0

2026-08-20
Added
  • model-facing background-job cancellation scoped by provenance (#1227) (6b46177a)

v5.140.0

2026-08-20
Added
  • add per-turn tool-action summaries to resume replay (#1188) (cd503def)
  • add workspace_query tool for mid-run polling (#1227) (#1224) (49dd727d)

v5.139.0

2026-08-20
Added
  • restructure empty-prompt context for outcome-aware suggestions (#1218) (273018dd)
  • add AFK_WORKSPACE_DISABLED env toggle for A/B experiment (#1216) (35822fc2)
Changed
  • supply WorkspaceStore to fix cold-start hint assertion (e0ca17f8)
  • add Responses-wire truncation coverage for query.ts (#1223) (5d241ea5)

v5.138.4

2026-08-19
Changed
  • harden portHasOwner — execFileSync, permission-denied, IPv6 guard (#1167) (#1175) (2d12806c)
Fixed
  • wire compose executor's missing onSubagentSucceeded cost rollup (#1211) (31d04365)

v5.138.3

2026-08-19
Fixed
  • thread workspaceStore through root manager, skill phases, and permission gates (#1213) (ed7cd385)

v5.138.2

2026-08-19
Fixed
  • resolve cold-start chicken-and-egg in workspace preamble (#1209) (9622916b)

v5.138.1

2026-08-19
Fixed
  • cold-start hint + compose executor wiring gap (#1214) (3a16ca51)

v5.138.0

2026-08-19
Added
  • enable background subagent dispatch + improve bg/fg guidance (#1212) (9e1b81ce)

v5.137.1

2026-08-19
Fixed
  • preserve newlines when splitting long messages at 4096-char boundary (#1206) (ca27a31f)

v5.137.0

2026-08-19
Added
  • virtual-scroll picker with fuzzy search and relative timestamps (#1189) (a0e2d8f6)

v5.136.0

2026-08-19
Added
  • auto-scroll to bottom on keypress when scrolled up (#1208) (#1208) (f8d45484)

v5.135.0

2026-08-19
Added
  • add argsFingerprint to tool_call events + dedup measurement harness (#1205) (bc5e7678)

v5.134.0

2026-08-19
Added
  • shared agent workspace v1 — publish tool + harness-injected retrieval (#1195) (8e6badd1)
Changed
  • remove dead resolveSecond variable in watchdog test (#1163) (bed80a9f)
Fixed
  • unbreak CI — remove dead variable + fix jitter-sensitive timer (#1207) (317b1891)
  • accessibility — focus-visible ring & WCAG AA contrast (#1197) (96d8eca8)
  • clear apiRoundInFlight in streamResponse finally block (#1143) (#1172) (1dd68bc8)
  • disclose cost-headline vs breakdown data-source divergence (#934) (#1151) (960cf6fe)

v5.133.0

2026-08-19
Added
  • allow read-only bash redirection to $TMPDIR (#881) (#1158) (3d403d3d)

v5.132.3

2026-08-19
Fixed
  • SSE resilience — permanent error handling, composer disable, jitter (#8,#12,#27) (#1199) (ff24db4b)

v5.132.2

2026-08-19
Fixed
  • use authoritative contextLimitFor instead of stale heuristic (#1194) (768c7e2b)

v5.132.1

2026-08-19
Fixed
  • use basename for PAGER path comparison in resolvePager (#1171) (#1192) (d6fc6f9f)

v5.132.0

2026-08-18
Added
  • support isolation:"worktree" with mode:"background" (#1185) (1b93bffe)

v5.131.1

2026-08-18
Changed
  • count code lines only — comments are free (#350-ceiling) (#1186) (01200d4d)
Fixed
  • carve out schedules.json from the read-denylist floor (#1187) (d5725ba5)

v5.131.0

2026-08-18
Added
  • accept inbound documents (text, code, PDF) (#1183) (151c662e)

v5.130.6

2026-08-18
Fixed
  • resolve session human names in read_witness and search_witness (#1184) (950fa781)

v5.130.5

2026-08-18
Fixed
  • bound sessionData/messageQueues growth and enforce queue depth (#1179) (358861d8)
  • await bot.start() and deduplicate signal handlers (#1177) (9a5fa6ab)
  • derive MAX_API_ROUND_INFLIGHT_MS from live TTFB config (#1182) (be65adca)

v5.130.4

2026-08-18
Fixed
  • clear apiRoundInFlight in streamResponse finally block (#1180) (fc1660b5)

v5.130.3

2026-08-18
Fixed
  • suspend footer writers during pager/editor handoffs (#1168) (9513e1f7)

v5.130.2

2026-08-18
Fixed
  • buffer setCwd/setSystemPrompt before OAuth query init (#1062) (#1176) (e615cc5f)
  • parsePortFile rejects bracketed IPv6 and out-of-range ports (#1165) (#1174) (165c16d3)
  • deduplicate plugin skills whose bare name collides with a namespaced registry key (#1169) (c5ac09bf)

v5.130.1

2026-08-18
Fixed
  • recover from ghost EADDRINUSE by falling back to alternate loopback (#1161) (7ae7b5b4)

v5.130.0

2026-08-18
Added
  • wire SessionManager through session registry (Step 3) (#1162) (91cfc1cc)
  • mark forwarded-message provenance (#686) (#1159) (3457fa43)
Changed
  • add behavioral test for apiRoundInFlight watchdog suspension (#1148) (9a23e834)
Fixed
  • reserve claimedChats in compact/clear drain paths (#1149) (46276853)

v5.129.0

2026-08-18
Added
  • add /diff slash command for inline git diff viewing (#1128) (d3ce7821)
Fixed
  • fork helpers, deliverOverflow contract, xAI OAuth tests, OIDC origin validation (#1119, #1122, #1063, #1058) (#1139) (33714849)

v5.128.6

2026-08-18
Fixed
  • reject unknown subcommands instead of falling through to interactive (#710) (#1137) (2527b2c5)

v5.128.5

2026-08-18
Fixed
  • stop killing telegram bot mid-session on upgrade (#1160) (165a0370)

v5.128.4

2026-08-18
Fixed
  • correct sessionsScanned to report post-filter count accurately (#1035) (#1136) (169486da)

v5.128.3

2026-08-18
Fixed
  • use refreshed token as fallback for locked keychain (#1135) (50ae14d3)

v5.128.2

2026-08-18
Changed
  • document deliverOverflow guard contract (#1122) (#1154) (4aec6af4)
  • add test for refresh-failure graceful degradation (#1063) (#1153) (f99ab0a2)
  • document combined watchdog ceiling (#1144) (#1155) (c73ab3bc)
  • add unit tests for extracted fork helpers (#1119) (#1152) (c0a8e7cf)
Fixed
  • report pre-filter sessionsAvailable alongside sessionsSearched (#1147) (5f521a40)

v5.128.1

2026-08-18
Fixed
  • suspend watchdog during inter-round API calls (#1135) (#1141) (7ea04673)

v5.128.0

2026-08-18
Added
  • show elapsed timer while waiting for first response token (#1132) (f7b5a826)
  • interrupt-and-steer picker on Ctrl+C + session health glance-rail (#1130) (de2b9d04)

v5.127.4

2026-08-18
Changed
  • eliminate 3-subagent dispatch overhead in pre-flight recon (#1134) (ca46b160)

v5.127.3

2026-08-17
Fixed
  • refresh expired keychain OAuth before checking (#1131) (#1133) (866df03d)

v5.127.2

2026-08-17
Fixed
  • thread topic opts into auto-subscribe watch output (#1023) (#1125) (d651192f)

v5.127.1

2026-08-17
Fixed
  • surface partial tool results on empty-buffer stream cut-off (#724) (#1126) (3370b4d1)

v5.127.0

2026-08-17
Added
  • add fix-pr, polish, false-completion-gate to bundled skills (#943) (00e466d2)
Changed
  • cache OIDC discovery response with 24h TTL (#1064) (#1124) (e309dd67)
Fixed
  • add missing SHA-256 pins for fix-pr, polish, false-completion-gate (#943) (#1127) (b74f2f32)

v5.126.1

2026-08-17
Fixed
  • resolve 5 subagent issues — DAG root bypass, manifest settlement, type narrowing, barrel export, stale docs (#1121) (04e337f9)

v5.126.0

2026-08-17
Added
  • intent-based /skills search + first-run welcome banner (#1114) (d5b04086)
  • notice channel — surface textless truncations instead of dropping them (#970) (#1115) (84415983)

v5.125.0

2026-08-17
Added
  • slash-complete anywhere, @-file subsequence, Linux image paste, Ctrl-R reverse-search (#1116) (fa23b2a2)

v5.124.1

2026-08-17
Changed
  • shrink streamResponse (#890, #1073) (#1110) (517e6d5d)

v5.124.0

2026-08-17
Added
  • status-line turn/budget indicator + parallel fan-out count (#516) (#1113) (6fb028f0)

v5.123.13

2026-08-17
Changed
  • extract concerns from forkSubagent to shrink the 496-LOC function (#1109) (a8fa87d9)
  • terminal-width discipline gate + width-resize pty scenarios (#939) (#1112) (9b836f0b)

v5.123.12

2026-08-17
Fixed
  • refresh expired OAuth token at startup before sync credential read (#1111) (91357ead)

v5.123.11

2026-08-17
Changed
  • add terminal-width discipline audit gate (#939) (#1107) (7567453a)
Fixed
  • guard against stale detectorVersion replay (#860) (#1108) (0e20b32d)

v5.123.10

2026-08-17
Changed
  • remove dead altDescription field + annotate fail-soft swallows (#503) (#1106) (ac20fd14)

v5.123.9

2026-08-17
Fixed
  • use flushCompletedRoots on dispose path to prevent blank-row gaps (#1100) (c1f4486d)

v5.123.8

2026-08-17
Changed
  • reduce nesting depth in executeBatch (#1074) (#1099) (2d95f20a)

v5.123.7

2026-08-17
Changed
  • extract stream-renderer options, process, and dispose into concern siblings (#1103) (d282998c)

v5.123.6

2026-08-17
Changed
  • Delete CLAUDE.md (4683427a)
  • Delete AGENTS.md (e4530713)
Fixed
  • batch close 5 easy issues (#1087, #1086, #1061, #1059, #1060) (#1101) (8e02736d)
  • route-key elicitation handler for topic sessions (#1021) (#1095) (51b4dc3d)
  • fix pre-existing reader bugs flagged in PR #1097 review (#1102) (54322016)

v5.123.5

2026-08-17
Changed
  • extract helpers from readWithAutocompleteTty god function (#1072) (#1097) (fb5de645)

v5.123.4

2026-08-17
Changed
  • bump @types/node from 26.1.2 to 26.2.0 in /website (#1093) (37eda588)
  • bump the fumadocs group in /website with 3 updates (#1092) (c0833329)
  • extract helpers from streamResponse god function (#1073) (#1098) (d5326e0e)

v5.123.3

2026-08-16
Changed
  • extract renderMarkdownToTerminal god function into concern siblings (#1081) (#1094) (6d1a89e3)

v5.123.2

2026-08-16
Changed
  • extract duplicated JSONL parse loop into src/utils/jsonl.ts (#1081) (f919e780)
Fixed
  • thread topic opts into auto-subscribe watch output (#1023) (e44a377c)

v5.123.1

2026-08-15
Fixed
  • track unpriced turns instead of coalescing unknown cost to zero (#866) (#1010) (3014e76f)

v5.123.0

2026-08-15
Added
  • upgrade safe-destruct and release-boundary to block+explain (#1088 consumer) (#1090) (35b3fe28)
Fixed
  • remove unused join import from backfill-facets script (#1091) (91640740)

v5.122.0

2026-08-14
Added
  • auto-derive session facets at SessionEnd + backfill script (#1089) (a6d0f332)
Changed
  • consolidate ANSI strip regex to canonical terminal-sanitize.ts (#1080) (1dac0356)

v5.121.0

2026-08-14
Added
  • extend injectContext to PreToolUse (block path) (#1088) (b423000a)

v5.120.0

2026-08-14
Added
  • add enable flag to cancel_schedule for re-enabling tasks (#1085) (bea30e69)

v5.119.3

2026-08-14
Changed
  • demote directive-class gate skills to prompt directives (Wave 4 partial) (#1084) (8792f6f5)

v5.119.2

2026-08-14
Changed
  • extract shared pricing lookup into providers/shared/pricing-utils.ts (#1078) (bac408c8)

v5.119.1

2026-08-14
Changed
  • separate MAX_SEARCH_MATCHES from MAX_LIMIT (#1037) (#1046) (2627623c)
Fixed
  • delegate marketplace plugins to updateMarketplace (#1011) (cc0b2d00)

v5.119.0

2026-08-14
Added
  • wave manifest for interrupted session recovery (#940) (#1049) (dfda3445)

v5.118.2

2026-08-14
Changed
  • extract duplicated escapeRegExp into src/utils/regexp.ts (#1066) (#1079) (5ccb9209)

v5.118.1

2026-08-14
Changed
  • extract FS error-to-tool-result helper for tool handlers (#1070) (#1077) (87d784cd)
  • clean up dead re-exports and double re-export chain (#1071) (#1076) (39b2da52)
  • extract read/write scope resolution from forkSubagent (#1075) (8f2a6b59)
  • generalize registry-grant prompt-consistency guard (#942) (#1057) (538889b4)

v5.118.0

2026-08-14
Added
  • process-wide admission control for outbound API requests (#941) (#1050) (6f473544)

v5.117.1

2026-08-14
Fixed
  • widen flaky timing threshold in dispatcher compose parallelism test (#1065) (a5b401d4)

v5.117.0

2026-08-14
Added
  • first-class xAI/Grok with API key and SuperGrok OAuth (#1019) (efd78cf7)
Changed
  • pin terminal width in quota-footer tests to fix #795 (#1056) (ac2ee6c5)

v5.116.0

2026-08-13
Added
  • add thread_id to send_telegram for topic targeting (#1053) (8f312cab)
Fixed
  • extract discoverPluginSkillsAndCommands helper (#989) (#1055) (3c2fc455)
  • add Invariant comment guarding sync block (#743) (#1054) (f0b26986)

v5.115.4

2026-08-13
Fixed
  • accept bare "max" as alias for "enabled:max" in --thinking parser (#1052) (50879d31)

v5.115.3

2026-08-13
Changed
  • split TraceWriter into write-only TraceSink and owner-only seal handle (#1051) (400f64f8)

v5.115.2

2026-08-13
Fixed
  • sanitize paths in registry warnings against terminal injection (#1029) (e73cc1a3)

v5.115.1

2026-08-13
Changed
  • golden-fingerprint test for denial reason slug stability (#853) (#1047) (9a7a603d)
Fixed
  • remove vestigial Claude Code slug from memory surveyor (#882) (#1008) (0ab11cd2)

v5.115.0

2026-08-13
Added
  • add recovery hints for iteration_cap and timeout closures (#1048) (8fbec4a2)

v5.114.1

2026-08-13
Fixed
  • add sessionsScanned compat alias and improve CLI label (#1037) (#1041) (d91ef1cf)

v5.114.0

2026-08-13
Added
  • surface truncatedSessions in search_witness results (#1036) (#1042) (0023b07b)
Changed
  • add negative assertion to no-git guard (#788) (#1026) (a9a6d3fc)
  • add unit tests for handler adapter layer (#1038) (#1039) (54e4c602)
  • pin shared allowance across alternating stall shapes (#947) (#1040) (8ea92519)

v5.113.0

2026-08-12
Added
  • add read_witness and search_witness built-in tools (#1034) (b36cc54a)

v5.112.6

2026-08-12
Fixed
  • surface rate-limit backoffs and retry sendOrEdit 429s (#1033) (1b8b124a)

v5.112.5

2026-08-12
Changed
  • compare digests instead of re-reading files on dedup (#885) (#1006) (00a7e1e8)

v5.112.4

2026-08-12
Fixed
  • correct concurrency floor figures and add light-regime budget (#1027) (0b99429c)

v5.112.3

2026-08-12
Changed
  • retire committedBandBottomRow erase-bound read in frame-preserve-archive (advances #540) (#1031) (dbfc1b5c)

v5.112.2

2026-08-12
Changed
  • split commitAbove into 7 sibling modules with invariant tests (#827) (#1032) (c3a4bade)

v5.112.1

2026-08-12
Changed
  • fix stale comments and test cleanup at skill-dispatch sites (#744) (#1030) (7f16f9ff)
Fixed
  • use routeFromCtx in /afk and /help handlers (#1022) (#1028) (2b16957b)

v5.112.0

2026-08-12
Added
  • bound the witness tree by age and aggregate size (#849) (#986) (4502e200)

v5.111.3

2026-08-12
Fixed
  • cascade-abort in-flight children before the owner seals (#733) (#987) (68b22395)

v5.111.2

2026-08-12
Changed
  • document subagent tool-round budget in AFK.md and CLAUDE.md (#918) (#1007) (7027e56b)
Fixed
  • give the resumed session a live writer instead of a sealed one (#731) (#985) (45a56a33)
  • path-guard NAME=value replacers so non-secret paths survive capture (#949) (#968) (eb7b8755)
  • suppress sealed-writer error on SessionEnd hook_decision emit (#1025) (1b4d7f9d)
  • gate plugin-shadowing notices behind AFK_DEBUG=1 (#1024) (39f8f35b)

v5.111.1

2026-08-12
Fixed
  • improve tmux compatibility — raw OSC 52 clipboard, truecolor detection, docs (#1017) (c2d6cdd2)

v5.111.0

2026-08-12
Added
  • native topics routing (step 6) + cross-surface CLI/daemon registration (step 7) (#1020) (5fdc806f)

v5.110.5

2026-08-12
Fixed
  • fail-fast context-overflow guard for max_tokens exceeding window (#1014) (72d56baa)

v5.110.4

2026-08-12
Fixed
  • clarify research-agent write constraint in tool-def listing (#944) (#1009) (efd3dc4f)

v5.110.3

2026-08-12
Fixed
  • clarify skill tool description for load vs fork modes (#1018) (44fbb5c2)

v5.110.2

2026-08-12
Changed
  • clarify advisory-only posture of 200-line function ceiling (#1016) (4e1254b0)
Fixed
  • surface research-agent read-only constraint at dispatch time (#1012) (0583e81d)

v5.110.1

2026-08-12
Fixed
  • block skill self-recursion through agent children (#1015) (e2b34c42)
  • address remaining #762 review items (M1, M4, M6, L1, listener leak) (#1013) (415d34fa)

v5.110.0

2026-08-11
Added
  • record bootstrap warnings as a durable boot_warning phase (#754) (#984) (08d254c)

v5.109.0

2026-08-11
Added
  • add a function-scoped 200-line ceiling, answering #831 (#1002) (378a575)
Fixed
  • stabilize flaky worktree-occupancy heartbeat test (#1004) (6189961)
  • name the unrecognized command instead of blaming its flag (#710) (#974) (90a144d)
  • surface a warning when a malformed agent file is discarded (#752) (#976) (b7c9f26)
  • resolve cwd at sample time so re-anchor updates git status (#877) (#973) (170f0fc)

v5.108.2

2026-08-11
Changed
  • make 350-line filesize check advisory (non-blocking) (#1003) (243e3dd)
Fixed
  • prevent ghost-text echo, stale cache across model swap (#1000) (3789159)

v5.108.1

2026-08-11
Added
  • slash-command autocomplete + highlighting in the browser composer (#966) (fc13cbf)
Fixed
  • pre-fetch changed files at reviewed ref before dispatching sub-agents (#1001) (783dbff)

v5.108.0

2026-08-10
Added
  • enforce a 350-line source-file ceiling with a ratcheted baseline (#999) (0c7d936)

v5.107.2

2026-08-10
Added
  • warn when markdown extraction retains little of the page (#997) (094dc61)
Changed
  • make DEFAULT_MODEL delegate to CLAUDE_SONNET_ID (#998) (c44eb90)

v5.107.1

2026-08-10
Fixed
  • classify a nonexistent grep path as no-such-target (#996) (e9a1e3d)
  • withhold the conclusion, not the map; budget every verifier (#995) (7fa4f9c)

v5.107.0

2026-08-10
Added
  • two-tier OBSERVE/BLOCK split in safe-destruct PreToolUse detector (#992) (a4c81fc)

v5.106.1

2026-08-10
Fixed
  • opus 4.6/4.7/4.8 serve native 1M windows and 128k output (#994) (bbd4a13)

v5.106.0

2026-08-10
Added
  • make claude-sonnet-4-6 the default sonnet model (+ correct its 1M/128k limits) (#991) (d42eb1c)

v5.105.0

2026-08-10
Added
  • load Claude Code commands/*.md as slash commands (#965) (9003f5b)

v5.104.2

2026-08-10
Fixed
  • surface first artifact-write failure per subsystem without AFK_DEBUG (#850) (#979) (a57caab)

v5.104.1

2026-08-10
Fixed
  • refuse model-supplied roots that erase the bash credential floor (#852) (#978) (bc4c0f7)
  • tell the model an invented tool does not exist, not that it lacks permission (#983) (2f503bf)

v5.104.0

2026-08-10
Added
  • add a pricing table so token usage records real cost (#865) (#981) (79303e8)
Changed
  • cover tool_call conditional spreads through both provider dispatch paths (#633) (#988) (cf797fb)

v5.103.5

2026-08-10
Changed
  • memoize getWriteDenylist keyed on AFK_HOME + AFK_STATE_DIR (#781) (#972) (023bdd1)

v5.103.4

2026-08-10
Fixed
  • rebuild the Environment block on cwd re-anchor (#876) (#980) (f4ae203)

v5.103.3

2026-08-10
Fixed
  • bound stopReason at a single chokepoint instead of 6 call sites (#717) (#977) (df150f8)

v5.103.2

2026-08-09
Fixed
  • warn once per malformed env var instead of once globally (#780) (#975) (4eafa92)

v5.103.1

2026-08-09
Changed
  • replace fixed-sleep races with vi.waitFor polls (#969) (97e6c67)
Fixed
  • surface max_tokens truncation instead of failing silently (#952) (#960) (03a9ca3)

v5.103.0

2026-08-09
Added
  • add conditional steelman critic to Wave 2 (#967) (b14b3df)

v5.102.0

2026-08-09
Added
  • positional $N arguments and fork-path substitution parity (#964) (370865e)

v5.101.1

2026-08-09
Fixed
  • harden max_tokens resolution across providers (#951, #953, #954) (#959) (dc39ca4)

v5.101.0

2026-08-09
Added
  • add afk web — local-first browser UI for live agent sessions (#932) (393010b)

v5.100.4

2026-08-09
Changed
  • bump @types/react-dom from 19.2.3 to 19.2.4 in /website (#958) (fb90013)
  • bump @types/react from 19.2.17 to 19.2.18 in /website (#957) (5cce206)
  • bump next from 16.2.12 to 16.3.0 in /website (#956) (5afad74)
Fixed
  • surface plugin shadowing notices on default runs (#963) (150367f)

v5.100.3

2026-08-09
Changed
  • bump the fumadocs group in /website with 3 updates (#955) (70d3886)
Fixed
  • wind down gracefully on the wall-clock deadline instead of aborting (#950) (391a0db)

v5.100.2

2026-08-08
Fixed
  • split severity from disposition and make medium blocking by default (#936) (70baf31)

v5.100.1

2026-08-08
Fixed
  • counted TTFB retry budget with shorter per-attempt bound (#945) (6d90dd8)

v5.100.0

2026-08-08
Added
  • capture subagent conversational output incrementally (#935) (662628e)

v5.99.0

2026-08-08
Added
  • register claude-sonnet-4-6 limits explicitly (#946) (7b96075)

v5.98.0

2026-08-08
Added
  • add session-scoped Opus Fast mode (#907) (2e3339f)

v5.97.8

2026-08-08
Fixed
  • render cost from the trace aggregate, not the sidecar (#933) (6882a06)

v5.97.7

2026-08-07
Fixed
  • bound every raw REPL write to the terminal width (#931) (d467583)

v5.97.6

2026-08-07
Fixed
  • stop generated build artifacts and symlinked dep trees from making worktrees immortal (#927) (8d9b6a0)

v5.97.5

2026-08-07
Fixed
  • tell research-agent about its registry grants, not just grant them (#928) (5e8da4f)
  • preserve abort origins across provider teardown (#929) (69d0d57)

v5.97.4

2026-08-07
Changed
  • dissolve the src/telegram.ts monolith into src/telegram/ (#825) (#930) (79d8642)

v5.97.3

2026-08-07
Fixed
  • hold composed tool-lane rows to the shared reading measure (#923) (e922483)

v5.97.2

2026-08-07
Fixed
  • name the ignored entry that preserved a tree, and stop the test that manufactured them (#926) (6b9ef12)

v5.97.1

2026-08-06
Fixed
  • grant research-agent memory_search so the ground-state surveyor can reach the archive (#925) (5f227a4)
  • normalize doubled-slash tilde before expandHome in read-denylist parser (#924) (cec3e51)
  • gate the relocated mcp.json carve-out on builtin denies (#779) (#815) (b89148c)
  • route /compact spinner through the compositor so typed input stays visible (#922) (1e485fa)

v5.97.0

2026-08-06
Added
  • flush queued messages into the running turn on Ctrl+B (#891) (ba80f40)
  • make concurrency ceilings operator-configurable (#904) (189854b)

v5.96.1

2026-08-06
Changed
  • 9 low-risk /simplify --all cleanups (dead code + dedup + one tilde-expansion bugfix) (#893) (c9374cd)

v5.96.0

2026-08-06
Added
  • show config provenance and apply hot keys live in /config (#906) (522d4ba)
  • AI-generated ghost-text suggestion at an empty prompt (#895) (a35bdaa)
Changed
  • Revert "refactor(cli): swap prompt and stage rail; goblin flanks the prompt (…" (#920) (6a8853f)
  • swap prompt and stage rail; goblin flanks the prompt (#336) (#905) (febb3a8)

v5.95.7

2026-08-05
Fixed
  • remove wrap-boundary leading spaces (#903) (3a8054a)

v5.95.6

2026-08-05
Fixed
  • bill cache-creation residual outside known TTL buckets, clamp wire-sourced counts (#915) (f09c5bc)
  • resolve dated wire ids for Opus 4.6/4.7/4.8 and Sonnet 4.6 (#914) (7a8a57d)

v5.95.5

2026-08-05
Fixed
  • dedupe cache hit-rate formula, fix cumulative-total mislabel, align field precedence (#916) (b283bfd)

v5.95.4

2026-08-05
Fixed
  • tell a forked child its tool-round budget at dispatch (#910) (99827c6)

v5.95.3

2026-08-05
Fixed
  • correct prompt-cache cost accounting and surface hit rate (#909) (c80e004)

v5.95.2

2026-08-05
Fixed
  • normalize blank optional arguments (#908) (0fea95c)

v5.95.1

2026-08-05
Fixed
  • make the pipeline's own signals honest + split improve.ts under the 350 ceiling (#901) (acba4f9)

v5.95.0

2026-08-05
Added
  • cap unbordered text at a reading measure instead of full terminal width (#899) (17cf472)

v5.94.0

2026-08-04
Added
  • add /afk-md to edit AFK.md overlays with live hot-reload (#887) (274ffc1)

v5.93.3

2026-08-04
Fixed
  • render auto-settle timeout as an error, not a green success (#902) (acfc8d4)

v5.93.2

2026-08-04
Fixed
  • resolve palette at call time so theme swaps actually reach the UI (#898) (4d09deb)

v5.93.1

2026-08-04
Changed
  • return the goblin mini-sprite to the transient left band (#336) (#900) (f0d78d6)

v5.93.0

2026-08-04
Added
  • reacting goblin mini-sprite in a constant right-aligned band (#336) (#888) (2f8bf9c)

v5.92.1

2026-08-03
Changed
  • extract shared runPreDispatchGates from execute/executeBatch (#896) (722cfcd)
  • promote TurnTrace to providers/shared (#897) (e69dc3a)

v5.92.0

2026-08-03
Added
  • rank slash-command completions by recency, not alphabetically (#892) (a57ebdb)

v5.91.1

2026-08-03
Fixed
  • resolve tier-name pins before the cross-provider Claude-family check (#879) (2a19470)

v5.91.0

2026-08-03
Added
  • add an umber theme mirroring the Umber terminal's palette (#886) (1593bbf)

v5.90.0

2026-08-03
Added
  • make inbound images nameable and forwardable to subagents (#846) (e8bcbaf)

v5.89.1

2026-08-03
Fixed
  • make read-only bash refusals actionable and state the real shell dialect (#884) (1d01353)

v5.89.0

2026-08-03
Added
  • make AFK.md's user-scope fallback additive instead of exclusive (#845) (920724d)
Changed
  • correct stale provider claims in CLAUDE.md and sync with AFK.md (#880) (321a22b)

v5.88.0

2026-08-03
Added
  • propagate path-backed image attachments (#843) (18ac9a8)

v5.87.1

2026-08-03
Fixed
  • make the Workspace line follow a mid-session cwd re-anchor (#875) (a377607)

v5.87.0

2026-08-03
Added
  • choose keep or delete when quitting a -w session (#859) (66f5220)
Fixed
  • ground-state memory surveyor calls memory_search, not a dead path (#862) (#878) (0c5ba47)

v5.86.0

2026-08-03
Added
  • make the nesting-depth cap configurable via AFK_MAX_NESTING_DEPTH (#863) (6f8e33f)

v5.85.12

2026-08-03
Fixed
  • latch the dead-zone banner flush and close #867 review gaps (#874) (03224b1)

v5.85.11

2026-08-03
Fixed
  • stop fabricating filenames from relative paths (#872) (58a1e68)

v5.85.10

2026-08-02
Changed
  • split bootstrap.ts into 9 phase modules (#823) (#873) (8f28491)

v5.85.9

2026-08-02
Fixed
  • close the case-variant bypass of the credential floor (#736) (#819) (de0f295)

v5.85.8

2026-08-02
Fixed
  • close the 1.5s–30s live-progress dead zone (#857) (#867) (399e8fa)
  • match rebuildable ignored FILES on the leaf, not the whole path (#799) (1362fab)

v5.85.7

2026-08-02
Fixed
  • re-dispatch a read-only child once when its stream is cut with zero output (#796) (542464e)

v5.85.6

2026-08-02
Changed
  • a named subagent dispatched without an explicit model now resolves to the
Fixed
  • resolve an omitted named-agent model to the policy default (#868) (99294da)

v5.85.5

2026-08-02
Fixed
  • tell a denied fork the remedy that actually works (#851) (1e885fe)

v5.85.4

2026-08-02
Fixed
  • make the pipeline's own instruments tell the truth (#847) (4cb26bc)

v5.85.3

2026-08-02
Fixed
  • render round denominator in progress banner (#857) (#858) (5bc00a8)

v5.85.2

2026-08-02
Fixed
  • render a deliberate tool refusal as blocked, not failed (#75) (#848) (e3f73e1)

v5.85.1

2026-08-02
Changed
  • bump @types/node from 26.1.1 to 26.1.2 in /website (#855) (c62558c)
  • bump the fumadocs group in /website with 2 updates (#854) (9477a77)
Fixed
  • sweep every repo root known to hold managed trees (#761) (#771) (f237057)

v5.85.0

2026-08-02
Added
  • opt-in capture of parent→subagent dispatch prompts (#844) (c4b7696)

v5.84.17

2026-08-02
Fixed
  • grant confined forks read access to the agent-framework dir (#841) (fa271ee)

v5.84.16

2026-08-01
Fixed
  • make a running subagent legible instead of decorative (#840) (582b5a2)

v5.84.15

2026-08-01
Fixed
  • stop pixel art sharing rows with text so resize can't tear it (#842) (062a15a)

v5.84.14

2026-08-01
Changed
  • impact map for ADR 0002 item 2, and mark it rejected (#774) (f59e6bf)
Fixed
  • stop the TTFB bound firing on throttle backoff, and stop guessing why a stream ended (#839) (ad7c976)

v5.84.13

2026-08-01
Changed
  • extract constants + fork types from subagent.ts (#829) (#838) (4e0af66)

v5.84.12

2026-08-01
Fixed
  • reject newline/CR in rm-allowlist carve-out (#806 follow-up) (#835) (ee01384)

v5.84.11

2026-08-01
Fixed
  • alias /add-dir to /allow-dir (#837) (4e74dc6)

v5.84.10

2026-08-01
Changed
  • split scrollback logic out of terminal-compositor.types.ts (#826) (#836) (7347dae)

v5.84.9

2026-08-01
Fixed
  • gate orphaned-dir removal on age and content (#794) (#813) (27060bc)

v5.84.8

2026-08-01
Changed
  • split anthropic-direct/index.ts behind characterization tests (#824) (#833) (3bd13ea)
Fixed
  • allow curated in-workspace rm -rf in AFK autonomous mode (#579 O3) (#806) (13403f2)

v5.84.7

2026-08-01
Changed
  • extract a shared wireExecutors() factory (#822) (#834) (6ed0186)

v5.84.6

2026-08-01
Changed
  • cover openai-compatible manifest forwarding (closes #742) (#821) (4610e25)
Fixed
  • re-render the # Environment date line per turn in openai-compatible (#785) (#804) (f7665d1)

v5.84.5

2026-08-01
Changed
  • cover user-skills.ts fork path for skillDispatchName + anchor (closes #741) (#820) (3dfa4b4)
Fixed
  • refuse a tool call that keeps failing identically (#723) (#814) (7807e67)

v5.84.4

2026-08-01
Changed
  • split loop.ts into a modular loop/ subdirectory (#818) (8d11048)

v5.84.3

2026-08-01
Changed
  • run the vendored/bundled hash-pin gate on every PR (#775) (#817) (d4d5706)
Fixed
  • stop making the operator hand-recover from a usage-limit death (auto re-resolve credentials + /retry) (#811) (b017bc6)

v5.84.2

2026-08-01
Fixed
  • credit provider-paused time against the wall-clock ceiling (#797) (f6b33cf)

v5.84.1

2026-08-01
Fixed
  • fail the bundle build when a prompt read cannot be inlined (#776) (#816) (548029c)

v5.84.0

2026-08-01
Added
  • fold the fragment-goal signal class into intent-lock (#793) (c791d8e)
Changed
  • migrate hash-pin history blocks to docs/bundled-plugins.md (#790) (#809) (5ea1493)

v5.83.9

2026-07-31
Changed
  • close breadth-guard and warn-latch coverage gaps from #753 (#783) (#812) (a0be547)
Fixed
  • preserve the turn and bound a pause when mid-stream overload retries exhaust (#762) (#764) (7f5083c)
  • stop annihilating whitespace-only text deltas and fusing round-boundary prose (#810) (9db7413)

v5.83.8

2026-07-31
Changed
  • fix dangling @link and restate ~60% orphan figure (#730) (#807) (73e8577)
  • close three builtin-shadow warning coverage gaps (#746) (#808) (dcf22ba)
Fixed
  • carve ssh config + known_hosts out of read-denylist (#579 O2) (#805) (badd34a)

v5.83.7

2026-07-31
Changed
  • extract two named concerns over the 350-LOC ceiling (#782) (#801) (d7df7ea)
  • add anthropic-direct query.test.ts for subagentId threading (#634) (#803) (49b8afd)
Fixed
  • accept common truthy values for TELEGRAM_VERBOSE (#683) (#802) (29b0903)

v5.83.6

2026-07-31
Fixed
  • stop a blank environment variable from permanently shadowing the real value in afk.env — a shell profile with export OPENAI_API_KEY="" masked the key in ~/.afk/config/afk.env (dotenv's override: false skip is presence-based, not value-based), so an OpenAI-compatible-only operator was told to "set OPENAI_API_KEY" for a key they had already set, after the auth chain fell through to ~/.codex/auth.json
  • stop a blank env var from shadowing the real value in afk.env (#800) (91c80ce)

v5.83.5

2026-07-31
Fixed
  • keep the hanging indent when a list or blockquote token exceeds the wrap budget (#798) (532f78d)

v5.83.4

2026-07-31
Fixed
  • tick the status line on a 30s timer so the quota reset countdown and the stale-reading marker stay true on an idle session instead of freezing at their last event-driven paint
  • stop the turn footer promising pause-and-auto-resume when the runtime will not deliver it — the promise is now conditional on autoResumeOnUsageLimit and on the reset landing inside the retry layer's two-hour wait ceiling
  • schedule clock-derived quota repaints and condition the auto-resume promise (#791) (53c90e6)

v5.83.3

2026-07-31
Fixed
  • stop the sweep reaping live trees and discarding ignored files (#759) (#770) (16c4cd9)
  • enforce the per-node tool budget by wind-down, not by killing the node (#772) (71e6560)

v5.83.2

2026-07-31
Fixed
  • regenerate the env-registry var count so scan:env:check passes (#792) (6b6b30a)

v5.83.1

2026-07-31
Fixed
  • refresh the system-prompt date line when the local day rolls over (#784) (180882f)
  • kill the unbounded post-first-byte round with a progress-aware stall watchdog (#762) (#763) (219e0b6)

v5.83.0

2026-07-31
Added
  • warn in the turn footer once a subscription rolling window passes 80% used, with its reset countdown and the note that AFK pauses and auto-resumes at the cap
  • make the subscription-usage indicator severity-graded and time-aware (#765) (42a7a13)
Changed
  • grade the status-line usage indicator by severity — per-window tone, the binding window's reset countdown, a stale-reading marker, and drop-last priority so a critical reading survives a narrow terminal (9d2b28d)

v5.82.13

2026-07-31
Fixed
  • block SSRF egress to internal hosts in web_scrape (#575) (#750) (8a9e586)
  • preserve a failed skill fork's partial output (#767) (e7d8cad)

v5.82.12

2026-07-31
Fixed
  • stop the citation contract forcing a nested git dispatch (#726) (#777) (f94cbe7)

v5.82.11

2026-07-31
Fixed
  • clamp agent frame head rows to terminal width (#786) (03af774)

v5.82.10

2026-07-30
Fixed
  • bound grouped tool summaries to terminal width (#773) (d52dbf2)

v5.82.9

2026-07-30
Fixed
  • resolve the default create base at the calling session's anchor (#760) (#769) (b4192bd)

v5.82.8

2026-07-30
Fixed
  • follow AFK_HOME in the credential floor + reject overly broad subagent cwd/writeRoots (#753) (2675eaf)

v5.82.7

2026-07-30
Fixed
  • classify git worktree add and git clone as mutating in the read-only guard (#768) (e94e631)

v5.82.6

2026-07-30
Fixed
  • split ttfb_timeout out of the rate_limit phase (#766) (97d8e3d)

v5.82.5

2026-07-29
Fixed
  • send the extended-cache-ttl beta in api-key mode so the 1h TTL is honored (#757) (#758) (a4d973d)

v5.82.4

2026-07-29
Changed
  • pin the grow-eviction width-resize defect the #540 guards cannot see (#755) (b673c60)
Fixed
  • archive eviction paths as logical lines so scrolled-off content reflows (#540) (#756) (f21234b)

v5.82.3

2026-07-29
Fixed
  • drain bootstrap warnings after the startup screen clear (#745) (#751) (4f85988)

v5.82.2

2026-07-29
Fixed
  • latch launch failures so browser_* stops retrying a cold chromium launch (#722) (#748) (4819481)

v5.82.1

2026-07-29
Fixed
  • advertise presence for fresh sessions so Telegram AFK can discover them (#738) (575989a)
  • re-check domain policy on the URL open() lands on (#576) (#749) (57af639)
  • floor password-store and browser secret trees for reads (#735) (4c1b3d5)

v5.82.0

2026-07-29
Added
  • warn when an agent file shadows a read-only builtin (+ ADR 0002) (#739) (ce5ef4e)

v5.81.8

2026-07-28
Fixed
  • stop a skill fork from re-dispatching itself (#737) (963b85f)

v5.81.7

2026-07-28
Fixed
  • share the read denylist with the bash surface (#734) (1640f9b)

v5.81.6

2026-07-28
Fixed
  • flush logical lines to scrollback so resize reflow stops splitting words and dropping indent (#665) (71e5450)

v5.81.5

2026-07-28
Fixed
  • gate witness seal on a purpose-built fork marker, not the output cap (#725) (e3d392d)

v5.81.4

2026-07-28
Changed
  • drop no-op fill redaction, correct stale web/browser docs (#727) (6e1ee85)
Fixed
  • allow reads of ~/.afk/config/mcp.json (exact-file denylist carve-out) (#728) (b2f50c7)

v5.81.3

2026-07-28
Fixed
  • reach the chromium-missing install hint (#721) (#729) (dd39451)

v5.81.2

2026-07-27
Fixed
  • interleave ◦ progress lines into the live preview chronologically (#719) (4490337)

v5.81.1

2026-07-27
Fixed
  • route sub-agent lane and /bgsub width through getTerminalWidth (#720) (c7e5996)

v5.81.0

2026-07-27
Added
  • emit a blocked-on-human marker while an elicitation waits (#718) (ad596c8)

v5.80.2

2026-07-26
Fixed
  • thread traceWriter into phase forks so they emit lifecycle events (#696) (bb1e3e5)

v5.80.1

2026-07-26
Fixed
  • reap shipped worktrees and stop deleting branches that hold commits (#715) (5ac71b0)

v5.80.0

2026-07-26
Added
  • pid liveness + heartbeat + schema version on presence records (#716) (062079b)

v5.79.0

2026-07-26
Added
  • record stop_reason on subagent terminal rows and flag partial results (#713) (12691e4)

v5.78.2

2026-07-26
Fixed
  • emit hook_decision for silently-denied tool calls, attribute blocks to forks (#714) (2ec5df1)

v5.78.1

2026-07-26
Fixed
  • support history compaction on the openai-compatible responses wire (#653) (#700) (f9f3eb6)

v5.78.0

2026-07-26
Added
  • show subscription quota in the REPL status line (#712) (eb9a79a)

v5.77.0

2026-07-26
Added
  • add /usage command for Claude subscription quota (#711) (588d437)

v5.76.6

2026-07-26
Fixed
  • humanize live activity (#708) (916a369)

v5.76.5

2026-07-26
Changed
  • share AbortCoordinator across both provider query loops (#701) (ad8709d)

v5.76.4

2026-07-26
Changed
  • scope the advisory windows leg to push/label/dispatch instead of every PR (#709) (9bc7ee4)
Fixed
  • bound and latency-gate ◦ tool-progress lines (#702) (c30066f)

v5.76.3

2026-07-26
Changed
  • bump react-dom from 19.2.7 to 19.2.8 in /website (#706) (bdd50f6)
  • bump the fumadocs group across 1 directory with 2 updates (#704) (e29ee44)
  • bump react from 19.2.7 to 19.2.8 in /website (#705) (d953088)
  • bump next from 16.2.10 to 16.2.12 in /website (#707) (70d128b)
Fixed
  • colorize aliased slash commands (e.g. /quit) as brand, not dim (#698) (ca5cd51)

v5.76.2

2026-07-25
Changed
  • pin Opus 5 effort/thinking/pricing behavior and correct stale opus comments (#699) (e71fbce)
Fixed
  • coerce Claude-family child models onto the parent model under openai-compatible routing (#652) (#693) (62df42c)

v5.76.1

2026-07-24
Fixed
  • anchor git verbs to subcommand position + wrapper/indirection handling (#577) (#697) (b9973e7)

v5.76.0

2026-07-24
Added
  • record resolved agent_type distinctly from the render label (#695) (4b0f726)
  • back the grep tool with bundled ripgrep for cross-platform support (#690) (3472496)
  • add Claude Opus 5 as the opus/large default (#694) (43097ce)

v5.75.3

2026-07-24
Fixed
  • make ** match zero path segments (root-level files) (#692) (944382f)

v5.75.2

2026-07-24
Fixed
  • port diagnose/shadow-verify/devils-advocate refinements from private plugins (#691) (87b6ccf)

v5.75.1

2026-07-24
Changed
  • drop dead setOnBackground setter + fix stale doc (#682) (#689) (b69f4ec)

v5.75.0

2026-07-24
Added
  • openai-compatible ESC-halt parity + interrupt-halt trace event (#677) (7055df6)
Changed
  • Delete Star History section from README (bdae56b)

v5.74.0

2026-07-24
Added
  • harden handoff against mid-stream truncation (#678) (c60dec0)

v5.73.0

2026-07-24
Added
  • inject reply & quote context into inbound messages (#688) (50606c0)

v5.72.0

2026-07-24
Added
  • attribute inbound group messages with the sender (#685) (67fb8b5)

v5.71.1

2026-07-23
Changed
  • /simplify wins for the terminal-compositor pair (#682) (#684) (afd3eda)
Fixed
  • ESC interrupt halts promptly and never strands the next turn (#676) (e108475)

v5.71.0

2026-07-23
Added
  • per-target chat selection for send_telegram + scheduled tasks (#681) (0d0a50e)

v5.70.0

2026-07-23
Added
  • per-chat tag-only response policy (#680) (f0f52d9)

v5.69.0

2026-07-23
Added
  • non-convergence stop criterion in sub-agent contract (#679) (2daf898)

v5.68.0

2026-07-23
Added
  • progress-aware idle watchdog for forked turns (#672) (74543b6)

v5.67.0

2026-07-23
Added
  • self-reported convergence/stop criterion for general-purpose (#675) (cc68e72)

v5.66.0

2026-07-23
Added
  • bound general-purpose subagent with a generous tool-use ceiling (#673) (5e2974e)

v5.65.0

2026-07-22
Added
  • show stopping state + queued count on ESC soft-stop (#646) (6fda98f)

v5.64.0

2026-07-22
Added
  • add a light theme for the TUI (theme: dark|light|auto) (#643) (d9b42a9)

v5.63.1

2026-07-22
Fixed
  • seal witness trace only from the top-level session (#666) (b98f911)

v5.63.0

2026-07-22
Added
  • edit a previous message — /rewind + double-Esc conversation rewind (#668) (d80601b)

v5.62.0

2026-07-22
Added
  • tool-result microcompaction to reclaim context on short-but-full sessions (#671) (9b7b3ec)
Fixed
  • count commits vs main HEAD when meta has no baseSha (#670) (97b3619)

v5.61.0

2026-07-22
Added
  • stamp a provenance header on cross-model subagent results (#656) (71b8601)
  • notify the model when its provider is swapped mid-session (#655) (39a9ef7)
  • token-aware keep-window so /compact works on short-but-full sessions (#667) (c5b6354)

v5.60.0

2026-07-21
Added
  • additive readRoots param on the agent (subagent-dispatch) tool: grant a forked child READ access to absolute paths outside its repo/worktree (e.g. ~/Downloads, a scratch dir), composed WITH (never replacing) its inherited read scope — writes stay confined, grandchildren must be re-granted. Hardened at parse time (rejects filesystem roots, the home dir / its ancestors, and read-denylisted credential paths — evaluated on symlink-resolved targets, so a symlink to a broad dir can't slip past the lexical check) and, unlike writeRoots, permitted alongside isolation:"worktree". Flows through the distinct AgentConfig.extraReadRoots field so the afk farm read-scope pin is untouched. (#662)
  • add additive readRoots param to the agent tool (#662) (#664) (aa327ab)

v5.59.3

2026-07-21
Fixed
  • bound web_scrape + tool output to prevent subagent context overflow (#663) (4556645)

v5.59.2

2026-07-19
Fixed
  • eliminate scheduler.test.ts cron-timer leak causing flaky duplicate mcp_connect_done (#657) (#659) (0639378)

v5.59.1

2026-07-19
Changed
  • bump the fumadocs group in /website with 3 updates (#658) (b6e99dc)
  • single-pass line nav + memoized input colorization (#649) (10787a8)

v5.59.0

2026-07-19
Added
  • /editor handoff to $EDITOR seeded with input buffer + Ctrl+O chord (#651) (3a89afd)
Changed
  • async at-file autocomplete scan with per-dir cache + stale guard (#648) (bd99a34)

v5.58.1

2026-07-18
Changed
  • coalesce same-tick keystroke repaints with sync flush (#645) (d15db56)

v5.58.0

2026-07-18
Added
  • terminal title (OSC 2) + opt-in completion notification (OSC 9) (#647) (3d1d451)

v5.57.0

2026-07-18
Added
  • /search over session turns with jump-to-last-error (#650) (145dc22)

v5.56.4

2026-07-18
Fixed
  • coalesce post-ESC type-ahead across the teardown boundary (kill lone-"." input lag) (#644) (607c052)

v5.56.3

2026-07-17
Fixed
  • reserve cyan for user identity (dropdown selection + inline code) (#642) (34dc3e2)

v5.56.2

2026-07-17
Changed
  • add "Build with the SDK" guide for the programmatic library surface (#640) (02e44f1)
Fixed
  • make the REPL status line legible — visible context bar, brand caret, tiered tones (#641) (5f404ae)

v5.56.1

2026-07-17
Fixed
  • resolve stale plugin-namespaced contract ref in research-agent prompt (#639) (430bc98)

v5.56.0

2026-07-17
Added
  • surface OAuth usage-limit pause/resume as witness trace phases (#638) (f6a7965)

v5.55.1

2026-07-17
Changed
  • route CLI/TUI styling through the semantic palette + guard against drift (#637) (12bcf9c)

v5.55.0

2026-07-16
Added
  • feed redacted session context to Tier-2 ghost-text suggester (#636) (c66e724)

v5.54.3

2026-07-16
Fixed
  • surface stream-incomplete as an error, not a silent truncated turn (#635) (efe7ed0)

v5.54.2

2026-07-16
Changed
  • extract shared tool_call payload builders (#631) (edc8734)

v5.54.1

2026-07-16
Fixed
  • reserve claimedChats in processOne to close drain-path TOCTOU (#603) (#630) (23aa604)

v5.54.0

2026-07-16
Added
  • tag forked-child tool_call events with subagentId (#612) (#629) (972b109)

v5.53.0

2026-07-16
Added
  • welcome-banner polish — v14 goblin, tagline, reacting spinner (#239) (b8815b8)
Changed
  • Delete docs/telegram-bug-investigation.md (1fb2aa6)

v5.52.1

2026-07-16
Fixed
  • hard-fail phases on incomplete subagent result (capped / stream_incomplete) (#627) (8ac9b40)
  • failed cleanFinal delivery no longer re-sends a contradictory overflow tail (#623) (#626) (e2bd0bd)
  • resolve zero-output stream-incomplete run as failed, not succeeded (#628) (99952ee)

v5.52.0

2026-07-16
Added
  • deliver SessionStart injectContext to the first turn (#618) (d0dbdc4)
Changed
  • remove inert model: frontmatter from vendored agent prompts (#625) (a34216f)
  • switch star history to sealed-token chart embed (3164563)
  • add placeholder demo image above the fold (#624) (172253d)
  • real-PTY width-resize harness + RED axis-2 fragmentation guards (#540, #541) (#621) (c64b69f)

v5.51.2

2026-07-15
Changed
  • docs/skills: scope test commands in fix briefs + templates (avoid pnpm test -- footgun) (#611) (#617) (137ce5e)
  • terminal-state gate integration + /clear-budget scope doc + firing observability (#565) (#616) (8eb0396)
  • cover disconnectAll swallow + telegram/daemon construction-throw teardown (#247) (#615) (c9450af)
  • e2e read_file/glob/grep + write-confinement through live child dispatcher (#440) (#614) (8ed1053)
  • add unit tests for closure-emitter and ledger-lifecycle (#526) (#613) (a16e515)
  • tolerate npm's retired audit endpoint (HTTP 410) in audit:deps gate (#619) (afb51a9)
Fixed
  • stop long replies being silently truncated mid-sentence (#620) (920bd6f)

v5.51.1

2026-07-14
Changed
  • AFK mode: let an away operator actually go AFK (elicitation fixes + Telegram-native host v1) (#608) (cdff313)
Fixed
  • env-configurable timeout + raise default to 45m; observable forked children (#610) (33bb4bf)

v5.51.0

2026-07-14
Added
  • discover and run Claude Code plugin hooks.json (#70) (#607) (930a5c2)

v5.50.0

2026-07-14
Added
  • opt-in "Done" verification — downgrade unbacked daemon completion pushes (daemon.verifyDone) (#609) (e8a5ea5)

v5.49.2

2026-07-14
Fixed
  • make --plain / AFK_PLAIN_OUTPUT a full render opt-out on TTY (#606) (b1347d2)

v5.49.1

2026-07-14
Changed
  • place # Agent AFK doctrine before memory and skills in assembled prompt (#605) (6def730)

v5.49.0

2026-07-14
Added
  • opt-in bounded session primer (AFK_COMPANION_PRIMER) (#590) (a708ef4)
Fixed
  • replay saved transcript on /sessions switch (thread resumeHistory + sessionId) (#604) (b8673b7)

v5.48.1

2026-07-14
Changed
  • BREAKING: AFK_ALLOW_PROJECT_MCP default flipped from opt-out to opt-in. Previously <cwd>/.mcp.json auto-loaded unless set to 0; it now loads only when the variable is explicitly truthy. Users who relied on auto-loading must set AFK_ALLOW_PROJECT_MCP=1. (#571)
  • gate project-local .mcp.json spawn behind opt-in consent (#571) (#600) (bab9887)
  • cover teardown error paths — spawn-failure disconnect, telegram catch, fromConfig throw (#247) (#591) (2accc48)
Fixed
  • run agent turn detached so mid-turn elicitations don't deadlock the poller (#602) (8146958)
Security
  • project-local .mcp.json is now opt-in (fail-closed): its MCP servers are no longer auto-spawned on any surface unless AFK_ALLOW_PROJECT_MCP is truthy (1/true/yes/on); when present but not opted in, the skipped server names + commands are listed in a startup warning with the opt-in instruction. A .mcp.json whose real path escapes the working directory (symlink / ..) is refused outright. (#571)

v5.48.0

2026-07-14
Added
  • local usage-analytics report (afk insights) (#353) (ff78f72)

v5.47.0

2026-07-14
Added
  • add opt-in plain/append-only output mode (AFK_PLAIN_OUTPUT) (#593) (ce0480a)
Changed
  • sync model-slots & providers pages with #548 (#601) (2b19808)

v5.46.2

2026-07-14
Fixed
  • classify fork wall-clock timeout as failed, not cancelled, so bg timeouts reach the parent (#465 follow-up) (#596) (61e685e)

v5.46.1

2026-07-14
Fixed
  • bound read-only research agents + degrade empty no-terminal run to a marked partial (#597) (a39b1ff)

v5.46.0

2026-07-14
Added
  • proactive escalating context-window warnings (#594) (291b73f)

v5.45.0

2026-07-14
Added
  • auth-aware model availability labeling (Phase 2; follows #548, now merged) (#588) (2c4a723)

v5.44.0

2026-07-14
Added
  • surface provider rate-limit/backoff live in the progress banner (#595) (08b47a7)

v5.43.1

2026-07-14
Fixed
  • elicitation URL-mode cancel guard + swallowed errors + UX cleanup (#502) (#589) (3aca90a)

v5.43.0

2026-07-14
Added
  • fail-fast denial circuit breaker for forked read-denial spins (#546) (#592) (d2cff2f)

v5.42.1

2026-07-13
Changed
  • lazy-load jsdom to cut ~35% off CLI cold-start (#587) (0e9198e)

v5.42.0

2026-07-13
Added
  • OSC 52 clipboard fallback for SSH+tmux (closes #563) (#582) (f9f84d9)

v5.41.0

2026-07-13
Added
  • first-class per-slot chatgpt-oauth provider (#548) (d3cbf51)
Changed
  • document Stop shell-hook additionalContext reaching the next-turn prompt (#585) (12cc0f3)
  • cover first-turn image-echo in BOTH headless + real-PTY harness (#509) (#509) (7d2d77e)

v5.40.0

2026-07-13
Added
  • bound time-to-first-byte with a configurable per-request timeout (#583) (#584) (a9d3640)

v5.39.0

2026-07-13
Added
  • multi-session support — session-registry foundation + /sessions switcher (#562) (da1cd03)

v5.38.7

2026-07-13
Fixed
  • fail closed on unknown parent provider in fork credential fallback (#438) (#580) (69b0a8b)

v5.38.6

2026-07-13
Fixed
  • stop over-blocking recon that quotes a git/gh/curl verb (#574) (66a7cf7)

v5.38.5

2026-07-13
Fixed
  • resolve parallelize-dispatch subagent credential per child model (#444) (#569) (e556426)

v5.38.4

2026-07-13
Changed
  • retire committedBandTopRow erase-loop reads in frame-preserve (advances #540) (#573) (9f7985c)

v5.38.3

2026-07-13
Changed
  • extract buildSkillForkManager to de-dup the two per-call fork managers (follow-up to #469) (#572) (bf1b26e)

v5.38.2

2026-07-13
Changed
  • add note on using /service-setup for daemon persistence (#567) (3f09eec)
Fixed
  • thread surface into skill-fork managers so forked skills get correct trace origin (#469) (#568) (0eed46b)

v5.38.1

2026-07-13
Fixed
  • render-not-repin — erase committed band from the anchor floor (Stage 2 core, #540) (#552) (8112051)

v5.38.0

2026-07-13
Added
  • main-session Stop injectContext + terminal-state gate (#237) (#557) (adb5c1f)

v5.37.7

2026-07-13
Changed
  • extract computeContainment SSOT for resolveAndContain + wouldBeRestricted (#561) (1d13445)

v5.37.6

2026-07-13
Fixed
  • stop redacting git object names (SHAs) as opaque secrets (#549) (58e506f)

v5.37.5

2026-07-13
Changed
  • lock in injectContext throw-path keep-drop decision (#392) (#550) (225b893)
Fixed
  • propagate parent read scope to skill/inline/compose forks (#547) (#556) (60f2254)

v5.37.4

2026-07-13
Changed
  • remove redundant /save slash command (#559) (d005cec)

v5.37.3

2026-07-13
Added
  • C4 bash handler now runs a best-effort, advisory-only readRoots/writeRoots path-containment scan before spawning: absolute and home-relative path tokens are extracted from the command and checked against the session's write roots, emitting a one-time [security] warning + tool.bash_path_escape telemetry (counts only, no command string) when one escapes — but never blocking execution (warn-only, to preserve the top-level afk -w bypass workflow). Rationale, threat model, and residual gaps documented in docs/decisions/0001-bash-tool-path-containment.md. Full execFile/sandbox containment remains deferred (tracked C4). (#354)
Changed
  • best-effort readRoots/writeRoots path scan + ADR (closes #354) (#558) (256ccd7)
  • real-PTY scrollback harness for the compositor (#541) (#553) (11fb1eb)
Fixed
  • honor unconfined resolveBase in the hook + add read-denylist floor (#560) (f62a960)

v5.37.2

2026-07-13
Fixed
  • grant ~/.afk/state to confined forks; harden worktree main-root fallback (#554) (5b63f2b)

v5.37.1

2026-07-13
Fixed
  • don't cache config past a parse failure; gate importFrom via user-global allowlist (#501) (#551) (a678b81)

v5.37.0

2026-07-13
Added
  • detect forked sub-agent read auto-denials (f10df60)
  • badge NESTING roots in committed scrollback (#532) (0c69100)
Changed
  • Merge pull request #545 from griffinwork40/fix/subagent-read-denial-detector (e6b333d)
  • Merge pull request #543 from griffinwork40/feat/scrollback-nesting-root-batch-badge (c5b8a0a)
  • dim NESTING-root closer base in composer, not render site (0ea46e0)

v5.36.2

2026-07-13
Fixed
  • eliminate end-of-turn report/table void on overlay collapse (#539) (4898a2c)

v5.36.1

2026-07-13
Fixed
  • restrict read-only depth-cap forks to declared tools + honor plugin model: (#499) (#542) (2f7dc7e)

v5.36.0

2026-07-13
Added
  • Linux systemd --user support behind a platform-neutral ServiceManager (#515) (25bd80c)

v5.35.3

2026-07-12
Fixed
  • inherit parent read scope for forked sub-agents (#544) (94298d7)

v5.35.2

2026-07-12
Fixed
  • restore worktree cwd when resuming or forking a session (#535) (a1ea133)

v5.35.1

2026-07-12
Fixed
  • stop redacting long filesystem paths as opaque secrets (#533) (57cb592)

v5.35.0

2026-07-12
Added
  • openai-compatible: honor server retry-after / retry-after-ms on 429/503 backoff instead of blind exponential (parity with anthropic-direct) (#536)
  • mirror source tool enabled/disabled state for imported plugins (#537) (2df91f4)
  • honor retry-after on 429/503 backoff (#536) (#538) (e4e3bf2)

v5.34.0

2026-07-12
Added
  • app-like TUI — /config settings menu + /model & /resume pickers (#506) (7cf6c0b)

v5.33.2

2026-07-12
Fixed
  • guard NaN config + non-string systemPrompt + unmask registry-skill errors (#534) (edfcd64)

v5.33.1

2026-07-12
Fixed
  • resolve path-approval grants per executing session (#435/#514) (#527) (01632cd)

v5.33.0

2026-07-12
Added
  • observe-only release-boundary PreToolUse detector (gate-migration wave 1 slice 2) (#524) (7f5a4fc)
  • cross-provider history compaction (#517) (d44cc30)

v5.32.0

2026-07-12
Added
  • distinguish parallel vs sequential tool dispatch with ∥i/N batch badge (#520) (f617893)

v5.31.2

2026-07-12
Fixed
  • give read/write/edit/list the factory-cwd resolve tier glob/grep have (#434) (#522) (a4be744)

v5.31.1

2026-07-12
Fixed
  • flatten multi-line bash summaries in the tool-lane label (#511) (ea3b9c0)

v5.31.0

2026-07-12
Added
  • auto-resume idle REPL when a background subagent completes (#518) (2a1d374)
Changed
  • bump @types/node from 26.1.0 to 26.1.1 in /website (#531) (7e1baef)

v5.30.6

2026-07-12
Changed
  • dedupe runIteration's two wire branches (#365) (#525) (db03f41)
  • unify system-prompt assembly into query/system-prompt.ts (#362) (#523) (5c5cf97)
  • bump the fumadocs group in /website with 3 updates (#529) (be2459b)

v5.30.5

2026-07-12
Fixed
  • classify AFK gate writes by tool cwd (port afk-workshop#836) (#512) (fd7e3ab)

v5.30.4

2026-07-12
Changed
  • extract closure-emitter, ledger-lifecycle, plan-exit-bridge (#364) (#519) (040403a)

v5.30.3

2026-07-12
Fixed
  • explicit writeRoots grant + truthful deny for forked children (#514) (360b999)

v5.30.2

2026-07-11
Fixed
  • refresh lastMeasuredFrameTop in the picker repaint path too (#513) (0c83bfa)

v5.30.1

2026-07-11
Fixed
  • label subagent tool-call tallies "N tool calls" not "N tools" (#508) (2f1c857)
  • route commitAbove on the real measured frame top, not the shrink-padded one (#505) (60a664b)

v5.30.0

2026-07-11
Added
  • seed the REPL from a launch argument (afk "prompt" / afk /review) (#510) (ae561dd)

v5.29.3

2026-07-11
Fixed
  • decouple bash/grep output kill-cap from model budget; keep head+tail (#507) (dda24b2)

v5.29.2

2026-07-11
Changed
  • Merge branch 'main' of https://github.com/griffinwork40/agent-afk (589d1b0)
  • removed stale ref to legacy import (7f147e9)
  • split terminal-compositor.test.ts monolith into topic siblings (#369) (#498) (1f89e9e)
Fixed
  • keep the update-notifier fresh instead of ≤24h stale (#504) (f9225b5)

v5.29.1

2026-07-11
Fixed
  • mirror exit_plan_mode's deferred flip onto stats.permissionMode (#495) (#497) (2710e6b)

v5.29.0

2026-07-11
Added
  • classify usage-limit 429s via anthropic-ratelimit-unified-* headers (#488) (#490) (a43dab4)

v5.28.3

2026-07-11
Changed
  • extract dispatch-batching + repeat-circuit-breaker from dispatcher.ts (#361) (#496) (045f1de)

v5.28.2

2026-07-11
Fixed
  • surface deps-not-installed note on create (#479) (21375e9)

v5.28.1

2026-07-11
Fixed
  • cap session-grants.jsonl growth with atomic size trim (#473) (5a7d3db)

v5.28.0

2026-07-11
Added
  • observe-only safe-destruct PreToolUse detector (gate-migration wave 1) (#492) (a442571)

v5.27.2

2026-07-11
Changed
  • split config.ts into tier modules (#368) — checkpoint (#493) (db9e42c)

v5.27.1

2026-07-10
Changed
  • consolidate 3 grant-manager copies into shared module (#361, #362 prep) (#489) (e2b745c)
  • split skill-executor.ts into per-strategy modules (#363) (#491) (2a24d2f)

v5.27.0

2026-07-10
Added
  • first-class isolation:"worktree" for the agent tool (#487) (7941226)

v5.26.5

2026-07-10
Fixed
  • route long/absent-retry-after 429s back to the usage-limit pause path (#483) (34a09c5)

v5.26.4

2026-07-10
Changed
  • split elicitation-repl.ts into mode modules (#367) (#484) (c3e39d6)

v5.26.3

2026-07-10
Changed
  • split plugin-skills.ts into flags/listing/reload modules (#366) (#486) (cd37ef1)
  • split loop.test.ts into sibling suites (#370) (#485) (708c4ff)

v5.26.2

2026-07-10
Added
  • ask-question PreToolUse gate + orphan root-settings warning (#477) (362d05b)
Changed
  • retire vendored TS orchestrator for bundled SKILL.md (#480) (88a77db)
  • mark AFK_MAX_TOKENS / maxTokens as deprecated and inert (#482) (f37b0a9)

v5.26.1

2026-07-10
Changed
  • cover in-turn SubagentStop injectContext append (#391) (#481) (73e8644)
  • extract appendInjectContext helper (#393) (#478) (b0cbbed)

v5.26.0

2026-07-10
Added
  • GPT-5.6 model family support for the openai-compatible provider (reachable via
  • add GPT-5.6 family support to openai-compatible provider (#474) (068d910)

v5.25.11

2026-07-10
Fixed
  • Telegram: don't guillotine long agent turns at 90s — disable Telegraf's default handlerTimeout so the purpose-built streaming.ts inactivity watchdog is the sole timeout authority; fixes the spurious "❌ An unexpected error occurred. Please try again." shown while a turn (sub-agents, web_scrape, long tool calls) was still running and would complete
  • make witness traces correlatable to sessions via ledger meta (#476) (4a7833f)
  • disable Telegraf 90s handlerTimeout so long turns aren't guillotined (#475) (1e80771)

v5.25.10

2026-07-09
Fixed
  • space out ⚡ glyph and bp tag in bypass prompt caret (#472) (32ea78d)

v5.25.9

2026-07-09
Fixed
  • #441 robustness cluster — grep cwd-error enrichment, subagent cache invalidation, worktree-root debug log (#471) (fe19cb5)

v5.25.8

2026-07-08
Changed
  • generalize o-series predicate to reasoning-model contract (#463) (fad5e64)

v5.25.7

2026-07-08
Changed
  • negative coverage for flag-like/path-traversal base refs (#398) (#458) (badf06f)
Fixed
  • surface capped/truncated partials to the parent instead of silent success (#461) (9cfddd0)

v5.25.6

2026-07-08
Fixed
  • Witness-trace origin attribution for forked subagents: agent-tool and compose child (and grandchild) sessions were made trace-visible in #466 but recorded origin: "unknown" instead of the owning surface, because the session surface was never threaded into the fork managers (only traceWriter/cwd were). The REPL/chat/Telegram/daemon root managers, the nested depth-2+ child manager, and the compose executor's manager now carry the surface, so forked children inherit the correct origin (cli/telegram/daemon) via forkSubagent's parentSurface fill — mirroring the existing farm.ts pattern. Follow-up to Codex review on #466. (Skill-forked subagents share the same latent gap and are tracked separately.)
  • thread session surface into fork managers so forked subagents get correct trace origin (#468) (b86fdb5)

v5.25.5

2026-07-08
Fixed
  • fix wrap overflow + bound and label the diagnose verifier fan-out (#470) (227a99e)

v5.25.4

2026-07-08
Fixed
  • Messages typed during the ESC soft-stop settle window now merge into one next turn instead of last-wins replacement. The #403 coalescing kept only the latest post-ESC message, so a real instruction followed by a "." liveness poke silently dropped the instruction — the "it didn't send" report, round 2. All post-ESC messages now join (newline-separated, attachments concatenated) and run as exactly one next turn; the no-backlog invariant and the pre-ESC queue-preservation contract are unchanged.
  • merge post-ESC type-ahead instead of last-wins so soft-stop never drops a typed message (#467) (064ea20)

v5.25.3

2026-07-07
Fixed
  • tolerate indented fences in isInOpenCodeFence parity check (#464) (ec31016)

v5.25.2

2026-07-07
Fixed
  • agent-tool and compose subagents are now visible in the witness trace (afk trace show). Three gaps closed: (1) forkSubagent resolves the trace writer as per-fork config → manager-level writer, so the subagent_lifecycle started/succeeded/failed/cancelled events and the handle's writer no longer silently drop when inheritance came from the manager; (2) the REPL/chat/Telegram root managers and compose executors now carry the session trace writer; (3) the writer chains through nested child managers (depth ≥ 2 agent forks), mirroring the existing cwd chain. Previously a raw agent dispatch produced zero trace events between tool_call started and completed — a stuck child was indistinguishable from a never-started one.
  • make agent-tool and compose forks visible in the witness trace (#466)do (a41a7d3)

v5.25.1

2026-07-07
Changed
  • consolidate o-series detection into one predicate (#457) (db71f16)
Fixed
  • Forked subagents no longer hang their parent indefinitely: every fork now gets a bounded wall-clock budget by default — 20 min foreground (SUBAGENT_DEFAULT_TIMEOUT_MS), 60 min background (SUBAGENT_BACKGROUND_TIMEOUT_MS) — instead of the unbounded session default. On expiry the child's controller aborts (cascading to descendants) and the parent receives a legible timeout error. Explicit timeoutMs wins; 0 restores unbounded.
  • Forked subagents now fail fast on OAuth usage-limit pauses (autoResumeOnUsageLimit defaults to false for forks) instead of silently polling for reset — up to 2 h — while the parent looked frozen. The classified usage-limit error surfaces to the parent, which decides whether to retry, reroute, or surface the pause. Callers may opt a child back in with an explicit autoResumeOnUsageLimit: true.
  • bound fork wall-clock budget + fail fast on usage-limit pauses (#465) (1516e65)
  • preserve empty-fence label when the safety net strips emphasis (#456) (64ddd04)
  • thread openaiBaseUrl so OpenAI Telegram sessions reach the configured endpoint (#459) (e674621)

v5.25.0

2026-07-07
Added
  • New opt-in AFK_MAX_TOOL_USE_ITERATIONS env var sets a top-level tool-use-round ceiling for both providers (mirrors the maxToolUseIterations config key / max_tool_use_iterations tool param). Unset/<=0 = unlimited (the default — zero behavior change); a positive integer N winds top-level turns down gracefully after N rounds. An explicit config value wins over the env default. Subagent forks are unaffected — they keep their own 50-round anti-hang default regardless of the var. Restores an operator brake for runaway top-level tool loops without reintroducing a default cap or provider drift.
  • extend tool-loop cap + graceful wind-down to openai-compatible (follow-up to #448) (#454) (b0e85c7)
Changed
  • The tool-round cap (max_tool_use_iterations) and its graceful wind-down now apply uniformly to both providers. openai-compatible previously ignored the setting and hard-capped every turn at 50 rounds; it now honors maxToolUseIterations like anthropic-direct. Consequence: top-level openai-compatible sessions are now uncapped by default (aligned with anthropic-direct) — the 50-round anti-hang default still applies to subagent forks of either provider. The shared cap/wind-down policy (constants + resolveMaxToolIterations/shouldWindDown) now lives in providers/shared/tool-loop-cap.ts, so the two providers can no longer drift.
  • Add AFK Dark theme for Terax (#460) (c9bb8f4)
  • calm REPL chrome (glyph mode marker, idle rail, cwd/branch dedupe) (#447) (d1bd410)
  • extract runIteration concerns into query/ modules (#453) (a04e781)
  • extract query() concerns into query/ modules (#452) (1c16f81)
  • dedupe elicitation validators into field-validation module (#451) (a7f2457)
Fixed
  • openai-compatible now runs the same tools-stripped "wind-down" round as anthropic-direct when the tool-round cap fires (previously it fell through to a possibly-empty final message with no cap signal), and stamps tool_use_loop_capped so the closure classifier reports iteration_cap for openai-compatible turns too.
  • align getApiKey() default-model resolution with getModel() (#455) (667951e)

v5.24.0

2026-07-06
Added
  • uncap turn/tool-use budgets by default; graceful wind-down on cap (#448) (1ba29e7)
  • persist thinking-ui default via AFK_THINKING_UI + interactive.thinkingUi (#445) (7a1f403)
Changed
  • agent tool subagents are now uncapped by default and settable per dispatch: max_turns defaults to unlimited (was default 10, hard-clamped to [1,50]) — pass a positive integer to cap. Added a max_tool_use_iterations param and a matching maxToolUseIterations agent-frontmatter field (both default unlimited on the agent-tool path). Skill/compose internal forks keep the 50-round anti-hang default; openai-compatible models retain a provider-internal 50-round cap regardless.
  • fix stale budget-contract expectations + tool/memory schema mocks (cbb4c32)
  • add direct unit tests for extracted subagent/ modules (#446) (947739f)
  • extract execute() into subagent/ modules (#443) (070ded6)
Fixed
  • Hitting the tool-use iteration cap no longer ends a turn silently (which read as a hang / empty subagent result). The anthropic-direct loop now runs one final tools-stripped "wind-down" round so the model synthesizes a real answer from what it gathered, and the closure classifier maps the capped stop reason to iteration_cap instead of silently sealing it as a clean model_end_turn.
  • audit grant only on state change to stop session-grants.jsonl bloat (#449) (ed95705)
  • warn for stale-clean worktrees (#450) (3223077)
  • delete swept branches + stop reaping live-session worktrees (#371, #380) (77f6e72)
  • resolve subagent credential per child model, not ambient (#378) (#431) (7e6b90c)
  • stop glob from descending node_modules/.git; add multi-** tests (#436) (#442) (97a6b40)
  • stop shadow-verify nudge self-triggering on verifier verdict output (#355) (#433) (7d81612)
  • reject flag-like worktree base refs (#428) (fcfc830)
  • warn for stale-clean worktrees (#430) (0c61247)
  • require commits ahead for stale-clean worktrees (#429) (1987415)

v5.23.2

2026-07-05
Fixed
  • patient 429 retry-after handling + surface stopReason on SubagentResult (#427) (d535c79)

v5.23.1

2026-07-05
Fixed
  • scope the bash interpreter-eval guard to credential-adjacent payloads (#424) (8eb2622)

v5.23.0

2026-07-05
Added
  • add digest thinking-display mode (live preview + persisted reasoning) (#426) (6740847)

v5.22.0

2026-07-05
Added
  • plugin-contributed agent scope + scoped nested dispatch (#423) (249c27c)

v5.21.1

2026-07-05
Changed
  • remove /reset slash command; fix stale /clear docs (#425) (ea1950c)
Fixed
  • resolve project plugins against session cwd (#179 follow-up) (#418) (7317aa4)

v5.21.0

2026-07-05
Added
  • accept per-slot model binding objects in config_set (#409) (6c6c81f)
Changed
  • bump @types/node from 22.19.19 to 26.1.0 in /website (#422) (0f5d4e8)
  • bump next from 16.2.9 to 16.2.10 in /website (#421) (438ca42)
  • bump @types/react from 19.2.16 to 19.2.17 in /website (#420) (20e0bd7)
  • bump the fumadocs group in /website with 2 updates (#419) (fcd018d)

v5.20.8

2026-07-05
Fixed
  • grant main-repo read root to worktree subagents (#416) (205612e)
  • resolve project skills against the session cwd (#179) (#375) (4919343)

v5.20.7

2026-07-05
Fixed
  • make exit_plan_mode live-mode-gated + restore working mode across the Shift+Tab ring (#410) (99468d8)

v5.20.6

2026-07-05
Added
  • add /thinking slash command for mid-session thinking-UI toggle (#415) (49eb8c8)
Changed
  • collapse duplicated dispatch + skill-fork logic (#408) (2159df2)
  • changed several bundled skills to load mode (dfdb8d5)
  • Bump version from 1.0.0 to 1.0.1 (e8d57ee)
  • Change context from 'fork' to 'load' in SKILL.md (5d0a595)
Fixed
  • thread openaiBaseUrl into restricted provider builders so deep OpenAI subagents keep their endpoint (#413) (26cd2e1)
  • gate exit backstop on persisted seal record, not optimistic sealed flag (#171) (#402) (d6dbb5f)

v5.20.5

2026-07-05
Fixed
  • surface silent 429/503/529 backoff in trace; fix transient rate-limit 429 misclassification (#414) (5dbc55b)

v5.20.4

2026-07-05
Changed
  • isolate vitest state writes from real ~/.afk (#411) (9f6b634)
  • bound default-sonnet cost via auto-compaction budget (keep truthful 1M); split openai-compatible/query.ts (#407) (37a878d)
Fixed
  • coalesce post-ESC type-ahead so soft-stop doesn't strand input one turn behind (#403) (937772e)

v5.20.3

2026-07-04
Fixed
  • stop double-rendering finished subagents in the REPL overlay (#405) (71a6bdc)

v5.20.2

2026-07-04
Fixed
  • make SKILL.md context: authoritative; drop DEFAULT_FORK_SKILLS (#404) (023cf51)

v5.20.1

2026-07-04
Fixed
  • report a clean git tree as dirty:false, not null (#389) (78c4083)

v5.20.0

2026-07-04
Added
  • named agent definitions with agent_type dispatch on the agent tool (#384) (c9f6040)

v5.19.5

2026-07-04
Changed
  • update AFK.md with new commands and architecture details (d31cfc6)
Fixed
  • name dead-cwd spawn failures and fork-enforce bundled skills by name (#399) (1ee5d81)

v5.19.4

2026-07-04
Fixed
  • reflow committed band at paint-time width; fail-safe commits on stale resize geometry (#386) (f75d8a4)

v5.19.3

2026-07-03
Fixed
  • expand ${PLUGIN_ROOT:-fallback} idiom in load-mode substitution (#401) (a13ff98)

v5.19.2

2026-07-03
Fixed
  • bound forked-child tool-use loop to prevent parent hang (#394) (a645cab)
  • bound subagent fan-out in compose/DAG layers and runWave (#385) (52f8a7c)
  • fire SubagentStop for naturally-completing background subagents (#388) (d9832e7)

v5.19.1

2026-07-03
Fixed
  • cancel in-flight foreground subagents on soft-stop (ESC/Ctrl-C) (#400) (1e838d1)

v5.19.0

2026-07-03
Added
  • lifecycle tool + sweep fix for agent-managed worktrees (#390) (eaa561d)

v5.18.0

2026-07-03
Added
  • deliver SubagentStop injectContext in-turn via the subagent tool_result (#387) (a407d35)

v5.17.0

2026-07-03
Added
  • grounded progress banner — real activity instead of mechanism noise (#373) (f475744)

v5.16.0

2026-07-03
Added
  • collapse sequential same-tool runs into one grouped ×N row (#379) (ac9c609)
Changed
  • remove verified dead code across src/ (Tier 1 audit batch) (#382) (d7c4056)

v5.15.13

2026-07-03
Fixed
  • deliver SubagentStop injectContext with the next user message, not as its own turn (#359) (c2d5078)

v5.15.12

2026-07-03
Added
  • auto-deliver background subagent results into the next turn (#372) (0c92c7c)
Fixed
  • close AFK-mode coverage gaps + clip afk-push rawBody fallback (#200) (#357) (ad5e64a)

v5.15.11

2026-07-03
Fixed
  • close reverse-direction forkSubagent credential leak (#377) (a30cd61)

v5.15.10

2026-07-02
Fixed
  • bound foreground safe-batch tool concurrency (#376) (cb9fe2a)

v5.15.9

2026-07-02
Fixed
  • approve better-sqlite3 native build script for pnpm 10 (#383) (001b864)

v5.15.8

2026-07-02
Fixed
  • thread defaultSubagentModel through nested skill executors (#381) (35e922b)

v5.15.7

2026-07-02
Fixed
  • evict project-origin skills when cwd changes (#179) (#356) (89c358b)

v5.15.6

2026-07-02
Changed
  • add docs/mcp.md — MCP config, transports, OAuth, security (#180) (#358) (566513d)
Fixed
  • close forkSubagent cross-provider credential leak (#374) (9294525)

v5.15.5

2026-07-01
Fixed
  • keep the typing indicator alive for the whole turn (#352) (819ad6c)
  • correct stale commit geometry (#351) (002bcd1)
  • normalize canUseTool gates to AFK runtime tool names (#350) (0d1fca6)

v5.15.4

2026-07-01
Fixed
  • close abort TOCTOU so an in-flight child is killed, not orphaned (#349) (ca2d948)

v5.15.3

2026-07-01
Fixed
  • suspend stream watchdog while a foreground tool is in flight (#348) (f06fc78)

v5.15.2

2026-07-01
Fixed
  • concatenate injectContext across non-blocking handlers instead of last-wins (#345) (fffb8e1)

v5.15.1

2026-07-01
Fixed
  • close 2-segment MCP verb-gate bypass from PR #339 review (#347) (c3133ed)

v5.15.0

2026-07-01
Added
  • swap default sonnet alias to claude-sonnet-5 (#346) (da492d4)
Fixed
  • classify MCP/browser/schedule/web tools so AFK gate covers them (#198) (#339) (245aee2)

v5.14.1

2026-07-01
Changed
  • drop dormant forge/briefs plugin couplings from core (#344) (695c49d)
  • isolate vitest suite from ambient AFK_* config env (#343) (467da83)
Fixed
  • dedup repeated quarantine log noise for poison entries (#252) (#341) (28e01e5)

v5.14.0

2026-06-30
Added
  • emit mcp_connect_* trace phases on daemon surface (#248) (#338) (438b466)

v5.13.1

2026-06-30
Changed
  • real-world examples and a Bundled Skills reference page (#340) (bb3a93b)
Fixed
  • suspend input + pause stdin before /transcript pager (#342) (28db0e0)

v5.13.0

2026-06-29
Added
  • inject session-facet substrate into PluginApi (11→15) (#337) (07fbec6)

v5.12.0

2026-06-29
Added
  • inject runtime values into PluginApi for code-backed plugins (#335) (337f118)

v5.11.0

2026-06-29
Added
  • agent browser autonomy MVP (session vault, park-and-notify, retrying fetch) (#323) (ff676af)

v5.10.3

2026-06-29
Fixed
  • always allow exit_plan_mode on top-level surfaces (REPL/chat/Telegram) (#334) (14867a3)
  • make agentType required on ForkSubagentOptions; add to all callsites (#330) (f281e79)

v5.10.2

2026-06-29
Fixed
  • refill the viewport after end-of-turn collapse of an over-tall block (#332) (a0cbf3c)

v5.10.1

2026-06-29
Added
  • inject host runtime API into plugin entrypoints (fixes singleton trap) (#324) (4cd187b)
Changed
  • extract shared helpers into providers/shared (#329) (4d557aa)
Fixed
  • wire grant manager for OpenAI-compatible providers in REPL bootstrap (#316) (1648120)

v5.10.0

2026-06-29
Added
  • trace skill-forked subagent tool denials + receipt refusal tally (#333) (6cbcee6)

v5.9.1

2026-06-29
Fixed
  • stop JSON.parse error snippets leaking secrets in poison logs (#318) (0290797)

v5.9.0

2026-06-29
Added
  • emit PreCompact hook on auto-compaction (#328) (eba1ef9)
Changed
  • bring Fumadocs site up to date with code (#331) (729e986)

v5.8.1

2026-06-29
Fixed
  • honor trailing-backslash newline escape on the live TTY path (#325) (9ffc326)
  • never emit improperly-nested HTML from interleaved emphasis (#321) (b0c1233)
  • wrap schema migrations in transactions to close torn-state window (#319) (74b5c41)

v5.8.0

2026-06-29
Added
  • add list/remove/clear subcommands + document improve & farm in README (#327) (cfea104)
Changed
  • add dependency-vulnerability audit gate (#326) (6a1f1d7)

v5.7.1

2026-06-28
Fixed
  • interrupt provider turn on ANY incomplete stream exit (#320) (cd45b61)

v5.7.0

2026-06-28
Added
  • wire canUseTool into the dispatcher — Agent SDK parity Dim 8 (increment 1) (#304) (f0ee88b)

v5.6.1

2026-06-28
Fixed
  • restart launchd services + notify on stale manual bot after install (#322) (c40729a)

v5.6.0

2026-06-28
Added
  • restore pre-plan permission mode on exit (#306) (1cbf61b)
Changed
  • bump typescript from 5.9.3 to 6.0.3 in /website (#315) (758303b)
  • migrate docs site to Next.js 16 + React 19 + fumadocs 16 (#317) (56dc929)

v5.5.1

2026-06-28
Fixed
  • don't silently exit plan mode on /afk off (#311) (55864c8)

v5.5.0

2026-06-28
Added
  • load plugin entrypoints on chat/daemon/telegram surfaces (B4) (#308) (004ec25)
  • add optional baseDir to loadSkillPrompts for out-of-tree plugins (#307) (77a07d3)

v5.4.0

2026-06-28
Added
  • export framework skill/facet API for out-of-tree plugins (#305) (8905788)

v5.3.2

2026-06-28
Changed
  • cover pull-queue poison fallback + collision-retry branches (#313) (4e57cdc)
  • backfill 4 uncovered scraper/render branches (#312) (fb6c480)
  • add Dependabot coverage for website/ npm deps (#309) (f52a161)
Fixed
  • redact filename in pull-queue quarantine log lines (#310) (213d20f)

v5.3.1

2026-06-28
Fixed
  • surface most-recent tool-groups instead of burying them in overflow (#303) (93bb246)

v5.3.0

2026-06-28
Added
  • high-risk AFK gate routes approve/deny to the phone (Phase 2 v1.5) (#294) (9e94126)
Changed
  • silent-model-loop debuggability issue + recommendations (#302) (b458191)

v5.2.0

2026-06-28
Added
  • Agent SDK parity — query() entry, in-process tool(), main-turn structured output (#300) (1a1025c)
Fixed
  • width-cap the markdown message-fallback render path (#301) (92093f5)

v5.1.0

2026-06-28
Added
  • plugin JS main entrypoint run at session boot (#298) (c956398)
Fixed
  • don't default the daemon task to an unavailable skill (#299) (7bf2742)

v5.0.0

2026-06-28
Added
  • retire /bypass, add default badge, steer exit to exit_plan_mode (#286) (a38a566)

v4.46.0

2026-06-28
Added
  • model-callable exit_plan_mode tool with elicitation picker (#285) (a961ae7)

v4.45.5

2026-06-27
Fixed
  • stop the second streamed table from rendering broken (missing header/lines) (#296) (9cb4880)

v4.45.4

2026-06-27
Fixed
  • re-point backend on a same-family /model switch to a different endpoint (#297) (38975c1)

v4.45.3

2026-06-27
Added
  • add PreCompact hook event (#283) (aa25b10)
Fixed
  • subset advertised tool schema to permission allowlist (#295) (331ae7b)

v4.45.2

2026-06-27
Fixed
  • don't send Chat-Completions max_tokens on the Responses path (#293) (f6ed619)

v4.45.1

2026-06-27
Fixed
  • don't fire path-approval prompts in AFK mode (#292) (97dda5e)

v4.45.0

2026-06-26
Added
  • afk trace show now surfaces the raw provider stop_reason (stop=…) on the closure line — it was already persisted on the closure event but unrendered, so silent stops (a turn that ends with no output and no error, e.g. a content-safety refusal) were only diagnosable by reading the raw trace.jsonl
  • add PostToolUseFailure hook event (#282) (2a750fd)
  • surface raw provider stop_reason in afk trace show (#291) (dfa28c5)

v4.44.3

2026-06-26
Changed
  • Merge pull request #290 from griffinwork40/fix/surface-model-refusal-stop-reason (21710d6)
Fixed
  • surface model content-safety refusals (stop_reason "refusal") instead of ending the turn silently — fixes the "it stopped and I can't send anything else" hang when the model declines a request
  • surface model refusals instead of ending silently (ab84a62)

v4.44.2

2026-06-26
Changed
  • Merge pull request #288 from griffinwork40/fix/preserve-redacted-thinking-blocks (fb79fc8)
Fixed
  • preserve redacted_thinking blocks to prevent session wedge (40984ad)

v4.44.1

2026-06-26
Changed
  • Merge pull request #287 from griffinwork40/afk/fix-telegram-message-cutoff (5b66999)
Fixed
  • stop mid-turn cutoffs, false rate-limit errors, and tool-call spam (be939f5)

v4.44.0

2026-06-25
Added
  • add Stop as a harness hook event (ea5ba85)
Changed
  • Merge pull request #281 from griffinwork40/feat/stop-hook (d6659b8)
  • Merge origin/main into feat/stop-hook: resolve hook-event conflicts (keep UserPromptSubmit + Stop) (18c9864)
Fixed
  • sanitize Stop hook reason and bound its dispatch timeout (ea7b5eb)
  • address Stop review findings (b0c0ab6)

v4.43.0

2026-06-25
Added
  • add automate skill to awa-bundled plugin (fa80af0)
Changed
  • Merge pull request #284 from griffinwork40/afk/refactor-automate-skill-source (e6c0d3f)

v4.42.0

2026-06-25
Added
  • add UserPromptSubmit as 7th harness hook event (7b4e3b6)
Changed
  • Merge pull request #280 from griffinwork40/feat/user-prompt-submit-hook (6c30a87)
  • Update README.md by removing 'afk login' command (f552ca9)
Fixed
  • fail closed on UserPromptSubmit handler timeout in REPL loop (8bb8a8d)

v4.41.0

2026-06-24
Added
  • searchable conversation transcripts (FTS5) (e37e39b)
Changed
  • Merge pull request #277 from griffinwork40/feat/transcript-search (3127bfa)
Fixed
  • harden index DB perms; surface skipped files (a03bccb)
  • resolve PR #277 review findings (edabf6b)

v4.40.1

2026-06-24
Changed
  • Merge pull request #279 from griffinwork40/fix/input-bottom-pin-fresh-session (900b8a0)
  • Merge branch 'main' into fix/input-bottom-pin-fresh-session (5cf0ea9)
  • Merge pull request #278 from griffinwork40/afk/standardize-bypass-casing (03c3dfd)
  • Merge pull request #272 from griffinwork40/chore/launch-readiness-polish (951aaf5)
  • lowercase bypass chip + drop redundant model from REPL caret (57c4580)
  • Merge branch 'main' into chore/launch-readiness-polish (666e3d2)
  • launch-readiness polish for README + npm discoverability (e93d7d0)
Fixed
  • bottom-pin the input frame on a fresh session (54e25f5)

v4.40.0

2026-06-24
Added
  • blinking input caret (pulse on/off like a terminal cursor) (3096ee9)
Changed
  • Merge pull request #271 from griffinwork40/afk/improve-caret-styling (32d99d6)
  • coalesce off-phase caret-blink reset with the keystroke repaint (16404db)
  • thin ▏ caret + cornflower-blue palette.caret accent (74e25b7)

v4.39.2

2026-06-24
Changed
  • Merge pull request #270 from griffinwork40/fix/table-degenerate-growback (8734e4e)
  • make growOrder sort deterministic on equal-width tie-break (ef3cd9d)
Fixed
  • fill width budget in degenerate table squeeze (12cc790)

v4.39.1

2026-06-24
Changed
  • Merge pull request #269 from griffinwork40/fix/table-narrow-column-squeeze (65ce572)
Fixed
  • protect narrow table columns from ellipsis truncation (8c65fa3)

v4.39.0

2026-06-24
Added
  • surface current date in system-prompt environment block (3f600b0)
Changed
  • Merge pull request #268 from griffinwork40/afk/agent-date-awareness (6204544)

v4.38.1

2026-06-24
Changed
  • Merge pull request #267 from griffinwork40/fix/telegram-daemon-markdown-render (35fcce9)
Fixed
  • re-split rendered HTML in pushMarkdown to avoid 4096 truncation (e9f1014)
  • render markdown in daemon task notifications (0f007b4)

v4.38.0

2026-06-24
Added
  • show git branch + open PR on the REPL status line (da9c4fd)
Changed
  • Merge pull request #265 from griffinwork40/afk/git-branch-pr-status (5813da2)
Fixed
  • resolve three medium review findings (f5fd3c5)

v4.37.1

2026-06-24
Changed
  • Merge pull request #261 from griffinwork40/fix/routing-identity-completeness (9a4c3db)
  • Merge branch 'main' into fix/routing-identity-completeness (584ed06)
Fixed
  • propagate origin/actor through grandchild-skill, compose, and daemon-fallback routing rows (fe1bdce)

v4.37.0

2026-06-24
Added
  • emit browser_event from browser tool handlers (897a02f)
Changed
  • Merge pull request #262 from griffinwork40/feat/browser-event-emission (df1e42f)

v4.36.0

2026-06-24
Added
  • classification eval for tool-failure-density contract (f714332)
Changed
  • Merge pull request #266 from griffinwork40/feat/improve-eval-run-tool-failure-classification (ee55b8b)

v4.35.0

2026-06-23
Added
  • fixture-replay eval-run for closure-anomaly (b16f563)
  • emit tool_call + session_phase events from openai-compatible provider (819e688)
Changed
  • Merge pull request #260 from griffinwork40/fix/telegram-mcp-trace-writer (8862c63)
  • Merge pull request #259 from griffinwork40/fix/farm-trace-wiring (7709ae3)
  • Merge pull request #258 from griffinwork40/feat/openai-trace-events (61ae0cf)
  • Merge pull request #264 from griffinwork40/feat/improve-eval-run-closure-replay (02dc1b4)
Fixed
  • inherit traceWriter + surface into farm worker sessions (38f730f)
  • wire traceWriter + surface into farm sessions (bffe26b)
  • pass traceWriter to MCP manager in telegram sessions (ea74f7d)

v4.34.0

2026-06-23
Added
  • fixture-replay eval-run proves recorded failure fixed (cbcf73f)
Changed
  • Merge pull request #263 from griffinwork40/feat/improve-eval-run-fixture-replay (7bc4edf)

v4.33.2

2026-06-23
Changed
  • Merge pull request #256 from griffinwork40/fix/hook-decision-schema-zod44 (6d39441)
Fixed
  • accept absent hook_decision.decision key (zod 4.4 regression) (ac246d7)

v4.33.1

2026-06-23
Changed
  • Merge pull request #257 from griffinwork40/fix/tui-overflow-pending-exact-count (ee8ebd4)
  • Merge pull request #255 from griffinwork40/fix/tui-band-hold-pending-gap (8965b3b)
Fixed
  • use exact painted-row count for the band-hold pending signal (196f818)
  • commit flushed blocks atomically so band-hold doesn't gap scrollback (10e25ed)

v4.33.0

2026-06-23
Added
  • wire passive SIGNAL-block parsing into buildResultFromMessage (18be452)
Changed
  • Merge pull request #254 from griffinwork40/feat/wire-signal-block (3610ea4)

v4.32.0

2026-06-23
Added
  • add Ctrl+L, Ctrl+D, and line-relative Home/End (c2d4f36)
Changed
  • Merge pull request #231 from griffinwork40/feat/tui-repl-keybindings (b528fc0)
  • add dispatch-level coverage for Ctrl+L/Ctrl+D/Home/End keys (7463f7d)

v4.31.2

2026-06-23
Changed
  • Merge pull request #241 from sorcerai/fix/daemon-pull-queue-poison-deadlock (6d6e360)
  • Delete .claude/scheduled_tasks.lock (52fba48)
  • Delete .afk/plans/shift-tab-permission-mode-cycle.md (50f68da)
  • Delete .afk/plans/normalize-session-identity-telemetry.md (7550c43)
  • Delete .afk/plans/default-permission-mode-bypass.md (387afb3)
  • Update .gitignore to exclude local plans dir (01ccea6)
Fixed
  • redact poison-quarantine logs and harden listPending (bd272f8)
  • quarantine malformed pull-queue entries instead of silent deadlock (c1d543f)

v4.31.1

2026-06-22
Changed
  • Merge pull request #246 from griffinwork40/fix/daemon-brief-gate-ignore-subdirs (ac17a87)
Fixed
  • brief-queue gate counts only top-level .md files (eeb9cef)

v4.31.0

2026-06-22
Added
  • wire MCP servers into chat, daemon, and telegram surfaces (96b9fae)
Changed
  • Merge pull request #244 from sorcerai/fix/mcp-surface-parity (f16aa4b)
Fixed
  • daemon imported-config parity + close MemoryStore on connect failure (#244) (77e92fe)

v4.30.0

2026-06-22
Added
  • tag dispatched gate skills with is_gate (port afk-workshop#823) (57c38d3)
Changed
  • Merge pull request #243 from griffinwork40/afk-port/pr-823 (ba9acda)
  • Merge pull request #245 from griffinwork40/afk-port/pr-824 (e388965)
  • deprecate redundant skill-invocations.jsonl writer (port afk-workshop#824) (e3c563f)
Fixed
  • scope is_gate to skill.dispatched on the load path (port afk-workshop#823) (8b08141)

v4.29.1

2026-06-22
Changed
  • Merge pull request #242 from griffinwork40/fix/interrupt-mid-turn-resume (095e318)
Fixed
  • keep session alive after mid-turn interrupt (ESC) (073004c)

v4.29.0

2026-06-21
Added
  • opt-in "Done" verification for AFK Telegram pushes (#237) (9efb1c1)
Changed
  • Merge pull request #238 from griffinwork40/feat/telegram-verify-done (ef8d204)
  • resolve PR #238 review feedback (5fd2d60)

v4.28.0

2026-06-21
Added
  • warn on supersede of uncited/stale-cited codebase facts (065c3ea)
  • evidence-gate durable memory writes behind AFK_MEMORY_EVIDENCE_GATE (a942ef4)
Changed
  • Merge pull request #240 from griffinwork40/feat/memory-evidence-gate (250d38e)
  • bump parallel tests/ schema assertion to v4 (4c9403b)

v4.27.3

2026-06-21
Changed
  • Merge pull request #229 from griffinwork40/fix/tui-markdown-rendering (502b8d4)
  • Merge branch 'main' into fix/tui-markdown-rendering (5c64928)
  • Merge pull request #236 from griffinwork40/fix/mailmap-lightjunction (1fd37c0)
  • re-attribute @LIghtJUNction's PR #96 commit via .mailmap (43f93cf)
Fixed
  • resolve PR #229 review — ordered task glyphs + honest render tests (0aaa671)
  • render task-list checkboxes, width-aware rules, wide-char dropdown height (7c81a2a)

v4.27.2

2026-06-21
Changed
  • Merge pull request #235 from griffinwork40/afk/fix-usage-limit-hang (77b7b3b)
Fixed
  • terminate query generator on interrupt during usage-limit wait (c462ebd)

v4.27.1

2026-06-21
Changed
  • Merge pull request #228 from griffinwork40/fix/compose-cwd-reanchor (c46e4f3)
Fixed
  • re-anchor compose DAG nodes on cwd change (e3d57f3)

v4.27.0

2026-06-21
Added
  • surface hidden REPL features in help, hints & banner (0688398)
  • add read-only SessionEnd run receipt (611ad70)
Changed
  • Merge pull request #230 from griffinwork40/feat/tui-discoverability (f630689)
  • Merge pull request #234 from griffinwork40/feat/session-end-run-receipt (6b21e8e)

v4.26.1

2026-06-21
Changed
  • Merge pull request #232 from griffinwork40/fix/tui-context-visibility (46038c4)
  • Merge pull request #227 from griffinwork40/afk/claude-login-update (d478ae6)
  • Merge pull request #233 from griffinwork40/chore/tui-remove-dead-repl (19fbe66)
  • remove dead legacy readline REPL & unused jest devDeps (5e8edea)
  • use claude login for the OAuth flow in quickstart (6661928)
Fixed
  • timelier context-usage signal & overlay-safe overflow warning (6e759de)

v4.26.0

2026-06-21
Added
  • add cards list --regressed observability view (de0b2d4)
Changed
  • Merge pull request #226 from griffinwork40/improve/cards-regressed-view (f0c3765)

v4.25.0

2026-06-21
Added
  • Shift+Tab cycles permission modes (default → plan → bypass) (0b3e019)
Changed
  • Shift+Tab now cycles permission modes (default → plan → bypass) instead of toggling plan mode on/off; AFK (autonomous) stays on /afk and, if active, Shift+Tab exits it cleanly to default
  • Merge pull request #225 from griffinwork40/afk/20260620-194641-1e7273 (b98d443)
  • strengthen Shift+Tab permission-cycle coverage (PR #225 review) (ef8fefc)

v4.24.0

2026-06-20
Added
  • restyle bypass indicator as a "full-power" badge, not a caution (bef7ea1)
Changed
  • Merge pull request #224 from griffinwork40/afk/20260620-174826-3dd82c (3335c7d)

v4.23.2

2026-06-20
Changed
  • Merge pull request #223 from griffinwork40/fix/worktree-cwd-presence-propagation (87b3147)
Fixed
  • re-anchor executors in dispatcher.setResolveBase (openai-compatible parity) (d53b198)
  • skip worktree-prune gracefully when daemon cwd is not a git repo (9e96e80)
  • propagate setCwd to sub-agent/skill executors (re-anchor forks) (fec6a73)
  • re-write presence cwd on setCwd so live worktrees aren't reaped (95c31d7)

v4.23.1

2026-06-20
Changed
  • Merge pull request #222 from griffinwork40/afk/20260620-075608-f550fc (7aa3528)
Fixed
  • render non-empty fenced code blocks not preceded by a blank line (6de3a6e)

v4.23.0

2026-06-20
Added
  • default to bypass mode for new installs (024d808)
Changed
  • Merge pull request #220 from griffinwork40/afk/20260619-170734-66ec93 (fb41455)
  • Merge pull request #221 from griffinwork40/afk/20260619-171015-92ea08 (eba6bfe)
  • note the interpreter denylist is default-on and tunable (792d3af)
  • sync docs website with v4.9-v4.22; add permissions page (0f76702)

v4.22.0

2026-06-19
Added
  • edit queued type-ahead with ↑; stop dequeuing on Backspace (4268d7c)
  • config key + --dangerously-skip-permissions flag for bypass (445c4b9)
  • add /bypass REPL toggle + status-line BYPASS badge (dd3a893)
  • make bypassPermissions disable path containment (core) (39f7a83)
  • queue multiple type-ahead messages mid-turn (8daba12)
Changed
  • Merge pull request #215 from griffinwork40/afk/20260618-180522-9c6c46 (2cb373b)
  • Merge pull request #219 from griffinwork40/feat/bypass-grant-all (61e9add)
  • Merge main into afk/20260618-180522-9c6c46 (resolve type-ahead queue conflict) (5d4d70a)
  • correct stale bypass-by-default claims; document /bypass (bed6aa3)
Fixed
  • make the live /bypass toggle actually change enforcement (a6de8c7)
  • keep queued mirror in sync on paste + idle-submit paths (fcbf295)

v4.21.1

2026-06-19
Changed
  • Merge pull request #218 from griffinwork40/fix/subagents-non-interactive (3e4f8e8)
Fixed
  • make forked sub-agents non-interactive (96d7b3a)

v4.21.0

2026-06-19
Added
  • interactive usage-limit picker (C) (de2d3be)
  • make usage-limit pause actionable at the keyboard (A+B) (4ecc2d2)
Changed
  • Merge pull request #217 from griffinwork40/afk/20260618-163800-fba9fe (80f4e95)
Fixed
  • guard runPicker promise with .catch() to avoid unhandled REPL rejection (3d92e53)

v4.20.0

2026-06-19
Added
  • persist session origin/actor into state artifacts (Stage D) (d71a734)
  • record origin + actor on routing + skill-invocation rows (Stage B+C) (696953f)
  • record session origin + actor on witness trace (Stage A) (f5fa3a1)
Changed
  • Merge pull request #214 from griffinwork40/afk-20260618-123344-8c609e (7ff9ba5)
  • Merge remote-tracking branch 'origin/main' into afk-20260618-123344-8c609e (de10091)
  • mark Stage D done (session identity in state artifacts) (4c042c1)
  • mark Stage B+C done (origin/actor on JSONL telemetry) (5e34188)
  • session-identity normalization plan (Stage A done; B-D scoped) (abf3797)
Fixed
  • make v2→v3 actor-column migration concurrency-safe (8f1fed9)

v4.19.1

2026-06-19
Changed
  • Merge pull request #216 from griffinwork40/fix/telegram-presence-surface (03629b6)
  • Merge pull request #213 from griffinwork40/chore/mailmap-attribution (629ae9c)
  • add .mailmap to re-attribute afk-port port commit (772cf55)
Fixed
  • tag provider surface as 'telegram' for presence/watch (2162ab5)

v4.19.0

2026-06-18
Added
  • render MCP form enum/boolean fields as arrow-key selector (47546b9)
Changed
  • Merge pull request #212 from griffinwork40/afk/20260618-153242-30da7d (2cff1df)

v4.18.3

2026-06-18
Changed
  • Merge pull request #208 from griffinwork40/refactor/extract-resolve-params (2acc9a0)
  • extract pure param resolvers into resolve-params.ts (c5462c0)

v4.18.2

2026-06-18
Changed
  • Merge pull request #211 from griffinwork40/simplify/terminal-compositor-dedup (6da7b60)
  • centralize committed-band CUP+EL escape into eraseAndPaintRow (57f417e)

v4.18.1

2026-06-18
Changed
  • Merge pull request #207 from griffinwork40/refactor/split-diagnose-into-phases (421e4b5)
  • Merge pull request #210 from griffinwork40/refactor/split-tool-lane-overlay-test (0d9e6d0)
  • extract overlay-rendering cluster into its own test file (58b90e2)
  • split diagnose/index.ts into modules (e95ef57)

v4.18.0

2026-06-18
Added
  • scope /resume session list to current working directory (3ba3674)
Changed
  • Merge pull request #209 from griffinwork40/afk/20260618-123959-6040de (e5c19af)

v4.17.0

2026-06-18
Added
  • Path-access approval: typed file tools (read_file, write_file, edit_file, list_directory, glob, grep) targeting a path outside the session's granted roots now prompt for approval — once / session / persist / deny — via the REPL or Telegram elicitation surface. Persisted grants are stored in ~/.afk/config/permissions.json and replayed on future sessions
  • Bash restriction hook: hard-blocks interpreter one-liners (python -c, node -e, ruby -e, perl -e, sh -c, bash -c, lua -e, ...) and restricted-root substrings (~/.ssh, ~/.aws, ...), routing the model back to the prompt-able typed file tools
  • AFK_DISABLE_BASH_INTERPRETER_GUARD env var — lifts only the bash interpreter-eval denylist while keeping the rest of path-approval enabled
  • AFK_DISABLE_PATH_APPROVAL env var — disables the path-approval + bash-restriction hooks entirely (for headless flows that need wide-open file access)
  • AFK_FORCE_BASH_INTERPRETER_GUARD env var — opts headless surfaces back into the interpreter denylist
  • elicit user approval for restricted-path tool calls (port afk-workshop#477) (42c013f)
Changed
  • Merge pull request #202 from griffinwork40/afk-port/pr-477 (e443d01)
  • Merge remote-tracking branch 'origin/main' into afk-port/pr-477 (d3439cb)
  • Merge pull request #204 from griffinwork40/afk-port/pr-477-review (086ca4e)
Fixed
  • resolve PR #202 review findings (H1/M1/M2/L1-L4/N1-N2) (cc07c7f)

v4.16.1

2026-06-18
Changed
  • Merge pull request #205 from griffinwork40/fix/afk-surface-headless-default (0cce23f)
Fixed
  • default the 'afk' CLI surface to headless (7ef070d)

v4.16.0

2026-06-18
Added
  • remote /abort + REPL abort-watcher + presence auto-subscribe (iteration 4) (d60342b)
  • daemon renders ledger elicitations + signed write-back (iteration 3) (0cb884c)
  • wire /afk toggle to the ledger elicitation channel (iteration 2) (d408f6c)
  • REPL ledger-channel elicitation handler (iteration 1) (4ab9ca2)
  • ledger channel foundation — record kinds + per-session HMAC (552cd01)
Changed
  • Merge pull request #203 from griffinwork40/afk/20260617-201405-0b2298 (c035e93)
  • drop dead newAbortReason field, harden digestsEqual hex guard (881f7ec)
  • remote-control docs + no-second-poller invariant test (iteration 5) (004ed33)

v4.15.0

2026-06-17
Added
  • forward reasoning_effort for o-series models (#128) (#193) (467af9b)

v4.14.0

2026-06-17
Added
  • autonomous permission mode + scrubbed Telegram reporting (#197) (b3384fe)

v4.13.0

2026-06-17
Added
  • add retry/backoff for transient errors (429, 5xx) (#192) (e58b48d)

v4.12.1

2026-06-17
Fixed
  • thread max_tokens into streaming request body (issue #125) (#195) (8f6b0e3)

v4.12.0

2026-06-17
Added
  • diagnostic-goal handling + commit-gate terminal-state invariant (port afk-workshop#808) (c505a5f)
Changed
  • Merge pull request #196 from griffinwork40/afk-port/pr-808 (89c02ad)

v4.11.2

2026-06-17
Changed
  • Merge pull request #194 from griffinwork40/afk-port/pr-719-lows (fbb3b90)
  • Merge pull request #190 from griffinwork40/ci/add-docs-typecheck-build (8468e21)
  • cache npm deps in docs job (dfee8dc)
  • Merge pull request #191 from griffinwork40/fix/remove-shadow-verify-backport-gap-comment (f91ccd2)
  • remove resolved BACK-PORT GAP comment for shadow-verify (ac3f15a)
  • add docs site typecheck + build job (a9fd370)
Fixed
  • StatusLine stop() clears the pre-SIGWINCH row during the resize debounce window (port afk-workshop#719) (5888d0b)

v4.11.1

2026-06-17
Changed
  • Merge pull request #189 from griffinwork40/afk/20260617-062257-f74a5a (f59b5eb)
Fixed
  • clamp shrink-pad to anchorFloor so the slash-command dropdown can't erase the welcome banner (2367ab8)

v4.11.0

2026-06-17
Added
  • composition-boundary guard for shadow-verify and devils-advocate (f549407)
Changed
  • Merge pull request #187 from griffinwork40/feat/composition-boundary-guard (d6a80e7)
Fixed
  • resolve PR #187 review nits — Wave 3.5 routing + UNVERIFIED-* merge states (09a0dea)

v4.10.0

2026-06-17
Added
  • gate bash by mutation, not a substring denylist (2eb6d5f)
Changed
  • Merge pull request #188 from griffinwork40/afk/20260617-053220-bbd8c1 (ccbc5ac)

v4.9.1

2026-06-17
Changed
  • Merge pull request #185 from griffinwork40/fix/bundle-review-spec-compliance (16d0098)
  • Merge pull request #182 from griffinwork40/afk-port/pr-802 (194d5f6)
  • Merge pull request #183 from griffinwork40/afk/20260616-180623-db5293 (5376562)
  • fix verified accuracy gaps across website and repo docs (0e1b05a)
Fixed
  • add spec-compliance axis + thread stated intent to dimension agents (26f1a22)
  • add spec-compliance axis to design-review verify gate (port afk-workshop#802) (188396f)

v4.9.0

2026-06-17
Added
  • native AFK skill-invocation JSONL writer (port afk-workshop#804) (7699403)
Changed
  • Merge pull request #186 from griffinwork40/afk-port/pr-804 (f3f4422)

v4.8.3

2026-06-16
Changed
  • Merge pull request #184 from griffinwork40/feat/improve-exclude-elicitation-declines (6ff4553)
Fixed
  • exclude ask_question elicitation declines from tool-failure-density (bad0c6c)

v4.8.2

2026-06-16
Changed
  • Merge pull request #174 from griffinwork40/afk-port/pr-719 (4bd1dbb)
Fixed
  • address PR #174 review — bg-bar self-clears old rows on resize (bc67d4e)
  • reset StatusLine + BackgroundStatusBar geometry on SIGWINCH to stop ghost rows (port afk-workshop#719) (44351ef)

v4.8.1

2026-06-16
Changed
  • Merge pull request #177 from griffinwork40/afk-port/pr-801 (d249963)
Fixed
  • correct prerelease version compare + debounce auto-update re-trigger (port afk-workshop#801) (7ec504b)

v4.8.0

2026-06-16
Added
  • require durable, citation-backed evidence in terminal states (fdd2cea)
Changed
  • Merge pull request #176 from griffinwork40/salvage/audit-prompts-evidence (8ea3c80)

v4.7.6

2026-06-16
Changed
  • Merge pull request #172 from griffinwork40/afk-port/pr-649 (ab58aa0)
  • Merge pull request #175 from griffinwork40/afk-port/pr-454 (3350480)
  • formalize TUI invariants discipline with regression tests (port afk-workshop#454) (4d55e2d)
Fixed
  • preserve fully-pending band-hold rows on disarm before collapse (5eb9db6)
  • keep multi-line blocks visible (band-hold) when committed under a tall overlay (port afk-workshop#649) (9e6089c)

v4.7.5

2026-06-16
Changed
  • Merge pull request #173 from griffinwork40/fix/hookregistry-provider-contract (319aeff)
  • enforce SDK dependency lock via audit:sdk:check (3eb1278)
  • promote hookRegistry into the dispatcher contract (12b6907)

v4.7.4

2026-06-16
Changed
  • Merge pull request #170 from griffinwork40/afk-port/pr-706 (04dd653)
Fixed
  • enforce write-tool gate (config.hookRegistry was dropped by the dispatcher) (port afk-workshop#706) (c6892c6)

v4.7.3

2026-06-16
Changed
  • Merge pull request #168 from griffinwork40/fix/seal-unsealed-traces-on-exit (b92676e)
Fixed
  • seal orphaned witness traces on abnormal process exit (de83b72)

v4.7.2

2026-06-16
Changed
  • Merge pull request #169 from griffinwork40/fix/openai-compat-null-content-crash (572b403)
Fixed
  • stop crashing on null-content tool-call turns (non-vision) (ac0233e)

v4.7.1

2026-06-16
Changed
  • Merge pull request #167 from griffinwork40/fix/seal-provider-error-as-failed (6e371f5)
Fixed
  • seal provider-error turns as failed, not silent success (204dff1)

v4.7.0

2026-06-16
Added
  • add local capability tier (9bc1dc9)
Changed
  • Merge pull request #164 from griffinwork40/fix/strip-ask-question-noninteractive (1d8e53b)
  • Merge pull request #163 from griffinwork40/afk-port/pr-572 (10800ae)
  • Merge pull request #162 from griffinwork40/feat/local-model-slot (2c4f8cb)
Fixed
  • guard unconfigured tier selection + route per-slot baseUrl (afad68a)
  • strip ask_question on non-interactive surfaces (7dd7b91)
  • route all overlay repaints through setComposedOverlay (port afk-workshop#572) (25f340d)

v4.6.2

2026-06-15
Changed
  • Merge pull request #160 from griffinwork40/refactor/tui-compositor-host-trim (2af6bfb)
  • Merge pull request #157 from griffinwork40/afk/update-readme-memory-docs (51dee67)
  • add cross-session memory guide page (df53b12)
  • extract getBuffer/resetState/applyEdit from compositor host (92e0b7b)
  • Merge branch 'main' into afk/update-readme-memory-docs (c8680ba)
  • add a dedicated Memory section (7c82000)

v4.6.1

2026-06-15
Changed
  • Merge pull request #159 from griffinwork40/fix/compact-model-alias-resolution (6c607eb)
  • Merge pull request #158 from griffinwork40/fix/tui-markdown-block-separator (48ff55c)
Fixed
  • resolve model alias in compact summarizer (45474da)
  • restore inter-block blank separator in armed renderer (8a38d48)

v4.6.0

2026-06-15
Added
  • extend contour-shift rhythm through the mid-page sections (8d6c7f5)
Changed
  • Merge pull request #156 from griffinwork40/website/visual-signature-3 (0f8dc2f)
  • add reusable signal->depth->rise visual signature (db5cb67)
Fixed
  • remove agentafk.com link from docs sidebar nav (2126d4e)

v4.5.0

2026-06-15
Added
  • Ctrl+B backgrounds the running subagent; remove whole-turn detach (a43dad6)
Changed
  • Merge pull request #152 from griffinwork40/feat/ctrl-b-background-subagent (9217aa3)

v4.4.1

2026-06-15
Changed
  • Merge pull request #151 from griffinwork40/docs/website-favicon-and-nav-links (ccc69b0)
  • keep the matched wordmark legible in the docs light theme (d8c4b62)
  • match the docs nav brand lockup to agentafk.com (5db9a5a)
  • use main-site favicon and link out to landing page + GitHub (2e523aa)
Fixed
  • render the docs nav arc glyph via a standalone SVG file (af8c741)

v4.4.0

2026-06-15
Added
  • accept image input on vision models (#127) (0578a95)
Changed
  • Merge pull request #134 from griffinwork40/afk/accept-images-gracefully (03852e2)
  • Merge branch 'main' into afk/accept-images-gracefully (d0ef994)
  • regenerate env registry docs (3123709)

v4.3.1

2026-06-15
Changed
  • Merge pull request #150 from griffinwork40/fix/agent-config-protected-env-tier (d69c177)
Fixed
  • add protected env tier so the agent cannot self-grant via afk.env (84e7b91)

v4.3.0

2026-06-15
Added
  • surface pending briefs nudge on AFK interactive sessions (port afk-workshop#789) (487d7ff)
Changed
  • Merge pull request #149 from griffinwork40/afk-port/pr-789 (add2dc7)

v4.2.0

2026-06-15
Added
  • self-service config/env editing for the agent (06483d7)
Changed
  • Merge pull request #146 from griffinwork40/afk/agent-config-editor (f2cd787)
  • document self-service config/env editing (be051d4)
  • Merge branch 'main' into afk/agent-config-editor (e0369a8)
  • Merge branch 'main' into afk/agent-config-editor (5add8e5)
Fixed
  • route dynamic env presence-check through env.ts (78efe1a)
  • gate enableShellHooks behind human tier + harden .bak perms (02dcea1)

v4.1.1

2026-06-15
Changed
  • Merge pull request #143 from griffinwork40/afk/state-folder-transcripts (b92f8f9)
  • Merge pull request #148 from griffinwork40/docs/website-accuracy-fixes (a058f26)
  • propagate #143 (transcripts → state/, AFK_STATE_DIR governs whole tier) (5d22797)
  • fix Brave→Exa search key, document daemon --host, add /get-started (a39ef15)
  • Merge branch 'main' into afk/state-folder-transcripts (372032f)
Fixed
  • move transcripts into the state/ tier and honor AFK_STATE_DIR (8f50059)

v4.1.0

2026-06-15
Added
  • add Vercel Web Analytics (ab1ec1e)
Changed
  • Merge pull request #147 from griffinwork40/feat/website-vercel-analytics (efc66da)

v4.0.1

2026-06-15
Changed
  • Merge pull request #140 from griffinwork40/afk-port/pr-784 (ee74eb9)
  • Merge pull request #142 from griffinwork40/afk-port/pr-784-search-fix (cd076e8)
  • correct doc/runtime accuracy issues from PR 140 review (407e0b8)
  • serve docs at site root for the docs.agentafk.com subdomain (275cb3f)
  • fix Card top-spacing — remove dead gap above card titles (614d438)
  • polish — fix double headers, compact code blocks, plainer copy (2a9d1d4)
  • Merge branch 'main' into afk-port/pr-784 (d42ab54)
  • add proper light theme so the toggle switches a full light palette (port afk-workshop#784) (a3081df)
  • redirect / -> /docs so the bare domain resolves (port afk-workshop#784) (b2d58f9)
  • redesign intro — single H1, top Get-started CTA, surfaces+capabilities card grids, install code block, merged safety section (port afk-workshop#784) (f46336a)
  • Merge branch 'main' into afk-port/pr-784 (1054c7d)
  • add standalone Fumadocs documentation site (port afk-workshop#784) (909b919)
Fixed
  • gitignore next-env.d.ts (auto-generated by Next.js) (18c2942)
  • wire docs search — add /api/search route + export structuredData (39673dc)

v4.0.0

2026-06-15
Added
  • switch web_scrape search backend from Brave to Exa (882e707)
Changed
  • Merge pull request #141 from griffinwork40/switch-search-backend-brave-to-exa (9283e87)
  • point .env.example at EXA_API_KEY (5b0bcd9)

v3.112.3

2026-06-14
Changed
  • Merge pull request #139 from griffinwork40/afk/fix-subagent-model-hardcoding (52db82c)
Fixed
  • inherit default subagent model (630d6ff)

v3.112.2

2026-06-14
Changed
  • Merge pull request #138 from griffinwork40/fix/tui-markdown-block-spacing (c8c05ec)
Fixed
  • empty code-block placeholder emits one trailing newline (7435930)
  • stop double-spacing markdown blocks in REPL/chat output (61f960e)

v3.112.1

2026-06-14
Changed
  • Merge pull request #137 from griffinwork40/fix/mcp-oauth-state-param (954e570)
  • Merge pull request #136 from griffinwork40/afk-port/pr-781 (ce9cd49)
  • lead positioning with authorship; drop control-plane framing (port afk-workshop#781) (89af10c)
Fixed
  • allow late-discovered (OAuth) MCP tools past the permission gate (066b836)
  • emit OAuth state param so Mintlify-style servers connect (ee38171)

v3.112.0

2026-06-14
Added
  • add /get-started skill + harden /init detection (3ca03ae)
Changed
  • Merge pull request #133 from griffinwork40/afk/implement-get-started-skill (c3ba3c7)

v3.111.0

2026-06-14
Added
  • AFK-native SessionFacet substrate (port afk-workshop#779) (7ae9c1a)
Changed
  • Merge pull request #135 from griffinwork40/afk-port/pr-779 (a8772af)
  • Update model names in README examples (0959fd0)
  • Update description of 'haiku' agent (0d795e7)
  • Clarify description of 'afk chat' command (c0227a8)
  • Update permissions description for afk command (7fafa72)
  • Fix command alias for interactive mode in README (ff00dfc)
  • Revise README for clarity on Agent AFK features (02ffa5e)

v3.110.1

2026-06-13
Changed
  • Merge pull request #129 from griffinwork40/afk/fix-issue-104-verify (cbb7aad)
  • Merge pull request #132 from griffinwork40/afk/tackle-issue-23 (6a87c44)
  • tail-slice thinking buffer before normalize + wrap (closes #23) (ac2f57e)
  • decompose runReplLoop into phase modules (closes #104) (4c5727d)

v3.110.0

2026-06-13
Added
  • honor tools: frontmatter as enforced allowlist (port afk-workshop#571) (b1aaf8a)
Changed
  • Merge pull request #124 from griffinwork40/afk-port/pr-571 (288bd7a)
  • Merge pull request #122 from griffinwork40/afk/20260613-082858-f888c0 (30e6ddd)
  • cover extraDepth>=2 spine rendering (closes #20) (110966a)
  • Merge pull request #121 from griffinwork40/afk-port/pr-643 (2552478)
  • strengthen per-node credential resolution coverage (port afk-workshop#643) (d2f37c4)

v3.109.1

2026-06-13
Changed
  • Merge pull request #120 from griffinwork40/afk/tackle-issue-110-private (f0c7659)
  • Merge pull request #119 from griffinwork40/afk/20260612-194653-ac9eb6 (e75d067)
  • lock that subagent transitions can't drop the thinking paragraph (#110) (9de83c0)
Fixed
  • emit a single ellipsis when truncating spinner tips (d1da5c8)
  • truncate spinner tip row by display width (2b34060)
  • render user echo as a true chat bubble; label spinner tips (b430cef)

v3.109.0

2026-06-13
Added
  • surface-answerability clause + BLOCKED-artifact convention (port afk-workshop#777) (684a304)
Changed
  • Merge pull request #118 from griffinwork40/afk-port/pr-777 (9e2d768)

v3.108.0

2026-06-12
Added
  • add allow_custom for free-form entry in choice/multi_choice (6ae1f65)
Changed
  • Merge pull request #116 from griffinwork40/afk/20260612-152001-f038ae (85a5032)
Fixed
  • route multi_choice custom-entry on sentinel presence, not exclusivity (6afd36b)

v3.107.0

2026-06-12
Added
  • classify tool failures; exclude "system said no" from failure-density (4e8c6aa)
Changed
  • Merge pull request #117 from griffinwork40/feat/tool-failure-classification (71b75e0)

v3.106.0

2026-06-12
Added
  • inject measured reproducer baseline into the read-only verifier (#10) (c6e7206)
Changed
  • Merge pull request #8 from griffinwork40/fix/diagnose-verifier-honest-labeling (214e439)
  • regenerate env-registry docs after main merge (7a65799)
  • Merge remote-tracking branch 'origin/main' into fix/diagnose-verifier-honest-labeling (f33ec8b)
  • Merge branch 'main' into fix/diagnose-verifier-honest-labeling (110a6ce)
  • Merge branch 'main' into fix/diagnose-verifier-honest-labeling (cd2f482)
  • Merge branch 'main' into fix/diagnose-verifier-honest-labeling (f661252)
Fixed
  • register AFK_DIAGNOSE_BASELINE in env registry (a90c0da)
  • align verifier prompt with its read-only tool gate (841a15c)

v3.105.0

2026-06-12
Added
  • persist the user message to the transcript at submission time (da0b955)
Changed
  • Merge pull request #114 from griffinwork40/afk/i-need-more-context (f6911ad)
Fixed
  • merge the committed band across banner-eviction gaps (920b722)
  • measure first-commit geometry in the commit placement regime (c5993d5)

v3.104.6

2026-06-12
Changed
  • Merge pull request #115 from griffinwork40/refactor/parse-post-targets (8c94fb8)
  • parse chat --post value directly via parsePostTargets (f6ac2cd)

v3.104.5

2026-06-12
Changed
  • Merge pull request #112 from griffinwork40/afk/add-forced-upgrade-guard (4492f5b)
  • Merge pull request #113 from griffinwork40/afk/add-system-prompt-docs (0c18471)
  • handle confused follow-ups in Failure handling (dad10d6)
Fixed
  • force version-drift upgrade after N mid-turn deferrals (975fdcc)

v3.104.4

2026-06-12
Changed
  • Merge pull request #111 from griffinwork40/afk/diagnose-table-cutoff (08cf729)
Fixed
  • prevent table cut-off from row-count off-by-one and width overshoot (d86f2a2)

v3.104.3

2026-06-12
Changed
  • Merge pull request #107 from griffinwork40/afk/issue-102-verify-ship (065b5b8)
  • extract reusable terminal selectors (e9efc40)

v3.104.2

2026-06-12
Changed
  • Merge pull request #106 from griffinwork40/afk/telegram-msg-continuation-fix (95358c6)
Fixed
  • defer version-drift exit while a session is mid-turn (c8846cc)

v3.104.1

2026-06-12
Changed
  • Merge pull request #105 from griffinwork40/fix/daemon-loopback-bind (783a1ed)
Fixed
  • bind control HTTP surface to loopback by default (55a93d7)

v3.104.0

2026-06-12
Added
  • add --post/--post-pr headless publishing to afk chat (port afk-workshop#769) (c439b72)
Changed
  • Merge pull request #101 from griffinwork40/afk-port/pr-769 (6869a58)

v3.103.0

2026-06-12
Added
  • promote ground-state Wave 4 + ground-claim runtime-wiring mode (067b65e)
Changed
  • Merge pull request #100 from griffinwork40/feat/promote-ground-skills-to-bundle (7283f38)

v3.102.1

2026-06-12
Changed
  • Merge pull request #99 from griffinwork40/afk/fix-ghost-text-resume (034f5ca)
Fixed
  • correct soft-stop notice — "Send a message to continue" (d1c1427)

v3.102.0

2026-06-12
Added
  • per-binary cross-tool asset import from Claude Code / Codex (e875772)
Changed
  • Merge pull request #92 from griffinwork40/feat/cross-tool-import (6a53b2e)
  • Merge pull request #96 from LIghtJUNction/test-pin-empty-toolinput-breadcrumb (ccfac80)
  • pin empty tool input breadcrumb rendering (4bc3b56)
  • Merge branch 'main' into feat/cross-tool-import (24bed64)
Fixed
  • use node: specifier for readline/promises so esbuild bundles it (a619144)
  • resolve PR #92 review findings (13898a4)
  • resolve importFrom only from user-global config (security) (563cd92)
  • surface imported skill provenance in /skills listing (d3110b1)

v3.101.1

2026-06-11
Fixed
  • stop finalizeOrchestrator nuclear-flushing in-flight subagent blocks (#95) (bab6bb2)

v3.101.0

2026-06-11
Added
  • record root-session model in witness traces (#91) (e8ce193)

v3.100.1

2026-06-11
Changed
  • document subagent context injection contract (#93) (4755b92)
Fixed
  • reserve final column in echo path to fix prompt tripling (#94) (755987b)
  • web_scrape failure logging (#24) + tar create/append gating (#6) (#89) (eec4b92)

v3.100.0

2026-06-11
Added
  • inline ghost-text tab autocomplete for mid-sentence skill names (#90) (81abc62)

v3.99.1

2026-06-11
Fixed
  • ESC soft-stop cancels on first press, no post-cancel lag (#81) (6b0e586)

v3.99.0

2026-06-11
Added
  • distinctive user message display in scrollback (#88) (10eacfd)

v3.98.1

2026-06-11
Fixed
  • stop local-model subagent dispatch from hanging (#87) (2d458dc)

v3.98.0

2026-06-11
Added
  • add closure-anomaly guardrail + eval-run contract (abort subtype) (#86) (03cfc86)

v3.97.0

2026-06-11
Added
  • return browser_screenshot as a model-visible image (#82) (e9a51b0)

v3.96.1

2026-06-11
Fixed
  • stop user-card echo ghosting by reserving the terminal last column (#85) (23200c2)

v3.96.0

2026-06-11
Added
  • add eval-run, the first deterministic eval-case validation stage (#84) (86ae118)

v3.95.0

2026-06-11
Added
  • drive the user's real Chrome via chrome-devtools-mcp (afk browser connect) (#83) (ee76c5f)

v3.94.1

2026-06-11
Fixed
  • align REPL slash verbs with CLI (install / install-plugin) (port afk-workshop#701) (#79) (9899a6f)

v3.94.0

2026-06-11
Added
  • act on telemetry — loop guard, skill-depth hint, enable tool-failure-density (#80) (5255350)

v3.93.1

2026-06-11
Changed
  • split terminal-compositor + bug-hunt pass (#78) (b9d49e5)

v3.93.0

2026-06-10
Added
  • add /config and /doctor slash commands (port afk-workshop#702) (#77) (907dc5f)

v3.92.4

2026-06-10
Fixed
  • schedule live-sync no longer fails silently: create_schedule/cancel_schedule results now include daemonSynced + syncDetail (and a syncNote when the change will only apply on the next daemon start); transient afk daemon --once runs no longer overwrite-then-delete the service daemon's port-discovery file (new writePortFile option + content-guarded unlink); daemon POST /tasks accepts cronExpression as an alias for cron; creating a disabled schedule no longer live-registers it into the running daemon; afk schedule CLI subcommands (add/remove/enable/disable) now surface live-sync status via the shared http-client instead of failing silently; creating a disabled schedule now sends an idempotent DELETE to unregister any stale live daemon registration; afk schedule add --disabled now matches the tool handler (idempotent DELETE instead of an unconditional POST) so a disabled task is never live-registered into — and fired by — a running daemon; the CLI add/enable live-sync now forwards notifyOn so a (re)registered task keeps its notification setting until the daemon reloads from disk
  • stop schedule live-sync from failing silently; guard the shared port file (#76) (3c44511)

v3.92.3

2026-06-10
Fixed
  • commit content to scrollback in banner sessions — eliminates blank-gap, duplication, and lost-commit regressions when the REPL prints a banner before arming (#74) (2411b88)
  • never reap a worktree hosting a live session (#73) (6f82cb8)

v3.92.2

2026-06-10
Changed
  • Port afk-workshop#756: add fix:pins hash-pin regen + check (#69) (c38a12c)
  • shadow-verify: confidence-trigger, three-way verdict, bounded retry (#52) (e6f65b2)
Fixed
  • force-checkout managed cache to survive dirty mirror (#49) (22e8277)

v3.92.1

2026-06-09
Fixed
  • repair skill-dispatch turn rendering and accounting regressions (#68) (61d377c)

v3.92.0

2026-06-09
Added
  • OSC 8 hyperlinks on tool-lane file paths — clickable without layout change (#67) (155d415)
  • durable per-session event ledger + Telegram /watch live-tail (#66) (fb5a593)

v3.91.0

2026-06-09
Added
  • /plan off saves the plan to a file then implements it (#55) (266249d)
Changed
  • /plan off now exits plan mode, saves the plan you developed to a markdown file under <cwd>/.afk/plans/, and implements it — replacing the closure-summary ritual (which only emitted a 3-section recap to the transcript). The mode flips to default before the seeded turn so writes are permitted for the save + implementation. Shift+Tab still exits plan mode without saving or implementing (the manual-takeover escape hatch). The deferred-flip pendingPlanExit machinery is removed.

v3.90.2

2026-06-09
Added
  • telegram: configurable outbound notification routing via telegram.notify in afk.config.json (mode, primaryChatId, targets) plus AFK_TELEGRAM_NOTIFY_MODE / AFK_TELEGRAM_PRIMARY_CHAT_ID env overrides. New pure resolver src/telegram/notify-routing.ts.
  • route outbound notifications to a primary chat, not all allowed chats (#54) (e542bb2)
Changed
  • telegram: outbound notifications (daemon alerts, send_telegram, OAuth prompts, /review, digests) now default to a single primary chat — the first private/DM chat in AFK_TELEGRAM_ALLOWED_CHAT_IDS — instead of broadcasting to every allowed chat. Separates the inbound allowlist (who may command the bot) from outbound delivery. Single-chat setups are unaffected; multi-chat setups can restore fan-out with mode: "broadcast" (or AFK_TELEGRAM_NOTIFY_MODE=broadcast).
Fixed
  • strip orphaned bold markers in verdict cards; dedupe deferred row (#65) (917ac66)

v3.90.1

2026-06-09
Fixed
  • route subagent overlay refreshes through OverlayComposer (#63) (baf325d)

v3.90.0

2026-06-09
Added
  • add Claude Fable 5 (claude-fable-5) (#64) (cdbc3f1)
Changed
  • extract compositor frame composition to frame.ts (#61) (9f5c54e)
  • awa-bundled/shadow-verify: skip adversarial re-derivation on text-terminal sessions (#57) (fad6885)
Fixed
  • recompute git workspace state per read instead of freezing at session start (#62) (05b5174)

v3.89.11

2026-06-09
Fixed
  • surface the skill name in the tool lane (#59) (a8728f1)

v3.89.10

2026-06-09
Fixed
  • emit honest closure reasons (truncated, hook_blocked, max_turns_exceeded) (#60) (19206fe)

v3.89.9

2026-06-09
Fixed
  • clamp max_tokens to model ceiling and guard thinking budget (#58) (7d02d4b)

v3.89.8

2026-06-08
Changed
  • isolate no-auth tests from host credentials via AuthResolverDeps injection (#56) (5be979f)
Fixed
  • ship uses --body-file/-F instead of heredoc-in-$() (#53) (a89b9db)

v3.89.7

2026-06-08
Fixed
  • unblock native browser tools in the bundled ESM binary (#51) (fa29619)

v3.89.6

2026-06-08
Fixed
  • re-pin committed band on overlay collapse to kill the blank-space gap (#50) (5c76889)

v3.89.5

2026-06-08
Changed
  • Port afk-workshop#643: resolve compose node credentials by node model (#46) (f5fde53)
Fixed
  • wire ProviderRouter into the REPL so /model crosses provider families (#47) (eca4ed2)

v3.89.4

2026-06-08
Fixed
  • resolve session credential by session model, not env default (#42) (0959c40)
  • harvest argument-hint flags so /review --post completes (#48) (9d43b98)

v3.89.3

2026-06-08
Changed
  • reorder + dedup framework system prompt (Stage 1) (#45) (0de370b)

v3.89.2

2026-06-08
Fixed
  • enforce read-only tool gating for recon skills (ground-state) (#5) (6aeeaaa)

v3.89.1

2026-06-08
Fixed
  • make TerminalCompositor wrap-aware so soft-wrapped frame lines don't clobber committed text (#39) (a7ace49)

v3.89.0

2026-06-08
Added
  • per-model ProviderRouter — switch models across providers in one session, no AFK_PROVIDER (#38) (ab87afc)
Fixed
  • stop streaming markdown tables leaving ghost rows in the live overlay (#40) (a632844)

v3.88.0

2026-06-08
Added
  • Responses API + ChatGPT-subscription OAuth + user-configurable model slots (#33) (fe0ba5d)

v3.87.1

2026-06-07
Changed
  • control-plane reframe — README hero + package metadata (#37) (caf39da)
  • Port afk-workshop#734: feat(cli): add afk trace show — human-readable witness trace reader (#36) (71b0f35)
  • Port afk-workshop#733: feat(cli): add /review --post {github,telegram} publishers (#35) (7830a0f)
Fixed
  • keep verdict card's closing border visible in tight frames; ASCII-safe affordances (#32) (9e08de4)

v3.87.0

2026-06-07
Added
  • layer operator config over an unconditional framework base (#34) (ff03920)

v3.86.0

2026-06-07
Added
  • push full redacted task response to Telegram (#31) (dd73b2e)

v3.85.0

2026-06-07
Added
  • trim /resume from startup welcome hint (#18) (a64aa7b)
Changed
  • Port afk-workshop#689: feat(cli): process-wide stdin-claim guard (phantom-turn root-cause fix) (#28) (39ce1c7)
  • Port afk-workshop#727: fix(service): launchd daemon crash-loops (exit 127) — bake PATH into plist; + correct --trigger help (#25) (b675e78)
Fixed
  • make auto-release push atomic to prevent orphaned tags (#30) (4bd20e8)
  • sanitize Brave error body before embedding (#26) (d9df988)
  • collapse orchestrator progress map to at-most-one entry (#27) (0e79887)
  • repaint REPL prompt on fresh interactive session (#15) (108a383)

v3.84.1

2026-06-06
Changed
  • Remove codex reference from README (5394b09)
Fixed
  • unblock pre-auth CLI commands; require Node >= 22 (#16) (10ddd77)

v3.84.0

2026-06-06
Added
  • redesign /skills listing + detail UX (phase 1) (#14) (cf5e6f0)

v3.83.1

2026-06-06
Fixed
  • clamp diff body lines to terminal width in nested tool-lane paths (#9) (a3b38b5)

v3.83.0

2026-06-06
Added
  • flip default skill execution from fork to load (#7) (0deb564)
Changed
  • Update SKILL.md (d987a3e)
  • Add context field to review skill documentation (13a5ae6)

v3.82.0

2026-06-05
Added
  • flip gather + parallelize to context: load (#4) (4006c37)

v3.81.1

2026-06-05
Fixed
  • anchor flat-leaf tool roots with col-0 ◉ beside a nesting root (#3) (c1d84e0)

v3.81.0

2026-06-05
Added
  • add auto-release workflow for automated versioning and publishing (4d93403)
Changed
  • hermetically lock AFK_INTERNAL tier in audience-gate tests (#1) (aeeaa41)
  • Update README to simplify API key instructions (02ba5f9)
  • Revise README for clearer description of Agent AFK (a7da9ce)
  • Initial public release — Agent AFK (0a23cff)
Fixed
  • make HOT.md non-fatal — truncation covenant (#2) (0f91a0f)

v3.80.6

2026-06-05
Fixed
  • exclude internal-tier skills from the published npm bundle (#713) (952079a3)

v3.80.5

2026-06-04
Changed
  • Open-core relicense: Apache-2.0 + DCO + community files (#691) (3e4e4200)
Fixed
  • emit literal apostrophe in OG meta to stop Reddit double-encoding (#712) (3c634593)

v3.80.4

2026-06-04
Fixed
  • ship bundled-plugins (the awa-bundled orchestration skills) in the published npm tarball — build:dist (the publish path) never copied src/bundled-plugins/, so npm install got zero bundled skills; both build paths now route through one shared copy helper, guarded by a unit test and a publish-bundle CI assertion (#703) (00211e3)
  • emit twitter:url meta tag (last #514 migration parity gap) (#710) (05e24c3)

v3.80.3

2026-06-04
Fixed
  • restore #502 session-player terminal + 2 copy regressions (#709) (be1e214b)

v3.80.2

2026-06-04
Fixed
  • keep non-last ancestor spine continuous through nested subtrees (#708) (983d06f0)

v3.80.1

2026-06-04
Fixed
  • retry mid-stream 529 / overloaded_error events (#704) (04aca58)

v3.80.0

2026-06-04
Added
  • add /name command to show or set the session name (#700) (d5bca28e)

v3.79.0

2026-06-04
Added
  • config-driven shell-command hooks + TUI clear-band reset (reconciles #644 + #646) (#693) (cde08779)

v3.78.1

2026-06-04
Fixed
  • correct stale settings — models, codex removal, thinking enum (#699) (c5825b3)

v3.78.0

2026-06-04
Added
  • add tool call counting script and corresponding npm command (207eaff)

v3.77.1

2026-06-03
Fixed
  • harden rate-limiter against XFF spoofing + non-POST token burn (#698) (4f3ae30)

v3.77.0

2026-06-03
Added
  • migrate vanilla landing page to Next.js 15 App Router (#514) (02adee41)

v3.76.1

2026-06-03
Fixed
  • topology-spine seam — keep live-ancestor columns open in committed band + overlay (#687) (f1024e5)

v3.76.0

2026-06-03
Added
  • @-file picker — tilde/absolute path completion + content injection (#688) (10aa3a00)

v3.75.0

2026-06-03
Added
  • replace Firecrawl with local Readability/Turndown scraper + Brave search (#671) (8158044)

v3.74.0

2026-06-03
Added
  • provider-level readOnlyMemory enforcement for child sessions (#690) (8853eb0)

v3.73.1

2026-06-03
Fixed
  • scope audit-fit Glob rule, thread ship heal iters (#692) (619e4ad)

v3.73.0

2026-06-03
Added
  • durable named sessions + Telegram→CLI resume bridge (phases 1–2) (#672) (44c60e4)

v3.72.0

2026-06-03
Added
  • add /fork to branch a conversation into a parallel session (#670) (5e24f1a)

v3.71.3

2026-06-03
Fixed
  • silence depth-2 nesting ghost row (recursive no-visible-descendant) (#678) (9ff5060)

v3.71.2

2026-06-03
Changed
  • extract key-dispatch cluster from terminal-compositor (KeyDispatchHost) (#669) (435f2937)
Fixed
  • silence headerEmitted nested-skill overlay label leak + lock spine continuity (#662) (a2ffb17b)

v3.71.1

2026-06-03
Changed
  • decompose TerminalCompositor — extract paste, autocomplete, render, committed-band clusters (#665) (fb501146)
Fixed
  • stop hiding @-file completions past the dropdown cap (#667) (73c4c5a6)

v3.71.0

2026-06-03
Added
  • default afk --worktree to the remote default branch (origin/main) (#666) (8c055dd)

v3.70.8

2026-06-03
Fixed
  • count cached tokens in context-window % and auto-compact (#648) (b2e428c6)

v3.70.7

2026-06-03
Fixed
  • clamp each banner line to terminal width (#664) (f64049e1)

v3.70.6

2026-06-03
Changed
  • relocate per-model credential resolver to agent layer (#658) (a01a259)
Fixed
  • bundle poller entrypoint + resolve bundled dist layout (#663) (cd4faa2)

v3.70.5

2026-06-02
Fixed
  • collectSkillEntries() scans user + project skills fresh from disk (#656) (9553467c)

v3.70.4

2026-06-02
Fixed
  • fork-time credential fallback to parent's cached token (#657) (a5ca163c)

v3.70.3

2026-06-02
Fixed
  • advance branch-tracked installs by commit, not ref-name (#655) (dc627f9)

v3.70.2

2026-06-02
Fixed
  • poll-retry the no-ts 429 path so same-account resets auto-resume (#638) (c5258c8)

v3.70.1

2026-06-02
Fixed
  • drop stale resize ghost-erase snapshot on shrink (#653) (94c48366)

v3.70.0

2026-06-02
Added
  • cross-provider REPL ghost-text suggestions (#606) (babeac5f)

v3.69.3

2026-06-02
Fixed
  • erase old frame + committed band on terminal resize (stop ghost rows) (#650) (bfa9e3bb)

v3.69.2

2026-06-02
Fixed
  • preserve committed lines + close scrollback gap when band caps under tall overlays (#645) (cf18529a)

v3.69.1

2026-06-02
Fixed
  • reset committed band on /clear to prevent transcript resurrection (#647) (459f03e2)

v3.69.0

2026-06-02
Added
  • instrument startup-latency session_phase waterfall (follow-up to #637) (#639) (21a90466)

v3.68.0

2026-06-02
Added
  • pin the verdict-ledger rail to its own reserved footer row (#629) (98eb8e73)
Fixed
  • resolve subagent/skill child credentials by child model (#640) (e305d0fa)

v3.67.2

2026-06-01
Fixed
  • anchor childless NESTING overlay heads with ◉ (fix floating-spine bug) (#642) (3c708ae)

v3.67.1

2026-06-01
Fixed
  • heal footer bars + re-pin full committed band after full-screen scroll (#641) (8120a5ad)

v3.67.0

2026-06-01
Added
  • add session_phase waterfall events + session_sealed subagent token rollup (#637) (fec76ed)

v3.66.0

2026-06-01
Added
  • public/internal tier gate via audience field + AFK_INTERNAL (#569) (e4a3490e)

v3.65.0

2026-06-01
Added
  • add context: 'load' in-context skill execution mode (#630) (e87293f5)
Changed
  • sync review skill with upstream example-plugin (close #441) (#635) (62207782)

v3.64.0

2026-06-01
Added
  • enrich /reload-plugins output with plugin versions, source breakdown, and reload delta (#636) (f572365)

v3.63.0

2026-06-01
Added
  • pin loop-stage rail as reserved footer row via LoopStageBar (#634) (ea469d40)

v3.62.0

2026-06-01
Added
  • add bundled /refactor structural-change skill (#633) (8f2cff6)

v3.61.0

2026-06-01
Added
  • add bundled /simplify code-simplification skill (#631) (cb16af7)

v3.60.7

2026-06-01
Fixed
  • ESC soft-stop registers on first press and stops dropping the next message (#626) (4d6dc92)

v3.60.6

2026-06-01
Changed
  • unify card/error/usage boxes onto the drawBox primitive (#628) (fb6418bf)
  • move loop-stage rail to bottom of live overlay (#625) (419f91c6)
Fixed
  • re-pin committed band above frame on overlay shrink (#627) (e82c10dc)

v3.60.5

2026-06-01
Fixed
  • strip terminal_font_size from skill-dispatch sub-agents + anchor review arg (#624) (e70a8f9)

v3.60.4

2026-06-01
Fixed
  • born-named worktrees — defer creation to first turn, never move a live worktree (#617) (322d6c3d)

v3.60.3

2026-06-01
Fixed
  • match shadow-verify orchestrators at word boundaries (#623) (0b2105d)

v3.60.2

2026-06-01
Fixed
  • clamp over-wide drawBox titles + extend sanitizer test coverage (#622) (89adbbf)

v3.60.1

2026-06-01
Fixed
  • strip OSC/DCS/C1 escapes from bash/grep/subagent tool output (#621) (4719a771)

v3.60.0

2026-06-01
Added
  • extract canonical terminal sanitizer + add drawBox primitive (#620) (20f457e)

v3.59.1

2026-05-31
Fixed
  • stop skill-dispatch sub-agents from asking "which skill?" (#619) (8da8808)

v3.59.0

2026-05-31
Added
  • ack inbound with 👀 reaction + clean-final streaming mode (#615) (df6eefb0)

v3.58.0

2026-05-31
Added
  • interleave per-phase thinking summaries on TTY (#614) (c38aabf2)

v3.57.1

2026-05-31
Fixed
  • frame ask_question as a last resort, not a first move (#616) (1ca68136)

v3.57.0

2026-05-31
Added
  • !cmd shell-passthrough with foreground + background modes (#565) (c8dbe1e9)

v3.56.5

2026-05-31
Fixed
  • ESC soft-stop no longer auto-fires a phantom turn (#611) (d8ee37a)

v3.56.4

2026-05-31
Fixed
  • preserve URLs in tool-lane arg rendering (#612) (2fe02ee)

v3.56.3

2026-05-31
Fixed
  • align nested subagent thinking-tail with its tool children (#613) (da53956)

v3.56.2

2026-05-31
Changed
  • extract spinner state machine into SpinnerController (#609) (b6659b38)
Fixed
  • report 1M context window for opus_1m/sonnet_1m aliases (#610) (f3a138fa)

v3.56.1

2026-05-31
Changed
  • decompose 590-line dispatchKey into ordered handler methods (#608) (d56e50a)
Fixed
  • /tokens always shows 0 tokens and NaNm total (#607) (b0945e7)

v3.56.0

2026-05-31
Added
  • truncate large pastes into compact placeholders (#574) (4a79762)

v3.55.1

2026-05-31
Fixed
  • single-copy commitAbove + hasCommitted-gated evict-on-growth (#592) (92211df)

v3.55.0

2026-05-31
Added
  • wire default witness trace writer into daemon + Telegram sessions (#604) (0319ebe4)

v3.54.0

2026-05-31
Added
  • refresh context usage in status line mid-turn (#527) (a41d882b)

v3.53.6

2026-05-30
Fixed
  • remove 5-min timeout, abort is sole unblock path (#602) (96dcce4)

v3.53.5

2026-05-30
Fixed
  • substitute $ARGUMENT/$ARGUMENTS in plugin SKILL.md body (#566) (10b821b)

v3.53.4

2026-05-30
Fixed
  • wire skill/agent/compose executors into daemon sessions (#595) (cd033635)

v3.53.3

2026-05-30
Changed
  • change hero eyebrow pill from 'Any model' to 'CLI' (#600) (793a954)
Fixed
  • route /ground-state as a pre-write trigger, not "exploratory" (#598) (4c912c8)

v3.53.2

2026-05-30
Fixed
  • enforce read-only contract via hard-constraint prompt (#596) (15d3e10c)

v3.53.1

2026-05-30
Fixed
  • clear stale compositor overlay on /clear and /info (#594) (1827bd50)

v3.53.0

2026-05-30
Added
  • improve bot UX (items 2–8) (#588) (5b00421d)

v3.52.1

2026-05-30
Changed
  • extract types/helpers from terminal-compositor.ts (#591) (8c08c27d)
Fixed
  • preserve typed buffer as queued on ESC soft-stop (#593) (0f496a48)

v3.52.0

2026-05-30
Added
  • queue messages during compaction (#586) (f7976ab9)

v3.51.2

2026-05-30
Fixed
  • allow get_runtime_state in read-only phase forks (#584) (86b00561)

v3.51.1

2026-05-30
Fixed
  • inject advisory-lock path to de-flake CI tests (#582) (297d51e6)

v3.51.0

2026-05-29
Added
  • inject SKILL_ROOT + validate names per agentskills.io spec (#578) (ff6a09e3)

v3.50.2

2026-05-29
Fixed
  • erase every row in commitAbove Phase 1 to stop multi-line splice (#581) (99ff7ec6)

v3.50.1

2026-05-29
Changed
  • drop duplicate test gate to eliminate self-hosted double-load (#580) (2fccfe73)
  • split rendering god-classes into coherent modules (#573) (21eab719)
  • bump default testTimeout to 15s (#579) (460ab1d8)
Fixed
  • compositor respects bg status bar reserved rows (#575) (78579649)

v3.50.0

2026-05-29
Added
  • migrate opus default to claude-opus-4-8 (#576) (f225660)

v3.49.0

2026-05-29
Added
  • namespace-normalized drift comparison for bundled SKILL.md (closes #440) (#570) (d73b396b)

v3.48.0

2026-05-29
Added
  • highlight /mint in mint green ;) (#577) (a582e7a)

v3.47.1

2026-05-29
Fixed
  • route between-turn slash output through persistent compositor (#564) (2422a227)

v3.47.0

2026-05-29
Added
  • integration branch — #510 + #531 + re-enable (#563) (ec4fbd53)
  • allow memory_search in child allowlist (#567) (a0b46f74)
Changed
  • Update project description in AFK.md (d268d95d)
  • gate toolchain setup on bump!=none in auto-release (#562) (7b194d7e)
  • move playwright from optionalDependencies to dependencies (#561) (ca7cafd6)
  • add dev-only invariant guard (follow-up to #557) (#559) (1db191b2)
  • dedupe LAUNCHCTL_TIMEOUT_MS + fix docstring mode mismatch (#558) (86c686e0)
  • split launchd.ts into per-concern modules (#505) (1a3048ba)
Fixed
  • compute NEXT version from LAST_TAG, not package.json (0d9e65ec)
  • make auto-release race-safe (atomic push + tag-list sort) (f7a9871c)
  • don't inherit routing in sub-agent prompts (#568) (c4d0690a)
  • print last-turn banner so users see context after screen clear (#455) (3ee3c90b)

v3.45.3

2026-05-28
Fixed
  • allow live frame to visually shrink (ratchet fix) (#557) (326ca92)

v3.45.2

2026-05-28
Fixed
  • close two soft-stop races — arm-to-handler window + late-ESC after done (#544) (b0ba748)

v3.45.1

2026-05-28
Fixed
  • echo reasoning_content on assistant turns for thinking-mode providers (#549) (0bf93d8)

v3.45.0

2026-05-28
Added
  • auto-delete worktree on zero-turn session exit (#556) (f72ef7e)

v3.44.0

2026-05-28
Added
  • native browser-control tools (Phase 1) (#553) (aaf8b11)

v3.43.1

2026-05-28
Fixed
  • plugin-skill forward path runs preflights symmetrically (#476) (0720782)

v3.43.0

2026-05-28
Added
  • Phase 2 — workspace baseline, presence files, afk sessions command (#548) (74a39ac)

v3.43.0

2026-05-28
Added
  • Phase 2 — workspace baseline (`workspace` view in `get_runtime_state`): branch, HEAD SHA, dirty count, remote URL (33a8935)
  • Phase 2 — session presence files at `~/.afk/state/presence/`; top-level sessions write on start, remove on exit (33a8935)
  • `afk sessions` command: list active presence-file sessions in a table (33a8935)
Fixed
  • Provider-aware API key routing: `getApiKey()` no longer leaks Claude OAuth token into openai-compatible Bearer header (33a8935)

v3.42.6

2026-05-28
Fixed
  • bound user-card height + repair frame-shrink orphan rows (110d8dc)

v3.42.5

2026-05-28
Fixed
  • honor ESC soft-stop in runSkillDispatchTurn's stream loop (5ee73b8)

v3.42.4

2026-05-28
Changed
  • update waitlist welcome email copy (e3f9a0d)
Fixed
  • add get_runtime_state to permission allowlists (16e5446)

v3.42.3

2026-05-28
Fixed
  • regenerate env-registry docs with AFK_DEBUG_COMPOSITOR entry (acd251c)
  • emit \x1b[2K before Phase 1 CUP-positioned text write (4ffd15c)

v3.42.2

2026-05-28
Fixed
  • honor late-ESC after done event — suppress turn-complete (e5ace8c)

v3.42.1

2026-05-28
Fixed
  • plug Claude-OAuth-token leak into openai-compatible Bearer (d17fb89)

v3.42.0

2026-05-28
Added
  • Phase 1 — get_runtime_state tool + session identity fragment (5590e9d)
Fixed
  • patch PR #542 review — externalTools reach, cwd sanitisation, permissionMode bucket, depth contract (566f7ed)

v3.41.3

2026-05-28
Fixed
  • preflight collision check + preamble bleed recovery (340aed1)

v3.41.2

2026-05-28
Changed
  • unify vertical spacing under single-owner trailing rhythm (451717e)
  • add code-vs-runtime dual-referent signal class (#541) (0e596ca)
Fixed
  • safety-net tool flush owns its trailing blank (44a1c2c)
  • harden rhythm-contract assertions against silent regressions (12f5fe0)

v3.41.1

2026-05-27
Changed
  • lock spine topology at Bug #5 regression site (d01aac8)
Fixed
  • restore declared anchorRow on rearm; assert eviction-before-render ordering (4b959d2)
  • floor commitAbove CUP target at anchorRow so first echo skips banner (deda6e2)
  • protect pre-arm scrollback rows from CUP-positioned frame overwrite (d6a6df0)

v3.41.0

2026-05-27
Added
  • ESC soft-stop — halt stream, preserve completed work (e4f9cd0)
Changed
  • banner hint says Esc instead of Ctrl+C (670ea00)

v3.40.1

2026-05-27
Fixed
  • align subagent thinking-tail with tool-child content column (9b71491)

v3.40.0

2026-05-27
Added
  • readline-parity word/line navigation in TerminalCompositor (39d0cdc)
Changed
  • update .gitignore and add TypeScript environment file for Next.js (3c2435e)
  • temporarily disable ask_question built-in tool (ccb51d2)
Fixed
  • scrub ANSI/control bytes from subagent label extraction (6dbe791)
  • summarize agent/Task/skill JSON args to stop spine JSON leak (9a1626b)
  • route PAGER through env registry to satisfy audit:env:check (4807fda)

v3.39.3

2026-05-27
Changed
  • add Vercel analytics to landing page (ff7bbaa)
Fixed
  • close arm-window race + add shrink-path coverage (57cf89e)
  • reset CupFrameRenderer geometry on SIGWINCH to stop ghost rows (0a56d8d)

v3.39.2

2026-05-27
Changed
  • document log-update fallback invariant on StreamingMarkdownRenderer (48a6927)
  • replace trivially-passing newline-count with render-spy frame inspection (05b65bf)
Fixed
  • restore cursor visibility when CupFrameRenderer frame write fails (8b56a9c)

v3.39.1

2026-05-27
Fixed
  • enhance scrollback functionality for visible text accumulation (9cc4c55)
  • make scrollback actually reach the terminal scrollback buffer (1c00a0a)

v3.39.0

2026-05-27
Added
  • add /transcript command to view full session in $PAGER (d2f72db)

v3.38.0

2026-05-27
Added
  • add optional cwd param for per-call worktree isolation (717b0a6)

v3.37.0

2026-05-27
Added
  • provider-agnostic routing — AFK_PROVIDER + env-hint + third-party prefixes (84e1dfc)

v3.36.5

2026-05-27
Fixed
  • enforce read-only permission boundary on spec/research/plan phases (1fa7a54)

v3.36.4

2026-05-27
Fixed
  • throttle overlay repaints + park cursor at DECSTBM bottom anchor (f3ef030)

v3.36.3

2026-05-27
Fixed
  • park clear() cursor at rows-1 so commitAbove pushes scrollback (9690b9f)

v3.36.2

2026-05-27
Fixed
  • strip resume-context from config in reset() so /clear starts fresh (8eabebe)

v3.36.1

2026-05-27
Fixed
  • route ask_question elicitation through compositor onSubmit (f4beb24)

v3.36.0

2026-05-27
Added
  • close anthropic-direct parity gaps (U1+U2+I1-I3) (b8d99e5)
Changed
  • split render.ts into per-component modules (25dd6f3)

v3.35.0

2026-05-27
Added
  • append agentafk.com footer to changelog Threads posts (5574130)

v3.34.0

2026-05-27
Added
  • auto-send welcome email via Resend on signup (ebda376)

v3.33.0

2026-05-26
Added
  • add tool-failure-density detector (b9c2ef3)

v3.32.2

2026-05-26
Fixed
  • verdict-card off-by-2 overflow causing broken bordered completion box (0a2a885)

v3.32.1

2026-05-26
Fixed
  • forward cwd through skill and depth-2 subagent dispatch (d25315e)

v3.32.0

2026-05-26
Added
  • rebuild hero terminal as session-player with goblin mascot (#502) (9b67f40)
Changed
  • update AFK.md for provider rename and DAG executor status (83ca176)

v3.31.0

2026-05-26
Added
  • declare AgentSession.abort() on IAgentSession (d5f9a00)
Changed
  • cover signal-handler -> session.abort wiring (37d43bf)
Fixed
  • runtime-guard AgentSession.abort against reserved reasons (e79609e)
  • classify SIGINT/SIGTERM/SIGHUP as abort, not model_end_turn (d4a2dea)

v3.30.2

2026-05-26
Fixed
  • forward backgroundRegistry to forked child SubagentExecutors (6a13aff)

v3.30.1

2026-05-26
Fixed
  • colorize slash-command submit echo on compositor path (362e785)

v3.30.0

2026-05-26
Added
  • add AFK Dark VS Code / Cursor editor theme (a9af988)

v3.29.3

2026-05-26
Fixed
  • forward image attachments through plugin-skill dispatch (b0f014c)

v3.29.2

2026-05-26
Changed
  • remove duplicate end-of-turn block + update stale mock (0be1835)
Fixed
  • align Blocked directive bullets with parser needles (e689a82)
  • inject end-of-turn directive in code, not prompt file (beba476)

v3.29.1

2026-05-26
Changed
  • enlarge waitlist count pill for stronger social proof (2017d98)
Fixed
  • add absence-claim grounding, lower shadow-verify threshold (9edc34a)

v3.29.0

2026-05-26
Added
  • elicitation REPL prompt + Telegram inline-keyboard surfaces (36e4cb6)
  • ask_question built-in tool + elicitation router serial queue (6823914)
Fixed
  • close PR #451 review blockers — router hang + skip-contract docs (1954a47)
  • resolve all PR #451 hard blockers and medium issues (c7469d7)
  • resolve remaining blockers + mediums from ask_question PR #451 review (73ad745)
  • close shadow-verify gaps from PR #451 resolve pass (3be7523)
  • resolve 3 blockers + 5 mediums from ask_question PR review (8e0e475)

v3.28.1

2026-05-26
Fixed
  • paint stage rail once per event — drop pre-switch repaint (e821db1)

v3.28.0

2026-05-26
Added
  • add topic tag to Threads release posts (391f799)

v3.27.6

2026-05-26
Fixed
  • update waitlist call-to-action and placeholder text (71edd9c)

v3.27.5

2026-05-26
Fixed
  • route Threads changelog post to release-dedicated account (#493) (7c6a0a6)

v3.27.4

2026-05-26
Fixed
  • insert blank row between chrome and input prompt (#490) (b89b092)
  • unbreak Threads changelog post — timeout race + shell quoting (#489) (5b6179f)

v3.27.3

2026-05-26
Fixed
  • add structured truncated flag on ToolResult for overflow detection (#481) (8b6c49a)

v3.27.2

2026-05-26
Changed
  • move tool-result rendering upstream of truncation + bash JSON summary (#484) (6ba4e63)
  • Update waitlist button label to remove arrow for improved clarity (940a1e9)
  • Update waitlist count label for improved clarity and engagement (4f986d6)
  • Update hero section text and button label for improved clarity and branding consistency (2ab1fb0)
  • Revise hero section description for clarity (0495578)
Fixed
  • keep cwd live across worktree-autoname rename (#488) (8134f98)

v3.27.1

2026-05-26
Fixed
  • guard teardown errors in skill-executor finally blocks (703d57e)
  • seal child skill sessions and handle SIGHUP (22ed629)

v3.27.0

2026-05-26
Added
  • auto-post changelog to Threads on tag push (f09ef31)

v3.26.2

2026-05-26
Fixed
  • repair tool-lane topology spine across three severing sites (#470) (935cfdd)

v3.26.1

2026-05-26
Fixed
  • skip CUP anchor on first arm() to eliminate banner→prompt gap (72b6c41)

v3.26.0

2026-05-26
Added
  • surface skip reasons with dim diagnostic line (b55a7bb)
Fixed
  • resolve short model aliases before SDK send (0a2af18)

v3.25.2

2026-05-25
Fixed
  • update toolInput format in stream-renderer and turn-handler tests (5ca0379)

v3.25.1

2026-05-25
Fixed
  • address 7 review findings from PR #449 (#467) (d82b43a)

v3.25.0

2026-05-25
Added
  • emit tool.overflow_kill on bash/grep SIGKILL (#475) (75accba)

v3.24.1

2026-05-25
Fixed
  • re-issue CUP anchor on terminal resize so REPL frame survives SIGWINCH (#453) (88e3180)

v3.24.0

2026-05-25
Added
  • capture-mode for clean demo recordings + multi-file diff separators (#426) (0174a6d)

v3.23.1

2026-05-25
Fixed
  • drop breadcrumb labels — anonymous anchors in live overlay (3f54014)

v3.23.0

2026-05-25
Added
  • cap diff flush output at 30 lines with AFK_DIFF_LINES escape hatch (3b2de51)
  • add stdin input + session resume for headless parity (634710b)
  • add stream-json output format for headless consumers (ca4dc0c)
  • left-anchored subagent topology spine with ◉ turn-root (d025508)
Changed
  • Merge pull request #447 from griffinwork40/feat/diff-flush-cap (6972db4)
  • Merge branch 'main' into feat/diff-flush-cap (b667502)
  • resolve origin/main into feat/diff-flush-cap for PR #447 (4a8e86f)
  • Merge branch 'main' into afk/20260520-085208-212510 (76fc918)
  • swap tree connectors to ├─ / ╰─ for spine renderer (039891c)
Fixed
  • address PR #447 review — 4 highs + 5 mediums (335b2b0)
  • address 3 blockers and 5 medium issues from PR #419 review (4c5632c)
  • clamp orchestrator-root overlay lines to terminal width (5bb0458)

v3.22.0

2026-05-25
Added
  • replace Jina with Firecrawl as markdown/search upstream (0f1581a)

v3.21.1

2026-05-25
Fixed
  • restore [queued] suffix so Enter mid-stream gives feedback (23d5dae)

v3.21.0

2026-05-25
Added
  • Sprint 3 — replay-mode eval-gen + eval-cases CLI (83288c6)
  • Sprint 2 — template-mode propose + closure/subagent detectors + triage (f26b298)

v3.20.4

2026-05-25
Fixed
  • unstick REPL after usage-limit auto-resume (#448) (cd45c94)

v3.20.3

2026-05-25
Fixed
  • preserve multi-line clipboard paste in compositor (7b1d33a)

v3.20.2

2026-05-25
Fixed
  • loud-fail empty fenced code blocks with placeholder text (2b7b68f)

v3.20.1

2026-05-25
Fixed
  • reset scan cache on update so new SKILL.md is visible without restart (F2) (7f2f8bc)
  • require name+description keys explicitly in generate.md (56d665c)

v3.20.0

2026-05-25
Added
  • auto-cd parent shell into preserved worktree on exit (b2b0d71)
Fixed
  • address shell-init review — H1/H2 portability, M1/M4 correctness (fb2af1d)
  • harden cd-on-exit marker and shell-init wrapper after PR review (71970e8)

v3.19.0

2026-05-25
Added
  • emit skill.dispatched/completed for inline registry skills (57994eb)
Changed
  • repair corrupted lock file from aborted schema migration (7ec2f27)
  • remove obsolete .afk-worktree-meta.json file (1d4b153)
Fixed
  • stream photo download with size cap instead of buffering (7407e12)

v3.18.2

2026-05-25
Fixed
  • apply dropdown selection on Enter — Stage 3e port gap (54c5a37)

v3.18.1

2026-05-25
Fixed
  • clamp duration at 0 on clock skew (review C2) (9f98c44)
  • cap duration at thinking→acting boundary + render above response (f3ee1a3)

v3.18.0

2026-05-25
Added
  • add /font-size REPL command sharing terminal_font_size handler (52aa482)
  • add terminal_font_size built-in tool (97c3849)
Fixed
  • emit trailing blank after subagent done-block (42d8be5)
  • prefer last verdict within tier (qualify self-correction) (546b1ea)
  • generator sub-agent is tool-less; wire generate.md prompt (11d3b8d)

v3.17.3

2026-05-25
Changed
  • long-comment prefix convention + targeted comment shrinks (1fffa7c)
Fixed
  • anchor overlay breadcrumb spine with dim ◉ marker (c13a1fe)
  • add headerEmitted guard to renderFlushChildren (a021a7d)

v3.17.2

2026-05-24
Fixed
  • mirror formatAgentSummary spine topology in formatAgentHeader/Children (#450) (34b76fe)

v3.17.1

2026-05-24
Fixed
  • route AFK_SKILL_STREAM_VERBOSE through env.ts (post-merge audit gap) (4a02a16)
  • unblock CI on PR-416 — install.test fake + AGENT_AFK_ASCII env registry (952060b)
  • close PR-416 review findings — hook bypass, HTTPS gap, Git ≥2.31 dependency (c9e2660)
  • plugin install hardening — HTTPS-only, git hook suppression, install warning, skill prompt-loader path guard (S7-step1/P3) (1e845ac)

v3.17.0

2026-05-24
Added
  • left-anchored subagent topology spine with ◉ turn-root (#350) (1bab3bf)

v3.16.0

2026-05-24
Added
  • wire persistent compositor into REPL — Stage 3e (4e28e5d)
  • InputSurface armCompositor lifecycle + idle-mode compositor semantics (f0c129f)
  • port bracketed-paste + clipboard image attachments to TerminalCompositor (9e7dc88)
  • StreamRenderer can borrow a TerminalCompositor; promptText accepts () => string (1be7b9a)
  • add idle input mode + onSubmit hook to TerminalCompositor (9dab928)
  • thread promptText through StreamRenderer → compositor (c5bebc7)
Changed
  • Merge pull request #424 from griffinwork40/afk/20260523-120253-4b3e3e (920ad3c)
  • Merge branch 'main' into afk/20260523-120253-4b3e3e (4f02680)
  • extract createSkillRenderer factory + fix latent /init borrow bug (53950e0)
  • Merge branch 'main' into afk/20260523-120253-4b3e3e (c4b374d)
  • add InputSurface ↔ TerminalCompositor integration coverage (f3c441e)
  • make slash Writer route-aware via optional WriterSink (03518e8)
  • introduce InputSurface as the long-lived REPL input abstraction (8cf9393)
Fixed
  • wire skill onCancel through borrowed compositor with capture+restore (a855dc0)
  • route in-stream notifications through completionWriter (extends ed4318b) (38bf6b1)
  • clear autocompleteState before persistent-compositor repaints (50632aa)
  • anchor first log-update frame at terminal bottom in compositor.arm() (ce1dcfe)
  • render dim breadcrumb for headerEmitted ancestors so live children don't appear orphaned (H4) (efbdaf8)
  • preserve in-flight subagent rows when orchestrator emits content chunks (H3) (1a0dece)
  • isolate borrow-dispose cleanup steps so setSpinner throw cannot strand stale overlay (7729dab)
  • address PR #424 review findings (H1–H8, M1, M4, M6, M7, L2) (03d1f89)
  • close Stage-3e compositor duplication — borrow path + post-arm raw writes (ed4318b)
  • widen setInputMode flush invariant to any → idle (3241dba)
  • agent-turn input parity — slash colorization, always-on caret, Tab applies dropdown (8f95d0c)

v3.15.0

2026-05-24
Added
  • handle photo messages with optional caption (b71c12a)
Changed
  • regression tests for busy-spin cascade gate (PR #396) (a07882a)
Fixed
  • apply PR #396 review blockers — capability guard, SSRF URL assert, gate reorder (6979270)
  • resolve PR #396 review blockers — token leak, busy-spin, MIME sniff, tautological test (9f2a703)
  • resolve PR #396 security and reliability blockers (152e162)
  • apply PR #396 review fixes (85ad3dd)

v3.14.0

2026-05-24
Added
  • add stream-json output format (#419) (69a0bf8)

v3.13.3

2026-05-24
Fixed
  • aggregate timeout, production-visible warn, dispatch defaults (9543b6b)
  • hook dispatch timeout + subagent fork AbortGraph cleanup (R3/R4) (a7ab48d)

v3.13.2

2026-05-24
Fixed
  • isolate pnpm/action-setup dest per-job to runner.temp (e3874d0)

v3.13.1

2026-05-24
Fixed
  • populate ProviderUsage.durationMs on every turn.completed yield (07bbe2a)
  • bound cwd-fallback tests to tempDir, not process.cwd() (0714f67)

v3.13.0

2026-05-24
Added
  • add drift test + port cwd anchor to ship (71f65a3)
  • centralized env-var registry + audit gate (#429) (8edd275)
  • route child sessions via providerForModel (263e25e)
  • handle oauth-limit-no-ts 429, /reauth slash command, account info in pause card (4c02593)
Changed
  • route auto-release + publish to self-hosted runner (411c483)
  • drop #4ade80 from changelog favicon, swap to accent-soft (5603702)
  • persistence reframe + contour-layer + 2nd signal-field (168edbe)
  • lock #4ade80 to success-state, trim .access::before to 1 radial (bcaaf49)
  • surface memory feature in hero typewriter + runtime section (5adbebb)
  • Remove comment on brand wordmark font size (962e598)
  • bump topbar logo mark from 28px to 34px (1e09d03)
  • route lint-build + test to self-hosted runner (mac-afk-1) (4d9d3ba)
Fixed
  • remove duplicate proc.on close handler that broke logic (991dedb)
  • bump .brand__wordmark font-size to 19px (59f7e3f)
  • tool-lane truncation, bash exit-code labeling, skill partial-output preservation (#423) (ac537a4)
  • 6 bugs from 463k-token MLX overrun — allow-list, context clamp, mlx-community limits (f2b200f)
  • address PR #412 review feedback — process-group kill, descendant test, token formula, non-blocking polish (f1e9bc5)
  • bash SIGKILL on timeout/abort + auto-compact formula drops cache fields (S10/P5) (bb7eade)
  • resolve /review 425 F1+F2+F3 blockers (2004fc7)
  • resolve all HIGH/MEDIUM PR review blockers on V8 overflow guard (31c848b)
  • guard grep and bash handlers against V8 max-string-length crash (799e7a7)
  • route OpenAI-parent subagents to OpenAICompatibleProvider (ab0a7fa)
  • plugin skill slash commands dispatch via skill-invocation payload, not raw text (fe21349)
  • actually rebuild SDK client on hot-swap + wire /reauth to swap running session (a68cbaa)
  • suppress overlay re-render of already-committed ancestor headers (4725717)

v3.12.1

2026-05-23
Fixed
  • address PR #415 follow-ups (exit code, unref, prod logging) (81f1628)
  • reliability micro — runInBackground catch, close await, waitForReset unref, farm finally (R1/R2/R5/R6) (56dadef)

v3.12.0

2026-05-23
Added
  • add /cd command to set per-chat working directory (e563d12)

v3.11.1

2026-05-23
Changed
  • remove vestigial bootstrap scripts (#421) (545dce4)
Fixed
  • prose-question guard (H1) + codebase lane override (H2) (#418) (78c9ec3)

v3.11.0

2026-05-23
Added
  • dead-owner verdict, /worktree slash, boot-time auto-prune (#364) (2bf6d41)

v3.10.5

2026-05-23
Fixed
  • plugin install/remove invalidate scan cache + removePlugin name guard (F2/S8) (b57a066)

v3.10.4

2026-05-23
Fixed
  • AFK_HOME validation + migrateDirOnce EXDEV fallback (F1/F5) (f617705)

v3.10.3

2026-05-23
Fixed
  • extend write denylist with AFK config + tool tokens (S4) (01b2ba8)

v3.10.2

2026-05-23
Changed
  • git rm test-bot files + correct CLAUDE.md runDAG description (S16) (#409) (7f7b7d9)
Fixed
  • auth wizard no-echo + creds/transcript 0o600 (S1/S2/S3) (#413) (4dddba7)

v3.10.1

2026-05-23
Fixed
  • propagate worktree cwd into subagents and preflights (#408) (c61a5a1)

v3.10.0

2026-05-23
Added
  • auto-compaction (opt-in) + SDK dependency lock (#405) (f9e052a)

v3.9.1

2026-05-23
Fixed
  • preserve cursor across DECSTBM toggles in withFullScrollRegion (#407) (f962403)

v3.9.0

2026-05-23
Added
  • background-subagent TUI parity (Ctrl+B hints, per-job status rows, auto-deny elicitations) (#362) (d2e5f8f)

v3.8.10

2026-05-23
Fixed
  • forbid direct push to default branch + invented convention (63f3ed3)

v3.8.9

2026-05-23
Fixed
  • bump pinned qualify hash to match merged rule-5 paragraph (#399 follow-up) (1f5c587)

v3.8.8

2026-05-23
Fixed
  • re-wrap streaming TUI overlay on terminal resize (220060b)

v3.8.7

2026-05-23
Changed
  • explain why rule 5 systematically fires on gate/guard skills (e6cbf29)
Fixed
  • inline Copy button on install command, drop forced overflow (35ac697)

v3.8.6

2026-05-23
Fixed
  • narrow skill anti-recursion guard to same-skill only (436620e)

v3.8.5

2026-05-23
Fixed
  • emit subagent.completed/.failed for background dispatches + fork-throws path (1a8172a)

v3.8.4

2026-05-23
Fixed
  • accept null in hypothesis schema, tighten prompt (810bf18)
  • clamp thinkingTail rows to terminal width (ab7f8b9)

v3.8.3

2026-05-23
Fixed
  • preserve attachment indicator after message submit (1ab1d57)

v3.8.2

2026-05-23
Fixed
  • guard user-echo writes against DECSTBM sub-region scroll loss (9d516e7)

v3.8.1

2026-05-23
Fixed
  • label-aware overflow — count honesty, sibilant plural, sanitize (ef51ee4)

v3.8.0

2026-05-23
Added
  • P04 trace instrumentation around runPreflight (f9fb92f)
  • wrap plugin-forward manifest in (999d856)
  • wire plugin-forward path + review-pr preflight (8982c79)
  • wire native skill handler + optional manifest block (586cffe)
  • add SkillInvocation types + registry (67b1dad)
Changed
  • Merge pull request #317 from griffinwork40/afk/20260518-preflight-deferred (62971f0)
  • Merge branch 'main' into afk/20260518-preflight-deferred (7ff04bb)
  • Merge branch 'main' into afk/20260518-preflight-deferred (2b806fb)
  • Merge remote-tracking branch 'origin/main' into HEAD (0e12b97)
  • T03/T04/T05 additional coverage (b40df4b)
  • A01/A02/A05/T06 registry test-isolation + explicit init (6d36849)
  • remove unnecessary as-unknown-as sessionId cast (ef20153)
  • Merge remote-tracking branch 'origin/main' into afk/20260518-055423-b599b7 (a37a979)
Fixed
  • H2/H3/H4/M2 — PR #317 review blockers (22fb669)
  • C03/C04/A03/F12 small correctness and documentation (1988d7d)
  • P02/P03/F08/F10/F11/C05 review-pr hardening (8f3ed6a)
  • P01/P05/F07 artifact-dir — rate-limited prune, warn logging, random fallback id (8276e8f)
  • F04/F05/F06 filesystem safety hardening + T02 tests (5211786)
  • C01 — preflight only runs on plugin-forward path, not native slash commands (9e980e2)
  • F01/F02/F03 security chain + C02 registry key correction (5cbe1a6)
  • prune artifact dirs older than 7 days on each call (ae26ca7)

v3.7.3

2026-05-23
Fixed
  • guard label-aware overflow against pre-merge placeholders (8c8cae2)
  • preserve dispatch labels in tool-lane overflow (f396d73)

v3.7.2

2026-05-23
Fixed
  • preserve isolated newline deltas in streaming TTY renderer (8357dda)

v3.7.1

2026-05-22
Fixed
  • normalize case + scope tier-3 regex locally (b919d23)
  • tighten verdict parser — tier-2 modifier gap + tier-3 nearby-anchor fallback (ff1a78a)

v3.7.0

2026-05-22
Added
  • Phase 1A — read-only witness-trace scanner + failure cards (eee58d4)
Changed
  • skip setOverlay repaint when overlay text is unchanged (28cfe3b)

v3.6.0

2026-05-22
Added
  • render live thinking overlay as a wrapped paragraph (ba42900)

v3.5.0

2026-05-22
Added
  • add npm install command with copy button to #access section (#384) (b8a292b)

v3.4.0

2026-05-22
Added
  • add MCP client support — stdio + remote (HTTP/SSE) + OAuth + live refresh (#374) (a3e8c4c)

v3.3.4

2026-05-22
Fixed
  • propagate traceWriter through SkillExecutor + surface wall-clock in Done summary (#378) (6721351)

v3.3.3

2026-05-22
Fixed
  • close 4 schema gaps surfaced by telemetry audit (#383) (c42481c)

v3.3.2

2026-05-22
Fixed
  • defensive verdict parsing + write-step name-collision guard (#382) (a66d8fd)

v3.3.1

2026-05-22
Changed
  • PR #376 follow-ups (f430388)
Fixed
  • summarize bash JSON output + move tool-result rendering upstream of truncation (#380) (1f33c1a)

v3.3.0

2026-05-22
Added
  • surface visible extended thinking on Opus 4.7 + default to max effort (824015a)
  • route HF-style org/model ids to openai-compatible (a95111c)
Fixed
  • widen effort=max default to opus-4-6/sonnet-4-6 + fix effort beta header value (1632b33)
  • stop flag dropdown from auto-popping on every space (fc100ee)
  • suppress 💡 suggestion echo when it duplicates the response (39fecb0)

v3.2.1

2026-05-22
Fixed
  • eager-emit ancestor frame headers in ToolLane.flushSource (2c2e103)

v3.2.0

2026-05-21
Added
  • route Messages traffic through a local Anthropic-compatible server (#239) (2578100)

v3.1.0

2026-05-21
Added
  • hydrate stats + welcome banner on session resume (#316) (2142890)
Changed
  • add founder anecdote + finalize 'Built by' credit (#308) (139bc02)

v3.0.1

2026-05-21
Fixed
  • launchctl-throws test uses telegram, not daemon (b2341b0)

v3.0.0

2026-05-21
Added
  • afk service install/uninstall/status — macOS LaunchAgent install for always-on afk telegram / afk daemon (auto-start on login, relaunch on crash). Paired with /service-setup skill that walks the user through install end-to-end. (dc69966, dfcedff, #346)
  • Pixel-art goblin mascot in the interactive loading screen via half-block renderer (10×10 sprite, pupils + cheek highlights). (#354)
  • Loading-screen tips + dropdown tooltip hints in the CLI for first-run discoverability. (#294)
  • Daemon pull-trigger mode with a queue store — daemon can now drain a persisted queue instead of cron-only execution. (issue #337, slice 1)
  • OpenAI-compatible provider REPL surface parity with anthropic-direct (streaming, tool dispatch, auth diagnose). Closes the GPT/o-series migration off the legacy openai-codex provider. (3e932be)
  • PLUGIN_ROOT env injected into plugin-skill subagent processes so vendored plugin assets can resolve their own root.
Changed
  • query.ts decomposed into single-responsibility units: repairOrphanToolUses (5e2de54), SessionState bag (e456201), AbortCoordinator (739d600), RetryLayer for OAuth 401 + 429 (5d2fa8d), and compactHistory handler (95bf4b9). Zero behavior change; the monolith is gone.
  • Schema-as-source-of-truth for tool classification. SAFE_TOOLS, WRITE_TOOLS, and the read-tool predicate are now derived from AnthropicToolDef.{category, concurrencySafe, riskClass} rather than 6+ drifting hand-maintained lists. (#361)
  • sumProviderUsage promoted out of a provider-specific location to src/agent/usage.ts so both providers share the same accumulator. (c481852)
  • Operator-legibility phase 1 polish across the interactive surface. (7fa2773)
Fixed
  • tools.0.custom.<field>: Extra inputs are not permitted 400 from the Anthropic Messages API — internal tool classification metadata no longer leaks across the wire. (#367)
  • /review api-compat false positives on dead code — added a reachability pre-check so removed-but-unused exports stop firing the api-compat dimension. (#349)
  • /ground-state charter drift — read-only contract is now enforced inside SKILL.md so the skill cannot mutate state. (c7321cb)
  • Plugin sandbox escape via symlink — assertWithinPluginsDir now realpaths both parentDir and dest's dirname before the containment check. (#339)
  • Skill-frame teardown on child flushSource drain — child-stream completion no longer orphans the parent skill frame. (a6758c0)
  • Subagent stream-renderer leak on error — throttle entry is now cleaned up on the error path. (bbe85be)
  • redact credential-shaped strings in resume-swap error reasons (PR #355 H-1/H-2 follow-up) — SDK 401/403 errors during buildSession or waitForInitialization no longer echo Bearer / sk-ant-… to the terminal.
  • guard stored.startedAt with ?? Date.now() fallback so legacy stored sessions saved before the field existed do not produce NaN status-line durations after /resume.
  • reset the verdict ledger (terminal-state trajectory rail) on /resume — outgoing session trajectory no longer contaminates the resumed session.
Breaking
  • SlashContext.session type changed from AgentSession to SessionRef (breaking for external slash-command authors). Update any direct reads of ctx.session.<method> to ctx.session.current.<method>. All built-in handlers have been migrated. Required to make the mid-session swap mechanism transparent to slash commands through a stable pointer. (#355)
  • Tool schema wire-boundary projection. Internal AnthropicToolDef fields (category, concurrencySafe, riskClass) are now stripped at the wire boundary via a WireToolDef projection; the Messages API call signature is narrower. External code synthesizing tool definitions should target AnthropicToolDef (rich, internal) — the projection happens inside the provider. (#367)
  • Layering rehome. keychain, tool-category classification, telegram error predicates, and upsertEnvVar moved out of src/cli/ / src/telegram/ to their canonical homes (src/agent/auth/, src/agent/tool-category.ts, src/utils/). Re-export shims preserve backward-compat for known internal callers; deep imports into old paths from external code may need updating. (#361)
Known
  • /allow-dir filesystem grants persist across /resume — the underlying AnthropicDirectProvider is process-scoped (constructed once at bootstrap, reused by the swap), so its _sharedReadRoots cache survives session boundaries. This is intentional given the current API surface (no resetGrants exists). To revoke grants, exit and restart afk.

v2.33.0

2026-05-20
Added
  • unify REPL input surface across user and agent turns (38c1bde)
  • footer mark + complete Twitter card tags (d4cadb8)
  • Handoff Arc brand identity — bigger, brand-able mark + favicon family + OG card (cff7409)
  • phase reducer + test-runner detector + risk classifier (pure-function trio) (f9fb3f4)
Changed
  • v2.32.0 (efaf032)
  • split tool/chrome roles and retheme code-block syntax (7518a73)
  • split blue-family palette across semantic roles (c238b78)
Fixed
  • address PR #332 review — 2 bugs + 2 test gaps (98266ca)
  • repair orphan tool_use blocks to prevent 400 on next turn (d14f347)
  • anchor inline-handler subagents under their skill's lane entry (a265bbd)
  • correct-by-construction HTML conversion via placeholder pass (0ed4a79)

v2.32.0

2026-05-20
Added
  • phase reducer + test-runner detector + risk classifier (pure-function trio) (f9fb3f4)

v2.31.1

2026-05-20
Fixed
  • unblock npm publish by deflaking /tasks recency-sort test — BackgroundAgentRegistry.register() returns a snapshot copy, so post-register startedAt mutation was a no-op; on fast CI the sort fell back to insertion order. Test now stubs Date.now() before each register() so the live InternalJob.startedAt carries the intended timestamp.

v2.31.0

2026-05-20
Added
  • route GPT/o-series to openai-compatible + retire openai-codex (slice 5/5) (8ae2ab9)
  • wire openai-compatible provider + auth diagnose command (slice 4/5) (6e94ec5)
  • tool dispatch via SessionToolDispatcher (slice 3/5) (4e8e935)
  • text-only streaming end-to-end (slice 2/5) (ddfd623)
  • auth resolver + diagnostic (slice 1/5) (9ee440a)
Changed
  • Merge pull request #304 from griffinwork40/feat/openai-compatible-provider (858d9fb)
  • Merge branch 'main' into feat/openai-compatible-provider (65995e6)

v2.30.0

2026-05-20
Added
  • Phase 3 — tool schemas, handlers, CLI command, handler tests (05ff23d)
  • Phase 2 — daemon integration (notifyOn, REST routes, port file, load-persisted) (e3a7aa4)
  • Phase 1 — data layer (schedule-store + paths + tests) (523736b)
Changed
  • throttle-gate markdown render + fire-and-forget PostToolUse (9b03eb0)
Fixed
  • materialize notifyOn='failure' default at write time (f272608)

v2.29.4

2026-05-20
Fixed
  • zombie-state hardening for background work + Haiku 4.5 pricing (5e4c376)

v2.29.3

2026-05-20
Fixed
  • chronological interleave for subagent done-blocks (#328) (8ba83ea)

v2.29.2

2026-05-20
Fixed
  • forward image attachments through slash commands (C+D hybrid) (961539f)

v2.29.1

2026-05-20
Changed
  • unit tests for assertSafePluginName / assertWithinPluginsDir (#216) (5062a68)
  • document POSIX-dead startsWith('/') as Windows guard (#215) (7db4bc6)
Fixed
  • tighten KEY=value replacer to avoid misleading length=0 (#214) (9c96379)
  • refresh lastActivity on inflight createSession rejection (#213) (881903e)
  • redact secrets in scheduler errorMessage (#212) (74e99b8)

v2.29.0

2026-05-20
Added
  • wave 4 — executor wiring + create-session-factory (daf6e5f)
  • wave 3 — reply sink posts replies via threads CLI (752aef6)
  • wave 2 — classify, route, dispatch per-user agent sessions (5657b45)
  • add polling-based mention ingress (wave 1: read path) (6476164)
Fixed
  • close shared MemoryStore on daemon shutdown (36b2cd0)

v2.28.0

2026-05-20
Added
  • inline colored diffs for edit_file/write_file (#313) (6fbb370)
Changed
  • edit_file tool result format — tool_result content for edit_file is now a single-line message (e.g. Replaced 1 occurrence in path/to/file). The diff context previously appended after a double-newline (${resultMsg}\n\n${diffContext}) is no longer included in tool_result content; it is emitted out-of-band as a tool_diff event (CLI-only render channel). Consumers that parsed the multi-line format must update accordingly. (#313)
  • Shorten hero eyebrow pill so it doesn't wrap on mobile (1b2175c)
  • async-first hero copy + SEO meta updates (#312) (2dda5f4)

v2.27.1

2026-05-19
Changed
  • afk daemon is now invokable without --task or --cron; trigger defaults to sessionstart and task defaults to /forge-friction --auto when neither flag, env var (AFK_DAEMON_TASK), nor afk.config.json daemon.task provides a value (closes Daemon Gap B)
  • afk daemon --cron <expr> (without an explicit --trigger) now auto-selects cron trigger mode, matching the intent of providing a cron expression
  • afk.config.json.example updated to show the daemon.task / daemon.taskId fields
Fixed
  • default trigger to sessionstart; pass --cron flag through (Gap B) (#311) (bdf3ef9)

v2.27.0

2026-05-19
Added
  • unify /tasks across turn-detach and subagent-job facilities (20b8d2b)
  • wire BackgroundAgentRegistry into BackgroundStatusBar (8295f2d)
  • add EventEmitter surface to BackgroundAgentRegistry + BackgroundItem union (8b12d8b)
  • cap concurrent jobs + TTL eviction + cancel-source attribution (03ae081)
Changed
  • add BackgroundJobCapError teardown coverage (H-2) (a5c2a8b)
  • clarify Phase 3 commit message drafting process (a895e5f)
Fixed
  • improve join() eviction error message (M-1) + TTL eviction tests (M-3) (d2977aa)
  • store cancelSource per-job to fix cascade attribution dead code (H-1) (7f6ba33)
  • add CANCEL_DRAIN_TIMEOUT_MS to cancelAll() to prevent teardown hang (C-2) (05da7f6)
  • wire setTasksRegistry in repl-loop bootstrap (C-1) (9afd4c9)

v2.26.7

2026-05-19
Changed
  • narrow /mint routing trigger and demote from lead bullet (e36a9db)
Fixed
  • add Dispatch protocol section to enforce parallel sibling dispatch (68e88d5)

v2.26.6

2026-05-19
Fixed
  • add Write-step invariants to prevent skill_name="unknown" silent-failure (c303850)

v2.26.5

2026-05-19
Changed
  • emit in-flight badge inline via completionWriter (d612533)
Fixed
  • resolve PR #321 review blockers and majors (95c04dc)

v2.26.4

2026-05-19
Fixed
  • distinguish 'nothing-to-summarize' from 'history-too-short' (72e31c2)
  • resolve session-stuck and malformed-HTML regressions (P0) (352f46d)

v2.26.3

2026-05-19
Fixed
  • correct-by-construction fixes for fenced code, ordered lists, hr, blockquote (bab3b09)

v2.26.2

2026-05-19
Changed
  • regression tests for ordered-list renumbering + trailing newline (6e0a7ec)
  • rewrite README for the npm audience; move dev docs under docs/ (de2b70a)
  • align package metadata with proprietary status (0842463)
  • memoize disk-tier reads on the cold-start path (fd4e0cc)
Fixed
  • trailing newline after lists + ordered-list start-number honoring (108a5b6)

v2.26.1

2026-05-19
Changed
  • tool-output render registry; memory tools summarized via chunk.display upstream of truncation
Fixed
  • bash tool-lane no longer leaks truncated raw JSON for commands like gh pr view --json; structured JSON output renders as {key1, key2, …} / [N items] via the render registry
  • move tool-result rendering upstream of truncation + bash JSON summary (#302) (5c1b220)

v2.26.0

2026-05-19
Added
  • skill-invocation plumbing — types, registry, native handler, plugin-forward, review-pr (#287) (0cb3e72)

v2.25.3

2026-05-19
Changed
  • Delete .github/workflows/claude.yml (0fce048)
  • Delete .github/workflows/claude-code-review.yml (c87d4b5)
Fixed
  • improve handling of pre-aborted signals (abaf41a)

v2.25.2

2026-05-19
Fixed
  • retry transient 529/503 errors with exponential backoff (b846a8e)

v2.25.1

2026-05-19
Fixed
  • auto-start bot after allowlist save (95378a7)
  • resolve bot entrypoint in bundled dist layout (816c8d2)

v2.25.0

2026-05-19
Added
  • background mode for fire-and-forget subagent dispatch (#288) (e970152)
Changed
  • soften hero terminal prompts (d6d9765)
  • rename web_fetch tool to web_scrape (ed7115b)
Fixed
  • close JSDoc above backgroundRegistry field (db2b97a)

v2.24.0

2026-05-18
Added
  • preserve @ in file dropdown + highlight @path tokens in buffer (c4e448e)
Changed
  • BREAKING (REPL elicitation): form-mode request with no usable schema properties now
  • form-mode optional-field skip now surfaces fieldDef.default in the accept payload
  • redesign hero into 2-column grid with anchored social proof (c8ec384)
  • simplify header to Changelog + Join waitlist CTA (9b1a8cd)
  • cap section padding so trimmed content isn't dwarfed (93f77b1)
  • salvage non-overlapping wins from #298 (48b873e)
  • Feat/form mode elicitation (#284) (1819add)
Fixed
  • afk telegram start now resolves the bot entrypoint in the published flattened
  • /telegram-setup skill now auto-starts the bot after saving the allowlist
  • trim input before checking :cancel / :decline escape hatches; previously
  • required field absent from schema.properties now declines with a diagnostic before
  • between-field abort detection: form-mode now checks signal.aborted at the top of
  • cap form-mode required[] array iteration at MAX_FIELDS * 2 to bound allocation
  • emit a one-shot warning when MAX_FIELDS=64 or MAX_ENUM_VALUES=256 caps trigger,
  • synthesizeAgentEntry now computes maxWidth and passes it through to both
Security
  • sanitise all MCP-server-controlled strings (server name, message, URL, elicitation id,
  • filter __proto__ / constructor / prototype keys from MCP schema; build accept
Tests
  • add direct unit tests for sanitizeSchemaString (src/cli/_lib/sanitize.test.ts)
  • add TTY-path coverage for handleSubagentEvent asserting compositor setOverlay

v2.23.0

2026-05-18
Added
  • three-layer upgrade safety — postinstall kill, error sanitization, version drift check (3232f90)
Changed
  • accept "sure" as approval signal alongside approve/yes/lgtm (5d2fc5a)

v2.22.2

2026-05-18
Fixed
  • reduce text density and increase breathing room (#297) (04f74a9)

v2.22.1

2026-05-18
Fixed
  • Escape dismisses dropdown; uniform muted color for all trigger kinds (#282) (789f108)

v2.22.0

2026-05-18
Added
  • cap live overlay at 6 root rows with elision summary (#276) (862cf1b)
  • implement access waitlist form and update access section messaging (e265bbb)
Changed
  • remove aliases from /changelog command and update related tests (a3ee0e6)
Fixed
  • restore seedBuffer auto-submit fast-path (regression from e51ec5d) (#292) (1ba7976)

v2.21.0

2026-05-18
Added
  • Day 4b + 4c + 4d — inline-button digest + Discard/Diff/Respawn/OpenPR callbacks + schema v3 [speculative branch farm] (#273) (df7bf36)

v2.20.0

2026-05-18
Added
  • show effective cwd in the persistent bottom status line (0a2a46d)

v2.19.1

2026-05-18
Changed
  • added .vercel to .gitignore (dd50366)
Fixed
  • bust waitlist-count cache on insert + lower JS cache TTL (91836ee)

v2.19.0

2026-05-18
Added
  • seedBuffer fast-path with echo + repl-loop test coverage (PR #271 review feedback) (37cfaa6)
  • auto-rename worktrees from first user message via haiku (55600c9)
Changed
  • add coverage for T1/T10/T13/T15/T19/T21+T22 from PR #271 review (ed89c62)
  • fire first-turn hook concurrently with runTurn (P1) (7a8fe23)
Fixed
  • C1 provider.setCwd() proxy + H2 live AgentSession T19 + M4/M8 residuals (6da5d9a)
  • emit console.warn when no text blocks returned (T21b) (7c9bf00)
  • correctness fixes C1/CA2/C3/C4 from PR #271 review (6fca5c5)

v2.18.0

2026-05-18
Added
  • swap waitlist storage from Supabase to Neon (9e7ca44)

v2.17.0

2026-05-18
Added
  • subagent permission system + worktree isolation (#242) (1ffaeb7)

v2.16.0

2026-05-18
Added
  • waitlist signup via Supabase with live count in hero (3e2a003)
Fixed
  • thread session cwd through all tool handlers and surfaces (519991b)

v2.15.1

2026-05-18
Fixed
  • move subagent narration below tool children (0704363)

v2.15.0

2026-05-18
Added
  • route subagent done-blocks above prose when emitted pre-markdown (89d2d47)
Changed
  • assert agentType propagates from SubagentExecutor to renderer (7e94a0a)

v2.14.4

2026-05-18
Fixed
  • resolve /review findings on PR #275 (a187db5)

v2.14.3

2026-05-18
Changed
  • add coverage for update command, fetchLatestVersion, and banner ordering (e33da04)
Fixed
  • address PR #278 review feedback — banner, --pin, robustness (e7f148f)

v2.14.2

2026-05-18
Fixed
  • prevent heredoc newlines from corrupting tree connector rendering (76d719e)

v2.14.1

2026-05-18
Fixed
  • show update banner on startup and add afk update command (c4e48da)

v2.14.0

2026-05-18
Added
  • implement form-mode field-by-field REPL handler (330e043)
Fixed
  • collapse redundant Agent row by merging label into parent entry (4b5ea2e)

v2.13.1

2026-05-17
Changed
  • extract ReplRenderer output seam; route mid-turn writes through compositor (#272) (e51ec5d)
Fixed
  • surface truncation as warning + spill full output to disk (2892755)

v2.13.0

2026-05-17
Added
  • persist tool events in session archives (#268) (3f73a32)

v2.12.1

2026-05-17
Fixed
  • summarize memory tool JSON in tool-lane outcomes (af5cda2)

v2.12.0

2026-05-17
Added
  • centralized user-facing error handling (0943e9f)

v2.11.0

2026-05-17
Added
  • witness layer — durable trace evidence for AFK sessions (#270) (76bf752)
  • readline keybindings — history ring, /keys reference (8ea7f1d)
  • friendly usage-limit UX + auto-resume + account hot-swap (e187421)
  • render slash commands in brand orange in agent output (1936150)
  • add daily sweep automation for stale and empty worktrees (99cfd38)
  • closure ritual on /plan off — defer flip until model emits the plan (a847049)
  • per-turn system-prompt addendum when permissionMode === 'plan' (52ec054)
  • plan mode as honest safety primitive — Shift+Tab / /plan toggle with hook-level refusal (bd15a7c)
  • tool-lane rendering fixes — outcome nouns, bash cd-prefix, dispatch-children cap, fence-detection (#232) (1789348)
  • pop flag dropdown on space after slash command (fa37ba8)
  • add /telegram-setup skill with secret-isolated config helpers (8fe0369)
  • export AGENT_SURFACE=afk at startup (4ebc9a3)
Changed
  • unify raw chalk usages and fix bullet/heading semantics (83c8a4e)
  • Print resume command on interactive exit (8d8e039)
  • correct ambiguous 'SDK' wording in plan-mode comments (0bceaa5)
  • Audit/resolve findings c1 c10 (#233) (c59ed1c)
  • project headings and lists in card-line renderer (5dbf1e8)
  • project headings and lists in card-line renderer (8e93fbb)
  • document pre-split archive directory (647d432)
Fixed
  • resolve 11 of 12 deferred review findings (second pass) (6c1da05)
  • resolve 13 review findings on readline-keybindings PR (a11a217)
  • incremental subagent scrollback commit + per-source flush (0270d10)
  • filter incomplete thinking blocks before API round-trip (79e050d)
  • UX audit — state-first copy, force-exit distinction, Shift+Tab pending fix (33a1318)
  • suppress subagent prose on TTY; route to transient thinking tail (#256) (255fc39)
  • clear abortController on suspended-yield and pendingAbort early-return (9aa31b0)
  • wire subagent sink for Telegram; emit thinking summary on non-TTY (ffb0cf7)
  • tool-lane no longer leaks raw memory-tool JSON when results exceed the 80-char single-line truncation cap

v2.9.1

2026-05-16
Changed
  • bounded stalled lifecycle; replace checkPauseAnnotations (Bug #3) (929a350)
  • unify tool-use counter; isolate progress-event field (Bug #4) (412610e)
  • extract declarative assignConnectors; fix Bug #5 overflow connector (715d81e)
  • introduce CommitCoordinator; serialize scrollback writes; apply committing guard (1832a37)
  • Phase 1 failing tests — rendering bugs #1–#5 + snapshot pins (RED) (cc354bb)
  • Phase 2 rendering refactor — amended spec (post /devils-advocate) (7bfb89c)
  • Phase 0 reconnaissance — handoff brief + architecture docs (ad2c3d9)
Fixed
  • address review feedback on PR #250 (d5e5fe9)
  • postinstall works on fresh worktree; mask bot-token input in setup wizard (898b330)
  • propagate agentType at raw agent dispatch site (Bug #2) (f04b5f5)
  • clamp tree-child lines to terminal width (12e23e3)

v2.9.0

2026-05-16
Added
  • max_tool_calls_per_node budget via chained progressSink (ad07780)
  • per-node max-runtime timeout with honest abort propagation (406c93d)
  • preserve partial assistant content on failure path (36acee4)
Fixed
  • resolve three PR review issues — TDZ guard, type leak, clamp warning (4127d11)

v2.8.1

2026-05-16
Changed
  • Merge pull request #209 from griffinwork40/fix/skill-executor-child-provider (af1126c)
Fixed
  • wire child provider into forked skill children (0749128)

v2.8.0

2026-05-16
Added
  • cascade subagent thinking into parent tool/thinking lanes (f402759)
Changed
  • Merge pull request #221 from griffinwork40/feat/cascade-subagent-thinking-runtime (fcbfba8)
  • keep memory tools in READ/WRITE categories (0bdd75a)
  • add AFK.md for agent-afk CLI and architecture overview (0d840ad)
  • Merge pull request #240 from griffinwork40/claude/subagent-thinking-merge-pr-wvXy6 (c79c33b)
  • Merge branch 'main' into feat/cascade-subagent-thinking-runtime (4edc107)

v2.7.1

2026-05-15
Changed
  • drop unreleased section and per-release link buttons (ab5533f)
  • reposition around the pressure path + add founder pricing (5ded07a)
  • remove stray .afk-work worktree gitlinks (60422fb)
  • rewrite src/agent/README, drop IMPLEMENTATION.md, prune SDK refs (1e34874)
  • fix stale @anthropic-ai/claude-agent-sdk references (824ef5e)
Fixed
  • drop data-reveal from outer changelog section (5f793dc)
  • commit generated changelog.html so /changelog renders (ed45256)

v2.7.0

2026-05-15
Added
  • group same-tool siblings + categorical overflow + bash summarizer (ba43dda)

v2.6.4

2026-05-15
Fixed
  • address review findings on thinking-render-bugs (547cb78)
  • surface thinking content during turns (232697f)

v2.6.3

2026-05-15
Fixed
  • anchor fence detection to line start (fc5654d)

v2.6.2

2026-05-15
Changed
  • add telemetry-split orchestration plan (0be9561)
Fixed
  • attribute nested subagents and silence stdout debug leak (77e224c)

v2.6.1

2026-05-15
Fixed
  • align user-echo card content with inline prompt column (8019e2b)

v2.6.0

2026-05-14
Added
  • expose dispatchSkill callback on SkillExecutionContext (a4515bf)

v2.5.0

2026-05-14
Added
  • badge/ledger/events subsystem with session wiring (1cd0753)
Fixed
  • ledger shallow-copy, stats degraded-ctx message, inconclusive display; add clearRegistryForTesting; /stats tests (6c4bd46)
  • emit complete in finally so status bar clears on handler throw; refactor layer inversion (91591fe)

v2.4.1

2026-05-14
Changed
  • Merge pull request #203 from griffinwork40/worktree-shimmering-spinning-frost (b69dfef)
  • resolve conflicts with origin/main — keep PR #203 no-MessageQueue architecture, port budget enforcement (C6) to sync transformProviderEvent (2c90daf)
  • Merge branch 'main' into worktree-shimmering-spinning-frost (b6c5da5)
Fixed
  • update budget tests to use transformProviderEvent; fix loop translatorErrored to emit turn.completed on abort only (bb420ab)
  • restore timeout enforcement, remove unsafe getOutputStream (cb0cdb0)
  • remove MessageQueue indirection, fix interrupt crash (d30c95c)

v2.4.0

2026-05-14
Added
  • C6 --max-budget-usd is now enforced: AgentSession accumulates totalCostUsd from each turn.completed event and aborts the internal AbortController when the ceiling is crossed. The abort reason surfaces as "Budget ceiling reached: $X.XXXX >= $Y.YYYY".
  • C9 WAL supersede crash window narrowed: supersedeFact() now stores (old_content, old_created_at, new_content, new_created_at) fingerprints in the supersede WAL entry alongside the legacy (old_fact_id, new_fact_id) rowids. replayWAL() resolves fingerprints to current rowids first, falling back to raw rowids for pre-fix WAL entries.
  • render skill tool children + spinner elapsed time (d4e48b6)
  • enforce --max-budget-usd via turn.completed cost accumulation (C6) (8e1a223)
Changed
  • include parentId in fork assertion (9968994)
  • drop stale "atlas" surface variant (305972c)
  • add clarifying comments for colon-separator caveat and Telegram permissionMode (6c0ebcf)
  • fix symlink test — existsSync guard + AFK_WRITE_DENYLIST symlink case (0c6646e)
  • resolve PR #211 review findings — C2/C3/C4/C5/C6/C9 (0945a2d)
  • harden plugin paths, permission default, write_file denylist, bash warning, telemetry redaction (C1-C4, C10) (967a285)
  • refresh to match v2.3.x architecture (34f094d)
  • wire coverage gate into CI + add real loop.ts tests (3166367)
  • prune slop tests, enforce coverage floor (4811e64)
Fixed
  • C5 Telegram SessionManager.getSession() race condition: concurrent calls for the same chatId now share a single in-flight creation Promise via a pendingSessions guard, preventing duplicate session spawns.
  • C7 parseProvider() in shared-helpers.ts now accepts an optional memoryStore parameter and threads it into the constructed AnthropicDirectProvider, ensuring only one SQLite connection is opened when --provider anthropic-direct is passed explicitly. Applied in both chat.ts and interactive/bootstrap.ts.
  • C8 runDAG in dag.ts leaked an AbortSignal listener on the outer signal when the DAG completed normally. Fixed by using a named handler (forwardAbort) removed in a finally block. Per-node listeners are also explicitly removed in finally after each node completes.
  • idempotent supersedeFact on UNIQUE constraint collision (3419306)
  • throw BudgetExceededError instead of bare return on budget abort (917f7a9)
  • add memory tools to interactive REPL allowlist (0a2b2b0)
  • WAL supersede crash window — store content fingerprints instead of raw rowids (C9) (e9f5fde)
  • correctness fixes — session-manager race guard, dual MemoryStore, DAG signal leak (C5, C7, C8) (1567f7d)
  • fix list newline collapse and card border off-by-one (5d8cf8f)
  • show all rawBody lines in asking verdict card fallback (ee9dad8)
  • categorize memory_search/memory_update/procedure_write tools (5b3733f)
  • prevent schema mismatch on hypothesis synthesis (a9944de)
  • wrap blockquote content before prefixing with bar (20b108b)
  • add newline wrapping for H3+ headings (1aa9aae)
Security
  • C1 Plugin/marketplace path traversal: validate manifest name with SAFE_PLUGIN_NAME regex and assertWithinPluginsDir() before any join()-based directory creation in src/agent/plugins/install.ts and src/agent/marketplaces/install.ts.
  • C2 permissionMode default changed from 'bypassPermissions' to 'default' in session-setup.ts. Callers that previously relied on the implicit bypass must now pass permissionMode: 'bypassPermissions' explicitly in their AgentConfig.
  • C3 write_file now refuses to write to a built-in denylist of credential/system paths (~/.ssh, ~/.aws, ~/.gnupg, ~/.config/gcloud, /etc, /System, /private/etc, /usr/local/etc). Additional paths can be appended via the AFK_WRITE_DENYLIST env var (colon-separated absolute paths).
  • C4 bash handler now emits a one-time [security] warning to stderr when AFK_PERMISSION_MODE=bypassPermissions, surfacing the shell-injection risk. Full execFile migration is deferred (tracked C4).
  • C10 Scheduler telemetry (forge-telemetry.jsonl) now runs redactInlineSecrets() over both the command and responseExcerpt fields before writing. INLINE_SECRET_PATTERNS extended to cover OpenAI sk-* keys, Telegram bot tokens, and mixed-case KEY=/TOKEN= patterns.

v2.3.1

2026-05-14
Fixed
  • repair release pipeline + dev start scripts (c83ede0)

v2.3.0

2026-05-14
Added
  • add /init slash command to scan project and generate AFK.md (af56752)

v2.2.0

2026-05-14
Added
  • nest compose-spawned subagents under the compose tool-lane entry (90bea64)
Fixed
  • resolve review findings on compose subagent nesting (#202) (a627cab)

v2.1.0

2026-05-14
Added
  • background tasks — Ctrl+B detach, /bg, persistent status bar (#196)
  • clipboard failure msg, debug logging, dual-probe
  • add Ctrl+X to discard clipboard image attachments
  • auto-discover project-level AFK.md as system prompt source (#186)
  • background tasks — Ctrl+B detach, /bg, persistent status bar (#196) (0209cb4)
  • clipboard failure msg, debug logging, dual-probe (88a3114)
  • add Ctrl+X to discard clipboard image attachments (c68e47c)
  • auto-discover project-level AFK.md as system prompt source (#186) (4061d7c)
Changed
  • add guidelines for ordered-operation sequences
  • add 'Crafted by Griffin Long' footer credit linked to graisol.com
  • bump version to 2.0.0 and update changelog (4395866)
  • add guidelines for ordered-operation sequences (70a65b4)
  • add 'Crafted by Griffin Long' footer credit linked to graisol.com (26b12c2)
Fixed
  • pass full user input to recordTurn for background tasks
  • resolve review findings on background tasks (#200)
  • preserve paragraph breaks in stripCommandTags and extractSkillTag (#201)
  • move console.log before compositor arm to prevent ghost spinner
  • close research-agent contract gap + harden mint invariant
  • pass full user input to recordTurn for background tasks (de62c22)
  • resolve review findings on background tasks (#200) (0c8fb76)
  • preserve paragraph breaks in stripCommandTags and extractSkillTag (#201) (7f7c636)
  • move console.log before compositor arm to prevent ghost spinner (af028fc)
  • close research-agent contract gap + harden mint invariant (e528568)

v1.21.0

2026-05-14
Added
  • add afk-worktrees-status.sh read-only inspector (#198) (eaeaaa7)

v1.20.0

2026-05-13
Added
  • add send_telegram built-in tool for operator notifications (#187) (c7150a1)

v1.19.0

2026-05-13
Added
  • surface execution trace from child sessions to parent (#193) (4af131b)

v1.18.0

2026-05-13
Added
  • push primitive + onTaskComplete callback for daemon (#160) (eea6063)
Changed
  • Feat/orchestration (#188) (1b42c6a)
Fixed
  • SubagentExecutor success path now coerces non-string message.content (e.g. SDK

v1.17.0

2026-05-13
Added
  • add Phase 1 triage, named outcomes, and multi-file routing (#194) (6465414)
Changed
  • Feat/landing changelog page (#190) (7a35bb8)
  • Fix/clipboard image paste (#189) (4a21501)

v1.16.1

2026-05-13
Fixed
  • decouple AFK telemetry from ~/.claude/agent-framework (#191) (01160ba)

v1.16.0

2026-05-13
Added
  • repaint stage rail on transitions + enable extended thinking by default (4750263)

v1.15.2

2026-05-13
Fixed
  • add blank line between paragraphs in markdown rendering (c4949d7)

v1.15.1

2026-05-13
Fixed
  • render inline markdown in card bodies (#165) (0d803a6)

v1.15.0

2026-05-13
Added
  • activate compose tool in production entrypoints (#185) (3d93f00)

v1.14.6

2026-05-13
Fixed
  • resume on JSON-string {userApproved:true} from skill-tool boundary (#166) (f7387d3)

v1.14.5

2026-05-13
Fixed
  • truncate /skills descriptions and add detail view (#181) (905edb9)

v1.14.4

2026-05-13
Fixed
  • per-call signal check in executeBatch parallel branch (#182) (4c87ee7)

v1.14.3

2026-05-13
Fixed
  • repair clipboard image paste on macOS (Cmd+V + binary readback) (#163) (7b6e0d7)

v1.14.2

2026-05-13
Fixed
  • normalize paragraph spacing and fix overlay alignment (#184) (7cc3752)

v1.14.1

2026-05-13
Fixed
  • restore cursor, honest spinner, durable interrupt notice, honest --stream (#183) (e50c1ba)

v1.14.0

2026-05-13
Added
  • add compose tool for DAG-based parallel subagent orchestration (#173) (a78027f)

v1.13.4

2026-05-13
Fixed
  • use dirname on fileURLToPath before joining relative paths (1251a74)

v1.13.3

2026-05-13
Fixed
  • auto-submit queued messages instead of requiring a second Enter (92a1c83)

v1.13.2

2026-05-13
Fixed
  • update description for clarity and improve commit process guidance (e986f1c)

v1.13.1

2026-05-13
Fixed
  • add memory tools to allowlist and prevent dangling tool_use on abort (6162b2c)

v1.13.0

2026-05-13
Added
  • add completion glyphs to tool result display (8d0d756)

v1.12.0

2026-05-13
Added
  • add auto-update checker with notify/auto/off policy (bbc9ae5)

v1.11.0

2026-05-13
Added
  • improve subagent visibility in nested skill runs (eed3ba6)

v1.10.4

2026-05-13
Fixed
  • convert skill-name XML tags to styled badges and fix tool glyph casing (b754e41)

v1.10.3

2026-05-13
Changed
  • broaden skill to accept PR numbers, SHAs, branches, and patch files (246824c)
Fixed
  • eliminate streaming line duplication and table garbling (ca6a204)

v1.10.2

2026-05-13
Fixed
  • correct skill count, add email fallback, ship OG image (640521a)

v1.10.1

2026-05-13
Fixed
  • add blank line between user input and agent response (44107d6)

v1.10.0

2026-05-12
Added
  • highlight slash commands anywhere in the input buffer (d5e570c)

v1.9.0

2026-05-12
Added
  • add system prompt instructions for cross-session memory tools (1421e8e)
Changed
  • bump version to 1.8.1 (7bfa67a)
  • update CLI entry points to use .mjs extension for improved module compatibility (678ce17)
  • consolidate duplicated 1.8.0 Added subhead (88be7f3)

v1.8.0

2026-05-12
Added
  • Telegram bot integration: afk telegram {start|stop|status|restart|logs|setup} CLI subcommands (#154) (f2eb50d)
  • User-scope config at ~/.afk/config/afk.env — Telegram tokens and allowlist stored outside the project tree
  • afk telegram setup interactive wizard with keychain/file/env token storage options
  • File-authoritative override for Telegram config keys: ~/.afk/config/afk.env wins over shell env for TELEGRAM_BOT_TOKEN, AFK_TELEGRAM_ALLOWED_CHAT_IDS, TELEGRAM_VERBOSE, TELEGRAM_DATA_DIR
  • Bot identity validation at startup via getMe before handing token to Telegraf
Fixed
  • Shell-shadowed bot token: file value now overrides stale shell exports for Telegram-specific keys (inverse of dotenv precedence, intentional for operator-managed config)

v1.7.0

2026-05-12
Added
  • cross-session memory system + mint state persistence (#115) (40231c6)

v1.6.0

2026-05-12
Added
  • add --dump-prompt debug flag for SDK prompt verification (#34) (c49fb7d)

v1.5.1

2026-05-12
Fixed
  • show early tool-use indicator during model generation (#123) (0b91592)

v1.5.0

2026-05-12
Added
  • add /changelog page rendered from CHANGELOG.md (#158) (90f413c)
Fixed
  • improve terminal rendering spacing and wrapping (#156) (72adfa7)
  • include bundled plugins in system prompt manifest (#153) (7d64db8)

v1.4.0

2026-05-12
Added
  • surface parallelize-dispatch failures via discriminated union (#152) (47caa39)
Changed
  • Enhance routing telemetry with detailed event structure and telemetry emission
  • phase 1 orchestration pressure — frame main session as coordinator
  • add orchestration pressure audit (d0a03a3)
Fixed
  • handle drainQueue rejection in processOne finally (5bc2690)
  • preserve slash command highlighting after submission (3afa120)

v1.3.1

2026-05-12
Changed
  • address review feedback from #151 review (3395c33)
  • co-locate unit tests with the files they exercise (56a6d36)
  • add colocate-tests migration helper (3dfd2aa)
Fixed
  • reset context bar on /clear (1b5f637)
  • flush tool lane to scrollback on subagent done (ab8dea6)

v1.3.0

2026-05-11
Added
  • runtime positioning + reversibility-aware autonomy section (1a3af3f)
Fixed
  • correct overclaims, restore working CTA (639790d)

v1.2.1

2026-05-11
Added
  • add /changelog command to generate release entries from git log
  • bundle orchestration skills into the binary
  • auto-refresh OAuth token on 401 instead of crashing
  • implement word and line deletion commands
  • make AFK's execution shape legible — verdict cards, stage rail, ledger
  • add failure geometry to SALVAGE rework prompt
Changed
  • unify feedback on spinner, kill thinking indicator
  • add Failure Geometry documentation to outline agent workflow design patterns
  • centralize last hardcoded ~/.claude/ path in audit-fit
  • centralize path resolution on AFK_HOME, fix surface tags
  • opt actions into Node.js 24 (FORCE_JAVASCRIPT_ACTIONS_TO_NODE24)
  • extract shared utils + add auto-release CI (328ae85)
Fixed
  • stream subagent content in real time during skill execution — replaces line-buffered rendering with StreamingMarkdownRenderer so users see live markdown output instead of a spinner
  • harden /changelog flag parsing and improve test mocks
  • resolve review findings in /changelog command
  • add 401 retry integration tests and deduplicate concurrent refreshes
  • persist assistant turns in message history
  • restore plain bullets in /changelog (PR #145 H-1) (3432991)
  • resolve PR #145 review blockers (e1acf82)
  • resolve review blockers — dedup, atomic writes, correct dist path (4cd81b2)
  • strip command breadcrumb XML tags from rendered output (#142) (a0812a6)
  • add spacing around tool-lane flush in stream renderer (1bbd7a9)
  • recognize informal approval patterns in parseMintInput (e9f8a60)
  • correct inflated context-% meter on anthropic-direct (#143) (aff2475)

v0.2.4

2026-05-10
Added
  • ~/.afk/ config home — CLI, Telegram, and daemon resolve user-scope state there, decoupling AFK from ~/.claude/
  • Plugin auto-discovery (~/.afk/plugins/) and afk plugin {install|update|list|remove|enable|disable} CLI (git-based MVP, no marketplace)
  • 1M-context model variants (opus_1m, sonnet_1m)
  • Bracketed-paste input box with atomic multi-line paste handling
  • Terminal resize reflow — width-aware boxes, dividers, status line, todo panel, streaming markdown commit wrap (ResizeBus + wrap-ansi)
  • Plugin-skill SDK bridge — /skills, /reload-plugins, /agents via passthrough handlers; replaces the bespoke skill-bridge.ts stubs
  • Beautiful-TUI: live progress lane, context-pane (todo surface above prompt with structural-fingerprint dedupe), shared InputCore powering compositor + input-box, palette heading/label semantic roles, width-aware debug banner
  • Provider abstraction (src/agent/providers/{anthropic,openai-codex}.ts) — model family selects the runtime backend via providerForModel()
  • AbortGraph — transitive parent→child cancellation across subagent trees
  • withTimeout / TimeoutError helpers
  • Zod outputSchema on SubagentResult<T> and ForkSubagentOptions — extraction + parsing in src/agent/subagent/{handle,result}.ts
  • Hooks infrastructure — SessionStart/End, SubagentStart/Stop, PreToolUse/PostToolUse with decision: 'block' short-circuit
  • --model pass-through for non-Anthropic routes — auto, full SDK IDs, and codex models flow through to the SDK untouched
  • SDK dependency tracking — pnpm audit:sdk snapshot + .sdk-dependency.lock.json allowlist + CI gate via pnpm audit:sdk:check
Changed
  • All AFK state lives under ~/.afk/, never ~/.claude/
  • Project is pnpm-only — npm install will desync the lockfile
Fixed
  • StreamEvent schema — delta.type made optional to tolerate message_delta events (was hard-failing every successful turn)
  • /clear rebuilds the SDK session instead of forwarding a string
  • listSessions skips SDK PID-registry sidecars; /resume formatter guards NaN / undefined timestamps
  • CLI: tool names and file paths now surface in interactive output

v0.1.0

2026-02-09
Added
  • Initial release
  • Project infrastructure
  • Testing framework
  • Basic CLI commands