Skip to content

chore(spec): retire the compactLayout alias + transition mirror (ADR-0085 follow-up) #2536

Description

@os-zhuang

What

Remove the deprecated compactLayout spelling from ObjectSchema now that every consumer reads the canonical highlightFields (ADR-0085, docs/adr/0085).

The alias currently does TWO jobs in normalizeSemanticRoleAliases (packages/spec/src/data/object.zod.ts):

  1. compactLayouthighlightFields (legacy-author support)
  2. highlightFieldscompactLayout back-fill mirror (added in feat(spec): ADR-0085 semantic roles — stageField, highlightFields rename, detail block removal, collapse enum, shared fieldGroups derivation #2521 after browser dogfood showed old-key renderers silently losing default columns for new-key metadata)

Trigger condition — DO NOT do this early

One minor release must ship after the consumer switch reached the vendored console, i.e. after the release cut from #2526/#2527 (console pin 144ab55b2, objectui#2168). The window is open once the NEXT minor after that release is being prepared.

Checklist

  • spec: drop compactLayout from ObjectSchema + delete both directions of the alias in normalizeSemanticRoleAliases; update parse tests
  • dogfood: delete the load-bearing mirror assertion in packages/dogfood/test/semantic-roles.dogfood.test.ts IN THE SAME PR — it asserts compactLayout is mirrored on served meta and was written to turn red if the retirement misses a consumer; also update the showcase_semantic_zoo_legacy fixture (it authors compactLayout on purpose)
  • objectui (companion PR): remove the ?? compactLayout fallback reads added in objectui#2168 (ObjectGrid, plugin-detail synth deriveHighlightFields, RecordDetailView child preview + highlight strip, ObjectView ×2, InterfaceListPage)
  • downstream smoke: if hotcrm (or the pinned ref) still authors compactLayout, ship a hotcrm release first and bump HOTCRM_REF (same digestion flow as ci: bump downstream hotcrm smoke ref to v1.2.1 (ADR-0085 digestion) #2524)
  • changeset: minor (documented-exception path per ADR-0059 §4 / PR fix(spec): regenerate stale api-surface snapshot after dead page-config removal (#2268) #2272 precedent only applies if the key is proven dead — here it is NOT dead until the alias window closes, so follow whatever the release owner rules)

Context

Full chain: ADR #2520 → spec #2521 → consumer switch objectui#2168 → console pin #2526 → runtime guard #2528. The mirror exists ONLY for renderers older than objectui#2168.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions