1.6 KiB
M12-01F Status
status: done task: reject duplicate IDs, catalog cycles, oversized text, and unknown fields updated: 2026-08-17 America/New_York enablingTask: true parityStateChange: false
Scope
The negative matrix executes production schema v2 and migration parsers against duplicate
catalog/asset IDs, a legacy parent cycle, an inconsistent v2 parentPath, 64-byte UTF-8
simple-name/tag values, and unknown top-level/nested fields in both v1 and v2. The byte cases
use multi-byte text to prove limits are not JavaScript character counts.
Every failure returns a stable asset error code. The valid v2 fixture is parsed after each negative case to prove the failed input did not poison parser state. This task adds negative evidence only and does not change catalog parity status.
Evidence
npm --prefix web run test:asset-catalog-negativespassed 2/2 with 9/9 negative cases.- Duplicate/cycle/parent/unknown cases returned
ASSET_MANIFEST_INVALID; both 64-byte UTF-8 payloads returnedASSET_BUDGET_EXCEEDED. - Typecheck, lint, and
git diff --checkpassed.
Artifact Hashes
- unit suite:
3a11605ac8666c8c4e1e2e85ccfd423115915820d0de6f92bdf72dff1f01ce41 - negative cases:
74672fa0aec248fd5d9a265743ef4dfe4d417fce8a24622b8b3d6be2f95c8874 - manifest:
127b2b605ac79a891cd6ab516ee031c02624a512e1043b111bfac2ebf1d8278d
Next Task
M12-01G: prove an IndexedDB migration failure preserves the old transaction and index.
Rollback
Remove the M12-01F negative suite, golden/manifest, package command, and this status entry.
Restore M12-01F to pending and nextTask to M12-01F. No parity ledger rollback is required.