From d4b1fbd9e6ced67f5b050f8db3b8fd466c614dbc Mon Sep 17 00:00:00 2001 From: "soroush.asadi" Date: Sun, 7 Jun 2026 00:09:35 +0330 Subject: [PATCH] =?UTF-8?q?docs(handoff):=20next-up=20=3D=20studio?= =?UTF-8?q?=E2=86=94template=20binding=20epic,=20start=20phase=20B=20(edit?= =?UTF-8?q?=E2=86=92render)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Opus 4.8 --- docs/SESSION_HANDOFF.md | 25 +++++++++++++++++++++---- 1 file changed, 21 insertions(+), 4 deletions(-) diff --git a/docs/SESSION_HANDOFF.md b/docs/SESSION_HANDOFF.md index cdd897f..ed0c18f 100644 --- a/docs/SESSION_HANDOFF.md +++ b/docs/SESSION_HANDOFF.md @@ -39,11 +39,28 @@ docker compose -f docker-compose.v2.yml --env-file .env.v2 up -d - **Template detail page** wired to real content (`fetchProject(slug)`; was hardcoded demo catalog → 404'd). - **"Use template" works end-to-end:** `StudioService.CreateProjectAsync` deep-copies the content template scene graph (scenes + content elements + scene colors + shared colors) into the editable studio project via one atomic cross-schema SQL copy (enum cols cast `::text`; temp `_scene_map`). `/api/projects` resolves container slug → published variant project. **Aspect-ratio picker** (16:9/1:1/9:16) on the detail page drives which variant is copied. -## Known follow-ups (not done) +## ⏭️ NEXT UP — Studio↔Template binding EPIC (agreed priority) -- Scene-graph copy skips **repeater children, characters, color-presets** (scenes + fields + colors ARE copied). -- Admin can't edit *other* users' full profiles yet (self-edit works for everyone). -- Test the studio editor itself once inside (large Konva surface — not exhaustively exercised). +**Start with Phase B: edit→render binding.** Full plan in `~/.claude` memory +`epic_studio_template_binding.md`. Summary: +- **B1** persist studio input edits to `saved_scene_contents` (new studio-svc + `PATCH /v1/saved-projects/{id}/contents` by content key) — today edits only go to `edit_state`. +- **B2** render binder (port v1 `JSXGenerator.cs`): before aerender, JSX sets each AE layer + (named `frl_c{n}{t|m}{i}`) text/footage + frshare colours from the saved values, then render. + Today the node renders the template with DEFAULT values → user edits never reach the MP4. +- Then **A** admin preset stories (premade videos — model `preset_stories`/`preset_scenes` + exists, no endpoints/UI; detail "ویدیوهای ساخته‌شده" is placeholder), and **C** AE single-frame + scene snapshots (`scenes.snapshot_url` empty → node `aerender -s 0 -e 0`). + +Also smaller, still open: per-tier render **height** (render-svc r_height hardcoded 1080 + node +ffmpeg scale), **FIX hides add-scene** (mode not plumbed into studio store), **Persian/Jalali +date pickers** in admin, **admin/renders** pagination + video/output + user-name → profile link, +deeper per-input controllers in the admin scene-inputs editor. + +## Done follow-ups (this session) +- Scene-graph copy now includes repeater children, characters/controllers, color-presets. +- Admin CAN edit any user's full profile (Users → «پروفایل»). +- Studio now shows ALL template inputs (contents→layers bridge). ## Debugging client-side behavior