WolfDavid commited on
Commit
f8cc609
Β·
1 Parent(s): 7146e75

docs(01-03): record the crash-interrupted state of the transport seam plan

Browse files

STATE.md still claimed work stopped after 01-01, two tasks behind reality.
Reconstruct the real position from the working tree and git log: 01-03 is
mid-execution with Tasks 1-2 done and Tasks 3-4 untouched.

Carry forward the two corrections found while verifying the recovered work
so the next executor does not rediscover them: a Gradio mention in the
stage core that only passes the seam guard because the check is
case-sensitive, and an emit-ordering gap in boot() where the plan calls
mountStage with an emit that installFacade has not returned yet.

Files changed (1) hide show
  1. .planning/STATE.md +26 -7
.planning/STATE.md CHANGED
@@ -2,9 +2,9 @@
2
  gsd_state_version: 1.0
3
  milestone: v1.0
4
  milestone_name: milestone
5
- status: unknown
6
- stopped_at: Completed 01-01-PLAN.md (hosting + VRM gates). Space live on ZeroGPU; tutor.vrm committed via LFS as a TEMPORARY asset. DPLY-01 and DPLY-04 remain Pending by design.
7
- last_updated: "2026-08-27T03:05:01.428Z"
8
  progress:
9
  total_phases: 6
10
  completed_phases: 0
@@ -24,7 +24,24 @@ See: .planning/PROJECT.md (updated 2026-08-08)
24
  ## Current Position
25
 
26
  Phase: 01 (voice-avatar-loop-skeleton) β€” EXECUTING
27
- Plan: 4 of 10 (3 complete)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
28
 
29
  **Completed:** 01-02 (local foundations β€” pytest/ruff on Python 3.12.12, Git LFS armed, `--space-url` plumbing, audio fixtures), 01-04 (Japanese voice β€” VOICEVOX assets via LFS, `synthesize()`, `requirements.txt`, ground-truth fixtures), and 01-01 (hosting + VRM gates β€” **both human checkpoints are now closed**). **VOIC-01 is Complete.** The plan counter is a count, not a plan ID: "Plan 4 of 10" does not mean 01-03 is done.
30
  **Both Phase-1 human gates are cleared.** The Space is live at `WolfDavid/japanese-learning-avatar` on ZeroGPU (`requested: zero-a10g`, public, 48 h sleep); `SPACE_URL` is `https://wolfdavid-japanese-learning-avatar.hf.space` and is recorded in `docs/HOSTING.md`. `avatar/assets/tutor.vrm` is committed through LFS. Nothing is deployed to the Space yet β€” it serves 503 (`NO_APP_FILE`) until 01-05 pushes an app.
@@ -102,6 +119,8 @@ None yet.
102
 
103
  ## Session Continuity
104
 
105
- Last session: 2026-08-27T03:05:01.418Z
106
- Stopped at: Completed 01-01-PLAN.md (hosting + VRM gates). Space live on ZeroGPU; tutor.vrm committed via LFS as a TEMPORARY asset. DPLY-01 and DPLY-04 remain Pending by design.
107
- Resume file: None
 
 
 
2
  gsd_state_version: 1.0
3
  milestone: v1.0
4
  milestone_name: milestone
5
+ status: executing
6
+ stopped_at: "Session crashed mid-execution of 01-03 (avatar transport seam). Tasks 1 and 2 are complete and committed (94a5b15, 7146e75); Tasks 3 and 4 have not been started. Resume by executing 01-03 from Task 3."
7
+ last_updated: "2026-08-27T00:00:00.000Z"
8
  progress:
9
  total_phases: 6
10
  completed_phases: 0
 
24
  ## Current Position
25
 
26
  Phase: 01 (voice-avatar-loop-skeleton) β€” EXECUTING
27
+ Plan: 4 of 10 (3 complete, 01-03 in flight at Task 3 of 4)
28
+
29
+ > **01-03 IS MID-EXECUTION β€” a session crash interrupted it, not a pause.** No `HANDOFF.json` and no `.continue-here` exist because `/gsd:pause-work` never ran; the state below was reconstructed from the working tree and git log on 2026-08-27.
30
+ >
31
+ > | Task | Deliverable | State |
32
+ > |------|-------------|-------|
33
+ > | 1 | `vrm-stage.js`, `lipsync.js`, `audio-queue.js` | Complete, committed `94a5b15` |
34
+ > | 2 | `facade.js`, `turn-loop.js` | Complete, committed `7146e75` (recovered from untracked files at resume) |
35
+ > | 3 | `avatar.js`, `avatar-iframe.js`, `stage.html`, `demo-konnichiwa.wav`, `avatar_component.py`, `app.py` | **Not started β€” none of these files exist** |
36
+ > | 4 | `tests/test_transport_seam.py`, `tests/e2e/test_stage_standalone.py`, `tests/e2e/test_facade_parity.py` | **Not started** |
37
+ >
38
+ > **Resume at Task 3.** Tasks 1-2 were spot-checked against their acceptance criteria at resume and pass: the `?deps=three@0.185.1` pin appears exactly once, no import map exists anywhere in `avatar/`, `lipsync.js` has no `setTimeout`, and `facade.js` is the only file matching `window.Avatar =`.
39
+ >
40
+ > **Two corrections the Task 3/4 executor needs:**
41
+ > 1. **`avatar/vrm-stage.js:64` contains the word "Gradio" in a comment.** Task 4's `test_stage_core_is_gradio_free` greps the lowercase token `gradio`, so the capitalised word passes today β€” but it violates the rule's intent and breaks the moment that check is made case-insensitive. Reword it while writing Task 4.
42
+ > 2. **`boot()` has an emit-ordering problem the plan does not call out.** Task 3 step 2 calls `mountStage(canvas, props.vrmUrl, emit)`, but `emit` does not exist until `installFacade` returns it at step 5. The transport needs a deferred emit β€” a local function that buffers events (or forwards to a mutable reference) until the real bus is installed. This applies to **both** transports.
43
+ >
44
+ > Also note Task 2's acceptance criterion `grep -ci "gradio\|element\|props\|THREE" avatar/facade.js avatar/turn-loop.js` returns 0 is **unsatisfiable as literally written**: `threeInstanceCount` is a mandated `__debug` key and contains the substring `three`. The actual enforced test (`test_shared_modules_are_gradio_free`) checks only `gradio`, `gradio_api`, `server.` and `trigger(`, all of which genuinely are absent. Trust the test, not the prose.
45
 
46
  **Completed:** 01-02 (local foundations β€” pytest/ruff on Python 3.12.12, Git LFS armed, `--space-url` plumbing, audio fixtures), 01-04 (Japanese voice β€” VOICEVOX assets via LFS, `synthesize()`, `requirements.txt`, ground-truth fixtures), and 01-01 (hosting + VRM gates β€” **both human checkpoints are now closed**). **VOIC-01 is Complete.** The plan counter is a count, not a plan ID: "Plan 4 of 10" does not mean 01-03 is done.
47
  **Both Phase-1 human gates are cleared.** The Space is live at `WolfDavid/japanese-learning-avatar` on ZeroGPU (`requested: zero-a10g`, public, 48 h sleep); `SPACE_URL` is `https://wolfdavid-japanese-learning-avatar.hf.space` and is recorded in `docs/HOSTING.md`. `avatar/assets/tutor.vrm` is committed through LFS. Nothing is deployed to the Space yet β€” it serves 503 (`NO_APP_FILE`) until 01-05 pushes an app.
 
119
 
120
  ## Session Continuity
121
 
122
+ Last session: 2026-08-27 β€” session resumed via /gsd:resume-work after a crash; Task 2's recovered files committed, proceeding to execute 01-03 from Task 3.
123
+ Stopped at: 01-03 mid-execution. Tasks 1-2 complete and committed; Tasks 3-4 not started. See the table under "Current Position".
124
+ Resume file: None (crash, not a pause β€” no HANDOFF.json was written)
125
+
126
+ **Do not push to the `space` remote yet.** It is the only remote this repo has, and pushing triggers a Space rebuild. `app.py` does not exist until Task 3, and the Space README front-matter fixes are owned by plan 01-05. The Space correctly serves 503 (`NO_APP_FILE`) until then.