docs(handoff): phase B done (B1+B2) — edit→render binding
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
+13
-8
@@ -41,14 +41,19 @@ docker compose -f docker-compose.v2.yml --env-file .env.v2 up -d <svc>
|
|||||||
|
|
||||||
## ⏭️ NEXT UP — Studio↔Template binding EPIC (agreed priority)
|
## ⏭️ NEXT UP — Studio↔Template binding EPIC (agreed priority)
|
||||||
|
|
||||||
**Start with Phase B: edit→render binding.** Full plan in `~/.claude` memory
|
**Phase B DONE (commits a69bc62 B1, 47a4ced B2).** Edit→render binding works:
|
||||||
`epic_studio_template_binding.md`. Summary:
|
- **B1 ✅** studio input edits persist to `saved_scene_contents` via studio-svc
|
||||||
- **B1** persist studio input edits to `saved_scene_contents` (new studio-svc
|
`PATCH /v1/saved-projects/{id}/contents` (Next `/api/projects/[id]/contents`); the
|
||||||
`PATCH /v1/saved-projects/{id}/contents` by content key) — today edits only go to `edit_state`.
|
persistence hook pushes edited values (bridged `c-<key>` layers) on every save.
|
||||||
- **B2** render binder (port v1 `JSXGenerator.cs`): before aerender, JSX sets each AE layer
|
- **B2 ✅** render-svc claim now includes `bindings` (GetRenderBindings = saved_scene_contents
|
||||||
(named `frl_c{n}{t|m}{i}`) text/footage + frshare colours from the saved values, then render.
|
with non-empty value); node-agent `binder.go` emits a JSON bind-spec + downloads media, runs
|
||||||
Today the node renders the template with DEFAULT values → user edits never reach the MP4.
|
the data-driven `bind.jsx` via afterfx (sets Source Text, replaces footage) → saves `bound.aep`
|
||||||
- Then **A** admin preset stories (premade videos — model `preset_stories`/`preset_scenes`
|
→ aerender renders THAT.
|
||||||
|
- **VERIFY (needs node-agent re-run):** re-run the updated `node-agent.exe`, edit a text input in
|
||||||
|
the studio (wait for "saved"), render, confirm the MP4 shows the edited text. Colours
|
||||||
|
(saved_shared_colors → spec.colors) + footage-item media (vs layer-source) are follow-ups.
|
||||||
|
|
||||||
|
- Next: **A** admin preset stories (premade videos — model `preset_stories`/`preset_scenes`
|
||||||
exists, no endpoints/UI; detail "ویدیوهای ساختهشده" is placeholder), and **C** AE single-frame
|
exists, no endpoints/UI; detail "ویدیوهای ساختهشده" is placeholder), and **C** AE single-frame
|
||||||
scene snapshots (`scenes.snapshot_url` empty → node `aerender -s 0 -e 0`).
|
scene snapshots (`scenes.snapshot_url` empty → node `aerender -s 0 -e 0`).
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user