← back to AbramsEgo
chore: stage tasks 28+29 (task 27 split into <15-min chunks) — held until pm2 split-brain repaired
2ce7aff61322a82f73b7ae7f44dd5bed8ff414b6 · 2026-07-01 15:44:29 -0700 · Steve Abrams
Files touched
A build-queue/staged/28-dom-wiring-audit.mdA build-queue/staged/29-failure-drills.md
Diff
commit 2ce7aff61322a82f73b7ae7f44dd5bed8ff414b6
Author: Steve Abrams <steve@designerwallcoverings.com>
Date: Wed Jul 1 15:44:29 2026 -0700
chore: stage tasks 28+29 (task 27 split into <15-min chunks) — held until pm2 split-brain repaired
---
build-queue/staged/28-dom-wiring-audit.md | 17 +++++++++++++++++
build-queue/staged/29-failure-drills.md | 20 ++++++++++++++++++++
2 files changed, 37 insertions(+)
diff --git a/build-queue/staged/28-dom-wiring-audit.md b/build-queue/staged/28-dom-wiring-audit.md
new file mode 100644
index 0000000..344793d
--- /dev/null
+++ b/build-queue/staged/28-dom-wiring-audit.md
@@ -0,0 +1,17 @@
+# Task 28 — DOM wiring completeness audit (split from timeout-killed task 27; scope: THIS ONLY)
+
+Run scripts/smoke.sh FIRST (regression net). If it fails on localFleet, note it and continue
+— that failure is tracked separately (pm2 daemon repair).
+
+Then ONE dimension only, ≤12 minutes: prior audits proved /api/data via curl — NOT that
+public/index.html actually renders every field. Cross-check both directions:
+1. For each top-level key in /api/data (activity, canaries, cost, crons, kamatera,
+ localFleet, officers, pnl, revenue, sessions, system, usage, usageSummary, wins):
+ find its render path in public/index.html. Fetched-but-never-rendered = dead data.
+2. Any UI section reading a field the API no longer sends = dead UI.
+
+Output: if you find dead data/dead UI, FIX the small ones inline (<5 min each) and commit;
+for anything bigger, enqueue ONE surgical task (NN=30+). Do NOT do failure drills or any
+other dimension — task 29 owns that. Commit message:
+`chore: DOM wiring audit (fable) — <verdict>`. pm2 restart abramsego to test if you edit;
+never a second node on 9773. Author steve@designerwallcoverings.com.
diff --git a/build-queue/staged/29-failure-drills.md b/build-queue/staged/29-failure-drills.md
new file mode 100644
index 0000000..2a7da60
--- /dev/null
+++ b/build-queue/staged/29-failure-drills.md
@@ -0,0 +1,20 @@
+# Task 29 — Failure-mode drills (split from timeout-killed task 27; scope: THIS ONLY)
+
+Run scripts/smoke.sh FIRST. It must PASS before you start drilling (a pre-existing failure
+means the environment isn't clean — log it, mark this task's log with the failing assertion,
+and exit 0 WITHOUT drilling so the task re-queues cleanly later... actually exit 0 archives
+the task; instead: if smoke fails, spend the task fixing THAT, commit, and re-create this
+file as tasks/29-failure-drills.md so drills run next cycle).
+
+Then ONE dimension only, ≤12 minutes: verify each panel degrades gracefully, never blank.
+Prefer CODE INSPECTION over live simulation; only simulate when safe and ALWAYS restore:
+1. data/local-fleet.json missing → Fleet·Local shows last-good + note? (inspect the task-17
+ cache path in server.js)
+2. Canary source dir empty → honest empty state, not blank/crash?
+3. cost-ledger.jsonl missing → P&L renders $0 + "no ledger" note, not NaN?
+State per drill: METHOD=inspection|simulation, VERDICT=graceful|gap.
+
+Fix small gaps inline and commit; bigger ones → enqueue ONE surgical task (NN=30+).
+Run scripts/smoke.sh again at the end — must PASS (proves you restored everything).
+Commit message: `chore: failure drills (fable) — <verdict>`. pm2 restart abramsego to
+test; never a second node on 9773. Author steve@designerwallcoverings.com.
← 2636095 auto-save: 2026-07-01T15:37:13 (4 files) — build-queue/tasks
·
back to AbramsEgo
·
queue: monetization build-out tasks 30-42 (research sweep, 4 26df849 →