Author corrections without baking them into motion
Constant, ramp, and return offsets now append ordinary channel layers to a lane or cel in explicit owner frames. The inspector exposes the commands as one undoable transaction, shows conflicts, and offers removal or retry while preserving generated bases through regeneration. Ordered-stack compatibility is shared by validation, conflict reporting, and regeneration, including adjacent replacement coverage. Cel-sheet gaps and headers select their lane, so commands cannot fall through to another column's stale selection. 437 tests, 5,804 assertions; both browser flows; 56 Django tests; optimized frontend build.
This commit is contained in:
parent
3dbbe285fc
commit
815ce449ea
14 changed files with 806 additions and 60 deletions
|
|
@ -2,8 +2,8 @@
|
|||
|
||||
Revised 2026-09-30. Target design. Cel ownership, source playback, the
|
||||
content and cel commands, placement anywhere in a lane, overwrite, a one-row cel
|
||||
strip, a frame-down cel sheet and the correction-layer evaluator are implemented;
|
||||
the commands that produce a correction and the retiming commands are not.
|
||||
strip, a frame-down cel sheet, correction evaluation, and correction authoring
|
||||
for rotation and position are implemented. Retiming commands are not.
|
||||
See the status note under
|
||||
[Proof obligations](#proof-obligations-and-implementation-order).
|
||||
|
||||
|
|
@ -536,17 +536,23 @@ retime, and deleting reused content. A lane cannot hold AUDIO cels — `lane-pro
|
|||
requires visual ones, though this document says a lane may hold either and
|
||||
should reject only a mixture.
|
||||
|
||||
What is NOT implemented is a command that produces a layer — the doc's Constant
|
||||
adjustment, Ramp and Return motion — and with it the question of how a view
|
||||
offers those three over a selected range, and how it offers a conflict for
|
||||
resolution. Slip source and retime are also not implemented; a refusal is the
|
||||
current behavior where the model demands an explicit choice nobody has made yet.
|
||||
`domain/correction.cljs` now produces Constant adjustment, Ramp, and Return
|
||||
motion layers for rotation and position. The inspector exposes them on a selected
|
||||
lane or cel using an explicit range in that owner's frames; this deliberately
|
||||
leaves displayed-range dragging through nested or retimed owners for later. One
|
||||
Apply is one undo step. Conflicted layers are listed, can be removed, and can be
|
||||
retried when the complete ordered stack is compatible again. Validation,
|
||||
conflict reporting, and regeneration share that ordered-stack rule, including
|
||||
coverage by adjacent replacement layers. Slip source and retime are still not
|
||||
implemented; a refusal is the current behavior where the model demands an
|
||||
explicit choice nobody has made yet.
|
||||
The cel sheet is the same projected cels and selection addresses with its axes
|
||||
turned: frames down and lanes across, so commands selected there and in the
|
||||
timeline have identical targets. The suite stands at 429 tests and 5,767
|
||||
timeline have identical targets; a gap selects its column's lane rather than
|
||||
retaining a stale selection from another column. The suite stands at 437 tests and 5,804
|
||||
assertions, with `frontend/test/browser/lane.mjs` driving the editor through
|
||||
create, hold, overflow, undo, reuse, make unique, duplicate, split, insert,
|
||||
trim, move and blank. Rewrite tests that encode superseded
|
||||
trim, move, blank, correction authoring, and two-lane sheet targeting. Rewrite tests that encode superseded
|
||||
behavior rather than preserving behavior to keep them green.
|
||||
|
||||
Build small adversarial documents and test their domain operations before
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue