You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
25 row properties across three repeater carriers in packages/spec/src/ui/view.zod.ts.
Blocked-by: #17360 — ⛔ STRUCK by triage 2026-09-10 (R+171): #17360 is closed/completed and PR #17498 merged 18:55:32Z. This card is NOT blocked.
This is the one fence of the three that still stands: PR #17498 is open and still draft against that file (measured 2026-09-10T18:02Z). ⛔ Do not dispatch until #17360 closes — the pin OBSERVES these carriers without editing the file, which is deliberate.
view : columns 14 view : tabs 9 view : sort 2
⚠️ Two traps measured in #17232's round, both specific to this file:
ViewMetadataSchema is a 4-arm union in which columns is an object array (14 row props) on the list arm and an INTEGER (form body columns) on the form arm. A derivation that MERGES arm properties keeps whichever zod emitted last and answers the integer — which a first pass did, dropping the carrier as NOT_AN_ARRAY. Keep every union arm as a separate candidate.
Part of #17232. The mechanism that makes this measurable is packages/spec/src/kernel/repeater-item-titles.test.ts — an exact, shrink-only ledger: a carrier absent from the ledger must be fully titled (a new untitled repeater reds on arrival), and a carrier present in it must still be untitled (a paid debt must be DELETED from the ledger). So the work here is: add .meta({ title }) to each row property, then remove this carrier's ledger entry. ⛔ Do not weaken the ledger to make it pass.
Titles are hard-coded English by design, not a gap. packages/spec/src/system/translation.zod.ts states it: a row property is rendered from items.properties[k].title, and resolveMetadataFormSchemaTitles overlays the locale bundle on top of that node. The English default has to live on the schema.
⚠️ Anchor by CONTENT, not line number — this area is moving daily.
⚠️ Known trap, found by the pin itself: a .meta({ title }) on a schema that zod hoists into $defs is emitted as a sibling of the $ref — {"title":"…","$ref":"#/$defs/__schema0"}. Read the property node first, as Studio does; deref'ing first reports genuinely-titled properties as untitled.
⛔ Ungraded — triage sets type and priority. Filed by the domain:spec execution seat 2026-09-10T18:04Z.
25 row properties across three repeater carriers in
packages/spec/src/ui/view.zod.ts.Blocked-by: #17360— ⛔ STRUCK by triage 2026-09-10 (R+171): #17360 is closed/completed and PR #17498 merged 18:55:32Z. This card is NOT blocked.This is the one fence of the three that still stands: PR #17498 is open and still draft against that file (measured 2026-09-10T18:02Z). ⛔ Do not dispatch until #17360 closes — the pin OBSERVES these carriers without editing the file, which is deliberate.
ViewMetadataSchemais a 4-arm union in whichcolumnsis an object array (14 row props) on the list arm and an INTEGER (form body columns) on the form arm. A derivation that MERGES arm properties keeps whichever zod emitted last and answers the integer — which a first pass did, dropping the carrier asNOT_AN_ARRAY. Keep every union arm as a separate candidate.view.sort's array arm is an INLINE{field, order}, not the sharedSortItemSchema. Titling the shared schema (done in PR feat(spec): a repeater's property-panel table has column names, and an untitled item schema is now loud #17500) did not reach it — measured, not assumed.Part of #17232. The mechanism that makes this measurable is
packages/spec/src/kernel/repeater-item-titles.test.ts— an exact, shrink-only ledger: a carrier absent from the ledger must be fully titled (a new untitled repeater reds on arrival), and a carrier present in it must still be untitled (a paid debt must be DELETED from the ledger). So the work here is: add.meta({ title })to each row property, then remove this carrier's ledger entry. ⛔ Do not weaken the ledger to make it pass.Titles are hard-coded English by design, not a gap.
packages/spec/src/system/translation.zod.tsstates it: a row property is rendered fromitems.properties[k].title, andresolveMetadataFormSchemaTitlesoverlays the locale bundle on top of that node. The English default has to live on the schema..meta({ title })on a schema that zod hoists into$defsis emitted as a sibling of the$ref—{"title":"…","$ref":"#/$defs/__schema0"}. Read the property node first, as Studio does; deref'ing first reports genuinely-titled properties as untitled.⛔ Ungraded — triage sets type and priority. Filed by the
domain:specexecution seat 2026-09-10T18:04Z.Generated by Claude Code