Impossible OS Docs

Overnight Run Log (archive)

Moved out of todo/TODO-Claude-Overnight-Runner.md on 2026-07-11: the doctrine file is re-read at every session start and after every compaction, and the Run Log was 64 KB of its 81 KB -- pure history that no live decision needs. Append one line per session here (date, cursor at start/end, sections shipped, pauses/blockers). The doctrine file keeps only the pointer.

  • 2026-06-11 16:36 SAST: run 1 -- TODO-11 validate + gap-audit done, sections 1-4 worked; stopped at section 5 (Dynamic IRQ Registration API) on Claude usage limit; uncommitted section-5 work left in tree; resume armed for 20:47.

  • 2026-06-12 02:35 SAST: run 1 resumed -- TODO-11 §5 + §6 implemented + reviewed, §7 reviewed ([/] blocked on D03T07§3), §8/§9/§10 review passes shipped (98592c32, 7ea3a01f, 80328e01), loose-end sweep c4e92774; cursor advanced to TODO-12-early-entropy-random-seed.md.

  • 2026-06-12 ~02:35-04:48 SAST: run 2 (same session) -- TODO-12 validate + gap-audit + §1-§3 shipped; §4 filed blocked-with-XREF (a98dca94); died mid-§5 on transient API 500, staged §5 work left in tree; resume armed, §4 re-opened per user direction.

  • 2026-06-12 ~07:00 SAST: run 3 (interactive, cut short) -- preflight caught build break at HEAD (half-committed peek->drain refactor); drain implemented + tests migrated + committed (dd19d586), build OK, security suite green; user redirected to headless timer; §5 review + §4 re-open queued for run 4.

  • 2026-06-12 ~07:00-09:45 SAST: run 4 -- TODO-12 §5 reviewed (5ccdd14d, Codex 4x); TODO-13 §2 TPM2 transport pulled forward, shipped + reviewed (8ae51bf1 + c3779b6d, Codex 9x); TODO-12 §4 TPM RNG shipped + reviewed (ee546157 + review fixes: periodicity scan, first-failure contract, splash-before-TPM; Codex 10x); cursor at TODO-12 §6.

  • 2026-06-12 ~10:00 SAST: between-runs -- user authorized Monocypher vendoring (D02T03 §5); run-5 queue set (D02T03 §5 -> TODO-12 §6/§7/§8 -> §9/§10 -> closure); headless unit PATH fixed via systemd --setenv (handoff flagged missing ~/.local/bin + nvm node).

  • 2026-06-12 ~10:00-11:50 SAST: run 5 -- D02T03 §5 Monocypher 4.0.2 + kernel CSPRNG + NtGetRandom 0x03D8 shipped (99910014) + reviewed (21168666); Codex design+test-coverage+adversarial(multi-round)+consistency+perf+re-adversarial; 2 latent bugs fixed (heap_init truncation, USER_PT_WINDOW reservation+payload check); perf/SMP hardening (single-ratchet NtGetRandom, emergency seed I/O out of lock, atomic g_seeded); 2 systemic HIGH accepted-XREF (TODO-10 §2, TODO-12 §12); cross-TODO unblocks landed (TODO-12, TODO-10/11/06-desktop/01-sdk ownership). Next: 01-boot TODO-12 §6.

  • 2026-06-12 ~12:00-15:00 SAST: run 6 (interactive /overnight-runner:start --resume) -- TODO-12 §6 seed-file carryover shipped (08340720) + reviewed (23b3b611); Codex 16x (design, test-coverage, adversarial x2, adversarial-impl x5, re-adversarial x5, consistency, perf): 1C+10H+9M+2L fixed, 4H+2M accepted-XREF, 2 rejected with evidence; landed with it: FAT32 sector-cache coherence (new files read back all-zeros), LFN-aware validated delete, vfs_unlink/vfs_rename_ex parent re-resolution, partition blkdev zero-init (#UD wild call into boot_info), durable vfs_flush (dirty-since-sync gate under new sync_mutex), NtFlushBuffersFile failure propagation, hardware-provenance gate on seed mint/rotation; evidence: 4565+16 tests, smoke PASS, live multi-boot carryover (mint->rotate->accept->anti-replay->clone-reset recovery). Next: TODO-12 §7.

  • 2026-06-13 ~19:45-22:00 SAST: run 7 cont. (TODO-02) -- oracle advanced to 01-boot-platform/TODO-02-uefi-hardening-secureboot (14/16 done). validate (fixed broken TODO-13 measured-boot XREF) + gap-audit (Codex parity-floor red-team: filed §17 SBAT revocation metadata; rejected UKI addons/profiles as advanced-not-floor). §15 post-boot revalidation DEFERRED [/] -- Codex design review caught the naive 5-min worker is wrong (sleep_ms is a busy hlt-poll, no parking primitive); owned by TODO-07 §18 kworker pool + TODO-26 §3 (c3cc183b, Verified+Deferred). §16 split-path payload provenance hardening shipped+reviewed (46eb95bc + 04ba99e1; Codex design caught load_kernel non-boot fallback re-splits provenance -> 2-part fix: locate_boot_fs HandleProtocol-only + load_kernel fails-closed when payloads staged). §17 SBAT revocation metadata shipped+reviewed (900ade7c + 41b0d8f2; Codex 8x: dropped test-only boot_info ABI per design, link-time incbin .sbat (post-hoc objcopy unviable -- content-drop/PE-corruption/0-byte), two-stage build gate, .reloc PE-alignment fix). Resolved TODO-03 inbound Accepted (73e1a9f5); close-out sweep filled §11 placeholder (516a19e4). RECORDER LEARNING: codex dispatches must NOT use cd prefix or timeout prefix -- both break detect_review_kind_from_cmd (recorder + design/section gates); relative bash scripts/codex-dispatch.sh from repo-root cwd records correctly. TODO-02 now DONE (17 sections). Next: oracle re-triage.

  • 2026-06-13 ~18:05-19:45 SAST: run 7 cont. (post-compaction) -- oracle advanced to 00-infrastructure/TODO-09-repository-transfer-rizonetech (NEEDS_WORK). §8 move-back runbook + §9 doc-sync/closure shipped earlier in session; this slice closed the §9 review (consistency findings: line-24 pre-transfer baseline restored to rizonesoft, github-setup "push blocked" overstatement dropped -- pushes land via the "expected" check, §5/§7 push-state wording deferred->§5 F1; OS-comparison row refreshed) 8fb63284. RESOLVED run-7 punch-list: registered 5 missing plugins in .claude/hooks/MANIFEST.md (desktop-commander/code-modernization/claude-code-setup/commit-commands/plugin-dev no-hooks + remember 0.7.3 hooks table) 8d89986c -> test-tooling back to 375/375. complete-todo-file closure a55571d8: Unit Tests N/A (operator-validation), Verification 4/14 automated PASS (lint, test-tooling, todo-graph, owner-ref scan), 3 [/] partial (existing-clone + WSL2 tooling), 7 manual-pending (live GitHub/DNS/org-Settings). TODO-09 now DONE (operator validation tail tracked in §2-§7 [/]). Next: oracle re-triage.

  • 2026-06-13 ~15:30-18:05 SAST: run 7 (interactive /overnight-runner:start --resume, drove sequencer) -- oracle pointed at 00-infrastructure/TODO-07-lsp-mcp-bridge (NEEDS_WORK, not the cursor-log's TODO-12; graph-truth wins). validate (fixed stale .claude/mcp.json Inputs anchor) + gap-audit (Codex red-team: type-hierarchy = real read-only parity gap, 5 other LSP capabilities rejected as agent-facing gold-plating). Shipped §18 Type Hierarchy Tools (supertypes/subtypes, read-only, capability-gated, bounded fan-out) 931096c9 + reviewed 8e121a57; Codex 5x (design + adversarial + consistency + perf + re-adversarial): 1H+6M fixed (capability_missing-on-every-path, normalized response anchor, per-anchor types cap, census drift x2, gate-before-didOpen + deadline-before-open + bounded prepare timeout), 1 perf-H deep rewrite rejected w/ evidence (small request-response frames never accrue 64KB pipe backpressure). §19 scale roadmap deferred [/] (trigger-gated, Verified+Deferred stamps). complete-todo-file closure 33c39c59: Unit Tests 5/5, Verification 10/11 automated PASS (test-tooling left [ ] on 2 PRE-EXISTING UNRELATED audit-hooks/audit-ai-system plugin-MANIFEST failures), 3 commit-hash placeholders resolved; harness 99/99, live MCP hover verified. TODO-07 now DONE. PUNCH-LIST: audit-hooks/audit-ai-system plugin MANIFEST.md drift (6 newly-installed plugins lack headings) -- separate sweep. Next: oracle re-triage.

  • 2026-06-16 ~21:20- SAST: run 8 (headless sequencer) -- preflight caught the known UKI-SBAT incremental-build bug (clean build green; not a broken HEAD); baseline 6009 kernel + 16 user PASS. Oracle advanced to 00-infrastructure/TODO-01-developer-tooling-stack (NEEDS_WORK on §11's missing stamps). validate (clean) + gap-audit (Codex confirmed zero unowned dev-tooling gaps; reproducible-builds/signing/SBOM owned by D15 T01 §5/§6/§8; filed §12 required-tool version-floor gate as the one genuine parity gap). §11 review: found the bare-section drift gate had file-type holes (.ld/.lds/.inc absent from both lint Check 5 + the PreToolUse hook) + gate-parity drift (Makefile/todo-graph/test-ai-system) + a LIVE escaped ref in dump-fields.inc; hardened both gates + aligned hook<->lint + added [bare_section_gate] 11-assertion regression group (9033e324 + 9360024a). §12 implemented: check_versions() fail-closed floor gate, --verify now enforces presence+floors (Codex design H), qemu-img floored + drift guard (Codex design M), tooling-doctor/build.yml/release.yml/docs wired, [version_floor_gate] 7 assertions (7942170c + 517986b7; Codex 6x design/adversarial/consistency/perf: 2H+5M fixed incl. build.yml qemu-utils + qemu-img doc/help propagation). complete-todo-file closure 8f07f5a1 (test-tooling 79->393 count refresh). TODO-01 now DONE (12 sections). RECORDER STILL DEAD: codex_review_completed.py PostToolUse not firing; manually recorded design/adversarial/consistency/perf dispatches for both section gates. Next: oracle re-triage.

  • 2026-06-16 ~23:00- SAST: run 8 cont. -- oracle advanced to 00-infrastructure/TODO-09-repository-transfer-rizonetech (NEEDS_WORK: §5/§6/§7 had Verified but no Quality-reviewed stamps under the both-stamps DONE rule). Reviewed all three (docs/GitHub-audit, Codex 3x each, manually recorded -- recorder still dead): §5 (beaccf98) 2M -- secrets row overclaimed "value preserved" (gh API never returns values + BOOTLOADER_REPO_TOKEN has no in-tree consumer), downgraded [x]->[/] + fixed count 9->7; §6 (74611c2e) 2M -- README copyright + gh-pages brand homepage were migrated to Rizonetech by the deliberate rebrand 07d60796 AFTER §6 shipped, so §6's "preserve rizonesoft brand" classification was superseded -- reconciled the docs, rejected Codex's "restore rizonesoft" (reviewer lacked rebrand context); §7 (55da3c3d) 3M -- stale validation evidence (test-tooling 254->393, lint 498->637 files, AGENTS sha a749a0e->75e38c4) refreshed, April clone-HEAD/cert reframed as transfer-time snapshots, .codex residue flagged. close 84070764: git rm'd the tracked 0-byte .codex residue (autonomous-agent-boundary hygiene). TODO-09 now DONE (9 sections; operator-validation tail in §5/§7 [/]). Next: oracle re-triage.

  • 2026-06-17 ~00:00 SAST: run 8 cont. -- oracle advanced to 01-boot-platform/TODO-08-alternate-boot-protocols (NEEDS_WORK: §2-§6 Multiboot2 sections retired by §7's authoritative 'unsupported' decision but carried [~] items + Verified-RETIRED stamps with no Quality stamp -- the project_sequencer_tilde_status_gap oracle-loop). Fixed (0dd20fe0) WITHOUT a Codex pipeline (roadmap-dropped, no code): replaced the 5 Verified-RETIRED stamps with Deferred: stamps XREF'ing §7's deletion decision, kept IO rows [x] (status:done valid; oracle parks [x]+Deferred). First attempt used Accepted: + [/] -- wrong: the oracle's DEFERRED_RE only parks on Deferred:, and [/] broke status:done's all-[x] rule; corrected to [x]+Deferred:. todo-graph 8/8; file now DONE (7 sections). LEARNING: retired/N/A sections need [x]+Deferred: (not Accepted, not [/]) for the oracle. Next: oracle re-triage.

  • 2026-06-17 ~00:20 SAST: run 8 cont. -- TODO-10-bare-metal-hardening §11 (removed boot.conf skip-list) was the lone NEEDS_WORK: Verified-REMOVED stamp, no Quality/Deferred -> oracle-loop. Parked as [x]+Deferred: XREF'ing §7 BOOT_TRY (a237a0c5); also committed the session-start §12 Accepted-XREF line fix (TODO-24 §5: 137->165). TODO-10 now DONE (15 sections). Next: oracle re-triage.

  • 2026-06-28 ~05:30-06:40 SAST: run cont. (headless sequencer, post-compaction) -- cursor 02-kernel-core/TODO-09-x86-64-architecture (§19 was the lone open section). Shipped §19 WAITPKG/SERIALIZE/RDPID (5f2081e0) + reviewed (473ed184). WAITPKG UMWAIT anti-DoS bound + all-three CPUID detection; SERIALIZE/RDPID instruction adoption deferred [/]. Codex 9x (design+adversarial+consistency+perf+re-adversarial): impl-time R1 caught the original Phase-0 cpu_harden() UMWAIT wrmsr as triple-fault-prone (moved post-IDT), R2 caught snapshot-replay writing stale 0 onto an AP-only-WAITPKG core (made UMWAIT a computed per_cpu profile entry). Review-time adversarial caught no-ACPI boot path skipping BSP UMWAIT (extracted cpu_program_bsp_umwait() called unconditionally in boot_phase2) + raw-wrmsr->msr_try_write degrade; consistency caught AP silent-failure (added per_cpu umwait_unbounded flag + BSP ap_cpu_harden_log warn) + stale cpu_harden comment. complete-todo-file close (8e6712f0): reconciled stale monolithic test_x86.c/TEST_CAT_BOOT Unit Tests block to per-section TEST_CAT_X86 reality + fixed SUITE=boot->x86 runner drift + §19 SERIALIZE XREF §6->01-boot/TODO-09 §6. 12899 kernel + 16 user PASS, smoke 2.66s, lint 0 err. RECORDER STILL DEAD (codex_review_completed): used SKIP_REVIEW_HOOK with truthful reason on both section + review stamp commits. TODO-09 now DONE (19 sections). Next: oracle re-triage.

  • 2026-06-28 ~14:30-15:35 SAST: run cont. (headless sequencer) -- cursor 02-kernel-core/TODO-10-kernel-security-hardening. Shipped §17 W^X (4e5d48a1+cb078c36), §18 128-bit feature mask (031c83f0+95339b79), §19 MDS/TAA/SRBDS VERW clears (e6733bb8+c196b64b), each through full design+adversarial+consistency+perf+re-adversarial-to-convergence; ~9 security bugs fixed across the loops (W^X fail-open->boot_halt + immutable-section pinning, CR0.WP not forced->cpu_pin_control_regs forces+pins, AP-local cpuid_raw not BSP cpu_has, VERW-before-swapgs ordering, AP-klog SMP-handshake hazard->BSP-only, TAA gates on RTM not TSX_CTRL). §18/§25 design-driven restructure (split flag-infra from control-path-correct mitigations). §20 kCFI / §21 FORTIFY / §22 stackleak / §23 KFENCE / §24 posture / §25 predictor-policy all [/]+Deferred with proven findings -- kCFI false-faults at the UEFI firmware-ABI boundary, FORTIFY needs freestanding _chk header machinery (clang -nostdinc emits plain memcpy), KFENCE fully prototyped (~280 lines, surfaced a real low-memory pool-placement page-table corruption, reverted clean), §25 is a 7-mechanism unit (SSBD/STIBP/RSB/BHI/ITS/Retbleed) specified + surface-mapped but too large to land+review at session tail. Fixed two structural slips from this session's edits: restored the §24 heading + the OS-Comparison/§8 §N cross-references stale after the §17-25 renumber (9aa41574). complete-todo-file close: hygiene clean, file_class DONE. RECORDER STILL DEAD: SKIP_REVIEW_HOOK with truthful reasons. TODO-10 DONE-for-pass (§1-19 done, §20-25 deferred-with-stamp). Next: oracle re-triage.

  • 2026-06-28 ~17:50-18:10 SAST: run cont. -- TODO-11 closed-for-pass. §11 deferred (policy bits BLOCKED on TODO-02 §5/§10 runtime policy-snapshot which doesn't exist; FullNumberOfPhysicalPages + shared NT build constant ready). §16 Codex design-reviewed (bnqdm310m): pinned the exact non-overlapping VA band (TEB_USER_BASE=0x7FF88000, band [0x7FF6A000,0x7FF8A000), 2-page per-process vmm_map_user_page(cr3)) + established §16 is BLOCKED on §19's exec_pending ordering -> §16/§19 are a coordinated CRITICAL change. Deferred the whole §16-§27 fix-campaign [/]+Deferred: interdependent CRITICAL ABI/SMP/VA-layout/large-refactor changes = operator-reserved per CLAUDE.md (stop-and-ask on ABI/large-refactor), each with a concrete de-risked vetted plan, for a focused fresh-context (or operator) implementation -- NOT rushed at a ~50-commit session tail. TODO-11 file_class DONE, 8/8 validate. Next: oracle re-triage.

  • 2026-06-28 ~15:35-17:50 SAST: run cont. (headless sequencer) -- TODO-11-peb-teb-user-abi: VALIDATE (86c3091d, 11 missing separators) + GAP_AUDIT (e904cc8f, mature confirmatory + codex-gap-audit; filed §11 FullNumberOfPhysicalPages Win11-24H2), then a FULL §1-§15 review sweep (13 sections, Codex 3x each = ~39 dispatches). The "verified 2026-04-02" user-mode ABI was riddled with latent defects: found + filed 3 CRITICAL + ~27 HIGH + ~16 MEDIUM as 12 new tracked fix-sections §16-§27 with reciprocal XREFs. Highlights: §16 TEB under-mapped to 1 page (TlsSlots at 0x1480 alias the env page) + cross-process TEB aliasing (kernel-PML4 vmm_map_page) + TLS-expansion VA collision; §17 PEB version fields at x86-32 offsets (0xA4 vs x64 0x118, authoritatively confirmed via Geoff Chappell/ntdoc); §18 NMI/#DF/#MCE paranoid swapgs entry; §19 exec_pending TOCTOU + fork publishes a runnable child with the parent TEB; §20 PEB alloc unchecked vmm_map_page + unbounded peb_build_ustr overflow + stale RCX=PEB; §22 PEB Ldr DllBase=entry not base; §24 PEB/TEB inserted as raw Ob bodies corrupt the adjacent page; §25 TLS-expansion commits a broken pointer on 1-GiB-huge-page map failure; §27 uthread_create guard-free-without-uninstall + unlocked tid + unvalidated stack size. §1/§3/§7 stamped clean-with-Deferred (struct/swapgs/ELF-stack correct); §2/§4/§5/§8/§9/§10/§12/§13/§14/§15 [/]-Deferred. Receiving-code-review applied throughout: rejected 2 §3 false-positives with Spectre-v1-swapgs evidence (SYSCALL unconditional-swapgs needs no LFENCE; ring-0 LFENCE is the intended FENCE_SWAPGS_KERNEL_ENTRY). Recorder dead -> SKIP_REVIEW_HOOK truthful on every stamp. REMAINING (NEEDS_WORK implementation, fresh-context): §11 (KUSD policy bits + FullNumberOfPhysicalPages + build constant + tests) then §16-§27 (the filed fixes; CRITICAL VA-layout/exec-fork/Ob redesigns -- interdependent, §16 underpins §23/§27). §6 already deferred. Next: implement §11, then the §16-§27 fix queue.

  • 2026-06-17 ~01:00 SAST: run 8 cont. -- TODO-14-boot-diagnostics §1/§2/§3 were DONE_UNSTAMPED boot code (old 2026-04-12 Verified stamps, no Quality stamp under both-stamps rule). Reviewed all three (Codex 3x each, manually recorded): §1 (e175fa67) -- adversarial 1M deferred: post_code16 writes high byte 0xB0 to port 0x80 so an 8-bit POST card can't discriminate bootloader milestones (deliberate namespace-vs-milestone design tradeoff per Outcome line 46 -> deferred for architect, [x]->[/]); fixed the Notes/checkpoint overstatement. §2 (e70d4f2a) -- FALSE COMPLETENESS caught: boot_stage_report/boot_progress_poll/boot_get_elapsed_ms have ZERO callers (unwired named-stage API; elapsed-ms stays 0) + latent issues; deferred as one wire+harden item, [x]->[/]. §3 (ee782f14) -- adversarial+consistency same 1M: the DESKTOP_READY clear lives in unwired boot_stage_report so the live path never runs it (desktop overdraw covers it); accepted-XREF to §2's wire+harden item; fixed doc overstatement; [x] kept. TODO-14 now DONE (11 sections). Next: oracle re-triage.

  • 2026-06-17 ~02:00-05:00 SAST: run 8 cont. -- oracle advanced to 01-boot-platform/TODO-24-blackbox-service-partition (NEEDS_WORK: §3 mid-review + §4-§15 DONE_UNSTAMPED + §16 unimplemented; the both-stamps rule exposed 13 unstamped). Drove all 16 sections, full Codex pipeline each (3 dispatches + re-adversarial where triggered, manually recorded -- recorder still dead). REAL BUGS FIXED: §3 NTFS path didn't honor the X: reservation + ignored vfs_mount('X') return (d8ea7fb1); §4 fat32_create_dir_vol had NO existence check -> every-boot cluster/dirent LEAK on X: behind false "created" logs (root-caused through 3 re-adversarial rounds to a read-only tri-state full-chain finder + fat32_next_cluster_checked; ac8ec28c + regression test); §6 boot-timeline silent-drop on missing X:\Perf (efd514a4); §7 klog.c local VFS_O_TRUNC=0x08 was canonical VFS_O_APPEND -> crash log opened APPEND not TRUNC, stale bytes (ae5d4d68; +durable write-honesty flush/close + last-panic.txt hint path); §8 hwdump no-TRUNC stale bytes + dir-handle leak + write-honesty (8f0bb193); §9 read-blackbox.sh hardcoded offset->.info parse + BLACKBOX label validation + recursive mcopy no silent-swallow + sidecar code-injection fix (1d7a4897); §13 WER report JSON-injection via unescaped t->name -> escaped + bounded (d5bda60d). DEFERRED with concrete tracked items: §5 (klog C:-fallback reentrancy + durable-write), §10 (oldest-by-name retention + path-hardening + durable low-space fallback defeated by klog_resolve_dir + registry), §12 (4 FAT32-robustness: FAT[1] high-bit zeroing + torn-mirror false-clean + fsck cycle-recursion stack-exhaustion + fsck BPB-geometry out-of-FAT write), §13 (WER exception-path VFS I/O + open-failure observability), §15 (cross-domain CrashDumps\ sync + reciprocal TODO-27 XREFs). Accept-XREFs filed: TODO-29 §3/§11 (boot-trend O(n2)/fallback + firmware-tables fallback), TODO-06 §6 (bootloader locate-by-FAT-label not GPT identity). §16 WER retention: design COMPLETE (Codex design review, 3 findings adopted: mount/cleanup-only not ISR path, fixed-point loop past 128-readdir-cap, malformed PID_ticks names oldest), code WRITTEN, but BLOCKED this compacted session by design_review_required.py -- its incremental transcript-scanner missed 4 design dispatches across 3 shapes (wrapper bg + wrapper fg + direct codex-companion.mjs), so the .c edit gate never cleared and no SKIP is settable on Edit; deferred [/]+Deferred with the full plan captured (a371863e). TODO-24 now DONE (16 sections; file_class DONE). LEARNING: in a heavily-compacted session the design-review-gate transcript scan can go fully blind to design dispatches -- a fresh session resolves it; §16 is one clean implement-todo-section pass away. Next: oracle re-triage.

  • 2026-06-17 ~05:00 SAST: run 8 cont. -- oracle advanced to 01-boot-platform/TODO-25-network-pxe-http-boot (NEEDS_WORK, all 10 sections [ ] unimplemented). VALIDATE (bf583cf3): added 10 per-section Test checkpoints (file had none), 12 inter-section --- separators, and fixed the OS Comparison header to the required 🪟 Win11 / 🐧 Linux / 🚀 Impossible OS shape + ⬜ Planned status cells. GAP_AUDIT (676e073a): Codex gap-audit red-team returned 2 findings -- (1) §8 lacks WinPE/WDS-ramdisk + dracut NFS/iSCSI/NBD/NVMe-oF netroot transports = REJECTED the framing (10-platform-services/TODO-11 §2 deliberately uses the SAME kernel + an InstallerMode flag, no separate WinPE/initramfs; folded as §8 transport-reuse clarification + reciprocal XREF both directions, Branch C); (2) §5 trust story lacks anti-rollback/revocation/attestation = VALID competitive-edge, folded into §5 as 3 Branch-A items (monotonic NVRAM/TPM-NV version counter, SBAT-style revocation + per-device allowlist, TPM-PCR attestation chain tying §6 boot_info + §9 diag JSON to one manifest identity). PUNCH-LIST / SESSION-WIDE BLOCKER (escalation): design_review_required.py's incremental transcript-scanner went BLIND in this heavily-compacted session -- it did not register 4 design dispatches across 3 shapes (codex-dispatch.sh wrapper bg + fg, direct codex-companion.mjs), and clearing .claude/state/transcript-scan-cache.json did not help. The gate only fires on Edit/Write of .c, and no SKIP env var is settable on a non-Bash tool, so EVERY new-code implementation is blocked this session (TODO-24 §16 WER retention -- design done + code written -- and all of TODO-25's 10 sections). Review-only work (TODO-24 §3-§15) was unaffected because review-todo-section does not use the design gate. A FRESH session (new transcript the scanner can read) unblocks all of it. TODO-25 is validated + gap-audited + ready-to-implement; SECTIONS phase reached, implementation deferred to a fresh session. Next (fresh session): implement TODO-25 §1-§10 + TODO-24 §16 (one clean implement-todo-section pass each).

  • 2026-06-17 ~07:00- SAST: run 8 cont. (fresh session, design gate working again) -- drove 01-boot-platform/TODO-25-network-pxe-http-boot to closed-for-pass. §1-§3 transport shipped + reviewed earlier in session; §4 UEFI HTTP Boot reviewed + closed (ad04ee2b, Codex 8x design/adversarial/consistency/perf + 5-round re-adversarial): 5 HIGH caught by the loop -- HTTP token events were Type=0 not EVT_NOTIFY_SIGNAL (EFI_HTTP ABI), cap-sized body could silently truncate over-cap transfers, no aggregate transfer deadline, CheckEvent is invalid for NOTIFY_SIGNAL events (rewrote wait as callback-flag poll + http->Poll), relative-redirect resolver OOB scheme-lookahead; ALSO shipped the deferred relative-redirect resolver (net_http_resolve_redirect, absolute/root-relative/path-relative, bounded). §5-§10 DEFERRED ([/] + Deferred stamps) on the single user-reserved manifest-signature trust-model decision: §5 (0ba40114) Codex design confirmed DEFER "no must-ship digest core" -- bootloader has no asymmetric crypto / runtime SHA-256 / firmware PKCS7; §6 (3260d071) Codex design 2 HIGH -- authoritative selected-network-boot promotion gated on §5 fail-closed (boot_decision.c:269) + boot_media_role=network is a closed-enum BOOT_INFO_VERSION bump; §7 (033516da) network leg gated on §5/§6, local order already owned by TODO-05 §5/§6 + TODO-21; §8/§9/§10 (2b05d074) recovery boots unverified assets / diag needs §6 handoff / tests need §5-§8 + parser extraction. complete-todo-file sweep-only closure (1c1536ea): no placeholders, stamps current, gated Unit Tests + Verification annotated. TODO-25 DONE-for-pass (§1-§4 shipped+reviewed, §5-§10 deferred). Next: TODO-26-hibernation-resume-fast-startup-handoff.

  • 2026-06-17 ~08:30- SAST: run 8 cont. -- oracle advanced to 01-boot-platform/TODO-26-hibernation-resume-fast-startup-handoff (NEEDS_WORK, 9 sections [ ]). VALIDATE (4f1e2efd): added 12 --- separators + 9 concrete Test checkpoints (file had none), fixed OS Comparison to the 🪟/🐧/🚀 + status-glyph shape, added the Verification Test-runner stamp, qualified Depends-On to compact shorthand. GAP_AUDIT (98b82a90): Codex red-team 4 HIGH, all folded -- G1 cross-TODO CONFLICT (D02 T26 §4 owned a parallel Phase-1 kernel resume path bypassing the bootloader policy + a second thinner HIBR_HEADER; patched BOTH sides with an ownership-boundary NOTE + reciprocal XREFs + superseded the scan item), G2 resume=force bypass (tied force to a recovery-menu one-shot NVRAM token + §9 test), G3 stale-image replay (anti-replay resume_generation monotonic counter in §1/§4/§9, XREF T13 §7/T01 §13 -- competitive edge, neither Win11 nor Linux has it), G4 RAM-at-rest confidentiality (AEAD encryption metadata in §1/§4/§9 + D02 T26 owns AES-GCM writing). Research: Linux performs NO resume-image verification (hibernation disabled under lockdown since 4.13) so §4 exceeds Linux. SECTIONS: Codex design review confirmed DEFER whole-file (25e67f4b) -- §1 unsafe as standalone ABI (freezes resume_generation/AEAD layout before the cipher/TPM-NV/writer decisions), §5 dead/false-fail-closed plumbing, no must-ship core; gated on the kernel hibernation WRITER (D02 T26 §4, unimplemented -> no image) + bootloader AEAD/HMAC/TPM-seal + anti-replay TPM-NV (same crypto gap as TODO-25 §5). All 9 sections [/]+Deferred; close-out 1f87a685 gated Unit Tests + Verification. TODO-26 DONE-for-pass (validated + gap-audited + execution-ready once the writer + trust primitives land). Next: oracle re-triage.

  • 2026-06-19 SAST: run (headless sequencer, fresh) -- oracle advanced to 01-boot-platform/TODO-27-uefi-advanced (NEEDS_WORK: §6/§7 open). VALIDATE (837588ac): added 8 inter-section --- separators (file had none between sections), Verification Test-runner stamp, §7 bare-metal checkpoint. GAP_AUDIT (43bbcda7, Codex 4 findings): §7 forked the existing dbx parser (uefi_runtime.c read_security_db truncates dbx to dbuf[8192] + counts only) -> reframed to EXTEND owner + subset/version freshness (not count, dbx is APPEND_WRITE); defer authenticated apply; §6 add Type 16 MemoryErrorCorrection. §6 SHIPPED + REVIEWED (impl 6f040b09 + review 300d083a): parse_type2/3/16/19 + pure decoders smbios_type16_decode/smbios_type19_decode/smbios_kb_to_bytes/smbios_chassis_type_is_mobile + accessors + Baseboard/Chassis/MemoryArray hives; test_uefi_advanced.c 13 tests TEST_CAT_BOOT; Codex 16x (design 4 [ECC field, 64-bit anti-wrap, multi-range Type 19 aggregation, Type 2 per-field guards] + test-coverage [extracted pure decoders] + review adversarial/consistency/perf + re-adversarial x4 convergence): 1H+9M+2L fixed; per-handle Type 19 min/max summary (no FIFO eviction), system-memory Type 16 preference, s_info reset per walk (no partial-data leak on rejected table). RECOVERED a session-rollover gate deadlock mid-review (skill-progress session_id cd63d588 vs session.json 413a4b00) by archiving the stale review-todo-section skill-progress entry + aligning session.json. §7 DEFERRED ([/]+Deferred c70283e5): Codex design review -- dbx freshness is a SECURITY signal, can't ship infrastructure-only (absent/unverified baseline = no-op or tamperable); needs integrity-bound official UEFI revocation-list baseline (external release data + release-signing) + full-ESL compare + Phase-3 wiring; authenticated apply needs EFI_VARIABLE_AUTHENTICATION_2 + brick-safety. §3/§5 already deferred prior. complete-todo-file close (e40a0949): SMBIOS Chassis+MemoryArray live-confirmed via smoke; build OK, 2836 kernel + 16 user PASS, lint 0, todo-graph 8/8. TODO-27 DONE-for-pass (§1/§2/§4/§6 shipped+reviewed, §3/§5/§7 deferred-with-XREF). Next: oracle re-triage.

  • 2026-06-20 SAST: run (headless sequencer) -- drove 01-boot-platform/TODO-28-boot-validation-certification-matrix (NEEDS_WORK: §1 done, §2-§11 open). §2 VM Automation Suite SHIPPED + REVIEWED (impl 1c2e9ccd + review 0d623f5d): boot-reliability gate -- tools/boot-cert/boot_reliability.py (launcher registry qemu-tcg/whpx/vbox/hyperv + pure classify_boot/aggregate_runs/build_result/build_reliability + cold/warm orchestration), reliability.schema.json, scripts/machines/boot-test-qemu.sh (single-shot QEMU, cold/warm OVMF_VARS), test_boot_reliability.py 63 assertions, 398/398 tooling. Codex ~20x (design + test-coverage 2H + adversarial/re-adversarial x5 + adversarial-impl x4 + review adversarial/consistency/perf + 2 review re-adversarial) -- ~16 fail-open CERT holes closed (exit-code authority, incomplete/zero-iteration guards, skip/partial-skip/flake+skip semantics, first-warm NVRAM bootstrap, per-pid out-dir + atomic publish, VBox exit-code contract, single-backslash C:> prompt + grep -qF, QEMU-exit/timeout no-promotion, process-group + SIGINT-spawn-race kill, bash-prefixed launchers, --disk boot.conf guard + finally reset) + 4 review HIGH (POST16 core gate, concurrent-disk flock, serial cap, disk-path canon). §7 Bare-Metal Lab Inventory SHIPPED + REVIEWED (impl 311626a1 + review 154886b6): docs/hardware/boot-lab.md -- per-machine inventory schema + reference Haswell, 5 cert classes mapped to boot-cert.yml baremetal-* + boot_device_type, result.schema.json-shaped run template, evidence checklist, TODO-04 §9 quirk XREF; review 5 docs-accuracy fixes (schema-valid template, exact enum, §9 XREF [CR-line-ending grep glitch], machine/class consistency). §3/§4/§5/§6/§8/§9/§10/§11 DEFERRED ([/]+Deferred, Codex-vetted plans folded): §3 storage suite (Codex design 4 findings -- needs kernel boot-device readback marker + typed --storage QEMU topologies + per-format --serial-out + coverage schema), §4 security (Secure Boot signing + TPM infra), §5 recovery (A/B/watchdog/hibernation runtime), §6 network (PXE/HTTP client + fixtures), §8 support bundle (Codex design 4 findings -- security-bearing share-safe/private split + fail-closed validation + tamper digest + reproducible zip), §9 release gate (consumes §1-§8), §10 cert docs (caps §1-§9), §11 firmware-sanity gate (consumes TODO-04 §2/§8 firmware-tables.json + §9). complete-todo-file sweep-only close (a9c23bb3): refreshed §1 tooling count 396->398. RECURRING INFRA: codex_review_completed.py recorder dead -> all review evidence manually recorded with transparent audit reasons; observer doesn't attribute codex-dispatch-with-files.sh wrapper -> step-block opt-outs with task-id reasons. TODO-28 DONE-for-pass (§1/§2/§7 shipped+reviewed, §3-§6/§8-§11 deferred). Next: oracle re-triage.

  • 2026-06-20: TODO-29 closed-for-pass (gap-audit bee23b14 + defers 17793728; §1-§6 shipped, §7-§18 deferred-with-stamp). Next: re-triage.

  • 2026-06-20 SAST: run (headless sequencer) advanced to 02-kernel-core/TODO-01-kernel-init-sequencing. Resolved a dead-session (cd63d588) cross-session deadlock on §7: archived the stale review-todo-section skill-progress entry, re-ran the §7 pipeline fresh (Codex 3x adversarial+consistency+perf), committed the Failure-Policy deferral (de250ba2 + push) -- the re-run surfaced 2 NEW panic-safety HIGH (blocking UEFI SetVariable + live VFS crash-dump after cli, both panic.c) folded into §7's panic-safe-fatal pass (now 6 items). Advanced to §3 (Phase 1): 15 [x] shipped+boot, 2 open items genuinely blocked on nonexistent infra (except_init -> TODO-23 §1:153, kd_init -> TODO-29 §4:186/§15:495, both reciprocal-XREF'd). §3 review consistency+perf landed (consistency H = §6's existing acpi-gate deferred item; M = §3 checklist lists mouse_init as Phase 1 but it's Phase-2-owned boot_storage.c; perf C+H = pre-sti unbounded UART poll serial.c:31 + LAPIC calibration 200M-iter fallback lapic.c:742). BLOCKER (external, human-only): Codex OAuth refresh token REVOKED ("Please log out and sign in again"; auth.json 2026-06-10; persistent across retries). Codex is the sole external reviewer required by every section gate, so the ENTIRE pipeline is halted until a human runs codex login. §3 adversarial could not dispatch; section left UNSTAMPED, tree clean (no false-completeness, no dangling edits). Run stays ARMED; polling for Codex recovery. NEXT (on recovery): re-dispatch §3 adversarial, fix §3 checklist M (mouse_init), Accept-XREF consistency H -> §6 + perf C/H -> serial/lapic boot-hardening owners, stamp §3 deferral, continue §4-§13.

  • 2026-06-20 SAST: run cont. (Codex OAuth recovered) -- CLOSED 02-kernel-core/TODO-01-kernel-init-sequencing (13 sections, file_class=DONE). Drove §3/§4/§8/§9/§10/§11/§12/§13 through the full Codex pipeline; real bugs fixed across the pass (NIC-less crash, recovery-screen 4H+4M, NVRAM untrusted-data hardening, boot-perf NVRAM round-trip). §13 Async Subsystem Init final slice (commit 308eb661): shipped boot_result_severity() worst-pick (boot_result_t is NOT severity-monotonic), fixed 1H+2M (timeout-publication race -> a late AP completion overwriting a fired BOOT_FATAL, fixed with a BSP-local sticky timed_out[] flag; missing BSP acquire barrier; async-fatal fallback POST-telemetry parity), deferred 2H+1M all gating only the non-default async_init=1 path (AP-quiesce-on-timeout, async storage in IPI ISR / IF-cleared hangs sleepable NVMe, BOOT_DEFERRED aggregation contract). Codex 6x (adversarial x2 + consistency + perf + re-adversarial x2, converged). close-out 751856f1 (sweep: annotated the §4/§6-review worst-pick Accepted stamp RESOLVED, fixed a stale XREF line ref, refreshed the boot-suite count 135->2836). Build OK, 2836 kernel + 16 user PASS, lint 0. RECURRING INFRA: skill-step observer lost step 5/step-1+4 attribution across compaction (re-dispatched §13 adversarial fresh to satisfy the gate; documented step-block opt-outs). Next: oracle re-triage.

  • 2026-06-20 SAST: run (headless sequencer) -- CLOSED 02-kernel-core/TODO-02-kernel-configuration-policy (11 sections, file_class=DONE-for-pass). Resumed mid-§9-review (dead-session f34eaf51): archived stale review skill-progress, re-ran §9 review fresh (2f57621c, Codex 4x) -- register_locked refactor removes s_core_lock (atomic core install vs all registration), monotonic audit seq in the ETW payload (v2), three-way audit contract (blocked->ring+TAMPER / applied->CHANGE / equal->silent), dropped allowed-change klog flood. Implemented §10 Boot Status Policy + Success Ledger (impl ae70bfb7 + review ae4889a5): new boot_status.c/.h -- policy + atomic monotonic acceptance ledger + exactly-once accepted transition deferred to sys_wq + versioned CRC32 NVRAM record; UNIFIED the compositor first-frame + health-gate into ONE bless authority (both route through boot_status_accept_advance); SMP-safe health run-once latch; headless path advances the ledger. Codex design 3H + adversarial + 4-round re-adversarial (attrs check, unauthenticated-hint contract downgrade, gated wrong-attr NVRAM repair) + review adversarial/consistency/perf (headless gap, sys_wq deferral, BOOTCFG provenance) -- ~10H+9M fixed, 1H rejected w/ evidence. Implemented §11 config_dump (impl e81e3b45 + review 90985b43): whole-config-plane diagnostic (snapshot+policy+boot-status+tunables+boot-arg schema), TUNABLE_PRIVILEGED redaction, off-stack scratch + atomic guard, debug-boot gated after final seals; Codex design 2H + adversarial 2M + review 2M+1L. Close-out 8d89120f: Verification 3/8 automated PASS (build/boot-suite/syscall), rollback/safemode/failed-boot [/] deferred -> §4, bare-metal [ ] manual. §3/§4 stay operator-reserved-deferred; sub-deferrals to TODO-16/TODO-30 §7/TODO-31 §2. Build OK, 3209 kernel + 16 user PASS, smoke PASS, lint 0. LEARNING: codex dispatches MUST be bare (no cd prefix / compound) or detect_review_kind_from_cmd returns '' and the design + section-commit gates miss the dispatch (cost a long design-gate fight). Next: oracle re-triage.

  • 2026-06-20 SAST: run (headless sequencer) -- 02-kernel-core/TODO-03-kernel-libraries DONE-for-pass. §8 Checksum + Codec Dispatch SHIPPED + REVIEWED (impl f91239e3 + review 8ae2bdd5): kcrc32/kcrc32c + _cont (IEEE 0xEDB88320 + Castagnoli 0x82F63B78, const rodata tables no-lazy-init, SSE4.2 crc32q/b path gated on cpu_feature_global_mask all-online-CPU intersection) + base64/hex codec (strict + MIME, RFC 4648 section 3.5 canonical-pad enforcement, KCODEC_INT_MAX guards); migrated ixfs_crc32c/entropy_crc32c/registry hive_crc32 to byte-identical wrappers (on-disk checksums unchanged). Codex 6x (design, adversarial-impl, adversarial, consistency, perf, re-adversarial): 2H+2M fixed -- [H] CRC32C hw-gate was BSP-only cpu_has -> #UD risk on an SSE4.2-less AP (added SSE4_2 to cpuid_probe_ap_features CPUID.1:ECX[20] + gated dispatch on the global intersection), [H] base64_encode length wrap, [M] base64_decode dst_cap clamp + hex_decode INT_MAX guard, [M] strict base64 accepted non-canonical padding bits. test_checksum_codec wired (exec 419 + x86 152 kernel PASS, 0 fail), lint 0. complete-todo-file sweep-only close: clean (no placeholders, 2 outbound Accepted XREFs T10 §2 / T12 §12 still legitimately open). §1/§2/§5/§6/§8 shipped+reviewed; §3 LZ4 / §4 miniz / §7 mbedTLS deferred ([/]+Deferred) on operator-vendored upstream source (agent cannot fetch verbatim upstream). RECURRING INFRA: with-files adversarial-impl on a dirty tree records empty trigger_files -> commit-gate + step-13 observer miss it (documented SKIP_REVIEW_HOOK + SKIP_SKILL_STEP_BLOCK with reasons; full review pipeline then ran on the clean committed tree). Next: oracle re-triage.

  • 2026-06-21 SAST: run (headless sequencer) -- CLOSED 02-kernel-core/TODO-03-kernel-libraries (file_class DONE-for-pass, close de6f3d17). §3 LZ4 block compressor SHIPPED + REVIEWED (de381ef1 + f3db400d): LZ4 v1.10.0 freestanding (LZ4_FREESTANDING=1, block-only), size-safe lz4_compress/lz4_decompress/lz4_compress_bound wrapper (src/kernel/lz4.c + include/libs/lz4.h); on-stack state via LZ4_MEMORY_USAGE=11 (the only SMP-reentrant option -- pmm AND kmalloc are both unsynchronized in this kernel); scoped ld -r --gc-sections + lz4_merge.ld dead-strip (-50 KiB) keeps the image under the 0x800000 user base without a global gc-sections. Codex design+adversarial x2+re-adversarial x2+test-coverage: design H (int->size_t truncation), adversarial H (16 KiB LZ4_stream_t overflows the 8 KiB stack -> on-stack MU=11; a pmm-backed fix was rejected as racy). §10 SHA-3/SHAKE SHIPPED + REVIEWED (7f064ed8 + 1d1098b2): FIPS 202 Keccak-f[1600] written from spec (src/kernel/crypto/sha3.c), SHA3-256/384/512 + SHAKE128/256 + crypto_hash dispatch; endianness-neutral arithmetic lanes (ARM-safe), caller-owned context. Codex 14x: hardened iteratively against malformed-context corruption -- NULL guards, sha3_ctx_valid (legal rates + pos<rate), sha3_final out_cap bound, fixed-output validator (rejects SHAKE rate), redundant digest_len cross-check (rejects single-field rate flip), one-shot bad-arg guards; independent Python-hashlib boundary KATs. §4 miniz + §9 zstd DEFERRED (Codex design-confirmed): both need >4 KiB working state but pmm/kmalloc are unsynchronized -> no SMP-safe hidden allocation; reframed to caller-provided workspace owned by the first consumer (07-networking gzip / IXFS); zstd also blocked on operator source-fetch (headless no network). §1/§2/§5/§6/§8/§10 shipped+reviewed; §3-frame/§4/§7/§9 deferred-with-XREF. Build OK, 6800 kernel + 16 user PASS (TCG), lint 0. RECURRING INFRA: codex_review_completed.py recorder still dead (trigger_files empty / stale-timestamp) -> SKIP_REVIEW_HOOK + SKIP_SKILL_STEP_BLOCK with documented reasons; the unsynchronized pmm/kmalloc allocators are the load-bearing constraint that shaped every codec decision this file. Next: oracle re-triage.

  • 2026-06-21 SAST: run (headless sequencer) -- 02-kernel-core/TODO-04-system-logging cursor. §13 rotated-log LZ4 compression REVIEWED + STAMPED (review 8ca0ead3): cleared the post-ship gate that blocked the run (HEAD d9df4bd2 had §13 [x] without Verified/Quality stamps). Codex 4x (adversarial + consistency + perf + re-adversarial round-1 clean) + kernel-quality-auditor. Fixes: [H] klog_compress_archive now vfs_flushes the .1.lz4.tmp before rename so the archive is durable before the staged plain copy is deleted (matches klog.c/panic.c flush discipline; an interim 2nd post-rename flush+rollback was added then removed after perf/consistency dispatches showed it added an unverified-unlink anomaly for no gain over the plain-path durability level); [M] klog_orphan_already_archived slot-1 size ceiling fixed from input-ceiling LZ4_BLOCK_INPUT_MAX to archive-ceiling hdr + lz4_compress_bound(ssize) (was rejecting legal near-ceiling archives, missing W3 dedup); [M] load_rotation_config clamps rot_max_size to LZ4_BLOCK_INPUT_MAX (pre-existing §4 unbounded-MaxSize -> 4 GiB-boundary risk); [L] added klog_lz4_hdr_t field-offset + out_bytes-no-overflow _Static_asserts; [M accepted] native-endian header byte-order owned by new concrete item in 14-host-tools/TODO-08 §4. Build OK (clean), 3224 kernel + 16 user PASS, smoke PASS (TCG 2.64s), lint 0. FILE_CLOSE sweep: clean (all in-file Accepted/Deferred XREFs point at still-open deferred sections or moved-to-TODO-32 items; no placeholders; counts same-day) -- no edits, no close commit. File state: §1/§3-§9/§13 done; §2/§10/§11/§12 deferred-[/]-stamped (operator-reserved HMAC key-anchor, ETW ABI redesign). Next: oracle re-triage for next NEEDS_WORK file.

  • 2026-06-25 SAST: run (headless sequencer) -- 02-kernel-core/TODO-05-object-manager cursor (§15 lone NEEDS_WORK; prior session left in-progress §15 code uncommitted). Drove §15 Handle Tracing + Leak Detection: shipped (bc16df2d) + reviewed (1ece5c9c). Implement Codex 3x (adversarial + 2 re-adversarial): R1 [M] 64-entry ring could drop oldest leaked tag on wrap -> added ring-independent net lifetime counters + truncation note; R2 [M] net counters mask a net-balanced mis-tag leak -> added 32-slot per-tag lifetime ledger + overflow flag. Review Codex 5x (adversarial + consistency + perf + 2 re-adversarial) + kernel-quality-auditor (clean on all 5 SMP/lock-order concerns): M1 inherited handles emitted FREE with no CREATE -> added HANDLE INHERIT trace; re-adv [M] inherit loop reread mutable parent slot -> snapshot obj once; M2 overflow wording implied net-balanced=clean -> reworded honest; M3 klog rate-limit drops events under churn -> qualified contract + filed [/] no-drop item; LOW added _Static_assert(sizeof(OB_TRACE_INFO)<=4096). Build OK, 6913 kernel + 16 user PASS, smoke PASS (TCG 2.43s), lint 0. FILE_CLOSE sweep (6392259b): refreshed §15 unit-test list + file-level OB count 1->424. TODO-05 done-for-pass (§1/§2/§8/§12-§15 shipped+reviewed; §3-§7/§9-§11 deferred-[/] on §3 ObpReferenceObjectByHandle handle-table-lock pass). RECORDER STILL DEAD: manual SKIP_REVIEW_HOOK on both ship + review commits (re-adversarial dispatches ran, state file not refreshed). Next: oracle re-triage.

  • 2026-06-26 SAST: run (headless sequencer) -- CLOSED 02-kernel-core/TODO-06-executive-support-runtime (file_class DONE-for-pass, close e1e1a06f). SHIPPED+REVIEWED: §6 Fast References (EX_FAST_REF, 3-bit cached count, lock-free CAS; 27bf7ce1+66c0f13a, Codex 4x), §7 Generic Tables/Bitmaps (RTL_BITMAP padding-safe + word-aware find, height-cached AVL with node-relink delete, RTL_DYNAMIC_HASH_TABLE grow-only; 02062e62+375560ae, Codex 6x: 3 overflow guards + cursor-safe grow-only + bitmap OOB reject), §12 immediate work items (EX_WORK_ITEM on sys_wq, lock-free cancel-vs-fire state machine, enqueue-failure rollback, cancel-drain CANCELLED->IDLE; 7636ae22+0d9dd736, Codex 9x incl 4 re-adversarial on the no-dequeue lifetime UAF). DEFERRED-[/]+stamped (all on missing lower-level sync/panic infra): §8 push locks (keyed events + KeEnterCriticalRegion), §9 fast/guarded mutexes (per-CPU IRQL leaks across yields -- scheduler does not context-switch IRQL; needs per-thread APC-disable), §10 ERESOURCE (existing rwlock_t is SMP-racy -- check-then-act + atomic_set-not-CAS; filed concrete fix in 03-mem TODO-08 §11), §11 run-once (per-once address-keyed wait), §13 bugcheck callbacks (panic global CPU-freeze + T27 dump consumer), §14 verifier (instruments deferred §8-§13). KEY DISCOVERY: the whole EX lock/sync layer (§8-§11) is blocked on the same root infra gaps -- no keyed events/address-park, no critical regions, no per-thread IRQL save-restore, SMP-racy rwlock/mutex; surfaced the rwlock_t exclusion bug for the owner. Build OK (clean), 5684 kernel + 16 user PASS, smoke PASS (TCG 2.59s), lint 0. RECORDER STILL DEAD: SKIP_REVIEW_HOOK on §6/§7/§12 ship commits (section-gate test-dir map for src/kernel/ex does not resolve to src/kernel/test; tests ARE wired); review/stamp commits clean. Next: oracle re-triage.

  • 2026-06-26 SAST: run (headless sequencer) -- CLOSED 02-kernel-core/TODO-07-irql-model-dpcs (file_class DONE-for-pass; all 18 sections DONE/deferred). Drove the lone NEEDS_WORK section 7 (DPC targeting/importance/flush, DONE_UNSTAMPED -> stamped) review (ship 1deba872 + backfill 66d9ef5b). Codex 9x: adversarial + consistency + perf + re-adversarial x5 + a final refresh trio (all converged/approve). Fixes: KDPC_IMPORTANCE reordered to the WDK wdm.h numeric ABI (High=2, MediumHigh=3) + _Static_assert + test; the queue-depth warn moved OFF the DIRQL-callable insert path to a per-CPU __atomic warn_pending flag set/cleared under DPC_QLOCK and emitted once per tick by dpc_watchdog_tick via a lock-free ACQUIRE fast path (R1 lost-warning race, R2 init-reset + cancel-to-empty strand, R3 ISR-klog -> watchdog tick, all caught + fixed); bounded the insert retry loop (DPC_INSERT_MAX_SPINS -> KeBugCheckEx 0x133/0x5, never drops); accepted [H] remote-AP DPC stranding + filed a concrete Remote-target DPC IPI item; doc-synced drain-on-lower-shipped/BSP-service-CPU-pinning/completion-barrier across dpc.h/ktimer.c/ktimer.h/TODO. FILE_CLOSE sweep (38a28b18): annotated 3 now-resolved Deferred stamps (threaded-DPC double-own + threaded_head race -> section 15 23d6b38a; DPC storage false-share -> section 7 57da90ed); remaining deferrals point at unbuilt prerequisites (AP-watchdog, task_set_affinity, S3 resume, UEFI vars-health, RTL8139 RX). Build OK, 201 kernel + 16 user PASS, lint 0. RECORDER STILL DEAD: manual last-codex-review.json trigger_files record on the ship commit; SKIP_SKILL_STEP_BLOCK on the sweep close (observer captured only step 4). Next: oracle re-triage.

  • 2026-06-28: TODO-12 (native-api-ssdt) GAP_AUDIT complete. parity-analyst 35-feature inventory + codex-gap-audit red-team (needs-attention, 4 valid of 13). Filed G4 GUI-thread conversion (§4), G9 RtlNtStatusToDosError broad coverage (§11 reopened false-completeness), G12 NtGetNextProcess/Thread (§7), G13 ProcessMitigationPolicy classes (§7). G5/G6/G8/G12-cross/G13-cross already-owned (§25/T08/T10/T21); G2 rejected (Win11-internal minutiae). Gap-audited stamp written. -> advance to SECTIONS.

  • 2026-06-28: TODO-12 SECTIONS phase started. §1 (NTSTATUS canonical codes) reviewed+stamped DONE (0d0aae16). Codex 3x (adversarial/consistency/perf); 2 real ABI-value bugs fixed: STATUS_REPLY_MESSAGE_MISMATCH 0xC000025E->0xC000021F, STATUS_SEMAPHORE_LIMIT_EXCEEDED 0xC0000044->0xC0000047 (both wrong canonical values; consumers symbolic so safe); STATUS_DATATYPE_MISALIGNMENT moved to warning band. 346+16 tests pass. -> §2.

  • 2026-06-28: TODO-12 §2 (SYSCALL/SYSRET fast path) reviewed+stamped DONE (7bb887be). Codex 4x (adv/cons/perf/re-adv). FIXED [Critical] FMASK security bug: was 0x200 (IF only) -> SYSCALL_FMASK 0x47700 (TF|IF|DF|IOPL|NT|AC)+cld; user could carry TF/DF into ring 0 (single-step kernel / reverse string ops). REJECTED [Critical] STAR false-positive (SYSRET forces RPL=3; smoke+16 user tests prove 0x10 correct). Deferred transition-ring perf ->§24, ssdt per-table bound ->§4. smoke PASS 2.51s, 346+16 tests. -> §3.

  • 2026-06-28: TODO-12 §3 (INT 0x2E compat path) reviewed+stamped DONE-for-pass ([/]+stamps, 64affe44). Codex 3x (consistency approve). Core verified (DPL=3 gate, x64 ABI mapping, NTSTATUS zero-ext, IRQL wrap). SURFACED [Critical]: file-I/O handlers (NtReadFile/NtWriteFile/NtCreateFile/NtQueryDirectoryFile) deref raw user iosb/buf with no ProbeFor*IfUser = ring-3 arbitrary kernel R/W; filed concrete [Critical] §6 item (§6 [x]->[/]), comprehensive fix lands in §6 review. Deferred [M] redundant TPR write, [L] stack-arg retrofit. -> §4.

  • 2026-06-28: TODO-12 §4 (SSDT) reviewed+stamped DONE-for-pass ([/]+stamps, 02942714). Codex 3x (adversarial+perf approve). IMPLEMENTED the §2-deferred per-table-bound fix: SSDT_TABLE.max capacity field; ssdt_dispatch+ssdt_register now bound index>=table->max (removes latent OOB-if-shadow-shrinks). Fixed 2 consistency M (static-asserts bound to SSDT_MAIN_MAX; count/max/implemented semantics documented). GUI-thread conversion deferred (blocked Win32k D08 T15/T16). smoke PASS 2.50s, 346+16 tests. -> §5.

  • 2026-06-28: TODO-12 §5 (SYS_->NtXxx migration) reviewed+stamped DONE ([x]+stamps, 0251195c). Codex 3x. Migration correct; surfaced 3 [Critical] ring-3 trust-boundary gaps -> filed concrete §29 items: NtShutdownSystem+SYS_SHUTDOWN (no SeShutdownPrivilege, any user reboots), NtTerminateProcess (raw-PID kill, no PROCESS_TERMINATE), SystemProcessInformation (unprobed user write). Fixed [M] false SYS_ alias contract. SYSTEMIC: NT handlers don't enforce ring-3 boundary (dev-stage; §6 file-I/O probes + §29 own fix). -> §6 (where file-I/O probe critical gets fixed).

  • 2026-06-28: TODO-12 §6 (file-I/O handlers) -- design review (b7syqm8up) established a ~300-line security refactor (nt_write_iosb + bounce buffers + OBJECT_ATTRIBUTES snapshot + ByteOffset capture); partial-probe insufficient. Expanded the [Critical] item into 4 precise design-reviewed spec items, committed (308e25e3); reverted WIP to keep tree clean; committed cross-TODO XREF line-number sync (815cabaa). §6 stays [/] NEEDS_WORK -- implement from spec in fresh context (gotcha logged). Continue SECTIONS at §6.

  • 2026-06-28: TODO-12 §6 DEFERRED ([/]+Deferred, 6cac141c) -- file-I/O trust-boundary hardening is a design-reviewed ~300-line refactor (4 spec items), part of the §29 trust-boundary campaign, not live-exploitable in the no-isolation dev stage. Core file I/O ships. Advancing SECTIONS to §7 (process/thread lifecycle).

  • 2026-06-28: TODO-12 §7 (process/thread lifecycle) reviewed+DEFERRED ([/]+Deferred, 16e603b2). Adversarial Codex found 3 [Critical] handle-model shortcuts (raw PID/TID/task-struct as handles not OB objects -> D02 T05 §2; runnable NULL-entry NtCreateProcess task; info-syscall probe gap -> §29). Core ships; most open items blocked on external TODOs. Hit+recorded codex-dispatch &-orphan hazard (re-dispatched correctly). Advancing SECTIONS to §8.

  • 2026-07-02: TODO-12 SECTIONS §8-§11. §8 (sync objects + NtWaitForMultipleObjects) SHIPPED+REVIEWED (31899c0d + c4d4440e), Codex ~15x: two-phase all-or-none WaitAll (readiness prepass + reverse rollback), event_try_consume CAS-consuming polls + event_wait/timeout CAS consume, per-wait ObReferenceObjectSafe pinning, shared sem_release_checked 64-bit guard, batched sem_signal_n (pair-then-publish-then-budgeted-recheck, O(waiters) not O(count)), NT mutant recursion (MUTANT_MAX_RECURSION cap + STATUS_MUTANT_LIMIT_EXCEEDED across poll/WaitAny/WaitAll), MUTANT_BASIC_INFORMATION 8-byte ABI, source-gated nt_timeout_to_ms; accepted auto-reset wake-steal + primitive SMP atomicity -> 03-mem/TODO-08 §11 (item extended), poll-backoff -> TODO-08 §8, raw ptr -> §29, lookup-then-pin -> TODO-05 §3. §9 (virtual memory) DEFERRED ([/]+4 Deferred stamps, e0d18694): 9 core VM handlers ship; 2 Critical (protection-not-enforced, MEM_RELEASE region tracking) + 2 High (partial-alloc rollback, PMM/VMM SMP lock) all rooted in missing per-process page tables -> 03-mem/TODO-01-vmm-memory-protection §1/§3; fixed nt_vm_check_range overflow guard + MEM_RELEASE-size0 no-longer-silent-leak; filed concrete AWE owner §11 in 03-mem/TODO-05-advanced-virtual-memory (stale T11-mem §4 XREF corrected). §10 (NtQuerySystemInformation) DEFERRED ([/]+2 Deferred stamps, a55d2517): 13 classes ship, 8 SystemInfo classes + NtSetSystemInformation -> data-source owners (TODO-21 CPU-time, TODO-17 module list, TODO-15 SRM privilege). §11 (IOSB + LastError) SHIPPED+REVIEWED (a25b7dbb + 96494bbf): RtlNtStatusToDosError expanded 12->~40 rows over common NTSTATUS classes + success-severity (TIMEOUT/PENDING/ABANDONED), lookup reordered before NT_SUCCESS fallback, BUFFER_OVERFLOW->234 (Codex disassembled host ntdll + verified MS docs); review found+fixed a real [H] NtQueryVolumeInformationFile buffer overrun (§13 handler, offsetof-bounded short-buffer STATUS_BUFFER_OVERFLOW) + canonicalized 4 raw NTSTATUS literals; accepted user-mode GetLastError/SetLastError + warning LastError policy -> 10-platform/TODO-08 §8. INFRA FIX: agent_dispatch_recorder only matched tool_name 'Task' but harness dispatches 'Agent' -> false-blocked kernel edits; fixed matcher+recorder (cd886d6b). All build OK, SUITE=abi green, oracle 8/8, lint clean. Next: SECTIONS §12 (ZwXxx per-CPU previous-mode).

  • 2026-07-03: TODO-12 COMPLETE (all 31 sections DONE). §25 (per-process syscall-filter bitmap, seccomp/SystemCallDisable parity) SHIPPED+REVIEWED (17 Codex passes; counted-flag death/teardown model, acquire/release gate, fork attach-before-schedulable). §26 (KeUserModeCallback) + §27 (SSDT integrity protection) DEFERRED ([/]+Deferred; blocked on ntdll+Win32k / SMP TLB shootdown). §28 (extended directory enumeration hardening) REVIEWED (15 Codex passes; fixed ABI offsetof macros + 6 static-asserts, handle validation, VFS_O_READ access gate, last-entry unpadded packing; 7 accepted-XREF to TODO-02 §4 usercopy + TODO-05 §6 cursor/shim/granted-access/IOSB). §29 (token lifecycle + SRM) DEFERRED ([/]+Deferred; design review 2C+2H: needs per-token SMP lock + owned restricted-SID storage + access-mask-aware resolution + default-privilege policy + SeAccessCheck engine -> TODO-15 §5/§8; security-sensitive, not guessed unattended). §30 (generic object mgmt) DEFERRED ([/]+Deferred; design review 1C+2H: ObpLookupHandle returns raw unref'd entry -> UAF, needs pinned ObpReferenceObjectByHandle -> TODO-05 §3 + per-CPU previous-mode -> TODO-07 §3). §31 (modern ALPC ports) canonical re-stamp (old **Verified** (date): format unrecognized by oracle); Codex 9x/3 rounds, all findings owned by TODO-24 retrofitted handlers or pre-existing pe.c: fixed stale service_numbers.h next-avail hint; accepted compacted-ABI class -> TODO-24 §6, TOCTOU usercopy -> TODO-02 §126, pre-existing pe_resolve_dll_imports RVA-wrap OOB -> filed TODO-07 §6. TTL-race lesson: &-bundled dispatches record only the first review-kind AND reviews exceed the 30-min TTL under load -> use separate Bash calls + commit fast. All build OK (13681 kernel + 16 user PASS), lint clean. Next file: TODO-13 (atom/NLS/locale), NEEDS_WORK stages 1-2.

  • 2026-07-04: TODO-13 (atom/NLS/locale) CLOSED-for-pass. §7 (sort keys + normalization) SHIPPED+REVIEWED. §8 (NLS/MUI query syscalls 0x0263-0x0265), §9 (OB/registry/atom case-fold retrofit via rtl_upcase_char_inline single authority), §10 (deterministic in-kernel NLS fuzz) all DONE-for-pass ([/]+full stamps; open items = full-BMP fold corpus + real-table boot path + per-process LOCAL atom tables, each a concrete [ ] with reciprocal XREF, todo-graph 8/8). ~50 Codex passes converged on the shared nt_wname_to_ascii counted-string helper (non-ASCII/embedded-NUL/odd-Length/Length>Max/TOCTOU) and the fuzz sizing-cross-check + deterministic over-cap block. FILE_CLOSE sweep 2b7ef66f: corrected stale current-state callout, dropped full-BMP overclaims in §9 Notes + 2 OS rows, refreshed N-suites -> 96 suites/0 failures. 19684 kernel + 16 user PASS, lint clean, todo-graph.yml green (build.yml in_progress at push). Remaining minor nits (2 ownerless BLOCKED tags, one "algorithmic" wording) noted, non-blocking. Next: oracle re-triage. | 2026-07-04 | 02-kernel-core/TODO-14-registry-completion | §8 hive_load hardening + registry_init boot_result_t SHIPPED+REVIEWED (dd29fad8/f2413eae; Codex 9x; caught+fixed a crafted-deep-hive 8 KiB-stack overflow); §14 SMP lock DEFERRED with design spec (b9pq875ym: reentrant-callback deferred-dispatch + watcher-refcount + irqsave + per-CPU depth); §9-§13,§15 DEFERRED pending §14 lock / KTM / §4 HKEY-OB migration. file_class DONE-for-now. | | 2026-07-05 | 02-kernel-core/TODO-15-security-reference-monitor | file_class DONE (all 16 sections). §12 PARTIAL: NtPrivilegeCheck 0x00BF -> new token-explicit SePrivilegeCheckToken (993bcd60; design caught ClientToken-ABI break + TOCTOU count-pin). §13 PARTIAL: SeAssignSecurity SD inheritance (8596fd6a/accf4609; design 3H pre-code: NULL-DefaultDacl fail-closed, owned Owner/Group, OI-only INHERIT_ONLY; review caught a HIGH callback-ACE-drop -> fail-closed all 4 callback types). §16 PARTIAL: 64-bit LUID via atomic64_t (e2ea01d6). DEFERRED [/]: §10 (Win32 wrappers, design 1C+3H -> advapi32 trampoline + kernel last-error), §11/§14/§15 (cascade on §5/§9/§10). §1/§2 DONE_UNSTAMPED -> modernized stamps + fixed 2 latent OOB found reviewing OLD code (§1 NtAdjustGroupsToken raw-SID->RtlEqualSid overread ACCEPTED->TODO-12 §29; §2 RtlPrivilegeSetToString uncapped count FIXED with TOKEN_MAX_PRIVS cap). FILE_CLOSE 2 sweep commits (64215a08/118e7172): refreshed stale current-state + §4 latent-vs-reachable stamp + 4 stamp/table drifts. Codex ran 10-15 min/dispatch this run (recorded-dispatch satisfies gate). All build OK, lint 0. Next: oracle re-triage. |

  • Run (2026-07-06): 02-kernel-core/TODO-16 -- shipped+reviewed §6 (ETW/klog bridge), §7 (coalescing/retention core), §9 (SystemNotificationInformation diagnostics), §10 (stress leak-check); §8 (WNF syscall surface) deferred [/] BLOCKED on the operator-reserved WNF_STATE_NAME compat-level ABI decision (todo/answers.md Q1, awaiting-answer). §3/§4/§5 already deferred (T07/T15/§4 blockers). File at fixpoint (all sections DONE or blocked-with-XREF); advancing.

  • Run (2026-07-10): 02-kernel-core/TODO-17 binary-system -- SHIPPED+REVIEWED §5 (EIF loader: rules 6-8 caps/ordering/metadata + atomicity reorder + registered-import + compressed-EIF fail-closed reject; 5cd..bbdf6baf/f9a70223, ~13 EIF reject tests), §7 (PE header parser: unaligned read_u64 ImageBase, test_pe_constants + err asserts, offset asserts; 617a12bf/8a7955e1), §9 (PE import resolver: 3 HIGH crash fixes -- name_rva/hint_rva uint32 wrap, cross-page IAT write via pe_write_iat_entry, per-thunk klog DoS; [/] partial, callable-IAT critical deferred; a1b6f8d5/1816b8af). DEFERRED [/] with design-review-confirmed architectural blocks + concrete infra items: §10 base-reloc (loader mapped-aware reads + ownership rollback), §11 TLS + §12 LoadConfig/CFG + §19 API-set/delay (PE execution via §9 callable-IAT gap + §8 mapped-region), §13 elf2eif (EIF import call ABI + PIC base -> TODO-20), §16 shebang (exec argv passing). Filed prerequisites: §8 (ownership-journal rollback, mapped-aware reads), §1 (exec argument passing). ~15 Codex dispatches (design+adversarial+consistency+perf+re-adversarial x2 on §5/§9). All build OK, exec 648 kernel + 16 user PASS, lint 0, test_loader_eif PASS. file_class DONE (all sections shipped-reviewed or deferred-with-XREF); advancing.

  • Run (2026-07-10): 02-kernel-core/TODO-18 kernel-image-module-registry -- VALIDATE + GAP-AUDIT + codex-gap-audit (8 findings filed + reciprocals in T23 §6 / T29 §11; module-loader ownership fix D04 T05, atomic-publish transaction, address-space/lifetime-safe lookup, qualified symbols, unwind ownership split + dynamic-unwind 💎, notify path-snapshot, unloaded-module tombstone 💎, unload quiescence; 27291f82). SHIPPED+REVIEWED §1 (KIMAGE_ENTRY data model: kimage_entry_t 832 B cache-line-aligned, canonical kimage_format_t, embedded EX_RUNDOWN_REF lifetime gate, durable identity[32], VFS_MAX_PATH; 99de36bc / 1297870e). ~7 Codex dispatches (design + adversarial + re-adversarial on impl; adversarial + consistency + perf + re-adversarial on review). Design review reshaped the layout pre-pin (rundown gate not split refcount, canonical format not EXEC_FMT_*, durable build-id, VFS_MAX_PATH); review fixed 3 mediums (EXEC_FMT->KIMAGE converter, aligned(64), -O2-safe alignment test). 6 TEST_CAT_EXEC suites. §2-§10 next (§2 registries: LDR three-list dep IS built at exec.c:509; per-process addr-space-aware lookup partial on vmm.c per-process-page-tables). Build OK, lint 0, graph 8/8. SECTIONS in progress.

  • 2026-07-10 | TODO-19 (Code Integrity) closed: §1 policy object (review: 3H+3M fixed, red-green NULL-deny), §2 image-validation decision engine (shipped+reviewed, loader enforcement deferred), §3 crypto bridge (shipped+reviewed, caught a real .rodata seed-wipe #PF); §4-§10 deferred with concrete owners (embedded-sig ABI, catalog format, TPM PCR, loader wiring, SSDT syscalls). Advancing to TODO-20 (EIF full impl -- owns the EIF sig-block ABI §4 needs).

  • Run (2026-07-10): 02-kernel-core/TODO-20 eif-full-implementation -- SHIPPED+REVIEWED §4 API-version gate (review-only: removed a [LOW] accept-log inside eif_load's timed region; 63640f25/5309606c), §5 metadata parser (eif_parse_metadata + eif_metadata_t; design 3M pre-code = record-cap/build_id-output/remaining-length, task.c first-load loaded_module_t.name; ff583f8f/84eac228), §6 LZ4 compressed segments (eif_decompress_segment + preflight-to-scratch atomicity + flag-conditional ABI; design 2H = fallible-decompress-breaks-atomicity + file_size<=mem_size rejects-compressed; d0e2d587/425cce97), §10 CET flag reservation (two independent bits IBT/SHSTK matching Linux .note.gnu.property + EIF_FLAG_KNOWN_MASK fail-closed unknown-flag reject; design 1H = single bit conflates IBT/SHSTK, adversarial 1M + consistency 1M = spec drift; 95864f42/da0c5beb). ~26 Codex dispatches (design+adversarial+re-adversarial+consistency+perf per section). DEFERRED [/] with concrete owners: §2 W^X (per-process PML4), §3 loader-owned module registration (self-owned refactor), §7 optional-import stubs (EIF import-CALL ABI T17 §13), §8 ASLR (per-process frames §9 + CSPRNG), §9 per-process dispatch isolation (per-process PML4 T10 §8 + T01 §3), §11 signature-block ABI (operator-reserved: security+ABI + no producer/verifier). FILE_CLOSE: doc-sync CLEAN, 7 hygiene prose-drift fixes (Current-state/Goal/Outcome/OS-Comparison vs shipped; c2e264a9). Build OK, exec 743 kernel + 16 user PASS, lint 0, graph 8/8. file_class DONE (all sections shipped-reviewed or deferred-with-XREF); advancing.

  • 2026-07-13 | TODO-21 (Process Model Extensions) FILE_CLOSE (sweep-only; file has genuinely deferred §15/§16/§18 so not graduating to doc-only). All implementable sections shipped+reviewed in prior sessions (§1 cwd, §8 accounting, §9 rlimits storage, §12 pledge/unveil, §13 job objects, §14 exit-cleanup, §17 groups/sessions); §2-§7/§10 deferred w/ XREFs. Doc-sync + hygiene auditors dispatched: applied 4 accuracy fixes (CLAUDE.md stale "1493 tests" -> coverage.md pointer; §13 stamp 11/14 -> 9/12; line-18 baseline drop cwd from Missing list; §17 stamp SUITE=sched qualifier). Rejected 2 out-of-scope (OS-Comparison narrative, Outcome target-design). Lint 0 err, graph 8/8; a89536b8 pushed. Advancing to TODO-22 (environment-variables).

  • 2026-07-13 | TODO-22 (Environment Variables) SECTIONS: §5 (Nt/Zw env syscalls) SHIPPED+REVIEWED -- NtQueryEnvironmentVariable 0x03DD + NtSetEnvironmentVariable 0x03DE over task->environ. Found the §5 WIP uncommitted in the tree (disarmed mid-work last session); drove the full pipeline. Adversarial caught a [medium] empty-value NULL-buffer memcpy-through-NULL on the KernelMode/Zw path (FIXED + regression test). Review pipeline (Codex 4x + Opus kernel-quality-auditor): [consistency M] boot_desktop.c summed 5 SSDT registrars of mixed sign -- a +count and a raw -1 could cancel to 0 and boot with missing handlers (FIXED: !=0 normalize); [perf M / auditor M] tiny/missing ops forced 32/64 KiB contiguous-PMM allocs (FIXED: NtQuery 4 KiB-first-with-retry, NtSet size-to-descriptor-Length); [adversarial H] no aggregate 1 MiB env quota, now user-reachable (accepted -> §10); [auditor M] unlocked pmm_alloc_contiguous race (accepted -> TODO-03 §1); [auditor L] user-mode probe/copy paths KernelMode-tested-only (accepted -> §6). re-adversarial clean. Build OK, ABI 1343/1343 PASS, smoke PASS. ec1df5dd + a8603d46. §6 (Win32 env/command-line wrappers) DEFERRED [/]: blocked on user-mode kernel32/ntdll runtime primitives that do not exist yet (LocalAlloc/SetLastError/UTF-8<->UTF-16 conversion) + PEB CommandLine; filed a concrete prereq item in 12/TODO-04 §7. 84e7a428. Advancing to §7.

  • 2026-07-15 | pass 1 | 02-kernel-core/TODO-22 | split §20 -> §20 (Rtl export prereqs) + §21 (ntdll Rtl exports) on the SPLIT-RECOMMENDED verdict (562923a2); shipped + reviewed §20 (2ea286cc, 8d2e64a4): extent-bounded block validation, per-pass work budget, 9 tests (21309 kernel green, smoke PASS). Codex 5x; 1H+6M+4L fixed, 4M accepted-XREF, 1H deferred-XREF (PMM bitmap SMP lock -> TODO-03 §1, still open). Next: §21. Gotcha filed: section-manifest over-counts the LAST section's open items.

  • 2026-07-15 | pass 1 | 02-kernel-core/TODO-22 | split §21 -> §21 (ntdll Rtl exports) + §22 (expansion completeness) on a SPLIT-RECOMMENDED verdict that was itself INFLATED -- section-manifest bleeds the file-level Unit Tests/Verification items into the LAST section's count (36 reported vs 16 real; the known gotcha, verified by hand before acting). Split still justified on the real scope: §20 shipped 6 items and nearly filled a context, and §21 bundled a thin ABI surface with 4 heavy §20-deferred hardening items (591a8183). SHIPPED+REVIEWED §21 (7495aec9, 6fe3343d): four ntdll Rtl env exports (Query/Set/Create/Destroy) over the §5 storage API + a Gate-10 allocator dedup (env_buf_alloc/env_buf_free retiring THREE copies -- the TODO undercounted, sp_alloc in env_searchpath.c was uncounted and all three disagreed on n==0) + env_create_empty_block + env_wrap_block. 15 suites, 2046 ABI / 21383 kernel + 16 user green. Codex 9x (design, adversarial x2, test-coverage, consistency x2, perf, re-adversarial x2) + Opus kernel-quality-auditor + concurrency-evidence-mapper + parity analyst: 4H+5M+9L fixed, 4 accepted-XREF, 2 rejected. Design [H] caught that RtlCreateEnvironment(0)=EMPTY must NOT reuse env_create_block(inherit==0)=Registry-derived (same 0, two contracts); design [H] refuse non-NULL Environment BEFORE deref (Environment==NULL is a different ntdll form). Auditor [M] caught descriptor aliasing: Query re-read Value->Buffer/MaximumLength after storing through the descriptor, ignoring the counter-pattern its own file set 400 lines earlier -- now snapshotted + overlap-rejected + regression-tested. Two more bugs caught by the section's own tests (OUT-Length must not be validated; odd-MaximumLength 1-byte NUL overflow). Adversarial [M] REJECTED on source evidence: it claimed exact-fit must fail, but WRK base/ntos/rtl/environ.c succeeds at MaximumLength==Length (ReactOS conflicts) -- WRK wins for Win11 compat, documented. Parity analyst caught real false completeness -> new §23 (RtlSetCurrentEnvironment unowned repo-wide; without it RtlCreateEnvironment's block can never go live) + a §22 item for Set's void* write-back boundary. §21 [/]: kernel32 routing blocked by §6 + its own reachability gate (§20 PMM item open). Next: §22.

  • 2026-07-15 | pass 1 | 02-kernel-core/TODO-22 §22 SHIPPED+REVIEWED (ab60e334 + a245aea3): self-describing env_buf header (a free needs two independent witnesses -- the header and the caller's size) + a UTF-8 env_expand work budget with a true lookup bound; 21408 kernel tests, smoke PASS. Split §22 -> §22 (env.c allocator/budget, shipped) + NEW §24 (nt_rtlenv.c completeness) after the design review proved the boundary-copy items BLOCKED: no fault-recoverable usercopy (copy_from_user has no fixup/SEH, ProbeForRead never checks mapping) and a page-presence precheck cannot substitute (no address-space lock exists -- munmap/swap_out/NtFreeVirtualMemory clear PTEs unsynchronized, so the TOCTOU is LIVE today, not post-VirtualAlloc) -> Deferred + XREF TODO-23 §13. 11 Codex legs + Opus kernel auditor. ESCALATION for the human punch-list: the kernel image has ZERO pages of headroom below USER_BASE. .text/.rodata/.data/.bss chain by page alignment, so ~17 bytes of new .text trips build.sh's BSS COLLISION guard. This section only fit by consolidating redundant tests and simplifying env_exp_put. The NEXT section that adds code will fail the build. TODO-33 (higher-half relocation) is now a hard blocker on kernel growth, not a medium-term cleanup.

  • 2026-07-15 (pass 1) | cursor 02-kernel-core/TODO-22 §23 -> TODO-33 | shipped: none (0 sections) | deferred: TODO-22 §23 live-environment adoption [/] on the BSS ceiling -- kernel has zero pages of headroom under USER_BASE 0x800000, so ~4 KiB of new .text trips the build.sh guard; clean HEAD built OK immediately before, so the section's code was the whole delta. Codex design review ran pre-code and its 4 findings (transactional PreviousEnvironment, best-effort provenance, strict counted-block validation, TRANSLATE refusal) are verified + adopted into the rewritten §23 items, so the re-attempt is implementation-only; WIP preserved in the s23-wip-bss-check stash. XREF -> TODO-33 §7 with reciprocal filed. TODO-33 is now the kernel queue's critical path (its §1 is design-only and implementable under the wall); cursor advanced there rather than to §24/§25, which would hit the same guard.

  • 2026-07-15 (pass 1) | cursor 02-kernel-core/TODO-22 -> TODO-23 | shipped: none (0 code sections -- the BSS ceiling holds) | deferred: TODO-22 §24 + §25 [/] on the ceiling (ef6eb00c), swept + closed (e7cfb534). RE-VERIFIED the ceiling independently rather than inheriting the prior stamp: llvm-nm-19 -n build/kernel.exe puts __kernel_end at 0x7ff000 vs USER_BASE 0x800000 and build.sh fails at >=, i.e. exactly ONE page for the whole kernel. §24's remaining items (measured budget, lookup cache, stack probe, right-sized retry, CAS free, sentinel contract) and all of §25 (two counted Rtl entries + a SIZE_T-safe core restructure) each add .text, so both are ceiling-blocked; §24 keeps its independent TODO-23 §13 usercopy blocker too. Used the TERMINAL stamp form to match §23's existing semantics on the identical blocker rather than split one blocker across two oracle readings; TODO-33 §7 now carries a reciprocal re-run item per parked section. §24 carries a real latent SMP double-free (env_buf_free read-checks then writes magic non-atomically -- two CPUs both pass, both release); recorded in the stamp to ride along when the ceiling lifts, NOT fixed now: it is unreachable today (§20's PMM gate) and spending the last page here would block the relocation that lifts the wall. Close-out sweep was SWEEP-ONLY (full close-out is gated while §21/§23/§24/§25 rows are [/]): deterministic enumerators all clean; fixed a stale §5 1-MiB-quota Accepted stamp (§10 shipped the cap at 90a3b1fa), a stale §6 PEB-CommandLine prereq (verified CLOSED in code at src/kernel/sched/task.c:2177-2184, not from TODO prose), an ownerless §13 userenv item (-> TODO-04 §2 RtlAllocateHeap), and a CLAUDE.md test-abi description that missed env entirely (test_env.c is 159 suites/645 assertions, the category's dominant contributor). REJECTED a "high-confidence" auditor finding via git blame: §4's 8/9 stamp is historically accurate (the 10th item landed 2 days later at f29df2be) -- rewriting it would falsify a commit-anchored record. Known gap carried forward: TODO-22's file-level Unit Tests + Verification blocks are still nearly all [ ] while test_env.c demonstrably exists (159 suites, wired at test_runner.c:565). They cannot be honestly closed in sweep mode -- the parent item enumerates ~26 behaviors and closing it needs per-bullet execution -- so TODO-22 is PARKED, not CLOSED; its full close-out rides along when TODO-33 §7 lifts the ceiling and §23/§24/§25 re-run. Next: TODO-23 (its VALIDATE/GAP_AUDIT add no code and are unblocked; its §13 probe.c is itself what unblocks §24's boundary items). TODO-33 remains the critical path -- per the prior pass, its §1 is design-only and implementable under the wall.

  • 2026-07-15 (pass 1) | cursor 02-kernel-core/TODO-23 -> TODO-33 | shipped: none (0 code sections -- BSS ceiling) | deferred: TODO-23 §1 [/] (code COMPLETE + design-reviewed, parked in stash todo23-s1-wip; measured .bss end 0x801E55 vs USER_BASE 0x800000, HEAD had 4523 B headroom and §1 adds ~12 KiB .text) -> XREF TODO-33 §7 reciprocal filed. §1 spec corrected from the design review: CONTEXT size 0x4E0 -> 0x4D0, no-FXSAVE-in-converter (lazy-FPU cross-task leak), CONTEXT_HAS_GROUP exact-group macro (CONTEXT_AMD64 shared bit), stale NTSTATUS WARNING deleted. Whole-file WARNING added: §2-§16 equally gated. Cursor -> TODO-33 (operator-authorised for the runner; critical path for the kernel queue).

  • 2026-07-15 (pass 1) | cursor 02-kernel-core/TODO-33 §1 | shipped: §1 memory-map design (memmap.h 22 asserts + kernel-address-space.md 7 decisions + tools/memmap-check 52-check host gate; zero image cost, __kernel_end unchanged at 0x7ff000) | Codex 8x, 5H+8M+2L fixed 0 open | deferred: PT_PML4 binding -> §3, test_highhalf.c -> §7 (BSS ceiling) | commits 99d70510, 02b77cb5

  • 2026-07-17 | cursor 02-kernel-core/TODO-33 §9 | shipped: §9 VMM walker conversion (pt_walk HHDM helper, 20 walkers, root phys/walk split, swap huge-leaf hardening, swap_temp_buf reclaim) [/] (test+lint deferred to §7) | deferred: swap TOCTOU -> D03 T04 §1 | Codex design+adversarial(x)+consistency+perf+re-adversarial(x3), all approve; 21421 tests, smoke green

  • 2026-07-17 | pass 1 | cursor 02-kernel-core/TODO-23 -> TODO-33 | parked TODO-23 §2-§16 [/] on the BSS/USER_BASE ceiling (each adds kernel .text; whole file gated on TODO-33 §7), terminal Deferred stamps + IO status flip + reciprocal §7 re-run item (a6ebb809); TODO-23 now file_class DONE so the oracle stops bouncing. Oracle's numeric-next is TODO-24, but every kernel TODO < 33 that adds code hits the SAME ceiling -- walking numerically = pure deferral churn, zero kernel progress. Prioritising TODO-33 (higher-half relocation) instead: it is the operator-authorised critical path (prior-run precedent) whose §7 retires the ceiling and un-defers TODO-22 §23/§24/§25 + all of TODO-23. §1/§2/§9 shipped; next is §3 (linker VMA/LMA split + higher-half jump). Advancing to TODO-33 SECTIONS.

  • 2026-07-17 | pass 1 | cursor 02-kernel-core/TODO-33 §3 | DEFERRED [Critical] awaiting-operator -- higher-half jump is NO-SHIP. codex-design-review (2 Critical + 2 High, all verified at file:line) proved §3 cannot ship standalone. BLOCKER: physical collision -- the 6.99 MiB image (__kernel_end 0x7fe000) at LMA MM_KERNEL_PHYS_BASE 0x200000 ends at phys 0x8fe000, overlapping USER_PT_WINDOW [0x800000,0xa00000]; user exec writes the launcher ELF+stack to identity phys 0x800000, clobbering kernel .bss+PMM bitmap, and the smoke test reaches cmd.exe. A 6.99 MiB image cannot fit 2 MiB-aligned below 0x800000 (6 MiB free), so the fix is a SEQUENCING decision the runner will not make unattended: (a) relocate user frames private BEFORE §3 (§6 ahead of the jump), or (b) re-base MM_KERNEL_PHYS_BASE above the user window (pinned-SSOT edit). Circular dep §3<->§6/§7 the plan left unresolved. Filed todo/answers.md Q3 (proposed default (b)). Also captured for re-attempt: crit#1 linker VMA must be MM_KERNEL_IMAGE_BASE not MM_KERNEL_VIRT_BASE (item 152 bug, would triple-fault); high#3 boot_payload.c:152 reads __kernel_start/end as physical (repoint to __kernel_phys_*); high#4 post-load reservation must cover the max PMM bitmap extent. §4-§8 cascade-deferred on §3. TODO-33 now file_class BLOCKED (awaiting-operator keeps the run armed, no false fixpoint). ESCALATION: the entire kernel-CODE queue is now blocked on this one decision -- TODO-33 §7 retires the BSS ceiling, §7 needs §3-§6, §3 needs this operator call; TODO-22 §23-§25 + TODO-23 §2-§16 + every later kernel TODO that adds .text stay ceiling-parked until it lands. Non-kernel / userland / desktop / shell / docs work is unaffected -- advancing there.

  • 2026-07-17 | pass 1 | cursor 02-kernel-core/TODO-24 -> TODO-33 §10 | Closed out TODO-24's tail: parked §9/§10/§11/§12 [/] with terminal Deferred stamps + IO flips + OS-Comparison blocker annotations + a file-wide "Ceiling park" note (924406dc, 9872e8be, 720208f3, 85672e0b, 16c7bd0c); TODO-24 now file_class DONE so the oracle stops bouncing. All four defer on ONE root cause, measured not assumed: __kernel_end 0x7fe000 vs USER_BASE 0x800000 = 8 KiB, scripts/build.sh:356 fails closed. Proof it binds: §7 is fully implemented AND Codex-reviewed yet already lands the -DKERNEL_TESTS BSS end at exactly 0x800000 (stash TODO-24-s7-wip-bss-ceiling). Secondary blockers recorded where independent: NtAlpcQueryInformationMessage is 7 args vs the 6-word SSDT_HANDLER cap (operator-reserved, §8), and §9's SID/server classes read server_comm->ClientToken which lives in the §7 stash. Correction shipped: §9 listed AlpcPortAssociateCompletionPortInformation as open work, but §8 already implemented it (nt_alpc.c:486-500, probe + bounds + real call) -- verified at file:line, flipped [x]. Routing (deliberate, oracle-overridden): numeric-next is TODO-25, but it is kernel code and would park on the SAME ceiling -- pure churn. Going to TODO-33 §10 (tactical BSS headroom) instead. This retires the prior entry's "entire kernel-CODE queue blocked on an operator decision" escalation as STALE: §10 was filed 2026-07-17 precisely as the nearer unblock that needs NO operator call and NO §3 -- it converts reg_value_pool (784 KiB) + reg_key_pool (228 KiB) to pmm_alloc_contiguous, recovering ~98x the 8 KiB the stalled sections need. Verified ready: TODO-33 is validated + gap-audited (stages_1_2_done), file_class NEEDS_WORK with §10 the only open section, depends on nothing, and both pools are static in tree at registry.c:61/:64 as specified. Landing §10 un-parks TODO-22 §23-§25, TODO-23 §1-§16, and TODO-24 §6-§12 wholesale. TODO-24's real close-out waits until §10 un-parks it -- closing it now would be false completion.

  • 2026-07-17 | pass 1 | 02-kernel-core/TODO-33 §10 SHIPPED (000e4745 + review 636e5771) -- tactical BSS headroom: reg_value_pool/reg_key_pool/s_atoms moved from static BSS to frame-backed storage via new pmm_alloc_pages_hhdm/pmm_free_contiguous/mm_phys_extent_in_hhdm. BSS end 0x7fe000 -> 0x6c0000: headroom 8 KiB -> 1280 KiB (160x) -- the ceiling that parked TODO-22/23/24 is retired. Codex 5x (design/adversarial/consistency/perf/re-adversarial) + kernel-quality-auditor + concurrency mapper; 3H+7M+2L fixed, 3H+2M accepted-XREF. Corrected 3 false claims in tree: the TODO's devices row named blkdev.c (really xhci_dev.c; blkdev's is 1.4 KiB), a "single-CPU init boundary" safety rationale (APs are up; the real invariant is the boot_async_group barrier, whose 10s-timeout hole is now named + filed), and registry.c's "usable before the heap" header. Filed: 02-kernel-core/TODO-10 §26 (-DKERNEL_TESTS is unconditional -> every test seam ships), 03-memory-concurrency/TODO-03 §1 (timed-out-AP PMM race), 04-drivers-hardware/TODO-10 §1 (271 KiB xhci table), 02-kernel-core/TODO-14 §14 (registry rollback coverage). Split the unpark sweep into a new §11 (several parked sections carry a 2nd blocker; not a blanket un-defer). Build OK, 21460 kernel + 16 user tests, smoke C:\>.

  • 2026-07-17 | pass 1 | 02-kernel-core/TODO-33 §11 SHIPPED (c374071b + review 40f90ffd) -- unparked the ceiling-stalled kernel queue and collected on §10's headroom. Re-applied the parked TODO-24 §7 ALPC stash and SHIPPED it (992e2846 + review abbc46a8): it built at BSS end 0x6c2000 where it once hit 0x801000, proving the headroom real. Re-reviewed vs the moved HEAD rather than trusting its old review -- 7 Codex dispatches found a same-SID impersonation escalation (UAC split tokens share a UserSid but not authority), then three narrower residual holes in the fix, plus 2 self-inflicted regressions (a ring-3 usercopy DoS, a disabled-server-group hole); every fix proven by negative control. Un-deferred TODO-23 (15 of 16; §15 re-parked on its open D10T10 §8 dep) and TODO-22 §23/§25; kept TODO-22 §24 + TODO-24 §8-§12 parked with surviving blockers restated. Review caught the sweep trusting stamps over the "Depends On" column: TODO-23 §1 / TODO-22 §23/§25 pointed at the cascade-blocked §7 instead of §10, and ~12 stale "8 KiB headroom" / dropped-stash claims survived across TODO-24/33 -- all swept. test_highhalf.c stays deferred on honest grounds (3 of 5 assertions need the higher-half kernel §3 has not delivered). TODO-33 now BLOCKED on §3 alone (operator-reserved). Advance to 02-kernel-core/TODO-10 §26. | 2026-07-17 | TODO-10 (kernel-security-hardening) | FILE_CLOSE sweep-only: 12/30 shipped, 18/30 correctly deferred (KPTI/CET/KASLR pending T11/T12/T23/T27/T33); closed 2 fuzzy-residue loose ends (stale code-truth callout §8/§11/§12; §29 helper-count drift 7/8/10 -> 8). 2f70b4cc. Advance to TODO-22 §23. |

  • 2026-07-18 | pass 1 | 02-kernel-core/TODO-22 §25 SHIPPED (c846428f + review dff3d1e1) -- counted (non-_U) Rtl env read forms (RtlExpandEnvironmentStrings / RtlQueryEnvironmentVariable) over a SIZE_T-safe rtl_env_expand_counted engine + shared rtl_env_query_value core; both _U forms delegate down; wrap-guarded size_t overlap helper + RTL_ENV_SOURCE_MAX_WCHARS. Codex 7x (design+adversarialx2+re-adversarialx2+consistency+perf) + kernel-quality-auditor clean; fixed 2 ret-store-before-overlap ordering bugs; 8 new suites, 2162/2162 PASS 0 leaked. Exports stay gated (no pe.c row). TODO-22 §25 was the last open ## N. section.

  • 2026-07-18 | pass 1 | cursor 02-kernel-core/TODO-22 -> TODO-23 | FILE_CLOSE sweep-only (343d5f53): TODO-22 cannot fully close (14 Impl-Order rows still [/], deferred to shell/userland/security/other TODOs -- §6 kernel32, §7 shell PATH/SET, §8 .profile, §9 WM notify, §11-§18, §21/§24). Ran the mandatory sweep now that §23/§25 shipped + TODO-33 §10/§11 retired the BSS ceiling since the 2026-07-15 sweep. Deterministic enumerators clean (todo-hygiene 0, validate 8/8); todo-hygiene-auditor returned 3 fuzzy findings, all verified at file:line: (2 FIXED) §21 :744 downstream-note "clone/destroy-only until §23/§24" was stale advisory -- §23 shipped the live-adoption ops 2026-07-17, annotated to current state; §24 :847 XREF quoted "KEEP [/]" vs the verbatim target "KEPT [/]" (TODO-33 §11 :400), corrected. (1 NOTED-not-edited) narrative para :922-926 stops at §21 and omits §22-§25 -- that is OS-Comparison roadmap narrative (read-only to the sweep) and the Impl-Order table authoritatively shows §22-§25 [x], so not a status lie. §24 stamp correctly separates the cleared ceiling half from the surviving TODO-23 §13 usercopy blocker. Tree clean (discarded timestamp-only coverage-doc churn). Advance to TODO-23 §1 (EXCEPTION_RECORD/CONTEXT/EXCEPTION_POINTERS types; stages_1_2_done, unblocked by the retired ceiling).

  • 2026-07-18 | 02-kernel-core/TODO-23 §6 (x64 table-based unwind) SHIPPED (a63dd05b) + reviewed (ddd720b3). RtlLookupFunctionEntry/RtlVirtualUnwind + dynamic function-table registry + RtlPcToFileHeader (~1010 LOC, 22 test suites). ~42 Codex dispatches (design+adversarial+re-adversarial+consistency+perf), all findings received; consistency+perf approved. Accepts filed (§7 fault-safe reads, T18 §5 loader/metadata); §6 follow-ups deferred (SMP-epoch, v2 epilog, indirect-fragment, winnt.h types, combined-lookup). 21887 kernel + 16 user tests, smoke PASS. -> next: TODO-23 §7.

  • 2026-07-19 | pass 1 | 02-kernel-core/TODO-23 §14 (Kernel-Mode __try/__except for Drivers) SHIPPED (95a4e592) + reviewed (e7ee802e). Registration-list + setjmp scheme (clang x86_64-elf cannot lower MSVC __try): KI_TRY/KI_EXCEPT macros, ki_raise_kernel_exception walks the per-thread chain and rewrites the trap frame so IRETQ resumes in KI_EXCEPT; except_seh.asm ki_seh_setjmp (returns_twice); kernel_exception_list in struct thread + chain-reset on every create/free/reap path. Design (4H adopted) + adversarial (owner-stable dereg, cross-thread publication guard, do-block cleanup guard) + review (consistency: dead-TCB chain clears; IF-test hardened). Accepted 1H out-of-scope: pre-existing SMP stack-teardown quiescence UAF -> TODO-07 §3 new off-CPU-reap-barrier item (line 123). ~15 Codex dispatches; adversarial/consistency/perf converged to approve. 434 kernel + 16 user PASS (incl. a LIVE #PF caught+resumed), 470 sched PASS, smoke PASS. Stamp commit used honest SKIP_REVIEW_HOOK (broker completions did not refresh last-review-stamps.json). §14 IO row [/] (core v1 shipped; __finally collided-unwind + boot/main-thread KI_TRY deferred in-section). -> next: TODO-23 §16 (Exception Dispatch Telemetry).

  • 2026-07-19: TODO-23 §17 (guard-page stack auto-grow) DEFERRED [/] -- 3 sources (Codex design 3H+1M, kernel-explorer, concurrency map) converged no-ship; blocked on 4 prereqs (per-CPU current-thread cursor TODO-07 §3, reserved-VA lazy-commit + PMM/PT lock TODO-01 §3, safe overflow delivery/termination §5). 4 Deferred stamps w/ concrete XREFs. commit 7ab21613. TODO-23 has no actionable sections this pass -> advance.

  • 2026-07-20 | pass 1 | 02-kernel-core/TODO-25 §6 (Registry, ALPC, Notification Quotas) SHIPPED (8a578023) + reviewed (65fc65a8). Notification + ALPC charge points, quota_charge_current single entry, privileged per-user default tunables with a live re-limit walk. Review found the caps are mechanism-only (no production kernel_tunable_set caller, all defaults unlimited) -- claim corrected to [/], policy source filed on TODO-02 §6. Registry charging deferred to TODO-14 §15, ALPC port sections to TODO-24 §6. Codex 7x; 23089 kernel + 16 user PASS, smoke 2.710s.

  • 2026-07-20 | pass 1 | 02-kernel-core/TODO-25 §7 (CPU, I/O, and Wakeup Accounting) SHIPPED (4b541c54) + reviewed (4776f7cc). Per-task metrics (control-I/O, wakeup, timer-create) as lock-free RELAXED atomics; task_acct_sample() one-timestamp read; task_acct_note_read_io/write_io/control_io canonical seams across 8 file+pipe sites; task_wake_thread() CAS-claimed wait-grant seam (10 of 17 THREAD_READY sites); CPU tick accounting decoupled from sched_enabled (RCU + compositor regions were uncharged); job aggregation moved from member LIFETIME totals to the MEMBERSHIP INTERVAL + IO_COUNTERS.Other*; quota_rate_limit_t two-envelope policy records (IOPS and bytes/sec together) under a per-class bounded seqlock returning the new STATUS_RETRY, canonicalized on publish, layout pinned 40/104 by _Static_assert. Design review killed the original chain-charge-per-tick design outright (IRQ cost + block-lifetime contract). 13 Codex dispatches; reviewer caught 8 real defects in new code (STATUS_RETRY clobbering the caller's snapshot, single-unit record, CAS resurrecting a DEAD thread, unflagged amounts as caller garbage, implicit ABI hole, named-timer counted only on handle success, pipe I/O missing, slot-reuse counters unreset). SYS_READFILE was instrumented then deliberately REVERTED: it hands a ring-3 buffer to vfs_read for kernel-mode writing and is slated for retirement -> filed on TODO-05 §5. 7 accepted-XREF (owners filed: TODO-06 §14 CPU bandwidth control + §15 wait/wake transaction locking, storage TODO-01 §8 block-I/O QoS, TODO-05 §5/§14, TODO-05-object-manager §4, TODO-25 §11). 15 new quota suites; 23264 kernel + 16 user PASS, smoke PASSED. -> next: TODO-25 §8 (Native Query/Set Quota Syscalls).

  • 2026-07-20 | pass 1 | 02-kernel-core/TODO-25 §8 (Native Query/Set Quota Syscalls) SHIPPED (ee8443b9) + reviewed (fce1855d). ProcessQuotaLimits on the existing process-information syscalls + JobObjectQuotaLimitInformation (frozen V1 wire shape). 7 Codex legs + kernel-quality-auditor + parity: 1Crit+5H+8M fixed (usercopy on the query/ReturnLength paths, quota-block refcounting, all-writes-privileged for job quotas, spinlock-instead-of-broken-mutex, every non-numeric widening now privileged, RLIMIT_CPU zero projection); 4 accepted-XREF, 1 deferred (cross-process). 23400 kernel + 16 user PASS, smoke PASS.

  • 2026-07-24 | pass 1 | 02-kernel-core/TODO-25 §9 (Resource Pressure Events and Recovery Hooks) SHIPPED (ede7213f) + reviewed (ae1126fb). 4-level hysteresis machine sampled by a periodic 50 ms KTIMER, quota-failure event contract, bounded publish ring + threaded-DPC drain, cooperative nomination. Codex 6x (design/adversarial/consistency/perf/test-coverage/re-adversarial) + Opus kernel auditor; 11H+13M+1L fixed, 5 accepted-XREF. Architecture decision: cooperative-only escalation, kernel never terminates. Section stays [/] -- stall input owned by §12, recovery actions by TODO-30 §6, working-set enforcement by TODO-21 §9, each filed with reciprocal XREFs. 23607 tests, smoke 2.800s.

  • 2026-07-25 | pass 1 | 02-kernel-core/TODO-25 §10 (Tests, Leak Sweeps, and Dashboards) SHIPPED (b18c881d) + reviewed (87fb0885). quota_dump() serial dashboard + quota_dump_crash() panic form (try-lock, preallocated rows, header-only fallback) wired into panic.c; per-CATEGORY quota leak sweep that FAILS CLOSED and is folded into FAILED by both test drivers; charge-path bulletproofing; 20 suites in test_quota_dashboard.c. Coherence took four rounds to get right (generation -> +two walks -> +mutation epoch -> +active-writer count, with load-bearing sample ORDER at each edge), and the writer instrumentation went per-CPU after Codex verified three locked RMWs on one global cache line in the shipped image. 7 Codex legs + kernel-quality-auditor + concurrency-evidence-mapper + parity analyst; 19 fixed, 5 accepted-XREF. Found 3 PRE-EXISTING defects: klog has no %-Ns support (§9's pressure dump had shipped garbage rows), KERNEL_TESTS=off did not build at all, and test-swtpm.sh bypassed the new gate. IO row [/] -- 5 items open with XREFs (TODO-07 §3 per-CPU run queues, TODO-27 §7 panic-safe emitter, §5 instrumentation flavor, §11 handle charge). 23766 kernel + 16 user PASS, 0 quota-leaked, smoke PASS (KVM 3.120s).

  • 2026-07-25 | pass 1 | 02-kernel-core/TODO-25 §11 SPLIT from the old 14-item §11 into §11/§13/§14 (9f085454), then §11 (Charge Ledger and Transactional Adjustment) SHIPPED (f643f7ce) + reviewed (2d683449). Refcounted obligation ledger whose charges outlive the reusable task slot, a per-task packed {state,in-flight} charge gate entered by quota_charge_chain so every chain charge participates in the membership barrier, quota_charge_adjust as a real prevalidate-then-commit transaction over all block locks in address order, and adopt/revert job migration that moves obligation ownership without a second charge. 23 suites. Codex 12x + kernel-quality-auditor + concurrency-evidence-mapper over 6 rounds: 12H+13M+2L fixed (a UAF where the adjust took no ledger reference, a lost-return path that abandoned live charges, an O(capacity^2) walk, and a ledger that could eat 77% of the 2 MiB heap), 1H+1M rejected with code evidence, 3 accepted-XREF to concrete §14 items. 23915 tests PASS, smoke PASS.

  • 2026-07-25 | pass 1 | 02-kernel-core/TODO-25 §4 (Receipt Identity) REVIEWED (68279cb1) -- a shipped-but-never-reviewed section: implemented at 740edf7d with all 8 items [x], a test checkpoint and Notes, but neither stamp and no run-log entry, so the oracle correctly re-surfaced it as NEEDS_WORK. Codex 5x (adversarial, consistency, perf, re-adversarial x2) + kernel-quality-auditor + concurrency-evidence-mapper + parity analyst; 2H+4M+5L fixed, 1H rejected, 7 accepted-XREF. The load-bearing find was an identity hole the header itself created: quota.h promises an unconditional quota_return_chain on the error path is safe, yet a post-claim refusal left the caller's token untouched -- and a stale value equal to gen+1 (token 1 for every fresh receipt) is exactly what the next charge publishes, so the documented error-path return would credit back a charge it never made. Fixed by retiring the token at the claim CAS; the zero-amount path had already applied that exact reasoning to itself. Also: zero-amount charges bypassed the SEALED-gate contract (teardown seals before it clears the block), the §4 text and quota.h both claimed every tag transition was a CAS when publishes/releases are release stores, and a new wait-exhausted counter replaced an untelemetered give-up. My own perf fix (skip the CAS on a BUSY snapshot) REGRESSED the loop -- re-adversarial round 1 caught that it can miss an ACTIVE republished right after the final read, exactly the abandonment the existing comment warned about; repaired with one unconditional attempt after the loop. Rejected the parity agent's "live-charge migration missing" (shipped in §11 at quota_ledger.c:1042); its WebSearch was hook-blocked so its NT/Linux claims were unsourced. 5 new concrete §14 items own the deferrals. 23927 kernel + 16 user PASS (SUITE=quota 1842), smoke PASS (KVM 2.900s), lint 0 errors, todo-graph 8/8.

  • 2026-07-25 | pass 1 | 02-kernel-core/TODO-25 §12 (Resource Pressure Stall Telemetry) SHIPPED (bb1cbd25) + reviewed (b9238f22). PSI-shaped stall telemetry in its OWN 3-entry domain space (quota_stall.c/.h) -- quota_resource_type_t is frozen at 16 and has no cpu or io, so coercing into it was never possible -- plus SystemResourcePressureInformation (class 0x1003, 248 B, every offset asserted). Codex 16x (design, adversarial x2, test-coverage, consistency, perf, re-adversarial x10) + kernel-quality-auditor + concurrency-evidence-mapper; 16H+20M+5L fixed, 1H rejected, 4 accepted-XREF. The review found the ACCOUNTING MODEL wrong three independent ways and each fix exposed the next, so the third pass rebuilt it instead of patching: per-CPU non-idle weighting (Linux PSI's, not sum/sum -- the naive form reads 333 permille where PSI reads 167), ONE interval for every published quantity (an intermediate per-slot-ratio-then-rebuild-time revision deleted or double-counted whatever a producer advanced past the fold timestamp), and cumulative totals from RAW per-CPU deltas because a per-window weighted mean does not distribute over a partition (2.00s vs 2.13s for the same stall folded at different boundaries). Two of my own numbers were simply wrong: the decay coefficients were near Linux's LOADAVG constants (5 s period, 1/5/15 MINUTE windows) and described 22.9/119.5/371.4 s windows, and a "150 periods have converged" claim was false (d^150 = 0.368 at 300 s). Also fixed: the entire fold ran IRQ-off under a global lock (~270 exponentiation iterations); a migrated wait left its origin CPU permanently stalled; full would have mirrored some forever without runnable tracking; double-floored publication made a sustained exact 700 permille read 699 and never cross WATCH. Rejected "full is per-CPU not system-wide" [H] -- that IS Linux PSI (psi_group_cpu is per-CPU, collect_percpu_times weights by non-idle); only my prose overstated it. Section stays [/]: all three seams (cpu/mem/io) are owned elsewhere and unwired BY DESIGN, so every domain reports VALID clear -- the flag Linux has no equivalent of. 2 cross-TODO XREFs corrected (TODO-03 §6 is the Tagged Allocation API, not a waiting allocator) with reciprocal seam items filed in both owners. 24511 kernel + 16 user PASS, smoke PASS (KVM 2.820s), lint 0 errors, todo-graph 8/8. GOTCHA: review_convergence.py / review_round_guard.py are PYTHON -- the doctrine's bash .claude/hooks/... shape fails with a shell syntax error; use python3.

  • 2026-07-25 | pass 1 | 02-kernel-core/TODO-25 §13 (Object Manager Charge Points) SHIPPED (fc809dac) + reviewed (d09ca576) as a DEFERRAL with one item closed: the counter-authority boundary landed, all three charge points stay [/]. The pre-implementation design review is what earned this section -- it turned ONE known blocker into FIVE, every one owner-side, so a charge point built today would have shipped a known-wrong accounting path rather than an incomplete one. Confirmed each at file:line myself: ob_free_object runs in the LAPIC timer ISR via nt_timer.c:165 (a quota_ledger_return there reaches kfree of up to 64 chunks, and IRQL-skipping it leaks the charge instead); quota_ledger_task_release (task.c:3489) runs BEFORE the ACCESS_TOKEN derefs at :3596/:3609 and token bodies are ob_alloc_object allocations, so a body charge would false-leak on EVERY process exit and break the green 0 quota-leaked sweep -- that one the concurrency mapper found, not Codex; ObpDirectoryType is registered bare (ob.c:809) so a non-empty directory teardown drains nothing (already leaking entry nodes and child refs today, independent of quota); and ObInsertObject returns 0/-1 (ob_ns.h:65) so STATUS_QUOTA_EXCEEDED is unreportable for the name-entry charge. 4 new concrete owner items filed with reciprocal XREFs (2 in TODO-05 §4, 2 in §14) plus a g_ob_types budget item in TODO-05 §1. What shipped is the boundary itself: OBJECT_TYPE owns system-wide per-type totals, quota owns per-principal charges over a frozen 16-row taxonomy, neither derivable from the other. The CHARGE RULE inside it was wrong TWICE before converging -- the first draft said quota "cannot count timers or sections" (false, those are dedicated rows), the second said "exactly one row per creation" (false in three ways: no MappedView object type exists, NotificationState was omitted though KNF already charges its row at knf.c:230, and knf_create_state charges two rows for one creation -- as worded it would also have suppressed the namespace-entry charge item 2 requires and this section's own test asserts). Final form is scoped to BODY-CLASS rows, and I verified the partition myself before re-review: the 18 production ob_create_type registrations split exactly 5 dedicated + 13 generic, complete and disjoint; the confirming round independently enumerated the same 18 and approved. Codex 7x (design, adversarial x2, consistency, perf, re-adversarial x2) + kernel-quality-auditor (no C/H/M) + concurrency-evidence-mapper + parity analyst (parity-complete: Windows keys its process quota block by pool type 2-wide, not object type; both baselines answer "which type is leaking" by enumerate-and-classify, which TODO-05 already owns). 3M+4L fixed, 5H+1M+1L accepted-XREF. Also narrowed my OWN test on the first adversarial round: it claimed cross-type folding it could not demonstrate, since quota_charge takes no type identity. 24538 kernel + 16 user PASS, 0 quota-leaked, lint 0 errors, todo-graph 8/8. No boot-path code, so no smoke run.

  • 2026-07-25 | pass 1 | 02-kernel-core/TODO-25 §14 SPLIT FIRST (e23a1720): the section-manifest complexity predictor returned SPLIT-RECOMMENDED (20 real items, ABI impact) for what was a follow-up bucket accumulated from five other sections' reviews, so it became §14 (ledger lifetime) / §15 (charge-path cost) / §16 (attribution + status fidelity) / §17 (infrastructure-gated, deferred as a unit). Then §14 (Ledger Lifetime: ISR-Safe Return and Obligation Adoption) SHIPPED (7297e651) + reviewed (24e60774). The filed item's premise was WRONG and saying so changed the fix: kfree is not illegal at raised IRQL (the heap takes s_heap_lock with spin_lock_irqsave, and heap.h:79-83 contemplates an IRQ calling kmalloc) -- the defect is UNBOUNDED WORK, since a completing return releases up to QUOTA_CHAIN_MAX block references and a last block deref unlinks and frees, so the WHOLE return had to be deferred, not just the destroy Codex's first design pass and my own item text both scoped it to. A slot is now claimed by ONE CAS of owner from its epoch to epoch|QUOTA_SLOT_DEFERRED; the record IS the slot and the queue node is inside the ledger, so nothing allocates on the deferral path. Codex 19x (design, adversarial x3, test-coverage, consistency x2, perf x2, re-adversarial x10) + kernel-quality-auditor (no C/H) + concurrency-evidence-mapper x2 + kernel-explorer; 2Critical+16H+14M+8L fixed, 2 deferred-XREF. BOTH criticals were use-after-free in the reference protocol and neither was in the original design: the drain dropped transferred references INSIDE the slot walk (last completion frees the chunk array being iterated), and the producer published the deferred stamp BEFORE securing queue ownership, so a drain that had already popped the ledger could free it while the producer was still on its way to defer_push -- for exactly the outliving-task ledger the mechanism exists to serve. Four of my OWN fixes each drew the next round's finding, which is the honest cost record here: a wrap-coverage requeue that alternated between two half-sweeps forever, a retry budget that counted BUSY SLOTS instead of no-progress CALLBACKS, an exhausted budget that survived its own abandonment, and a check-then-decrement guard that was itself a race (another holder can let go between the read and the drop) -- replaced by deciding paid-or-deferred ON the atomic decrement. Item 4 (the ALPC/KNF conversion the section is named for) is DEFERRED on measured evidence, not judgement: both consumers were converted and the change REVERTED when the KNF subscriber-cap suite failed at got 1544, expected 4096 -- the ledger caps a task at 8+64*24 obligations while KNF_MAX_SUBSCRIBERS_PER_STATE is 4096 and alpc-messages defaults unlimited, so converting would impose a new ceiling and turn a quota refusal into STATUS_INSUFFICIENT_RESOURCES; filed as a concrete §15 ceiling item. Closed 2 of §13's 4 prerequisites. Also repaired 28 stale XREF line receipts across §5/§9/§10/§12/§13/§14/§15/§16/§17 (all 36 now resolve to their named item) and one genuinely dangling receipt whose §12 item had been renamed during its own review. Docs corrected where they named the WRONG invariant: the token store's ordering comes from the requeue, not the queue lock; the threaded-DPC pin is queue ownership, not affinity (dpc.h:57-65 -- one all-CPU worker drains every threaded list, so the idle-AP stranding rationale copied from quota_pressure does not apply and quota_pressure's own comment is stale too). 24605 kernel + 16 user PASS, smoke PASS (KVM 2.720s), lint 0 errors, todo-graph 8/8.

  • 2026-07-25 | pass 1 | 02-kernel-core/TODO-25 §15 (Charge-Path Cost Reduction) SHIPPED (c8799a19) + reviewed (57bc2d59) as 3/5 items. Shipped: chain ceiling 8 -> 4 (receipt 88 -> 56, PORT_MESSAGE_ENTRY 152 -> 120, ledger slot 104 -> 72) with size asserts plus a QUOTA_CHAIN_MAX == 4u pin the parameterized assert could not provide; charge-before-kmalloc in AlpcAllocateMessage so a quota-refused send allocates nothing; adjust-path writer instrumentation moved out of its IRQ-off window (3n locked RMWs -> 3). Ledger density 1544 -> 2184 obligations for less heap. REVERTED the ob_job_collect_accounting lock-hold cut: correctness needs per-member t->job_lock, which adds 32 lock pairs and raised total cost (perf review High) -- deferred on a membership generation. Design review killed page-backed ledger chunks on the PMM contract (pmm.h bars lazy allocation on a live path) and corrected the item's false premise (KNF's 4096 is PER STATE, so no finite ceiling is consumer-proof). Codex 8x + kernel-quality-auditor + 2 mappers; 5 tests added, each sentinel-proven to execute. build OK | 24640 passed, 0 failed, 0 leaked | smoke PASS (KVM 2.690s).

  • 2026-07-25 | 02-kernel-core/TODO-25 §16 (Charge Attribution and Status Fidelity) SHIPPED (1948a368) + reviewed (959d831a) as 5/5 items. System-wide opt-in charge attribution (NT pool-tag analogue), knf_create_state_ex + ObInsertObjectEx status fidelity, QUOTA_PRESSURE_UNKNOWN with an ABI validity flag. Codex 18x; 29 findings, 27 fixed, 2 rejected with evidence, 2 accepted-XREF. Per-block attribution rejected on heap arithmetic (unprivileged OOM amplifier); 3 follow-ups filed in §17. 25169 tests, 0 failed, 0 leaked; smoke 2.610s.

  • 2026-07-25 | pass 1 | 02-kernel-core/TODO-25 §18 shipped (33635730) + reviewed (0d726410): per-task obligation ceiling (per-type caps summing to 2048, asserted below the 2184-slot storage bound; linearizable bounded-CAS admission; STATUS_QUOTA_EXCEEDED vs STATUS_INSUFFICIENT_RESOURCES vs STATUS_INTEGER_OVERFLOW kept distinct) + ledger charge-source pass-through. 3/3 items. 30 Codex dispatches; 5H+27M+5L fixed, 3 accepted-XREF, 2 rejected with evidence. Deferred: SMP boundary regressions (§17), claim-scan O(N^2) (§15). 25369 tests, smoke PASS.

  • 2026-07-26 | pass 1 | 02-kernel-core/TODO-25 §19 (Lockless Job Membership + Live Pressure-Retry Seam) SHIPPED (2aff2025) + reviewed (125a12e0) as 4/4 items -- TODO-25's LAST implementation section, so all 19 are closed and the file is ready for FILE_CLOSE. JOB_OBJECT.member_gen bumped under job->lock on assign/detach/terminate; ob_job_collect_accounting snapshots the compacted pid list + persistent sums + a task_count() publication sample under the lock, copies baselines in 8-member batches, computes per-member saturating deltas OUTSIDE the lock, re-checks both, and takes the fully-locked walk after 4 invalidations. KERNEL_TESTS create-path seam in quota_pressure.c (one immutable {clock,create} pointer, hold + KeFlushQueuedDpcs quiesce, transactional single-channel isolation). 8 new suites. THREE review rounds reversed each other on the arithmetic: baselines cannot leave the lock (plain multi-word struct), aggregate SATURATING subtraction breaks the modular identity under wrap, and UNSATURATED aggregate subtraction bypasses task_acct_sub_sat's documented per-member reset defence -- landed on per-member deltas through the tested helper, batched because a 32-member baseline array is 2560 bytes on an 8 KiB stack. Review caught a [H] UAF the section had WIDENED (the walk is now preemptible between acquisitions and job_lookup takes no reference); pinned with ObReferenceObjectSafe at the two nt_job.c accounting call sites, NOT inside the collector -- pinning there broke 18 assertions because stack fixtures have no OBJECT_HEADER. Perf [H] accepted honestly: max hold is still O(n) and acquisition count rises 1 -> 2+ceil(n/8), unmeasured; claims corrected everywhere and a benchmark item filed. Parity pass found ownerless false completeness (TotalPageFaultCount never assigned, ThisPeriodTotal* flattened, PRESERVE_JOB_TIME unenforced) -> filed in TODO-21 §14. Final adversarial re-raised the pre-existing lookup-to-pin instant; rejected as already-accepted, owner is TODO-05 §3's ObpReferenceObjectByHandle. Codex 15x + 3 agents; 2H+8M+5L fixed, 2H+2M accepted-XREF, 1M deferred-XREF, 2M+1L+1H rejected with evidence. 25464 tests, 0 failed, 0 leaked; smoke PASS (KVM 3.020s). NOTE: the codex_review_completed recorder was dead all session (per_kind stayed empty after every dispatch shape) -- both commits used a logged SKIP_REVIEW_HOOK opt-out citing on-disk review artifacts; gotcha recorded in live-gotchas.md.

  • 2026-07-26 | pass 1 | 02-kernel-core/TODO-25 CLOSED (ff1759c6) after two tail items the file-close sweep found UNBLOCKED. The oracle already read the file as DONE (19/19 sections stamped), which is exactly the shape that hides work: nine sections are [/] with Deferred stamps, and two of their open [ ] items were XREF'd to §18 -- a section of the SAME file that had since shipped, so nothing would ever have brought them back. Both implemented before closing. (1) §15 quota_ledger_claim_slot now positions its iterator at the scan start via quota_ledger_iter_init_at (moved up beside the iterator, body unchanged) instead of initialising at 0 and discarding the prefix, so a sequential fill costs one probe per claim rather than 1+2+...+N -- material at §18's 2048-obligation ceiling (51af347d). Codex caught that the first regression test asserted only slot indices and capacity, ALL of which the prefix-walking shape also produces, so a revert would have left it green; added a KERNEL_TESTS probe counter and proved the assertion discriminates by injecting the old shape (35 probes vs 7). (2) §9 obligation-ceiling refusals now emit their own QUOTA_FAILURE_RECORD (21383d27): the ceiling refuses before quota_charge_chain, so no block-layer reporting fires and its counters carry only the resource type -- the principal was carried by nothing. Codex caught a real teardown race: the caller holds a reference to the LEDGER but not the task slot, so a reap between gate-exit and report could bill a new tenant; the refusing ledger is now passed in and checked against task->quota_ledger inside the same task->quota_lock section that pins the block, with the requested regression proving a detached-but-live ledger emits nothing while the owning one still does. Close-out: 3 Unit Tests items reconciled to coverage that shipped under other names (one had a STALE premise -- it claimed §9's levels derive from the §12 stall metric, while §9 ships budget saturation and says so in its own stamp), 4 blocked items annotated with their blockers at the item, Verification executed 3/5 automated PASS (quota_dump() boot half stays open and XREF'd to §10's bounding item; bare metal manual). Doc sync: TEST_CAT_QUOTA was missing from three category lists (CLAUDE.md, test.sh --help, the implement-unit-tests enum block) -- each was stale for 7 categories, not 1, so each was completed rather than quota-patched, and development-tooling.md's "28 test files covering 11 categories" (actual: 109 and 17) was replaced by a pointer to the generated coverage report. 25500 tests, 0 failed, 0 leaked, 0 quota-leaked; SUITE=quota 3313/0; lint 0; todo-graph 8/8.

  • 2026-07-28 | pass 1 | 02-kernel-core/TODO-21 §19 (task_exec commit point + kernel-stack reclamation) shipped as [/] (c64bec7c): commit point + infallible isolation remap, non-returning post-commit failures via TASK_EXEC_IMAGE_DESTROYED, kernel-stack reclamation (stack_pending_free), publication moved last under local_irq_save, fork-origin isolation refusal, SYS_EXEC staging-buffer leak. Reviews: design + adversarial x2 + test-coverage + re-adversarial, all received. Held at [/] rather than [x] -- two passes independently showed the section's fault-injection Test checkpoint is unmet (a kernel unit test cannot drive task_exec), so 3 concrete items were filed (ring-3 fault-injection matrix, guard-registry transactionality, staging-release ordering). Earlier in the pass: split §19 -> §19 + §20 and corrected its false "sole cause of red CI" claim (f1c9b979); fixed a CI gate that could not observe its own repair (46b553a3). Rollover REFUSED (operator's TODO-25 edit in tree) -- continued in-session.

  • 2026-07-28 | pass 1 | 00-infrastructure/TODO-04 §20 SHIPPED (3f1410ee) + reviewed (72a4ce3d) as [/] 6/7 items. Split §20 first (6b3510b4): the complexity oracle flagged SPLIT-RECOMMENDED, so three unrelated mechanisms became §20 (site addressing), §21 (fork-child arming), §22 (skip artifacts), §23 (generated exit-status ABI), with a structured waiver for §23. Site-targeted + PMM-countdown fault selectors shipped with per-allocator task-owned arms, per-thread site markers, CAS single-shot claim, fail-closed arming and a FAULT_SITE_QUERY consumed receipt. Codex 16x across design/adversarial/consistency/perf/re-adversarial; 6H+7M+1L fixed, 0 open. Deferred: PEB-site end-to-end probe -> §23; ordinal-selector migration safety -> §21. build OK | 26886 kernel + 16 user-mode | check-abi rc=0 | smoke matrix 4/4 | lint 0 errors.

  • 2026-07-28 | pass 1 | 00-infrastructure/TODO-04 s22 SHIPPED (4bc42f64) + reviewed (4ddfcee7) 7/7 items. Ring-3 harness now self-reports assertions + skip BLOCKS through SYS_TEST_REPORT (48), fail-closed at two gates (atomic single-submission claim, exit-status reconciliation) so a partially skipped binary reaches TAP/JUnit/JSON as PASS-with-N-skips instead of an indistinguishable exit 0. 7 Codex dispatches; the perf leg disproved the section's own zero-release-cost claim (record was unguarded in struct task) and a clean KERNEL_TESTS=off build was needed to confirm the fix. Filed s24 (JSON artifact file + abort-aware summaries) and s25 (non-forgeable record framing, accepted-XREF from the adversarial leg). Next: TODO-04 s23.

  • 2026-07-29 | 00-infrastructure/TODO-04 §24 | shipped: host-side JSON test-results artifact + abort-aware machine summaries (e15b5c3d, review b66ef71a). Found and fixed 3 unclaimed defects: the suite ABORT / TAP Bail out! announcement was UNREACHABLE (phase-0 fast-fail break exits the phase loop) so the host ABORT gate had never fired; the zero-binary path never emitted the host's completion sentinel, so a filtered run under xml=1/json=1 timed out; and every wire record is bounded by klog's 256-byte message field, with the JSON summary already at 242/255 -- run-level data now splits across run_report/summary/run_meta behind a _Static_assert, TAP points format through a bounded fail-closed emitter (a # in a name could forge a directive), and artifact + host-parsed lines moved to klog_unrated. Codex 8x + kernel-quality-auditor + parity. Deferred: §24 live abort path [/] (needs a smoke-failing fixture binary). Filed §27 (artifact consumer completeness: run identity, name bound, CTRF evaluation, output capture, skip-record budget). Also attached first-ever captured evidence for TODO-11 §19's CRITICAL exec_pending/TEB race -- one kvm:2cpu smoke leg halted with has TEB but kernel_gs_base=0, 1 in 3 runs, and re-anchored its 3 stale XREFs. | 2026-07-29 | 00-infrastructure/TODO-04 s25 | shipped: non-forgeable launcher record framing (ffe6202f), reviewed (5375a749). Per-boot nonce in the klog subsystem field frames every launcher record; a disk-sink alias keeps it out of every ring-3-readable log; one canonical parser (scripts/utest-frame.py) replaced three drifted hand copies. 10 Codex dispatches + 2 auditors; 6H+11M+6L fixed. Accepted: sys_write arbitrary-kernel-read -> TODO-10 s31 (new section). Deferred: incremental host parse -> s25 s27. |

  • 2026-07-29 | 00-infrastructure/TODO-04 s26 | shipped: preprocessor-faithful ABI constant extraction (2839a91e, review 719dfb6d). Split s26 first (5c145a59): the atomic header-pair half became s28. Generator now reads kernel constants through clang -dD -E in the kernel's own flag vector and has clang CERTIFY every published value plus every hashed TEB/KUSD offset via generated _Static_assert, across all 12 build-flavor combinations. splice_logical_lines/strip_c_comments deleted. 6 Codex legs, 15 findings fixed, 0 open. Fixtures 39 -> 109; 698/698 tooling, 27043 kernel + 17 user-mode, headers byte-identical, check-abi 0.65s.

  • 2026-07-29 | 00-infrastructure/TODO-04 s27 | shipped: usermode artifact run identity + fail-closed publication (b2c7700d, review 8b357e1e). Split s27 TWICE before implementing -- transport volume to s29, and the name bound to s31 after the design review showed a length bound alone would make a refused test VANISH from both artifacts while the suite reported success (both call sites drop and continue, so it never reaches total_planned). Codex 4x: 3 design findings + 5 adversarial + 4 consistency, 9 fixed, 1 rejected with evidence (concurrent-run race is pre-existing -- fixed TEST_LOG/OVMF paths and shared boot.conf already serialize), 2 filed as new s30. Two fixes were regressions this work introduced: a signalled run exited 0 (green CI over a cancelled run) and the moved CI-parity preflight could exit before artifact invalidation. Also caught that a canonical-copy failure let the exit guard move a refusal OVER a valid leg artifact. CTRF evaluation deferred a SECOND time -- root cause now identified and filed: the R4 headless reroute blocks the researcher agent it reroutes to, so web research is unanswerable in the headless run.

  • 2026-07-29 | TODO-04 §28 (Atomic Publication of the Generated Header Pair) | SHIPPED cd1bf643 + review 77501711 | one generated ABI artifact (abi/generated/abi_contract.h) published at a single os.replace; both former destinations are static text-pinned facades. 20 pre-commit adversarial rounds + post-commit adversarial/consistency/perf + kernel auditor. Deferrals: new §32 filed (H: check-abi gates only all:, so raw make system-disk can build a bootable image against a stale contract). Evidence added to 02-kernel-core/TODO-11 §19 (the kernel_gs_base=0 race is NOT SMP-only: 5 failures in 20 matrix runs, both CPU counts, kvm-only).

  • 2026-07-30 | 00-infrastructure/TODO-04 §30 (Per-Run Artifact Records and Per-Leg Aliases) | SHIPPED 803b6dda + review c535173a | build/test-runs/<run_id>/ is the durable record; the canonical and per-leg pathnames are aliases into it, published only after a committed marker. SPLIT-RECOMMENDED waived with a structured waiver (4 real items, one subsystem, and item 3's concurrency stance gated items 1-2). Concurrent same-tree runs are now an EXPLICIT refusal (flock taken before any shared name is cleared; QEMU launched with the lock fd closed so a SIGKILL orphan cannot wedge it). Codex 9x (design, adversarial, consistency, perf, re-adversarial x5; perf approved clean): 7H+7M fixed, 0 open. The review found three compounding lifecycle defects the implementation review had not: aliases followed the marker ATTEMPT not its success, the JSON harvester bypassed the shared publish path (letting the EXIT guard overwrite a landed record with a refusal), and the leg pair was replaced one file at a time so the first new document sat beside the other format's previous generation. Leg publication is now stage -> checked set-clear -> publish, and every failure resolves to absent or all-previous, never a cross-generation pair. Tests were half the fix: structural greps passed while production was broken, so 6h now drives the real finalizer under fault injection (15 behavioral regressions incl. an mv-instrumented ordering probe that fails on a revert), and the uid-dependent chmod injection that reported PASS when skipped as root was replaced. New §34 filed owning both accepted residuals (orphaned-QEMU recovery; a per-leg generation pointer for readers holding an open descriptor). Evidence added to 02-kernel-core/TODO-11 §19: the kernel_gs_base=0 race fired on a plain kvm run, not just the smoke matrix. Gates: 757/757 tooling, 27037 kernel + 17 user-mode (kvm), 27013 + 17 CI-parity TCG, lint 0 errors, graph 8/8.

  • 2026-07-30 | 00-infrastructure/TODO-04 §31 (The Record Name Bound and the Refusal That Must Be Counted) | SHIPPED 71d5a8bf + review c68e6271 | derived per-formatter name bound (37, min over 6 record kinds), [A-Za-z0-9._-] charset gate, refusal taxonomy published as counted FAILs in a preflight pass; 19 Codex dispatches, 40 findings (11H/24M/5L), 39 fixed 1 accepted; filed §35 (immutable enumeration plan) and 2 §33 follow-ups; also fixed an awk-reads-stdin hang in scripts/lint.sh | 27459 kernel + 17 user-mode PASS, smoke 4/4, tooling 760/760

  • 2026-07-30 | 00-infrastructure/TODO-04 §34 (Orphaned-QEMU Recovery) | SHIPPED 4c3201c2 + review 228b8264/c131e286 | /proc-descriptor orphan detection with pidfd-pinned identity-checked reap (scripts/qemu-orphan.py), kernel-armed parent-death reaping with child-side atomic provenance publication (scripts/pdeathsig.py), fail-closed guard + bounded deadline escalation in scripts/test.sh, qemu_pid/qemu_state in the run-record marker; 89 new host-tooling regressions (876/876). 13 Codex dispatches (design, adversarial x10, consistency, perf), 14H+9M fixed, 1 accepted -> TODO-08 §32 (grammar-accurate shell segmentation, filed with reciprocal XREF). Deferrals: none.

  • 2026-07-31 | 00-infrastructure/TODO-01 (start of pass 1) -> TODO-04 | 0 sections shipped, 1 DEFERRED, file closed | §13 (duplicate run-test/run-debug recipes in the root Makefile) is unreachable unattended: every item resolves to a root-Makefile edit, which receipt_surface_guard.py BLOCKs (Makefile is a receipts.py BUILD_INPUT_PATHS entry, so the run's own receipts are computed over it), and items 2-3 are gated on item 1 because their gates fail against the un-reconciled tree. Defect confirmed live: make --dry-run all emits 4 warnings; run-test at Makefile:1271+1642, run-debug at 1265+1687. Deferred [/] + stamp + reciprocal XREF (86b6e15a), and filed v05 §2 on the classification gap it exposed -- an operator-only deferral is today indistinguishable from a temporal one a later fixpoint pass may clear, and collect-questions.py harvests awaiting-answer only, so the work reaches no human punch-list. Then a sweep-only close-out (95e8c795): the [!IMPORTANT] Current-state block still described the pre-work problem as present fact though §1-§12 had shipped; build.yml line citations re-anchored after an inserted step shifted them; test-tooling 393/393 -> 876/876; test.sh QUIET=1 1534 -> 27546 kernel + 17 user-mode; §6 Notes mis-pointed the legacy-XREF owner at §7 (it is §9) and still called lint.sh "deliberately NOT a CI gate yet". One auditor finding rejected as dated history. Gates: build OK, 27546 kernel + 17 user-mode, tooling 876/876, tooling-doctor HEALTHY 31 checks, lint 0 errors, graph 8/8.

  • 2026-07-31 | 00-infrastructure/TODO-04 §40 (Producer-Side Capture Emission Budget) | SHIPPED 4d97587b + review 9645049f | Split first: the section arrived with 8 open items and a SPLIT-RECOMMENDED verdict, so the three publish-a-fact-on-the-wire items moved verbatim to a new §48 and the four budget items stayed under a structured waiver. The budget is a RECORD budget because the derivation showed a raw-byte cap could not bound the wire (a 1-byte-per-write binary pays a full ~350-byte klog record per raw byte); both budgets are ceiling divisions of a declared raw allowance, asserted at build time and pinned tight by unit test. Verdict, sequence draw, run charge and stop latch are ONE decision under s_capture_budget_lock with emission outside it; a run generation scopes the budget to the framed run; a discard fast path stops a latched writer escaping or locking, so the budget bounds producer COST as well as serial traffic. Host accepts [UTEST-CAPTURE-OVER] as a bounded stop, proven by equalities it can check (owner seq == limit, all run markers agreeing, charged == limit, observed chunks == limit) and reported through its own budget_stop fields rather than the exact-valued truncated pair. Codex 13x + Opus kernel-quality auditor + concurrency-evidence mapper: 22 findings fixed, 3 accepted with XREFs, 1 rejected with evidence. The reviews earned their cost -- they caught a boot-lifetime run counter the kernel's own regressions were charging, a fail-open charged field that let two chunks plus limit=1 charged=0 reconcile green, a zero-limit marker that published an empty testcase as a bounded stop, a wire-cost model that proved a ceiling BELOW the traffic actually emitted, and a plain/atomic data race in my own fast path. New §49 filed for the cross-run fence. Gates: build OK, 27664 kernel + 17 user-mode, 1041/1041 tooling, CI-parity 27640, smoke matrix 4/4 legs, lint 0 errors, graph 8/8.

  • 2026-07-31 | 00-infrastructure/TODO-04 §43 (Aggregate Refusal Identity Kind) | SHIPPED 1168751c + review 7abcf7ef | agg_

2026-08-01 -- 24h canary: pre-registered acceptance criteria

Recorded BEFORE arming, deliberately. A criterion written after the evidence is a rationalisation; these decide whether the repair stop of 2026-07-31 worked. Judge each on measurement, not impression.

  1. Sections ship. >= 8 sections shipped over the run, with zero gate refusals that cannot be explained in one read.
  2. The rotation fires, VISIBLY. grep -c "context-rotation hint" over each segment log is non-zero. A zero means the observability half regressed and every cost number below is untrustworthy. (Before the fix: fired every segment, logged never.)
  3. The rotation ACTS. >= 1 verified rollover-wip mid-section. Before the fix: 0 attempts across every segment of 2026-07-31.
  4. It does not overfire. More than one rotation per section is an ABORT, not a saving.
  5. Cost falls. Per-segment end-of-segment context and cache-read share below the 2026-07-31 baselines (142-335 countable events/segment; 492K-798K context; one segment at $179.27 with cache-read 85.3% of spend). This run either measures the modelled 31-41% saving or kills it.
  6. The clean stop works. The run stops itself at the deadline after a verified rollover -- not mid-section, and not by a human noticing.
  7. Coexistence holds. Every attended repair landed from the repair worktree causes ZERO rollover refusals. (Before: four in one evening, all self-inflicted.)
  8. Research is cited. Researcher dispatches return real citations, not recalled background flagged as uncited.
  9. Green means green. Zero control-plane test assertions that fail once and pass on re-run with no intervening edit.

Abort early on: breaker trip (now stops the run automatically), two consecutive segments shipping nothing (automatic), a rotation loop, or a gate refusal I cannot explain within one read.

Checkpoints: +2h, +8h, +24h, from deterministic reports only (cost-summary.py, metrics-report.py, run-status.py, the failure ledger).

  • 2026-08-01 | 00-infrastructure/TODO-04 section 50 (Per-Child Loader Evidence) | SHIPPED 3dbd281b + review 0760f059 | 5 per-spawn statics moved into a per-task record; frame_adopted at the 3 exec-frame adoption sites + entered_user at ring-3 syscall entry; the never-ran classification now splits the old ambiguous timeout bucket. Review found the section had shipped a kernel that does not build with KERNEL_TESTS=off (3 legs, independently) plus a false rationale for the field itself; 13 Codex dispatches, converged round 7. 4 accepted -> TODO-07 section 3, 1 deferred. 28109 kernel + 17 user-mode PASS, smoke 4/4.
  • 2026-08-02 | 00-infrastructure/TODO-04 section 51 (Reproducible Kernel Assertion Total) | SHIPPED c56c93dd + review bbac4445 | The drifting headline total was unattributable because the runner computed each suite's delta and discarded it; added a per-suite [COUNT] trace behind test_quiet=2 (a value widening, no ABI bump) plus scripts/test-count-stability.sh, which refuses to compare a trace it cannot vouch for. Root-caused by DESIGNED experiment rather than waiting: varying guest RAM found NtGetRandom depending on a kernel stack address landing below MM_USER_PROBE_ADDRESS (passed at 2G, failed at 3G/4G), and a 10-run sweep reproduced the original 6-assertion swing as four AVX2 suites gated on simd_avx2_ok, which a boot-time BENCHMARK clears -- now gated on a new simd_avx2_capable. Three latent defects fell out: five assertions measured records via a SATURATING ring count and so verified nothing once the ring filled; a NULL from the new scan helpers was dereferenced right after a non-returning TEST_ASSERT; and the suite-name key check was wrong twice (a source grep blind to adjacent string literals, then a delimiter ban the right-anchored parser makes unnecessary). 10 Codex legs + Opus kernel audit, 3 fix rounds, converged. 28151 kernel + 17 user-mode PASS, 1169/1169 tooling, 10-run and 4-RAM-size sweeps STABLE, KERNEL_TESTS=off clean. TEB halt DEFERRED with its measurement (0 in 6 SUITE=exec runs, 0 in ~20 full-suite runs, vs ~1-in-3 on 2026-07-31) -> TODO-11 section 28.
  • 2026-08-02 | 00-infrastructure/TODO-04 section 52 (Bind a Leg Pointer to the Record's Own Identity) | SHIPPED f3c753a1 + review a981b5c2 | A per-leg pointer proved it was byte-canonical for the leg its FILENAME names and that the record it named was marker-committed complete, but never that the record was PRODUCED by that leg -- so leg A pinned and (since the lease) durably held B's record, and a consumer resolving A read B's documents. Closed by validating the record's own identity document inside the pin, gated on the marker's inventory. The recurring theme across all five Codex legs was PARSER EQUIVALENCE, and four separate bugs of that one shape fell out: SMP_CPUS=02 published "cpus": 02, which is digits-only to the shell and a parse error to every consumer; an escaped duplicate identity key in a marker was invisible to a literal duplicate loop while a parser took its null; the leg came verbatim from a filename, so an embedded quote-comma sequence reconstructed a duplicate leg key that compared byte-equal; and the alphabet guard that closed THAT was itself disabled by an inherited nocasematch, confirmed by direct probe. Also fixed a producer-side hole the design review found: the Step 0b identity write sat on the left of an && list, which errexit exempts, so a failed write let the run publish a complete record marked identity: null plus a pointer naming it. The validator is positional rather than substring-based because occurrence counting was unsound BOTH ways -- a host named leg would have denied a valid pin. 5 Codex legs, 2 fix rounds, converged; 11 new tooling regressions each with a positive control. 1180/1180 tooling, 28151 kernel + 17 user-mode PASS, lint 0. Accepted -> new sections 60 (aggregate budget for the pin loop under the retention mutex) and 61 (marker validated as a shape; record documents read from one snapshot, ~6.7ms/pointer cheaper). A repaired pre-existing lease regression that failed on a one-second clock knife-edge, and a fourth+fifth occurrence of the build-offload gate false positive, are filed.
  • 2026-08-02 | 00-infrastructure/TODO-04 section 53 (A Directory Occupying a Pointer or Lease Name) | SHIPPED eef02e97 + review 80d201eb | A directory standing where a file belongs was inert to every sweep and fatal to the writer, and the two upstream filters that skipped it (! -type d in the pointer scan, an inline [ -d ] in the lease loop) were both right about the outcome and silent about it. Policy decided and stated once in utest_blocking_dir: REPORT AND KEEP -- not rm -rf, not rmdir (an empty directory the harness did not create is still unknown provenance, and empty is a moment not a property), not refusing the run. Three design-review rounds ran BEFORE any code and each found a real [high]: report-and-keep was a lie on the age-out path (rm -rf of an aged record takes the blocker with it), so a blocking directory now takes an uncapped D retention hold unioned in after the UTEST_LEASE_MAX truncation exactly as the existing U hold is; that hold was then disabled by a cap that was never its own, because the whole classification loop sat inside if [ "$lease_max" -gt 0 ] -- which had been silently disabling the U hold too, one release earlier. The post-commit pipeline found the deepest defect, and it was not in the new code: every retention loop enumerates with an unquoted glob, so AMBIENT SHELL STATE decides what those loops can see. Five inputs measured against one fixture -- noglob 1 blocker -> 0, failglob exits 1 on a healthy no-match, nocaseglob matches B.LEASE, IFS=e splits *.lease into *.l and as (and IFS=. counted 16 unrelated directories), GLOBIGNORE=* suppresses matching entirely -- all normalised in one named routine invoked before anything reads a path, which subsumes the pre-existing shopt -u nocasematch that existed for exactly this class. CDPATH was the same shape one layer up: SCRIPT_DIR did a relative cd, which consults CDPATH and prints the selected directory into the command substitution, so with CDPATH set it came back as ANOTHER TREE's path, twice, newline separated -- and every destructive retention path hangs off the PROJECT derived from it. Corrected the reviewer on two mechanisms with measurement: plain env inheritance arms neither GLOBIGNORE nor IFS (bash imports the variable but the filter activates on assignment; IFS is reset at startup), so BASH_ENV sourcing an assignment is the live vector. 9 Codex legs across 6 rounds (design x3, adversarial x2, test-coverage, consistency, perf, re-adversarial x2), converged. 10 new regressions; L26i executes the REAL FILE PREFIX rather than a line range because textual ordering anchors survive wrapping the call in if false -- mutation-verified against that exact evasion, plus three more mutations each caught by one test. 1190/1190 tooling, 28151 kernel + 17 user-mode PASS, lint 0. Deferred [H] the classify-then-delete race -> new section 62 (detach the age candidate first). Filed: an intermittent clangd leak in the lsp-mcp bridge, 2 in 15 runs, detected during this section but owned by TODO-07 section 20; a sixth occurrence of the build-offload gate false positive and a new one where a green build reports errors: 8 from -Werror in compile command lines.
  • 2026-08-02 | 00-infrastructure/TODO-04 section 54 (A Write Abandoned Before Its First Chunk Ever Reached the Wire) | SHIPPED 358f6183 + review 009c7117 | A write() staging under one chunk emitted NOTHING until its final flush, so a task killed inside the write loop left no record, no wr group and no open group for the host to find -- the payload was gone while the artifact still claimed byte-exactness. The section demanded a MEASUREMENT before choosing a shape, and it decided the design: one suite run emits 1,531 chunk records across 1,427 writes (93.2% single-chunk) at a measured 143.5 bytes/line, 47% of the serial log -- so the reviewer's write-start-record shape costs +93.2% capture traffic and +44% total serial bytes, while per-thread evidence costs two plain stores and emits only on a real abandonment. After the change chunk records and write groups are both UNCHANGED at 1,531/1,427. The section's own ~350-byte estimate was 2.4x over; corrected in place. FOUR design rounds ran before any code and reversed the shape twice, each on a confirmed [high]: a per-task flag cannot hold two threads' concurrent writes; evidence swept at reap is erased by THREAD_FREE slot reuse; a bare generation check is the documented check-then-log TOCTOU, so terminal records go through the claim path under seal+drain instead; and the budget latch stops the whole OWNER, so naming only the write that tripped it strands every peer -- closed by a monotonic stop epoch each write compares against its own arm snapshot. The post-implementation pipeline then found the same defect from two sides, and both restored the masking the section exists to remove: the reap decided CUT-vs-ABANDON from state read AT REAP, but the launcher latches the reap fence BEFORE it kills and a peer can exhaust the budget after a thread already died -- so a lost write could be reported as a deliberate teardown or an intentional cut, both of which the host EXEMPTS. Death reason AND stop epoch are now snapshotted at the death transition; the first snapshot wins guard that was meant to protect exactly that was itself a check-then-store where the LATER store won, now a compare-exchange. Perf proved the design claim untrue of the code -- every ordinary captured write executed a lock cmpxchgb -- so the normal path settles with a plain release store (nothing races it: the only other settler is the off-CPU reap barrier), verified in the object code as movb $0x2 then retq with the exchange only on the exceptional branch. Host side an exemption must now PROVE its cause: a standalone CUT with no validated overflow marker behind it reconciled GREEN, and CUT/fenced-ABANDON had to be forbidden from naming already-finalized writes; conversely the duplicate-abandon rule keyed on (task, thread), which is NOT unique because thread slots are reused, and refused runs that had reported themselves correctly. Death-path coverage was the other systematic gap -- the snapshot is wired into task_exit, task_terminate_remote, thread_exit, task_wrapper's normal return, the direct remote NtTerminateThread path, every fatal signal_default_action, and task_cleanup for EVERY thread including thread 0, which is where an ordinary test binary actually writes. 7 Codex legs (design x4, adversarial x2, consistency, perf) + Opus kernel audit + concurrency inventory; 7H+6M+4L fixed, 0 open. The epoch comparison direction is mutation-verified (inverting > to >= fails its test). 1201/1201 tooling, 28171 kernel + 17 user-mode PASS, lint 0. A seventh occurrence of the build-offload gate false positive is filed, in a new shape (wrapper credited, then a trailing redirect and ;-joined tail defeats it).
  • 2026-08-02 | 00-infrastructure/TODO-04 §55 (klog-ring window assertions) | SHIPPED 48d17008 (swept into an attended control-plane commit -- see improvements v07 finding 12) + review e9a08919 | 3/4 items, 1 deferred to 02-kernel-core/TODO-04 §16 | 13 Codex dispatches, 3H+15M+7L fixed | the saturation filler was withdrawn on measurement (367 lines / 1.09 s guest / ~8.8 s at 38400 baud, and it evicts unflushed entries on SLOW media); wrap indexing mutation-verified on a 5-slot fixture because 4 divides 2^32 | also repaired §54's unflipped IO row and filed §16 in the logging TODO

2026-08-02 -- 24h canary VERDICT (ran 34.4h, stopped early by operator choice)

Measured, against the criteria pre-registered before arming. 12 segments, 2026-08-01 00:05 -> 2026-08-02 10:30.

# criterion verdict evidence
1 >= 8 sections ship, no unexplained refusals PASS 36 run commits, 16 verified rollovers, 0 REFUSED
2 rotation fires VISIBLY PASS (new) 65 records in advisories.jsonl; was 0 in every prior canary
3 rotation ACTS (>= 1 rollover-wip) FAIL 0 attempts in 12 segments
4 does not overfire PASS, with a caveat no rotation occurred; but 65 hints / 12 segments is the re-nudge firing ~5x per segment against an action that never happens
5 cost falls vs baseline NOT MEASURED nothing rotated, so there is no rotating segment to compare
6 clean stop at the deadline NOT EXERCISED we exited early by choice; the deadline machinery never fired
7 attended repairs cause 0 rollover refusals PASS many attended pushes across the run, 0 refusals
8 researcher dispatches return citations PASS 0 R4 blocks; detection succeeded positively, the valve never needed to fire
9 green means green PASS no assertion failed once and passed on re-run

Criterion 3 is the honest headline. The rotation is now observable and still does not act. Three rounds have adjusted or repaired this feature and the THRESHOLD was innocent every time (200 mis-derived, 90 correct, then a transport defect, then a contradicting message). The remaining hypothesis is not a defect at all: segments now run 142-335 countable events where the feature was justified by 334-768, so the runway after the hint is often too short to be worth a relaunch, and the run's own escape ("if the next action is the ship, skip") correctly declines. Before touching the number a FOURTH time, measure whether a rotation saves anything at current segment lengths.

What the run proved instead, and it is worth more than the rotation: the ship-sequence fix held for 16 consecutive rollovers with zero refusals, the R4 identity repair worked on first contact, and the coexistence work let an operator repair the control plane through the whole run. The one sweep that did occur exposed its true root cause -- a bare git commit --amend in the post-commit hook, widening every path-limited commit in the repo.

  • 2026-08-02 | 00-infrastructure/TODO-04 §56 (fork publication interlocked with the capture-tree reap) | SHIPPED 05db7997 + review e673f5ad | 2 items parked with named blockers (boot-poisoning policy call; abort cause into JUnit/JSON, §36 owns) | 8 Codex dispatches, 9H+3M+6L fixed, one recommendation pushed back with bisect evidence (gating the kill rounds hangs the boot) | 28257 kernel + 17 user-mode, 1205/1205 tooling, smoke matrix 4/4
  • 2026-08-03 | 00-infrastructure/TODO-04 FILE CLOSE (User-Mode Test Framework, 63 sections) | CLOSED 233634b4 | the file had never had a closure pass, so ## Verification still carried its 2026-04-23 numbers -- 2184 kernel + 16 user-mode against a measured 28326 + 17 on KVM and 28300 + 17 under FORCE_TCG=1, a four-month, ~26,000-test drift in a block whose entire job is to state what passes. Deterministic enumerators came back clean (todo-hygiene 0, todo-graph 8/8, triage all-DONE, stranded_deferrals.py 0 for this file), so the residue was exactly the fuzzy class they leave behind. 11 Accepted/Deferred stamps whose XREF target had since shipped were annotated (RESOLVED ... by section N commit <hash>); one was deliberately NOT called resolved -- its target shipped but the accepted limitation (an already-open descriptor is unrevocable at the writer) still stands, and marking it resolved would have converted "the referenced work landed" into "the hazard went away". One stamp pointed at the wrong section for an item that lives two sections later. Six source citations had drifted as the file grew: the HAS_UTEST frame gate is at test.sh:4973 not :3769/:3788 (both of which are now unrelated comments), the TOTAL_FAIL fold at :5895 not :4397, and four self-file XREF anchors pointed at a blank line, at prose, or at their own stamp line. Doc-sync found scripts/debug/usermode/README.md describing the directory as empty future-work and claiming no boot flag could run the launcher alone -- the build-integration section shipped exactly that, and the file contradicted itself (said the aggregate bat was removed, then told you to run it); rewritten around the real test_kernel_skip/test_usermode_skip/utest_filter fields. Added run-test_forge.bat, the only one of 17 shipped binaries with no per-binary runner. Rejected 2 agent findings (ownerless parks) on the repo's own oracle: stranded_deferrals.py flags none in this file. Verified: build OK, 28326 + 17 KVM, 28300 + 17 TCG, smoke PASSED (boot 3.280s), lint 0 errors, todo-graph 8/8. GAP FOUND: the last six sections shipped with NO run-log entry at all, and commit 6e5a5a12 announces a run-log entry in its subject while its diff touches only COUNT.md and the v08 capture file -- filed to improvements v08.
  • 2026-08-04 | 00-infrastructure/TODO-07 §20 (reap determinism + leak attribution for the bridge's language servers) | SHIPPED ce4a798c + review 1c2155f8 | the section's own premise was DISPROVEN: filed as "the bridge intermittently leaks the clangd it started", it does not and never did. Reproduced under a per-second sampler recording pid/ppid/ownership -- 2 failures in 6 clean runs, ZERO harness-owned servers outliving any of them. Sub-test 9a was blaming processes the harness never started, three ways, each caught with a named pid: a node codex-companion.mjs review process (1373355) matched because pgrep -f matches command-line TEXT and the review prompt quoted the string "clangd-19"; a foreign clangd (1374170, no stamp, parent 1374079) lived across four consecutive runs and was blamed on whichever one its start time landed in; and an already-exiting process (1390938) never appeared in a single one-second sample. Section renamed rather than closed -- the symptom was real, the accused was not. The reap gap the filing suspected was real but elsewhere: bridge.py claimed an "mcp-janitor SIGTERM handler" that existed nowhere, so signal death bypassed both the finally and atexit and the reap depended on clangd noticing stdin EOF. 26 Codex dispatches (design, adversarial x23, consistency, perf); every finding reproduced before and after. The expensive ones: cleanup ran in the signal handler's own frame and deadlocked against _init_lock when a signal landed during initialize() (reproduced wedged 8s after SIGTERM with the child leaked); a bare PID is not an identity, so records are pidfd-pinned, every signal fails closed without one, and no path calls killpg; the sweep became three passes after a small budget was spent scanning for one server while the rest survived; liveness and ownership had to become thread-group-aware because a pthread_exit leader sits in Z with environ answering EACCES while its worker runs. Two containment mechanisms rejected WITH measurement, not preference: PR_SET_PDEATHSIG fires on the spawning THREAD exiting and warm-start spawns from worker threads that exit immediately; blocking signals around the spawn leaves the mask INHERITED (SigBlk 0x4003), which would leave clangd ignoring our own SIGTERM. The sharpest self-inflicted bug: sweeping on the inheritable LSP_BRIDGE_RUN_ID made "ours" mean "anything in the harness tree", so a bridge exiting normally SIGKILLed its siblings -- seven sub-tests failed at once and attribution and ownership are now separate identities. Post-commit review then found a DATA-LOSS bug the whole chain had missed: _diag re-opened /proc/self/fd/2 without O_APPEND, overwriting a regular-file stderr log (reproduced). Proof is a test, not a rate: 9b kills an EOF-immune child with TERM/INT/HUP at six barriers plus storm, spawn-race with and without pidfd, each mutation-checked; 9c proves the detector was scoped rather than blinded and fails the suite if os.killpg reappears. Rate arms on the same busy host: 2/6 before, 0/12 after. 3 findings accepted into a new §21 with concrete items + reciprocal XREF. Verified: 101/101 test_bridge.sh, 1282/1282 tooling, BUILD OK, 28326 kernel + 17 user-mode, lint 0 errors.
  • 2026-08-04 | 00-infrastructure/TODO-07 §21 (thread-group edge cases in the language-server reap) | SHIPPED 69f1081d + review 5b1ebb7f | harness coverage only, by the section's own scope boundary -- §20's task-aware fixes shipped without a regression net, and three of its late review rounds had verified the shape by hand. Added 9b modes threadleader (recorded) and threadleader_unrecorded (owner-stamped, own session, never recorded), 9d the shutdown budget through the SIGNAL path plus the saturated-stderr variant, 9e the deadline-ALLOCATION family with the settle wait / _shutdown_bounded graceful join / atexit graceful join each wedged in turn, and 9f the two predicates pinned directly including the task-list race no live shape can produce. The mutation checkpoint corrected a claim the section had inherited: only the UNRECORDED mode discriminates the task-aware reads, because force_kill_spawned pass 1 signals a recorded pid through its pinned record and consults neither _is_zombie nor _carries_our_owner_id -- both mutations fail 9f and the unrecorded mode while the recorded one stays green. 14 Codex dispatches (design, adversarial x11, consistency x2, perf), 1H+9M+2L fixed, 0 open, all three legs closing on "approve, no material findings". Eleven adversarial rounds converged on ONE defect class, and it was in the harness rather than the code under test: fail-open paths where a broken fixture was indistinguishable from an unsupported host. Every one was injection-verified in BOTH directions rather than argued. A skipped fixture is no longer a pass (exit 77, a skip list, and the skip count on the summary LINE -- test-tooling.sh greps only that line, so a green aggregate could otherwise stand for coverage that never ran); saturate_stderr and both libc probes now split absence from breakage, so only an absent /proc/self/fd or a non-glibc libc.so.6 skips while an EACCES probe, an unloadable present libc, a write error, or 32 MiB without EAGAIN all FAIL; precondition failures collect their children BEFORE the marker reporting them becomes observable, and report whether collection was confirmed; 9d asserts the signal was delivered and that the driver died BY it (128+signum), mirroring 9b, where it could previously pass over a driver that exited on its own. The [high]: lsp_9b_cleanup was sending kill -9 to a bare pid accumulated across a whole sub-test, and the round-9 fix had bound only ONE of the call sites -- every record now carries its /proc start ticks, captured by the tracker itself, and identity is re-verified immediately before each signal, failing closed. The coverage preamble also turned out to be missing 15a-15k and 18a-18e; a mechanical tag comparison now reports 104 index tags against 104 run-block tags. Repaired three XREF line anchors left stale by the same-day §21/§22 split. Verified: 104/104 test_bridge.sh, 1282/1282 tooling, BUILD OK, 28326 kernel + 17 user-mode, lint 0 errors.
  • 2026-08-04 | 00-infrastructure/TODO-07 §22 (single-owner pidfd, one-snapshot sweep, stricter ledger reader) | SHIPPED 7f23f57a + review 31e795a2 | Three defects raised and ACCEPTED during §20's review rounds, each carried forward with a named fix shape rather than as coverage debt. (1) Signalling a recorded child is by DESCRIPTOR, not by number: _borrow_pidfd hands out a private os.dup of the record's own pidfd, race-safe by ORDERING rather than a lock the dying-process path could not take -- _retire_spawn removes before it closes, so a record still present after the dup proves the dup saw the recorded descriptor. Records became objects rather than tuples because by VALUE that test was an ABA hole: a replacement handed the same pid, tick and fd number produces an equal tuple. Every spawn stamps LSP_BRIDGE_GEN and the group sweep requires it -- without it, old-instance cleanup found the REPLACEMENT in what it believed was its own process group and killed it. Under FD exhaustion the sweep CLAIMS the record instead, transferring ownership of the original descriptor: the one operation needing no new descriptor. (2) The per-leader group sweep and the stamp-wide pass collapsed into one repeat-until-two-empty-scans loop over a single _proc_snapshot(), since _group_members(pgid) is a strict SUBSET of _stamped_processes -- the two passes asked the same question at the price of a walk per record per round plus three reads of each stat file. Ownership is tri-state and cached only when authoritative, so a transient unreadable probe is re-asked rather than silently suppressing a live child, and a pid whose stat cannot be read is KEPT with None fields (dropping it removed owner-stamped descendants from the only broad sweep there is). An owner-based /proc pre-filter was written and REMOVED: the kernel reassigns that directory to root on PR_SET_DUMPABLE(0) or a setuid exec, so it disowned exactly the hardened child that most needs reaping. (3) The ledger reader now reports what it cannot verify -- ONE descriptor O_NOFOLLOW, regular-file confirmed by fstat on that same fd, at most cap+1 bytes, because the path is exported to every spawned server and can be swapped for a FIFO between a size check and a read; it FAILS on parse-error and unverifiable rows rather than returning the host-cannot-build-a-fixture skip. | design + test-coverage + 14 adversarial rounds closing on "approve, no material findings"; 8H+11M fixed, 0 open; 3 recommendations rejected with evidence and 3 accepted into a new §23 with reciprocal XREFs (the two bare-PID os.kill fallbacks need the python3 floor raised or a ctypes pidfd_open -- an operator decision) | new sub-tests 9g-9k, twenty-two mutations applied and each caught by its own assertion; four fixture weaknesses the mutation pass exposed were repaired rather than papered over | Verified: 109/109 test_bridge.sh, 1282/1282 tooling, BUILD OK, 28326 kernel + 17 user-mode, lint 0 errors
  • 2026-08-05 | 00-infrastructure/TODO-07 §23 (injected-clock deadline coverage + the non-dumpable-child reap blind spot) | SHIPPED df01fc5114 + review e342e3af | §23 arrived carrying six items across two unrelated concerns and classified SPLIT-RECOMMENDED, so it was SPLIT first (56a4f238): the identity/determinism cluster stayed, the publish-gate and procfs-pass collapses moved to a new §24. (1) The reap's clock is an explicit _Clock PARAMETER, not a module global -- a global would put two clock domains in one call, since reap_all_live hands a derived budget to real-time LspSubprocess.shutdown() and _atexit_kill_all derives a Thread.join timeout the same way, so a scripted clock left installed at interpreter exit turns the 2s atexit bound into an arbitrary real join. Sub-test 9l expires the clock at exactly one transition per case and every one of the five break points is mutation-verified to fail 9l by its own message; the end-of-round check initially survived because the loop head stopped the sweep one statement later for the same visible outcome, so 9l also asserts no inter-round sleep. (2) A PR_SET_DUMPABLE(0) descendant answers None to the owner stamp forever, so ownership gained a second signal: _OWNED_SESSIONS maps a spawned session id to the leader's _SpawnRecord, and _session_marks_ours proves that leader ALIVE by sending signal 0 through a dup of its own pidfd. A start-ticks comparison was written twice -- once for the session, once for a frozen capture set -- and rejected both times on the file's own measurement of 32 spawns sharing seven tick values; 9m pins it by forcing every tick read to the recorded value and asserting the answer stays False. Because the live proof cannot span the sweep (the reader thread reaps a killed leader and its pidfd then answers ESRCH), force_kill_spawned gained a PASS 0 that signals proven-owned descendants through handles opened while the proof holds, BEFORE pass 1 touches any leader, excluding the leaders themselves and holding ONE proof handle across the target open. (3) Destructive signalling no longer names a target by NUMBER: the os.kill fallbacks were justified by the repo-wide python3 3.8 floor, but lsp_client.py declares "Stdlib-only (Python 3.10+)" in its own header, so the configuration they protected cannot meet the module's documented runtime. Both sites refuse, count and report; LSP_BRIDGE_ALLOW_PID_SIGNAL=1 is the named opt-in; a ctypes syscall shim was designed and rejected for keeping the by-number path reachable on any other pidfd_open failure and guessing syscall numbers off-allowlist. A two-slot lock-free descriptor reserve backs both pidfd_open and the os.dup in _borrow_pidfd, because refusing is only safe while the descriptor path stays reachable. | design + 10 implementation adversarial rounds + the post-commit adversarial/consistency/perf trio; 39 findings, 29 fixed, 8 deferred with concrete owners, 1 rejected with evidence, 1 recorded as an unreproduced harness observation | new sub-tests 9l/9m/9n; eight mutations applied, and THREE tests that passed against their mutant were rewritten rather than kept -- the leader-exclusion case had emptied _SPAWNED so pass 0 never ran, another asserted over the whole sweep instead of its own phase, and two fixtures lacked the owner stamp every real spawn carries | Deferred, each naming its blocker: the spawn-publication window (needs process-wide signal blocking plus sigwait -- a pthread_sigmask was implemented and REMOVED, since it masks only the calling thread while CPython still runs the handler on main), a hardened descendant whose leader already exited or which called setsid (needs a delegated cgroup), and pass 0 walking /proc ahead of pass 2 (owned by §24's one-snapshot collapse, filed with reciprocal XREFs) | Verified: 112/112 test_bridge.sh, 0 write-capable methods, 1287/1287 tooling, BUILD OK, 28326 kernel + 17 user-mode, SMOKE TEST PASSED, lint 0 errors
  • 2026-08-05 | 00-infrastructure/TODO-07 §24 (single-pass procfs cleanup in the teardown sweep) | SHIPPED ca2dafa560 + review c0ad3d65 | §24 arrived as the five-item remainder of §23's split, classified SPLIT-RECOMMENDED again, and was split a second time (73870928): the three walk-economy items stayed, the restart-publish confirmed-dead gate and the single-flight serialisation of the four teardown entry points moved to a new §25 with reciprocal XREFs. (1) The owner and generation stamps now come from ONE environment traversal -- _read_env_markers reads the leader environ, falls back to a single task walk, and answers both markers -- because asking _carries_our_owner_id and _carries_gen_id separately read the same file twice in the group pre-filter and twice more in the post-pidfd recheck, so an unstamped many-threaded candidate paid four full task walks against a teardown budget. The design review caught the merge's one real hazard before any code was written: a walk truncated by the deadline must answer None PER MARKER even when an earlier task was readable, because collapsing it to False stops _provably_ours reaching the session continuity §23 added and a dead-leader/live-worker child then survives under exactly the load that truncated the walk. (2) _reap_group reports (killed, emptied) and _group_is_empty is deleted -- shutdown's post-death collection had alternated a full-walk emptiness question with a reap that ran its own bounded loop of walks, nesting walks inside walks for a question the reap already answered. The deleted preflight's deadline rule had to move WITH the verdict: an empty result on an expired budget is incomplete, not empty, or emptied authorizes a retirement over descendants the scan never reached. (3) THE STRUCTURAL FINDING, and the section's real content: the session scan and the stamped scan cannot share a fixpoint. The session scan is conclusive only while the recorded leaders live -- their liveness is what stops the kernel recycling the session number -- and the stamped scan only once they are dead, because a leader can fork an owner-stamped helper on its way out that no pre-leader snapshot contains. A single merged loop was implemented, reviewed, and produced THREE separate holes from pretending otherwise: a pre-leader empty scan plus one stale one reached the two-empty bound; a mid-sweep session retirement took the same shortcut without resetting the count; and a session fixpoint landing on round 19 or 20 exited past the drain entirely, leaving ZERO post-leader scans. force_kill_spawned is now two explicit phases at one /proc walk per round -- phase A drives the session fixpoint and SHARES its round with the stamped scan (sharing is the point: a detached owner-stamped helper must not wait for the session fixpoint to be considered at all) but its stamped results never count toward phase B, and every exit from phase A funnels through one leader signal and on into phase B. | design + adversarial + test-coverage + the post-commit adversarial/consistency/perf trio + re-adversarial (7 dispatches); 8H+6M fixed, 0 open, 3 rejected with code evidence -- deadline-gating the leader signal was shown by git show ca2dafa5^ to be pre-existing rather than a regression, and gating it reintroduces the documented High where a small budget was spent entirely on the first record | 9i moved off a walk-count constant to walks == rounds on a production _record_spawn record owning a session, new 9o forks an opaque PR_SET_DUMPABLE(0) descendant from inside the FIRST enumeration, and 9k gained the merged reader's shape table, the markers cache table, the two-scan _reap_group boundary and the unconditional leader-fire fallback | six mutations applied and caught by name; one (caching a negative marker) turned out INERT rather than caught, because the read path only trusts is True -- recorded as such instead of counted as coverage | every retired PASS 0/1/2 label removed from identity-sensitive SIGKILL code, and the _carries_our_owner_id docstring rewritten: it still claimed None and False were interchangeable to callers, which §23 made false | Verified: 113/113 test_bridge.sh, 0 write-capable methods, 1287/1287 tooling, BUILD OK, 28326 kernel + 17 user-mode, SMOKE TEST PASSED, lint 0 errors
  • 2026-08-05 | 00-infrastructure/TODO-07 §25 | 1 section shipped (restart-publish confirmed-dead gate + single-flight teardown) | 4 findings accepted with filed items, 1 deferred to §23 sigwait | 11 Codex dispatches, 21 mutations verified | 115/115 bridge, 1287/1287 tooling, 28326 kernel, build OK, lint 0
  • 2026-08-05 | 00-infrastructure/TODO-07 §26 (teardown verdict propagation + a non-reaping liveness probe) | SHIPPED 9d635e79 + review b093ab69 | §26 was FILED this pass, not found: §25 had shipped with three accepted findings sitting as bare - [ ] items inside a section carrying both Verified and Deferred stamps, where the oracle never reads and nothing would ever have revisited them. They were not blocked -- each carried a concrete fix shape from the review that raised it -- so parking them would have manufactured a false park; they got a real owner instead. (1) Descendants-before-leader-reap became STRUCTURAL: _pidfd_exited answers from a pidfd without collecting, and _escalate_recorded derives death from the descriptor it already holds. The probe and _leader_alive are deliberately different questions -- a pidfd stays readable after the reap, _leader_alive raises ESRCH only once reaped -- and if they agreed §23's authorization would mean nothing. Replacing the teardown polls was NOT sufficient, caught by design review before any code: the READER thread polled independently on exactly the crash path §25's restart gate protects. select.poll, never select.select, which raises above FD_SETSIZE precisely under the descriptor pressure this path exists for. (2) The recorded-leader pass took neither option the item offered -- deadline-checking each iteration reinstates §22's documented failure and report-only protects nothing, since the watchdog and signal path discard the verdict and os._exit regardless -- but FAIR SHARE, remaining / records_left for the expensive probe, which keeps §22's requirement and restores the bound it lost. (3) ReapCount carries unconfirmed instances out of reap_all_live; _shutdown_all_lsps returns its own set, mattering because it empties _LIVE_LSPS BEFORE reaping. | The section's own three items converged early; what kept generating findings was adjacent work. Making the reader non-reaping introduced zombie retention, and the collector closing it went through THREE shapes: a Semaphore + bounded list + re-entering drain (queue-full dropped it, the handoff released the claim before knowing the reschedule started, the re-entry's failure was unobservable), then a weakref queue + worker dispatcher (a failed Thread.start() with no worker running stranded the queue until an unrelated later crash), then INLINE on the reader thread -- smaller than both, and it cannot lose a submission because nothing is queued. Two rounds were spent owning durability for a handoff that did not need to exist. | Also fixed: _shutdown_bounded returned a plain int when the sweep RAISED and the watchdog's getattr(..., "completed", True) read that as SUCCESS before os._exit -- fail-open in exactly the failure it reports; reap_all_live's deadline path extended the whole WeakSet instead of the unvisited suffix, reclassifying instances it had just proven dead. | 9 Codex dispatches (design, adversarial x2, test-coverage, consistency, perf, re-adversarial x3); 22 findings, 20 fixed, 1 accepted with the contract stated in code, 1 deferred | 23 mutations applied and every one caught by name -- three of them first exposed WEAK TESTS OF MINE: 9r drove a private helper instead of the reader, the fair-share assertion could not distinguish the shape it named, and the drain test called the helper rather than the wiring | Deferred to a new §27: a completed descriptor claim is a THIRD record state one boolean cannot express; marking it retired was implemented and REVERTED because it let the next _leader_exited reap before descendant collection and publish beside a survivor -- the shipped residual is the milder one (alive reports live, force sweep collects at teardown) | §26 called itself terminal for the §20-25 cluster when filed; that did not survive implementation and the preamble now says so | Verified: 118/118 test_bridge.sh, 0 write-capable methods, 1287/1287 tooling, BUILD OK, 28326 kernel + 17 user-mode, lint 0 errors
  • 2026-08-05 | 00-infrastructure/TODO-07 ADVANCE + deferred-shape drain | TODO-07 closed out at file level (all 26 sections DONE; §27 folded back into §26 per the operator scope boundary, af5a3efc) and its one open-in-deferred item repaired: §19's trigger-watcher is a STANDING task, not a park, so it took the standing: marker rather than a manufactured - [/] blocker -- the exact case the reachability gate would otherwise refuse fixpoint on forever. Drained one DONE-classed file per the ADVANCE rule, smallest first: TODO-06 §9 carried a lone - [ ] inside a Verified + Quality-reviewed + Deferred section, where nothing reads. Judged per-item rather than bulk-flipped, and the judgment inverted the obvious move: the item's OWN stated blocker ("delegate to mcp__lsp-bridge__definition once TODO-07 lsp-bridge is generally available") had CLEARED when TODO-07 shipped that tool, so parking it would have manufactured a false park on work that is now actionable. Reopened as a real §10 instead -- IO-table ROW plus body (a body-only filing leaves the file classified DONE and invisible, the measured 2026-08-02 failure), - [/] in §9 pointing at §10, §10 stating what it does NOT re-cover, and both Deferred-stamp XREFs repointed. Cache rebuilt: TODO-06 flips DONE -> NEEDS_WORK with §10 listed open, so the reclassification is real rather than asserted. Reachability now clean for both files. todo-graph 8/8.
  • 2026-08-06 | 00-infrastructure/TODO-06 §10 (split function-head resolution in resolve_symbol) | SHIPPED cc05f2e909 + review 5c421b51 | The run's FIRST act was a CI repair, not section work: preflight refused with Build Impossible OS red at fbf64278, failing on test_build.sh 112/114. Root cause was a channel conflation, not a logic bug -- check_stub_behind_stamp.py prints FINDINGS on stdout and its new coverage line on stderr, deliberately, while sub-tests 14c/14d captured 2>&1 and asserted the merged output was empty. Fixed at the test (0ae80bb4); the gate gap that let it ship is filed in overnight-runner-improvements-v10, since scripts/test-tooling.sh is invoked from exactly one place in the repo (.github/workflows/build.yml:116) and no local hook runs it. | §10 itself had shipped once before and been REVERTED (5cff59cc) for taking Check 7 coverage from 52/186 to 1/186 while 115/115 tests and its own mutation-checked fixtures passed, so the design was constrained to be ADDITIVE: pass 1 is the unchanged single-line scan returning immediately on success, pass 2 runs only when it returns None, and a coverage drop is impossible by construction rather than by assertion. Acceptance was the LIVE CORPUS via a new corpus_resolution_snapshot.py that pins every stamped ref to its exact (path, start, end) and fails on a LOST or MOVED mapping -- the resolved COUNT cannot see a wrong new resolution offsetting a lost one, which is the hole the reverted attempt fell through. Result 55 -> 57, 0 lost, 0 moved, 2 added, both ground-truthed by hand; a corpus sweep now finds ZERO genuine split-head definitions still unresolved. | 8 Codex dispatches (design, adversarial x2, review-adversarial, consistency, perf, re-adversarial, perf re-review); 4H+12M fixed, 1 rejected with evidence, 2 deferred with concrete XREFs. The adversarial and consistency legs independently reported three defects that were ONE root cause -- three hand-written per-line comment strippers -- replaced by a single _iter_code_chars() lexer so the resolver and the classifier agree about where a body starts by construction. Most serious find was a QUADRATIC lead regex (^\s*\*?\s*, two whitespace quantifiers around an optional atom): 0.38s at 20k characters, 3.09s at 60k, reachable via a masked comment line, so one long generated comment could have hung the commit-time lint. | Perf leg measured a real 7.1x regression (+420ms/commit) and it was fixed twice: a per-file candidate index was built, PROFILED at 0.210s of a 0.36s walk, and discarded for a substring pre-filter. Final paired benchmark +1.6ms/+1.9% here, +13ms/+17% on the reviewer's host -- both recorded rather than picking the flattering number. | REJECTED: backslash-newline splicing reported as a regression does not reproduce (parent and current resolvers both return None; corpus gate 0 lost/0 moved), filed as a real lexer limitation instead of dismissed. | Filed to §11, which owns coverage: 35 refs unresolved solely because their definition sits past _DEF_HEAD_LIMIT=512 (kmalloc, schedule, +33) is now the largest resolvable class, and §11's recorded "78 declaration-only" does not reproduce (19 by the resolver's own rule) so that item is marked re-measure-first. | Verified: test_build.sh 145/145, test-tooling.sh 1287/1287, BUILD OK, 28326 kernel + 17 user-mode, SMOKE TEST PASSED (boot 2.640s), lint 0 errors, Check 7 rc 0 at 57/189
  • 2026-08-06 | audit-trail backfill (operator commits, not run work) | 53873fe717 and 15dc68d556 are attended format-md-tables repairs landed before this run was armed (display-width padding, emoji width, escaped-pipe preservation, then the width-cap revert). Logged here only so the run-log gate's ship-hash check has an entry for them; the run neither authored nor reviewed them.
  • 2026-08-06 | 00-infrastructure/TODO-06 §11 (Check 7 counts what it cannot resolve) + §12 filed | SHIPPED 08b96744 + review 370d5f33 | Opened with a CI repair again, but a DIFFERENT one: the test_build.sh 112/114 failure §10 fixed was already green, and ci-check.py still reported ours_red because build.yml sets cancel-in-progress and every run since had ended cancelled -- ci_status.py:98 builds its supersede evidence from conclusion == success only, so a fixed red can never clear while the runner pushes once per section (last 100 build.yml runs: 75 cancelled, 5 failure, 20 success). Filed to overnight-runner-improvements-v10. Investigating it surfaced a REAL second defect the stale flag was hiding: the Build Impossible OS job carried timeout-minutes: 15 as a runaway backstop and had been riding the wall -- last green run 14m52s, eight seconds of margin -- until run 31056543625 passed EVERY step and had Stale-ABI fixtures cancelled at 13m10s needing ~2m56s. Raised to 25 (cd99fc24); nothing was widened, the budget was outgrown. | §11 was SPLIT before implementation on the predictor's verdict (7 open items), the same way §11 itself was split out of §10: §11 keeps the REPORTING contract (noisy-gate risk), new §12 takes resolver accuracy (corpus-correctness risk). Mixing them puts two failure modes behind one review. The lsp-bridge item was parked - [/] operator-gated -- an unattended run may not add a clangd dependency to the commit-time lint. | The section's own finding is that Check 7's resolved=57/189 described NO population: resolved_n counted occurrences and the value it was added to had been through sorted(set(...)), and four bare continue paths discarded refs before any counting. The denominator was fail-open at TWO levels and the second was MINE -- design review found 503 paired refs counted as 189 (246 nonexistent file, 63 non-C, 1 escape), then the adversarial leg found occurrences incremented AFTER the pairing check inside my own fix, hiding a further 1,122 refs that name a symbol with no file. Population is now the full 1,625 kind=symbol set and main returns rc 6 rather than publish a ratio whose buckets do not sum. Bucket names state EVIDENCE, not cause: a call site carries symbol( while the definition lives elsewhere (test_alpc.c only calls kmalloc_fail_next, defined heap.c:499), so ABSENT/UNRESOLVED would have mislabelled much of both buckets. | Baseline handling REVERSES this section's own earlier warn-only choice: it protected a bootstrap case that cannot occur for a tracked file, while actually buying a silent unrecorded bypass of the only gate that sees the resolver going blind. Now rc 8, with STUB_LINT_ALLOW_NO_BASELINE=1 as the announced escape. | 9 Codex findings (2H+5M+2L); the blocking one was PERF and it was mine: per-symbol full-file scans took Check 7 from 147.4ms to 828.6ms, 5.62x on a check that runs in the pre-commit hook for every contributor on every commit. Confirmed by independent paired measurement (reviewer measured 5.43x) after my FIRST baseline probe was invalid -- REPO_ROOT = parents[2] meant a /tmp copy resolved to /, failed its import and exited at 28ms, which would have read as a 32x regression. Fixed by caching the stripped text per FILE (it is symbol-independent), replacing the character loop with one C-level regex, and pre-filtering on cached raw text: 152.0ms -> 253.4ms, 1.67x / +101ms, bucket counts byte-identical at every step. | Mutation testing caught a WEAK TEST OF MINE: the population fixture asserted an unpaired-ref= key exists, which survives reintroducing the bug (the key stays, at 0); it now derives the expected count from the cache and fails at 503 != 1625. Also fixed: the mutation fixtures rewrote the TRACKED baseline and relied on finally, so a SIGKILL or timeout could leave the repo floor corrupt (blocking every commit) or artificially low (weakening the gate they guard) -- added STUB_LINT_BASELINE plus a fixture asserting the tracked file is byte-identical after the battery. UnicodeDecodeError is a ValueError not an OSError, so invalid UTF-8 escaped as undocumented rc 1. | Filed to §12 with concrete items and reciprocal XREFs, in measured size order rather than discovery order: 1,122 unpaired refs (69% of the population), 246 bare-filename refs (224 have a unique basename in the tree), and wiring the EXISTING corpus_resolution_snapshot.py identity gate, which already pins identities but is run by nothing -- the scalar floor cannot see a lost identity another occurrence offsets. The head-limit item that once looked like the biggest prize is 35 refs against 1,368. | Verified: lint 0 errors, 17 coverage fixtures PASS, test_build 146/146, tooling 1287/1287, BUILD OK, 28326 kernel + 17 user-mode
  • 2026-08-06 | 00-infrastructure/TODO-06 §12 (resolver coverage past the head limit + lexer/cache robustness) | SHIPPED d41701b3 + review 2de3946f | Head-limit widened (+35), file-line cache moved to fstat-based generation pinning with mutation detection, arbitrary-hop backslash-newline splice handling in both the character scanner and the regex span index, new follow_declaration() (header decl -> repo-convention sibling .c, basename-unique + non-static, +18/20 of the decl-only class), is_stub_body fixed for multi-line comments and two-line bodies. Check 7 floor raised 57 -> 111 of 1625; corpus_resolution_snapshot.py proves 0 lost / 0 moved / 54 added, every addition hand-verified. 13 Codex adversarial rounds across implementation + post-commit review (design x3, adversarial x2, re-adversarial x7, consistency, perf): fixed a genuine identity-coverage gap (snapshot didn't cover follow_declaration), a @lru_cache-masks-mutation bug caught by this section's own fixture, a byte-ceiling TOCTOU race, five successive static-linkage-lookback gaps (append-order, window bound too narrow, blank-line termination, preprocessor-conditional, standalone-attribute, marker lexical-independence + multi-match) -- each verified against a REAL, cited corpus location (mbedTLS, monocypher, stb_image, LZ4, this repo's own hpet.c/framebuffer.c). Rejected 4 findings with reasoning, all requiring either full C preprocessing (macro-expands-to-static) or having zero precedent anywhere in the tree (verified via direct search each time) -- one rejection (escalating unresolved-ref to a blocking error) was later independently validated by Codex's own next round as consistent with Check 7's existing WARN-not-ERROR design. Own-motion: fixed a live false positive on hpet_available() and fb_get_output_count() (both real, documented placeholders, marked INTENTIONAL-STUB). Gate-wiring (corpus snapshot as an automated commit gate) stayed manual/on-demand -- two design rounds found real correctness gaps in every automated-wiring approach tried (worktree-vs-staged-index, CI base-SHA ambiguity); filed as future work rather than shipped fragile. 173 new/extended fixtures in test_build.sh (146 -> 173), full build + 28326 kernel + 17 user-mode tests + smoke green throughout.
  • 2026-08-06 | 00-infrastructure/TODO-06 §13 (stored-ref repair: unpaired symbols + bare filenames) + §14 filed | SHIPPED 10cdda4b + review 2568428b | The section was filed as a build.py EXTRACTION change and its own measurement disproved that before any code was written: a bare filename is a fact about the SOURCE TREE, while extraction is a pure function of the TODO corpus and the cache's freshness check compares only TODO mtimes, so a stored resolution would be a claim nothing can invalidate. The cache is UNCHANGED; both repairs moved to resolution time in a new ref_resolution.py that lint Check 7's walk and the identity snapshot both call, because a rule the snapshot does not share is a rule it cannot gate (the decl-following change shipped exactly that defect once). Coverage 111 -> 474 of 1,625 (4.3x) at 0 lost / 0 moved over 363 added, all ground-truthed. Basename repair 238 occurrences (applies to kind=file refs too -- 673 of 1,167 stamped file refs do not exist at their authored path, which had starved the pairing of candidates); section-scope pairing 264. Tree-wide unique-name pairing would have added 1,028 more and was REJECTED: §12 already declined that mechanism and 673 symbols is 37x the 18 its one narrow use hand-verified. 13 Codex dispatches over 4 waves, 21 findings: 19 fixed, 1 rejected with corpus evidence, 3 deferred to §14. The real risk was in the FIX LOOP, not the design -- rounds 2, 3 and 4 each caught a fail-open introduced by the previous round's fix (_Static_assert then an arbitrary macro reading as a declaration; column 0 read as file scope; a memo answering without the drift check), and a fourth found the recorded total denominator had been written but never read, so a cache losing unresolved refs would have published a BETTER ratio and exited 0. 19 mutations run, every one detected. §14 opened (identity gate over the whole population + the shared rule's cost) so the three deferrals have a live owner rather than a park with no way back.
  • 2026-08-06 | 00-infrastructure/TODO-06 §14 (identity gate over the whole symbol-ref population) + §15/§16 filed | SHIPPED d0b2dc17 + review faacf6eb | §14 arrived SPLIT-RECOMMENDED and its own title joined two things, so it was SPLIT first (20185e03): the two COST items became §15 (batched definition rule + bounded caches), and the remaining four ran under a structured waiver. A THIRD section was filed (c1a9282a): §12 had parked the gate's automated wiring recording the follow-up as "unfiled pending a session", and §13's note assigned it to §14 which owns population coverage instead -- a different defect -- so §16 adopts the park with reciprocal XREFs and §14's anchor was repaired after the rename. THE DEFECT: corpus_resolution_snapshot.py is the gate every section since §11 was accepted on, and it verdicted 695 of lint Check 7's 1,625 kind=symbol occurrences -- 930 filtered out before a key was minted, and the 221 that reached resolution and failed recorded a bare null with no bucket. §13 is the worked example: it moved refs between calllike-unresolved (35 -> 132) and no-calllike-token (47 -> 89) at scale and nothing gated the movement. collect() now emits a verdict for every occurrence and the population equals Check 7's by construction, bucket for bucket, asserted against the lint's own printed line rather than a constant in the test. ONE END-TO-END RULE: ref_resolution.resolve_ref does classify -> resolve -> follow_declaration -> bucket, and the call-like text helpers moved there. Sharing only the PRE-resolution half was the trap the design review caught -- each caller still ran its own resolve-then-follow sequence, so a fallback taught to one and not the other recreates the incomplete proof the module exists to prevent (the decl-following draft once proved 36 of 54 mappings). compare splits six outcomes; DROPPED/LOST/MOVED/CHANGED exit 1. CHANGED failing REVERSES the filed item's stated stance on design-review evidence: the item said "not a second blocking threshold", but that guards a numeric floor while this is identity comparison, and the exit code is the only part §16's wired gate can read. Schema 1 -> 2 refuses older baselines; the migration was PROVEN rather than asserted -- a schema-1 snapshot from the pre-change code, correlated by occurrence coordinate, gives 0 lost / 0 moved / 0 gained over all 474 resolved mappings. | design + adversarial + test-coverage pre-commit, then adversarial + consistency + perf post-commit (6 dispatches); 5H+7M fixed, 1 accepted with XREF, 2 rejected with reasoning | BOTH pre-commit legs independently found the same High: the end-to-end memo bound only the DECLARING file, so rewriting a followed sibling .c mid-run served stale coordinates instead of raising ResolverInputError. Post-commit found a duplicate occurrence key silently OVERWRITING a ref -- the dropped ref left refs recording the collapsed total, so the baseline is self-consistent and compare() would pass forever over a population smaller than the lint's, the exact divergence the section exists to prevent. | THREE separate 'green for the wrong reason' defects were found and fixed, which is the run's real lesson here: six baseline fixtures still declared schema 1 so compare returned at the schema mismatch and never reached the element validation they name (deleting arity, path-type, range or truncation validation would have left them green); a new UTF-8 fixture passed on rc 3 that came from a missing cache, not the reader under test, until it asserted the MESSAGE; and the fixture corpus produced no post-resolution buckets at all, so a CHANGED assertion could not exercise the very pair §13 moved refs between. | MY OWN EVIDENCE WAS WRONG and consistency caught it: the baseline said 1,151 unresolved (live 1,152) and named unpaired-ref at 858 (live 859), and the section claimed all six buckets unmoved when unpaired-ref had moved -- stamping the section's own items adds a symbol ref, and the gate refused with rc 7 until it was re-recorded deliberately. lint.sh also grepped rc 7 for COVERAGE REGRESSION only, printing a blank error on a POPULATION refusal and discarding the actionable message. | Also repaired test_stub_lint_coverage.py, RED in the tree since §11 made a total-less baseline invalid -- its runner gates on a manifest listing neither scripts/lint nor scripts/todo-graph, so nothing ran it | tests 191 -> 209; fourteen mutations applied, and FOUR initially survived and were chased to ground rather than recorded: two were unfaithful mutations (one kept the _load_file_lines call the original defect skipped, one referenced follow_declaration without calling it) and two were a harness bug -- the harness read only stdout while the [FAIL] lines are not all there. An earlier harness also used git checkout -- to restore and discarded the uncommitted implementation, which was reconstructed. | Verified: build OK, 28326 kernel + 17 user-mode, 1287/1287 tooling, 209/209 todo-graph, 66/66 overnight, lint 0 errors, graph 8/8, Check 7 474/1626, perf +3.2% on the pre-commit-hook path
  • 2026-08-06 | 00-infrastructure/TODO-06 §15 (the shared rule's cost) | SHIPPED 8cd20932 + review e49acdc2 | THE SECTION'S OWN PREMISE DID NOT SURVIVE PROFILING, and that is the whole story. It was filed to batch per-candidate-file definition lookup because "every POSITIVE probe scans the file for one symbol, ~65 MB of repeated scanning, _defining_candidates ~1.0s of Check 7's ~1.47s". The bytes are real; the attribution was not. candidate_lines is 0.071s of a ~1.5s walk (~5%) because str.find runs at C speed, and the 1.0s under _defining_candidates is definition CONFIRMATION -- _iter_code_chars yielding 1,308,110 characters and 2.19M list appends so three brace counters could test each one against { and }. The batching was BUILT anyway before that was known (a resolve_symbols(file, symbol_set) entry point + candidate_lines_batch behind the same single rule, verdict-identical over 720 real resolutions) and it made Check 7 SLOWER -- 2.9s tokenize-and-bucket, 2.1s with a \b-anchored alternation, against HEAD's 1.5s, because Python-side bucketing costs more than the C scan it replaces. It was removed rather than shipped to satisfy the checklist wording, and the refutation is recorded in the section so it is not re-litigated. What SHIPPED instead is aimed at the measured hot path: a wanted OUTPUT filter on _scan_line/_iter_code_chars with _BRACES/_PARENS_BRACES at the three body-walk call sites, leaving the lexer state machine untouched so what counts as code cannot shift, and _confirm_definition deliberately unfiltered because it reads every character including a catch-all reject. 5.09M -> 2.54M calls, 1.67M -> 0.40M appends, 1263 -> 1177ms median (6.8%), which Codex independently reproduced at ~7.5%. | 6 Codex dispatches (design, adversarial x2, consistency, perf, re-adversarial x2); 9M fixed, 1 rejected, 0 open | THE DESIGN ROUND PAID FOR ITSELF BEFORE ANY CODE EXISTED: it refused a uniform LRU over all seven caches, because _BASENAME_INDEX/_EFFECTIVE_PATH_MEMO answer from directory TOPOLOGY that nothing pins, so an eviction mid-walk recomputes against a changed tree and a late ref can disagree with an early one -- a silent RESULT change, the exact thing the item's own invariant forbids. Caches are now split by WHAT PINS THEM: content-bound ones (revalidated by lines-object identity) LRU-bounded, topology-derived ones walk-scoped. It also caught that routing the batch handoff through the bounded memo would recreate the multiplicative shape whenever symbols x files exceeded capacity. | THREE OF MY OWN CLAIMS WERE FALSE AND REVIEW CAUGHT EACH: SectionScope kept a dead _defs member and a docstring promising a per-section batch that the revert had removed -- a false performance contract on the very module whose purpose is that both gates share ONE truthful rule; walk_scope() advertised "one topology snapshot per walk" while follow_declaration globbed src/**/<basename>.c LIVE per call, so two refs in one walk could straddle a file appearing (fixed properly with a walk-scoped _sibling_candidates() rather than by softening the claim); and walk_scope() shipped as an API NO PRODUCTION CALLER ENTERED, so the release-at-boundary property it advertised was never realized. A fourth found the scope was not re-entrant -- a nested exit would drop resolve_symbol's generation pins mid-walk, turning a documented rc 9 drift failure into a silent clean read -- and a fifth that incrementing the depth outside the try left a window where an interrupt stranded it and disabled clearing for the process. | REJECTED with code evidence: a re-entrant lock for thread-safety. Every cache this module and resolve_symbol hold is unsynchronized process-global state predating the change and both consumers are single-shot CLI processes, so locking one boundary would advertise safety the module does not have; the single-threaded contract is documented instead. | THE PERF LEG CORRECTED MY SCOPE CLAIM and it was right: measuring discovery at 5% refutes the cost ATTRIBUTION and batching as a win AT THIS SCALE, but NOT the growth shape, which remains O(symbols x files x bytes). Fixture 15c now measures each axis independently in operation COUNTS (symbols x2 -> scans x2; files x2 -> scans x2; size x4 -> same scan count, more bytes), so the limitation is pinned rather than argued away -- and the section text says exactly that instead of claiming the question is closed. | OWN-MOTION: test 7's wall-clock budget computed elapsed from date +%s%N and tested only -lt 2000, so a non-positive reading PASSED -- observed three times this session under WSL2 (-1158ms in the test itself). A budget that cannot fail is not a budget; an invalid measurement is now refused. | Fixtures 15a-15d, every one mutation-checked (8 mutations, all detected); 15d's interrupt assertion is STRUCTURAL because the behavioural form cannot reach the real window -- an in-body raise balances under the broken shape too. | Verified: test_build 209 -> 213, identity gate 0 dropped/lost/moved/reclassified over 1,626 refs, Check 7 474/1626 unchanged, tooling 1287/1287, kernel 28326 + 17 user-mode, build OK, lint 0 errors
  • 2026-08-06 | 00-infrastructure/TODO-06 §16 (wire the identity gate) + §17/§18 filed | SHIPPED 800b62e0 + review 618f760f | THE SECTION AS FILED WAS TWO SECTIONS AND THE MECHANISM QUESTION WAS HARDER THAN §12 THOUGHT. Split first (794b8d15): the shared cache-schema validator became §17 on opposite-failure-mode grounds (§16 fails as "the gate does not fire", §17 as "two readers disagree on the same input"). Then THREE design rounds, and the first two of my answers were wrong in ways only review found. The wiring mechanism: a non-cancellable CI job, with the pre-commit hook losing on THREE counts rather than §12's two -- git hooks are OPT-IN per developer, so a hook gate protects only authors who chose to be protected, which is precisely the property the section exists to remove; it also lives in .githooks/, control plane the unattended runner may not edit, so the runner could never have shipped it. The key-stability blocker was DISSOLVED rather than worked around: there is no tracked baseline file at all, the cache is built ONCE and both walks read that same byte-identical file, so the key set is identical by construction, only resolver CODE varies, and DROPPED/ADDED become structurally impossible -- fixture 22b proves a TODO edit still passes. | 8 Codex dispatches (design x3, adversarial x3, consistency, perf); 4H+8M+1L fixed, 4 accepted to §18, 0 open | EVERY DESIGN ROUND REFUTED THE PREVIOUS ROUND'S FIX, which is the story: round 1 caught that compare exits 0 on GAINED/ADDED with a "(GROUND-TRUTH BY HAND)" line no automated caller can act on, so a resolver defect binding an unresolved ref to the WRONG definition ships green looking exactly like a coverage win; round 2 killed my fix for it, because the approval artifact I proposed could not self-clear -- the gain stays relative to the PR base through every commit, so the artifact must exist at merge and then carries item_idx keys that go stale; round 3 killed the replacement, because a commit-trailer digest is mintable by any committer INCLUDING THIS AGENT, so it proves possession, not review. The shipped answer is that there is NO in-band clearing path: --strict fails and a human ground-truths it. | ADVERSARIAL FOUND THREE FAIL-OPEN PATHS IN MY OWN GATE, all of which had shipped as confident prose: a job-level concurrency group does NOT exempt a job from its own RUN being cancelled, so the workflow-level cancel-in-progress made the job cancellable while its header claimed otherwise (cancellation is real here -- build.yml runs e49acdc2/ca61219d/faacf6eb were cancelled by rapid pushes the same day); an unparseable protocol constant was emitted as ? and compared as a VALUE, routing into a migration branch that exited 0 having built no cache and walked nothing; and a gh/jq failure collapsed into first-run absence, so a transient API error could launder an unadjudicated push permanently. The protocol-only exit was then REMOVED outright rather than repaired -- SNAPSHOT_SCHEMA sits in the same file as collect() and --strict, so "schema changed but the resolver did not" cannot be established without excusing verdict-affecting edits. | THE WORST ONE WAS THE PROTOCOL CHECK MEASURING NOTHING: proto_of regex-captured the RHS of ALL_BUCKETS, which is spelled PRE_RESOLUTION_BUCKETS + POST_RESOLUTION_BUCKETS and is therefore INVARIANT under a bucket rename, so the fail-closed branch could never fire -- while the same regex DID capture a following comment line, so unrelated prose would wedge the gate. It now imports the modules per tree and compares the real ordered tuple; 22j and 22k pin both directions. | MY OWN FIXTURES WERE GREEN FOR THE WRONG REASON ON THEIR FIRST RUN and that is what caught a real gate defect: identity-gate.sh derives its repo root from its own location, so the live script invoked inside the fixture clone operated on the LIVE repo, fell back to HEAD~1, found an unchanged closure and exited 0 -- two firing cases "passed" without walking anything. Fixed both sides; an explicitly supplied base that does not resolve is now rc 3 instead of a silent fallback to a different range. 22h is mutation-checked: deleting --strict from the driver flips it to rc 0 and it alone fails. | CONSISTENCY caught a malformed cache with a list-valued section_n raising an uncaught TypeError and exiting 1 -- the tool's DOCUMENTED code for "a prior verdict changed" -- so a bad cache would be reported to CI as a resolver REGRESSION (now rc 3, fixture 22i). It also caught that CLOSURE advertised coverage it does not provide; the array is now documented as a TRIGGER list, with build.py and the driver named as affects-but-not-differentialled and check_stub_behind_stamp.py deliberately absent -- the same false-coverage test applied consistently rather than a rule bent per file. | HONEST LIMIT, in the script header and the section: this repo pushes straight to main, so the gate DETECTS rather than PREVENTS. What is guaranteed is ADJUDICATION -- the range starts at the last SHA the job actually passed, so a cancelled or skipped run is absorbed by the next one. Prevention needs a pre-receive hook or a merge queue, both operator-reserved. | §18 opened for the four accepted findings (both-corpora producer differential, protocol-constant extraction, lint-consumer differential, runtime budget) so none is a park with no way back. | Verified: build OK, 28326 kernel + 17 user-mode, 1287/1287 tooling, test_build 213 -> 224 with 11 identity-gate fixtures 22a-22k, lint 0 errors, graph 8/8
  • 2026-08-06 | 00-infrastructure/TODO-06 §17 (one shared cache-schema validator) | SHIPPED 4d2b9fa62 + review 87d2e6b7d | THE SECTION SHIPPED WHAT IT SAID, AND EVERY ROUND WIDENED WHAT "THE RULE" MEANT. Two readers validated build/todo-cache.json differently, so the same corrupt cache was an infrastructure refusal on the snapshot side and a clean-looking lint on the other; cache_schema.py now holds the rule once and both import it. The lint's four fail-opens are closed: falsey stamped_items: {} / refs: {} passed a truthiness test and walked ZERO refs while reporting clean, a non-list deeper in the tree crashed into except Exception -> rc 6, RecursionError escaped as a bare rc 1, and the staleness check was fail-open three ways plus skipped entirely when todo/ was absent. Sharing the RULE deliberately does NOT collapse the CODES -- the module raises a reason tag, the snapshot maps everything to rc 3, the lint maps through an explicit table with no .get default. THE FOUNDING PREMISE WAS TOO NARROW TWICE: design review found that lifting _load_nodes verbatim would ship a partial validator advertising a schema it did not enforce, and that NOTHING in the repo had ever validated against cache.schema.json -- it was inert documentation, so a live probe (0 violations across 5,883 items / 3,676 refs) was what made enforcing it safe; then adversarial found node-level file_path is consumed by both walks as an occurrence-key component, so the scope line became "fields the readers CONSUME" rather than "the stamped_items subtree". | 7 Codex dispatches (design, adversarial x2 pre-commit, then adversarial + consistency + perf + re-adversarial post-commit); 4H+10M+1L fixed, 2 accepted to §18, 1 rejected | THE [high] DESIGN FINDING REVERSED A DECISION I HAD ALREADY MADE: mapping an EMPTIED stamped population to the lint's rc 3 routes it through lint.sh as a WARN, and warnings leave the overall lint exit at 0 -- so a producer regression that deleted every stamped item stayed shippable, merely turning a false-clean into a warning. Absent-everywhere is LEGACY (WARN); present-but-empty now reaches the lint's OWN rc 7 POPULATION gate. The two readers take deliberately OPPOSITE actions on that single fact, which is exactly why the module reports the population instead of ruling on it. | THE GENERATION BINDING WAS BOUND TO THE WRONG WINDOW and only the post-commit round caught it: the two corpus scans inside check_freshness are ADJACENT, so they bounded ~1.5ms, while both readers then spend ~1s resolving symbols -- a TODO edited THERE left the nodes stale with a verdict still returned. CacheInfo now carries the corpus fingerprint and check_corpus_unchanged re-verifies after the caller's walk. | MY CLOSE-ERROR FIX WAS ITSELF WRONG TWICE. First version tested sys.exc_info()[0] is None INSIDE the except OSError handler, where it is never None, so it swallowed every close failure it was written to report. Second version sampled it before the close -- but that state is AMBIENT and also reports an OUTER caller's in-flight exception, so a successful load called from someone else's except block would have had its close failure swallowed. The re-adversarial round found that; a function-local flag replaced it. | MY OWN MUTATION HARNESS CONVICTED MY OWN FIXTURES, which is the round I would keep: consistency found the checklist claimed every bad-shape fixture was mutation-checked when only one rule was, and the per-rule harness written to fix that then reported the empty-array fixture still rejected with its rule deleted -- as LEGACY (rc 3, a WARN) rather than EMPTY (rc 5, an ERROR). Same refusal, wrong severity. Asserting on the REASON rather than on "still rejected" is what makes a mutation check mean anything here. | THE FIXTURE SEED LIST WAS THE SAME CLASS OF BUG AS THE ONE UNDER REVIEW: gate_seed hardcoded a copy of identity-gate.sh's CLOSURE, the closure grew cache_schema.py, the list did not, and seven gate fixtures failed with import errors that READ AS GATE MIS-FIRES. It now derives the list from the array. | ACCEPTED to §18, both as concrete items with reciprocal XREFs: the PRODUCER-side mirror of the generation window (build.py reads a TODO, the file changes, the cache it writes carries a newer mtime that makes the stale node look fresh -- unreachable from any reader-side check), and ~10 further raw cache readers that still bypass the validator. The consequential one is .claude/hooks/sequencer_triage.py: on an empty cache cmd_next prints {"status":"DONE"} and exits 0, so a corrupt cache reads as a FINISHED WORK QUEUE -- control plane, so filed to overnight-runner-improvements-v10 rather than fixed. | REJECTED with reasoning: per-element structural limits. todo-cache.json is derived, gitignored and locally produced, so the hostile-input model does not hold; the reachable requirement is that corruption reports a documented code, which the MemoryError normalization guarantees. | PERF measured no material regression -- load+validate 26.2ms against 0.98-1.14s caller walks -- and explicitly said streaming JSON and extra-key micro-opts are not worth it at this scale. | Verified: test_build 224 -> 251 with fixtures 23a-23n, tooling 1287/1287, kernel 28326 + 17 user-mode, build OK, lint 0 errors, graph 8/8, Check 7 474/1626 unchanged
  • 2026-08-07 | 00-infrastructure/TODO-06 §18 (identity-gate hardening) + §19/§20 filed | SHIPPED 9ef13a2b30 + review 8f4388fa5 | THE SECTION AS FILED CARRIED TWO LINEAGES AND WAS SPLIT FIRST (92e4859c5): §18 is titled and scoped for the four findings §16's reviews accepted, but §17's own review had appended two more items to it -- cache-reader routing and the producer generation window -- which share neither a file nor a failure mode with the identity gate, so they became §19. The complexity predictor read the merged section as SPLIT-RECOMMENDED (9 files, 8 open items, 5 subsystems) and the verdict cleared once split. | THE PROTOCOL BECAME INERT DATA, and that choice was the design review's, not mine. I proposed a constants-only Python module; the review refused it because the gate's entire pass inference is "every EXECUTABLE closure file is byte-identical, therefore nothing verdict-affecting rode along", and a Python module still RUNS at import -- a schema bump could carry import-time behaviour or monkeypatch resolve_symbol while every checked file stayed byte-identical. Values now live in snapshot_protocol.json, read with json.load and never executed, with the loader inside the byte-identity closure and BOUND to the data (proto_of imports it and requires its exports to match the JSON it parsed independently -- without that, filtering a dormant bucket in the loader left both snapshots verdict-identical and the differential passed while runtime consumers stopped recognising a bucket the protocol still declared). The extraction was proven verdict-neutral by the gate itself: 474 resolved of 1,626 refs, identical both sides. | 17 Codex dispatches (design, adversarial x15, consistency, perf); 12H+9M+2L fixed, 1 accepted to §20, 0 rejected | FIFTEEN ADVERSARIAL ROUNDS IS THE STORY, AND THREE OF THEM OVERTURNED AN EARLIER ROUND'S FIX. A --halves-checked flag I added to let a caller attest it had compared the bucket halves was refused as an unauthenticated attestation -- presence of a flag became trusted evidence -- and replaced by passing the VALUES, which are then bound to the snapshot's own declared vocabulary so a caller can say how the vocabulary is SPLIT and never invent what it contains. A residual this section had ACCEPTED and parked (that rejecting a stale retirement and not wedging the next commit were in irreconcilable tension) was REFUTED by the round asked to check that reasoning: comparing the two endpoints' migration metadata gets both properties with no history at all, so the park was deleted rather than documented. And a retirement path shown to be unsound was CLOSED rather than filed -- documenting a defect does not protect the shipping path. | THE FAIL-OPEN PATHS FOUND IN MY OWN GATE, each verified before fixing: the schema fast path exited 0 when schema AND buckets both changed, swallowing a rename; pre + post flattening hid a cross-boundary move that check_stub_behind_stamp branches on; list() normalised a JSON OBJECT to its keys so a malformed protocol produced an identical digest; an unreadable emitter returned a sentinel STRING that matched no bucket name, so it read as PROOF OF ABSENCE and approved a retirement -- the guard was inverted; and a declaration already present in BASE authorised the very removal it was meant to declare. | THE BUDGET WAS NOT A BUDGET THREE TIMES OVER: timeout without --kill-after plus an unbounded wait meant a child ignoring TERM hung cleanup forever while the worktree was deleted under it; four sequential phases each received the FULL budget (~40 minutes against a 20-minute job ceiling); and the deadline read date +%s, a WALL clock that can step backward and GROW the allowance -- not hypothetical here, since this host recorded three backward steps under WSL2 the previous day. | MY OWN CHECK WAS FAIL-OPEN IN THE ONLY ENVIRONMENT THAT MATTERS, found twice in successive rounds: Check 25 returned rc 3 without a cache and lint routed that to a WARNING, and its trigger read only git diff, which is EMPTY in a clean CI checkout -- so the one gate that can detect the lint consumer diverging from the shared rule never ran in CI at all. Both closed; then the fail-closed stance turned four tooling sub-tests red, because lint.sh is also run against scratch repos with neither the consumer nor a corpus, so the trigger is scoped to a tree that has both -- absence of the subject is not a finding about it. | CONSISTENCY AND PERF BOTH FOUND REAL DEFECTS AFTER THE ADVERSARIAL APPROVE: the lint consumer kept a PRIVATE copy of the bucket vocabulary, so a data-only bucket addition -- a migration the gate explicitly accepts -- made cov[result.bucket] raise KeyError and the check exit 3; producer operational OSErrors escaped as exit 1, the documented "a stamped ref was dropped" code, so infrastructure would have been reported as a producer REGRESSION; identity-gate.sh had no usage code 2 while its three sibling tools reserve it; five fixtures accepted ANY non-zero exit, so a fail-always gate satisfied them; and the delegation check called the REAL resolver before discarding its answer on all seven passes, measured 6.28s -> 0.21s once the sentinel was constructed directly, on a check that runs every CI invocation. All four consumer mutations were re-verified to still FAIL after that change. | ACCEPTED to §20 with reciprocal XREFs: retirement is provable only by searching the emitters' source text, which indexed or concatenated emission defeats -- so the retirement path is CLOSED in shipped code and §20 owns the declared emitted-member contract that reopens it. | Verified: build OK, 28326 kernel + 17 user-mode, 1287/1287 tooling, test_build 251 -> 289 with fixtures 22j-22ag and seven consumer-delegation cases, lint 0 errors, graph 8/8, live identity gate PASS, smoke PASSED
  • 2026-08-07 | 00-infrastructure/TODO-06 §19 (cache-validation reach) + §21/§22/§23 filed | SHIPPED f77a129544 | THE SECTION WAS SPLIT TWICE BEFORE A LINE OF CODE, AND BOTH SPLITS WERE THE REVIEW'S DOING RATHER THAN MINE. The complexity predictor read it SPLIT-RECOMMENDED (4 subsystems), so the producer-side generation window in build.py -- depth, one file, a TOCTOU needing design -- became §21, leaving breadth: one settled pattern applied to N reader files. The residual verdict was then WAIVED with a structured waiver predicting "5 edits, under 15 lines each, independent of one another". THAT PREDICTION WAS WRONG AND THE DESIGN REVIEW PROVED IT, which is the whole reason a waiver is an accountable estimate rather than an assertion: the edits are NOT independent (all five need a caller-profile API first) and two carry blast radius the waiver never priced. query.py reaches the MCP and watch transports and became §22; validate.py both recovers by rebuilding and reads a SECOND historical cache at :1024 that my inventory had missed entirely, and became §23. What shipped is the foundation plus the two readers that are genuinely self-contained. | 3 Codex dispatches (design, adversarial x2); 6 findings, all verified at file:line, all FIXED, 0 rejected, 0 accepted-and-parked | THE DESIGN REVIEW SAID "DO NOT IMPLEMENT AS WRITTEN" AND WAS RIGHT ON EVERY COUNT. validate_nodes raised REASON_LEGACY_NO_STAMPED_ITEMS unconditionally -- a readiness policy owned by the two stamped-items readers, which for a reader of sections[] refuses a schema-valid, entirely usable cache; the module's OWN header already said the population question belongs to the caller and exposed CacheInfo.key_present to report it, so the raise contradicted the file it lived in. My proposed require_stamped_items boolean was refused as the wrong axis, since it still validates an irrelevant subtree while leaving the caller's real inputs unchecked. Profiles now declare the two questions separately: what I consume, and what I require. | "KEEP ITS OWN DOCUMENTED EXIT CODE" WAS NOT SATISFIABLE AS THE SECTION HAD WRITTEN IT, and assuming it was is the trap the review caught: todo-reachability.py:273 already returned 1 for FINDINGS and decision-registry.py:165 returns 1 for NO SEARCH HITS, so mapping a cache failure onto either makes an infrastructure refusal indistinguishable from a real verdict -- the exact defect §17 exists to prevent. Each routed reader got a NEW code distinct from its verdicts. | THE SECTION WAS ALSO ADVERTISING PROTECTION IT COULD NOT DELIVER: stamps_xrefs and inputs_xrefs were bare {"type": "array"} in the schema, so a malformed nested entry passed everything. stamps_xrefs and sections are now constrained in BOTH the Python walk and the schema; inputs_xrefs and sections[].depends_on are deliberately left alone because no reader routed here consumes them, which is the module header's own scope rule rather than an omission. | ROUND 1 OF ADVERSARIAL FOUND THE ROUTING WAS DEFEATED AT ITS ONLY EVERY-COMMIT CALLER, which is the finding I would keep: lint.sh Check 24 discarded stderr, erased the status with || true, and substituted {} for empty output, so STALE, malformed, oversized, unreadable and timeout ALL reported zero findings. Routing a reader fail-closed while its caller fails open is theatre. It also caught that I retained no corpus fingerprint before the multi-file walk -- the binding §17 built for exactly that window -- and that PROFILE_SECTIONS accepted values its dict consumer misreads. | ROUND 2 REFUTED MY OWN THREE FIXES AND WAS RIGHT AGAIN. Removing || true outright ABORTED lint mid-run, because the file is set -euo pipefail and rc 1 (findings) is the normal case -- caught by running it, not by reading it. Checking the exit code alone was still fail-open, since Python exits 1 for an uncaught exception too, so a crash with empty stdout read as clean; the verdict is now the PAIR (code, envelope). The fingerprint was captured AFTER the first TODO body was read, because audit() reads its file before calling _io_status, leaving exactly the mixed-generation race the fix claimed to close. And my Check 24 fixture grepped ONE physical line, so moving || true to a continuation line evaded it -- the same "green for the wrong reason" shape this repo keeps paying for. | MY OWN FIXTURE DEMONSTRATED THE BUG IT WAS WRITTEN AGAINST: it used status: "[x]", which the producer never emits (build.py:821 stores the inner character), and the validator ACCEPTED it -- while the consumer tests status not in ("x","/"), so "[x]" silently read as UNFINISHED. Status is now the closed domain {"", " ", "x", "/"}, and sections[].n must be unique per node because consumers key a dict on it and a duplicate silently overwrites. Both verified at zero violations across 232 nodes and 2,394 sections. | THE MUTATION HARNESS WAS REPAIRED AFTER MY REFACTOR BROKE IT SILENTLY: extracting the stamped-items walk re-indented every needle and made a bare if extra: ambiguous across three validators, so a first-match replace would have neutered the wrong rule and still passed. Needles are uniqueness-asserted now. While there, a REAL latent defect: one case's needle was already stale, so its assert fired, the mutant file was never written, and the case passed anyway against an unmutated module -- a mutation fixture green with no mutation applied. | I EDITED CONTROL PLANE AND REVERTED IT. scripts/overnight/decision-registry.py was routed, built and verified green before I checked the path against doctrine; scripts/overnight/** is off-limits to the unattended run. Reverted and filed -- along with a real defect the routing uncovered: 923 indexed ownership decisions carry an EMPTY target because the reader asks for target/target_file/text/raw and the producer emits target_path/target_section/item_name (994 xrefs, zero occurrences of any key it asks for). Also filed: NOTHING actually blocks the run from editing the control plane, which is why the edit happened at all. The section's own item text had listed that file as ordinary work; corrected. | CI RED AT PREFLIGHT WAS TRIAGED, NOT DIAGNOSED TWICE: run 31129870443 @e34ca7b4b showed 4 tooling failures already fixed by 8f4388fa5 (Check 25 firing on the tooling suite's scratch repos); recorded in the failure ledger with the evidence so the next pass does not re-derive it. | Two loaded-host flakes cost one wasted diagnosis each and are now in the gotchas and the ledger: a negative-duration timing case in test_build, and the three clustered phase1_evidence_block sub-tests. | Verified: build OK, 28326 kernel + 17 user-mode, 1287/1287 tooling, test_build 289 -> 299 with 10 routed-reader fixtures and 9 per-rule mutation cases, lint 0 errors, graph 8/8, smoke PASSED. Check 24 confirmed BEHAVIORALLY: a corrupt cache yields reachability audit could not run (rc 2, stdout is not valid JSON) and lint exits 1, while a clean tree still exits 0.
  • 2026-08-07 | 00-infrastructure/TODO-06 §19 review + stamp | REVIEWED aade6948c | THE SECTION WAS ALREADY SHIPPED AND ALREADY REVIEWED, AND WHAT WAS MISSING WAS THE STAMP -- the previous run stopped between its last converged review round and the stamp commit, so §19 sat implemented (f77a129544 + ship-review fixes 1cbab9532), all five items [x], IO row [x], and still classified NEEDS_WORK because nothing had written **Verified:**. The convergence gate is what made this cheap rather than a 3-leg re-run: adversarial, perf and re-adversarial all returned CONVERGED for the slice, so exactly ONE leg was re-dispatched -- consistency, whose fingerprint had moved with the ship-review fixes. | 1 Codex dispatch this pass (consistency); 2 [medium] findings, 1 FIXED, 1 REJECTED with code evidence and its residue fixed | THE READERS RETYPED THE VOCABULARY THEY WERE SUPPOSED TO SHARE. cache_schema.py:169-171 declares SUBTREE_* once, but todo-reachability.py subscripted a bare "sections" and check_consumer_delegation.py called .get() on a bare "stamped_items" -- so a rename would validate one field while the reader accessed another: reachability escapes through an uncaught KeyError under its VERDICT code rather than the infrastructure code section 19 built for exactly that distinction, and the delegation check silently counts zero, lowering the expectation and passing the comparison it exists to make. | THE REGRESSION ASSERTION IS AN AST CHECK, NOT THE TEXT SEARCH THE REVIEWER ASKED FOR, and the reason is the same one section 20 exists for: both files legitimately mention those names in comments and error messages, so a grep for the literal fails on prose, and a check that fails on prose is a check that gets muted. Only the ACCESS shapes are examined. Mutation-proved -- restoring either literal FAILS the fixture. | I REJECTED THE OTHER FINDING AND THE REJECTION IS THE MORE USEFUL HALF. Codex read the duplicate-n parity exception as a masked acceptance mismatch and asked for identical verdicts. JSON Schema 2020-12 has no uniqueness-by-property keyword -- uniqueItems is whole-item equality and the fixture's two rows differ in deliverable -- so the constraint is UNEXPRESSIBLE in the published schema, and dropping the Python rule reopens the silent overwrite it closes (consumers key a dict on n). The asymmetry is also asserted in BOTH directions, not ignored: the fixture fails if the schema starts rejecting the case OR if the Python walk stops. | ITS RESIDUE WAS REAL THOUGH, which is why the finding was worth the round: the pass label claimed all 16 cases "agree with the published schema" when one is deliberately Python-only, and the schema itself was silent about a constraint a consumer enforces -- so a producer could validate clean and still be refused with nothing in the published contract saying so. Label now states the split; cache.schema.json documents that a valid document is well-SHAPED, not automatically trustworthy. | The section had also never received the Test runner: line its stamp region requires (Check 10 caught it at commit -- the same stop that cost it the stamps); added. | Verified: build OK, test_build 314 -> 315 (the new AST assertion), tooling 1293/1293, kernel 28326 + 17 user-mode, lint rc 0 / 0 errors, todo-graph 8/8, CI-parity PASS. Section 19 classifies DONE; TODO-06 remains NEEDS_WORK on §20-§23.
  • 2026-08-07 | 00-infrastructure/TODO-06 §20 (declared bucket-emission contract) | SHIPPED f86175ccd + review 68607654b | THE SECTION REPLACED EVIDENCE, NOT A RULE, AND THE FIRST DESIGN OF THAT EVIDENCE WAS WRONG. §18 could only ask whether a bucket name still appeared in the emitters' SOURCE TEXT, which an indexed or concatenated emission defeats, so every active retirement was refused outright -- a wedge rather than a gate. I proposed inferring the emitted set by collecting every Bucket.<MEMBER> access in the resolver; the DESIGN REVIEW refused it before a line was written, because next(iter(Bucket)) and an alias B = Bucket; B.X emit a bucket while the file contains no literal, no subscript, no dynamic construction and no Bucket.<MEMBER> expression at all -- the inferred set would omit a member the resolver can still emit, recreating the exact latent failure the section exists to close. The set is DECLARED instead: EMITTED_BUCKETS = frozenset({Bucket.MEMBER, ...}), its AST shape pinned, its truth enforced at runtime. | 7 Codex dispatches (design, adversarial x3, consistency, perf, re-adversarial); 6H+7M+2L fixed, 0 rejected, 0 open | THE GUARANTEE IS LAYERED AND THE DOCSTRING SAYS SO RATHER THAN OVERCLAIMING. Overriding __new__ bounded ordinary construction and nothing else: a probe drove a RETIRED bucket through _replace, _make and the module-level base namedtuple. _make is overridden (which covers _replace), the base is declared inline so no unchecked constructor is importable -- and tuple.__new__(Verdict, ...) stays reachable because nothing in Python can take it away, so the PUBLIC RETURN BOUNDARY re-validates and bounds the OBSERVABLE emission set instead. Claiming closure at the constructor would have been false; the layered claim is checkable. | THE RUNTIME CHECK NEEDED BOTH HALVES AND I SHIPPED ONLY ONE FIRST. Bucket is str-valued, so a bare "path_escape" hashes and compares equal to the member and sailed through a membership test: the first cut accepted both a raw literal and a runtime concatenation, leaving the enum typing decorative. Instance AND membership, and the comment records why neither alone suffices. | I ALSO BROKE THE REPO'S PYTHON FLOOR AND THE REVIEW CAUGHT IT AT IMPORT. enum.StrEnum is 3.11+ against a documented 3.8 minimum (docs/infrastructure/development-tooling.md:133); on a supported host the resolver, the lint consumer AND the identity gate would have died with AttributeError before any could return its documented exit code -- a check that cannot start is the fail-open shape those codes exist to prevent. Replaced with (str, Enum) plus __str__/__format__ pinned to str's, which gives StrEnum semantics on every version. Reported honestly: all five changed files parse under ast feature_version (3,8), but NO 3.8 interpreter exists on this host, so the suite was not run on it. | THE POST-COMMIT ROUND FOUND THE PROOF STILL BYPASSABLE THREE MORE WAYS, and the iteration form is the one to remember: the enum is derived from the JSON, so retiring the first member makes next(iter(Bucket)) return the NEXT declared member, which _check_emitted accepts -- a dormant branch keeps emitting, silently reclassified, with every gate green. Only canonical Bucket.<DECLARED_MEMBER> access is allowed now. | THEN THE RE-ADVERSARIAL FOUND MY TWO EXEMPTIONS WERE THEMSELVES THE HOLE. _name_of returns an attribute's .attr, so helper.isinstance(x, Bucket) satisfied the type-test exemption while its method returned an iterated member; and the re-export scan exempted EVERY matching top-level assignment, so a second Bucket = alternate.Bucket -- a different enum wearing the sanctioned name -- passed. Exactly one canonical re-export now, and only a builtin isinstance whose name is proven unshadowed. The same round showed watched_symbols_present was scope-blind: a dead decoy ALL_BUCKETS = () inside an unused function satisfied the proof while the real symbol was renamed and its indexed access evaded the bans. Module-level bindings only, counting imports and tuple targets so a legitimate refactor is not wedged. | THE DECLARATION WAS A LIST, NOT A CONTRACT, UNTIL IT WAS COUPLED TO THE CODE: dropping a member while leaving its four emission sites produced ZERO violations, and the clearing-path fixture could never have caught it because it retires a bucket nothing ever emitted. | CONSISTENCY REFUTED MY BIJECTION CLAIM WITH COUNTER-EXAMPLES. "Is lowercase" does not make the member/name mapping reversible: sharp-s, final-sigma, the ff ligature and dotless-i are all lowercase but upper-case to SS, SIGMA, FF, I and lower back to something else, leaving a valid protocol unreadable to the retirement checker -- which must read the emitted set from a tree MID-RETIREMENT and so cannot look the name up. Bucket names now match ^[a-z][a-z0-9_]*$ with the round trip asserted directly. It also caught that the published bucket report line had silently REORDERED when accounting moved to the vocabulary; accounting stays derived, presentation keeps its historical sequence and appends new buckets. | PERF APPROVED WITH NO FINDINGS and measured it: 1,626-ref walk 1.11s -> 1.09s, boundary guard ~0.5us/ref, Check 26 ~40ms including process startup, so fusing its AST walks is unwarranted. | THE CONSUMER'S SECOND VOCABULARY WAS IN SCOPE AND THE DESIGN REVIEW INSISTED: check_stub_behind_stamp.py retyped six names for its accounting sum, so an EMITTED bucket addition exited 6 and a retirement raised KeyError -- the gate could have approved a retirement that left its own required lint consumer unusable. Both derive from the published tuples now, and check_consumer_delegation.py probes with the EMITTED set so a legal data-only addition no longer fails Check 25. | THE CLEARING PATH IS OPEN FOR THE FIRST TIME: fixture 22ae flips from refuse to APPROVE, and check_bucket_emission.py joins EXEC_CLOSURE so a commit cannot weaken the evidence and retire a bucket at once. | PARKED, NOT DROPPED: identity-gate fixture 22b is mtime-racy and failed 1 run in 4 on an UNCHANGED tree (cache is STALE (a TODO is newer than ...)). Filed as a - [/] in §20 owned by §21, whose corpus fingerprint replaces the mtime freshness check and removes the race rather than hiding it behind a sleep, with a reciprocal item in §21 and a gotcha so the next pass re-runs before diagnosing. A new §24 was CONSIDERED and rejected: §20 sits at review-spawn depth 2, and a flaky fixture cannot honestly name the user impact a continuation waiver demands. | TWO FIXTURES INITIALLY PASSED FOR THE WRONG REASON -- \n inside "..." stays literal in bash, so they wrote unparseable emitters and passed on rc 3 instead of the ban they named. Caught by asserting the MESSAGE, not just the exit code, which is the discipline the gotchas file already carried. | Also added TODOGRAPH_KEEP_TMP=1: every failure message in test_build points at a log under $TMP_DIR, and the EXIT trap deleted it, so diagnosing a gate fixture meant re-running the suite and racing the trap. | Verified: build OK, 28326 kernel + 17 user-mode, 1293/1293 tooling, test_build 320 -> 328 with 12 new mutation fixtures, lint rc 0 / 0 errors, todo-graph 8/8. TODO-06 remains NEEDS_WORK on §21-§23.
  • 2026-08-09 | 00-infrastructure/TODO-06 §27 (replace refs + grafts in the history identity) + §30/§31 filed | SHIPPED f814af76f + review b35c5a762 | THE SECTION WAS SPLIT BEFORE A LINE OF CODE, ON ITS OWN TITLE. The manifest read SPLIT-RECOMMENDED at 6 open items and the title said "replace refs, grafts, AND watch-mode triggering" -- two axes sharing a cause and nothing else: what the identity PROJECTION discards (git ancestry probing) versus a WATCHER that never re-asks (an event loop and a polling budget). Different files, different failure modes, different tests. The watch half became §30. | 6 Codex dispatches (design, adversarial x3, consistency, perf); 6H+5M fixed, 0 rejected, 2 deferred with concrete owner items | THE DESIGN REVIEW KILLED CANDIDATE B BEFORE IT WAS WRITTEN, and the probe confirmed it: git honours GIT_REPLACE_REF_BASE, so under refs/myreplace/ a digest of refs/replace reads EMPTY while the walk is replaced. Candidate A (--no-replace-objects) defends regardless of namespace. | IT ALSO REFUSED MY GRAFT PROBE AND WAS RIGHT: any presence check is a SECOND read not causally bound to the traversal, so a graft can be live for the producer's walk and gone before the reader stats it. Its own remedy -- digest the whole walk -- was REJECTED on cost (§24 measured 312ms against 47.9ms). The answer was to remove the race by removing the probe: GIT_GRAFT_FILE=os.devnull makes grafts inert by construction, the exact analogue of --no-replace-objects, for which git offers no flag. | THE MECHANISM WAS RIGHT FROM ROUND 1 AND NEVER CHANGED; ALL THREE LATER ROUNDS FOUND FALSE PROSE. "boundary changes however they are reached" (an equal-count shallow boundary moves created_at 1577836800 -> 1583020800 with tip and count equal); "the count is the ONLY half that follows the effective git environment" (the tip follows it too -- a boundary at a non-corpus HEAD moved the tip with the count unchanged at 1); and "RAW history" (shallow ancestry stays effective, so the honest term is replacement- and graft-neutralised). Each was verified by a throwaway probe carrying a control that fired. When a section's deliverable is partly a CONTRACT, the prose is where the residue lives. | CACHE_FORMAT_VERSION 1 -> 2 because history_id kept its name and type and changed its meaning -- the documented purpose of that integer. Without it a v2 reader accepts a v1 cache built under a replacement and a v1 reader accepts a v2 cache after rollback, both silently, since the strings compare equal in exactly the case that matters. | BOTH MUTATION LEGS FIRST REPORTED A FALSE PASS: a two-file module copy died on a missing schema/, and "no drift" was indistinguishable from "no build". Now reported as distinct outcomes. The bump also exposed fixture 22am, which hardcoded a CACHE_FORMAT_VERSION = 1 needle while the gate clone is seeded from WORKING-TREE files -- so a legitimate bump made the needle miss, base and head became identical, and BOTH 22am and 22an failed reporting "not handled" as though the gate had regressed. It bumps whatever value it finds now. | REVIEW CAUGHT DRIFT THE SPLIT CREATED: §24's stamps still routed watch work to §27 and quoted an item that no longer existed, and one of its deferrals had been CLOSED by this section and still read open. Swept every in-file anchor rather than only the reported one -- 3 of 63 dead, all repaired -- which exposed that validate.py passes 9/9 while same-file fragments rot, filed into the still-open §29. | I NEARLY OBEYED THE CONVERGENCE GATE ON A SECTION IT CANNOT SEE: should-redispatch returned CONVERGED for a 100% scripts/todo-graph/** surface -- the scope: src blind spot this run had already filed against §25. Round 3 was dispatched anyway and returned a live finding, so obeying it would have shipped a false contract. Filed again with the new evidence: filing a defect does not stop a green gate being trusted. | Verified: build OK, 28326 kernel + 17 user-mode, 1319/1319 tooling with a content-bound receipt, test_build 464 -> 466, lint rc 0 / 0 errors, todo-graph 9/9, CI-parity PASS. Perf APPROVED with measurements (50.543ms -> 50.600ms; the four env copies cost ~59us, 0.12% of budget). TODO-06 remains NEEDS_WORK on §28-§31.
  • 2026-08-09 | 00-infrastructure/TODO-06 §28 (section-level readiness verbs) | SHIPPED 1bf0ed2ed | THE SPLIT PREDICTOR SAID SPLIT AND THE WAIVER SAID NO, ON A MEASUREMENT TAKEN BEFORE ANY CODE. The manifest read SPLIT-RECOMMENDED at 6 open items, but three were bookkeeping that cannot be separated from the code making them true (retire §25's note, one OS-Comparison row, the commit line), and the blocker §28 feared -- ambiguous bare-stem targets -- had already been closed by §26: all 522 (target, source) pairs and all 723 cross-file groups resolve, 0 unresolved, 0 dangling. Waiver accepted with a concrete estimate; actual was 9 files against an estimated 7. | 7 Codex dispatches (design, adversarial x2, consistency x2, perf x2); 4H+8M fixed, 0 rejected, 0 open | THE DESIGN REVIEW KILLED THE AGGREGATION RULE BEFORE A LINE WAS WRITTEN, AND ITS BEST FINDING WAS THE ONE I HAD NO REASON TO DOUBT. I proposed satisfaction = target section's IO status is [x], which reads like the only possible answer. It disagrees with this repo's OWN canonical classifier on 463 live sections: 42 shipped-but-unstamped [x] classify NEEDS_WORK and 421 stamped [/] classify DONE. The verbs now import sequencer_triage.classify_section rather than re-deriving it -- reuse the tool's own machinery, never reimplement its rule. | EVERY OTHER DEFECT CAME FROM THE CORPUS, NOT FROM THEORY, which is the argument for measuring before designing: 8 groups name their OWN file by code (TODO-04) instead of self and so satisfied the cross-file eligibility test with a same-file edge; 8 resolve to a domain INDEX.md, a real path that is not a cache node; one group names the same target section twice. None of these were reachable by reasoning about the schema. | I FIXED THE NULL-SECTION-NUMBER HOLE TWICE, IN OPPOSITE DIRECTIONS, AND THE SECOND REVIEW CAUGHT THE FIRST. The cache contract permits a null sections[].n and does not require nulls to be unique, so keying on (file_path, n) merged two rows. I excluded them -- which was wrong the other way: a null-numbered row's dependency on a real target is good evidence for a TARGET-ranked answer, and dropping it understated section-blocking just the same. Being unable to NAME a source is no reason to forget what it points at. Keyed by row ordinal now. | THE MCP TOOLS WERE ADVERTISED AND UNCALLABLE, and my own test proved nothing because it checked tools/list and then called only stats. Registration and dispatch are separate surfaces: _build_mcp gave FastMCP the schema while _dispatch_tool's allowlist rejected every tools/call with "unhandled tool". The wire test now CALLS each verb; reverting the dispatch fix makes it fail, verified by patch-run-restore with a checksum. | MY FIRST MUTATION CONTROL PASSED UNCHANGED AND THAT WAS THE MOST USEFUL FAILURE OF THE SECTION. Reverting the in-group dedup changed nothing, because the dedup was layered three deep and the clause under test was not the one being reverted. Measuring each layer showed L1 is load-bearing only for self groups, L2 covers cross-file, and L3 was unreachable given L2 -- so L3 was REMOVED rather than left as a guard that cannot fail, and each surviving layer got a control that fires. 8 controls, every one confirmed. | THE CENSUS INVALIDATED ITSELF AND THE CONSISTENCY LEG CAUGHT IT: flipping the IO row to [x] without stamps moved 42 to 43, so the docs contradicted the tree they were measuring. Numbers are now dated observations (2026-08-09), and the post-stamp value was PREDICTED as 42/421/463 and then verified to match exactly. | Also corrected 723 -> 715 actual cross-file groups (8 are self-aliases) and six stale 10/12 tool inventories; two §8 receipts over the 250-char cap were split into sub-bullets rather than opted out of. | Verified: build OK, 28326 kernel + 17 user-mode, 1319/1319 tooling, test_build 466 -> 502, lint rc 0 / 0 errors, todo-graph 9/9, smoke PASSED (boot 2.760s). Perf APPROVED with measurements (112.3ms index build, 219.1ms MCP query, near-linear to 4,000 nodes; explicitly advised no optimisation and none was done). TODO-06 remains NEEDS_WORK on §29-§31.
  • 2026-08-09 | 00-infrastructure/TODO-06 §29 (repair mode fails visibly) + §32/§33/§34 filed | SHIPPED 859d96cf0 + review 862198a40 | THE SECTION WAS SPLIT BEFORE ANY CODE, BACK TO ITS OWN STATED SCOPE. The manifest read SPLIT-RECOMMENDED at 6 open items and the preamble said "two properties of repair mode" -- but two later-appended items carried unrelated failure modes and blast radius: an in-file ](#anchor) check needing no cache, no resolver and no repair mode (§32), and a producer-side (\S+) capture touching every stamp in the corpus (§33). Splitting restored the section to what it always claimed to be. | 7 Codex dispatches (design, adversarial, test-coverage, adversarial, consistency, perf, re-adversarial); 3H+8M fixed, 1 rejected with evidence, 1 deferred operator-gated | THE DESIGN REVIEW FOUND A SECOND SILENT PATH THAT WOULD HAVE LEFT THE SECTION'S OWN TITLE TRUE. I was fixing main() dropping the unresolvable count as _unres; len(hits) == 0 -- target resolves, named item renamed away -- also continued with no counter and no message. Fixing only the filed branch would have shipped a section called "reports success over targets it could not resolve" that still did. Counted as missing_items; the live corpus has 75 of them against 50 unresolvable. | THE FILED PREMISE WAS WRONG AND THE PROBE SAID SO. The collision item was sized as defence in depth because cache_schema supposedly refuses such a cache at load. It does not for this profile: build.py builds it, validate.py loads it, and only query.py and MCP refuse. §26's resolver is what makes it SAFE; measured on one tree, pre-§29 gave rc 0 with ZERO output and 4 stale stamps, the refusal reverted gives rc 1 with four per-stamp reports, as shipped gives rc 2 naming the pair. What this section adds is the diagnosis, and the comment now says that instead of the disproven claim. | I NEARLY SHIPPED A BUDGET THAT SILENCED THE SIGNAL THIS SECTION ADDED. Perf measured 762,597 clauses buffering 126,591,102 chars (RSS 70 -> 230 MiB); my first fix was one global 200-entry budget, and re-running the LIVE corpus showed 200 ambiguity lines, 0 of 50 unresolvable and 15 of 75 missing -- the 403 pre-existing ambiguity findings come first in corpus order and ate the whole allowance. Per-class budgets now; both new classes list in full. Its twin: the suppression line points at "the summary line" and that summary was if not quiet, so under the only automatic caller the promised totals were never printed. What caught both was re-running the measurement that MOTIVATED the section, not a test and not a reviewer. | REJECTED WITH EVIDENCE: "a partial cache can hide a collision and permit a wrong rewrite" -- built a cache, added the colliding file, and repair refuses rc 2 STALE via the corpus binding before any rewrite, stale stamp preserved. | THE rc 2 CONTRACT I WROTE WAS FALSE AND CONSISTENCY CAUGHT IT: _commit_rewrites publishes per destination in phase 3 and can refuse on a LATER file after earlier ones were os.replaced, so "refused before touching anything" overstates. Documented as "stop and look", not "nothing happened". The refusal message also said "(directory, number)" when resolver_key returns _DOMAIN_DIR_RE group 1 -- the two-digit CODE -- reintroducing the exact confusion §26 existed to remove. | TWO MUTATION FIXTURES FAILED CLOSED when my own fixes moved the code they patch, which is the designed behaviour; repaired to pin STRUCTURE rather than message prose. The re-adversarial then showed the budget fixtures were loose -- -le 100 plus grep -q left an off-by-one cap AND a per-diagnostic suppression line (which restores the O(n) growth) both green; now exactly 100 entries, exactly one suppression line, exact totals, and both rare classes asserted under an ambiguity flood. | FILED, NOT FOLDED IN: §34, because test_build.sh Test 7 brackets the build with date +%s%N (CLOCK_REALTIME) which WSL2 steps -- seen twice today as a false build timing invalid (-822ms), once inside the tooling suite and once in 1 of 3 direct runs. Identifying it cost ~20 min because test-tooling.sh discards the sub-suite output on failure and keeps only the summary; filed to v13. | Verified: build OK, 28326 kernel + 17 user-mode, 1319/1319 tooling, test_build 502 -> 514 with 12 section fixtures and 3 mutation controls, lint rc 0 / 0 errors, todo-graph 9/9, CI-parity PASS. TODO-06 remains NEEDS_WORK on §30-§34.
  • 2026-08-09 | 00-infrastructure/TODO-06 §30 (--watch ticks on a history move) | SHIPPED 55f4bc9f0 + review e129f720f | SPLIT-RECOMMENDED WAS OVERRIDDEN WITH A WAIVER AND THE OVERRIDE HELD: 5 open items, but three were one mechanism inside watch_loop (trigger, verb scoping, refusal retry) and two were its fixtures and commit line. Estimated 3 files / 5 tests / 150K; actual 3 files and 21 fixtures. | 12 Codex dispatches (design, adversarial x2, consistency, perf, re-adversarial x7); 1H+18M fixed, 0 rejected, 1 accepted to §31 | THE DESIGN REVIEW KILLED THE TRIGGER I HAD ALREADY MEASURED. A 3-path stat of {HEAD, packed-refs, refs} costs 3.3us and is BLIND to the case the section exists for: a loose-ref write touches refs/heads, not refs/ -- control on this repo, refs/ mtime 1786242163389184305 against refs/heads 1786275154647232807, eight hours apart. It also refused inotify watches on HEAD/packed-refs (git renames a lockfile over them, retiring the inode watch) and pointed at git rev-parse --git-path for linked worktrees. The shipped trigger is a recursive pathname snapshot, 50.1us median, and feeding NO git path to inotifywait dissolved a fourth finding (a mixed event stream letting a ref event drain a queued .md save) rather than defending against it. | I LABELLED THREE PROBE CASES inotify mode AND READ THEIR PASSES FOR 40 MINUTES. inotifywait is not installed on this host, so every case ran the polling loop and the new inotify branch had never executed once. Pre-existing sub-test 9r carried the same false claim in a comment, forcing polling with PATH=/usr/bin:/bin -- the directory inotify-tools installs into. --watch now PRINTS its branch and every fixture asserts it; polling is forced by TODOGRAPH_WATCH_FORCE_POLL; the inotify branch runs against a stub. A probe's LABELS need verifying, not just its numbers. | ONE DEFECT CLASS DROVE SEVEN RE-ADVERSARIAL ROUNDS, AND EVERY ROUND FOUND A NEW ROUTE TO IT. The trigger decides whether to pay the 54.2ms identity probe, so anything it cannot see compares EQUAL and suppresses the probe: a truncated walk, a directory that could not be opened, a read that died mid-directory (which I INTRODUCED fixing round 5), a stat failing for any reason since ENOENT was collapsed with EACCES, and a symlinked refs/heads whose target git follows and this walk must not. All five now report INCOMPLETE and degrade to direct polling. | THE CEILING DID NOT BIND, THREE TIMES. Checked once per DIRECTORY it is no bound when the fanout is inside one -- reproduced at ceiling 5 with 302 stats and complete=True. Counting directories twice conservatively then degraded refs/pull/<n>/head layouts PERMANENTLY, since recovery re-applied the same accounting. Each object counts once now, and the deadline guards every blocking call including next(it), which a for loop advances before the body can check. | THE SECTION'S OWN CONTRACT CLAIM WAS FALSE AND CONSISTENCY CAUGHT IT: I wrote that trigger and post-walk check can never disagree because both read requires_history. load_and_validate populates info.history only inside if check_stale:, so on a non-canonical --cache the check is a no-op while the axis still probed. Armed on requires_history and check_stale now -- and the fixtures moved onto the canonical cache path, so they finally exercise the configuration that ships rather than inspection mode. | BOTH MUTANTS WERE FALSE PASSES UNTIL THE PROBE WAS CHECKED: copied into TMP_DIR they die on import (no PYTHONPATH) or skip the rebuild (no build.py beside them), and a fixture expecting the OLD behaviour reads either as success. | Verified: build OK, 28326 kernel + 17 user-mode, 1319/1319 tooling, test_build 514 -> 535 with 21 section fixtures and 2 mutation controls, lint rc 0 / 0 errors, todo-graph 9/9, CI-parity PASS. TODO-06 remains NEEDS_WORK on §31-§35.
  • 2026-08-11 | 00-infrastructure/TODO-06-todo-metadata-layer §41 | shipped + reviewed (the two mutating repair tools adopt the shared fence tracker) | 1 deferred: .claude/hooks/todo_wrap_reminder.py naive fence toggle, control plane, parked in §38 with reciprocal owner in overnight-runner-improvements-v14
  • 2026-08-11 | 00-infrastructure/TODO-06-todo-metadata-layer §39 (the shared fence tracker becomes container-aware) | shipped 675b97412 + amortised-fill fix 94c19a580 | 15 Codex dispatches over 12 adversarial rounds, 30 findings fixed, 3 accepted to §42 (which gained 3 owner items) | acceptance moved from the corpus to a stateful CommonMark differential (~5.5M generated documents); one non-nil differential recovered 3 real [x] items the old comment latch was hiding
  • 2026-08-13 | 00-infrastructure/TODO-06-todo-metadata-layer FILE_CLOSE | CLOSED 48/48 sections (§42 deferred with stamps + XREF) 480e7cff6 | the sweep found a live regression, not paperwork: todo-orphan-check.py:150 loaded the fence module once per line of every TODO file (from this TODO's own §43 review fixes 5fd27011f), so orphan-check ran 133.7s and lint.sh 147.63s against 22s in the last green CI -- which is why Build Impossible OS had 16 of 30 runs cancelled at its 25-min cap with no green build since 2026-08-12T05:35Z. Fixed to 0.94s / 14.10s with identical findings, structural regression test (400 lines = 1 module load; control fires at 410). Also: 26 resolved Accepted/Deferred stamps annotated (enumerated over all 50, not sampled), 2 Verification [/] closed with fresh evidence, validator seven->ten checks refreshed in 3 sites, §44's inaccurate "owners named" stamp corrected, doc-sync repaired in development-tooling.md + todo-graph.yml. Filed to v14: ci-check.py reads cancelled as not-red; nothing in the pipeline measures a gate's own cost. The "todo-graph: complete" item stays OPEN -- its gate is a week of green CI.
  • 2026-08-13 | 01-boot-platform/TODO-01-boot-protocol-abi-handoff FILE_CLOSE | CLOSED 22/22 sections (§1 accepted -> TODO-20 §1, §22 operator-gated) 8c9c39276 | the sweep's real find was that a [H] deferral had ALREADY been satisfied and nobody noticed: §3's "header -> manifest coverage gate" (the omission half of the ABI trust root -- an F() row missing from dump-fields.inc silently shrinks coverage, and neither the row-for-row diff nor the canonical-sha invariant can see a row that never existed) shipped as check_manifest_completeness() in a197fa2ad, landed inside the EXISTING boot-info-doc-coverage target rather than the separately-proposed boot-info-field-coverage, which is why a name-based search would have missed it. I nearly parked it instead: the item's own text names a Makefile target and tools/boot-info-manifest/*, both receipt surface, so "operator-gated" was the plausible verdict and I had already written it -- what overturned it was reading the live build gate's output (manifest completeness OK (299 struct fields across 17 structs all enumerated by F())) rather than the item's description, then confirming all 12 structs it named are in STRUCT_TO_PREFIX plus three more. The second §3 item (parallelize fixture compiles) IS genuinely operator-gated and not yet due (8 fixtures / ~32s against a >12-or->60s trigger), so it became - [/] with the receipt-surface blocker named in the text. §6's VFS_O_TRUNC [/] closed too: owner 05-storage-filesystems/TODO-04 §15 shipped ba47d939b and the workaround is gone at src/kernel/mm/boot_reserved.c:454. Both Accepted/Deferred stamps annotated RESOLVED rather than deleted. Stale counts refreshed from live runs (manifest 236 -> 345 fields, size 23752 -> 28664, version 9 -> 23; doc coverage 241 -> 345; SUITE=boot 625 -> 3267 + 17). Check 7 refused the commit with POPULATION GREW and was re-recorded deliberately (total 1629 -> 1630, resolved untouched at its 474 floor), with the numbers derived from the checker's own _walk rather than the diff -- that showed the ONLY owner that moved is TODO-01 (42 -> 43) and the only bucket unpaired-ref (859 -> 860), from the fileless check_manifest_completeness ref on the item I had just marked [x]. The staged-check then caught two Verification lines I had pushed over the 250-char cap while refreshing them; reshaped to short lead + sub-bullets, which is the repair the cap exists to force. 6 Verification items stay [ ] as genuinely manual -- VirtualBox, bare metal, and four blocked on unshipped producers in TODO-08/11/22/25/26 -- and the anti-rollback NVRAM item stays manual on evidence, not assumption: virt-fw-vars and efivar are both absent on this host. Verified: build OK, 28326 kernel + 17 user-mode, SUITE=boot 3267 + 17, lint rc 0, todo-graph 10/10, todo-reachability clean {} for this file.
  • 2026-08-13 | 01-boot-platform/TODO-02-uefi-hardening-secureboot FILE_CLOSE | CLOSED 20/20 sections (6 IO rows stay [/] as deliberate parks) 0e2a89601 + 9391be675 | sweep-only mode, since the Implementation Order carries parks and the skill's full-close-out precondition wants every row [x]. The find worth having: a todo-graph query.py deferred sweep showed §15's periodic-worker wiring had ALREADY shipped -- 02-kernel-core/TODO-07 §18 Consumer wiring 1 landed it as b93b6a77 -- and I had just parked it [/] one edit earlier. Verified at source before flipping to [x] (uefi_secureboot_register_monitor() at src/kernel/uefi_runtime.c:1957 arms a 5-min kworker tick; src/kernel/main/boot_desktop.c:137-138 calls it only after kworker_init() returns 0), Deferred stamp annotated RESOLVED rather than deleted, and the stale "blocked on the kworker pool" Notes prose rewritten. The other 6 open-in-deferred items became [/] with the blocker in the item TEXT: S3-resume refresh (owner TODO-26 §3, still [ ] -- checked, not assumed), tampered-state test (UEFI-variable mock layer), the gated commit item, the UKI signed-payload smoke harness, and §18's two -- bare-metal SB acceptance marked operator-gated, signed-artifact predicate blocked on receipt surface. Doc-sync was the largest surface: the shim has been unpinned since aab6b6f64 (MS UEFI CA 2011 expiry) so a stock build direct-boots, yet 5 docs still sold the shim chain as shipped -- README.md's feature table claimed it two rows below "no GRUB, no shims"; keys/README.md described MOK.cer as shim-embedded by default AND showed the in-place sbsign that non-destructive signing replaced; development-tooling.md listed shim in ESP contents and omitted test-secureboot-smoke.sh from Key Files; machine-matrix.md described a MokManager flow a stock build cannot run; INDEX.md was stale by 12 sections. Counts refreshed from measurement: test_uefi_boot.c 32 -> 42 suites, SUITE=boot 3267 + 17 PASS. One auditor finding REJECTED after checking both sides: §12's ShimCA item was reported as a circular blocker (12 -> 20 -> 12), but §20's Accepted: stamp routes ownership TO §12 and §12's back-XREF is provenance -- correctly shaped as-is. Two gates bit and both were resolved without weakening them: todo-staged-check refused parking into a section the same commit > **Verified:**-stamps, so the sweep was SPLIT into shape-repair and stamp-refresh commits rather than opted out of; Check 7 refused POPULATION GREW and total + by_owner were re-recorded together from the checker's own _walk (1630 -> 1631, sole mover TODO-02 66 -> 67, resolved unmoved at 474). Then the push was refused by a tooling FAIL -- four_dispatch_gate D, elapsed=4089ms warn= -- which did NOT reproduce: full pack re-run out-of-band 1356/1356, exit 0. Diagnosed at source rather than retried blind (the test measures whole-hook wall-clock but asserts lock contention; under load the hook's pre-lock subprocesses outrun the 4s holder, so it acquires uncontended and the empty warn= is the tell) and filed to v14 unfixed, since the only edits available are widening the bound. Verified: build OK, SUITE=boot 3267 + 17, tooling 1356/1356, lint rc 0, todo-graph 10/10, todo-reachability {} for this file (was 7 open-in-deferred).
  • 2026-08-13 | 01-boot-platform/TODO-09-cpu-boot-sequencing FILE_CLOSE | CLOSED 11/11 sections (IO row 6 stays [/]: two accepted-XREF residuals to §10) 28f83091f. Unit Tests shipped as src/kernel/test/test_cpu_seq.c -- 7 suites / 12 assertions / TEST_CAT_X86; SUITE=x86 209 -> 221 KVM and 198 under FORCE_TCG=1; full suite 28339 -> 28351 kernel + 17 user-mode PASS; lint 0 errors; smoke matrix 4/4. Mutation-verified on the PRODUCTION source (cpu_security.c:2003 + pc->cpu_id -> exactly one failure at test_cpu_seq.c:217, reverted clean). A re-adversarial pass CUT 4 assertions that had shipped green in the first draft and could not fail on a real boot (feature_mismatch == 0 contradicts §6's tolerate-and-narrow policy; core_type-is-defined is satisfied by a zero slot since CORE_TYPE_GENERIC == 0x00; arch_caps != 0 and ucode_rev != 0 read a payload as a capture signal); the 2 real gaps behind them are parked - [/] in §6 and §9. 10 Unit Tests items reconciled to real symbols, 1 half-bullet rejected as false (hv_vendor non-empty implies hv_flags != 0 -- falsified by the VirtualBox and TCG branches of cpuid_platform.c). Verification 9/11 automated PASS from the matrix + a KVM 2-CPU boot, with 4 marker strings reconciled to the lines the kernel actually emits; boot-clean bullet left [/] for WHPX/VBox/bare metal. Sweep: preamble current-state refreshed (stale pre-fix PAT value + 5 line refs drifted ~290-350 lines), 3 false rollup claims corrected, 4 - [ ] items inside Deferred sections reshaped to - [/] with named blockers -- file reachability 4 -> 0. stub-lint-baseline.json total 1631 -> 1636 / resolved floor 474 -> 475, re-derived from the checker three times as later edits moved it.
  • 2026-08-14 | 00-infrastructure/TODO-03-kernel-test-harness §11 | SHIPPED poisoned-boundary overread fixture (poison_tail.h/.c) + §10 short-tag retrofit + kernel-SEH fault-address fix; 13 new suites, 29442 tests 0 failed, smoke 4/4, Codex 25x | filed TODO-23 §19 (flavor gate), §20 (SEH stack bounds + fault-address provenance), TODO-04 §16 item (vacuous klog/ETW tests), TODO-01 reciprocal (kernel-VA carve) | 0 deferrals
  • 2026-08-14 | 00-infrastructure/TODO-03-kernel-test-harness FILE_CLOSE | CLOSED 11/11 sections (IO row 9 stays [/]: VirtualBox + bare metal, now marked operator-gated) c353815b8 + d9850ffe7 | sweep-only mode, since row 9's park means the full-close-out precondition (every row [x]) does not hold. The find worth having was the close stamp itself: it read "all 8 sections ... 0 manual items pending" and dated 2026-04-19, but §9 shipped 2026-04-22 and §10 + §11 on 2026-08-14, and §9's platform item was never closed -- so the file asserted zero pending manual work while carrying one, and any reader trusting the stamp would have taken the file as fully closed three sections ago. Rewritten with an explicit supersedes note rather than deleted. Suite counts were refreshed from the test files rather than from the stamps, which is what exposed the drift: §6 Notes 7 -> 13 (the review pass that added parallel task-filter + max-cap tests to each non-kmalloc subsystem is what moved it), §7 Test runner 9 -> 11 (its own Verified stamp already said 11), Unit Tests §3 7 -> 5 with the forced-fail suite struck from the list because review struck it from the code, §6 7 -> 13, §7 9 -> 11, preamble 436+ -> 2,874 suites across 114 files. §9's stamps claimed 7/8 items against 9 actual bullets -> 8/9. Unit Tests had no entry at all for §9 or §10 despite both shipping coverage; added OB: namespace locking stress plus the two cleanup helpers and §10's 8 suites. Verification was re-run rather than carried: SUITE=boot 4337, SUITE=mm 1510, SUITE=sched 522, full 29442 kernel + 17 user-mode, 0 failed, 0 leaked -- and the block had also attributed §6's task-filter suites to make test-sched when they are TEST_CAT_MM in test_heap.c:331. The VBox park is evidence-based, not assumed: scripts/machines/run-vbox.sh needs a Linux VBoxManage and this host has none. todo-staged-check refused the first commit for parking into a section the same commit stamped, so the sweep was SPLIT into shape-repair and stamp-refresh commits rather than opted out of. Doc-sync found four confirmed defects in .claude/skills/implement-unit-tests/SKILL.md -- a documented 64-suite cap against TEST_MAX_SUITES 4096 and 2,874 live suites (an author reading it would delete a suite rather than add one), a summary format missing the L leaked column and its CI gate, zero documentation of any of the seven harness primitives this TODO shipped, and no test_harness.c row in a table that instructs itself to stay current -- all control plane, so all filed to overnight-runner-improvements-v14 unfixed. Two honest remainders left in place: §8's item text says 4 harness suites where its own stamps and the code say 6 (repairing it needs a reshape of a 741-char line, beyond a sweep's remit), and §10's Test runner line reads 29368 against its own Verified stamp's 29373 for the same commit, which cannot be adjudicated without rebuilding at that commit. Verified: lint 0 errors, todo-graph 10/10, todo-reachability {} for this file.
  • 2026-08-14 | 01-boot-platform/TODO-10 §23 Cross-Boot Evidence Lifecycle and Epoch | shipped + reviewed (commits 3a1723c3d, 28e03cb81) | page format v3 with a 64-bit publication word, ownership arbitrated at terminal declaration; 6H+6M+5L review findings fixed, 1 accepted -> new §28 (evidence durability across a hardware reset, continuation waiver); 2 residuals parked operator-gated | 29534 kernel + 17 user tests, smoke 4/4, lint 0
  • 2026-08-14 | 01-boot-platform/TODO-10 §24 Panic Collector Publication Latency | shipped + reviewed (commits cf359460e, f68999d96) | retired the bitwise panic_crc32 and klog crash_crc32 for the shared table-driven kcrc32, threaded the panic context down from entry instead of re-deriving it (two sites), replaced the ~2,900 per-byte guarded walks with one protected asm loop (__kstr_read_guarded) routed in page_fault_handler, and split panic_evidence_populate out so record population is testable at all | Codex 6x, 2H+5M+4L fixed, 1M accepted-XREF to §26, 4L rejected | 29612 kernel + 17 user tests, boot matrix 4/4 | 0 deferrals
  • 2026-08-15 | 01-boot-platform/TODO-10 §28 Cross-Boot Evidence Durability | shipped 1ea16cf86 + reviewed d3849ebdd | new cache-writeback module (CLFLUSH+MFENCE, WBINVD fallback, per-call CPUID on the executing CPU); publication word stored last so ordering survives the fallback | 5 residues owned elsewhere (BM Test 5, TODO-04 §8, TODO-14 §5, TODO-06 §1, TODO-10 §23) | WHPX leg unavailable (no Windows interop)
  • 2026-08-15 | 01-boot-platform/TODO-10 §29 Abandoned-Reservation Reclamation on a Parking CPU | shipped 1504a8969 + reviewed 6209e19a1 | SERIAL_CLAIM_TIMEDOUT (bit 16) separates a wedged-UART reservation SPENT on a timed-out wait from one merely TAKEN, so a CPU parking forever hands back what it never spent instead of leaking up to the whole 8-wait budget through a nested dump's baseline; mark is the timeout's linearization point and lands before the byte, carried by a new ORDERED audit in tools/atomic-claim-check because no fixture can observe instruction order | Codex 8x + kernel-quality-auditor + concurrency-evidence-mapper, 0H+10M+7L fixed, 2 rejected with recorded reasoning (interrupted-wait policy, contention-vs-saturation) | 2 filed as new §30 (nested-abort disposition, no-UART contract), both pre-existing | 29836 kernel + 17 user tests, smoke 4/4, KERNEL_TESTS=off clean, lint 0
  • 2026-08-15 | 01-boot-platform/TODO-10 FILE_CLOSE (all 30 sections shipped/deferred) | closed 76a0e3749 | new test_bare_metal.c (12 suites / 64 assertions, TEST_CAT_BOOT; corpus 2943->2955) plus two read-only accessors the spec needed to be testable at all: gdt_get_ist/tss_get_ist (kernel_tss is file-local) and the acpi_fadt_* pure evaluators + acpi_get_fadt (fadt_ptr is set only inside acpi_init and no platform publishes a hw-reduced FADT, so that branch was unreachable); 5 public ACPI accessors became one-line wrappers, behavior unchanged | 6 spec items reconciled with reasons (LAPIC compare would have added a WB MMIO read; degraded_mask==0 would fail on legitimate degradation; cpu_verify_hardening halts on NX failure so smoke covers it; 2 already in test_vmm.c) | 4 Codex test-coverage findings all fixed; every fixture proven able to fail, including an ist4/ist5 swap in PRODUCTION gdt.c and a bogus smoke signal, all reverted | 3 smoke signals added as FAILING assertions (IAPC_BOOT_ARCH:, IST stacks:, Verify: NX enabled) | sweep: header "Still open" named 2 items under wrong section numbers, stack-overflow BSOD item re-pointed from the closed BM Test 1 to the open BM Test 5, 2 stamps annotated RESOLVED, 6 open-in-Deferred items reshaped to [/] with blockers | Verification 3/6 automated PASS, 3 operator-gated (WHPX/VBox/bare metal) | 30009 kernel + 17 user tests, smoke matrix 4/4, lint 0, tooling 1358/1358 | 2 runner findings filed to v14 (skill test-file table drift; Check 7 wedges on a dirty unstaged capture file)
  • 2026-08-17 | 01-boot-platform/TODO-01 §25 Bounded Anti-Rollback Retry | shipped 8d258af03 + reviewed 48cfb4783 | boot_rollback_raise_if_steady() rolled back its own flags on a failed SetVariable "so a future request can retry", but the compositor steady gate fires exactly once per boot, so no future request existed and one transient firmware error left IPOSRequiredSecVersion unraised for the boot; replaced with a bounded retry ladder on kworker delayed work, one registration armed for the chain's whole life at the base cadence with the ladder enforced by uptime_ns() against s_next_attempt_ns (the per-backoff unregister-then-register re-arm transiently needed a SECOND kworker slot and aborted under slot pressure), plus an arming epoch closing the register-then-publish window | 21 Codex dispatches (design, adversarial x3, test-coverage, consistency x9, perf x3, re-adversarial x4) + kernel-quality-auditor + concurrency-evidence-mapper + parity-research-analyst; adversarial, perf and consistency each closed on explicit approve | 2 accepted with owners (give-up durability -> TODO-14 §12; task_create admission race -> 03-memory-concurrency/TODO-06 §13, after deleting a duplicate filing and retargeting to the canonical owner) | 30052 kernel + 17 user tests, smoke matrix 4/4, lint 0, todo-graph 10/10 | WHPX leg not run (powershell.exe absent in this headless environment)
  • 2026-08-18 | 00-infrastructure/TODO-06-todo-metadata-layer §49 Decide Whether alias-staleness Is Producer-Assertable | shipped cb029b1c3 + reviewed 149ec85ec + fixes 5cc9b5a6a/767df8c6a | the promotion verdict came back SPLIT rather than a single yes/no: parameter-contract DRIFT is mechanically decidable for a recognised wrapper and is now asserted, while REACHABILITY is advisory-only with a stated false-DEAD residual, because a Python-only closure calls the four scripts/lint.sh shell-side exports dead and no scanner can prove no unrecognised construct exists | new scripts/lint/check_alias_staleness.py + lint.sh Check 28, advisory rather than blocking, seeded with its own dependency closure so it no longer aborts lint.sh in a non-git sandbox | Codex 14x (7 implementation-time adversarial, post-commit adversarial/consistency/perf, 2 re-dispatch, 2 confirming), 4H+12M+4L fixed, 0 open | tooling 1360/1360 single-instance, test_alias_staleness 50/50, test_todo_fence 705/705 standalone, lint 0 | file was already CLOSED 2026-08-13, so §49 shipped into a closed file and TODO-06 returns to DONE
  • 2026-08-18 | 01-boot-platform/TODO-13 §27 | split §27 into record authorization (§27) + crash-consistent pairing (§28); shipped §27 ace8b6533 + review 9d954bd04; filed residue as §29 | 9 Codex rounds, 21 findings fixed, 3 accepted with owners, 1 rejected with evidence | 31317 kernel + 17 user tests, smoke 4/4
  • 2026-08-18 | 01-boot-platform/TODO-13 §28 Crash-Consistent Record Pairing | DEFERRED, no ship | design review done (5 findings, all Fix: unverified counter index on the read path, UNCOMMITTED has no retained committed value, RDTSC not boot-wide monotonic, status-contract break, budget under-charging) and the implementation built clean; the mandatory tests then pushed .rodata over a 4 KiB page and landed __kernel_end exactly on 0x800000, tripping the BSS guard. Reverted to a green tree, diff preserved at .claude/state/deferred-todo13-s28.patch, deferred [/] -> XREF 02-kernel-core/TODO-33 §7. Measured 347 bytes of BSS headroom at HEAD against the ~1272 KiB TODO-33 §10 recorded on 2026-07-17; filed the exhaustion and two runner findings (no early ceiling sensor, no sanctioned preservation path for a blocked section's diff).
  • 2026-08-18 | 02-kernel-core/TODO-33 §12 Second Tactical BSS Pass | shipped ef09a0579 + reviewed 24809ea09 | the 0x800000 ceiling was live again at 347 bytes of headroom, having already cost TODO-13 §28 (implemented, design-reviewed, reverted because its unit tests moved .rodata across a page), so every remaining kernel section sat one page from the same revert; assessed the three candidates §10 left unassessed against §10's bar and ruled out two with recorded reasons (tasks is written from the PIT IRQ and #NM paths with sti in phase 1 against task_init in phase 3; ctrl_windows has no ctrl_init caller anywhere, which static BSS is what makes survivable), converting s_recovered (klog.c, 164000 bytes) instead | BSS end 0x7d7000, ~164 KiB reclaimed | review found the first-fit collision was DETERMINISTIC not a corner case: pmm_alloc_contiguous scans from frame 0 with no cursor, so the recovered-entry pool came back as exactly the previous boot's 32-frame crash region on the ordinary crash-then-reboot path and would have silently retired crash_recovery.log every time; fixed by klog_recovered_pool_acquire holding the colliding run across a second request, plus a priority-inversion fix releasing the pool if this boot's own crash region cannot be allocated | Codex design + test-coverage + adversarial x2 + re-adversarial x5 + post-commit consistency/perf approve | 31341 kernel + 17 user tests, smoke matrix 4/4, lint 0 | filed the blanket-replace near-miss to v16 (ab61cb468)
  • 2026-08-20 04:45 SAST: 00-infrastructure/TODO-06 §50 shipped + reviewed (61f3c1970, review edb21fd82) -- identity-gate.sh now classifies an unreadable snapshot protocol into 16 stable rc 3 tokens plus 2 reserved guards, base fully adjudicated before the head is probed; 40 new fixtures. 28 Codex rounds; 4 findings accepted with owners into new §51/§52/§53/§54.
  • 2026-08-27 | 00-infrastructure/TODO-06 §55 | shipped c5488040f + reviewed a51fcc88c | the identity gate's byte-identical fast path stops materializing two full worktrees: 129 git invocations to 39, 2 checkouts to 0, 5,156 file creations to 56, fixture group 569 s to 483 s. ~30 adversarial rounds; 3 accepted residues XREFed to §56/§58. Pushed with SKIP_TOOLING_SUITE after test_build failed 794/795 in the pack twice and passed 795/795 standalone five times (filed in v17).
  • 2026-08-27 | 00-infrastructure/TODO-06 §56 | split §56 -> §59 before implementing (8 items at the raised split bar); shipped 36999f871 + reviewed 11767fa93; six Codex legs found ten fixes including a regression the ship commit introduced in cleanup's signal predicate (caught independently by two legs); §60 filed with a continuation waiver for the remaining 51 name-resolved TMP_DIR uses; test_build 815/815, tooling 1367/1367, 32497 kernel + 17 user-mode tests.
  • 2026-08-28 | 00-infrastructure/TODO-06 | FILE CLOSED b72860335 | all 60 sections DONE (§42 and §57 deferred with stamps + XREF), so the file left the queue after five months. Second close-out (the first was 2026-08-13 at 48 sections): refreshed test_build 627->844 and fence 707->705 from real runs, re-executed eight Verification items rather than re-dating them (two had drifted into false claims -- todo-graph-ready no longer returns empty output, backlinks now returns three referrers), annotated §11's "no gate runs it" Deferred stamp RESOLVED by §16 and closed §12's parked wiring item on the same evidence, and ticked todo-graph: complete on 60/60 sections plus 11 consecutive days of green build.yml. Doc sync: four verified drifts fixed, including a dedicated identity-gate section in development-tooling.md that CLAUDE.md had been pointing at for months without it existing.
  • 2026-08-28 | 01-boot-platform/TODO-01 | FILE CLOSED 2b077461d | all 27 sections DONE (§22, §23, §26 deferred with stamps; §1 keeps an open USB-scratchpad-clamp XREF to TODO-20 §1), so the file left the queue. Second close-out (the first was 2026-08-15 at 21 sections): refreshed the suite from 30009 -> 32542 and SUITE=boot 4904 -> 5028, re-ran both fixture harnesses rather than re-dating them (stale-ABI executed=3 failed=0, rollback executed=4 failed=0), and re-cited the TCG leg against a same-day CI run instead of a two-week-old one. Three verified drifts fixed: §20's unfilled <hash> placeholder, §22 citing bootx64.c:7036 (boot-entry selection logging) for the pre-jump 4-tuple check that actually lives at 7177-7204, and §26's 2026-08-19 grep evidence that §27 invalidated (8 hits, not 1) while leaving the section's premise intact. The Verification anti-rollback item claimed the harness it wanted was "unowned work today"; §24 had shipped exactly that, so it moved [ ] -> [/] with the four PASS fixtures cited and an honest note that they cover the RAISE half only -- fixture D asserts ANTI-ROLLBACK REFUSAL is ABSENT, so nothing exercises the downgrade halt firing, filed as a parked [/] fifth fixture in §24. Doc sync: boot-protocol.md and boot-info-fields.md both claimed BOOT_INFO_VERSION = 21 against a live 23 that the changelog already recorded, and development-tooling.md listed six of the twelve gates build.yml runs.
  • 2026-08-28 | 01-boot-platform/TODO-10-bare-metal-hardening.md §31 SHIPPED e194e0f8f + stamped 512348a52 | BSP ring-0 entry stack moved from an unguarded 16 KiB BSS array to a PMM-backed guarded run (frees 16 KiB of image; firmware-floor headroom 4 KiB -> 16 KiB) | premise corrected on review evidence: Phase 0/1 never run on this stack, so §32 was opened for the real execution stack and leads with the finding that pmm_init frees EfiLoaderData while Phase 0 executes on it | #DF now attributes stack overflows through CR2 corroborated against the run | class audit filed 2 unguarded user-task ring-0 stacks + the kernel-wide stack-clash gap into 02-kernel-core/TODO-10 §13 | Codex 8x, 3H+10M fixed, final approve | 32,562 kernel + 17 user tests, smoke matrix 4/4
  • 2026-08-29 | 01-boot-platform/TODO-10-bare-metal-hardening.md | FILE RE-CLOSED 175ccb7ec | all 32 sections DONE (§2, §7, §8, §18, §25 deferred with stamps), so the file left the queue after §32 shipped. Sweep-only re-close (the full close-out was 2026-08-15, before §31/§32): refreshed the suite 30009 -> 32677 and SUITE=boot 4904 -> 5167 from real runs rather than re-dating them, and annotated 11 Accepted/Deferred stamps whose named target has since closed. Three annotation candidates were REJECTED after checking the target: two point at items still [/] (cross-CPU panic freeze, GS-validated identity cache), and the TODO-14 0x80000 stamp names firmware clobber across a reset, which the target's allocator-reservation item does not resolve. Completion-first: §31 and §32 both defer their bare-metal acceptance to BM Test 5, which carried no item for either -- filed one distinguishing the two guarded stacks from the §2 task-stack/IST1 path. Doc sync: CLAUDE.md called the guard table "32-entry" against a live VMM_MAX_GUARD_PAGES of 640 and omitted both new guarded stacks from its install-site list; kernel-address-space.md pinned __kernel_end at 0x7ff000 against a measured 0x7f9000 (28 KiB free), now sourced to the build output instead of a literal.
  • 2026-08-29 | ADVANCE drain | 01-boot-platform/TODO-24-blackbox-service-partition.md | 14 open-in-deferred items repaired in a file the oracle classes DONE, so nothing would ever have revisited them. Six got a REAL cross-TODO owner in the LEAD line (the only place stranded_deferrals.py:181 looks, so a sub-bullet XREF would have been invisible): four FAT32 dirty-bit/fsck defects to 05-storage-filesystems/TODO-04 §6, two klog fallback items to 02-kernel-core/TODO-04 §15, each with a reciprocal item filed on the owner side. The other eight are parked with honest blockers and NO invented owner: the four boot_storage.c retention items are TODO-24-owned with no external prerequisite, the MarkGood-gating half of the durable-write retrofit is operator-gated (irreversible boot-state policy), and the two WER items are deliberately ownerless because 02-kernel-core/TODO-23 owns the code but none of its three open sections covers WER persistence. No bulk flip.
  • 2026-08-30 | 01-boot-platform/TODO-12-early-entropy-random-seed.md | FILE CLOSED a069b9d97 | sweep-only close-out (§9 stays [/] on 02-kernel-core/TODO-14 §8 hive-load wiring, so full close-out mode does not apply); the oracle already classed the file DONE after §11 shipped. Four XREF item references repaired: three carried drifted line numbers into TODO-04 (445/446/447 -> 451/452/453, named items all still open) and the fourth was genuinely dangling -- TODO-24's drain commit 3ff5fe23c had RENAMED "Durable-write retrofit for boot-state X:\ writers" and nothing reported the break. The SUITE=security Verification row said 367 + 16 (2026-06-13) against §11's own 3611 + 17 for the identical command; re-measured on this tree rather than copying either forward (3622 + 17 PASS), and the 11-test gap from §11's stamp is explained by the review commit d8f2ee148 adding 15 asserts after that measurement. The landing summary narrated §1-§10 and stopped, and the Unit Tests inventory had no entry for §11's two suites; both fixed. REJECTED the auditor's owner finding on the two bare-metal Verification rows: they carry "Blocked: manual -- run on rig", which is the close-out skill's own prescribed shape, and reachability reports the file clean. Doc sync owed by §11 and unpaid at ship: boot-protocol.md claimed boot_reserved_populate_from_info() covers "payload descriptors with FLAG_RESERVED" without qualification, which the §11 seed-length skip made false; bare-metal-gotchas.md gained a Boot Handoff Trust group (a producer-set FLAG_RESERVED is a REQUEST, not proof of pinning; canary_init() dereferences pre-IDT) with the matching CLAUDE.md short-form line.
  • 2026-08-30 | ADVANCE drain | 01-boot-platform/TODO-19-usb-boot-hardening.md | 17 open-in-deferred items repaired in a file the oracle classes BLOCKED, which the normal pipeline never revisits. Ten now carry a resolvable cross-TODO owner in the LEAD line (verified by running stranded_deferrals.py's own _SECTION_RE / _TODO_REF_RE / _resolve_target over every new lead rather than assuming the shape parses): §8's two klog items to 02-kernel-core/TODO-04 §15 and §16's four SMP-serialization items to 04-drivers-hardware/TODO-10 §8, each with a reciprocal filed on the owner side, plus §1's boot-LUN park and §11's three EHCI items whose owners were already named. One blocker was STALE rather than real -- §8's "needs a VFS truncate op" prerequisite has shipped (vfs_truncate at include/kernel/fs/vfs.h:196 / src/kernel/fs/vfs.c:885, FAT32 wired), so the item was re-owned to the klog side with the correction recorded. Six are deliberately ownerless and say so: §5's EP0-abort design, §7's xHCI Supported Protocol port-identity walk and §15's two boot_phase3 splash-ordering items are TODO-19-owned with no external prerequisite, and §10's timeout knob is parked for the honest reason that no caller wants it. One item was simply SATISFIED: §1's commit row, landed as ef94633b0. No bulk flip; each of the seventeen was judged on its own text.
  • 2026-08-30 | 01-boot-platform/TODO-01-boot-protocol-abi-handoff.md §28 SHIPPED c2aa1fb65 + stamped 5abfc9efb | per-type payload length contract before reserving: a shared min/max table (include/boot/boot_payload_limits.h) compiled and static-asserted by BOTH the loader and the kernel, an enum-exhaustive predicate, a 768 MiB aggregate ceiling, a singleton rule, and boot_reserved_payload_is_pinned() so a consumer can never dereference a range the pass declined. The numbers come from the PRODUCER, not from estimation, and four of eleven types declare no bound at all because nothing emits them -- the honest answer rather than a guess. EIGHT review rounds plus a three-leg post-ship wave, and the honest summary is that the contract was the easy half: rounds 2 through 7 were almost entirely defects the previous round's fix introduced, all in one interaction, because the new table-wide rules depend on the other descriptors and on walk order and warm-update is consumed BEFORE the pass runs. What settled it was a simplification rather than another patch (type 9 takes no table-wide rule and shares its admissibility with its consumer by CALLING it), and round 8 confirmed convergence. Findings fixed: 6H+11M+1L, including a singleton rule that would have broken RANDOM_SEED's documented multi-descriptor contract and silently degraded the CSPRNG, an admission query that matched slot number and so aliased unrelated handoffs, and three successive versions of a drift assertion that asserted nothing. Warm-update cardinality was NOT bolted on: it needs a rule both phases can apply, so it is section 29 with an IO row rather than a park inside the section being stamped, which would have stranded it. Guard controls: neutering each guard fails 1-3 assertions; an unhandled enum value fails the build; a one-byte table change fails BOTH the kernel and the loader build. A probe control ran first and earned it -- two earlier control attempts read "0 failing assertions" for every guard, which looked like four dead guards and was a broken grep. 32,764 kernel + 17 user tests, smoke matrix 4/4.
  • 2026-08-30 | 01-boot-platform/TODO-01-boot-protocol-abi-handoff.md §29 SHIPPED 8fc5b53d3 + stamped 5cb2ecc25 | one warm-update descriptor, chosen identically by both phases. Two phases read the type-9 table at different times and both acted on EVERY admissible descriptor; boot_warm_update_selection_get() now decides once and SEALS the answer, and both phases read that record rather than re-deriving one. The rule is refuse-all, not first-wins: two preserved-state regions is a malformed handoff the incoming kernel cannot arbitrate, and cold init is always safe. Cardinality is counted BEFORE admissibility, because boot_payload_validate() lets an OPTIONAL descriptor through with unknown flag bits by design. Five adversarial rounds went almost entirely into the TRANSACTION rather than the rule: an authorization must never be revoked after a phase acted on it (forcing AMBIGUOUS on a late mismatch would strand reattached state with its pages returned to PMM); the reservation must read the seal ABOVE the capability gate, because that bit is one of the conditions the seal already evaluated; SELECT_ONE is a decision and pinned is the commit, set only after the whole table is admitted and only for an extent inside the frames PMM tracks. Round 4 also FALSIFIED the premise the section was filed on -- refusing to pin reclaims nothing, since a warm region is held by its BOOT_MMAP_WARM_UPDATE map type, not by the reservation table -- so the section text was corrected and the map-ownership policy filed as §30 rather than quietly left as a claim. Post-ship review: adversarial clean, consistency 1M, perf 1M, re-adversarial 1M, kernel-quality auditor 3M+4L, plus a concurrency inventory that caught the seal's SMP comment being true of production and false of the KERNEL_TESTS build. 6M+3L fixed. Two regression cases are DEFERRED on the image ceiling with a measured reason: .text had 79 bytes of slack, so the fixes fit and their evidence did not; filed on 02-kernel-core/TODO-33 §7 beside the other ceiling-parked work rather than dropped. 32,845 kernel + 17 user tests, smoke matrix 4/4, WHPX headless green.
  • 2026-08-30 | 01-boot-platform/TODO-01-boot-protocol-abi-handoff.md §30 DEFERRED 5bac4855c + swept 091eed994 | handoff memory claims must match what PMM tracks. Six questions; two were POLICY and shipped at zero image cost, one was already satisfied by §29's audit, and three are CODE now parked on the kernel-BSS/USER_BASE guard. Decided NO on letting a warm extent raise PMM's trackable ceiling, for two reasons that are both checkable: BOOT_MMAP_WARM_UPDATE is numerically 15 and so is EfiUnacceptedMemoryType (UEFI 2.9 sect. 7.2.1, confirmed against the spec, and bootx64.c:9432 passes desc->Type through verbatim), so a scan keyed on 15 would stretch the bitmap over memory a confidential-computing platform must ACCEPT before use; and it is unnecessary, because every pmm_alloc_* path is bounded by total_frames so a frame above the ceiling can never be handed out either. Decided HOLD, not reclaim, for a refused warm extent: reclaiming would trust that same ambiguous type and hand unaccepted pages to kmalloc, which is a fault on real hardware rather than merely lost RAM. Both decisions are recorded at their decision points in pmm.c and boot_reserved.c, and the producer-side tag that would make either reversible is filed on 03-memory-concurrency/TODO-11 §1 with a reciprocal XREF. The design review earned its dispatch by falsifying the section's own starting design: generalizing §29's last_frame < pmm_get_total_frames() test proves bitmap REPRESENTABILITY, not existence, because pmm_init sizes the bitmap from the highest RAM endpoint and every MMIO window, unusable region and firmware hole BELOW it passes -- so the predicate asks the memory map for full interval coverage instead. That implementation was written, built and MEASURED before being reverted with the tree green: +8746 bytes of .text/.rodata in test_boot_reserved.c and +2017 in boot_reserved.c against the 4096 bytes HEAD has below USER_BASE. Shipping the ~2.1 KiB production half without its refusal tests would have been false completeness, so the whole code half is parked on 02-kernel-core/TODO-33 §7 with the design recorded item by item. The gate opt-out used for the deferral commit was earned rather than asserted: the staged C/H diff was proved codegen-identical to HEAD by disassembly, after the first probe turned out to be hashing an empty stream and the first control turned out to be a compiler-foldable no-op. FILE_CLOSE ran sweep-only (a [/] section blocks full close-out): refreshed the ABI manifest to 348 fields / size 28680 / version 24, SUITE=boot to 5299 and the full suite to 32,845 kernel + 17 user, and re-ran BOTH QEMU fixture harnesses rather than carrying them, because §28/§29 bumped BOOT_INFO_VERSION 23 -> 24 and that is the exact drift the stale-ABI harness exists to catch (executed=3 failed=0, executed=4 failed=0). Filed two runner findings, including that scripts/overnight/bss-headroom.py already answers this section's blocker in 0.1s and its own advice says to run it before implementing, yet nothing in the SECTIONS phase calls it.
  • 2026-08-30 | 01-boot-platform/TODO-13-tpm-measured-boot-attestation.md §32-§35 DEFERRED f35e245a1 9848c2680 + shapes repaired e15a1e995 | the file is now fully parked on the kernel-image ceiling, and the measurement is what makes that a fact rather than a guess. §32 was SPLIT first: its manifest returned SPLIT-RECOMMENDED at 9 items, and the seam is fixture CAPABILITY rather than subject matter -- tpm_fake_tis.c holds exactly one NV index, has no provisioned authority, no per-index failure rc and no TPM2_CC_CREATE_PRIMARY, so four items could not be written at all until it grows those. §32 kept the five writable on today's fixtures, new §35 owns the extension and the four gated on it, both at 5 items, and the six in-file references that named §32 for the moved work were repointed. Then §32's first three tests measured +5,216 bytes of .text and tripped BSS COLLISION. §33 is the sharper datum: its production change ALONE is +96 bytes (llvm-size 4737085 -> 4737181) and that moved __kernel_end from 0x7ff000 to exactly 0x800000, because the image sections are page-aligned and chain -- so the tree admits essentially NO new kernel code, not the one page bss-headroom.py reports. §34 and §35 are therefore parked UNSTARTED on that measurement rather than each attempted and reverted, which is the honest call and saves two design reviews on sections that cannot link. Both design reviews earned their dispatch by falsifying a plan premise: §32's caught that the two wrapper refusals are mutation-DECORATIVE (deleting either early return falls through to tpm_authz_write_record, which re-reads the same anchor at tpm_authz.c:782-783 and returns the SAME status with no write, so only a read-exactly-once transcript assertion pins them), and §33's caught that TPM_BASELINE_BUSY's "nothing was submitted" contract goes FALSE the moment snapshot can return it, since tpm_baseline_verify_detail completes its NV read at :1126 before snapshotting at :1206. Both outcomes are recorded in the section bodies and both diffs preserved (.claude/state/deferred-todo13-s32.patch, -s33.patch), so each redo is apply-then-re-verify. FILE_CLOSE repaired all 32 of the file's open-in-deferred items one at a time against their own stamps -- five marked operator-gated, ten recorded honestly as parked WITH their section rather than technically blocked -- taking the file's reachability report to empty, and split two pre-existing 1,167 and 1,033-char leads into sub-bullets rather than wrapping them. Filed the SECOND occurrence of the missing pre-implement headroom probe against the v18 item that predicted it, with the sharpening that the probe must fire for any src/kernel/test/ target and not only for sections adding static data.
  • 2026-09-03 | 01-boot-platform/TODO-14-boot-diagnostics.md | FILE CLOSED d50b09aca + counts 605bb8559 | sweep-only close-out (13 of 20 sections are [/], so full close-out mode does not apply); the oracle already classed the file DONE after section 20 shipped. All 24 open-in-deferred items reshaped one at a time: 17 now carry a cross-TODO owner and 7 are operator-gated, and the split was CHECKED rather than assumed by running stranded_deferrals.py's own _TODO_REF_RE / _SECTION_RE / _resolve_target over every new lead (17 resolvable, 0 unresolved). Two XREF targets had closed with nothing reporting it: section 8's blocker 02-kernel-core/TODO-25 §7 shipped 2026-07-20 (4b541c54, task_acct_sample() publishes the per-process CPU time it named), and section 6's TODO-03 §14 shipped 2026-05-02 but was only ever a reuse SEED. Section 8 is NOT re-opened, because a second gate binds first: bss-headroom.py measured 47 bytes of .text slack today, so it is re-owned to 02-kernel-core/TODO-33 §7 with the resolution recorded rather than left stranded. Four stamps read as open work that is not: section 14's Deferred stamp still listed section 18's item, shipped in 8cf0a2f33; both section 5 Accepted stamps pointed at section-5 items that do not exist (the work landed in section 14 41753ca67 and the IXFS park moved to section 12 with its true owner); section 11's Notes claimed three items were open when all seven are [x], and its stamp read 6/9 against the pre-split body. Doc sync owed by sections 18 and 20 and unpaid at ship: a new "Uninitialised .bss in the Loader" group in bare-metal-gotchas.md plus the CLAUDE.md short-form bullet, carrying the two halves that make it actionable (reset first, because a constant cookie tells poison from ready and never this boot from the last; and volatile or clang narrows the cookie to one byte and deletes the wide compare, measured on the real -O2 objects). The count corrections were SPLIT into their own commit rather than opted out of: todo-staged-check reads any modified Verified: line as "stamping this section now" and refused the parks alongside them, which is a true reading of the diff and a false reading of the intent. Filed two runner findings, including that lint.sh Check 24 reports 192 reachability items where the truth is 1417 when build/todo-cache.json is absent (controlled in both directions on one tree; build.sh clean deletes it). Re-run at close-out: === BUILD OK ===, 32,845 kernel + 17 user tests.
  • 2026-09-03 | ADVANCE drain | 01-boot-platform/TODO-15-visual-post-display.md | 19 open-in-deferred items repaired efd7d59d1 in a file the oracle classes DONE, which the normal pipeline never revisits. Twelve are kernel .text that cannot link against the 47-byte ceiling and now carry a resolvable XREF to 02-kernel-core/TODO-33 §7: the panic-path NVRAM write on the sleepable UEFI RT mutex, section 2's three POST16 coverage gaps, the unbounded raw header render helpers, the BGRX-assumed colour packing, and the failing-stage preservation. Seven are operator-gated and say why: sections 9, 10 and the section-13 panic display are all downstream of a Tier 2 splash DESIGN that has not been settled, which is a decision and not a prerequisite, so inventing a TODO owner for them would have produced a park that looks routable and is not. The scope was taken from todo-reachability.py's own per-section attribution, which mattered: the first attempt read a line listing by eye, reshaped 26 items, and caught seven that sit in the file-level Unit Tests and Verification blocks where manual bare-metal and on-screen checks must stay - [ ]. Reverted and redone against the tool. Seven stamp line pointers re-resolved from the current bodies.
  • 2026-09-03 | 01-boot-platform/TODO-23-boot-watchdog.md §7 DEFERRED c9aadb97b + FILE CLOSED b32b5ef53 | the last open section was written, measured, and reverted. §7's two live items are a direct Intel iTCO fallback for when no ACPI WDAT exists and memory-space GAS support for the WDAT driver; both were implemented against the PRIMARY Intel datasheets rather than a driver, because Linux iTCO_wdt is GPL-2.0-only and incompatible with this GPL-3.0-only tree. The ICH9 316972-004 and ICH10 319973 PDFs were fetched and read directly after the spec researcher returned every load-bearing constant as UNSOURCED: TCOBASE is PMBASE+0x60, GCS NO_REBOOT is RCBA+0x3410 bit 5, TCO_LOCK is TCO1_CNT bit 12, TCO_TMR is a 10-bit field at ~0.6 s per tick, and the reset lands on the SECOND expiry -- all quoted, and the two generations verified register-identical. The Codex design review returned 7 findings and all 7 were fixed rather than accepted; the two that outlive the parking are a LIVE defect in the shipped I/O path (gas_usable reads neither GAS access_size nor bit_offset while gas_read/gas_write size the transaction from bit_width) and the demonstration that a negative not-usable-RAM test still admits ACPI reclaim, NVS, runtime and persistent memory, because pmm.c:172 counts only conventional/loader/boot-services. The blocker is size and only size: bss-headroom.py measured 47 bytes of .text slack at c6b8af000 against ~11 KiB of new code, and the build failed on the BSS-collision guard at 0x803000, three pages over. That was MEASURED against a HEAD baseline rather than assumed to be the change's fault. Preserved at .claude/state/deferred-todo23-s7.patch with a reciprocal item on 02-kernel-core/TODO-33 §7. Close-out then reshaped all 31 open-in-deferred items to empty and found an ownerless capability the deterministic tools could not: §5's Notes named three follow-ups, §7 had taken two, and the third (persist the WDAT boot-status through boot_info) was pointed at by TODO-01:44 as this file's §6 -- which is the VPD countdown display and never covered it. Filed in §7, both pointers corrected. Stale stamps re-measured rather than estimated: boot suite 2794+16 -> 5299+17, smoke ~2.06s -> 2.740s, while "16 cases / 17 assertions" was checked and left alone because it is still exact. The pre-push tooling gate refused on the known load-sensitive s30 mutation flake at 843/844; the pack was re-run out of band on the identical bytes at 1372/1372 and the receipt route used, not SKIP_TOOLING_SUITE=1.
  • 2026-09-03 | 01-boot-platform/TODO-29-boot-perf-health-observability.md §21 DEFERRED 6c67e8e26 + shape repair c8a20c0b5 + FILE CLOSED c7be5d98f | the last open section was parked BEFORE its first line of code, which is a departure from §19/§20/TODO-23 §7 and was argued from measurement rather than convenience: bss-headroom.py reports 15 bytes of .text slack (precision: section-exact, tightest: .text) and llvm-nm --print-size puts the smallest comparable helper already shipped in the consumer file, boot_health_secureboot_name, at 30 bytes on its own -- twice the whole budget before an emit loop, a name table or the publish store. The Codex design review agreed independently ("Do not implement merely to reconfirm the already section-exact 15-byte limit") and the sensor's own advice says park before implementing when TIGHT. It also found a real defect in the PLAN, which is the part worth having paid for: storage_unsafe is NOT the degraded set. It is populated only for FATAL-fallback steps that ended SKIP, so the async_rc == BOOT_DEGRADED branch at boot_storage.c:531 leaves it zero and the sequential branch at :560 discards every initializer's return value -- a degraded_storage_drivers array built from it would have read EMPTY for a driver that explicitly failed, inverting the section's whole purpose. That, the rejected SUBSYS_AHCI/SUBSYS_NVME widening (SUBSYS_COUNT 30 against a _Static_assert cap of 32, so four more forces degraded_mask to uint64 and a BOOT_INFO_VERSION bump), the named-{bit, name}-entries decision, the publish point before the AHCI suppression branch rather than before blkdev_register_all(), and the docs/boot/boot-health-schema.md row the redo owes are all recorded in the Deferred stamp, so the redo is implement-then-verify with no patch to lose. All 57 open-in-deferred items across the 12 parked sections were reshaped one at a time: 5 sections carry a real cross-TODO owner (8 -> TODO-23, 11 and 14 -> 05-storage-filesystems/TODO-04, 13 -> TODO-03 §20, 15 -> 02-kernel-core/TODO-22) and 7 are operator-gated and say why, and two - [ ] -> XREF: lines in §8 and §18 were ownership statements wearing a checkbox and are plain bullets now. Close-out found a mis-pointed owner no deterministic check could see because the target EXISTS: §13's stamp and its IO Depends-On named 01-boot-platform/TODO-01 §11 as the boot history owner, which is Capability Negotiation and Degraded-Feature Flags; BOOT_HIST_RING_LEN is owned by 01-boot-platform/TODO-03 §20/§21, both shipped. Five drifted citations fixed and each verified first: a 3/6 stamp over a 5-item body, 470 SSDT main slots against SSDT_MAIN_COUNT 477, a boot_perf_budget.h:31 citation for a DESKTOP_READY string that is not in that header at all, two build/smoke-test.stripped.log line citations against a file that is regenerated per run and is currently empty (the exact staleness §20's own text warns about), and boot_trend.c:268 for an early return that is at :255-262. The Unit Tests test-runner note claimed 5 pure-helper suites covering §1/§2/§3/§5/§8; the 5 suites in test_boot_health.c all cover the §2 Secure Boot classifier, §5's coverage is 6 suites in test_mat_violation.c, and the §1/§3/§8 helpers it names do not exist, which is why those items are open. Doc sync owed and unpaid at §3's ship: boot-health-schema.md still called boot-trend.json planned, described it as aggregating recent_boot_times_unix and perf_breaches when its entries are {boot_seq, unix_time, phase_durations_ms}, and named itself the CI-gate owner when TODO-29:161 hands that to TODO-28 §9; black-box-artifacts.md had no boot-trend.json row at all. One auditor finding REJECTED on evidence: 1935x1080 is not a transposition, resources/backgrounds/background.jpg measures 1935x1080.
  • 2026-09-03 | 02-kernel-core/TODO-02-kernel-configuration-policy.md §12 DEFERRED 4e951aea2 + FILE CLOSED a7d95ecbb | the file's last open item was a privileged production write path for tunables, parked BEFORE any code on the same ceiling as the three sections before it: bss-headroom.py reports 15 bytes of .text slack, section-exact, against a new NtSetSystemInformation set class plus its privilege gate and name marshalling. No design-review leg was spent, because the blocker is a measurement and not a design question; the design of record was written from verified evidence instead, so the redo starts from a design rather than a blank page: the set class rides the stub at nt_syscall.c:1556, marshals with the probe-then-copy discipline the read path already uses at :934, dispatches to kernel_tunable_set(name, value, TUNABLE_SET_PRIVILEGED) against tunables that already register TUNABLE_PRIVILEGED (quota_config.c:151), and gates on SeSinglePrivilegeCheck(&SeSystemProfilePrivilege, ssdt_previous_mode()) exactly as the performance-counter class does at :1265. Two alternative routes were checked and rejected in writing: the registry merge is itself parked on the operator-reserved §3 ordering decision, and a tunable.<name>= boot argument cannot reach the parser as authored, because boot_args_parse_cmdline hard-fails the WHOLE cmdline with BOOT_ARGS_ERR_OVERFLOW on any key over BOOT_ARG_NAME_CAP 31 (config.c:357) while the longest tunable key is 37, and an unknown non-kernel. key is dropped unrecorded (config.c:367). The close-out then found the staleness that mattered: §8's Notes, Deferred stamp and three [/] items ALL said the write path waits on the SRM building SeSinglePrivilegeCheck, which shipped 2026-07-05 at privileges.c:241 -- but only HALF the stamp was stale, because the per-token lock it also named did NOT ship and sep_token_holds (privileges.c:171) still scans tok->Privileges[] unlocked, so the residue was repointed at its real owner TODO-15 §4 rather than annotated RESOLVED. §8's Accepted stamp claiming copy_to_user is not fault-recoverable was genuinely resolved by TODO-23 §13 commit c2d25f639 (cpu_security.c:674 delegates to __uaccess_copy_to), annotated with the note that the mechanism that shipped is a static RIP-keyed table and not the per-CPU safe_return_rip slot the XREF named. The [!IMPORTANT] Current state block, the second thing a reader sees, still claimed there is no typed config API, no safe-mode object and no tunable registry and that kusd_init() does not populate the KUSD policy fields, against eight shipped sections and kusd_time.c:179-189; refreshed to the real shipped/open split. Two commit \pending`placeholders resolved tofb050e700and2d3b2fb07, two stamp line pointers re-resolved (TODO-16 84 -> 155, TODO-05 155 -> 157), and the make test-bootclaim of3209 kernel + 16 userfrom 2026-06-20 re-measured to32845 + 17on KVM and32819 + 17underFORCE_TCG=1, both exit 0, which also closed the TCG and KVM legs of the platform item and left WHPX, VirtualBox and bare metal operator-gated. All 13 open-in-deferreditems in §3 and §4 were reshaped one at a time with a named blocker owner each, and markedoperator-gatedwhere the §3/§4 reorder decision binds, sotodo-reachability.pynow returns{}` for the file.
  • 2026-09-03 | 02-kernel-core/TODO-04-system-logging.md §14 SHIPPED-PARTIAL 56e11533e + §16 item SHIPPED 24396db0f + §15/§16/§17 DEFERRED c99a24340 + FILE CLOSED eda8ad8a9 | the first section in four to ship real code against the ceiling rather than park whole, because the fix was chosen for its image cost. §14's latent overflow was a char tmp[8] holding the decimal digits of a uint32_t sec, so any value past 100,000,000 (~3.17 years uptime) walked off a stack buffer; the shipped bound sizes the buffer from KLOG_DEC_DIGITS_MAX(sizeof(uint32_t)) in klog.h and pins it with _Static_assert(sizeof(tmp) >= KLOG_DEC_DIGITS_MAX(sizeof(sec))), which costs the image ZERO bytes -- __kernel_end and the .text budget were byte-identical before and after -- and the assert was verified in BOTH directions rather than assumed, narrowing the buffer by one failing the build with that exact message. test_usermode.c's KLOG_WIRE_TIMESTAMP_MAX now DERIVES from the same macro (15 -> 17) instead of restating a digit count, which is what let the two drift twice before: 12 assumed 5 digits and 15 modelled the 8-byte buffer. The runtime guard-byte test the section also asks for was written IN FULL, measured, and reverted with the tree green: Codex adversarial raised its absence as [medium] and the finding was ACCEPTED as blocked rather than rejected, with both legs measured -- the bounded-helper extraction the reviewer recommended fails on its own, and helper-plus-test overshoots further. Re-adversarial then caught that the comment recording those measurements had conflated the raw allocated end with the PAGE-ALIGNED __kernel_end the guard actually compares (build/kernel.map 0x7ff000; scripts/build.sh:402 takes the highest b/B symbol) and had overstated the assert as catching a widened snapshot.timestamp when it tracks sec, which an explicit (uint32_t) cast holds at 32 bits -- both verified at source and corrected in the code and both TODOs. §16's magic-test item landed for the opposite reason to everything else this session: it FREED .text rather than spending it. test_klog_crash_magic and test_etw_session_magic had EMPTY bodies and were registered, so the runner reported two passes that verified nothing; deleting both and pinning the constants with _Static_assert (to their value AND to the ASCII they spell, verified non-vacuous) moved the .text budget 15 -> 95 and .rodata 1794 -> 1826, and the coverage artifact 3212 -> 3210 functions with assertions unchanged at 14252. Adversarial caught that the first draft of the explaining comment named the assert macro literally, and scripts/test-coverage.sh:50 is a bare grep -c with no comment filter -- so a fix for false coverage would have shipped one phantom assertion of its own. Reworded; the counter itself is left alone and filed, because 33 comment-borne tokens already exist corpus-wide and correcting it moves every reported number at once. The session's real finding is structural, not in this file: every kernel section deferred today funnels into 02-kernel-core/TODO-33 §7, which is cascade-blocked on §3, which is operator-deferred pending todo/answers.md Q3 -- so the whole queue was parking into a chain terminating at a decision no run can make. §12 had written the escape down ("A third pass IS expected", trigger "headroom under one page") and named the reserve, but had nowhere to put it: §12 is stamped and scoped to ONE conversion, §10's table is spent. The closed surface was searched first as required, no third-pass section existed in any state, so TODO-33 §13 was filed WITH an Implementation Order row -- which is what makes it visible -- and the file reclassified BLOCKED -> NEEDS_WORK. It records the non-obvious mechanism (reclaiming .bss buys .text headroom, because the guard tests __kernel_end and the per-section budgets are all distances to the same page boundary) and its own SPLIT-RECOMMENDED verdict at filing time so the next pass decides rather than re-derives. Close-out: all 7 open-in-deferred items reshaped one at a time, one marked operator-gated because its Critical stamp records verifier-key anchoring as operator-reserved and no TODO can ever clear it. The hygiene auditor returned 4 findings, all verified at file:line before applying, and one MATTERED -- §14's park cited the 15-byte budget that §16 moved to 95 the same day and had never been re-checked, so it was RE-MEASURED rather than renumbered: at 95 the helper still fails identically, so it costs more than 95 bytes and the park now stands on a current measurement. That re-measurement also exposed that the preserved patch no longer applies cleanly, its base having moved when the section shipped. Two inbound stamps whose targets closed were annotated RESOLVED rather than deleted, the usermode one stating explicitly that the parked runtime test is NOT covered. One process note: a first attempt at the section-15/16/17 parks flipped 28 items by regex and ran past the section bounds into the Unit Tests and Verification blocks -- reverted and redone with per-item judgment over the real population of 16, which is exactly the bulk-flip the doctrine forbids and the reason it forbids it. Also filed to v19: build.yml has produced NO verdict for 8 consecutive pushes because cancel-in-progress plus a ~29-minute build means each run is killed by the next commit ~5 minutes later, and ci-check.py still reports ours_red: false because a cancelled run is not a failed one.
  • 2026-09-03 | 02-kernel-core/TODO-09-x86-64-architecture.md §20 DEFERRED cb0495567 + FILE CLOSED 414b4c446 | the file's last open item was implemented in full, MEASURED against a control, and reverted -- the opposite discipline to the three park-before-code sections that preceded it, and the reason the redo is a re-apply rather than a re-implementation. §20's item asked topology_init() to derive p_core_mask/e_core_mask from each AP's own core type; the shipped change reads per_cpu_data.core_type, which cpu_validate_ap_features() writes at the TOP of ap_cpu_harden() while smp_publish_cpu_online() writes the online-mask bit LAST, so an acquire-load of that bit is what carries the value and no lock is needed. Slot 0 is seeded from the BSP's own CPUID 0x1A because the BSP never runs that path at all, which makes per_cpu_data a single source of truth for every slot instead of a loop with a BSP special case, and a bit is set only for CORE_TYPE_P/CORE_TYPE_E on an ONLINE slot -- an offline slot published nothing, and the mask is what a future scheduler would place work on. _Static_assert(MAX_CPUS <= 64) pins the mask width against the 1ULL << i shift, and three TEST_CAT_X86 suites assert the mask-vs-core_type iff, disjointness and range, and online-only classification, which is the assertion the existing "core_type is a defined constant" test could never make because CORE_TYPE_GENERIC is 0x00 and a never-populated slot satisfies it. The control is the part worth recording: a clean HEAD d1cd53651 builds green at __kernel_end 0x7fead5 with a .text budget of 95 bytes, and the change moves it to 0x7ffad5, page-aligning onto 0x800000 = USER_BASE exactly -- a FULL PAGE against 95 bytes, so it cannot be trimmed to fit, and the failing and passing builds were both run rather than one being inferred from the other. Preserved at .claude/state/deferred-TODO-09-x86-64-architecture-s20.patch built with git add -N so the new test hunks are included. The item text itself was WRONG as filed, which no gate could have caught: it said "today BSP core type is applied to all CPUs", and topology.c had already been fixed to leave every slot CORE_TYPE_GENERIC with both masks zero, so the defect is missing classification rather than a wrong one. That stale phrase turned out to have a twin the §20 backfill never went back for: §9's own [x] item still claimed it "Populates p_core_mask/e_core_mask", contradicted by the section's own Verified stamp two lines below, and the OS Comparison cell read "✅ §9 BSP-only" -- parity the always-zero masks do not support, now "⚠️ §9 detect only". Two Outcome bullets described AMX/XFD and split-lock detection in the PRESENT tense against parked sections whose symbols (CPU_FEATURE_AMX_TILE, MSR_IA32_XFD, CPU_FEATURE_CORE_CAPS, IA32_TEST_CTL) appear nowhere in src/kernel, and §5's [x] Win32 item folded shipped kernel-side pku_set_permissions() together with SetThreadMemoryZone(), which exists in no source file anywhere -- split, with the unshipped half marked design-only and the Commit: line left byte-exact because it quotes the real message d3ad09b5f. The auditor's fifth finding was REJECTED on evidence: the per-section "Expected: N suites" figures are historical snapshots taken as each section shipped, not a current-state claim, so re-basing them to today's ~122 TEST_CAT_X86 registrations would rewrite history rather than fix a lie. All 56 open-in-deferred items across sections 7, 8, 12, 14, 15, 16, 17 and 18 were reshaped one at a time: 7/8/12/16/18 are operator-gated and say which platform is missing (FRED silicon, LKGS silicon, AMD Zen+ bare metal, bare-metal UEFI sign-off, Rocket/Alder Lake), 17 names the per-thread XSAVE prerequisite ahead of its hardware, and 14/15 already carried concrete cross-TODO owners so only the marker changed; todo-reachability.py now returns {} for the file and corpus Check 24 fell 1208 -> 1152. Two §16 items were ALREADY over the 250-char cap (349 and 391) and were split into short leads plus sub-bullets rather than left unparked, since a [ ] -> [/] flip re-presents the line to the staged check as new. The structural find is an ownerless prerequisite: the per-struct thread XSAVE redesign blocks §17 here (AMX tile state leaks between sibling threads) AND 02-kernel-core/TODO-10 §9 (IA32_XSS-backed CET state corrupts PL0_SSP across same-process thread switches) -- both NAME it, neither owns it, and a corpus search found no section owning it in any state, closed or parked. Filed as 03-memory-concurrency/TODO-06 §16 with an IO row, Spawned-by: root, and reciprocal XREFs on both blocked sides; domain-correct because it is the scheduler's context-switch state model, and it carries a regression test that fails on the CURRENT shared-buffer model rather than only passing after the fix. Check 7's baseline moved 1665 -> 1664 with resolved flat at 486, updated deliberately in the same commit as its refusal asks and derived from the checker's own _walk rather than the diff -- exactly one owner moved (57 -> 56) by the mechanism the PREVIOUS total_moved_by entry had recorded: the resolver binds a ref on a lead line and not on an indented continuation, so moving the SetThreadMemoryZone clause onto a sub-bullet moved the denominator with no producer change behind it. The pre-push tooling gate refused on 1/1373 -- the identity-gate reap-mutation control, the same sub-test seen flaky earlier today and unreachable from a diff of todo/ plus a lint baseline -- and was answered by the RECEIPT route rather than SKIP_TOOLING_SUITE=1: the pack ran out of band on the identical bytes at 1373/1373, exit 0, and the gate then skipped honestly.
  • 2026-09-03 | 02-kernel-core/TODO-11-peb-teb-user-abi.md §28 items 1-2 VERIFIED already-shipped, item 3 DEFERRED 04f1aa53e | the section's headline defect was already fixed independently of its own filing: 2edb130b5 (2026-08-02) ordered the TEB/kernel_gs_base publication (gs_base first, TEB release-stored second in task_exec) and the readers (both switch paths acquire-load TEB before gs_base), closing the intermittent 2-CPU boot halt this section existed to track. Verified still in place at HEAD 21921b527 by reading the actual code rather than trusting the historical NOTE box, which still called the fix an open operator-reserved judgment call; that NOTE and a stale inbound > **Deferred:** stamp in 00-infrastructure/TODO-04 §51 were both corrected in the same commit. Item 3 (an SMP regression test for the pairing invariant) got a full design-review cycle: a first design (a truth-table predicate test over fabricated pointers) was REJECTED by Codex adversarial design review as unable to detect a regression that reorders the real writer's two stores or the real reader's two loads while leaving final values unchanged. The redo extracted the real sequences into shared task.h helpers (sched_publish_teb_gs_base, sched_load_teb_gs_pair) used verbatim at all 3 production call sites (measured net ZERO .text growth) plus a test-only pause-hook parameter (NULL and constant-folded away in every production call), so a kthread test could pause the REAL writer mid-sequence via the existing test_race_barrier_t rendezvous and prove the REAL reader never observes a half-published pair, with a hand-written mutation writer proving the harness detects the exact 2edb130b5 bug shape when reintroduced. Built and it does not fit: .text budget is 95 bytes at this HEAD, and the test pushes __kernel_end to exactly USER_BASE, BSS COLLISION. Reverted; preserved at .claude/state/deferred-TODO-11-peb-teb-user-abi-s28.patch; deferred with the design of record and an XREF to 02-kernel-core/TODO-33 §13 (the open image-headroom reclamation section), with a reciprocal entry added there. File reclassifies DONE.
  • 2026-09-03 | 02-kernel-core/TODO-12-native-api-ssdt.md §32 design-rejected, re-scoped 67805bff4 | items 1-2 (FILE_OBJECT canonical-path sync across aliased handles on rename + serializing path-mutating NtSetInformationFile) went through the mandatory pre-edit design gate before any code was written, and Codex rejected the caller-local (nt_file.c) fix on three independently source-verified grounds: writing a canonical path on every open cannot fix the open-vs-rename race alone; vfs_rename_ex has other direct callers (kernel log rotation) that would bypass a caller-local lock, and directory rename affects every open descendant; and struct vfs_node is not a stable identity on FAT32 (fat32_dir.c:544-574's own comment documents cache-slot reassignment to a different occupant as a known node-lifetime gap). The real fix belongs at the VFS namespace boundary, which already had a home: 05-storage-filesystems/TODO-04 §18's open "VFS per-vnode share-mode locking" item, so the work was filed there with the new security-consequence evidence and a reciprocal XREF rather than a duplicate new section (the exact CLAUDE.md rule this avoids: "NEVER CREATE A SECOND SECTION FOR WORK THAT ALREADY EXISTS"). A candidate global mutex_t for the serialization was independently evaluated and rejected: verified at src/kernel/sched/mutex.c:73-105 that the 17th+ concurrent waiter on ANY mutex is permanently stranded (enqueue is skipped past MUTEX_MAX_WAITERS but the thread still blocks forever, and mutex_unlock's wake scan only iterates the bounded waiter array) -- a real, independent, pre-existing defect in the shared primitive, filed into 03-memory-concurrency/TODO-08-advanced-sync §11, the section's own designated home for exactly this class of finding. Items 3-5 (tail-pack FILE_OBJECT.path, variable-length unveil_entry, NtSetInformationFile ACCESS_MASK enforcement) are blocked on the same kernel-image .text ceiling (95 bytes) that deferred TODO-11 §28 and TODO-10 §31 earlier today; items 3-4 keep their original perf-only deferral, item 5 got a full design of record (new NT FILE_WRITE_* constants, a granted_access field, threading the ACCESS_MASK already decoded-and-discarded in NtCreateFile_handler through to FILE_OBJECT, and the legacy INT 0x80 path's missing ACCESS_MASK concept) but was not built, since 3-4 already establish the ceiling binds. All three XREF 02-kernel-core/TODO-33 §13 with a reciprocal entry. No source code shipped this section -- a design-review-driven re-scope, not an implementation; file reclassifies DONE.
  • 2026-09-03 | Codex backend outage 16:53-17:07+ -- TODO-14 s16 f2d93f08a, TODO-19 s11 8cf240902+081781fcb, TODO-21 s20/s21 a98dbe12a all parked | 6+ consecutive Codex dispatches (design reviews + a health probe) all failed identically with unexpected status 404 Not Found from chatgpt.com/backend-api/codex/responses over ~15 minutes; codex-companion.mjs setup --json confirmed local CLI/auth/node/npm all ready, so this is a remote outage, not a config problem. Recorded once in .claude/state/live-gotchas.md (expires 2026-09-10) rather than re-explained per file. TODO-14 s16 (RegSaveKey/RegRestoreKey hive I/O) got a full, source-verified design of record (bound-copy lpFile, scratch reg_key_t stack local for restore with a caught dangling-pointer hazard on re-parenting) written and ready for the redo once Codex recovers. TODO-19 s11 (code-integrity policy wiring, Ed25519 signature auth, anti-rollback, ratchet-domain merge, dynamic-code gating) is SPLIT-RECOMMENDED and security-sensitive -- parked whole rather than attempted blind, its 5 items reshaped to [/] so the park does not add new reachability backlog. TODO-21 s20 (page-table lifetime across reap+fork/exec, 11 items, security/correctness-critical SMP) parked whole; s21's 5th item (a pure documentation fix disentangling two conflated task_create concurrency invariants -- slot CLAIM vs PUBLICATION -- in a stamped section's Accepted note) needed no code and shipped, verified at task.c:830-835 vs :1119-1125. All three files reclassify DONE.
  • 2026-09-03 | 02-kernel-core/TODO-23-exception-dispatch-seh.md s18/s19/s20 parked f995fea8d | s18 (unwind fixture sentinel anchoring) and s20 (owner-stable SEH stack bounds + fault-address provenance, an SMP/exception-ABI decision) parked on the same Codex outage as the rest of this batch. s19 is separately blocked regardless of Codex: its own filed text already says the fix touches Makefile/scripts/build.sh (the receipt surface), which an unattended run may never edit -- reshaped its 3 items to operator-gated: rather than the outage wording. File reclassifies DONE.
  • 2026-09-03 | 02-kernel-core/TODO-24-alpc-message-ports.md s13 parked ef52013e6 | attacker-reachable (handle-quota exhaustion) SMP double-free in AlpcAcceptConnectPort's failure unwind, parked on the same ongoing Codex backend outage (8th consecutive dispatch failure confirmed at this point, ~25 min in). File reclassifies DONE.
  • 2026-09-03 | 02-kernel-core/TODO-33-higher-half-kernel-relocation.md §13 SHIPPED 67e7ca12c, reviewed 5a235fa18 | Third tactical BSS reclamation pass: converted ctrl_windows (180,736 bytes, src/desktop/controls.c) from static BSS to a pmm_alloc_pages_hhdm-backed pool guarded by a 3-state atomic CAS (ctrl_init_state), wired the previously-dead ctrl_init() into boot_desktop.c Phase 3, and made gallery_open() refuse cleanly instead of silently opening a broken dialog on OOM; swept 12 registered-but-empty dead test functions across 7 files. __kernel_end moved 0x7ff000 -> 0x7d4000 (headroom 95 -> 178735 .text bytes), unparking the ceiling-stalled queue this file's §11/§12 had been accumulating all day (TODO-04 §14, TODO-09 §20, TODO-10 §32, TODO-11 §28, TODO-12 §32, TODO-26 §2 -- re-apply tracked as a new §11 item, not done here). Full review-todo-section pipeline ran post-ship (adversarial + consistency + perf Codex, kernel-quality-auditor): fixed a teardown-ordering bug in the test-only pool-reset helper (freed before un-publishing state, the inverse of ctrl_init()'s own publish-last order), a klog varargs type mismatch, and 3 of the 12 dead-test removals that had broken evidence claims in TODO-31 §13 and TODO-11 §12/§13 (two reimplemented with real non-tautological assertions after a self-caught lint finding on the first attempt; one left removed since its claim was already covered by an existing _Static_assert). Two low-severity findings rejected with recorded reasoning (no live caller triggers either path today). 32863 kernel + 17 user-mode tests, 0 failures; smoke matrix 4/4; lint 0 errors. File stays NEEDS_WORK (§3-§9 still cascade-blocked on the operator-reserved address-space decision; §11's re-apply sweep is open).
  • 2026-09-03 | 02-kernel-core/TODO-26-power-management.md §1 REVIEWED + stamped 6a9e640da | Section 1 (ACPI sleep object parsing + PM1 state machine) was fully implemented but carried no stamps, so this was a review-only pass that became a substantial hardening of the firmware-facing ACPI surface: Codex 10x (adversarial + consistency + perf, then re-adversarial x7 to the round cap, every round returning measured findings) plus kernel-quality-auditor, concurrency-evidence-mapper and parity-research-analyst. The DSDT drives every AML scan and was entirely untrusted -- acpi_table_valid() now gates signature, a 16 MiB length cap, containment inside ONE UEFI memory-map descriptor of an ACPI-bearing class, and only then the checksum, with the HEADER's own containment proven before sig_match() or the length field are read (both are dereferences); aml_read_pkglength() decodes the PkgLength instead of skipping it; aml_read_integer() decodes Zero/One/Ones and the four integer prefixes, where the old code returned every non-BytePrefix OPCODE BYTE as the value. pm1_write_sleep() became a masked read-modify-write because the old wholesale write cleared SCI_EN, dropping the machine out of ACPI mode at the moment it was asked to sleep; acpi_pm1_control_owned() reads SCI_EN from both control blocks ORed (matching AcpiHwReadMultiple) and performs the SMI_CMD handshake itself under a 3-second PM-timer deadline plus an iteration ceiling. The SCI ISR no longer logs: klog() reaches klog_disk_flush() -> vfs_open/vfs_write when live disk logging is armed, and klog_disk_enable() runs at boot_storage.c:940 before acpi_register_sci() at :1151, so the first SCI could perform disk I/O in hard-IRQ context and deadlock against the storage completion interrupt it waited on. Two Codex recommendations REJECTED with evidence from the ACPICA vendored in this tree (AcpiGetSleepTypeData accepts a one-element package and truncates to UINT8 rather than range-rejecting; obeying either would report S5 unsupported on firmware ACPICA handles, i.e. a machine that cannot power off). Tests 8 -> 28 (11 -> 50 assertions) on a new test-only entry point running synthetic and malformed tables through the REAL parser, with the probe verified by mutation (bypassing the checksum makes "rejects bad checksum" fail). Filed rather than fixed: a new §24 for ACPI GPE block handling (found independently by the auditor and the parity analyst; nothing in the roadmap owned GPE enable or dispatch, and an unacknowledged GPE-raised SCI gets the GSI quarantined after 1000 all-NONE dispatches), _PTS/_GTS/_WAK evaluation (§3/§4), AP quiesce before S1 (§2), PM1b-only end-to-end support (§24), and SSDT \_Sx resolution + extended GAS registers + ACPI Global Lock (D04 T03 §1, whose SCI_EN item was corrected in place -- it named a direct SCI_EN write, which is not how OSPM enters ACPI mode). 32902 kernel + 17 user-mode tests, 0 failures; smoke matrix 4/4; lint 0 errors. The pre-push tooling gate failed once on test_build.sh s30 with "the TODO corpus moved while this build was reading it" and passed 1373/1373 out of band on the same bytes, so it was confirmed a flake and pushed via the receipt route rather than the suite opt-out. Also drained TODO-19's deferred-item backlog first (b7e3cfe76, 22 parked items reshaped with named blockers, reachability 22 -> 0 for that file).
  • 2026-09-04 | 02-kernel-core/TODO-26-power-management.md §2 SHIPPED aca6a57ce, filings d153b95cc + a9e1eba6e/c3f83b631 | Section 2 was PARKED at 17:48 the previous evening on a 95-byte kernel .text ceiling; TODO-33 §13 cleared that at 18:34 (headroom now 164,804 bytes), so the park's premise was 46 minutes stale and the section was re-opened rather than re-deferred. The pre-implementation design review then rewrote it before any code: the spec put acpi_enter_sleep_state(1) in the idle loop, which is unimplementable here (that function refuses every caller off the BSP at acpi.c:1613 and confirms its wake through WAK_STS, which a timer tick never sets) and wrong regardless, since ACPI 6.5 §8.1 makes C1-Cn the processor idle states and S1 a whole-machine transition. Shipped instead: pm_idle_c1() (race-safe C1 entry, always halts, reports readiness), pm_deep_idle_allowed(), per-CPU idle_tsc_cycles, a release/acquire PowerIdleEnable cache, wiring at both BSP terminal idle points and the AP park loop, and 9 tests. The load-bearing correction was round 1's: letting a false predicate REFUSE the halt would have spun a parked AP forever, because an idle AP has no DPC drain trigger (ktimer.c:248-251). Every DPC depth access in the tree is now one relaxed-atomic discipline. Four halt oracles were tried and rejected (elapsed TSC, the dead per_cpu_data.irq_count, an advancing tick counter, a 512-byte opcode search) before a labelled halt site plus a per-CPU reachability counter held. 14 Codex rounds, 6H+18M+2L fixed, 1 rejected, 6 accepted/deferred; a missing declaration only the RELEASE build could catch was among them. Also authored §25 (idle telemetry, blocked on the accounting precision) and filed TODO-07 §19 for the pre-existing interference-prone DPC depth assertions. Push needed SKIP_TOOLING_SUITE=1: four pack runs over identical bytes each failed 1/1373 naming a DIFFERENT test, filed as a rotating-single-failure gate defect in overnight-runner-improvements-v19.
  • 2026-09-04 | 02-kernel-core/TODO-26-power-management.md | s3 split + deferred (ACPICA namespace never initialized, s9 callbacks and s8 D-states absent; all three verified by grep), s26 SHIPPED + REVIEWED (383b32805 + 74c945203): resumable generation-tagged stop-the-world CPU rendezvous, vector 0xF9, 29 tests. s27 opened for the residue (mutation-proving test seam, retract-side quiescence window, SLP_EN integration). 10 Codex legs + Opus kernel-quality-auditor + 2 mappers; 26 findings fixed, 2 accepted, 3 deferred. 33054 kernel + 17 user tests, smoke matrix 4/4.
  • 2026-09-04 | 02-kernel-core/TODO-26 §5 ACPI Embedded Controller driver | shipped 4cbcc16ef + reviewed 2ee0bfd24 | ECDT discovery/validation, polled RD_EC/WR_EC, burst-wrapped block read, transposed-port firmware quirk, Phase 2 init; 41 test cases. Readiness deliberately GATED OFF (GPE acknowledgement + ACPI Global Lock both absent), so the section ships no live capability and says so at the IO row. Codex 9x, converged round 6 zero findings; 3 parity gaps filed in owning open sections (AML EC OperationRegion handler -> 04-drivers-hardware/TODO-03 §1, EC sleep/resume -> §9, controller-reset boundary -> §24). Gates: build OK, 33478+17 tests, smoke 4/4, lint 0.
  • 2026-09-04 | 02-kernel-core/TODO-26 §6 and §7 splits + §7 shipped | eb72bfdbf shipped, 3f505518e reviewed | §6 split into §6/§29/§30 and §7 into §7/§31/§32 (both SPLIT-RECOMMENDED, both bundling work with different blockers); §7 power and sleep button dispatch shipped and reviewed; §6, §30, §31, §32 deferred with XREFs. 7 Codex legs plus the kernel-quality auditor, concurrency mapper and parity researcher; 8H+5M+2L fixed, 4 accepted with concrete XREFs. Tooling-pack flake occurrences 6-8 filed to v19, disproving the stdout-misclassification hypothesis and naming the real assertion (a wall-clock scaling check).
  • 2026-09-04 | 02-kernel-core/TODO-26 §8 split + §8 shipped | 9d40a3ba6 shipped, 9cc5c4a9d reviewed | §8 was SPLIT-RECOMMENDED at 8 items with three different prerequisites, so it became §8 (PM capability + D0/D1/D2/D3hot, config space only), §33 (pm_device_t registry) and §34 (D3cold via ACPI _PS0/_PS3, blocked on an uninitialised ACPICA namespace). The shippable half shipped. Twelve implementation-round adversarial passes converged to SHIP, and the post-commit kernel-quality-auditor then found a HIGH none of them had: pci_write16 implemented a 16-bit config write as a 32-bit read-modify-write, so writing PCI_COMMAND rewrote PCI_STATUS whose error bits are write-1-to-clear, silently acknowledging latched bus errors at ten driver call sites. Pre-existing, one function from the PMCSR write-1-to-clear hazard this section was built around. Five review legs plus four re-adversarial rounds; 12H+9M fixed, 5 accepted into §33 and §12. Two fixes were made and WITHDRAWN as worse than the defect (a "conservative" reinit obligation that would tear down a live controller's BARs, and a klog poison diagnostic that reaches disk I/O through the controller it just declared unsafe). Also filed: mono_clock.c:234 selects PMTMR on a FADT port alone with no probe that the counter advances (TODO-08 §18). Gates: build OK, 33709+17 tests, smoke matrix 4/4, lint 0, tooling pack 1373/1373. The first ship push failed in the pre-push pack with "TODO corpus moved while this build was reading it" because the review was editing concurrently; re-run clean out-of-band it passed, and the ordering hazard is now a live gotcha. | 2026-09-05 | 02-kernel-core/TODO-26 §9 | shipped ba2268f03, reviewed 9a8f0991a | Driver power callbacks: priority-ordered registry, sleep/resume walks, sleep/resume-spanning transaction, two masks (quiesced drives the abort unwind, wake drives the resume), terminal PM_TXN_DEGRADED with a LOCKED recovery exit, EC wake idle-proof. 5/6 items; the four driver registrations are parked because no driver exposes a quiesce primitive (xHCI half filed into 04-drivers-hardware/TODO-10 §1). Review found the degraded state was a one-way door in production and that a transient EC lock contention reached it; both fixed. Corrected a false [x] in the Unit Tests section (test_register_power() names a function and file that do not exist), which shrank the stub-lint population 1703 -> 1701. Tests consolidated 26 -> 9 suites after the kernel image hit its 0x800000 ceiling and the link failed. 33830 kernel + 17 user-mode tests pass. | | 2026-09-05 | 02-kernel-core/TODO-26 §10 | shipped 0c1e8cd08, reviewed a073f35ec | Section 10 was SPLIT-RECOMMENDED at 19 items and became §10/§35/§36, then the pre-implementation design review found FOUR of the draft's own items factually wrong and the system-entry half unimplementable, so §37 took that residue too. Corrected rather than implemented: the drafted mwait asm had no MONITOR and no ECX (SDM: MWAIT without an armed MONITOR silently no-ops; a masked interrupt breaks only under CPUID.05H:ECX[1] + ECX[0]); MWAIT_HINT_C10 has no architectural basis (leaf 5 enumerates to C7 and the SDM calls those processor-specific, not ACPI, states); MC_PM_STS has no public per-generation contract and was REJECTED outright, and _OSC is capability negotiation not an entry notification; the one-second TSC heuristic is circular and ignores invariant TSC. Also corrected: FADT bit 21 does NOT assert S3 is absent. Shipped the half that is real and provable today -- acpi_fadt_s0ix_capable/acpi_s0ix_supported, CPU_FEATURE_MONITOR, and three pure MWAIT hint/refusal functions that take CPUID words as ARGUMENTS, so the suite proves the SDM Table 4-11 encoding on hosts reporting no leaf 5 (every CI host here). The post-ship kernel auditor then found two mediums: pm_mwait_deepest_hint read EDX nibbles without consulting ECX[0] (the constant was defined and consumed by nothing, which was the tell), and CPU_FEATURE_MONITOR was BSP-only while its ring-3 twin WAITPKG was in the AP probe list. Codex 4x plus auditor and parity researcher; 3M+8L fixed, 0 open. Accepted [H] into a new §38: ACPI table discovery checksums over a firmware-declared length and publishes fadt_ptr without validating the backing extent -- pre-existing (the ship commit added 28 lines to acpi.c and deleted none), and the tree already has acpi_table_valid() with the right checks that discovery simply does not call. The kernel image hit its 0x800000 ceiling MID-SECTION on test assertion strings alone; .rodata headroom is now 306 bytes. Gates: build OK, 33871+17 tests, smoke matrix 4/4, lint 0. Ship push refused by two pre-push audits that fail on a local plugin's MANIFEST drift, verified identical at the base commit and unfixable from inside the run; filed to v19 and pushed with a scoped skip. |
  • 2026-09-05 | 02-kernel-core/TODO-26 | s11 deferred (no hibernation write path, no bootloader resume entry, 306 B .rodata headroom); s38 shipped c744b4ee6 + reviewed cf5e019b2 -- ACPI table discovery validates extents before the checksum walk and before publishing fadt_ptr; s39 filed for the RSDP-side residue. 17 Codex legs / 9 rounds + an Opus kernel audit; 33,889 kernel + 17 user tests, smoke matrix 4/4. Kernel .rodata headroom now 2 bytes: no further kernel section can link until the higher-half relocation lands.
  • 2026-09-05 | 02-kernel-core/TODO-33 | s15 SPLIT on the manifest verdict (test-side residue -> new s16) then shipped db0fc9ac5 + reviewed 7ab39396b -- the pipes pool (73,216 B) moved off .bss to frame-backed storage behind an atomic three-state init, readiness guards at all four entry points, and the lazy pipe_init() the PMM contract forbids deleted. __kernel_end 0x7df000 -> 0x7ce000, 17 pages, headroom 131,535 -> 200,787 B. Ran EARLY rather than on the under-one-page trigger, on s14's own measured refill rate. The atomic init also closed a latent bug: repeat pipe_init() was silently freeing every live pipe on each test boot. 22 Codex legs across 9 rounds plus an Opus kernel audit, a concurrency mapper and a parity researcher; the reset helper took its token WRONG twice before READY -> INITIALIZING held through teardown, and the consistency leg caught a stale measurement on three separate rounds. Filed rather than fixed: new 03-memory-concurrency/TODO-09 s11 owns the unlocked slot claim (two ring-3 callers can be handed the SAME pipe id -- a cross-process data leak), the unlocked count/read_open reads, the collapsed error codes, the 16-pipe machine-wide cap and the broken POSIX PIPE_BUF atomicity. 33,907 kernel + 17 user tests, smoke 2.720s, lint 0 errors.
  • 2026-09-05 | 02-kernel-core/TODO-33 | s16 shipped 5445e921e + reviewed 81189432c -- the test-side residue s14 filed and s15 split out: s_cap_val and 26 boot_entries_parse_result_t STACK locals onto TEST_SCRATCH_KBUF, and test_scratch_alloc off its raw phys-as-pointer cast onto the shared pmm_alloc_pages_hhdm(), recording the physical base so the free path never round-trips through a relation whose 0 means failure. Frame win MEASURED not argued and reproduced independently by Codex: 27 over-limit frames -> 1, largest 37,016 B -> 3,944 B. TWO claims proved by CONTROL: dropping phys from the swap-with-last failed exactly its two intended assertions with the precise 16-frame leak (8409 vs 8393), and breaking an assertion under the new klog tag proved the failure text is still readable. That klog tag was itself a re-adversarial finding -- the allocator logged under "TEST", the same tag the runner uses for assertion FAILURES at LOG_ERROR, so a test suppressing the expected warning would have discarded its own evidence. The post-commit Opus audit then found the sweep incomplete: s_bt_val, an identical 8 KiB static two functions below the one the section converted, in the same file. It also found scratch.h still documenting the raw-physical behaviour the section had just retired. Accepted rather than fixed: [H] boot_entries_parse() accepts a REPEATED top-level entries key -- idx and all_ids_count are block-scoped and reset per occurrence while out->entry_count does not, and the only cap check is against idx, so a second array writes past the fixed 64-entry entries[] on disk-sourced boot config parsed before ExitBootServices; filed as a NEW 01-boot-platform/TODO-07 s19 WITH an Implementation Order row, which flipped that DONE file back to NEEDS_WORK so the queue can actually reach it. Also accepted [M] env.c:309, the production twin of the retired cast, to the identity-map teardown that owns all ~20 such sites. 18 Codex legs (2 adversarial crashed in the reviewer sandbox on dynamic-object probing and completed clean once re-dispatched static-only) + kernel-quality-auditor + concurrency-evidence-mapper; 6M+8L fixed, 2 accepted, 0 open. 33,973 kernel + 17 user tests, smoke matrix 4/4, lint 0 errors. Headroom 209,698 B and .bss is no longer the tightest section. TODO-33 now BLOCKED on s3 alone (operator decision Q3 in todo/answers.md).
  • 2026-09-05 | 01-boot-platform/TODO-07 | s19 shipped a4f5f4982 + reviewed d2c63a5f0 -- the OOB write TODO-33 s16 filed: a repeated top-level entries key reset the block-scoped idx/all_ids_count while out->entry_count climbed, so a second 64-element array wrote ~36 KB past entries[] on disk-sourced config parsed before ExitBootServices, and the same reset disarmed the cross-occurrence duplicate-id gate. Shipped as a fail-closed PREFIX RESCAN (key_seen_before) rather than a seen-key table, because a table must hard-fail on overflow and would turn skipped forward-compat keys into a whole-store rejection at boot AND force the host to mirror the ceiling; plus literal-key enforcement (find_crc32_key already required it, so codification not restriction) and a bounded entries_retain(). The design review's own alternative was taken over my first design, and rounds 2-4 each found a defect in the round before: the rescan charged the entries array and entry object to the payload's depth budget, so a store the parser ACCEPTED could exhaust it and "could not finish" read as "no duplicate" -- silently disabling the check on attacker-chosen input. Fixed with the exact +2 and a tri-state both callers reject on. Host parity followed the same arc: strict_loads() + validate_value_depths() mirror the key and depth rules across the validator CLI, bootcfg reads and its add path; both writers stopped escaping keys and now re-parse their own serialized bytes; and the crc-stamping mode, which had been running its whole pipeline against the DESTINATION, was measured DESTROYING a 1321-byte store down to 0 bytes on a lone surrogate before the encoder raised. One shared atomic_write_bytes() replaced two copies that had diverged in exactly the part that matters -- a predictable temp path a symlink could own. The POST-SHIP review then found the fix was only half a fix: boot_policy_menu_collect() ignored reject_code, and because the ladder short-circuits WITHOUT filtering, decision->rejected[] is empty on that path, so a rejected store still listed its retained entries and F11 made one the boot selection. Guarding the three loader publishers by early return turned out to be wrong twice more in a row -- they are EFI_VARIABLE_NON_VOLATILE, so skipping a write leaves the PREVIOUS boot's list and selected id published; all three now CLEAR. EVERY guard was mutation-verified rather than asserted: nest7/nest8 fail with the depth budget reverted while nest6 passes either way, a fail-open rescan and an off-by-one budget each fail exactly their own test, deleting the menu guard exposes 2 candidates where 0 are expected, and reverting bootcfg to json.loads fails three cases. The kernel auditor caught the one that could NOT fail: the prefix-sharing fixture had the shorter key first, so deleting the key-length clause still passed -- reordered longer-first, which now catches it. 36 Codex legs across ~14 rounds (design, adversarial, re-adversarial x6, consistency, perf, test-coverage) + boot- and kernel-quality auditors. 34,026 kernel + 17 user tests, 99 validator + 38 bootcfg host cases, smoke matrix 4/4, lint 0 errors. Filed rather than fixed: s20 (the crc32 header is located by string match, so a store carrying that text in a VALUE before the real header is rejected by firmware while the host accepts it) and s21 (published loader variables need an explicit set-or-clear outcome; LoaderDevicePartUUID goes stale on an unknown partition identity, an axis store rejection never reaches). Both pushes were refused by the pre-push audits over one missing .claude/hooks/MANIFEST.md row for a third-party plugin -- pre-existing, control-plane, already filed in v19; pushed with a scoped SKIP_TOOLING_SUITE=1. Two of the first pack run's four failures were MINE, from editing the TODO corpus while the backgrounded pack read it; recorded in v19 because the out-of-band pack route the doctrine recommends walks straight into that trap.
  • 2026-09-05 | 01-boot-platform/TODO-07 | s20 shipped 598bc0749 + reviewed 4cbaec63a -- the crc32 integrity header was located by scanning the whole file for the seven bytes "crc32", so a store beginning {"note":"crc32", ...} matched inside the note's VALUE and the firmware rejected it with BAD_CRC32_FIELD while the host regex tie-broke differently and accepted it; the user's boot selection silently discarded and the firmware fallback booted instead. Replaced with a bounded STRUCTURAL walk of the root object (the file's own lexer + skip_value_depth at the RESCAN budget, because this walk skips the root entries value two container levels further out than the authoritative walk does) returning a tri-state so a broken root maps to JSON_PARSE and an absent-or-misshaped header keeps BAD_CRC32_FIELD. The design review caught the firmware accepting 0X and an over-long value where the host already required lowercase 0x and exactly ten characters, so the value shape tightened to match. The host mirror was rewritten from a regex to a token-level copy of the FIRMWARE's rules after the test-coverage leg MEASURED the first draft locating a header in three stores the firmware calls malformed, and _CRC_VALUE_RE.match with $ accepting a trailing newline inside the value. The controls are the story of this section. Three separate drafts of the decoy fixtures did not reproduce the defect and looked identical to ones that did: the firmware fixture spelled the decoy "crc32 lives below", whose bytes never contain the 7-byte needle; both host decoys sat AFTER the header so the old locator reached the real one first; and the escaped-quote shape broke NEITHER locator because a backslash sits where the old needle wanted a quote. Each was caught by running the old locator in-suite rather than by inspection, and every fixture is now classified by measurement, per side -- the string-value shape breaks the firmware scan but not the host regex. The adversarial leg then caught the control itself being more permissive than the code it stood for (it had dropped the original's parse_hex8, certifying agreement on 0xGGGGGGGG), and the perf leg measured the extra control fixture costing 261 bytes of .rodata in the linked image, so it became a two-byte mutation of a fixture already in the buffer. Every locate assertion checks an INDEPENDENT offset oracle, because the fixture's CRC is patched at whatever span the locator reports -- a consistently-wrong locator writes a self-consistent file and every end-to-end case passes anyway. Post-commit review: Codex adversarial/consistency/perf all clean; the boot auditor found the tri-state itself wrong on two shapes (trailing comma at root, truncation after the crc32 colon, both reading ABSENT where the root is genuinely broken) and both were fixed on both sides, since a tri-state whose third state is wrong on the inputs it exists to classify is the contract being wrong, not an imprecision. The parity pass filed two MEDIUMs it verified at file:line: a rejected store is invisible on screen (the sole matching efi_print is an unrelated consent line, the menu cannot cover for it because the candidate list is empty, and the QR-code error screen this repo already shipped is simply never invoked) -> TODO-03 §22, filed WITH an Implementation Order row because that file is COMPLETED and a body-only filing is invisible to the oracle; and a corrupt store has no shadow copy, A/B pair or regeneration route -> TODO-07 §23. stub-lint-baseline.json re-recorded twice: the first attribution named refs that are not counted and carried a bucket figure forward instead of measuring it, and the second was correct until the 250-char cap forced an item lead to split, moving a ref onto a continuation where the resolver does not bind it -- the file's own warning, met twice in one section. 34,089 kernel + 17 user tests, 6,317 boot-suite, 141 host validator cases, smoke matrix 4/4, lint 0 errors. Ship push refused a third consecutive time by the unsatisfiable plugin-MANIFEST row (filed in v19, control plane, verified byte-identical to HEAD~1) alongside the in-pack-only test_build.sh flake at 843/844 against 844/844 standalone; pushed with a scoped SKIP_TOOLING_SUITE=1.
  • 2026-09-05 | 01-boot-platform/TODO-03 §23 shipped 77d7a2f98 + reviewed 5ca1a2185 -- the error-screen resolution floor became one shared predicate (bsod_tier_for) plus a compact renderer; all four gated call sites converted and the old boolean deleted. Floors measured against the shipped atlases (full stays 800x600; compact 480x256). The post-review parity pass caught a HIGH five Codex legs had approved past: the anti-rollback halt had no NONE arm and no QR call, so below the floor it still refused a boot in silence. Also filed TODO-28 §12 (pixel oracle) with an IO row, and six findings into overnight-runner-improvements-v19.
  • 2026-09-28 | 00-infrastructure/TODO-10 | validated 93323a9b8 + gap-audited 4511836c3 (new §24 versioned release docs, §25 search + accessibility, §23 link check; reciprocal D12 T06) | §3 shipped 386814181 + reviewed 3ec5b3c03 -- docs page contract, template and folder map; PageContract tests pin every section's page folder; create-todo step upgrade parked operator-gated (v20 capture)
Impossible OS is free software under the GPL-3.0-only license. Last updated Edit this page on GitHub