Informe JSON sin procesar legible por máquina
{
"data": {
"repo": {
"topics": [],
"is_fork": false,
"size_kb": 8310,
"has_wiki": true,
"homepage": null,
"languages": {
"Go": 1657723,
"Ruby": 2403,
"Shell": 5347
},
"pushed_at": "2026-07-23T07:55:36Z",
"created_at": "2026-07-16T18:37:59Z",
"owner_type": "User",
"updated_at": "2026-07-18T18:13:41Z",
"description": "Terminal multi-CLI agent tracker: centralized Agent View for Claude Code, Codex, Gemini, OpenCode and more",
"is_archived": false,
"is_disabled": false,
"license_spdx": null,
"default_branch": "main",
"license_spdx_raw": null,
"primary_language": "Go",
"significant_languages": [
"Go"
]
},
"owner": {
"blog": "www.nathan-delacretaz.com",
"name": null,
"type": "User",
"login": "Nathandela",
"company": "Quanthome",
"location": "Lausanne, Switzerland",
"followers": 7,
"avatar_url": "https://avatars.githubusercontent.com/u/47887658?v=4",
"created_at": "2019-02-22T10:45:08Z",
"is_verified": null,
"public_repos": 7,
"account_age_days": 2708
},
"license": {
"state": "absent",
"spdx_id": null,
"raw_spdx": null,
"file_present": false,
"scorecard_found": false,
"profile_has_license": false
},
"activity": {
"releases": [
{
"tag": "v0.5.1",
"kind": "patch",
"published_at": "2026-07-18T18:17:56Z"
},
{
"tag": "v0.5.0",
"kind": "minor",
"published_at": "2026-07-18T17:34:09Z"
},
{
"tag": "v0.4.0",
"kind": "minor",
"published_at": "2026-07-18T13:14:13Z"
},
{
"tag": "v0.3.0",
"kind": "minor",
"published_at": "2026-07-18T10:44:03Z"
},
{
"tag": "v0.2.0",
"kind": "minor",
"published_at": "2026-07-18T08:35:40Z"
},
{
"tag": "v0.1.0",
"kind": "minor",
"published_at": "2026-07-18T05:53:37Z"
}
],
"recent_commits": [
{
"oid": "de63641ab13cd0128e61bd97f547941da8d1c488",
"body": "Field test 5 (bead agents-tracker-zsc): a codex session waiting on\ncommand approval showed Working. Replaying the live transcript through\nthe production vt emulator proved the dialog frame is inconclusive to\nevaluateCodexGrid - the busy hint is gone and codex hides the cursor,\nso neither the busy no\n[…]\ne real\nfield screen; verified red-first and against the live transcript.\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01AMF1EgNqYTS3iiq17HDWNB",
"is_bot": false,
"headline": "Fix codex approval dialog reading as Working (needs-input signature)",
"author_name": "Nathan Delacrétaz",
"author_login": "Nathandela",
"committed_at": "2026-07-18T18:13:36Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "6b5ab42a811c79c5c3ea2ff2a98ee1ceef78ef95",
"body": "Fable's v0.5 final audit flagged the subscribe section's 'a live status change reaches a healthy subscriber' as imprecise versus amended L1: an intermediate change may coalesce away; the latest committed state is what arrives within the bound. Post-release doc touch-up, explicitly non-blocking in the verdict.",
"is_bot": false,
"headline": "protocol.md: subscribe streams latest-state snapshots (ADR-008 touch-up)",
"author_name": "Nathan Delacrétaz",
"author_login": "Nathandela",
"committed_at": "2026-07-18T17:35:15Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "c0def5cfae322b2e0eed1d370ef64b624ca84577",
"body": "…livered stream\n\ncodex's confirm round caught the last edge-delivery straggler: V-5 promised a banner whenever a session enters needs_input/ready_for_review, which ADR-008 permits coalescing away. V-5, E7.2, and the matrix V-5 row now scope the trigger to transitions observed in the delivered status\n[…]\ne always persist to delivery. ADR-008 consequences record the amendment.\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01AMF1EgNqYTS3iiq17HDWNB",
"is_bot": false,
"headline": "Amend V-5 for ADR-008: banner fires on transitions observed in the de…",
"author_name": "Nathan Delacrétaz",
"author_login": "Nathandela",
"committed_at": "2026-07-18T17:28:11Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "64c5de1e7852e49ac6d74c231ad5d9202f72a5a0",
"body": "codex's v0.5 final-confirm flagged that the single-producer fan-out\n(5c2d698) can coalesce two commits landing inside one sampling window,\nlosing a committed intermediate state, and read P-3/L1 as requiring\nper-change edge delivery. Ruling: amend the contract, not the code.\nEdge-completeness was nev\n[…]\nnd the reopen condition (any future server-side\nedge-triggered feature).\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01AMF1EgNqYTS3iiq17HDWNB",
"is_bot": false,
"headline": "ADR-008: status events are latest-state snapshots (coalescing permitted)",
"author_name": "Nathan Delacrétaz",
"author_login": "Nathandela",
"committed_at": "2026-07-18T17:24:47Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "5c2d698e5c1f59c6b8fa6c5a3e22fd3cc0d741c7",
"body": "…ace)\n\ncodex maintained its rename race with an exact interleaving and was\nright - the race is emitStatus-vs-poller, not daemon-writer-vs-writer\n(what the other reviewers verified safe): emitStatus could capture\nmeta before a rename, queue its stale snapshot AFTER the poller\nqueued the newer name, a\n[…]\nix rows still\nencoding the pre-ADR-007 inconclusive rule (codex item 6).\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01AMF1EgNqYTS3iiq17HDWNB",
"is_bot": false,
"headline": "Fix codex v0.5 HIGH-2: single-producer roster fan-out (stale-rename r…",
"author_name": "Nathan Delacrétaz",
"author_login": "Nathandela",
"committed_at": "2026-07-18T17:15:57Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "ba472253701c7def7bb08c1af65dd825e7e771a9",
"body": "Consensus fixes from the v0.5 audit: readCapped stat-and-rejects\nnon-regular files so a FIFO planted at a config path cannot block the\ndetection goroutine (symlinked regular configs still pass); T-4 and\nE10.8 amended to reference the ADR-007 revision (the source-of-truth\nrequirements still encoded t\n[…]\nblocking),\nthe duplicated roster diff key, and the offline-replay panic.\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01AMF1EgNqYTS3iiq17HDWNB",
"is_bot": false,
"headline": "v0.5: committee polish - FIFO probe guard, spec/ADR amendments",
"author_name": "Nathan Delacrétaz",
"author_login": "Nathandela",
"committed_at": "2026-07-18T16:56:20Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "17776aa266cea0ef2e7abd9876103824d8bc7c3a",
"body": "overlayModelOptions was an unimplemented identity function, so the\ndiscovered models never reached the launch form - the orchestrator's\nsession-limit salvage completed the parsers but missed the stubbed\nintegration seam, and no test covered it. Implemented (catalog\nreplaces aliases; default-only dis\n[…]\n-pinned.\n\nTDD red appended to docs/verification/v0_5-red/models-red.txt.\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01AMF1EgNqYTS3iiq17HDWNB",
"is_bot": false,
"headline": "Fix codex v0.5 HIGH-1: implement the model-overlay stub",
"author_name": "Nathan Delacrétaz",
"author_login": "Nathandela",
"committed_at": "2026-07-18T16:43:53Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "4eaf9787ac658444494bd3056aaf54520bd02c14",
"body": "Field test 4: the board's leftmost column is now the session NAME with\nthe agent as its own column; 'e' on a row opens an inline rename\n(type/paste, enter saves, esc cancels). New protocol Rename op\nmodeled on Kill end-to-end: server revalidates via sanitizeName, the\ndaemon persists through the sing\n[…]\nd: docs/verification/v0_5-red/rename-red.txt.\nCloses agents-tracker-hki.\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01AMF1EgNqYTS3iiq17HDWNB",
"is_bot": false,
"headline": "v0.5: rename sessions from the board + name-first layout",
"author_name": "Nathan Delacrétaz",
"author_login": "Nathandela",
"committed_at": "2026-07-18T16:27:28Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "255a160f775e65e61a6476d1761639a50b122a58",
"body": "…ignatures\n\nField test 4 P1s, forensics-driven. The engine no longer lets an\nINCONCLUSIVE grid read clobber a known status: absence of evidence is\nnot evidence of change (ADR-007 - reverses the deliberate\napply-unknown design; Tick's evidence-based silence downgrade kept,\nthe two fire on opposite ev\n[…]\ned through the production emulator.\nCloses the two v0.5 P1 status beads.\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01AMF1EgNqYTS3iiq17HDWNB",
"is_bot": false,
"headline": "v0.5: status accuracy - preserve rule (ADR-007) + codex/claude grid s…",
"author_name": "Nathan Delacrétaz",
"author_login": "Nathandela",
"committed_at": "2026-07-18T16:04:54Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "f5b29f387a95c4941962ff4be5fdeab12078c9d3",
"body": "The model field now pre-fills the model each CLI is actually\nconfigured to use and cycles real choices: codex from CODEX_HOME\nconfig.toml (model key) + models_cache.json (visibility list, by\npriority); claude from settings.json (default only - no enumeration\nexists). Probes live in the detect packag\n[…]\ns/verification/v0_5-red/models-red.txt.\nCloses the model-discovery bead.\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01AMF1EgNqYTS3iiq17HDWNB",
"is_bot": false,
"headline": "v0.5: launch form discovers real model default + choices from CLI config",
"author_name": "Nathan Delacrétaz",
"author_login": "Nathandela",
"committed_at": "2026-07-18T15:41:16Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "13927e4efea03f2277a393555fd8647630d398e0",
"body": "…al names\n\nAdjudicated from the codex/Opus/Fable v0.4 audit. Attach now dials a\nfresh connection per attach from the stored socket path, so the auto\ndaemon-upgrade no longer strands attach on the dead pre-restart conn\n(the codex+Opus HIGH; real-daemon post-upgrade attach test added).\ncompareSemver l\n[…]\n selected one.\n\nTDD red: docs/verification/v0_4-red/audit-fixes-red.txt.\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01AMF1EgNqYTS3iiq17HDWNB",
"is_bot": false,
"headline": "v0.4: committee fixes - fresh-dial attach, prerelease semver, canonic…",
"author_name": "Nathan Delacrétaz",
"author_login": "Nathandela",
"committed_at": "2026-07-18T13:07:57Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "0aedd5f886ea02c930b661d579ef11065dedda37",
"body": "…esults",
"is_bot": false,
"headline": "Fix SA4006 in flow/naming tests: discard deliberately-unused settle r…",
"author_name": "Nathan Delacrétaz",
"author_login": "Nathandela",
"committed_at": "2026-07-18T12:37:03Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "274fbbd142dee6a2a8f42f07f4b8119d4c1b264c",
"body": "Field test 3: no way to tell running agents apart. The launch form\ngains an optional name field (default <agent>-<base cwd> composed at\nsubmit); LaunchReq/SessionView carry it (server-sanitized, 64-rune\ncap, truncate-never-reject), meta.json persists it additively (legacy\nmetas load fine), and the b\n[…]\nd: docs/verification/v0_4-red/naming-red.txt.\nCloses agents-tracker-4e2.\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01AMF1EgNqYTS3iiq17HDWNB",
"is_bot": false,
"headline": "v0.4: session naming end-to-end",
"author_name": "Nathan Delacrétaz",
"author_login": "Nathandela",
"committed_at": "2026-07-18T12:20:49Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "0363215d68e3e4624051d2d6c848fea1d85cbba9",
"body": null,
"is_bot": false,
"headline": "v0.4: end-to-end test locking form-submit auto-attach integration",
"author_name": "Nathan Delacrétaz",
"author_login": "Nathandela",
"committed_at": "2026-07-18T11:42:50Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "dcaad20c66a4af545be9a373c131a98afc4bd0d0",
"body": "…on upgrade\n\nField test 3 wave. Form: option schemas fully swap when arrows cross\nagents (codex rows no longer leak into claude's form), label column\nfits 12-char labels, selected-dot marker fixed, bool rows show the\nspace affordance inline. Detection: probe crash output is no longer\ndiscarded - the\n[…]\nhe session id.\n\nTDD red: docs/verification/v0_4-red/{form,flow}-red.txt.\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01AMF1EgNqYTS3iiq17HDWNB",
"is_bot": false,
"headline": "v0.4: form glitch fix, probe-reason surfacing, auto-attach, auto daem…",
"author_name": "Nathan Delacrétaz",
"author_login": "Nathandela",
"committed_at": "2026-07-18T11:37:28Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "971c0e01cb6e287aa001a3f54bf9a219bb496fa8",
"body": "Field test 3: the reserved-row hint was reverse video (a harsh white\nbar on dark terminals); now faint (SGR 2) with a negative assertion\nforbidding reverse. goreleaser gains universal_binaries so the darwin\nartifact is a fat x86_64+arm64 binary - brew-installed swarm always\nruns native, fixing the R\n[…]\nerence regenerated.\n\nTDD red: docs/verification/v0_4-red/polish-red.txt.\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01AMF1EgNqYTS3iiq17HDWNB",
"is_bot": false,
"headline": "v0.4: dim hint bar + darwin universal binary",
"author_name": "Nathan Delacrétaz",
"author_login": "Nathandela",
"committed_at": "2026-07-18T11:13:32Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "d52057e3856f149ab9ea96a1283b70f647980809",
"body": null,
"is_bot": false,
"headline": "Ignore session-local .claude/worktrees",
"author_name": "Nathan Delacrétaz",
"author_login": "Nathandela",
"committed_at": "2026-07-18T10:43:50Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "ee5b85eb64f6bddb9eb2fef99251d1636a4a4c05",
"body": "codex re-confirm round 2: the resize branch was the one remaining\nunconditional injection site - a resize landing mid escape sequence\ncould still splice region/hint bytes into the agent stream. The\nresize's terminal writes now go through the same ground-state gate\n(deferred via pendingResize to the \n[…]\ny).\n\nTDD red appended to docs/verification/v0_3-red/audit-fixes-red.txt.\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01AMF1EgNqYTS3iiq17HDWNB",
"is_bot": false,
"headline": "v0.3: ground-gate the resize path + height-2 notice policy",
"author_name": "Nathan Delacrétaz",
"author_login": "Nathandela",
"committed_at": "2026-07-18T10:39:05Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "1fcae2e545c746dc60a4005ef4725460f7d65ae4",
"body": "Adjudicated fixes from the codex/Opus/Fable audit: re-assert\ninjections are ground-state-gated by a minimal streaming parser so a\nframe ending mid escape sequence is never corrupted (A-1 purity,\ncodex CRITICAL); a one-shot trailing heal timer bounds last-frame\ndamage and absolute-CUP bottom-row stom\n[…]\naded.\n\nTDD red evidence: docs/verification/v0_3-red/audit-fixes-red.txt.\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01AMF1EgNqYTS3iiq17HDWNB",
"is_bot": false,
"headline": "v0.3: committee hardening of the reserved row + delete path",
"author_name": "Nathan Delacrétaz",
"author_login": "Nathandela",
"committed_at": "2026-07-18T10:31:54Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "f381001e0da3f1630a4706b2413c8e0d2b3c7573",
"body": "Field test 2: Enter on an ended session was a silent no-op (the\ndaemon refuses non-running attach, so the Epic-8 read-only path was\ndead fiction - superseded with traceability to bead x5z) and delete\ngave no acknowledgment. Enter on a non-running row now banners with\nnext steps; delete/kill replies \n[…]\nrification/v0_3-red/sessionux-red.txt.\nCloses the ended-session UX bead.\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01AMF1EgNqYTS3iiq17HDWNB",
"is_bot": false,
"headline": "v0.3: ended-session UX + version-skew notice",
"author_name": "Nathan Delacrétaz",
"author_login": "Nathandela",
"committed_at": "2026-07-18T09:49:46Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "3f0d42fd0ab1faf0edbb9efa275e49e9af3fff1d",
"body": "Field test 2: the user had no visible way back to the board from\ninside an agent. The attach view now reserves the real terminal's\nbottom row: the session PTY is sized rows-1, a DECSTBM scroll region\npins rows 1..rows-1, and a reverse-video hint (name + ctrl+q returns\nto swarm) owns the last row. Th\n[…]\ne: docs/verification/v0_3-red/hintrow-red.txt.\nCloses the hint-row bead.\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01AMF1EgNqYTS3iiq17HDWNB",
"is_bot": false,
"headline": "v0.3: reserved bottom hint row while attached (ctrl+q affordance)",
"author_name": "Nathan Delacrétaz",
"author_login": "Nathandela",
"committed_at": "2026-07-18T09:39:06Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "632d5c1c241a49f3395e5f967f8e971ee732621d",
"body": "Field test 2: up/down now move between form fields (Tab kept); arrows\ncan land on an unusable agent, which renders greyed with a derived\nreason (probe crash, unsupported version) instead of being silently\nskipped - the dead-arrow no-op the user hit with a broken codex npm\ninstall. Launch guard appen\n[…]\n/verification/v0_3-red/formnav-red.txt.\nCloses the form-navigation bead.\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01AMF1EgNqYTS3iiq17HDWNB",
"is_bot": false,
"headline": "v0.3: form arrows navigate + unusable agents visible with reason",
"author_name": "Nathan Delacrétaz",
"author_login": "Nathandela",
"committed_at": "2026-07-18T09:23:53Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "a817cfd67e0aceffdc023886acd508e55465b660",
"body": "Fable re-confirm residual (agents-tracker-9p5): xterm-family terminals\nin UTF-8 mode honor UTF-8-encoded C1 CSI/OSC as controls, so the\nrender-time backstop must strip U+0080-U+009F alongside C0+DEL.\nTDD red appended to docs/verification/v0_2-red/audit-fixes-red.txt.\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01AMF1EgNqYTS3iiq17HDWNB",
"is_bot": false,
"headline": "Widen render sanitizer to C1 control runes (U+0080-U+009F)",
"author_name": "Nathan Delacrétaz",
"author_login": "Nathandela",
"committed_at": "2026-07-18T08:38:07Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "7c9a343de1c6fa8f55a1de2657542b167ba2c5d0",
"body": "Render: control bytes stripped from snapshot text (escape-injection\nguard); RenderSnapshotClipped clips to the client terminal (rows,\nwidth-accumulated cols, wide cells never split, cursor clamped);\nrecorded alt-screen mode restored in the preamble; malformed snapshot\nnow paints a visible notice ins\n[…]\nated.\n\nTDD red evidence: docs/verification/v0_2-red/audit-fixes-red.txt.\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01AMF1EgNqYTS3iiq17HDWNB",
"is_bot": false,
"headline": "v0.2: audit-committee fix wave (9 items, codex/Opus/Fable adjudicated)",
"author_name": "Nathan Delacrétaz",
"author_login": "Nathandela",
"committed_at": "2026-07-18T08:29:39Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "7d8908c2fc45843ebbf5c132a22f9336f9503eea",
"body": "CI (ubuntu) caught the 2s probe bound not binding: linux /bin/sh runs\nits command as a child, so the context kill left an orphan holding the\noutput pipe and CombinedOutput blocked until the orphan exited (macOS\nbash execs the command, masking the bug locally). cmd.WaitDelay = 1s\nforce-closes the pipes after the kill. Verified darwin 2.01s and\nlinux/docker 3.02s.\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01AMF1EgNqYTS3iiq17HDWNB",
"is_bot": false,
"headline": "Fix probe timeout on linux: WaitDelay closes pipes past orphan holders",
"author_name": "Nathan Delacrétaz",
"author_login": "Nathandela",
"committed_at": "2026-07-18T07:56:37Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "97a1949f6aba354f3235f69766c6911e546143a7",
"body": "Implements ADR-006 waves 1-2. DefaultDetachKey 0x1c (Ctrl+backslash,\nuntypeable on Swiss/QWERTZ layouts) becomes 0x11 (Ctrl+q); clean in raw\nmode since IXON is off, proven by the real-PTY detach test. Spec A-2 /\nscenario 8 and the E14 EARS matrix updated with the ADR citation.\n\nThe board now renders\n[…]\ned/chrome-detach-red.txt.\nCloses agents-tracker-bkn, agents-tracker-qes.\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01AMF1EgNqYTS3iiq17HDWNB",
"is_bot": false,
"headline": "v0.2: detach key Ctrl+q + full-screen board with persistent status bar",
"author_name": "Nathan Delacrétaz",
"author_login": "Nathandela",
"committed_at": "2026-07-18T07:52:21Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "1e55b96449567c9092733e049dce77d8c88f0f9c",
"body": "P0 perf: pressing n froze the TUI for minutes — agent detection ran\nclaude/codex --version synchronously on the Update loop with no timeout.\nDetection now runs async at startup (detectMsg cache, live refresh on\nform open) and detect.Host.Run bounds the probe with a 2s CommandContext.\n\nForm UX (field\n[…]\n_2-red/form-perf-red.txt.\nCloses agents-tracker-3it, agents-tracker-0cx.\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01AMF1EgNqYTS3iiq17HDWNB",
"is_bot": false,
"headline": "v0.2: instant launch form (async bounded detection) + form UX overhaul",
"author_name": "Nathan Delacrétaz",
"author_login": "Nathandela",
"committed_at": "2026-07-18T07:30:10Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "b5db8c8dd9fae7833524976604781013b71e8408",
"body": "Records the three decision changes from the first human field test before\nWave B implements them: detach key Ctrl+backslash to Ctrl+q (layout\naccessibility), full-screen board with persistent status bar, and the\nbilling-inheritance principle (env forwarded untouched, neutral indicator\nonly).\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01AMF1EgNqYTS3iiq17HDWNB",
"is_bot": false,
"headline": "ADR-006: field-test UX revisions (detach key, chrome, auth inheritance)",
"author_name": "Nathan Delacrétaz",
"author_login": "Nathandela",
"committed_at": "2026-07-18T07:19:23Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "08842f75e5be635858b52c45057690718cc1d403",
"body": "Field test showed attaching painted the literal snapshot JSON to the\nterminal: vt.Emulator.Snapshot is a JSON projection and attach wrote it\nverbatim. Add vt.RenderSnapshot (clear+home, per-run SGR styling, cursor\nrestore) and wire attach to decode+render, skipping malformed snapshots\nsilently. Chro\n[…]\nin docs/verification/v0_2-red/render-red.txt.\nCloses agents-tracker-a6f.\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01AMF1EgNqYTS3iiq17HDWNB",
"is_bot": false,
"headline": "v0.2: render attach snapshot as ANSI instead of raw JSON (P0)",
"author_name": "Nathan Delacrétaz",
"author_login": "Nathandela",
"committed_at": "2026-07-18T07:17:37Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "22dc5081670eba5d812e83fe9255038bef5b05b3",
"body": "… chronology note\n\nAddresses the final committee re-tour's concrete residuals (codex):\n- E5.7: wantOwnerOnly + the state-dir/socket/lock checks now assert the EXACT\n contracted mode (0700 dir / 0600 files+socket), not merely no-group/other bits\n (which accepted 0400/0700/0000). Pins the stated con\n[…]\nth commits integrated at verified-green checkpoints by workflow design.\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01AMF1EgNqYTS3iiq17HDWNB",
"is_bot": false,
"headline": "Re-tour fixes: E5.7 exact-mode perms + scenario-1 N-1 citation + GG-5…",
"author_name": "Nathan Delacrétaz",
"author_login": "Nathandela",
"committed_at": "2026-07-18T01:52:22Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "e124955db16b87df5c05bdf6ae1d22a447ee6596",
"body": "…uffers\n\nThe buffer-shrink alone didn't make drops engage on the ubuntu CI runner (AF_UNIX\nflow-control blocking is kernel-version-specific). The buffers are finite, so a\nwedged consumer's queue WILL overflow given enough flood; ubuntu's defaults are\nlarger, so 20s was too short. Bump the drop-wait \n[…]\n drops must still engage; only the patience for a larger buffer grows).\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01AMF1EgNqYTS3iiq17HDWNB",
"is_bot": false,
"headline": "S9 drop tests: 90s drop-wait deadline for ubuntu CI's larger socket b…",
"author_name": "Nathan Delacrétaz",
"author_login": "Nathandela",
"committed_at": "2026-07-18T01:34:16Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "1007aac2238f39a4916940dba4aa2e10f270ed9e",
"body": "…ogs (Epic 11/14)\n\nTwo S9 wedged-consumer drop tests (TestSurvival_WedgedConsumerDropsFrames...,\nTestSurvival_SoakBoundedMemory) flaked on the CPU-constrained CI runner (\"drops\nnever started within 20s\"): filling a large default socket buffer before the\nbounded queue overflows is CPU-bound, so on a \n[…]\n code (a7d ordering, disk-full, compat matrix,\n perf/composite gates).\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01AMF1EgNqYTS3iiq17HDWNB",
"is_bot": false,
"headline": "S9 drop tests: deterministic overflow (CI-runner robust) + GG-5 red-l…",
"author_name": "Nathan Delacrétaz",
"author_login": "Nathandela",
"committed_at": "2026-07-18T01:25:23Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "35b1fc05a45a509420fe148762700b4e5936a426",
"body": "The linux CI test lane (running for the first time since the Epic-4 Getsid fix)\nsurfaced 10 internal/shim unit-test failures. All THREE root causes are\ntest-infra — the shim product works on linux (e2e/daemon/skeleton pass);\nshim.go/server.go are untouched:\n\n1. Snapshot-vs-live routing (not lost out\n[…]\nount=5, no flakes) + darwin -race PASS; gofmt/vet/GOOS=linux vet clean.\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01AMF1EgNqYTS3iiq17HDWNB",
"is_bot": false,
"headline": "Fix linux shim unit tests: 3 test-infra causes (no product bug)",
"author_name": "Nathan Delacrétaz",
"author_login": "Nathandela",
"committed_at": "2026-07-18T01:00:55Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "f06d9121216901fb521f03fdb2cb65175b869205",
"body": "…, perms, scenario map\n\nAddresses the committee's whole-system-tour findings (audit trail: the codex +\nOpus + Fable tour on 6de7b00):\n\n- GG-4 lint: all 15 golangci-lint v1.64.8 findings fixed (2 real bugs: an\n unimplemented drain-check behind an empty branch in lease_test, a dead\n accumulator in s\n[…]\n fix in progress; the\nproduct passes on linux via e2e/daemon/skeleton.)\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01AMF1EgNqYTS3iiq17HDWNB",
"is_bot": false,
"headline": "Whole-system audit fixes: lint (GG-4), live-shim N-2 gate, GG-6 scope…",
"author_name": "Nathan Delacrétaz",
"author_login": "Nathandela",
"committed_at": "2026-07-18T00:33:03Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "2ab7e747f51db0c7681c6c764d1229582f59a6f1",
"body": "The whole-system audit tour (Fable) caught that CI has failed on every push\nsince Epic 4: cmd/swarm/role_test.go used syscall.Getsid, which exists only on\ndarwin. `GOOS=linux go build` skips test files so it passed every epic's\nbuild check, but CI's `go vet` on ubuntu typechecks tests and fails\n(\"un\n[…]\nswitches the\none test call to match. GOOS=linux go vet ./... now clean.\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01AMF1EgNqYTS3iiq17HDWNB",
"is_bot": false,
"headline": "Fix CRITICAL: linux CI red since Epic 4 — syscall.Getsid in a test file",
"author_name": "Nathan Delacrétaz",
"author_login": "Nathandela",
"committed_at": "2026-07-17T23:44:41Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "6de7b00cda5bc15844ed4106ac945338dd4dbd59",
"body": "…perf gate, gated real-CLI\n\nE14.3 old-shim×new-daemon compat MATRIX (build-tagged shimwire version seam,\nbyte-identical shipped build; matched interops, both skew directions detect->lost\nwith agent+shim alive, S3). E14.4 N-3 real daemon+shims idle-CPU <5%/core over\n>=60s (integration lane, both CI p\n[…]\nproduction test seams\n(shim.testHookAfterSignalArm, persist.writeTemp).\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01AMF1EgNqYTS3iiq17HDWNB",
"is_bot": false,
"headline": "Epic 14 Wave 2: compat matrix, idle-CPU, L1 composite, worktree e2e, …",
"author_name": "Nathan Delacrétaz",
"author_login": "Nathandela",
"committed_at": "2026-07-17T23:27:36Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "d7147a545d6c83bc42998e8abc793b8c7a9b36d6",
"body": "… soak + injections\n\nE14.5 fuzz job (5 targets, bounded fuzztime). E14.2/E14.6/E14.7 traceability\nartifacts (invariant list, EARS matrix, contracts manifest) — every cited test\nverified to exist. a7d: a nil-in-production shim seam proves a SIGTERM in the\narm->spawn window is buffered and still conta\n[…]\nL1 composite, worktree e2e, gated real-CLI smoke) + evidence file next.\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01AMF1EgNqYTS3iiq17HDWNB",
"is_bot": false,
"headline": "Epic 14 Wave 1: fuzz-CI, traceability artifacts, a7d ordering, daemon…",
"author_name": "Nathan Delacrétaz",
"author_login": "Nathandela",
"committed_at": "2026-07-17T22:59:03Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "7c149ac9e24b1add249e728e5d243ff1db15aab8",
"body": "…d (committee CONSENSUS)\n\ngoreleaser v2 pipeline: 4 static CGO-free artifacts (darwin/linux × amd64/arm64)\n+ sha256 checksums; only cmd/swarm ships (dev tools excluded). Build version is\nstamped via ldflags into internal/version, printed by `swarm version`, and\ncarried additively on the real OpHello\n[…]\n -race; goreleaser check valid. Sign/notarize deferred to release time.\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01AMF1EgNqYTS3iiq17HDWNB",
"is_bot": false,
"headline": "Epic 13: release packaging — installable by name, versioned end-to-en…",
"author_name": "Nathan Delacrétaz",
"author_login": "Nathandela",
"committed_at": "2026-07-17T22:18:56Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "1a5ec9760c0096747345b341838d280c5f4b2ece",
"body": "…SENSUS)\n\ncodex + Opus both CONFIRM Epic 11 ready to close. Three audit rounds turned\nconformant-but-simulation-only adapters into a working, race-safe status\nfeature: SetStatus resurrection race, restart-status seed, terminal-writer\nrace, the event->status mapping bridge, and real transcript-driven\n[…]\nnt\ncapture during a held attach), closing codex's LOW verification nit.\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01AMF1EgNqYTS3iiq17HDWNB",
"is_bot": false,
"headline": "Epic 11 evidence — close the adapters + status feature (committee CON…",
"author_name": "Nathan Delacrétaz",
"author_login": "Nathandela",
"committed_at": "2026-07-17T21:20:08Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "381cc6aa964bcd79810168a204e84f96c0c184b9",
"body": "…ture\n\nCloses the three narrow B2/B3 edges the confirmation committee found:\n\nC1 - conversation-id capture no longer depends on winning a second live shim\nattach. Capture now reads the transcript file tail (bounded) on the poll\ncadence AND at session end, so a session the user attaches immediately a\n[…]\n capture/extract tests at -count=5; gofmt/build/vet + GOOS=linux clean.\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01AMF1EgNqYTS3iiq17HDWNB",
"is_bot": false,
"headline": "Epic 11: confirmation-round residuals (audit-011) — robust resume cap…",
"author_name": "Nathan Delacrétaz",
"author_login": "Nathandela",
"committed_at": "2026-07-17T21:13:21Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "b701b4a1c9e9d6ea8fbd2055c33cf52459711b34",
"body": "codex + Opus confirmed B1/B4/B5/fixture resolved and gates green under -race;\nOpus verdict CONFIRM. codex found 3 narrow B2/B3 edges (attached-until-exit\ncapture gap, non-atomic register/seed on fresh launch, partial-id write-once),\nall verified in code. One final tight round (C1-C4) dispatched; findings are\nnarrowing round-over-round (convergence).\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01AMF1EgNqYTS3iiq17HDWNB",
"is_bot": false,
"headline": "Epic 11: confirmation synthesis (audit-011) — 3 narrow residuals",
"author_name": "Nathan Delacrétaz",
"author_login": "Nathandela",
"committed_at": "2026-07-17T20:59:04Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "b933beee3c7393d7695cea5a00fe20c3848f5341",
"body": "… safe defaults\n\nAddresses the five correctness bugs the audit-010 committee confirmed:\n\nB1 - resume no longer lies or fails silently: composeLaunchSpec proceeds as a\nresume (and stamps ResumedFrom) only when a real resume argv is composed;\notherwise it returns a clear error. The TUI resume path now\n[…]\nngine race tests at\n-count=5; gofmt/build/vet + GOOS=linux build clean.\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01AMF1EgNqYTS3iiq17HDWNB",
"is_bot": false,
"headline": "Epic 11: committee fix round (audit-010) — resume, S7, terminal race,…",
"author_name": "Nathan Delacrétaz",
"author_login": "Nathandela",
"committed_at": "2026-07-17T20:23:04Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "fa05830ce8fd2ee5d609ac00e6882e785e7151eb",
"body": "codex (cross-model) + Opus (independent, ran the gates) re-reviewed the fix\nround. Structural spine cleared; five correctness bugs confirmed line-by-line\n(broken/mislabeled resume, S7 stale-active after restart, terminal-writer\nrace, unsafe permission default, unfaithful Codex fixture). Codex live\nt\n[…]\ne names consciously deferred to Epic 14.\nTargeted fix round dispatched.\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01AMF1EgNqYTS3iiq17HDWNB",
"is_bot": false,
"headline": "Epic 11: committee re-review synthesis (audit-010) — FIX REQUIRED",
"author_name": "Nathan Delacrétaz",
"author_login": "Nathandela",
"committed_at": "2026-07-17T19:55:51Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "8c9ae6791ee23cf93f0ec6e36e14074c0ac91f17",
"body": "The audit-009 committee cleared the adapters as pure/conformant but found the\nFEATURE undelivered: launching a real Claude/Codex session, its hooks driving\nstatus, and resume all worked only in simulation. This round wires the six\nremaining seams (FIX 1, the SetStatus race, landed in ceabc44):\n\nFIX \n[…]\nr -race (27 packages), gofmt/build/vet clean. Committee\nre-review next.\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01AMF1EgNqYTS3iiq17HDWNB",
"is_bot": false,
"headline": "Epic 11 FIX 2-7: turn conformant adapters into a working status feature",
"author_name": "Nathan Delacrétaz",
"author_login": "Nathandela",
"committed_at": "2026-07-17T19:37:53Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "ceabc44fb9bd5bb1428cc6f41cb0d6e26f497f45",
"body": "The audit-009 committee's CRITICAL finding: SetStatus read meta under d.mu,\nreleased the lock, then saveMeta persisted the STALE process dimension. A late\nengine emit interleaved with handleShimExit/markLost could overwrite an exited\nor lost session back to running, so a dead session showed running \n[…]\nreen against the committed base wiring). FIX 2-7 from audit-009 remain.\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01AMF1EgNqYTS3iiq17HDWNB",
"is_bot": false,
"headline": "Epic 11 FIX 1: close the SetStatus resurrection race (atomic RMW)",
"author_name": "Nathan Delacrétaz",
"author_login": "Nathandela",
"committed_at": "2026-07-17T19:06:06Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "8b2e4ac3a029d9f02ef35a25b0d366af5920c47d",
"body": "…d-to-end\n\nCompletes the carry-forward from Epics 8/10. Three seams in the skeleton assembly:\n(a) daemon OnSessionStart/OnSessionEnd hooks thread the privately-minted SWARM_HOOK_TOKEN\nto engine.RegisterSession (token never persisted). (b) A 200ms grid-sample tap opens a\nshort-lived shim attach (resp\n[…]\na verified no-op (S6). Whole module green under -race; GG-1 stays green.\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01AMF1EgNqYTS3iiq17HDWNB",
"is_bot": false,
"headline": "Epic 11: engine->daemon status wiring — status detection now works en…",
"author_name": "Nathan Delacrétaz",
"author_login": "Nathandela",
"committed_at": "2026-07-17T18:12:04Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "483c21bcf9a9a60c3abae55220f47ecf81abf0bb",
"body": "…ts, T-5 boundary)\n\nThe two v1.0 real-CLI adapters, each a pure strategy object importing only {adapter, vt}.\nClaude: hook-style SignalSources (6 events via inline-JSON --settings injection, per-\ninvocation), --resume + conversation-id, ParseVersion('2.1.212 (Claude Code)').\nCodex: typed-event Signa\n[…]\nwo mechanical frozen-test defects: a dead vt import, a gofmt alignment.)\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01AMF1EgNqYTS3iiq17HDWNB",
"is_bot": false,
"headline": "Epic 11: Claude Code + Codex adapters + registry (pure strategy objec…",
"author_name": "Nathan Delacrétaz",
"author_login": "Nathandela",
"committed_at": "2026-07-17T18:07:05Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "210a5790d8d2735dd051d0ba09465fba862f9512",
"body": "… committee consensus)\n\nGG-1 proven end-to-end and human-runnable: swarm opens the real TUI; kill -9 the\ndaemon, every agent survives, reconnect with nothing lost (exact grid + transcript).\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01AMF1EgNqYTS3iiq17HDWNB",
"is_bot": false,
"headline": "Epic 8 evidence + red log; close the WALKING SKELETON milestone (full…",
"author_name": "Nathan Delacrétaz",
"author_login": "Nathandela",
"committed_at": "2026-07-17T17:20:58Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "442e9b908d4460961737d49010d1c9eabf9f8d0f",
"body": "…test, Epic 8 audit synthesis\n\nHousekeeping — three files landed in the working tree but missed their epic commits:\ndocs/adr/ADR-002 (the Epic 6 re-attach-on-supersede amendment), the Epic 12 E12.3\nhookpoints_test.go (the daemon PreLaunch/PreDelete registration test), and the Epic 8\ncommittee synthesis. No code change.\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01AMF1EgNqYTS3iiq17HDWNB",
"is_bot": false,
"headline": "Commit missed files: ADR-002 re-attach amendment, Epic 12 hookpoints …",
"author_name": "Nathan Delacrétaz",
"author_login": "Nathandela",
"committed_at": "2026-07-17T17:17:29Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "ce92b082f11f24294e9af21e62a9b61e811b0a76",
"body": "…id + transcript continuity, stdin guard\n\ncodex final round. (1) The 'V' version-probe tag is an incompatible wire change, so\ndaemon.ProtocolVersion 1->2 — a new daemon now detects a legacy untagged daemon as\nskewed (RED test proved it went undetected at v1). (2) GG-1 e2e strengthened: the\npost-reco\n[…]\nH stdout and\nstdin to be terminals (redirected-stdin bypass test added).\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01AMF1EgNqYTS3iiq17HDWNB",
"is_bot": false,
"headline": "Epic 8 final: bump ProtocolVersion for the wire change, GG-1 exact-gr…",
"author_name": "Nathan Delacrétaz",
"author_login": "Nathandela",
"committed_at": "2026-07-17T17:15:35Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "43b9b1287349aaed01106bf80f746819aa0972bf",
"body": "…istic demux, self-contained GG-1\n\nCommittee (codex+Opus). runTUI now opens the real TUI: EnsureDaemon (D-1) ->\nprotocol.Dial -> tui.New(WithAttachRunner(NewAttachRunner(client.Attach, terminal\nhandoff))) -> tea.Program on the real terminal; no-tty -> clear error; PTY smoke test\nproves the general v\n[…]\nia\na real snapshot decode ('SKELETON-LIVES'). Latency comment corrected.\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01AMF1EgNqYTS3iiq17HDWNB",
"is_bot": false,
"headline": "Epic 8 review fixes: wire runTUI (swarm opens the real TUI), determin…",
"author_name": "Nathan Delacrétaz",
"author_login": "Nathandela",
"committed_at": "2026-07-17T16:57:06Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "bc6444476290fcdaad9b0179a5991e4fbd7e2eb5",
"body": "…GG-1 green)\n\nTHE MILESTONE. The daemon now assembles end-to-end: internal/skeleton.Serve composes\ndaemon.Open (singleton) + engine.Run + protocol.Serve on the daemon socket (via an\nadditive ConnHandler knob) + a 3-way first-byte demux (version handshake / protocol\nframe / raw hook JSON, no hook-wir\n[…]\nout) is\nan Epic 11 carry-forward (becomes real with live adapter hooks).\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01AMF1EgNqYTS3iiq17HDWNB",
"is_bot": false,
"headline": "Epic 8: walking skeleton — daemon assembly + raw attach passthrough (…",
"author_name": "Nathan Delacrétaz",
"author_login": "Nathandela",
"committed_at": "2026-07-17T15:57:56Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "e58e903f9dbe86116e543d7494e6f37f00fd5ecf",
"body": "… F1 deferred to Epic 8)",
"is_bot": false,
"headline": "Epic 12 evidence + red log; close epic (mechanism approved, F2 fixed,…",
"author_name": "Nathan Delacrétaz",
"author_login": "Nathandela",
"committed_at": "2026-07-17T15:13:14Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "e778363b0258354d897872d4cacf2abf096241e8",
"body": "Review found a leak: a launch that fails AFTER a successful PreLaunch called\ndropReserved (erasing the meta) but never a compensating PreDelete, orphaning the\nworktree dir + branch forever. Fix: a rollbackReserved helper calls PreDelete\n(when PreLaunch succeeded) before dropReserved on all 7 post-Pr\n[…]\n-injection paths that keep the meta are untouched. Genuine red-to-green.\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01AMF1EgNqYTS3iiq17HDWNB",
"is_bot": false,
"headline": "Epic 12 F2: compensate the worktree hook on launch rollback (no orphan)",
"author_name": "Nathan Delacrétaz",
"author_login": "Nathandela",
"committed_at": "2026-07-17T15:11:00Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "1492757b3b1c2df2aa5bb8a82d86a202be22ed55",
"body": "internal/worktree: Create makes .swarm/worktrees/<validated-id> on branch swarm/<id>\n(git worktree add; path-safe id validated first, clear non-repo error); Remove tears\nit down (git worktree remove --force + prune, R-3). Daemon gains optional\nPreLaunch(id,spec)->cwdOverride and PreDelete(meta) hook\n[…]\ne shim spawns in the worktree. All 49 existing daemon tests still green.\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01AMF1EgNqYTS3iiq17HDWNB",
"is_bot": false,
"headline": "Epic 12: worktree isolation via daemon pre-launch/pre-delete hooks",
"author_name": "Nathan Delacrétaz",
"author_login": "Nathandela",
"committed_at": "2026-07-17T14:51:46Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "73b42893690f72a290fc1ed43c7dc8d013cfb894",
"body": null,
"is_bot": false,
"headline": "Epic 7 evidence + red log; close epic (committee APPROVE)",
"author_name": "Nathan Delacrétaz",
"author_login": "Nathandela",
"committed_at": "2026-07-17T14:33:29Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "1f4b568a700b98165b1a8e136849ff469a2c3c72",
"body": "…, launch guard, calmer repaint\n\nBlocking fix: selection + Ctrl+X confirm now resolve by SESSION ID, not flat index,\nso a concurrent status event that reorders groups can never make kill/delete/attach\nhit the wrong session (data-destructive bug). Selection follows the same session by\nidentity across\n[…]\nd needs the\nalt-screen wiring that Epic 8 lands (recorded on that bead).\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01AMF1EgNqYTS3iiq17HDWNB",
"is_bot": false,
"headline": "Epic 7 review fixes: identity-based selection (no wrong-session kill)…",
"author_name": "Nathan Delacrétaz",
"author_login": "Nathandela",
"committed_at": "2026-07-17T14:28:14Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "89c3bdd83100f87e4c6ee33b11085da475fdd193",
"body": null,
"is_bot": false,
"headline": "Epic 10 evidence + red log; close epic (full committee consensus)",
"author_name": "Nathan Delacrétaz",
"author_login": "Nathandela",
"committed_at": "2026-07-17T14:05:52Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "32d24aee2982e93019fa717dac86f462ecbdf898",
"body": "…red concurrent hooks)\n\ncodex re-review: strict lastSeq drops a legitimately-later-arriving lower sequence\nunder concurrent out-of-order hook delivery. A flat anti-replay window would fix that\nbut CONTRADICTS the frozen no-regression tests (a stale same-dimension update must be\nrejected). Resolution\n[…]\nnt corrected (transits 0600 launch config + env, never meta/transcript).\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01AMF1EgNqYTS3iiq17HDWNB",
"is_bot": false,
"headline": "Epic 10 F1-redux: per-dimension sequence high-water (tolerates reorde…",
"author_name": "Nathan Delacrétaz",
"author_login": "Nathandela",
"committed_at": "2026-07-17T14:03:17Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "8844af39f415236fb6e6e7bf6625560867e2b198",
"body": "…x, launch injection; fix linux build\n\nCommittee (codex+Opus, engine core confirmed correct). F1: replace the constant\nspawn-env sequence with a per-session flock'd counter file each hook atomically\nincrements (strictly-increasing under concurrent hooks — G5 now actually works).\nF2: applyPayload rej\n[…]\nd to Epic 8 walking skeleton per both reviewers (recorded on that bead).\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01AMF1EgNqYTS3iiq17HDWNB",
"is_bot": false,
"headline": "Epic 10 review fixes: per-session sequence counter, Emit-outside-mute…",
"author_name": "Nathan Delacrétaz",
"author_login": "Nathandela",
"committed_at": "2026-07-17T13:39:08Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "6ed5d85b133fe2c6828da5da0e4e216cdfe69736",
"body": "The user-facing production slice, matched to docs/design/ui-preview.html. Screen\nrouter (general/launch/attach sub-models); grouped general view (4 status groups,\nV-4 row fields, live Subscribe updates, needs-input/ready-for-review banners);\nfull keyboard map (wrap-select, Ctrl+X confirm kill-runnin\n[…]\no keep\nthe go 1.24 directive. teatest goldens are the acceptance record.\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01AMF1EgNqYTS3iiq17HDWNB",
"is_bot": false,
"headline": "Epic 7: TUI general view + launch form (Bubble Tea v2)",
"author_name": "Nathan Delacrétaz",
"author_login": "Nathandela",
"committed_at": "2026-07-17T13:17:53Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "9c9642db5863963ba3aebb5eca8b320eb2f198e8",
"body": "…istics, staleness guard\n\nThe daemon-side status engine (S6/S7). HandleCallback authenticates every typed\nsignal (live token + strictly-increasing sequence; rejects tokenless/foreign/\nreplayed/post-end with no emit — S6/G5). Staleness guard flips active→unknown on\nno-output-and-no-CPU past threshold\n[…]\n posts an\nauthenticated callback. Single status writer per session (G6).\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01AMF1EgNqYTS3iiq17HDWNB",
"is_bot": false,
"headline": "Epic 10: status detection engine — authenticated hook callbacks, heur…",
"author_name": "Nathan Delacrétaz",
"author_login": "Nathandela",
"committed_at": "2026-07-17T12:55:13Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "1b767d057b61f2a92aa73ed64b18b76b338eb83e",
"body": "…e module green)",
"is_bot": false,
"headline": "Epic 6 evidence + red log; close epic (full committee consensus, whol…",
"author_name": "Nathan Delacrétaz",
"author_login": "Nathandela",
"committed_at": "2026-07-17T11:51:22Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "c55664e78c06df1688c177aebca4fa7a2d50c9ea",
"body": "…cap is sound\n\ncodex: the cap's per-cell byte assumption was unsound — Run.Text grapheme clusters\nand Snap.Title have no byte limit, so a legal snapshot could exceed the cap and be\nwrongly rejected. Producer-side fix: the emulator clamps per-cell text to 64 bytes\n(rune-boundary; covers any real grap\n[…]\nects these real producer bounds. vt fuzz + suite\ngreen; shim unaffected.\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01AMF1EgNqYTS3iiq17HDWNB",
"is_bot": false,
"headline": "Epic 6: bound per-cell text + title in vt snapshot so the reassembly …",
"author_name": "Nathan Delacrétaz",
"author_login": "Nathandela",
"committed_at": "2026-07-17T11:47:25Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "982e1f82c4fa2814a26b4c863707874a1a92fef0",
"body": "…ot is rejected\n\ncodex: the fixed 16 MiB cap rejected valid large-grid snapshots (vt emits one JSON\nrun per cell). Cap now = maxDim*maxDim*snapshotBytesPerCell — admits the largest\nlegal snapshot, rejects garbage/negative/oversized declared lengths (no OOM), and\ntracks maxDim automatically. Epic 8 f\n[…]\ne inline (run-merging is the\neventual optimization for large terminals).\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01AMF1EgNqYTS3iiq17HDWNB",
"is_bot": false,
"headline": "Epic 6: derive snapshot reassembly cap from maxDim so no legal snapsh…",
"author_name": "Nathan Delacrétaz",
"author_login": "Nathandela",
"committed_at": "2026-07-17T11:30:40Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "f2b63aa398352fc387ee14ac026c9771d2809b92",
"body": "…oundary), bound reassembly\n\ncodex found 3 new HIGHs from the snapshot-splice approach. Root fix: supersede now\nRE-ATTACHES via a fresh shim connection instead of splicing a fresh snapshot into a\nreused stream — reusing the shim's Epic 4 atomic snapshot-then-stream boundary (S10),\neliminating the da\n[…]\nsupersede\nsemantics + L3 stream release rather than single-stream reuse.\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01AMF1EgNqYTS3iiq17HDWNB",
"is_bot": false,
"headline": "Epic 6 re-review fixes: re-attach on supersede (reuse shim's atomic b…",
"author_name": "Nathan Delacrétaz",
"author_login": "Nathandela",
"committed_at": "2026-07-17T11:16:23Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "6b10576f8234541d4ba5bb52d13f940cf8cfe0b8",
"body": "…slow-controller eviction, L1 event safety\n\nCommittee (codex 7 HIGH + Opus-with-race). Snapshot now chunked across frames\n(a full grid exceeds wire.MaxFrame — ADR-002 amended) with attachment-state\nrollback on write failure; supersede fetches a FRESH snapshot; the attach output\npath is bounded with \n[…]\nizes text;\ndetach generation checked; lease/seen maps cleaned on delete.\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01AMF1EgNqYTS3iiq17HDWNB",
"is_bot": false,
"headline": "Epic 6 review fixes: snapshot chunking, fresh-snapshot-on-supersede, …",
"author_name": "Nathan Delacrétaz",
"author_login": "Nathandela",
"committed_at": "2026-07-17T10:11:20Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "a92dd74d773d83aef40eddaa200af6c31bd23d3d",
"body": null,
"is_bot": false,
"headline": "Epic 9 evidence + red log; close epic (full committee consensus)",
"author_name": "Nathan Delacrétaz",
"author_login": "Nathandela",
"committed_at": "2026-07-17T09:36:26Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "7afa3264f7778e82b7d71fc288de17068406f612",
"body": "…, geometry, stderr version)\n\nRe-review NOT-RESOLVED + new defects, all in the dev tool. swarm-char now exposes\n-scenario/-input/-hook-sink/-geometry/-adapter and derives capability from the\nselected adapter via a registry (Epic 11 registers claude/codex). Hook collection\nis bounded (grace deadline \n[…]\ntry. detect uses CombinedOutput so a stderr-printed\nversion is captured.\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01AMF1EgNqYTS3iiq17HDWNB",
"is_bot": false,
"headline": "Epic 9: finish swarm-char CLI (flags, adapter registry, bounded hooks…",
"author_name": "Nathan Delacrétaz",
"author_login": "Nathandela",
"committed_at": "2026-07-17T09:34:02Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "6d43704d86feaf0d5d66159bdabe4c925b24585b",
"body": "…formance teeth, real characterization\n\ncodex FIX REQUIRED (contract-design flaw): Detect() was pure-declared but host-probing.\nReplaced with pure Binary()/VersionArgs()/ParseVersion() + a core Detect(a, HostProber)\nso adapters own zero fds/disk/sockets (ADR-001) — contract package now verified I/O-\n[…]\nos + collects hooks over a sink + derives capability from the real grid.\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01AMF1EgNqYTS3iiq17HDWNB",
"is_bot": false,
"headline": "Epic 9 review fixes: Detect() made pure (descriptors+HostProber), con…",
"author_name": "Nathan Delacrétaz",
"author_login": "Nathandela",
"committed_at": "2026-07-17T09:15:29Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "7c09e6e88c9ad388628a80d0f0ee99454fb79fd6",
"body": "…out, server-side groups\n\nThe low-reversibility wire surface (ADR-002, G1 framing reused). Control ops over\ntype-tagged frames; hello with version+capability negotiation (D-8 both sides);\nexclusive controller lease with monotonic generations and supersede (S2), stale\ninput/resize dropped server-side\n[…]\nith a reflection-based drift test. DialSession seam added to the daemon.\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01AMF1EgNqYTS3iiq17HDWNB",
"is_bot": false,
"headline": "Epic 6: client protocol + daemon API — lease/generation, bounded fan-…",
"author_name": "Nathan Delacrétaz",
"author_login": "Nathandela",
"committed_at": "2026-07-17T09:03:54Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "8bcf65be2d8dc3d2f9bedd39e63d8a1641c14045",
"body": "…in-unblock hang\n\nFrozen anti-corruption boundary (T-1/T-5/T-6): the Adapter interface + conformance\nsuite, versioned fixture-corpus schema, swarm-char harness, and a fixture-only\nreference adapter proving zero core edits (import-boundary check). Purity proven\nfour ways (determinism, fd/goroutine ne\n[…]\ned flag to race. Two crasher corpus\nfiles retained as regression guards.\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01AMF1EgNqYTS3iiq17HDWNB",
"is_bot": false,
"headline": "Epic 9: adapter contract + characterization harness; fix vt Close dra…",
"author_name": "Nathan Delacrétaz",
"author_login": "Nathandela",
"committed_at": "2026-07-17T08:21:35Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "f5b0614793c1531b75e99ab0967851e217b6b490",
"body": "… 4 fix rounds)",
"is_bot": false,
"headline": "Epic 5 evidence + red log; close epic (full committee consensus after…",
"author_name": "Nathan Delacrétaz",
"author_login": "Nathandela",
"committed_at": "2026-07-17T07:54:15Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "df3ac2f97116d5fc316af648779040d98ac4e925",
"body": "codex: signal.Stop didn't drain sigCh or join the handler, so a queued signal\ncould invoke onSignal after finalization and hit a reused pgid. The one-shot\nhandler now runs under a WaitGroup; Run closes its done channel, joins it, and\ndrains sigCh before finishEscalation — provably quiescent at final\n[…]\no baseline. Only residual:\nuncatchable SIGKILL of the shim (documented).\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01AMF1EgNqYTS3iiq17HDWNB",
"is_bot": false,
"headline": "Epic 5 N2-final-2: join the shim signal handler before finalization",
"author_name": "Nathan Delacrétaz",
"author_login": "Nathandela",
"committed_at": "2026-07-17T07:52:47Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "0087161b49aac6c60050440caa7fee927cd5cc11",
"body": "The launch-abort orphan window (agent exists between StartWithSize and acceptLoop)\nis closed at its root: the shim now arms an OS signal handler BEFORE spawning the\nagent, so any catchable termination of the shim runs the agent-group TERM->KILL\nfirst (agent-exists implies handler-armed). Daemon clea\n[…]\n an uncatchable SIGKILL of the shim itself (documented, error-surfaced).\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01AMF1EgNqYTS3iiq17HDWNB",
"is_bot": false,
"headline": "Epic 5 N2-final: shim self-contains its agent group on SIGTERM/HUP/INT",
"author_name": "Nathan Delacrétaz",
"author_login": "Nathandela",
"committed_at": "2026-07-17T07:39:21Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "ce1b8ab517646aa1838b53b4c69b98aaf575e6cf",
"body": "codex flagged the fallback kill(-shimPID) as still racy. The literal reorder\n(identity save after serving) regresses S1: the agent becomes live during\nwaitShimServing, so a daemon death there leaves a live agent with no persisted\nidentity -> reconnect marks it lost. Resolution keeps the identity sav\n[…]\nists. Added an\ninvariant-guard test + Epic 14 note (agents-tracker-a7d).\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01AMF1EgNqYTS3iiq17HDWNB",
"is_bot": false,
"headline": "Epic 5 N2-residual: race-free launch cleanup preserving S1 reconnect",
"author_name": "Nathan Delacrétaz",
"author_login": "Nathandela",
"committed_at": "2026-07-17T07:15:23Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "9afa219463f6edd5d3129a3aa39e72d801bf1f51",
"body": "…h cleanup kills agent group\n\ncodex delta re-review found 2 new HIGHs the prior round introduced. Restart now\nwaits for the old daemon's flock to free and Dial-confirms the replacement before\nreporting success (socket-quiet was never lock-free proof). Failed-launch cleanup\nsends SigKill through the \n[…]\nt the shim. Both proven by non-vacuous tests (HUP/stdin-ignoring agent).\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01AMF1EgNqYTS3iiq17HDWNB",
"is_bot": false,
"headline": "Epic 5 re-review fixes: Restart confirms replacement took over, launc…",
"author_name": "Nathan Delacrétaz",
"author_login": "Nathandela",
"committed_at": "2026-07-17T06:54:17Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "fd5a83cb1a9d68d0890a5b5a4429c95535d3271f",
"body": "… delete race, reconcile errors, real kill-9 test\n\nCommittee (codex+Opus, productive divergence). Fixes: pidfile stores PID+start-time\nand restart verifies before SIGTERM (the S3 bug in the daemon's own pidfile);\nlaunch kills an un-trackable shim instead of persisting ShimStartTime=0; delete/exit\nre\n[…]\nparenting + fd independence), two-process singleton race, log hardening.\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01AMF1EgNqYTS3iiq17HDWNB",
"is_bot": false,
"headline": "Epic 5 review fixes: restart PID-reuse safety, launch identity error,…",
"author_name": "Nathan Delacrétaz",
"author_login": "Nathandela",
"committed_at": "2026-07-17T06:36:56Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "fa997571703c13bc90b5901ad9bbe9ca9dd98140",
"body": "…phase launch, kill-9 survival\n\nLifecycle authority (ADR-001/S1): flock-before-bind singleton (S12); registry\nrebuilt from meta scan with (PID, process-start-time) identity reconnect, lost\non mismatch with zero signals (S3); two-phase launch with crash-window\nreconciliation leaving no orphan/phantom\n[…]\n kill-9 the daemon, every agent survives, a fresh daemon reconnects all.\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01AMF1EgNqYTS3iiq17HDWNB",
"is_bot": false,
"headline": "Epic 5: daemon core — flock singleton, PID+start-time reconnect, two-…",
"author_name": "Nathan Delacrétaz",
"author_login": "Nathandela",
"committed_at": "2026-07-17T05:11:56Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "d1e11ea24d5dd95ef49532f451ba32473fc50f87",
"body": null,
"is_bot": false,
"headline": "Epic 4 evidence + audit-003; close epic (full committee consensus)",
"author_name": "Nathan Delacrétaz",
"author_login": "Nathandela",
"committed_at": "2026-07-17T04:08:32Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "570dadaaada7ad64de45fdb90e39f22b67f0bbe1",
"body": "…tee+verify setsid\n\ncodex re-review residuals. Escalation worker is now tracked and joined at\nfinalization with one synchronous group KILL, so no goroutine can signal a\n(possibly reused) pgid after Run returns. swarm shim role guarantees a fresh\nsession: Setsid, else Getsid check, else re-exec with \n[…]\nop-guarded); role_test asserts SID==PID. Corrected Run doc + umask note.\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01AMF1EgNqYTS3iiq17HDWNB",
"is_bot": false,
"headline": "Epic 4 final fixes: join escalation worker before Run returns, guaran…",
"author_name": "Nathan Delacrétaz",
"author_login": "Nathandela",
"committed_at": "2026-07-17T04:06:37Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "25d9c8c2483ce4f4045961be5f1ba60ca9aa60c9",
"body": "… flush timeout, persistence integrity, resize/handshake gate, swarm shim role\n\nCommittee (codex + Opus) FIX REQUIRED. F1 CRITICAL: TERM->KILL now escalates\non group-not-empty with a bounded PTY-EOF wait, so a TERM-ignoring child can no\nlonger survive or hang Run. F2-F9: async reply pump (S9), timed\n[…]\n-load now requires contiguity; 30s bounded-memory soak (heap growth ~0).\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01AMF1EgNqYTS3iiq17HDWNB",
"is_bot": false,
"headline": "Epic 4 review fixes: group-empty escalation, non-blocking reply pump,…",
"author_name": "Nathan Delacrétaz",
"author_login": "Nathandela",
"committed_at": "2026-07-17T03:10:45Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "bac19f8f9ff208600b4db2cada6f2cafaa3413c3",
"body": "…group signals, exit side-files\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01AMF1EgNqYTS3iiq17HDWNB",
"is_bot": false,
"headline": "Epic 4: shim engine — PTY ownership, G2 socket, S10 attach boundary, …",
"author_name": "Nathan Delacrétaz",
"author_login": "Nathandela",
"committed_at": "2026-07-17T02:10:01Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "19bae1453eff3ed702e36c6c561996ee6dd3b027",
"body": "…se; shim test suite (red)\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01AMF1EgNqYTS3iiq17HDWNB",
"is_bot": false,
"headline": "Epic 4: G1 wire codec, G2 message set, vt replies API + race-free Clo…",
"author_name": "Nathan Delacrétaz",
"author_login": "Nathandela",
"committed_at": "2026-07-17T01:04:04Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "adf18d5a33729f2ea443b1af7ce3736d0f085e9f",
"body": null,
"is_bot": false,
"headline": "Epic 2 evidence file and red log; close epic",
"author_name": "Nathan Delacrétaz",
"author_login": "Nathandela",
"committed_at": "2026-07-17T00:04:18Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "cef5c3f34e41d8ea05b3cb34803e3b10aa3c3a89",
"body": "… printable-only sanitizer\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01AMF1EgNqYTS3iiq17HDWNB",
"is_bot": false,
"headline": "Epic 2 review fixes: scoped fuzz invariant (grapheme/malformed-UTF8),…",
"author_name": "Nathan Delacrétaz",
"author_login": "Nathandela",
"committed_at": "2026-07-16T23:57:19Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "c4e20cafaba9552704d65430094054c038a720c8",
"body": "…r, fuzz-found query-reply drain\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01AMF1EgNqYTS3iiq17HDWNB",
"is_bot": false,
"headline": "Epic 2: Emulator wrapper — structured snapshots, hostile-escape filte…",
"author_name": "Nathan Delacrétaz",
"author_login": "Nathandela",
"committed_at": "2026-07-16T23:09:52Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "f7984e8ecc088a99375ae161ee8be7b7817b9dcf",
"body": "… close epic\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01AMF1EgNqYTS3iiq17HDWNB",
"is_bot": false,
"headline": "Epic 3 review fixes + evidence: config validation, flush-after-close,…",
"author_name": "Nathan Delacrétaz",
"author_login": "Nathandela",
"committed_at": "2026-07-16T22:51:07Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "8a0ef5314f9a10f9d3bffbf3a438340a8c9a25d2",
"body": "…rain\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01AMF1EgNqYTS3iiq17HDWNB",
"is_bot": false,
"headline": "Epic 3: transcript writer — rotation, spinner collapse, never-block d…",
"author_name": "Nathan Delacrétaz",
"author_login": "Nathandela",
"committed_at": "2026-07-16T22:37:43Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "9659ab744f61348987a78acb4bb8dc7c45acdff7",
"body": "…n to 1.24\n\nWide-char cell geometry decided it: only x/vt keeps columns aligned for CJK,\nemoji and box drawing, which snapshots and grid heuristics depend on. Spike\ntest + real vim alt-screen capture retained as the validation fixture.\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01AMF1EgNqYTS3iiq17HDWNB",
"is_bot": false,
"headline": "Epic 2: E2.1 risk gate passed — charm x/vt chosen (ADR-005), toolchai…",
"author_name": "Nathan Delacrétaz",
"author_login": "Nathandela",
"committed_at": "2026-07-16T22:29:05Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "b839c3172b528d5e45a46c12d77d32369ab485e6",
"body": null,
"is_bot": false,
"headline": "Close Epic 1: full committee approval",
"author_name": "Nathan Delacrétaz",
"author_login": "Nathandela",
"committed_at": "2026-07-16T22:10:03Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "a9e6d59d47aaa97de428019e7116459c3932c4bf",
"body": null,
"is_bot": false,
"headline": "Epic 1 evidence file and red-phase logs (GG-5)",
"author_name": "Nathan Delacrétaz",
"author_login": "Nathandela",
"committed_at": "2026-07-16T22:08:18Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "3ba3c8b515ad47dd7e1775f8a69c4ea13662b4f9",
"body": "…arwin dylib assertion\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01AMF1EgNqYTS3iiq17HDWNB",
"is_bot": false,
"headline": "Epic 1 round-2 fixes: non-vacuous crash test, migration gap errors, d…",
"author_name": "Nathan Delacrétaz",
"author_login": "Nathandela",
"committed_at": "2026-07-16T22:07:22Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "afaa532e8abb353f4451da5eabd35f1de45178f3",
"body": null,
"is_bot": false,
"headline": "Remove accidentally committed build artifact, ignore root binary",
"author_name": "Nathan Delacrétaz",
"author_login": "Nathandela",
"committed_at": "2026-07-16T21:59:50Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "e4492b1c1bb44387ad3e1d516e4268792955f29e",
"body": "…ion, dir hardening, migration registry, symlink guard, CI static assert, stdin-ask guard\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01AMF1EgNqYTS3iiq17HDWNB",
"is_bot": false,
"headline": "Epic 1 review fixes: decode validation, env choke point, crash inject…",
"author_name": "Nathan Delacrétaz",
"author_login": "Nathandela",
"committed_at": "2026-07-16T21:56:14Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "4798a130eb67b29785d4c291b5a780b3e9323f93",
"body": "…afe ids\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01AMF1EgNqYTS3iiq17HDWNB",
"is_bot": false,
"headline": "Epic 1: persistence — atomic meta store, migration, allowlist, path-s…",
"author_name": "Nathan Delacrétaz",
"author_login": "Nathandela",
"committed_at": "2026-07-16T21:35:34Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "973efccce352b51650d2310bbefa73ad07638ba3",
"body": "Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01AMF1EgNqYTS3iiq17HDWNB",
"is_bot": false,
"headline": "Epic 1: status kernel (36-row derivation) and scripted fake agent, TDD",
"author_name": "Nathan Delacrétaz",
"author_login": "Nathandela",
"committed_at": "2026-07-16T21:27:30Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "92a70518644620b605a0285bed622bc9e3df5f63",
"body": "Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01AMF1EgNqYTS3iiq17HDWNB",
"is_bot": false,
"headline": "Epic 1: module bootstrap, role dispatch, CI cross-compile matrix",
"author_name": "Nathan Delacrétaz",
"author_login": "Nathandela",
"committed_at": "2026-07-16T21:19:08Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "9815f9fb16fad350f8a5f8cf4c3bd38ec4c66350",
"body": "AGENTS.md finalized as a map; manifesto vendored with provenance (SHA 37dcf68);\nCI skeleton (docs gate + guarded lint/test); ADR index; N-7 limitation in README;\nproject rules in CLAUDE.md; backlog verified against build plan.\nIndependent review: APPROVE. Evidence: docs/verification/epic-00-evidence.md.\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01AMF1EgNqYTS3iiq17HDWNB",
"is_bot": false,
"headline": "Epic 0: agentic codebase foundation",
"author_name": "Nathan Delacrétaz",
"author_login": "Nathandela",
"committed_at": "2026-07-16T21:14:14Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "f225437d5eaedc73360a3aff74ea8ee8757191f7",
"body": "…onfigurable cap",
"is_bot": false,
"headline": "Close last verification gap: D-8 safety statement, demux semantics, c…",
"author_name": "Nathan Delacrétaz",
"author_login": "Nathandela",
"committed_at": "2026-07-16T20:57:22Z",
"body_truncated": false,
"is_coding_agent": false
}
],
"releases_count": 6,
"commits_last_year": 106,
"latest_release_at": "2026-07-18T18:17:56Z",
"latest_release_tag": "v0.5.1",
"releases_from_tags": false,
"days_since_last_push": 0,
"active_weeks_last_year": 1,
"days_since_latest_release": 4,
"mean_days_between_releases": 0.1
},
"community": {
"has_readme": true,
"has_license": false,
"has_description": true,
"has_contributing": false,
"health_percentage": 28,
"has_issue_template": false,
"has_code_of_conduct": false,
"has_pull_request_template": false
},
"ecosystem": {
"packages": [
{
"name": "github.com/Nathandela/swarm",
"exists": true,
"license": null,
"keywords": [],
"ecosystem": "go",
"matches_repo": true,
"registry_url": "https://pkg.go.dev/github.com/Nathandela/swarm",
"is_deprecated": false,
"latest_version": "v0.5.1",
"repository_url": "https://github.com/Nathandela/swarm",
"versions_count": 6,
"total_downloads": null,
"dependents_count": null,
"deprecation_note": null,
"maintainers_count": null,
"monthly_downloads": null,
"first_published_at": null,
"latest_published_at": "2026-07-18T18:13:36Z",
"latest_version_yanked": null,
"days_since_latest_publish": 4
}
]
},
"popularity": {
"forks": 0,
"stars": 0,
"watchers": 0,
"fork_history": {
"days": [],
"complete": true,
"collected": 0,
"total_forks": 0
},
"star_history": {
"days": [],
"complete": true,
"collected": 0,
"total_stars": 0,
"collected_at": null
},
"open_issues_and_prs": 2
},
"ai_readiness": {
"has_nix": false,
"example_dirs": [],
"has_llms_txt": false,
"has_dockerfile": false,
"has_mcp_signal": false,
"bootstrap_files": [],
"api_schema_files": [],
"has_devcontainer": false,
"typecheck_configs": [],
"toolchain_manifests": [
"go.mod"
],
"largest_source_bytes": 34748,
"source_files_sampled": 253,
"oversized_source_files": 0,
"agent_instruction_files": [
"AGENTS.md",
"CLAUDE.md"
],
"agent_instruction_max_bytes": 3526
},
"dependencies": {
"manifests": [
"go.mod"
],
"advisories": {
"error": null,
"scope": null,
"source": null,
"findings": [],
"collected": false,
"malicious": [],
"truncated": false,
"by_severity": {},
"advisory_count": 0,
"affected_count": 0,
"assessed_count": 0,
"malicious_count": 0,
"assessed_package": null,
"unassessed_count": 0,
"direct_affected_count": 0
},
"ecosystems": [
"go"
],
"dependencies": [
{
"name": "charm.land/bubbletea/v2",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v2.0.2"
},
{
"name": "charm.land/lipgloss/v2",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v2.0.0"
},
{
"name": "github.com/charmbracelet/ultraviolet",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.0.0-20260303162955-0b88c25f3fff"
},
{
"name": "github.com/charmbracelet/x/exp/teatest/v2",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v2.0.0-20260713092006-0d683c34c74b"
},
{
"name": "github.com/charmbracelet/x/term",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.2.2"
},
{
"name": "github.com/charmbracelet/x/vt",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.0.0-20260713092006-0d683c34c74b"
},
{
"name": "github.com/creack/pty",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v1.1.24"
},
{
"name": "github.com/muesli/cancelreader",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.2.2"
},
{
"name": "github.com/rivo/uniseg",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.4.7"
},
{
"name": "golang.org/x/sys",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.41.0"
}
],
"all_dependencies": {
"error": "GitHub dependency-graph SBOM unavailable (404); the dependency graph may be disabled for this repository",
"source": null,
"packages": [],
"collected": false,
"truncated": false,
"total_count": null,
"direct_count": null,
"indirect_count": null
}
},
"maintainership": {
"issues": {
"open_prs": 2,
"merged_prs": 0,
"open_issues": 0,
"closed_ratio": null,
"closed_issues": 0,
"closed_unmerged_prs": 0
},
"bus_factor": 1,
"bot_contributors": 0,
"top_contributors": [
{
"type": "User",
"login": "Nathandela",
"commits": 106,
"avatar_url": "https://avatars.githubusercontent.com/u/47887658?v=4"
}
],
"contributors_sampled": 1,
"top_contributor_share": 1
},
"quality_signals": {
"has_ci": true,
"has_tests": true,
"ci_workflows": [
"ci.yml"
],
"has_docs_dir": true,
"linter_configs": [],
"has_editorconfig": false,
"has_linter_config": false,
"has_precommit_config": false
},
"security_signals": {
"lockfiles": [
"go.sum"
],
"scorecard": {
"checks": [
{
"name": "Binary-Artifacts",
"score": 10,
"reason": "no binaries found in the repo",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#binary-artifacts"
},
{
"name": "Branch-Protection",
"score": 0,
"reason": "branch protection not enabled on development/release branches",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#branch-protection"
},
{
"name": "CI-Tests",
"score": null,
"reason": "no pull request found",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#ci-tests"
},
{
"name": "CII-Best-Practices",
"score": 0,
"reason": "no effort to earn an OpenSSF best practices badge detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#cii-best-practices"
},
{
"name": "Code-Review",
"score": 0,
"reason": "Found 0/30 approved changesets -- score normalized to 0",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#code-review"
},
{
"name": "Contributors",
"score": 3,
"reason": "project has 1 contributing companies or organizations -- score normalized to 3",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#contributors"
},
{
"name": "Dangerous-Workflow",
"score": 10,
"reason": "no dangerous workflow patterns detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#dangerous-workflow"
},
{
"name": "Dependency-Update-Tool",
"score": 0,
"reason": "no update tool detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#dependency-update-tool"
},
{
"name": "Fuzzing",
"score": 10,
"reason": "project is fuzzed",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#fuzzing"
},
{
"name": "License",
"score": 0,
"reason": "license file not detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#license"
},
{
"name": "Maintained",
"score": 0,
"reason": "project was created within the last 90 days. Please review its contents carefully",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#maintained"
},
{
"name": "Packaging",
"score": 10,
"reason": "packaging workflow detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#packaging"
},
{
"name": "Pinned-Dependencies",
"score": 1,
"reason": "dependency not pinned by hash detected -- score normalized to 1",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#pinned-dependencies"
},
{
"name": "SAST",
"score": 0,
"reason": "no SAST tool detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#sast"
},
{
"name": "Security-Policy",
"score": 0,
"reason": "security policy file not detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#security-policy"
},
{
"name": "Signed-Releases",
"score": 0,
"reason": "Project has not signed or included provenance with any releases.",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#signed-releases"
},
{
"name": "Token-Permissions",
"score": 0,
"reason": "detected GitHub workflow tokens with excessive permissions",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#token-permissions"
},
{
"name": "Vulnerabilities",
"score": 9,
"reason": "1 existing vulnerabilities detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#vulnerabilities"
}
],
"commit": "de63641ab13cd0128e61bd97f547941da8d1c488",
"ran_at": "2026-07-23T13:15:36Z",
"aggregate_score": 3.5,
"scorecard_version": "v5.5.0"
},
"has_codeql_workflow": false,
"has_security_policy": false,
"has_dependabot_config": false
},
"contribution_flow": {
"collected": true,
"ci_last_run_at": "2026-07-18T18:21:32Z",
"oldest_open_prs": [
{
"number": 1,
"created_at": "2026-07-18T10:04:40Z",
"last_comment_at": null,
"last_comment_author": null
},
{
"number": 2,
"created_at": "2026-07-18T10:06:16Z",
"last_comment_at": null,
"last_comment_author": null
}
],
"last_merged_pr_at": null,
"ci_last_conclusion": "SUCCESS",
"oldest_open_issues": []
}
},
"config": {
"disabled_metrics": [],
"disabled_categories": [],
"disabled_components": {}
},
"source": {
"url": "https://github.com/Nathandela/swarm",
"host": "github.com",
"name": "swarm",
"owner": "Nathandela"
},
"metrics": {
"overall": {
"key": "overall",
"band": "at_risk",
"name": "Overall health",
"note": null,
"notes": [],
"value": 45,
"inputs": {
"security": 35,
"vitality": 69,
"community": 12,
"governance": 35,
"engineering": 66
},
"components": []
},
"categories": [
{
"key": "vitality",
"band": "moderate",
"name": "Vitality",
"value": 69,
"weight": 0.22,
"metrics": [
{
"key": "development_activity",
"band": "moderate",
"name": "Development activity",
"note": null,
"notes": [],
"value": 55,
"inputs": {
"commits_last_year": 106,
"human_commit_share": 1,
"days_since_last_push": 0,
"active_weeks_last_year": 1
},
"components": [
{
"key": "push_recency",
"name": "Push recency",
"detail": "last push 0 days ago",
"points": 36,
"status": "met",
"details": [
{
"code": "push_recency",
"params": {
"days": 0
}
}
],
"max_points": 36
},
{
"key": "commit_cadence",
"name": "Commit cadence",
"detail": "1/52 weeks with commits",
"points": 0.7,
"status": "partial",
"details": [
{
"code": "commit_cadence_weeks",
"params": {
"weeks": 1
}
}
],
"max_points": 36
},
{
"key": "commit_volume",
"name": "Commit volume",
"detail": "106 commits in the last year",
"points": 18,
"status": "met",
"details": [
{
"code": "commits_last_year",
"params": {
"count": 106
}
}
],
"max_points": 18
},
{
"key": "openssf_scorecard_maintained",
"name": "OpenSSF Scorecard: Maintained",
"detail": "project was created within the last 90 days. Please review its contents carefully",
"points": 0,
"status": "missed",
"details": [],
"max_points": 10
}
]
},
{
"key": "release_discipline",
"band": "excellent",
"name": "Release discipline",
"note": null,
"notes": [],
"value": 90,
"inputs": {
"releases_count": 6,
"latest_release_tag": "v0.5.1",
"releases_from_tags": false,
"days_since_latest_release": 4,
"mean_days_between_releases": 0.1
},
"components": [
{
"key": "ships_releases",
"name": "Ships releases",
"detail": "6 releases published",
"points": 27,
"status": "met",
"details": [
{
"code": "releases_published",
"params": {
"count": 6
}
}
],
"max_points": 27
},
{
"key": "release_recency",
"name": "Release recency",
"detail": "latest release 4 days ago",
"points": 36,
"status": "met",
"details": [
{
"code": "release_recency",
"params": {
"days": 4
}
}
],
"max_points": 36
},
{
"key": "release_cadence",
"name": "Release cadence",
"detail": "a release every ~0.1 days",
"points": 27,
"status": "met",
"details": [
{
"code": "release_cadence",
"params": {
"gap": 0.1
}
}
],
"max_points": 27
},
{
"key": "openssf_scorecard_signed_releases",
"name": "OpenSSF Scorecard: Signed-Releases",
"detail": "Project has not signed or included provenance with any releases.",
"points": 0,
"status": "missed",
"details": [],
"max_points": 10
}
]
},
{
"key": "abandonment",
"band": "excellent",
"name": "Abandonment",
"note": null,
"notes": [],
"value": 100,
"inputs": {
"cap": null,
"state": "unverified",
"guards": [],
"signals": [],
"red_flag": false,
"multiplier_pct": 100,
"declared_reason": null,
"unverified_reason": "repository_too_young",
"unanswered_open_prs": null,
"unanswered_open_issues": null,
"days_since_last_merged_pr": null,
"days_since_last_human_commit": null,
"days_since_last_human_commit_is_floor": false
},
"components": [
{
"key": "project_is_still_maintained",
"name": "Project is still maintained",
"detail": "maintenance record not established from the collected data",
"points": 100,
"status": "met",
"details": [
{
"code": "abandonment_unverified",
"params": {}
}
],
"max_points": 100
}
]
}
],
"description": "Is the project alive — is code being written and are releases shipping?"
},
{
"key": "community",
"band": "critical",
"name": "Community & Adoption",
"value": 12,
"weight": 0.18,
"metrics": [
{
"key": "popularity",
"band": "critical",
"name": "Popularity & adoption",
"note": null,
"notes": [],
"value": 1,
"inputs": {
"forks": 0,
"stars": 0,
"watchers": 0,
"growth_state": "unverified",
"growth_factor_pct": 100,
"growth_unverified_reason": "no_history"
},
"components": [
{
"key": "stars",
"name": "Stars",
"detail": "0 stars",
"points": 0,
"status": "missed",
"details": [
{
"code": "stars",
"params": {
"count": 0
}
}
],
"max_points": 60
},
{
"key": "forks",
"name": "Forks",
"detail": "0 forks",
"points": 0,
"status": "missed",
"details": [
{
"code": "forks",
"params": {
"count": 0
}
}
],
"max_points": 25
},
{
"key": "watchers",
"name": "Watchers",
"detail": "0 watchers",
"points": 0,
"status": "missed",
"details": [
{
"code": "watchers",
"params": {
"count": 0
}
}
],
"max_points": 15
}
]
},
{
"key": "community_health",
"band": "critical",
"name": "Community health",
"note": null,
"notes": [],
"value": 25,
"inputs": {
"has_readme": true,
"has_license": false,
"has_contributing": false,
"has_issue_template": false,
"has_code_of_conduct": false,
"has_pull_request_template": false
},
"components": [
{
"key": "readme",
"name": "README",
"detail": null,
"points": 22.5,
"status": "met",
"details": [],
"max_points": 22.5
},
{
"key": "license",
"name": "License",
"detail": "no license file detected",
"points": 0,
"status": "missed",
"details": [
{
"code": "license_absent",
"params": {}
}
],
"max_points": 22.5
},
{
"key": "contributing_guide",
"name": "CONTRIBUTING guide",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 18
},
{
"key": "code_of_conduct",
"name": "Code of conduct",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 13.5
},
{
"key": "issue_template",
"name": "Issue template",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 7.2
},
{
"key": "pr_template",
"name": "PR template",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 6.3
}
]
}
],
"description": "Does the project have users, downloads, attention, and a welcoming setup for contributors?"
},
{
"key": "governance",
"band": "at_risk",
"name": "Sustainability & Governance",
"value": 35,
"weight": 0.24,
"metrics": [
{
"key": "maintainer_resilience",
"band": "critical",
"name": "Maintainer resilience (bus factor)",
"note": null,
"notes": [],
"value": 13,
"inputs": {
"bus_factor": 1,
"contributors_sampled": 1,
"top_contributor_share": 1
},
"components": [
{
"key": "bus_factor",
"name": "Bus factor",
"detail": "1 contributor(s) cover half of all commits",
"points": 9,
"status": "partial",
"details": [
{
"code": "bus_factor",
"params": {
"count": 1
}
}
],
"max_points": 54
},
{
"key": "commit_distribution",
"name": "Commit distribution",
"detail": "top contributor authored 100% of commits",
"points": 0,
"status": "missed",
"details": [
{
"code": "top_contributor_share",
"params": {
"share": 100
}
}
],
"max_points": 22.5
},
{
"key": "contributor_breadth",
"name": "Contributor breadth",
"detail": "1 contributors",
"points": 1.4,
"status": "partial",
"details": [
{
"code": "contributors_sampled",
"params": {
"count": 1
}
}
],
"max_points": 13.5
},
{
"key": "openssf_scorecard_contributors",
"name": "OpenSSF Scorecard: Contributors",
"detail": "project has 1 contributing companies or organizations -- score normalized to 3",
"points": 3,
"status": "partial",
"details": [],
"max_points": 10
}
]
},
{
"key": "responsiveness",
"band": "critical",
"name": "Issue & PR responsiveness",
"note": "Excluded from scoring (no data or not applicable): Issue resolution, PR acceptance. Remaining weights renormalized.",
"notes": [
{
"code": "excluded_no_data",
"params": {
"components": [
"issue_resolution",
"pr_acceptance"
]
}
},
{
"code": "weights_renormalized",
"params": {}
}
],
"value": 1,
"inputs": {
"merged_prs": 0,
"open_issues": 0,
"closed_issues": 0,
"issue_closed_ratio": null,
"closed_unmerged_prs": 0
},
"components": [
{
"key": "issue_resolution",
"name": "Issue resolution",
"detail": "no issues or no data",
"points": 0,
"status": "excluded",
"details": [
{
"code": "no_issues_or_data",
"params": {}
}
],
"max_points": 46.75
},
{
"key": "pr_acceptance",
"name": "PR acceptance",
"detail": "no decided pull requests or no data",
"points": 0,
"status": "excluded",
"details": [
{
"code": "no_decided_prs_or_data",
"params": {}
}
],
"max_points": 38.25
},
{
"key": "openssf_scorecard_code_review",
"name": "OpenSSF Scorecard: Code-Review",
"detail": "Found 0/30 approved changesets -- score normalized to 0",
"points": 0,
"status": "missed",
"details": [],
"max_points": 15
}
]
},
{
"key": "stewardship",
"band": "at_risk",
"name": "Ownership & stewardship",
"note": "Excluded from scoring (no data or not applicable): Verified domain. Remaining weights renormalized.",
"notes": [
{
"code": "excluded_no_data",
"params": {
"components": [
"verified_domain"
]
}
},
{
"code": "weights_renormalized",
"params": {}
}
],
"value": 44,
"inputs": {
"followers": 7,
"owner_type": "User",
"is_verified": null,
"owner_login": "Nathandela",
"public_repos": 7,
"account_age_days": 2708
},
"components": [
{
"key": "ownership_backing",
"name": "Ownership backing",
"detail": "personal (user) account",
"points": 10,
"status": "partial",
"details": [
{
"code": "owner_personal",
"params": {}
}
],
"max_points": 30
},
{
"key": "verified_domain",
"name": "Verified domain",
"detail": "not applicable to user accounts",
"points": 0,
"status": "excluded",
"details": [
{
"code": "not_applicable_to_user_accounts",
"params": {}
}
],
"max_points": 20
},
{
"key": "owner_reach",
"name": "Owner reach",
"detail": "7 followers of Nathandela",
"points": 6.5,
"status": "partial",
"details": [
{
"code": "owner_followers",
"params": {
"count": 7,
"login": "Nathandela"
}
}
],
"max_points": 25
},
{
"key": "track_record",
"name": "Track record",
"detail": "7 public repos, account ~7 yr old",
"points": 18.6,
"status": "partial",
"details": [
{
"code": "public_repos",
"params": {
"count": 7
}
},
{
"code": "account_age_years",
"params": {
"years": 7
}
}
],
"max_points": 25
}
]
},
{
"key": "package_maintenance",
"band": "excellent",
"name": "Package maintenance",
"note": null,
"notes": [],
"value": 100,
"inputs": {
"packages": [
"github.com/Nathandela/swarm"
],
"ecosystems": "go",
"any_deprecated": false,
"min_days_since_publish": 4
},
"components": [
{
"key": "published_resolvable",
"name": "Published & resolvable",
"detail": "1 package(s) on go",
"points": 25,
"status": "met",
"details": [
{
"code": "packages_published",
"params": {
"count": 1,
"ecosystems": "go"
}
}
],
"max_points": 25
},
{
"key": "publish_recency",
"name": "Publish recency",
"detail": "latest publish 4 days ago",
"points": 35,
"status": "met",
"details": [
{
"code": "publish_recency",
"params": {
"days": 4
}
}
],
"max_points": 35
},
{
"key": "version_history",
"name": "Version history",
"detail": "6 published versions",
"points": 20,
"status": "met",
"details": [
{
"code": "published_versions",
"params": {
"count": 6
}
}
],
"max_points": 20
},
{
"key": "not_deprecated",
"name": "Not deprecated",
"detail": "active, not deprecated or yanked",
"points": 20,
"status": "met",
"details": [
{
"code": "package_not_deprecated",
"params": {}
}
],
"max_points": 20
}
]
}
],
"description": "Will the project survive its people — bus factor, responsiveness, who backs it, and package upkeep?"
},
{
"key": "engineering",
"band": "moderate",
"name": "Engineering Quality",
"value": 66,
"weight": 0.2,
"metrics": [
{
"key": "engineering_practices",
"band": "moderate",
"name": "Engineering practices",
"note": "Excluded from scoring (no data or not applicable): OpenSSF Scorecard: CI-Tests. Remaining weights renormalized.",
"notes": [
{
"code": "excluded_no_data",
"params": {
"components": [
"openssf_scorecard_ci_tests"
]
}
},
{
"code": "weights_renormalized",
"params": {}
}
],
"value": 60,
"inputs": {
"has_ci": true,
"has_tests": true,
"has_editorconfig": false,
"has_linter_config": false,
"has_precommit_config": false
},
"components": [
{
"key": "ci_workflows",
"name": "CI workflows",
"detail": "1 workflow(s)",
"points": 24,
"status": "met",
"details": [
{
"code": "ci_workflows",
"params": {
"count": 1
}
}
],
"max_points": 24
},
{
"key": "tests_present",
"name": "Tests present",
"detail": null,
"points": 24,
"status": "met",
"details": [],
"max_points": 24
},
{
"key": "linter_config",
"name": "Linter config",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 16
},
{
"key": "pre_commit_hooks",
"name": "Pre-commit hooks",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 9.6
},
{
"key": "editorconfig",
"name": ".editorconfig",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 6.4
},
{
"key": "openssf_scorecard_ci_tests",
"name": "OpenSSF Scorecard: CI-Tests",
"detail": "no pull request found",
"points": 0,
"status": "excluded",
"details": [
{
"code": "no_data",
"params": {}
}
],
"max_points": 20
}
]
},
{
"key": "documentation",
"band": "good",
"name": "Documentation",
"note": null,
"notes": [],
"value": 75,
"inputs": {
"topics": [],
"has_wiki": true,
"homepage": null,
"has_readme": true,
"has_docs_dir": true,
"has_description": true
},
"components": [
{
"key": "readme",
"name": "README",
"detail": null,
"points": 30,
"status": "met",
"details": [],
"max_points": 30
},
{
"key": "documentation_directory",
"name": "Documentation directory",
"detail": null,
"points": 25,
"status": "met",
"details": [],
"max_points": 25
},
{
"key": "documentation_homepage_site",
"name": "Documentation / homepage site",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 15
},
{
"key": "repository_description",
"name": "Repository description",
"detail": null,
"points": 10,
"status": "met",
"details": [],
"max_points": 10
},
{
"key": "topics",
"name": "Topics",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 10
},
{
"key": "wiki",
"name": "Wiki",
"detail": null,
"points": 10,
"status": "met",
"details": [],
"max_points": 10
}
]
}
],
"description": "Are baseline engineering and documentation practices in place?"
},
{
"key": "security",
"band": "at_risk",
"name": "Security",
"value": 35,
"weight": 0.16,
"metrics": [
{
"key": "security_posture",
"band": "at_risk",
"name": "Security posture",
"note": "Excluded from scoring (no data or not applicable): CI-Tests. Remaining weights renormalized.",
"notes": [
{
"code": "excluded_no_data",
"params": {
"components": [
"ci_tests"
]
}
},
{
"code": "weights_renormalized",
"params": {}
}
],
"value": 35,
"inputs": {
"source": "openssf_scorecard",
"checks_evaluated": 17,
"scorecard_version": "v5.5.0",
"checks_inconclusive": 1,
"scorecard_aggregate": 3.5
},
"components": [
{
"key": "binary_artifacts",
"name": "Binary-Artifacts",
"detail": "no binaries found in the repo",
"points": 7.5,
"status": "met",
"details": [],
"max_points": 7.5
},
{
"key": "branch_protection",
"name": "Branch-Protection",
"detail": "branch protection not enabled on development/release branches",
"points": 0,
"status": "missed",
"details": [],
"max_points": 7.5
},
{
"key": "ci_tests",
"name": "CI-Tests",
"detail": "no pull request found",
"points": 0,
"status": "excluded",
"details": [
{
"code": "no_data",
"params": {}
}
],
"max_points": 2.5
},
{
"key": "cii_best_practices",
"name": "CII-Best-Practices",
"detail": "no effort to earn an OpenSSF best practices badge detected",
"points": 0,
"status": "missed",
"details": [],
"max_points": 2.5
},
{
"key": "code_review",
"name": "Code-Review",
"detail": "Found 0/30 approved changesets -- score normalized to 0",
"points": 0,
"status": "missed",
"details": [],
"max_points": 7.5
},
{
"key": "contributors",
"name": "Contributors",
"detail": "project has 1 contributing companies or organizations -- score normalized to 3",
"points": 0.8,
"status": "partial",
"details": [],
"max_points": 2.5
},
{
"key": "dangerous_workflow",
"name": "Dangerous-Workflow",
"detail": "no dangerous workflow patterns detected",
"points": 10,
"status": "met",
"details": [],
"max_points": 10
},
{
"key": "dependency_update_tool",
"name": "Dependency-Update-Tool",
"detail": "no update tool detected",
"points": 0,
"status": "missed",
"details": [],
"max_points": 7.5
},
{
"key": "fuzzing",
"name": "Fuzzing",
"detail": "project is fuzzed",
"points": 5,
"status": "met",
"details": [],
"max_points": 5
},
{
"key": "license",
"name": "License",
"detail": "license file not detected",
"points": 0,
"status": "missed",
"details": [],
"max_points": 2.5
},
{
"key": "maintained",
"name": "Maintained",
"detail": "project was created within the last 90 days. Please review its contents carefully",
"points": 0,
"status": "missed",
"details": [],
"max_points": 7.5
},
{
"key": "packaging",
"name": "Packaging",
"detail": "packaging workflow detected",
"points": 5,
"status": "met",
"details": [],
"max_points": 5
},
{
"key": "pinned_dependencies",
"name": "Pinned-Dependencies",
"detail": "dependency not pinned by hash detected -- score normalized to 1",
"points": 0.5,
"status": "partial",
"details": [],
"max_points": 5
},
{
"key": "sast",
"name": "SAST",
"detail": "no SAST tool detected",
"points": 0,
"status": "missed",
"details": [],
"max_points": 5
},
{
"key": "security_policy",
"name": "Security-Policy",
"detail": "security policy file not detected",
"points": 0,
"status": "missed",
"details": [],
"max_points": 5
},
{
"key": "signed_releases",
"name": "Signed-Releases",
"detail": "Project has not signed or included provenance with any releases.",
"points": 0,
"status": "missed",
"details": [],
"max_points": 7.5
},
{
"key": "token_permissions",
"name": "Token-Permissions",
"detail": "detected GitHub workflow tokens with excessive permissions",
"points": 0,
"status": "missed",
"details": [],
"max_points": 7.5
},
{
"key": "vulnerabilities",
"name": "Vulnerabilities",
"detail": "1 existing vulnerabilities detected",
"points": 6.8,
"status": "partial",
"details": [],
"max_points": 7.5
}
]
},
{
"key": "high_risk_jurisdiction_exposure",
"band": "excellent",
"name": "High-Risk Jurisdiction Exposure",
"note": "Only high-confidence self-published location evidence affects this multiplier. Ambiguous matches are review-only; country evidence is not proof of nationality, citizenship, legal registration, malicious intent, or sanctions status.",
"notes": [
{
"code": "jurisdiction_evidence_limits",
"params": {}
}
],
"value": 100,
"inputs": {
"meaning": "self-published location evidence; not nationality or citizenship",
"red_flag": false,
"exposures": [],
"policy_countries": [
"Russia",
"Iran",
"North Korea"
],
"review_only_matches": 0,
"assessed_self_published_locations": 2
},
"components": [
{
"key": "policy_exposure_multiplier",
"name": "Policy exposure multiplier",
"detail": "no confirmed policy-scope location match",
"points": 100,
"status": "met",
"details": [
{
"code": "jurisdiction_no_match",
"params": {}
}
],
"max_points": 100
}
]
}
],
"description": "Are visible security and supply-chain practices strong, with no malicious dependency and no unresolved high-risk jurisdiction exposure?"
},
{
"key": "ai_readiness",
"band": "good",
"name": "AI Readiness",
"value": 79,
"weight": 0,
"metrics": [
{
"key": "ai_agent_context",
"band": "excellent",
"name": "Agent context & guidance",
"note": null,
"notes": [],
"value": 85,
"inputs": {
"has_llms_txt": false,
"legible_history_share": 0.85,
"agent_instruction_files": [
"AGENTS.md",
"CLAUDE.md"
],
"agent_instruction_max_bytes": 3526
},
"components": [
{
"key": "agent_instructions",
"name": "Agent instructions",
"detail": "AGENTS.md, CLAUDE.md",
"points": 45,
"status": "met",
"details": [
{
"code": "file_list",
"params": {
"files": "AGENTS.md, CLAUDE.md"
}
}
],
"max_points": 45
},
{
"key": "machine_readable_docs_llms_txt",
"name": "Machine-readable docs (llms.txt)",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 15
},
{
"key": "legible_commit_history",
"name": "Legible commit history",
"detail": "85 of 100 human commits state their intent (structured subject or explanatory body)",
"points": 40,
"status": "met",
"details": [
{
"code": "legible_history",
"params": {
"legible": 85,
"sampled": 100
}
}
],
"max_points": 40
}
]
},
{
"key": "ai_verify_loop",
"band": "moderate",
"name": "Verify loop (build / test / typecheck)",
"note": null,
"notes": [],
"value": 67,
"inputs": {
"has_nix": false,
"has_tests": true,
"lockfiles": [
"go.sum"
],
"has_dockerfile": false,
"typed_language": true,
"bootstrap_files": [],
"has_devcontainer": false,
"has_linter_config": false,
"typecheck_configs": [],
"agent_commit_share": 0.84,
"toolchain_manifests": [
"go.mod"
],
"dependency_bot_commit_share": 0
},
"components": [
{
"key": "one_command_bootstrap",
"name": "One-command bootstrap",
"detail": "go.mod (toolchain convention, no task runner)",
"points": 12.6,
"status": "partial",
"details": [
{
"code": "toolchain_convention",
"params": {
"files": "go.mod"
}
}
],
"max_points": 18
},
{
"key": "automated_tests",
"name": "Automated tests",
"detail": null,
"points": 22,
"status": "met",
"details": [],
"max_points": 22
},
{
"key": "lint_format_config",
"name": "Lint / format config",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 11
},
{
"key": "static_type_checking",
"name": "Static type checking",
"detail": "Go (statically typed)",
"points": 11,
"status": "met",
"details": [
{
"code": "statically_typed_language",
"params": {
"language": "Go"
}
}
],
"max_points": 11
},
{
"key": "reproducible_environment",
"name": "Reproducible environment",
"detail": "lockfile",
"points": 10,
"status": "met",
"details": [
{
"code": "file_list",
"params": {
"files": "lockfile"
}
}
],
"max_points": 10
},
{
"key": "demonstrated_agent_practice",
"name": "Demonstrated agent practice",
"detail": "84 of the last 100 commits agent-authored or agent-credited",
"points": 10,
"status": "met",
"details": [
{
"code": "agent_authored_commits",
"params": {
"count": 84,
"sampled": 100
}
}
],
"max_points": 10
},
{
"key": "automated_maintenance",
"name": "Automated maintenance",
"detail": "no automated dependency updates observed",
"points": 0,
"status": "missed",
"details": [
{
"code": "no_dependency_automation",
"params": {}
}
],
"max_points": 8
},
{
"key": "openssf_scorecard_pinned_dependencies",
"name": "OpenSSF Scorecard: Pinned-Dependencies",
"detail": "dependency not pinned by hash detected -- score normalized to 1",
"points": 1,
"status": "partial",
"details": [],
"max_points": 10
}
]
},
{
"key": "ai_code_legibility",
"band": "excellent",
"name": "Code legibility for models",
"note": null,
"notes": [],
"value": 100,
"inputs": {
"primary_language": "Go",
"largest_source_bytes": 34748,
"source_files_sampled": 253,
"oversized_source_files": 0
},
"components": [
{
"key": "type_checkable_code",
"name": "Type-checkable code",
"detail": "Go (statically typed)",
"points": 45,
"status": "met",
"details": [
{
"code": "statically_typed_language",
"params": {
"language": "Go"
}
}
],
"max_points": 45
},
{
"key": "manageable_file_sizes",
"name": "Manageable file sizes",
"detail": "0/253 source files over 60KB",
"points": 55,
"status": "met",
"details": [
{
"code": "oversized_source_files",
"params": {
"kb": 60,
"sampled": 253,
"oversized": 0
}
}
],
"max_points": 55
}
]
}
],
"description": "How well is the repo equipped to be developed and maintained with AI coding agents? An independent, experimental badge — weight 0.0, so it is surfaced on its own and does not affect the overall health score."
}
],
"metrics_version": "1.13.0"
},
"warnings": [
"GitHub dependency-graph SBOM unavailable (404); the dependency graph may be disabled for this repository"
],
"report_type": "repository",
"generated_at": "2026-07-23T13:15:42.282244Z",
"schema_version": "0.27.0",
"badge_url": "https://raw.githubusercontent.com/inspect-software/badges/main/v1/n/Nathandela/swarm.svg",
"full_name": "Nathandela/swarm",
"license_state": "absent",
"license_spdx": null
}