Build Log · September 23, 2026
Recover Stranded Signals Work, Reduce Smith's Instruction Load
Recovered a prior session's stranded ownership claim and uncommitted Signals work, then ran a Council-amended instruction-load reduction that self-corrected two real defects under review.
- alloy
- signals
- os-engine
- instruction-load
- concurrency
- engine-guard
- Commits, all pushed
- Alloy tests passing
- Real defects found and fixed under review
Commits, all pushed
Alloy tests passing
Real defects found and fixed under review
Timeline
Start
Stale main-checkout ownership claim found on session start
Prior session ended without releasing; force-released after human confirmation
Recovery
Signals Cockpit ranking fix verified and landed
tsc, full suite, RSC boundary check, real production build — then found findings.ts was dead code, not wired to the UI as the prior handoff claimed
Redirect
New Charge arrived: reduce Smith's default instruction load
Zeb flagged tokens being consumed faster than normal mid-session
Investigation
Baseline measured, Council-reviewed plan narrowed twice
Model switched to Opus; scope cut from a full rewrite to a single bounded Archived Traps extraction after a subagent report was found unreliable
Execution
Archived Traps moved, guard hardened, fixture-tested
Real defect (silent-zero on missing archive) found and fixed as part of the move, not just documented
Close
Council review caught 2 real defects in the just-shipped commit
Duplicate rows across Active/Archived, and an incomplete before/after measurement — both fixed same session
What shipped
Committed Signals Cockpit ranking fix (04fe6072): occurrencesLast10 replaces lifetime painScore as the sort key for "Needs a Charge", RECENCY_WINDOW moved to categorize-spin.ts to fix a real RSC-boundary production build error, Owner Loop Lifecycle CATEGORY_COHERENCE entry (11 spins, corrected twice under review), UI Layout classifier-contamination fix
Corrected the Signals Cockpit handoff Charge (66d00d63) to state plainly that findings.ts is dead code and the two-section UI split was never built, replacing a prior session's inaccurate claim that it only needed verification
Moved Archived Traps out of ignition-core.md into forgekit-os/archived-traps.md (e3a5c0aa), closing a real false claim ("archived traps are not loaded by default" while physically loaded every session)
Reviewed all 13 archived rows for live operational content before moving them; promoted 2 (UTC-drift dates rule, Clerk-auth timebox stop condition) back to Active after grep confirmed zero coverage elsewhere; demoted 2 verified duplicates of eagerly-loaded gate checklists to make room
Fixed a real latent defect in engine-guard.mjs: countTableRows() returned 0 for both a missing file and a missing header, which would have silently disabled the archived-row cap forever if the archive file were ever lost or malformed. Missing/malformed now hard-fails.
Fixture-tested all 4 archive failure paths (missing, malformed, over-cap, warn-at-18) plus exit codes against temp copies, without touching the real archive
Individually rebaselined the 3 hard-rule-baseline.json entries affected by the line shift, verified by phrase/order/text rather than regenerated wholesale
Added 'Where an instruction belongs' maintenance guidance to HOW_TO_WORK_WITH_ZEB.md
Found and fixed, under the same review pass, a real defect in the just-shipped e3a5c0aa commit: the Dates and Auth/Clerk-timebox rows existed in BOTH the Active table and the archive after being promoted — the commit's own message had claimed 'no rows lost or duplicated'. Fixed in d610d7c8; row totals now reconcile exactly (20 active + 13 archived = 33, matching the starting count)
Corrected the reported byte-reduction figure in the same fix: the original 3,161-byte claim counted only the .claude/rules/ surface and omitted +1,139 bytes added to HOW_TO_WORK_WITH_ZEB.md (a mandatory orientation read). True net reduction is 1,938 bytes (~0.6%), not 3,161 (~1.1%)
Committed findings.ts (9068ecf6) explicitly labeled as known-unwired, rather than left stranded in the working tree or silently implied to be shipped
Restarted Alloy dev server cleanly on port 3911 (.next wiped, confirmed serving via curl)