Changelog 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) 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) 2026-09-13
Added overhaul chat UI with topology spine (#1635) (d0af56f9) 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) 2026-09-12
Fixed drop envelope fallback in call() for void-result methods (#1629) (#1637) (04705f23) 2026-09-11
Fixed replace emoji logo with Handoff Arc brand mark (#1634) (c4011bc9) 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) 2026-09-10
Added hierarchical subagent tree, settings view, and bg-jobs polish (#1625) (5d8d7be0) 2026-09-10
Fixed align AgentBrowserClient with Agent Browser v0.3.0 API (#1627) (a8035282) 2026-09-10
Changed convert markdown repaint debounce to leading+trailing throttle (#1626) (f120924c) 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) 2026-09-10
Fixed align design tokens with AFK brand theme (#1624) (c1d8ae73) 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) 2026-09-09
Fixed resolve 401 errors in Vite dev mode (#1599) (47f85347) 2026-09-09
Fixed wave 1 - hook executor wiring, EBUSY fix, POSIX test portability (#703) (#1578) (9990099a) 2026-09-09
Added port @-file, model selector, and queue panels to React (#1605) (495a0614) 2026-09-09
Added wire slash-command dispatch into web UI prompt path (#1598) (4c0be1ea) 2026-09-09
Fixed approval error feedback and stable React keys in memory view (#1587) (#1592) (00fbbdd0) 2026-09-09
Fixed add URL scheme allowlist to MarkdownContent links (#1590) (9832092c) 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) 2026-09-09
Changed deduplicate ledger-adapter to single source of truth (#1582) (#1596) (5f13806c) 2026-09-09
Added React dashboard - full implementation (Phases 1-5) (#1580) (ae5d5e9b) 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) 2026-09-09
Added TUI-parity upgrade with 5 panels, emission wiring, and full audit fixes (#1572) (343687f8) 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) 2026-09-08
Added add schedule CRUD UI to afk web (#1570) (35bd80f0) default-on Done verification for unattended execution (#1571) (8d98e8ff) 2026-09-08
Fixed address rolling tail review feedback (#1569) (0ba10c86) 2026-09-08
Added live rolling tail during long-running commands (#1506) (#1568) (d46be13a) 2026-09-08
Fixed close TOCTOU window in persistRouteAndMessageId (#1557) (#1567) (5b1663bc) 2026-09-08
Added wire rich handoff sender into daemon elicitation path (#1550) (#1555) (11f20e74) 2026-09-08
Added resource-level fingerprinting and tested analyzer (#1537) (#1554) (846e865f) 2026-09-08
Changed move worktree-* cluster into src/agent/worktree/ (#1561) (2382f84c) 2026-09-07
Added reactive workspace subscriptions via workspace_subscribe (#1418) (#1560) (3ba59f00) 2026-09-07
Fixed address #1558 review feedback -- revert OAuth and capture defaults (#1559) (8ae06419) 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) 2026-09-07
Added honor allowCustom in durable handoff questions (#1551) (#1553) (cacfe68b) 2026-09-07
Fixed re-read record in persistRouteAndMessageId to prevent race (#1549) (#1552) (b1fd4ccf) 2026-09-07
Added auto-reclaim locked worktrees when preservation reason expires (#1545) (#1548) (480d45bb) 2026-09-07
Added wire durable handoff answers into Telegram (#1416) (#1533) (f4e07c4c) 2026-09-07
Added add orient skill to awa-bundled (#1546) (b4681c2a) 2026-09-07
Fixed detect resize while disarmed via snapshot, not listener (#1544) (ac415758) 2026-09-07
Added configurable preview size with head/tail line count (#1542) (c9cdcc4f) 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) 2026-09-07
Changed remove Steer option from interrupt picker (#1531) (1b8c00cd) 2026-09-07
Fixed spine severed on multi-line tool outcomes in nested tree (#1530) (5ee8454a) 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) 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) 2026-09-06
Fixed warn on Ctrl+B promotion of non-isolated write-capable child (#1513) (#1524) (de04805e) 2026-09-06
Fixed regenerate env-registry docs and harden test cleanup (#1522) (#1525) (d00d8f18) 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) 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) 2026-09-06
Added widen left gutter to 3-space indent (#1509) (7a94d1da) 2026-09-06
Added tighter prose measure for non-code blocks (#1510) (e645de8d) 2026-09-05
Added improved bash output visibility in TUI (#1500) (88091f9e) 2026-09-05
Added child-to-parent progress events via emit_progress tool (#1418) (#1504) (e6ea06d6) 2026-09-05
Added add turn-boundary separator between conversation turns (#1508) (2a9e657d) thread trigger into spawnSession and wire handoff handler (#1416) (#1498) (d6619f02) 2026-09-05
Changed centralize subagent model resolution into resolveChildModel() (#1499) (db62c706) 2026-09-05
Added show inline colored diffs for patch_apply tool (#1497) (87c4d4d4) 2026-09-05
Added mid-run agent steering via tool-call boundary injection (#1418) (#1494) (78c13734) 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) 2026-09-04
Fixed add stale-guard to terminal-compositor lifecycle redraw (#1487) (#1490) (53c8f2b5) 2026-09-04
Added auto-cap oversized foreground results with sidecar spill (#1491) (de65c1e5) 2026-09-04
Fixed deduplicate wave-resume offers across session starts (#1489) (7b4b1877) 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) 2026-09-04
Fixed contain project-local MCP stdio server env (#578) (#1483) (d454a30e) 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) 2026-09-04
Fixed reconcile grant-manager divergences (#500) (#1479) (a069a8e5) 2026-09-04
Added live parallel-batch indicator during pending window (#516) (#1485) (d011a388) 2026-09-04
Added compositor A2 — Stage 2 + Stage 3 (#540) (#1486) (ec728f5f) 2026-09-03
Fixed suffix viewport for long input in mid-turn prompt (#1477) (#1478) (9185b471) 2026-09-03
Fixed guard computeIdempotencyKey throw in pre-hook (#1475) (#1476) (7534f3ea) 2026-09-03
Fixed add breakLongWords to todo-panel wrapToWidth (#1455) (#1466) (3c153306) 2026-09-03
Fixed apply width guard to slash writer raw() on TTY (#1456) (#1470) (dcfc1264) 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) 2026-09-03
Added external-effect and idempotency ledger (#1412) (#1440) (32609e37) Fixed apply width guard to elicitation fallback writers (#1458) (#1465) (acb45cdb) 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) 2026-09-03
Fixed restore statSync optimization and session_id trace path (#1464) (422182ff) 2026-09-03
Fixed add breakLongWords to wrapToWidth, harden padDisplayRight (#1451) (ef050386) 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) 2026-09-03
Added canonize facets as the primary session-level query surface (#1450) (b9b2e310) 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) 2026-09-02
Changed remove dead TTFB code after double-spinner fix (#1448) (bc9790e5) 2026-09-02
Fixed suppress redundant TTFB "Generating…" spinner (#1445) (1fc6914d) 2026-09-02
Added safe web_request tool with SSRF guard and risk classification (#1413) (#1439) (af19d227) 2026-09-02
Changed generate env getters from ENV_REGISTRY instead of hand-maintaining (#830) (#1441) (9aa94132) 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) 2026-09-01
Added wave 1 parallel issues — #1402, #1404, #1407, #1431, #1433 (#1434) (24d18857) 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) 2026-09-01
Fixed lazy-load playwright to fix Next.js standalone import (#1428) (#1429) (db9a2fc9) 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) 2026-09-01
Added wire newsletter funnel links across README, CLI, and docs (#1406) (522a20bb) 2026-08-31
Fixed gate expired chatgpt-oauth tokens instead of passing opaque 401 (#555) (#1394) (6fea8329) 2026-08-31
Added extract costTokenParts into shared component (#1401) (#1409) (7b418e8a) 2026-08-31
Fixed deduplicate terminal-state rendering -- verdict card only (#1405) (81e64720) 2026-08-31
Fixed handle chatgpt-oauth in standalone oneshot auth path (#555) (#1393) (85c38f31) 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) 2026-08-31
Fixed reconcile 3 dispatcher/provider behavior divergences (#500) (#1396) (ce143232) 2026-08-31
Fixed resolve open issues #740, #654, #555 (bash grant policy, openai-compat test debt, chatgpt-oauth follow-ups) (#1395) (31aba866) 2026-08-31
Fixed surface durationMs via public handle API and route stdin through compositor (#1346) (#1390) (cec9a458) 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) 2026-08-31
Fixed make auth diagnose slot-aware for chatgpt-oauth (#555) (#1389) (21cafcf4) 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) 2026-08-30
Added code quality contract, verification evidence classifier, temperature plumbing (#1386) (73542f95) 2026-08-30
Fixed remove dispatch cast and add whenToUse precedence test (#1385) (8db1ae0d) 2026-08-30
Fixed wire pluginSkill.whenToUse into /skills detail card (#1383) (255ab5d4) 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) 2026-08-30
Fixed strip orphaned trailing ** from parsed field values (#1375) (859793f6) 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) 2026-08-29
Changed unify duplicate $() helpers with consistent null-safety (#1347) (#1367) (5bbd065d) 2026-08-29
Added pre-execution diff preview for edit_file (#1366) (07f13a73) 2026-08-29
Fixed retire pathApprovalGrantRef + Gate 1/Gate 2 containment regression test (#1364) (df87736c) 2026-08-28
Fixed proactive OAuth token refresh timer (#1296) (#1363) (4e074928) 2026-08-28
Added add /ghost and /suggestions slash commands (#1365) (e44a5800) 2026-08-28
Fixed register diagnose, false-completion-gate, fix-pr, polish in update-hash-pins.ts (#1362) (5744d246) 2026-08-28
Added wire toolCard into task-view + fix duplicate barrel export (#1361) (3255790b) 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) 2026-08-28
Fixed formatTokenCount boundary shows '100.0k' at 99999 (#1328) (#1348) (024c9325) 2026-08-28
Fixed log errors from enterTaskViewMode instead of swallowing (#1334) (#1357) (fc31c3dd) 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) 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) 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) 2026-08-28
Added add ToolCard component (#1341) (03c3b082) 2026-08-28
Added show running/total subagent count (#1342) (#1344) (500c2ff8) 2026-08-28
Added add InterruptPeek component (#1339) (e6c6a47b) 2026-08-28
Changed migrate errorBox to errorCard, remove old component (#1337) (db0bb911) Fixed block direct launchctl/systemctl service registration (#1311) (09de4da0) 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) 2026-08-28
Changed extract hydrateStatsFromStore from session-manager.ts (#1288) (4bbbe465) 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) 2026-08-27
Changed add guideline against using emdashes (08550970) Fixed seed context-overflow guard from restored session usage (#1294) (#1304) (a210965e) 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) 2026-08-27
Added add tool_name filter to search_witness (#1314) (40687d88) 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) 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) 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) 2026-08-26
Fixed guard code-block register with enabled flag (#1289) (#1300) (c9c205d6) 2026-08-26
Changed extract watch command handler from bot.ts (#1290) (5b681553) 2026-08-26
Changed extract paused-event handler from turn-handler.ts (#1291) (c1666ff6) 2026-08-25
Fixed cap list_directory output at 500 entries (#1292) (aff2d362) 2026-08-25
Fixed skip node_modules in plugin skill discovery walk (#1297) (b086417b) 2026-08-25
Added add Steer option to interrupt-picker (post-stop redirect) (#1268) (473cda2f) 2026-08-25
Fixed render block-level markdown (tables, code) in verdict cards (#1295) (d26ada64) 2026-08-25
Added add /copy slash command with render-time code block capture (#1285) (e4c1844e) 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) 2026-08-25
Fixed resolve autoRoute thread at send time, not tick time (#1271) (#1273) (cab2217b) 2026-08-25
Added wire reconcileWaveManifests into session startup paths (#1082) (#1266) (c9fcac8f) 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) 2026-08-24
Added add OpenAI models to /model picker (#1258) (#1274) (e45e35f9) Fixed keep auto-watch routes current (#1270) (7c2ca4b2) 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) 2026-08-24
Fixed UI polish — code lang badge, centered transcript, blockquotes, transitions (#23-30) (#1201) (5f9eafea) 2026-08-24
Fixed route auto-subscribe watch output to active topic thread (#1222) (#1262) (a013af50) 2026-08-24
Changed extract pure resolution chain from forkSubagent (#1265) (e9951979) 2026-08-24
Fixed add xAI/Grok models to /model picker and docs (#1105) (#1263) (77717022) 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) 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) 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) 2026-08-24
Fixed enforce version floor on ~/.grok/version.json reads (#1249) (d49ae2ec) 2026-08-23
Added add system prompt instructions for workspace tools (#1248) (467e616f) 2026-08-23
Changed extract Enter/Tab handlers from handleKeypress (#1072) (#1247) (24890ad6) 2026-08-22
Fixed suppress duplicate header seam between consecutive tables (#1246) (ff9e8f31) 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) 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) 2026-08-21
Added mechanical Windows compatibility pass (#703) (#1215) (0e131e2d) 2026-08-21
Fixed send valid Grok CLI version to proxy (#1242) (0c821d26) 2026-08-21
Changed replace demo placeholder with live video (80464c95) Fixed eliminate phantom blank rows from double-setOverlay race (#1243) (f35793c6) 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) 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) 2026-08-20
Fixed visual affordances — chevron, diff colors, pulse dot, stop feedback, tool digest (#9,#10,#11,#13,#16) (#1198) (34abf523) 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) 2026-08-20
Added plain-language pass on user-facing chrome for non-technical readability (#1228) (877443d2) 2026-08-20
Added live elapsed counters on in-flight tool/subagent overlay rows; fix stalled tick loop (#1225) (50000443) 2026-08-20
Added plain-output progress parity — tool/subagent lines + TTFB cleanup (#1226) (fa349e16) 2026-08-20
Fixed stop bgStatusBar and mascotBar during pager/editor handoffs (#1170) (#1193) (cf7c5edc) 2026-08-20
Added model-facing background-job cancellation scoped by provenance (#1227) (6b46177a) 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) 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) 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) 2026-08-19
Fixed thread workspaceStore through root manager, skill phases, and permission gates (#1213) (ed7cd385) 2026-08-19
Fixed resolve cold-start chicken-and-egg in workspace preamble (#1209) (9622916b) 2026-08-19
Fixed cold-start hint + compose executor wiring gap (#1214) (3a16ca51) 2026-08-19
Added enable background subagent dispatch + improve bg/fg guidance (#1212) (9e1b81ce) 2026-08-19
Fixed preserve newlines when splitting long messages at 4096-char boundary (#1206) (ca27a31f) 2026-08-19
Added virtual-scroll picker with fuzzy search and relative timestamps (#1189) (a0e2d8f6) 2026-08-19
Added auto-scroll to bottom on keypress when scrolled up (#1208) (#1208) (f8d45484) 2026-08-19
Added add argsFingerprint to tool_call events + dedup measurement harness (#1205) (bc5e7678) 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) 2026-08-19
Added allow read-only bash redirection to $TMPDIR (#881) (#1158) (3d403d3d) 2026-08-19
Fixed SSE resilience — permanent error handling, composer disable, jitter (#8,#12,#27) (#1199) (ff24db4b) 2026-08-19
Fixed use authoritative contextLimitFor instead of stale heuristic (#1194) (768c7e2b) 2026-08-19
Fixed use basename for PAGER path comparison in resolvePager (#1171) (#1192) (d6fc6f9f) 2026-08-18
Added support isolation:"worktree" with mode:"background" (#1185) (1b93bffe) 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) 2026-08-18
Added accept inbound documents (text, code, PDF) (#1183) (151c662e) 2026-08-18
Fixed resolve session human names in read_witness and search_witness (#1184) (950fa781) 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) 2026-08-18
Fixed clear apiRoundInFlight in streamResponse finally block (#1180) (fc1660b5) 2026-08-18
Fixed suspend footer writers during pager/editor handoffs (#1168) (9513e1f7) 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) 2026-08-18
Fixed recover from ghost EADDRINUSE by falling back to alternate loopback (#1161) (7ae7b5b4) 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) 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) 2026-08-18
Fixed reject unknown subcommands instead of falling through to interactive (#710) (#1137) (2527b2c5) 2026-08-18
Fixed stop killing telegram bot mid-session on upgrade (#1160) (165a0370) 2026-08-18
Fixed correct sessionsScanned to report post-filter count accurately (#1035) (#1136) (169486da) 2026-08-18
Fixed use refreshed token as fallback for locked keychain (#1135) (50ae14d3) 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) 2026-08-18
Fixed suspend watchdog during inter-round API calls (#1135) (#1141) (7ea04673) 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) 2026-08-18
Changed eliminate 3-subagent dispatch overhead in pre-flight recon (#1134) (ca46b160) 2026-08-17
Fixed refresh expired keychain OAuth before checking (#1131) (#1133) (866df03d) 2026-08-17
Fixed thread topic opts into auto-subscribe watch output (#1023) (#1125) (d651192f) 2026-08-17
Fixed surface partial tool results on empty-buffer stream cut-off (#724) (#1126) (3370b4d1) 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) 2026-08-17
Fixed resolve 5 subagent issues — DAG root bypass, manifest settlement, type narrowing, barrel export, stale docs (#1121) (04e337f9) 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) 2026-08-17
Added slash-complete anywhere, @-file subsequence, Linux image paste, Ctrl-R reverse-search (#1116) (fa23b2a2) 2026-08-17
Changed shrink streamResponse (#890, #1073) (#1110) (517e6d5d) 2026-08-17
Added status-line turn/budget indicator + parallel fan-out count (#516) (#1113) (6fb028f0) 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) 2026-08-17
Fixed refresh expired OAuth token at startup before sync credential read (#1111) (91357ead) 2026-08-17
Changed add terminal-width discipline audit gate (#939) (#1107) (7567453a) Fixed guard against stale detectorVersion replay (#860) (#1108) (0e20b32d) 2026-08-17
Changed remove dead altDescription field + annotate fail-soft swallows (#503) (#1106) (ac20fd14) 2026-08-17
Fixed use flushCompletedRoots on dispose path to prevent blank-row gaps (#1100) (c1f4486d) 2026-08-17
Changed reduce nesting depth in executeBatch (#1074) (#1099) (2d95f20a) 2026-08-17
Changed extract stream-renderer options, process, and dispose into concern siblings (#1103) (d282998c) 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) 2026-08-17
Changed extract helpers from readWithAutocompleteTty god function (#1072) (#1097) (fb5de645) 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) 2026-08-16
Changed extract renderMarkdownToTerminal god function into concern siblings (#1081) (#1094) (6d1a89e3) 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) 2026-08-15
Fixed track unpriced turns instead of coalescing unknown cost to zero (#866) (#1010) (3014e76f) 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) 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) 2026-08-14
Added extend injectContext to PreToolUse (block path) (#1088) (b423000a) 2026-08-14
Added add enable flag to cancel_schedule for re-enabling tasks (#1085) (bea30e69) 2026-08-14
Changed demote directive-class gate skills to prompt directives (Wave 4 partial) (#1084) (8792f6f5) 2026-08-14
Changed extract shared pricing lookup into providers/shared/pricing-utils.ts (#1078) (bac408c8) 2026-08-14
Changed separate MAX_SEARCH_MATCHES from MAX_LIMIT (#1037) (#1046) (2627623c) Fixed delegate marketplace plugins to updateMarketplace (#1011) (cc0b2d00) 2026-08-14
Added wave manifest for interrupted session recovery (#940) (#1049) (dfda3445) 2026-08-14
Changed extract duplicated escapeRegExp into src/utils/regexp.ts (#1066) (#1079) (5ccb9209) 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) 2026-08-14
Added process-wide admission control for outbound API requests (#941) (#1050) (6f473544) 2026-08-14
Fixed widen flaky timing threshold in dispatcher compose parallelism test (#1065) (a5b401d4) 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) 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) 2026-08-13
Fixed accept bare "max" as alias for "enabled:max" in --thinking parser (#1052) (50879d31) 2026-08-13
Changed split TraceWriter into write-only TraceSink and owner-only seal handle (#1051) (400f64f8) 2026-08-13
Fixed sanitize paths in registry warnings against terminal injection (#1029) (e73cc1a3) 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) 2026-08-13
Added add recovery hints for iteration_cap and timeout closures (#1048) (8fbec4a2) 2026-08-13
Fixed add sessionsScanned compat alias and improve CLI label (#1037) (#1041) (d91ef1cf) 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) 2026-08-12
Added add read_witness and search_witness built-in tools (#1034) (b36cc54a) 2026-08-12
Fixed surface rate-limit backoffs and retry sendOrEdit 429s (#1033) (1b8b124a) 2026-08-12
Changed compare digests instead of re-reading files on dedup (#885) (#1006) (00a7e1e8) 2026-08-12
Fixed correct concurrency floor figures and add light-regime budget (#1027) (0b99429c) 2026-08-12
Changed retire committedBandBottomRow erase-bound read in frame-preserve-archive (advances #540) (#1031) (dbfc1b5c) 2026-08-12
Changed split commitAbove into 7 sibling modules with invariant tests (#827) (#1032) (c3a4bade) 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) 2026-08-12
Added bound the witness tree by age and aggregate size (#849) (#986) (4502e200) 2026-08-12
Fixed cascade-abort in-flight children before the owner seals (#733) (#987) (68b22395) 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) 2026-08-12
Fixed improve tmux compatibility — raw OSC 52 clipboard, truecolor detection, docs (#1017) (c2d6cdd2) 2026-08-12
Added native topics routing (step 6) + cross-surface CLI/daemon registration (step 7) (#1020) (5fdc806f) 2026-08-12
Fixed fail-fast context-overflow guard for max_tokens exceeding window (#1014) (72d56baa) 2026-08-12
Fixed clarify research-agent write constraint in tool-def listing (#944) (#1009) (efd3dc4f) 2026-08-12
Fixed clarify skill tool description for load vs fork modes (#1018) (44fbb5c2) 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) 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) 2026-08-11
Added record bootstrap warnings as a durable boot_warning phase (#754) (#984) (08d254c) 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) 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) 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) 2026-08-10
Added enforce a 350-line source-file ceiling with a ratcheted baseline (#999) (0c7d936) 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) 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) 2026-08-10
Added two-tier OBSERVE/BLOCK split in safe-destruct PreToolUse detector (#992) (a4c81fc) 2026-08-10
Fixed opus 4.6/4.7/4.8 serve native 1M windows and 128k output (#994) (bbd4a13) 2026-08-10
Added make claude-sonnet-4-6 the default sonnet model (+ correct its 1M/128k limits) (#991) (d42eb1c) 2026-08-10
Added load Claude Code commands/*.md as slash commands (#965) (9003f5b) 2026-08-10
Fixed surface first artifact-write failure per subsystem without AFK_DEBUG (#850) (#979) (a57caab) 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) 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) 2026-08-10
Changed memoize getWriteDenylist keyed on AFK_HOME + AFK_STATE_DIR (#781) (#972) (023bdd1) 2026-08-10
Fixed rebuild the Environment block on cwd re-anchor (#876) (#980) (f4ae203) 2026-08-10
Fixed bound stopReason at a single chokepoint instead of 6 call sites (#717) (#977) (df150f8) 2026-08-09
Fixed warn once per malformed env var instead of once globally (#780) (#975) (4eafa92) 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) 2026-08-09
Added add conditional steelman critic to Wave 2 (#967) (b14b3df) 2026-08-09
Added positional $N arguments and fork-path substitution parity (#964) (370865e) 2026-08-09
Fixed harden max_tokens resolution across providers (#951, #953, #954) (#959) (dc39ca4) 2026-08-09
Added add afk web — local-first browser UI for live agent sessions (#932) (393010b) 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) 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) 2026-08-08
Fixed split severity from disposition and make medium blocking by default (#936) (70baf31) 2026-08-08
Fixed counted TTFB retry budget with shorter per-attempt bound (#945) (6d90dd8) 2026-08-08
Added capture subagent conversational output incrementally (#935) (662628e) 2026-08-08
Added register claude-sonnet-4-6 limits explicitly (#946) (7b96075) 2026-08-08
Added add session-scoped Opus Fast mode (#907) (2e3339f) 2026-08-08
Fixed render cost from the trace aggregate, not the sidecar (#933) (6882a06) 2026-08-07
Fixed bound every raw REPL write to the terminal width (#931) (d467583) 2026-08-07
Fixed stop generated build artifacts and symlinked dep trees from making worktrees immortal (#927) (8d9b6a0) 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) 2026-08-07
Changed dissolve the src/telegram.ts monolith into src/telegram/ (#825) (#930) (79d8642) 2026-08-07
Fixed hold composed tool-lane rows to the shared reading measure (#923) (e922483) 2026-08-07
Fixed name the ignored entry that preserved a tree, and stop the test that manufactured them (#926) (6b9ef12) 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) 2026-08-06
Added flush queued messages into the running turn on Ctrl+B (#891) (ba80f40) make concurrency ceilings operator-configurable (#904) (189854b) 2026-08-06
Changed 9 low-risk /simplify --all cleanups (dead code + dedup + one tilde-expansion bugfix) (#893) (c9374cd) 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) 2026-08-05
Fixed remove wrap-boundary leading spaces (#903) (3a8054a) 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) 2026-08-05
Fixed dedupe cache hit-rate formula, fix cumulative-total mislabel, align field precedence (#916) (b283bfd) 2026-08-05
Fixed tell a forked child its tool-round budget at dispatch (#910) (99827c6) 2026-08-05
Fixed correct prompt-cache cost accounting and surface hit rate (#909) (c80e004) 2026-08-05
Fixed normalize blank optional arguments (#908) (0fea95c) 2026-08-05
Fixed make the pipeline's own signals honest + split improve.ts under the 350 ceiling (#901) (acba4f9) 2026-08-05
Added cap unbordered text at a reading measure instead of full terminal width (#899) (17cf472) 2026-08-04
Added add /afk-md to edit AFK.md overlays with live hot-reload (#887) (274ffc1) 2026-08-04
Fixed render auto-settle timeout as an error, not a green success (#902) (acfc8d4) 2026-08-04
Fixed resolve palette at call time so theme swaps actually reach the UI (#898) (4d09deb) 2026-08-04
Changed return the goblin mini-sprite to the transient left band (#336) (#900) (f0d78d6) 2026-08-04
Added reacting goblin mini-sprite in a constant right-aligned band (#336) (#888) (2f8bf9c) 2026-08-03
Changed extract shared runPreDispatchGates from execute/executeBatch (#896) (722cfcd) promote TurnTrace to providers/shared (#897) (e69dc3a) 2026-08-03
Added rank slash-command completions by recency, not alphabetically (#892) (a57ebdb) 2026-08-03
Fixed resolve tier-name pins before the cross-provider Claude-family check (#879) (2a19470) 2026-08-03
Added add an umber theme mirroring the Umber terminal's palette (#886) (1593bbf) 2026-08-03
Added make inbound images nameable and forwardable to subagents (#846) (e8bcbaf) 2026-08-03
Fixed make read-only bash refusals actionable and state the real shell dialect (#884) (1d01353) 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) 2026-08-03
Added propagate path-backed image attachments (#843) (18ac9a8) 2026-08-03
Fixed make the Workspace line follow a mid-session cwd re-anchor (#875) (a377607) 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) 2026-08-03
Added make the nesting-depth cap configurable via AFK_MAX_NESTING_DEPTH (#863) (6f8e33f) 2026-08-03
Fixed latch the dead-zone banner flush and close #867 review gaps (#874) (03224b1) 2026-08-03
Fixed stop fabricating filenames from relative paths (#872) (58a1e68) 2026-08-02
Changed split bootstrap.ts into 9 phase modules (#823) (#873) (8f28491) 2026-08-02
Fixed close the case-variant bypass of the credential floor (#736) (#819) (de0f295) 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) 2026-08-02
Fixed re-dispatch a read-only child once when its stream is cut with zero output (#796) (542464e) 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) 2026-08-02
Fixed tell a denied fork the remedy that actually works (#851) (1e885fe) 2026-08-02
Fixed make the pipeline's own instruments tell the truth (#847) (4cb26bc) 2026-08-02
Fixed render round denominator in progress banner (#857) (#858) (5bc00a8) 2026-08-02
Fixed render a deliberate tool refusal as blocked, not failed (#75) (#848) (e3f73e1) 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) 2026-08-02
Added opt-in capture of parent→subagent dispatch prompts (#844) (c4b7696) 2026-08-02
Fixed grant confined forks read access to the agent-framework dir (#841) (fa271ee) 2026-08-01
Fixed make a running subagent legible instead of decorative (#840) (582b5a2) 2026-08-01
Fixed stop pixel art sharing rows with text so resize can't tear it (#842) (062a15a) 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) 2026-08-01
Changed extract constants + fork types from subagent.ts (#829) (#838) (4e0af66) 2026-08-01
Fixed reject newline/CR in rm-allowlist carve-out (#806 follow-up) (#835) (ee01384) 2026-08-01
Fixed alias /add-dir to /allow-dir (#837) (4e74dc6) 2026-08-01
Changed split scrollback logic out of terminal-compositor.types.ts (#826) (#836) (7347dae) 2026-08-01
Fixed gate orphaned-dir removal on age and content (#794) (#813) (27060bc) 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) 2026-08-01
Changed extract a shared wireExecutors() factory (#822) (#834) (6ed0186) 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) 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) 2026-08-01
Changed split loop.ts into a modular loop/ subdirectory (#818) (8d11048) 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) 2026-08-01
Fixed credit provider-paused time against the wall-clock ceiling (#797) (f6b33cf) 2026-08-01
Fixed fail the bundle build when a prompt read cannot be inlined (#776) (#816) (548029c) 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) 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) 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) 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) 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) 2026-07-31
Fixed keep the hanging indent when a list or blockquote token exceeds the wrap budget (#798) (532f78d) 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) 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) 2026-07-31
Fixed regenerate the env-registry var count so scan:env:check passes (#792) (6b6b30a) 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) 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) 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) 2026-07-31
Fixed stop the citation contract forcing a nested git dispatch (#726) (#777) (f94cbe7) 2026-07-31
Fixed clamp agent frame head rows to terminal width (#786) (03af774) 2026-07-30
Fixed bound grouped tool summaries to terminal width (#773) (d52dbf2) 2026-07-30
Fixed resolve the default create base at the calling session's anchor (#760) (#769) (b4192bd) 2026-07-30
Fixed follow AFK_HOME in the credential floor + reject overly broad subagent cwd/writeRoots (#753) (2675eaf) 2026-07-30
Fixed classify git worktree add and git clone as mutating in the read-only guard (#768) (e94e631) 2026-07-30
Fixed split ttfb_timeout out of the rate_limit phase (#766) (97d8e3d) 2026-07-29
Fixed send the extended-cache-ttl beta in api-key mode so the 1h TTL is honored (#757) (#758) (a4d973d) 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) 2026-07-29
Fixed drain bootstrap warnings after the startup screen clear (#745) (#751) (4f85988) 2026-07-29
Fixed latch launch failures so browser_* stops retrying a cold chromium launch (#722) (#748) (4819481) 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) 2026-07-29
Added warn when an agent file shadows a read-only builtin (+ ADR 0002) (#739) (ce5ef4e) 2026-07-28
Fixed stop a skill fork from re-dispatching itself (#737) (963b85f) 2026-07-28
Fixed share the read denylist with the bash surface (#734) (1640f9b) 2026-07-28
Fixed flush logical lines to scrollback so resize reflow stops splitting words and dropping indent (#665) (71e5450) 2026-07-28
Fixed gate witness seal on a purpose-built fork marker, not the output cap (#725) (e3d392d) 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) 2026-07-28
Fixed reach the chromium-missing install hint (#721) (#729) (dd39451) 2026-07-27
Fixed interleave ◦ progress lines into the live preview chronologically (#719) (4490337) 2026-07-27
Fixed route sub-agent lane and /bgsub width through getTerminalWidth (#720) (c7e5996) 2026-07-27
Added emit a blocked-on-human marker while an elicitation waits (#718) (ad596c8) 2026-07-26
Fixed thread traceWriter into phase forks so they emit lifecycle events (#696) (bb1e3e5) 2026-07-26
Fixed reap shipped worktrees and stop deleting branches that hold commits (#715) (5ac71b0) 2026-07-26
Added pid liveness + heartbeat + schema version on presence records (#716) (062079b) 2026-07-26
Added record stop_reason on subagent terminal rows and flag partial results (#713) (12691e4) 2026-07-26
Fixed emit hook_decision for silently-denied tool calls, attribute blocks to forks (#714) (2ec5df1) 2026-07-26
Fixed support history compaction on the openai-compatible responses wire (#653) (#700) (f9f3eb6) 2026-07-26
Added show subscription quota in the REPL status line (#712) (eb9a79a) 2026-07-26
Added add /usage command for Claude subscription quota (#711) (588d437) 2026-07-26
Fixed humanize live activity (#708) (916a369) 2026-07-26
Changed share AbortCoordinator across both provider query loops (#701) (ad8709d) 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) 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) 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) 2026-07-24
Fixed anchor git verbs to subcommand position + wrapper/indirection handling (#577) (#697) (b9973e7) 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) 2026-07-24
Fixed make ** match zero path segments (root-level files) (#692) (944382f) 2026-07-24
Fixed port diagnose/shadow-verify/devils-advocate refinements from private plugins (#691) (87b6ccf) 2026-07-24
Changed drop dead setOnBackground setter + fix stale doc (#682) (#689) (b69f4ec) 2026-07-24
Added openai-compatible ESC-halt parity + interrupt-halt trace event (#677) (7055df6) Changed Delete Star History section from README (bdae56b) 2026-07-24
Added harden handoff against mid-stream truncation (#678) (c60dec0) 2026-07-24
Added inject reply & quote context into inbound messages (#688) (50606c0) 2026-07-24
Added attribute inbound group messages with the sender (#685) (67fb8b5) 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) 2026-07-23
Added per-target chat selection for send_telegram + scheduled tasks (#681) (0d0a50e) 2026-07-23
Added per-chat tag-only response policy (#680) (f0f52d9) 2026-07-23
Added non-convergence stop criterion in sub-agent contract (#679) (2daf898) 2026-07-23
Added progress-aware idle watchdog for forked turns (#672) (74543b6) 2026-07-23
Added self-reported convergence/stop criterion for general-purpose (#675) (cc68e72) 2026-07-23
Added bound general-purpose subagent with a generous tool-use ceiling (#673) (5e2974e) 2026-07-22
Added show stopping state + queued count on ESC soft-stop (#646) (6fda98f) 2026-07-22
Added add a light theme for the TUI (theme: dark|light|auto) (#643) (d9b42a9) 2026-07-22
Fixed seal witness trace only from the top-level session (#666) (b98f911) 2026-07-22
Added edit a previous message — /rewind + double-Esc conversation rewind (#668) (d80601b) 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) 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) 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) 2026-07-21
Fixed bound web_scrape + tool output to prevent subagent context overflow (#663) (4556645) 2026-07-19
Fixed eliminate scheduler.test.ts cron-timer leak causing flaky duplicate mcp_connect_done (#657) (#659) (0639378) 2026-07-19
Changed bump the fumadocs group in /website with 3 updates (#658) (b6e99dc) single-pass line nav + memoized input colorization (#649) (10787a8) 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) 2026-07-18
Changed coalesce same-tick keystroke repaints with sync flush (#645) (d15db56) 2026-07-18
Added terminal title (OSC 2) + opt-in completion notification (OSC 9) (#647) (3d1d451) 2026-07-18
Added /search over session turns with jump-to-last-error (#650) (145dc22) 2026-07-18
Fixed coalesce post-ESC type-ahead across the teardown boundary (kill lone-"." input lag) (#644) (607c052) 2026-07-17
Fixed reserve cyan for user identity (dropdown selection + inline code) (#642) (34dc3e2) 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) 2026-07-17
Fixed resolve stale plugin-namespaced contract ref in research-agent prompt (#639) (430bc98) 2026-07-17
Added surface OAuth usage-limit pause/resume as witness trace phases (#638) (f6a7965) 2026-07-17
Changed route CLI/TUI styling through the semantic palette + guard against drift (#637) (12bcf9c) 2026-07-16
Added feed redacted session context to Tier-2 ghost-text suggester (#636) (c66e724) 2026-07-16
Fixed surface stream-incomplete as an error, not a silent truncated turn (#635) (efe7ed0) 2026-07-16
Changed extract shared tool_call payload builders (#631) (edc8734) 2026-07-16
Fixed reserve claimedChats in processOne to close drain-path TOCTOU (#603) (#630) (23aa604) 2026-07-16
Added tag forked-child tool_call events with subagentId (#612) (#629) (972b109) 2026-07-16
Added welcome-banner polish — v14 goblin, tagline, reacting spinner (#239) (b8815b8) Changed Delete docs/telegram-bug-investigation.md (1fb2aa6) 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) 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) 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) 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) 2026-07-14
Added discover and run Claude Code plugin hooks.json (#70) (#607) (930a5c2) 2026-07-14
Added opt-in "Done" verification — downgrade unbacked daemon completion pushes (daemon.verifyDone) (#609) (e8a5ea5) 2026-07-14
Fixed make --plain / AFK_PLAIN_OUTPUT a full render opt-out on TTY (#606) (b1347d2) 2026-07-14
Changed place # Agent AFK doctrine before memory and skills in assembled prompt (#605) (6def730) 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) 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) 2026-07-14
Added local usage-analytics report (afk insights) (#353) (ff78f72) 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) 2026-07-14
Fixed classify fork wall-clock timeout as failed, not cancelled, so bg timeouts reach the parent (#465 follow-up) (#596) (61e685e) 2026-07-14
Fixed bound read-only research agents + degrade empty no-terminal run to a marked partial (#597) (a39b1ff) 2026-07-14
Added proactive escalating context-window warnings (#594) (291b73f) 2026-07-14
Added auth-aware model availability labeling (Phase 2; follows #548, now merged) (#588) (2c4a723) 2026-07-14
Added surface provider rate-limit/backoff live in the progress banner (#595) (08b47a7) 2026-07-14
Fixed elicitation URL-mode cancel guard + swallowed errors + UX cleanup (#502) (#589) (3aca90a) 2026-07-14
Added fail-fast denial circuit breaker for forked read-denial spins (#546) (#592) (d2cff2f) 2026-07-13
Changed lazy-load jsdom to cut ~35% off CLI cold-start (#587) (0e9198e) 2026-07-13
Added OSC 52 clipboard fallback for SSH+tmux (closes #563) (#582) (f9f84d9) 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) 2026-07-13
Added bound time-to-first-byte with a configurable per-request timeout (#583) (#584) (a9d3640) 2026-07-13
Added multi-session support — session-registry foundation + /sessions switcher (#562) (da1cd03) 2026-07-13
Fixed fail closed on unknown parent provider in fork credential fallback (#438) (#580) (69b0a8b) 2026-07-13
Fixed stop over-blocking recon that quotes a git/gh/curl verb (#574) (66a7cf7) 2026-07-13
Fixed resolve parallelize-dispatch subagent credential per child model (#444) (#569) (e556426) 2026-07-13
Changed retire committedBandTopRow erase-loop reads in frame-preserve (advances #540) (#573) (9f7985c) 2026-07-13
Changed extract buildSkillForkManager to de-dup the two per-call fork managers (follow-up to #469) (#572) (bf1b26e) 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) 2026-07-13
Fixed render-not-repin — erase committed band from the anchor floor (Stage 2 core, #540) (#552) (8112051) 2026-07-13
Added main-session Stop injectContext + terminal-state gate (#237) (#557) (adb5c1f) 2026-07-13
Changed extract computeContainment SSOT for resolveAndContain + wouldBeRestricted (#561) (1d13445) 2026-07-13
Fixed stop redacting git object names (SHAs) as opaque secrets (#549) (58e506f) 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) 2026-07-13
Changed remove redundant /save slash command (#559) (d005cec) 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) 2026-07-13
Fixed grant ~/.afk/state to confined forks; harden worktree main-root fallback (#554) (5b63f2b) 2026-07-13
Fixed don't cache config past a parse failure; gate importFrom via user-global allowlist (#501) (#551) (a678b81) 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) 2026-07-13
Fixed eliminate end-of-turn report/table void on overlay collapse (#539) (4898a2c) 2026-07-13
Fixed restrict read-only depth-cap forks to declared tools + honor plugin model: (#499) (#542) (2f7dc7e) 2026-07-13
Added Linux systemd --user support behind a platform-neutral ServiceManager (#515) (25bd80c) 2026-07-12
Fixed inherit parent read scope for forked sub-agents (#544) (94298d7) 2026-07-12
Fixed restore worktree cwd when resuming or forking a session (#535) (a1ea133) 2026-07-12
Fixed stop redacting long filesystem paths as opaque secrets (#533) (57cb592) 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) 2026-07-12
Added app-like TUI — /config settings menu + /model & /resume pickers (#506) (7cf6c0b) 2026-07-12
Fixed guard NaN config + non-string systemPrompt + unmask registry-skill errors (#534) (edfcd64) 2026-07-12
Fixed resolve path-approval grants per executing session (#435/#514) (#527) (01632cd) 2026-07-12
Added observe-only release-boundary PreToolUse detector (gate-migration wave 1 slice 2) (#524) (7f5a4fc) cross-provider history compaction (#517) (d44cc30) 2026-07-12
Added distinguish parallel vs sequential tool dispatch with ∥i/N batch badge (#520) (f617893) 2026-07-12
Fixed give read/write/edit/list the factory-cwd resolve tier glob/grep have (#434) (#522) (a4be744) 2026-07-12
Fixed flatten multi-line bash summaries in the tool-lane label (#511) (ea3b9c0) 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) 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) 2026-07-12
Fixed classify AFK gate writes by tool cwd (port afk-workshop#836) (#512) (fd7e3ab) 2026-07-12
Changed extract closure-emitter, ledger-lifecycle, plan-exit-bridge (#364) (#519) (040403a) 2026-07-12
Fixed explicit writeRoots grant + truthful deny for forked children (#514) (360b999) 2026-07-11
Fixed refresh lastMeasuredFrameTop in the picker repaint path too (#513) (0c83bfa) 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) 2026-07-11
Added seed the REPL from a launch argument (afk "prompt" / afk /review) (#510) (ae561dd) 2026-07-11
Fixed decouple bash/grep output kill-cap from model budget; keep head+tail (#507) (dda24b2) 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) 2026-07-11
Fixed mirror exit_plan_mode's deferred flip onto stats.permissionMode (#495) (#497) (2710e6b) 2026-07-11
Added classify usage-limit 429s via anthropic-ratelimit-unified-* headers (#488) (#490) (a43dab4) 2026-07-11
Changed extract dispatch-batching + repeat-circuit-breaker from dispatcher.ts (#361) (#496) (045f1de) 2026-07-11
Fixed surface deps-not-installed note on create (#479) (21375e9) 2026-07-11
Fixed cap session-grants.jsonl growth with atomic size trim (#473) (5a7d3db) 2026-07-11
Added observe-only safe-destruct PreToolUse detector (gate-migration wave 1) (#492) (a442571) 2026-07-11
Changed split config.ts into tier modules (#368) — checkpoint (#493) (db9e42c) 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) 2026-07-10
Added first-class isolation:"worktree" for the agent tool (#487) (7941226) 2026-07-10
Fixed route long/absent-retry-after 429s back to the usage-limit pause path (#483) (34a09c5) 2026-07-10
Changed split elicitation-repl.ts into mode modules (#367) (#484) (c3e39d6) 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) 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) 2026-07-10
Changed cover in-turn SubagentStop injectContext append (#391) (#481) (73e8644) extract appendInjectContext helper (#393) (#478) (b0cbbed) 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) 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) 2026-07-09
Fixed space out ⚡ glyph and bp tag in bypass prompt caret (#472) (32ea78d) 2026-07-09
Fixed #441 robustness cluster — grep cwd-error enrichment, subagent cache invalidation, worktree-root debug log (#471) (fe19cb5) 2026-07-08
Changed generalize o-series predicate to reasoning-model contract (#463) (fad5e64) 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) 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) 2026-07-08
Fixed fix wrap overflow + bound and label the diagnose verifier fan-out (#470) (227a99e) 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) 2026-07-07
Fixed tolerate indented fences in isInOpenCodeFence parity check (#464) (ec31016) 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) 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) 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) 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) 2026-07-05
Fixed patient 429 retry-after handling + surface stopReason on SubagentResult (#427) (d535c79) 2026-07-05
Fixed scope the bash interpreter-eval guard to credential-adjacent payloads (#424) (8eb2622) 2026-07-05
Added add digest thinking-display mode (live preview + persisted reasoning) (#426) (6740847) 2026-07-05
Added plugin-contributed agent scope + scoped nested dispatch (#423) (249c27c) 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) 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) 2026-07-05
Fixed grant main-repo read root to worktree subagents (#416) (205612e) resolve project skills against the session cwd (#179) (#375) (4919343) 2026-07-05
Fixed make exit_plan_mode live-mode-gated + restore working mode across the Shift+Tab ring (#410) (99468d8) 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) 2026-07-05
Fixed surface silent 429/503/529 backoff in trace; fix transient rate-limit 429 misclassification (#414) (5dbc55b) 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) 2026-07-04
Fixed stop double-rendering finished subagents in the REPL overlay (#405) (71a6bdc) 2026-07-04
Fixed make SKILL.md context: authoritative; drop DEFAULT_FORK_SKILLS (#404) (023cf51) 2026-07-04
Fixed report a clean git tree as dirty:false, not null (#389) (78c4083) 2026-07-04
Added named agent definitions with agent_type dispatch on the agent tool (#384) (c9f6040) 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) 2026-07-04
Fixed reflow committed band at paint-time width; fail-safe commits on stale resize geometry (#386) (f75d8a4) 2026-07-03
Fixed expand ${PLUGIN_ROOT:-fallback} idiom in load-mode substitution (#401) (a13ff98) 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) 2026-07-03
Fixed cancel in-flight foreground subagents on soft-stop (ESC/Ctrl-C) (#400) (1e838d1) 2026-07-03
Added lifecycle tool + sweep fix for agent-managed worktrees (#390) (eaa561d) 2026-07-03
Added deliver SubagentStop injectContext in-turn via the subagent tool_result (#387) (a407d35) 2026-07-03
Added grounded progress banner — real activity instead of mechanism noise (#373) (f475744) 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) 2026-07-03
Fixed deliver SubagentStop injectContext with the next user message, not as its own turn (#359) (c2d5078) 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) 2026-07-03
Fixed close reverse-direction forkSubagent credential leak (#377) (a30cd61) 2026-07-02
Fixed bound foreground safe-batch tool concurrency (#376) (cb9fe2a) 2026-07-02
Fixed approve better-sqlite3 native build script for pnpm 10 (#383) (001b864) 2026-07-02
Fixed thread defaultSubagentModel through nested skill executors (#381) (35e922b) 2026-07-02
Fixed evict project-origin skills when cwd changes (#179) (#356) (89c358b) 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) 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) 2026-07-01
Fixed close abort TOCTOU so an in-flight child is killed, not orphaned (#349) (ca2d948) 2026-07-01
Fixed suspend stream watchdog while a foreground tool is in flight (#348) (f06fc78) 2026-07-01
Fixed concatenate injectContext across non-blocking handlers instead of last-wins (#345) (fffb8e1) 2026-07-01
Fixed close 2-segment MCP verb-gate bypass from PR #339 review (#347) (c3133ed) 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) 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) 2026-06-30
Added emit mcp_connect_* trace phases on daemon surface (#248) (#338) (438b466) 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) 2026-06-29
Added inject session-facet substrate into PluginApi (11→15) (#337) (07fbec6) 2026-06-29
Added inject runtime values into PluginApi for code-backed plugins (#335) (337f118) 2026-06-29
Added agent browser autonomy MVP (session vault, park-and-notify, retrying fetch) (#323) (ff676af) 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) 2026-06-29
Fixed refill the viewport after end-of-turn collapse of an over-tall block (#332) (a0cbf3c) 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) 2026-06-29
Added trace skill-forked subagent tool denials + receipt refusal tally (#333) (6cbcee6) 2026-06-29
Fixed stop JSON.parse error snippets leaking secrets in poison logs (#318) (0290797) 2026-06-29
Added emit PreCompact hook on auto-compaction (#328) (eba1ef9) Changed bring Fumadocs site up to date with code (#331) (729e986) 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) 2026-06-29
Added add list/remove/clear subcommands + document improve & farm in README (#327) (cfea104) Changed add dependency-vulnerability audit gate (#326) (6a1f1d7) 2026-06-28
Fixed interrupt provider turn on ANY incomplete stream exit (#320) (cd45b61) 2026-06-28
Added wire canUseTool into the dispatcher — Agent SDK parity Dim 8 (increment 1) (#304) (f0ee88b) 2026-06-28
Fixed restart launchd services + notify on stale manual bot after install (#322) (c40729a) 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) 2026-06-28
Fixed don't silently exit plan mode on /afk off (#311) (55864c8) 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) 2026-06-28
Added export framework skill/facet API for out-of-tree plugins (#305) (8905788) 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) 2026-06-28
Fixed surface most-recent tool-groups instead of burying them in overflow (#303) (93bb246) 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) 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) 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) 2026-06-28
Added retire /bypass, add default badge, steer exit to exit_plan_mode (#286) (a38a566) 2026-06-28
Added model-callable exit_plan_mode tool with elicitation picker (#285) (a961ae7) 2026-06-27
Fixed stop the second streamed table from rendering broken (missing header/lines) (#296) (9cb4880) 2026-06-27
Fixed re-point backend on a same-family /model switch to a different endpoint (#297) (38975c1) 2026-06-27
Added add PreCompact hook event (#283) (aa25b10) Fixed subset advertised tool schema to permission allowlist (#295) (331ae7b) 2026-06-27
Fixed don't send Chat-Completions max_tokens on the Responses path (#293) (f6ed619) 2026-06-27
Fixed don't fire path-approval prompts in AFK mode (#292) (97dda5e) 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.jsonladd PostToolUseFailure hook event (#282) (2a750fd) surface raw provider stop_reason in afk trace show (#291) (dfa28c5) 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) 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) 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) 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) 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) 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) 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) 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) 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) 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) 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) 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) 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) 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) 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) 2026-06-24
Added emit browser_event from browser tool handlers (897a02f) Changed Merge pull request #262 from griffinwork40/feat/browser-event-emission (df1e42f) 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) 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) 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) 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) 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) 2026-06-23
Added wire passive SIGNAL-block parsing into buildResultFromMessage (18be452) Changed Merge pull request #254 from griffinwork40/feat/wire-signal-block (3610ea4) 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) 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) 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) 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) 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) 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) 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) 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) 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) 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) 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) 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) 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) 2026-06-21
Added add cards list --regressed observability view (de0b2d4) Changed Merge pull request #226 from griffinwork40/improve/cards-regressed-view (f0c3765) 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) 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) 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) 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) 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) 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) 2026-06-19
Changed Merge pull request #218 from griffinwork40/fix/subagents-non-interactive (3e4f8e8) Fixed make forked sub-agents non-interactive (96d7b3a) 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) 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) 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) 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) 2026-06-18
Changed Merge pull request #208 from griffinwork40/refactor/extract-resolve-params (2acc9a0) extract pure param resolvers into resolve-params.ts (c5462c0) 2026-06-18
Changed Merge pull request #211 from griffinwork40/simplify/terminal-compositor-dedup (6da7b60) centralize committed-band CUP+EL escape into eraseAndPaintRow (57f417e) 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) 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) 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 enabledAFK_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 denylistelicit 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) 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) 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) 2026-06-17
Added forward reasoning_effort for o-series models (#128) (#193) (467af9b) 2026-06-17
Added autonomous permission mode + scrubbed Telegram reporting (#197) (b3384fe) 2026-06-17
Added add retry/backoff for transient errors (429, 5xx) (#192) (e58b48d) 2026-06-17
Fixed thread max_tokens into streaming request body (issue #125) (#195) (8f6b0e3) 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) 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) 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) 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) 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) 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) 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) 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) 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) 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) 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) 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) 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) 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) 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) 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) 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) 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) 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) 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) 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) 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) 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) 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) 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) 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) 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) 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) 2026-06-15
Added add Vercel Web Analytics (ab1ec1e) Changed Merge pull request #147 from griffinwork40/feat/website-vercel-analytics (efc66da) 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) 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) 2026-06-14
Changed Merge pull request #139 from griffinwork40/afk/fix-subagent-model-hardcoding (52db82c) Fixed inherit default subagent model (630d6ff) 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) 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) 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) 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) 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) 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) 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) 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) 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) 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) 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) 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) 2026-06-12
Changed Merge pull request #115 from griffinwork40/refactor/parse-post-targets (8c94fb8) parse chat --post value directly via parsePostTargets (f6ac2cd) 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) 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) 2026-06-12
Changed Merge pull request #107 from griffinwork40/afk/issue-102-verify-ship (065b5b8) extract reusable terminal selectors (e9efc40) 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) 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) 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) 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) 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) 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) 2026-06-11
Fixed stop finalizeOrchestrator nuclear-flushing in-flight subagent blocks (#95) (bab6bb2) 2026-06-11
Added record root-session model in witness traces (#91) (e8ce193) 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) 2026-06-11
Added inline ghost-text tab autocomplete for mid-sentence skill names (#90) (81abc62) 2026-06-11
Fixed ESC soft-stop cancels on first press, no post-cancel lag (#81) (6b0e586) 2026-06-11
Added distinctive user message display in scrollback (#88) (10eacfd) 2026-06-11
Fixed stop local-model subagent dispatch from hanging (#87) (2d458dc) 2026-06-11
Added add closure-anomaly guardrail + eval-run contract (abort subtype) (#86) (03cfc86) 2026-06-11
Added return browser_screenshot as a model-visible image (#82) (e9a51b0) 2026-06-11
Fixed stop user-card echo ghosting by reserving the terminal last column (#85) (23200c2) 2026-06-11
Added add eval-run, the first deterministic eval-case validation stage (#84) (86ae118) 2026-06-11
Added drive the user's real Chrome via chrome-devtools-mcp (afk browser connect) (#83) (ee76c5f) 2026-06-11
Fixed align REPL slash verbs with CLI (install / install-plugin) (port afk-workshop#701) (#79) (9899a6f) 2026-06-11
Added act on telemetry — loop guard, skill-depth hint, enable tool-failure-density (#80) (5255350) 2026-06-11
Changed split terminal-compositor + bug-hunt pass (#78) (b9d49e5) 2026-06-10
Added add /config and /doctor slash commands (port afk-workshop#702) (#77) (907dc5f) 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) 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) 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) 2026-06-09
Fixed repair skill-dispatch turn rendering and accounting regressions (#68) (61d377c) 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) 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.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) 2026-06-09
Fixed route subagent overlay refreshes through OverlayComposer (#63) (baf325d) 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) 2026-06-09
Fixed surface the skill name in the tool lane (#59) (a8728f1) 2026-06-09
Fixed emit honest closure reasons (truncated, hook_blocked, max_turns_exceeded) (#60) (19206fe) 2026-06-09
Fixed clamp max_tokens to model ceiling and guard thinking budget (#58) (7d02d4b) 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) 2026-06-08
Fixed unblock native browser tools in the bundled ESM binary (#51) (fa29619) 2026-06-08
Fixed re-pin committed band on overlay collapse to kill the blank-space gap (#50) (5c76889) 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) 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) 2026-06-08
Changed reorder + dedup framework system prompt (Stage 1) (#45) (0de370b) 2026-06-08
Fixed enforce read-only tool gating for recon skills (ground-state) (#5) (6aeeaaa) 2026-06-08
Fixed make TerminalCompositor wrap-aware so soft-wrapped frame lines don't clobber committed text (#39) (a7ace49) 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) 2026-06-08
Added Responses API + ChatGPT-subscription OAuth + user-configurable model slots (#33) (fe0ba5d) 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) 2026-06-07
Added layer operator config over an unconditional framework base (#34) (ff03920) 2026-06-07
Added push full redacted task response to Telegram (#31) (dd73b2e) 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) 2026-06-06
Changed Remove codex reference from README (5394b09) Fixed unblock pre-auth CLI commands; require Node >= 22 (#16) (10ddd77) 2026-06-06
Added redesign /skills listing + detail UX (phase 1) (#14) (cf5e6f0) 2026-06-06
Fixed clamp diff body lines to terminal width in nested tool-lane paths (#9) (a3b38b5) 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) 2026-06-05
Added flip gather + parallelize to context: load (#4) (4006c37) 2026-06-05
Fixed anchor flat-leaf tool roots with col-0 ◉ beside a nesting root (#3) (c1d84e0) 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) 2026-06-05
Fixed exclude internal-tier skills from the published npm bundle (#713) (952079a3) 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) 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) 2026-06-04
Fixed restore #502 session-player terminal + 2 copy regressions (#709) (be1e214b) 2026-06-04
Fixed keep non-last ancestor spine continuous through nested subtrees (#708) (983d06f0) 2026-06-04
Fixed retry mid-stream 529 / overloaded_error events (#704) (04aca58) 2026-06-04
Added add /name command to show or set the session name (#700) (d5bca28e) 2026-06-04
Added config-driven shell-command hooks + TUI clear-band reset (reconciles #644 + #646) (#693) (cde08779) 2026-06-04
Fixed correct stale settings — models, codex removal, thinking enum (#699) (c5825b3) 2026-06-04
Added add tool call counting script and corresponding npm command (207eaff) 2026-06-03
Fixed harden rate-limiter against XFF spoofing + non-POST token burn (#698) (4f3ae30) 2026-06-03
Added migrate vanilla landing page to Next.js 15 App Router (#514) (02adee41) 2026-06-03
Fixed topology-spine seam — keep live-ancestor columns open in committed band + overlay (#687) (f1024e5) 2026-06-03
Added @-file picker — tilde/absolute path completion + content injection (#688) (10aa3a00) 2026-06-03
Added replace Firecrawl with local Readability/Turndown scraper + Brave search (#671) (8158044) 2026-06-03
Added provider-level readOnlyMemory enforcement for child sessions (#690) (8853eb0) 2026-06-03
Fixed scope audit-fit Glob rule, thread ship heal iters (#692) (619e4ad) 2026-06-03
Added durable named sessions + Telegram→CLI resume bridge (phases 1–2) (#672) (44c60e4) 2026-06-03
Added add /fork to branch a conversation into a parallel session (#670) (5e24f1a) 2026-06-03
Fixed silence depth-2 nesting ghost row (recursive no-visible-descendant) (#678) (9ff5060) 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) 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) 2026-06-03
Added default afk --worktree to the remote default branch (origin/main) (#666) (8c055dd) 2026-06-03
Fixed count cached tokens in context-window % and auto-compact (#648) (b2e428c6) 2026-06-03
Fixed clamp each banner line to terminal width (#664) (f64049e1) 2026-06-03
Changed relocate per-model credential resolver to agent layer (#658) (a01a259) Fixed bundle poller entrypoint + resolve bundled dist layout (#663) (cd4faa2) 2026-06-02
Fixed collectSkillEntries() scans user + project skills fresh from disk (#656) (9553467c) 2026-06-02
Fixed fork-time credential fallback to parent's cached token (#657) (a5ca163c) 2026-06-02
Fixed advance branch-tracked installs by commit, not ref-name (#655) (dc627f9) 2026-06-02
Fixed poll-retry the no-ts 429 path so same-account resets auto-resume (#638) (c5258c8) 2026-06-02
Fixed drop stale resize ghost-erase snapshot on shrink (#653) (94c48366) 2026-06-02
Added cross-provider REPL ghost-text suggestions (#606) (babeac5f) 2026-06-02
Fixed erase old frame + committed band on terminal resize (stop ghost rows) (#650) (bfa9e3bb) 2026-06-02
Fixed preserve committed lines + close scrollback gap when band caps under tall overlays (#645) (cf18529a) 2026-06-02
Fixed reset committed band on /clear to prevent transcript resurrection (#647) (459f03e2) 2026-06-02
Added instrument startup-latency session_phase waterfall (follow-up to #637) (#639) (21a90466) 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) 2026-06-01
Fixed anchor childless NESTING overlay heads with ◉ (fix floating-spine bug) (#642) (3c708ae) 2026-06-01
Fixed heal footer bars + re-pin full committed band after full-screen scroll (#641) (8120a5ad) 2026-06-01
Added add session_phase waterfall events + session_sealed subagent token rollup (#637) (fec76ed) 2026-06-01
Added public/internal tier gate via audience field + AFK_INTERNAL (#569) (e4a3490e) 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) 2026-06-01
Added enrich /reload-plugins output with plugin versions, source breakdown, and reload delta (#636) (f572365) 2026-06-01
Added pin loop-stage rail as reserved footer row via LoopStageBar (#634) (ea469d40) 2026-06-01
Added add bundled /refactor structural-change skill (#633) (8f2cff6) 2026-06-01
Added add bundled /simplify code-simplification skill (#631) (cb16af7) 2026-06-01
Fixed ESC soft-stop registers on first press and stops dropping the next message (#626) (4d6dc92) 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) 2026-06-01
Fixed strip terminal_font_size from skill-dispatch sub-agents + anchor review arg (#624) (e70a8f9) 2026-06-01
Fixed born-named worktrees — defer creation to first turn, never move a live worktree (#617) (322d6c3d) 2026-06-01
Fixed match shadow-verify orchestrators at word boundaries (#623) (0b2105d) 2026-06-01
Fixed clamp over-wide drawBox titles + extend sanitizer test coverage (#622) (89adbbf) 2026-06-01
Fixed strip OSC/DCS/C1 escapes from bash/grep/subagent tool output (#621) (4719a771) 2026-06-01
Added extract canonical terminal sanitizer + add drawBox primitive (#620) (20f457e) 2026-05-31
Fixed stop skill-dispatch sub-agents from asking "which skill?" (#619) (8da8808) 2026-05-31
Added ack inbound with 👀 reaction + clean-final streaming mode (#615) (df6eefb0) 2026-05-31
Added interleave per-phase thinking summaries on TTY (#614) (c38aabf2) 2026-05-31
Fixed frame ask_question as a last resort, not a first move (#616) (1ca68136) 2026-05-31
Added !cmd shell-passthrough with foreground + background modes (#565) (c8dbe1e9)2026-05-31
Fixed ESC soft-stop no longer auto-fires a phantom turn (#611) (d8ee37a) 2026-05-31
Fixed preserve URLs in tool-lane arg rendering (#612) (2fe02ee) 2026-05-31
Fixed align nested subagent thinking-tail with its tool children (#613) (da53956) 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) 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) 2026-05-31
Added truncate large pastes into compact placeholders (#574) (4a79762) 2026-05-31
Fixed single-copy commitAbove + hasCommitted-gated evict-on-growth (#592) (92211df) 2026-05-31
Added wire default witness trace writer into daemon + Telegram sessions (#604) (0319ebe4) 2026-05-31
Added refresh context usage in status line mid-turn (#527) (a41d882b) 2026-05-30
Fixed remove 5-min timeout, abort is sole unblock path (#602) (96dcce4) 2026-05-30
Fixed substitute $ARGUMENT/$ARGUMENTS in plugin SKILL.md body (#566) (10b821b) 2026-05-30
Fixed wire skill/agent/compose executors into daemon sessions (#595) (cd033635) 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) 2026-05-30
Fixed enforce read-only contract via hard-constraint prompt (#596) (15d3e10c) 2026-05-30
Fixed clear stale compositor overlay on /clear and /info (#594) (1827bd50) 2026-05-30
Added improve bot UX (items 2–8) (#588) (5b00421d) 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) 2026-05-30
Added queue messages during compaction (#586) (f7976ab9) 2026-05-30
Fixed allow get_runtime_state in read-only phase forks (#584) (86b00561) 2026-05-30
Fixed inject advisory-lock path to de-flake CI tests (#582) (297d51e6) 2026-05-29
Added inject SKILL_ROOT + validate names per agentskills.io spec (#578) (ff6a09e3) 2026-05-29
Fixed erase every row in commitAbove Phase 1 to stop multi-line splice (#581) (99ff7ec6) 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) 2026-05-29
Added migrate opus default to claude-opus-4-8 (#576) (f225660) 2026-05-29
Added namespace-normalized drift comparison for bundled SKILL.md (closes #440) (#570) (d73b396b) 2026-05-29
Added highlight /mint in mint green ;) (#577) (a582e7a) 2026-05-29
Fixed route between-turn slash output through persistent compositor (#564) (2422a227) 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) 2026-05-28
Fixed allow live frame to visually shrink (ratchet fix) (#557) (326ca92) 2026-05-28
Fixed close two soft-stop races — arm-to-handler window + late-ESC after done (#544) (b0ba748) 2026-05-28
Fixed echo reasoning_content on assistant turns for thinking-mode providers (#549) (0bf93d8) 2026-05-28
Added auto-delete worktree on zero-turn session exit (#556) (f72ef7e) 2026-05-28
Added native browser-control tools (Phase 1) (#553) (aaf8b11) 2026-05-28
Fixed plugin-skill forward path runs preflights symmetrically (#476) (0720782) 2026-05-28
Added Phase 2 — workspace baseline, presence files, afk sessions command (#548) (74a39ac) 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) 2026-05-28
Fixed bound user-card height + repair frame-shrink orphan rows (110d8dc) 2026-05-28
Fixed honor ESC soft-stop in runSkillDispatchTurn's stream loop (5ee73b8) 2026-05-28
Changed update waitlist welcome email copy (e3f9a0d) Fixed add get_runtime_state to permission allowlists (16e5446) 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) 2026-05-28
Fixed honor late-ESC after done event — suppress turn-complete (e5ace8c) 2026-05-28
Fixed plug Claude-OAuth-token leak into openai-compatible Bearer (d17fb89) 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) 2026-05-28
Fixed preflight collision check + preamble bleed recovery (340aed1) 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) 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) 2026-05-27
Added ESC soft-stop — halt stream, preserve completed work (e4f9cd0) Changed banner hint says Esc instead of Ctrl+C (670ea00) 2026-05-27
Fixed align subagent thinking-tail with tool-child content column (9b71491) 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) 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) 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) 2026-05-27
Fixed enhance scrollback functionality for visible text accumulation (9cc4c55) make scrollback actually reach the terminal scrollback buffer (1c00a0a) 2026-05-27
Added add /transcript command to view full session in $PAGER (d2f72db) 2026-05-27
Added add optional cwd param for per-call worktree isolation (717b0a6) 2026-05-27
Added provider-agnostic routing — AFK_PROVIDER + env-hint + third-party prefixes (84e1dfc) 2026-05-27
Fixed enforce read-only permission boundary on spec/research/plan phases (1fa7a54) 2026-05-27
Fixed throttle overlay repaints + park cursor at DECSTBM bottom anchor (f3ef030) 2026-05-27
Fixed park clear() cursor at rows-1 so commitAbove pushes scrollback (9690b9f) 2026-05-27
Fixed strip resume-context from config in reset() so /clear starts fresh (8eabebe) 2026-05-27
Fixed route ask_question elicitation through compositor onSubmit (f4beb24) 2026-05-27
Added close anthropic-direct parity gaps (U1+U2+I1-I3) (b8d99e5) Changed split render.ts into per-component modules (25dd6f3) 2026-05-27
Added append agentafk.com footer to changelog Threads posts (5574130) 2026-05-27
Added auto-send welcome email via Resend on signup (ebda376) 2026-05-26
Added add tool-failure-density detector (b9c2ef3) 2026-05-26
Fixed verdict-card off-by-2 overflow causing broken bordered completion box (0a2a885) 2026-05-26
Fixed forward cwd through skill and depth-2 subagent dispatch (d25315e) 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) 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) 2026-05-26
Fixed forward backgroundRegistry to forked child SubagentExecutors (6a13aff) 2026-05-26
Fixed colorize slash-command submit echo on compositor path (362e785) 2026-05-26
Added add AFK Dark VS Code / Cursor editor theme (a9af988) 2026-05-26
Fixed forward image attachments through plugin-skill dispatch (b0f014c) 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) 2026-05-26
Changed enlarge waitlist count pill for stronger social proof (2017d98) Fixed add absence-claim grounding, lower shadow-verify threshold (9edc34a) 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) 2026-05-26
Fixed paint stage rail once per event — drop pre-switch repaint (e821db1) 2026-05-26
Added add topic tag to Threads release posts (391f799) 2026-05-26
Fixed update waitlist call-to-action and placeholder text (71edd9c) 2026-05-26
Fixed route Threads changelog post to release-dedicated account (#493) (7c6a0a6) 2026-05-26
Fixed insert blank row between chrome and input prompt (#490) (b89b092) unbreak Threads changelog post — timeout race + shell quoting (#489) (5b6179f) 2026-05-26
Fixed add structured truncated flag on ToolResult for overflow detection (#481) (8b6c49a) 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) 2026-05-26
Fixed guard teardown errors in skill-executor finally blocks (703d57e) seal child skill sessions and handle SIGHUP (22ed629) 2026-05-26
Added auto-post changelog to Threads on tag push (f09ef31) 2026-05-26
Fixed repair tool-lane topology spine across three severing sites (#470) (935cfdd) 2026-05-26
Fixed skip CUP anchor on first arm() to eliminate banner→prompt gap (72b6c41) 2026-05-26
Added surface skip reasons with dim diagnostic line (b55a7bb) Fixed resolve short model aliases before SDK send (0a2af18) 2026-05-25
Fixed update toolInput format in stream-renderer and turn-handler tests (5ca0379) 2026-05-25
Fixed address 7 review findings from PR #449 (#467) (d82b43a) 2026-05-25
Added emit tool.overflow_kill on bash/grep SIGKILL (#475) (75accba) 2026-05-25
Fixed re-issue CUP anchor on terminal resize so REPL frame survives SIGWINCH (#453) (88e3180) 2026-05-25
Added capture-mode for clean demo recordings + multi-file diff separators (#426) (0174a6d) 2026-05-25
Fixed drop breadcrumb labels — anonymous anchors in live overlay (3f54014) 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) 2026-05-25
Added replace Jina with Firecrawl as markdown/search upstream (0f1581a) 2026-05-25
Fixed restore [queued] suffix so Enter mid-stream gives feedback (23d5dae) 2026-05-25
Added Sprint 3 — replay-mode eval-gen + eval-cases CLI (83288c6) Sprint 2 — template-mode propose + closure/subagent detectors + triage (f26b298) 2026-05-25
Fixed unstick REPL after usage-limit auto-resume (#448) (cd45c94) 2026-05-25
Fixed preserve multi-line clipboard paste in compositor (7b1d33a) 2026-05-25
Fixed loud-fail empty fenced code blocks with placeholder text (2b7b68f) 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) 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) 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) 2026-05-25
Fixed apply dropdown selection on Enter — Stage 3e port gap (54c5a37) 2026-05-25
Fixed clamp duration at 0 on clock skew (review C2) (9f98c44) cap duration at thinking→acting boundary + render above response (f3ee1a3) 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) 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) 2026-05-24
Fixed mirror formatAgentSummary spine topology in formatAgentHeader/Children (#450) (34b76fe) 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) 2026-05-24
Added left-anchored subagent topology spine with ◉ turn-root (#350) (1bab3bf) 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) 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) 2026-05-24
Added add stream-json output format (#419) (69a0bf8) 2026-05-24
Fixed aggregate timeout, production-visible warn, dispatch defaults (9543b6b) hook dispatch timeout + subagent fork AbortGraph cleanup (R3/R4) (a7ab48d) 2026-05-24
Fixed isolate pnpm/action-setup dest per-job to runner.temp (e3874d0) 2026-05-24
Fixed populate ProviderUsage.durationMs on every turn.completed yield (07bbe2a) bound cwd-fallback tests to tempDir, not process.cwd() (0714f67) 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) 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) 2026-05-23
Added add /cd command to set per-chat working directory (e563d12) 2026-05-23
Changed remove vestigial bootstrap scripts (#421) (545dce4) Fixed prose-question guard (H1) + codebase lane override (H2) (#418) (78c9ec3) 2026-05-23
Added dead-owner verdict, /worktree slash, boot-time auto-prune (#364) (2bf6d41) 2026-05-23
Fixed plugin install/remove invalidate scan cache + removePlugin name guard (F2/S8) (b57a066) 2026-05-23
Fixed AFK_HOME validation + migrateDirOnce EXDEV fallback (F1/F5) (f617705) 2026-05-23
Fixed extend write denylist with AFK config + tool tokens (S4) (01b2ba8) 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) 2026-05-23
Fixed propagate worktree cwd into subagents and preflights (#408) (c61a5a1) 2026-05-23
Added auto-compaction (opt-in) + SDK dependency lock (#405) (f9e052a) 2026-05-23
Fixed preserve cursor across DECSTBM toggles in withFullScrollRegion (#407) (f962403) 2026-05-23
Added background-subagent TUI parity (Ctrl+B hints, per-job status rows, auto-deny elicitations) (#362) (d2e5f8f) 2026-05-23
Fixed forbid direct push to default branch + invented convention (63f3ed3) 2026-05-23
Fixed bump pinned qualify hash to match merged rule-5 paragraph (#399 follow-up) (1f5c587) 2026-05-23
Fixed re-wrap streaming TUI overlay on terminal resize (220060b) 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) 2026-05-23
Fixed narrow skill anti-recursion guard to same-skill only (436620e) 2026-05-23
Fixed emit subagent.completed/.failed for background dispatches + fork-throws path (1a8172a) 2026-05-23
Fixed accept null in hypothesis schema, tighten prompt (810bf18) clamp thinkingTail rows to terminal width (ab7f8b9) 2026-05-23
Fixed preserve attachment indicator after message submit (1ab1d57) 2026-05-23
Fixed guard user-echo writes against DECSTBM sub-region scroll loss (9d516e7) 2026-05-23
Fixed label-aware overflow — count honesty, sibilant plural, sanitize (ef51ee4) 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) 2026-05-23
Fixed guard label-aware overflow against pre-merge placeholders (8c8cae2) preserve dispatch labels in tool-lane overflow (f396d73) 2026-05-23
Fixed preserve isolated newline deltas in streaming TTY renderer (8357dda) 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) 2026-05-22
Added Phase 1A — read-only witness-trace scanner + failure cards (eee58d4) Changed skip setOverlay repaint when overlay text is unchanged (28cfe3b) 2026-05-22
Added render live thinking overlay as a wrapped paragraph (ba42900) 2026-05-22
Added add npm install command with copy button to #access section (#384) (b8a292b) 2026-05-22
Added add MCP client support — stdio + remote (HTTP/SSE) + OAuth + live refresh (#374) (a3e8c4c) 2026-05-22
Fixed propagate traceWriter through SkillExecutor + surface wall-clock in Done summary (#378) (6721351) 2026-05-22
Fixed close 4 schema gaps surfaced by telemetry audit (#383) (c42481c) 2026-05-22
Fixed defensive verdict parsing + write-step name-collision guard (#382) (a66d8fd) 2026-05-22
Changed PR #376 follow-ups (f430388) Fixed summarize bash JSON output + move tool-result rendering upstream of truncation (#380) (1f33c1a) 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) 2026-05-22
Fixed eager-emit ancestor frame headers in ToolLane.flushSource (2c2e103) 2026-05-21
Added route Messages traffic through a local Anthropic-compatible server (#239) (2578100) 2026-05-21
Added hydrate stats + welcome banner on session resume (#316) (2142890) Changed add founder anecdote + finalize 'Built by' credit (#308) (139bc02) 2026-05-21
Fixed launchctl-throws test uses telegram, not daemon (b2341b0) 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.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) 2026-05-20
Added phase reducer + test-runner detector + risk classifier (pure-function trio) (f9fb3f4) 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. 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) 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) 2026-05-20
Fixed zombie-state hardening for background work + Haiku 4.5 pricing (5e4c376) 2026-05-20
Fixed chronological interleave for subagent done-blocks (#328) (8ba83ea) 2026-05-20
Fixed forward image attachments through slash commands (C+D hybrid) (961539f) 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) 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) 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) 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 expressionafk.config.json.example updated to show the daemon.task / daemon.taskId fieldsFixed default trigger to sessionstart; pass --cron flag through (Gap B) (#311) (bdf3ef9) 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) 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) 2026-05-19
Fixed add Write-step invariants to prevent skill_name="unknown" silent-failure (c303850) 2026-05-19
Changed emit in-flight badge inline via completionWriter (d612533) Fixed resolve PR #321 review blockers and majors (95c04dc) 2026-05-19
Fixed distinguish 'nothing-to-summarize' from 'history-too-short' (72e31c2) resolve session-stuck and malformed-HTML regressions (P0) (352f46d) 2026-05-19
Fixed correct-by-construction fixes for fenced code, ordered lists, hr, blockquote (bab3b09) 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) 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) 2026-05-19
Added skill-invocation plumbing — types, registry, native handler, plugin-forward, review-pr (#287) (0cb3e72) 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) 2026-05-19
Fixed retry transient 529/503 errors with exponential backoff (b846a8e) 2026-05-19
Fixed auto-start bot after allowlist save (95378a7) resolve bot entrypoint in bundled dist layout (816c8d2) 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) 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 nowform-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 allowlisttrim 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 bothSecurity 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 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) 2026-05-18
Fixed reduce text density and increase breathing room (#297) (04f74a9) 2026-05-18
Fixed Escape dismisses dropdown; uniform muted color for all trigger kinds (#282) (789f108) 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) 2026-05-18
Added Day 4b + 4c + 4d — inline-button digest + Discard/Diff/Respawn/OpenPR callbacks + schema v3 [speculative branch farm] (#273) (df7bf36) 2026-05-18
Added show effective cwd in the persistent bottom status line (0a2a46d) 2026-05-18
Changed added .vercel to .gitignore (dd50366) Fixed bust waitlist-count cache on insert + lower JS cache TTL (91836ee) 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) 2026-05-18
Added swap waitlist storage from Supabase to Neon (9e7ca44) 2026-05-18
Added subagent permission system + worktree isolation (#242) (1ffaeb7) 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) 2026-05-18
Fixed move subagent narration below tool children (0704363) 2026-05-18
Added route subagent done-blocks above prose when emitted pre-markdown (89d2d47) Changed assert agentType propagates from SubagentExecutor to renderer (7e94a0a) 2026-05-18
Fixed resolve /review findings on PR #275 (a187db5) 2026-05-18
Changed add coverage for update command, fetchLatestVersion, and banner ordering (e33da04) Fixed address PR #278 review feedback — banner, --pin, robustness (e7f148f) 2026-05-18
Fixed prevent heredoc newlines from corrupting tree connector rendering (76d719e) 2026-05-18
Fixed show update banner on startup and add afk update command (c4e48da) 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) 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) 2026-05-17
Added persist tool events in session archives (#268) (3f73a32) 2026-05-17
Fixed summarize memory tool JSON in tool-lane outcomes (af5cda2) 2026-05-17
Added centralized user-facing error handling (0943e9f) 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 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) 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) 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) 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) 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) 2026-05-15
Added group same-tool siblings + categorical overflow + bash summarizer (ba43dda) 2026-05-15
Fixed address review findings on thinking-render-bugs (547cb78) surface thinking content during turns (232697f) 2026-05-15
Fixed anchor fence detection to line start (fc5654d) 2026-05-15
Changed add telemetry-split orchestration plan (0be9561) Fixed attribute nested subagents and silence stdout debug leak (77e224c) 2026-05-15
Fixed align user-echo card content with inline prompt column (8019e2b) 2026-05-14
Added expose dispatchSkill callback on SkillExecutionContext (a4515bf) 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) 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) 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.2026-05-14
Fixed repair release pipeline + dev start scripts (c83ede0) 2026-05-14
Added add /init slash command to scan project and generate AFK.md (af56752) 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) 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) 2026-05-14
Added add afk-worktrees-status.sh read-only inspector (#198) (eaeaaa7) 2026-05-13
Added add send_telegram built-in tool for operator notifications (#187) (c7150a1) 2026-05-13
Added surface execution trace from child sessions to parent (#193) (4af131b) 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. SDK2026-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) 2026-05-13
Fixed decouple AFK telemetry from ~/.claude/agent-framework (#191) (01160ba) 2026-05-13
Added repaint stage rail on transitions + enable extended thinking by default (4750263) 2026-05-13
Fixed add blank line between paragraphs in markdown rendering (c4949d7) 2026-05-13
Fixed render inline markdown in card bodies (#165) (0d803a6) 2026-05-13
Added activate compose tool in production entrypoints (#185) (3d93f00) 2026-05-13
Fixed resume on JSON-string {userApproved:true} from skill-tool boundary (#166) (f7387d3) 2026-05-13
Fixed truncate /skills descriptions and add detail view (#181) (905edb9) 2026-05-13
Fixed per-call signal check in executeBatch parallel branch (#182) (4c87ee7) 2026-05-13
Fixed repair clipboard image paste on macOS (Cmd+V + binary readback) (#163) (7b6e0d7) 2026-05-13
Fixed normalize paragraph spacing and fix overlay alignment (#184) (7cc3752) 2026-05-13
Fixed restore cursor, honest spinner, durable interrupt notice, honest --stream (#183) (e50c1ba) 2026-05-13
Added add compose tool for DAG-based parallel subagent orchestration (#173) (a78027f) 2026-05-13
Fixed use dirname on fileURLToPath before joining relative paths (1251a74) 2026-05-13
Fixed auto-submit queued messages instead of requiring a second Enter (92a1c83) 2026-05-13
Fixed update description for clarity and improve commit process guidance (e986f1c) 2026-05-13
Fixed add memory tools to allowlist and prevent dangling tool_use on abort (6162b2c) 2026-05-13
Added add completion glyphs to tool result display (8d0d756) 2026-05-13
Added add auto-update checker with notify/auto/off policy (bbc9ae5) 2026-05-13
Added improve subagent visibility in nested skill runs (eed3ba6) 2026-05-13
Fixed convert skill-name XML tags to styled badges and fix tool glyph casing (b754e41) 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) 2026-05-13
Fixed correct skill count, add email fallback, ship OG image (640521a) 2026-05-13
Fixed add blank line between user input and agent response (44107d6) 2026-05-12
Added highlight slash commands anywhere in the input buffer (d5e570c) 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) 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 optionsFile-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) 2026-05-12
Added cross-session memory system + mint state persistence (#115) (40231c6) 2026-05-12
Added add --dump-prompt debug flag for SDK prompt verification (#34) (c49fb7d) 2026-05-12
Fixed show early tool-use indicator during model generation (#123) (0b91592) 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) 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) 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) 2026-05-11
Added runtime positioning + reversibility-aware autonomy section (1a3af3f) Fixed correct overclaims, restore working CTA (639790d) 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) 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 treeswithTimeout / TimeoutError helpersZod 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 untouchedSDK 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 stringlistSessions skips SDK PID-registry sidecars; /resume formatter guards NaN / undefined timestampsCLI: tool names and file paths now surface in interactive output 2026-02-09
Added Initial release Project infrastructure Testing framework Basic CLI commands