Build Log · September 16, 2026

Money Tracker, Then the Machinery Underneath It

Built Court's Money & Earnings Tracker, then spent the rest of the session finding out why the Owner Loop around it kept failing — and fixing four ways it violated one invariant.

  • canvas-1
  • Owner Loop
  • Reliability
  • Feature
  • OS
Actor runs audited
362

Actor runs audited

failures root-caused
231

failures root-caused

real bugs found and fixed
5

real bugs found and fixed

tests passing at close
142

tests passing at close

Timeline

  1. Start

    Money & Earnings Tracker

    Court's own written feature request, built directly rather than routed through the Owner Loop

  2. Mid

    Production 500 on /manage

    Root-caused to a schema migration that had silently targeted the wrong Neon branch

  3. Mid

    Three stuck requests recovered

    Manual candidate recovery, then a second process failure: stopped at 'deployed' without verifying closure

  4. Late

    231 failures audited

    Zeb: 'I am really, really sick of seeing red' — full audit of every actor-spawn run

  5. Close

    Convergence Charge built

    Charge written, reviewed, corrected on three real errors, then all five changes shipped

What shipped

  • canvas-1 Money & Earnings Tracker (Phase 1) — weekly work entry with per-child date selection and auto-split, percentage-based allocation to spending/savings/giving with non-retroactive semantics, per-child balance dashboard, quick purchase entry, and a full append-only transaction ledger structured to support Phase 2 statements and custodial-Roth-IRA earned-income documentation

  • Fixed a concurrent CREATE TABLE race in ensureMoneyTables that 500'd the Money tab on its first real use

  • Added 10 missing publication/closure columns to canvas-1's real production Neon branch, un-breaking a dispatcher that had been crashing on every scheduled run

  • verify-owner-loop-schema-live.mjs — independent post-migration verification against the dispatcher's OWN credential, so a wrong-branch migration can no longer self-certify

  • Fixed a genuine ReferenceError in finalize-owner-intent.mjs that made every successful finalize report failure

  • Recovered three stranded Owner Loop requests to confirmed terminal resolved state

  • Full audit of all 362 actor-spawn runs / 231 failures, with every failure classified by authoritative field

  • Owner Loop convergence Charge + all five changes: failure-policy layer, cause-agnostic failure cap, git-level push coverage, verified-impossible credit preflight, truthful terminal outcomes