Advance M8-M11 parity workflows
This commit is contained in:
45
docs/status/M10-12.md
Normal file
45
docs/status/M10-12.md
Normal file
@@ -0,0 +1,45 @@
|
||||
# M10-12 Status
|
||||
|
||||
status: done
|
||||
task: One NLA edit operator with Main transaction, undo/redo and save/reopen
|
||||
updated: 2026-08-16 America/New_York
|
||||
|
||||
## Scope
|
||||
|
||||
The bounded `moveNLAStrip` command moves one existing Action Clip while preserving
|
||||
its duration and time mapping. It requires the current `baseRevision`; stale commands
|
||||
return `REVISION_CONFLICT` before Main mutation. The Worker derives a candidate stack
|
||||
through the pure protocol helper, validates Action/path/range/overlap gates, and commits
|
||||
it through one authoritative Main `setNLAStack` transaction. The native history entry
|
||||
therefore covers the exact pre-edit `.blend` bytes.
|
||||
|
||||
This task intentionally opens only the move operator. Create/remove/resize/active,
|
||||
multi-track blending, Transition/Meta/Sound, NLA UI and export remain blocked or planned.
|
||||
|
||||
## Evidence
|
||||
|
||||
- Pure contract: `web/protocol/nla.ts` and `web/tests/unit/nla.test.mjs`, 2/2 tests.
|
||||
The source stack is not mutated; overlap, unknown identity and frame budget errors
|
||||
are deterministic.
|
||||
- `WEB_TEST_PORT=5528 npm --prefix web run test:nla-operator`: unit 2/2 and Chromium
|
||||
1/1 passed. The browser path proves stale revision rejection, Main move 20..40 ->
|
||||
5..25, monotonic revision/delta, undo to 20..40, redo to 5..25, save/reopen at
|
||||
5..25, and native frame-10 evaluation at X=2.5.
|
||||
- `npm --prefix web run typecheck`, `npm --prefix web run lint`, and `git diff --check`:
|
||||
passed.
|
||||
|
||||
## Rollback
|
||||
|
||||
Remove `moveNLAStrip` from `web/protocol/nla.ts` and `web/protocol/web-engine.ts`,
|
||||
remove the Worker conversion, unit/E2E tests and package command, and delete this
|
||||
status file. Restore the M10 count to 11/15. Keep M10-11 read-only evaluation and
|
||||
the pre-existing whole-stack `setNLAStack` authoring path.
|
||||
|
||||
## Implementation Hashes
|
||||
|
||||
- `web/protocol/nla.ts`: `03d5abce5cb2f0a3a38e42eedbced7f4de6e2052d18e53a3dcde3b3ca1e6020d`
|
||||
- `web/protocol/web-engine.ts`: `48f2290ead27aeda1f17b279f01ae278776b50b4cb4de065d94b0e1d44717dbb`
|
||||
- `web/app/src/workers/web-engine.worker.ts`: `4ccad87c1619db8e39d2855ebca9918883484ce3e5dfc8a325ccee9a8220397c`
|
||||
- `web/tests/unit/nla.test.mjs`: `d8bac2dd3e4ec1a1342de7c7401a51beb9879ea5ba2b34df7d615ae0449081a7`
|
||||
- `web/tests/e2e/nla-operator.spec.ts`: `1658d52eb0b8cf329f73be552e9b2649ed6dc96b21edb48ade9dd4a725a37ae0`
|
||||
- `web/package.json`: `e9d5c6e4f7132921faac8ecbee40215098497fe374d56309f2c76fab152c33d6`
|
||||
Reference in New Issue
Block a user