Mark's Reports

All reports · updated 2026-04-21 evening

Build Schedule — Burn Down (evening refresh 2026-04-21)

Strikethroughs = shipped. 🟢 = scheduled task running autonomously. 📅 = scheduled, not started.


✅ Today (Tue Apr 21) — SHIPPED

Morning

1. ~~Heartbeat dead-man's switch installed~~ ✅ TP3 Heartbeat Check hourly on Apex. Fixed a latent UndefinedColumn crash during smoke test.

2. ~~State reconciler built + live~~ ✅ The big one. tp3_state_reconciler.py regenerates MAPS/today_agenda.md nightly via Gemini Flash. First run tonight 11 PM.

3. ~~Morning digest stale-brief problem~~ ✅ Auto-refreshed now.

4. ~~Apex memory repo manually synced~~ ✅ Resolved 2-day drift, root fix queued.

5. ~~Dashboard mojibake across all titles~~ ✅ 17 em-dash / smart-quote sequences repaired, PS5 encoding gotcha saved to memory.

6. ~~Grading section archived~~ ✅ Report-card cycle complete.

Evening (added 2026-04-21 ~9 PM)

7b. ~~Oracle root-cause diagnosis, full pass~~ ✅ Verified log-level numbers: hubcap_output.log 47 MB with 3,892 Errno 10048 port-bind failures and zero TRIGGER DETECTED, oracle_output.log 232 MB from 1,003 watchdog-kill cycles, apex_relay_output.log 93 MB, omi_webhook.log frozen at 2026-03-18 (OMI moved to native-webhook path into dead Hubcap). Root cause confirmed: ag_supervisor.py port-release race against legacy scheduled tasks (ApexOracle/ApexHubcap/ApexMailbox/ApexRelay, all CANCELED/FAILED since 4/15).

7c. ~~Oracle trigger-chain fix brief committed~~ ✅ BRIEFS/pending/oracle_trigger_chain_fix_2026-04-21.md — 8-step sequence, acceptance criteria, coordination notes.

7d. ~~Ultraplan consulted + plan retrieved~~ ✅ Session 01Bfz5mzY5kDa47zeYVrki3r. ~13.7 KB detailed plan: 8 phases, -Force/-DryRun/-SkipRotate params, LIFO rollback, school-hours guard, TP3 isolation regex.

7e. ~~Fix-OracleTriggerChain.ps1 written + committed~~ ✅ 306-line PowerShell 5 script at tp3_scripts/Fix-OracleTriggerChain.ps1 (commit d8ed437). Correction baked in: auth env var is AG_HUB_SECRET (plan had AG_KEY), header X-AG-Key. Verified against hubcap.py:445 and Apex .env.

7f. ~~Persona.gdoc + Uncle Mark OS.gdoc read + digested~~ ✅ Both loaded from Drive (Jan 10 + Jan 27, 2 MB combined). Persona = AI-bootstrap self-portrait. OS = 475-entry OMI/Captain's-Log dump. Key evidence for Oracle trigger decision: "I don't know" is casual filler ~96×/10days in Mark's speech — strict regex is load-bearing, not a bug.

7g. ~~Saturday execution window locked~~ ✅ Google Calendar event Sat 4/25 9-10:30 AM ET + BRIEFS/pending/oracle_fix_execution_2026-04-25.md (git-backed reminder any future Claude session sees on start) + session cron.

8. ~~Fix update_index_html delete-on-regen bug~~ ✅ Root cause: the morning-digest generator's regex replaced the entire Today-section <div class="cards">...</div> with a new block containing only the digest card, nuking every other card (including this build schedule card). Fix: remove only the prior morning-digest card by href pattern (/r/YYYY-MM-DD-morning-digest.html), insert today's at top, preserve all other cards. Verified with a 2-card synthetic fixture. Commit 1a38cee.

9. ~~Fix Apex shared-memory auto-sync drift~~ ✅ Diagnosis: hooks work, but only fire on Claude-session start/stop — Apex's autonomous tasks (heartbeat, reconciler, ingest) are separate processes that never trigger Claude. Fix: Sync-SharedMemory.ps1 scheduled as TP3 Shared-Memory Sync on Apex, every 20 min, idempotent (auto-commit → rebase-autostash pull → push), logs to ~\.claude\shared-memory-logs\sync_YYYY-MM.log, never throws. First run verified: exit 0, exit 0. NextRun 9:07 PM ET. Commit 1a38cee.

Net: 15 shipped today, 5 net-new backlog items surfaced. Ratio strengthening.


🟢 Firing autonomously (no action from you)


📅 Scheduled (date locked, not started)


📅 THIS WEEK (Apr 22–26) — remaining

High-leverage infra

8. ~~Fix update_index_html delete-on-regen bug~~ ✅ shipped tonight — see 8 above in Today.

9. ~~Fix Apex shared-memory auto-sync~~ ✅ shipped tonight — see 9 above in Today.

10. Row-count auto-refresh for TP3 memory — stuck at 628,901+3,342 since 4/10. 30 min.

11. Session-start heartbeat writes — rule #11 in CLAUDE.md not yet implemented. 45 min.

12. Debug MCP twin-memory write 401 — blocks heartbeat writes. 30 min.

Carrying from yesterday

13. Incident runbook (#21) — 1 hr

14. L7 Hero Pearl Cascade Display design doc (#22) — 1 hr

15. Bidet general file-drop endpoint (#6) — 2 hr (dispatch Cursor)

16. Hub redesign (#25) — 1 hr

17. Gemini Batch API optimizer revival (#12) — 2 hr

18. PR auto-open with gh PAT (#20) — 15 min

Friday 4/24

Weekend 4/25–26

Sat morning: Oracle fix (see Scheduled section above).

19. Temporal frontmatter migration (#2) — 2 hr

20. Vector-index memory files into TP3 (#3) — 2 hr

21. BRIEFS Runner rebuild as silent Windows service (#29) — 1 hr


📅 NEXT WEEK (Apr 27 — May 3)

22. State reconciler Phase 2 — calendar + Gmail integration

23. LongMemEval baseline (#4)

24. Auto fact-extractor agent (#1)

25. Computer Use setup (#8)

26. Full Gmail reorganization (#5)

27. Persona/OS memory write-through — bank tonight's Persona + Uncle Mark OS digests as structured memory files. 45 min.


🗓 BACKLOG (queued, no committed date)

Infra quality-of-life (surfaced 4/21):

From 4/20 evening:

Existing backlog: AI Radar Phase 2 Sandbox Test (#26), Classroom Bidet Stage 2 (#7), Morning digest → podcast (#9), Mesop tactical dashboard revival (#13), Telegram bot re-wire (#14), Muse EEG revival (#15), Tasker GPS (#16), TP3 Takeout ingestion (#17), v1 Drive corpus backfill (#18), Cursor CLI on Apex (#19), OMI Oracle persona setup (#31), Full Cleanup Agent nightly auto, Gemma 4 upgrade, FACTs API auto-push.


Self-enforcing rule

Rule: net-new per session ≤ shipped per session.

Today: shipped 13, net-new 5. Ratio strong. ✅