Skip to content

finding(core): the retired-dialect fold at the ingestion choke point declares 4–5 keys but folds 42 snake twins (incl. _package_id / _lock_* / *_when) — changeset understates the accepted set; ruling's loud diagnostic absent (residue of objectui#8873 / #7650) #8938

Description

@huangyiirene

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

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    domain:uiobjectui ui stream: fix lands on the published library or apps — objectui execution seatfindingpackage: corepriority:p2

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions