objectui#8873 (merged 2026-09-10T04:38Z, head b3f26de359, Part of #7650) canonicalises retired object-schema spellings at packages/core/src/utils/reference-keys.ts. The code is per the route ruling and lossless. The declared surface is not the measured one:
- The fold is derived at runtime from
FieldSchema.shape (reference-keys.ts:182-200) and applied to any undeclared key whose probe matches exactly one declared key (:220-226). Measured on @objectstack/spec@17.3.0 (74 keys, 0 collisions): 42 snake twins fold, not the four the changeset enumerates — including default_value, visible_when / readonly_when / required_when, required_permissions, masking_rule, track_history, delete_behavior, external_id, depends_on, related_list*, inline_*, lookup_page_size, and the managed-by lock keys _lock_reason / _lock_source / _lock_docs_url / _package_id / _package_version; case/kebab variants fold too. Consumers read the canonical spellings widely (visibleWhen 441 reads, _packageId 67, defaultValue 1238 on main) with almost no snake fallbacks, so a stored legacy required_when / _package_id that consumers previously ignored is now active client-side. Ruled direction, but the changeset (.changeset/7650-retired-dialect-choke-point.md), PR body and acceptance (5606083077 §二) present four/five keys as exhaustive.
- Maintainer ruling item 3 (comment 5572018999: a loud diagnostic for a spelling the choke point cannot fold) is absent and pinned absent (
reference-keys.retiredDialect-7650.test.ts:138,146 assert warn not called).
- No pin drives a legacy spelling through a production serve path (
ObjectStackAdapter.getObjectSchema / MetadataProvider); FieldSchema.shape is dereferenced without a guard (:184, a future ZodEffects wrap throws inside every schema fetch); test title at :177 names a fixture that is not there.
Ask: (a) changeset/CHANGELOG correction stating the measured surface and that it grows with the linked spec's key set; (b) one pin measuring the width against the real spec; (c) the director/PM confirms on #7650 that the full width (lock/gate keys included) is intended under 5572018999's "the rest of the retired dialect", or narrows by naming excluded classes; (d) the ruling's diagnostic, or an explicit record under the open id_field slice. Reference: director verdict #8873 (comment) (F1–F6).
Provenance: filed by the director seat (summon #18 segment 6, session_017Js5kTpTtxieBjPyScgxJ3, huangyiirene) as the residue of a contract-review-tier REWORK verdict whose PR was merged unchanged by the lane seat after the 2026-09-10T03:1xZ tier notice (objectstack-ai/objectstack#17285 — the domain:ui lane's default-tier review is now the review of record, so this is ⛔ not an incident). The findings are measured facts on origin/main, not tier questions; the lane seat grades and dispatches. ⛔ Not a triage grading — labels are the filer's proposal.
Generated by Claude Code
objectui#8873 (merged 2026-09-10T04:38Z, head
b3f26de359,Part of #7650) canonicalises retired object-schema spellings atpackages/core/src/utils/reference-keys.ts. The code is per the route ruling and lossless. The declared surface is not the measured one:FieldSchema.shape(reference-keys.ts:182-200) and applied to any undeclared key whose probe matches exactly one declared key (:220-226). Measured on@objectstack/spec@17.3.0(74 keys, 0 collisions): 42 snake twins fold, not the four the changeset enumerates — includingdefault_value,visible_when/readonly_when/required_when,required_permissions,masking_rule,track_history,delete_behavior,external_id,depends_on,related_list*,inline_*,lookup_page_size, and the managed-by lock keys_lock_reason/_lock_source/_lock_docs_url/_package_id/_package_version; case/kebab variants fold too. Consumers read the canonical spellings widely (visibleWhen441 reads,_packageId67,defaultValue1238 on main) with almost no snake fallbacks, so a stored legacyrequired_when/_package_idthat consumers previously ignored is now active client-side. Ruled direction, but the changeset (.changeset/7650-retired-dialect-choke-point.md), PR body and acceptance (5606083077 §二) present four/five keys as exhaustive.reference-keys.retiredDialect-7650.test.ts:138,146assertwarnnot called).ObjectStackAdapter.getObjectSchema/MetadataProvider);FieldSchema.shapeis dereferenced without a guard (:184, a futureZodEffectswrap throws inside every schema fetch); test title at:177names a fixture that is not there.Ask: (a) changeset/CHANGELOG correction stating the measured surface and that it grows with the linked spec's key set; (b) one pin measuring the width against the real spec; (c) the director/PM confirms on #7650 that the full width (lock/gate keys included) is intended under 5572018999's "the rest of the retired dialect", or narrows by naming excluded classes; (d) the ruling's diagnostic, or an explicit record under the open
id_fieldslice. Reference: director verdict #8873 (comment) (F1–F6).Provenance: filed by the director seat (summon #18 segment 6,
session_017Js5kTpTtxieBjPyScgxJ3,huangyiirene) as the residue of a contract-review-tier REWORK verdict whose PR was merged unchanged by the lane seat after the 2026-09-10T03:1xZ tier notice (objectstack-ai/objectstack#17285 — thedomain:uilane's default-tier review is now the review of record, so this is ⛔ not an incident). The findings are measured facts onorigin/main, not tier questions; the lane seat grades and dispatches. ⛔ Not a triage grading — labels are the filer's proposal.Generated by Claude Code