46 lines
2.0 KiB
Markdown
46 lines
2.0 KiB
Markdown
# M12-03G Status
|
|
|
|
status: done
|
|
task: block every linked data writer before Main mutation
|
|
updated: 2026-08-17 America/New_York
|
|
enablingTask: false
|
|
parityStateChange: false
|
|
|
|
## Scope
|
|
|
|
The schema-1 linked mutation gate covers object transforms, mesh geometry, mesh material slots,
|
|
material properties, material image nodes, and packed image data. Every request must identify a
|
|
`SOURCE_LIBRARY` owner with `linkedLibrary=true` and `readOnly=true`. A current linked request is
|
|
blocked with `LINKED_DATA_MUTATION_BLOCKED` before any Main writer can run; stale revisions remain
|
|
`REVISION_CONFLICT`, and malformed or ownership-substituted requests fail closed.
|
|
|
|
This task does not claim a linked writer, reload, relocation, missing-library recovery, or full
|
|
N-023 Link parity. The desktop linked ownership contract is the M12-03F input to this gate.
|
|
|
|
## Evidence
|
|
|
|
- `npm --prefix web run test:library-linked-mutation` passed 3/3 unit tests.
|
|
- All six linked writer operations return `BLOCKED` with exactly
|
|
`LINKED_DATA_MUTATION_BLOCKED`, `recoverable=false`, and no Main mutation path. The test also
|
|
verifies the schema round-trip for each operation.
|
|
- A stale revision returns `REVISION_CONFLICT`; an unknown field, unsupported operation, or owner /
|
|
read-only substitution returns `TASK_VALIDATION_FAILED` or `LINKED_DATA_MUTATION_BLOCKED` before
|
|
any writer invocation.
|
|
|
|
## Artifact Hashes
|
|
|
|
- protocol: `f629e0e7e04dc1f5437b6e2ca62fbe35484fc238830fa47e8358bcab46b7e104`
|
|
- unit: `f19d47cefe89daf6123062e045ec717e6ffe60977e8a4b20c996dd62e49da211`
|
|
- manifest: `890891fda5c91b08d157927170fb33190ae0d8a49f8962b88c8554307c0c06a8`
|
|
- package commands: `cfb232baa494ff59f6c8d65514a08c86332ee9354350b2a0392b6f932a7ee42c`
|
|
|
|
## Next Task
|
|
|
|
`M12-03H`: library reload replaces only the matching linked generation snapshot.
|
|
|
|
## Rollback
|
|
|
|
Remove the linked mutation protocol, unit suite, manifest, package command, and this status entry.
|
|
Restore M12-03F to pending and move the machine queue back to `M12-03F`. No parity ledger rollback
|
|
is required.
|