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

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions