[laneB] log: M2 session 2
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
parent
5d9950211c
commit
bbb3f99016
@ -59,3 +59,47 @@ NEXT: Hold at M1 boundary. At SYNC 1 the stub swaps for the real Stage
|
||||
(one-line change in the page import) and tldev.html/stagestub.js get
|
||||
deleted. M2 (locked): clip crossfade polish, params/cut lane UI, snapping
|
||||
config, undo Ctrl+Z already stubbed, box-select multi-drag.
|
||||
|
||||
## 2026-07-18 session 2 (M2)
|
||||
DONE: M2 per orchestrator update. SYNC findings fixed first, then polish.
|
||||
- SYNC1 #3a/#3b: added `Timeline.onLoad(cb)`; `load()` fires it →
|
||||
TimelineUI rebuilds rows + refreshes name/duration fields. Verified with
|
||||
the exact repro (UI built against empty stage, then `load()` a 2-entity
|
||||
scene → rows now appear, scene bar updates).
|
||||
- SYNC1 #4 clipdrop: `scenegod:clipdrop {id,path,clipIndex}` → `addClipDrop`
|
||||
drops a block at the playhead, `out = clip.duration` (from preload), auto
|
||||
`fade:0.25` where it abuts a neighbour. Verified via dispatched event.
|
||||
- Crossfade fade-IN (was fade-OUT only): a predecessor's fade pre-rolls the
|
||||
successor's playback start earlier by `pred.fade` so local time is
|
||||
continuous across the boundary; weights ramp 1→0 / 0→1 and sum to 1
|
||||
(asserted in test).
|
||||
- Params lanes (per-key hue), camera-cut lane add via dblclick on Cameras
|
||||
row (uses active cam / first camera), snap toggle in scene bar (Alt still
|
||||
= free), box-select + multi-drag + Delete of keys, selection highlight,
|
||||
fade wedge drawn on clip blocks, panel grows to content height (was fixed
|
||||
200px → clipped the Cameras row once params rows were added).
|
||||
- timeline_test.mjs extended: onLoad fires once, addClipDrop out=duration,
|
||||
crossfade weights sum to 1. All green.
|
||||
DECISIONS / BUG:
|
||||
- **tlui reads tracks from the TIMELINE, not the stage entity.** Found mid-
|
||||
verify: `load()` structuredClones the scene, so timeline.scene.entities and
|
||||
stage entities are SEPARATE objects. Drawing from stage meant clipdrop/
|
||||
addKey (which mutate the timeline copy) never appeared. Repointed all draw
|
||||
methods to `_te(id) = tl.scene.entities.find(id)`. Rows now built from the
|
||||
timeline list merged with any stage-only (dock-added, not-yet-keyframed)
|
||||
entities. Per PLAN the timeline owns tracks — this is the correct source.
|
||||
- Grow-to-content height, no scroll yet (ponytail: add max-height+scroll only
|
||||
if a scene ever has enough entities to dominate the viewport).
|
||||
BLOCKED/REQUESTS:
|
||||
- Gap for the orchestrator/Lane A to note: there's no bridge for a
|
||||
dock-added stage entity to enter `timeline.scene.entities`, so a freshly
|
||||
dropped character can't be keyframed until a scene load. tlui shows it as a
|
||||
row (empty tracks) but mutators need the entity present. If Lane A's dock
|
||||
should register new entities with the timeline, we need a
|
||||
`timeline.addEntity(desc)` (or the dock calls `stage.captureState()` →
|
||||
`timeline.load`). Flagging for SYNC 2 — not building it uninvited.
|
||||
- Verified with a throwaway harness (`_check.html`) served on :8099; deleted,
|
||||
NOT committed (orchestrator removed the M1 tldev.html deliberately).
|
||||
NEXT: Hold at M2. Remaining M2 polish if a session 3 is granted: undo already
|
||||
wired to Ctrl+Z; could add snapping increment config + keyable-param add UI
|
||||
(currently params keys come from Lane A capture/inspector). Await SYNC 2.
|
||||
|
||||
BIN
logs/shots/m2-cameras-lights-dome.png
Normal file
BIN
logs/shots/m2-cameras-lights-dome.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 215 KiB |
Loading…
Reference in New Issue
Block a user