gabriel / musehub public
chore main #12 / 34
AI Agent gabriel · 120 days ago · May 9, 2026 · Diff

chore: delete ephemeral investigation and diagnosis docs

sha256:55c16e69f25f3359d7212bd83c8664068bbf05b4c2fff0ff0079c78b7a378ab3 sha
−126 symbols
sha256:35b03f011ab1f33d6cb2f7c9649468b6b7bc07f8069d9294a55c6a24fd2abf61 snapshot
−126
symbols removed
0
dead code introduced
Semantic Changes 126 symbols
~ GHOST_OBJECTS_INVESTIGATION.md .md 75 symbols removed
Ghost Objects — Investigation & TDD Roadmap section Ghost Objects — Investigation & TDD Roadmap L1–551
Atomic Test Plan — Bottom-Up section Atomic Test Plan — Bottom-Up L180–276
Layer 0 — Terminology section Layer 0 — Terminology L182–185
py bug (isolated, no DB/R2 needed) section Layer 1 — decompress_objects.py bug (isolated, no DB/R2 needed) L185–210
code[python]@L188 variable variable code[python]@L188 L188–194
code[python]@L196 variable variable code[python]@L196 L196–202
code[python]@L204 variable variable code[python]@L204 L204–209
Layer 2 — wire_push_confirm missing existence check section Layer 2 — wire_push_confirm missing existence check L210–234
code[python]@L213 variable variable code[python]@L213 L213–219
code[python]@L221 variable variable code[python]@L221 L221–226
code[python]@L228 variable variable code[python]@L228 L228–233
Layer 3 — Phase C ghost check wiring section Layer 3 — Phase C ghost check wiring L234–260
code[python]@L237 variable variable code[python]@L237 L237–243
code[python]@L245 variable variable code[python]@L245 L245–251
code[python]@L253 variable variable code[python]@L253 L253–259
py correctness section Layer 4 — repair_objects.py correctness L260–276
code[python]@L263 variable variable code[python]@L263 L263–267
code[python]@L269 variable variable code[python]@L269 L269–273
Current Status (2026-05-08) section Current Status (2026-05-08) L7–26
Completed section Completed L9–16
Failing Now section Failing Now L16–26
code@L17 variable variable code@L17 L17–21
Execution Order section Execution Order L327–340
Fix Plan (once root cause confirmed) section Fix Plan (once root cause confirmed) L276–327
py: define bare_oid on correct path section Fix 1 — decompress_objects.py: define bare_oid on correct path L278–298
code[python]@L280 variable variable code[python]@L280 L280–293
Fix 2 — wire_push_confirm: verify R2 existence before inserting DB row section Fix 2 — wire_push_confirm: verify R2 existence before inserting DB row L298–314
code[python]@L300 variable variable code[python]@L300 L300–313
py on staging to purge ghost rows section Fix 3 (operational) — Run repair_objects.py on staging to purge ghost rows L314–327
code[bash]@L316 variable variable code[bash]@L316 L316–321
Hypotheses (ranked by likelihood) section Hypotheses (ranked by likelihood) L155–180
H1 — push/confirm with unverified R2 PUTs (presigned path) section H1 — push/confirm with unverified R2 PUTs (presigned path) L157–163
H2 — R2 key migration orphaned DB rows section H2 — R2 key migration orphaned DB rows L163–172
py NameError left objects inaccessible section H3 — decompress_objects.py NameError left objects inaccessible L172–180
Layer 5 — Has/Wants Dance + wire_push_presign DB-only check section Layer 5 — Has/Wants Dance + wire_push_presign DB-only check L340–447
First principles section First principles L387–405
code@L389 variable variable code@L389 L389–399
Fix (deployed ✅) section Fix (deployed ✅) L433–438
Layer 5 tests section Layer 5 tests L405–433
code@L408 variable variable code@L408 L408–412
code@L414 variable variable code@L414 L414–418
code@L421 variable variable code@L421 L421–425
code@L428 variable variable code@L428 L428–432
Status section Status L438–447
The two questions section The two questions L361–387
code[python]@L366 variable variable code[python]@L366 L366–376
What we observed section What we observed L342–353
code@L344 variable variable code@L344 L344–348
Why not in local object store? section Why not in local object store? L353–361
Layer 6 — Phase-C scope: new snapshots only section Layer 6 — Phase-C scope: new snapshots only L447–551
First principles section First principles L469–487
Fix section Fix L527–551
code[python]@L532 variable variable code[python]@L532 L532–551
Layer 6 tests section Layer 6 tests L497–527
code@L500 variable variable code@L500 L500–505
code@L507 variable variable code@L507 L507–512
code@L514 variable variable code@L514 L514–518
code@L521 variable variable code@L521 L521–526
py:2112–2114) section The code (musehub_wire.py:2112–2114) L456–469
code[python]@L458 variable variable code[python]@L458 L458–464
Two questions section Two questions L487–497
What we observed section What we observed L449–456
Symptom (original) section Symptom (original) L26–38
code@L28 variable variable code@L28 L28–32
What We Don't Know section What We Don't Know L129–155
What We Know for Certain section What We Know for Certain L38–129
How the ghost check works (Phase C) section How the ghost check works (Phase C) L40–55
code@L42 variable variable code@L42 L42–52
Presigned path (push/presign → R2 PUT → push/confirm) section Presigned path (push/presign → R2 PUT → push/confirm) L89–99
R2 key history — three formats existed section R2 key history — three formats existed L62–73
table@L64 section table@L64 L64–69
Streaming push path (inline objects — enc=raw/zlib/zstd/delta+zlib) section Streaming push path (inline objects — enc=raw/zlib/zstd/delta+zlib) L73–89
exists() checks section What backend.exists() checks L55–62
py bug (confirmed) section decompress_objects.py bug (confirmed) L99–129
code[python]@L101 variable variable code[python]@L101 L101–113
~ docs/push-422-root-cause.md .md 16 symbols removed
Push 422 Root Cause — Have-Anchor Object Gap section Push 422 Root Cause — Have-Anchor Object Gap L1–112
Immediate Fix section Immediate Fix L62–72
code[bash]@L67 variable variable code[bash]@L67 L67–71
Invariant section Invariant L47–62
code@L49 variable variable code@L49 L49–57
Long-Term Fix section Long-Term Fix L72–86
Root Cause section Root Cause L27–47
code[python]@L32 variable variable code[python]@L32 L32–37
Smoking Gun section Smoking Gun L14–27
code@L18 variable variable code@L18 L18–22
Symptom section Symptom L3–14
code@L7 variable variable code@L7 L7–11
Tests section Tests L97–112
table@L99 section table@L99 L99–112
Timeline section Timeline L86–97
table@L88 section table@L88 L88–96
~ docs/push-timeout-diagnosis.md .md 35 symbols removed
Push Timeout Diagnosis section Push Timeout Diagnosis L1–258
Atomic Tests (Bottom-Up) section Atomic Tests (Bottom-Up) L141–195
Layer 0 — Baseline: can we push at all? section Layer 0 — Baseline: can we push at all? L145–153
table@L147 section table@L147 L147–152
Layer 1 — R2 PUT latency section Layer 1 — R2 PUT latency L153–164
table@L155 section table@L155 L155–161
Layer 2 — One batch, end-to-end timing section Layer 2 — One batch, end-to-end timing L164–175
table@L166 section table@L166 L166–172
Layer 3 — Heartbeat delivery section Layer 3 — Heartbeat delivery L175–185
table@L177 section table@L177 L177–182
Layer 4 — Full push section Layer 4 — Full push L185–195
table@L187 section table@L187 L187–192
Code Locations section Code Locations L246–258
table@L248 section table@L248 L248–258
Everything We Have Tried section Everything We Have Tried L64–102
Attempt 1 — Fresh push after delete+recreate (failed: CF 524) section Attempt 1 — Fresh push after delete+recreate (failed: CF 524) L66–72
Attempt 2 — Repair script for ghost objects (worked, but wrong problem) section Attempt 2 — Repair script for ghost objects (worked, but wrong problem) L72–78
Attempt 3 — Stream _WireResponse response frames (froze) section Attempt 3 — Stream _WireResponse response frames (froze) L78–102
table@L90 section table@L90 L90–97
Next Actions (in order) section Next Actions (in order) L215–224
The Architecture We Need to Match section The Architecture We Need to Match L112–130
The Experiment to Run First section The Experiment to Run First L195–215
The Goldilocks Zone (What "Fixed" Looks Like) section The Goldilocks Zone (What "Fixed" Looks Like) L130–141
The Repo Under Test section The Repo Under Test L9–21
table@L13 section table@L13 L13–18
What We Are Trying To Do section What We Are Trying To Do L3–9
What We Do NOT Know (Unknowns to Resolve) section What We Do NOT Know (Unknowns to Resolve) L102–112
What We Know About the Push Path section What We Know About the Push Path L21–64
Client-side batching (no CF Worker configured for staging) section Client-side batching (no CF Worker configured for staging) L23–38
code@L27 variable variable code@L27 L27–30
Cloudflare proxy in between section Cloudflare proxy in between L58–64
Server-side per batch section Server-side per batch L38–58
code@L40 variable variable code@L40 L40–57
What We Now Know About the Push Path (corrected) section What We Now Know About the Push Path (corrected) L224–246
code[python]@L228 variable variable code[python]@L228 L228–232

0 comments

No comments yet. Be the first to start the discussion.

To add a comment, use the Muse CLI: muse hub commit comment sha256:55c16e69f25f3359d7212bd83c8664068bbf05b4c2fff0ff0079c78b7a378ab3 --body "your comment"