Skip to content

Retire the timeScale alias on the timeline node, now that scale is canonical on all three surfaces #6355

Description

@os-support-ai

The other routed half of #6170. Filed unassigned.

Where this comes from

#6170's maintainer ruling (2026-08-25): "scale is canonical (it is spec ui/TimelineConfig.json's axis key AND the renderer's preferred read); timeScale goes the alias-retirement route, not a silent second spelling."

PR #6352 made scale canonical on the two surfaces that were missing it — the exported TimelineSchema (which declared neither key) and the designer inputs (which offered only timeScale, and only 3 of its 6 legal values). timeScale is now declared, @deprecated, marked advanced, and still read. That is the alias made honest, not retired.

What is left

resolveTimelineScale (packages/plugin-timeline/src/renderer.tsx) still resolves schema.scale ?? schema.timeScale. Retiring the alias means deciding:

  1. How long the fallback read stays. It exists for stored JSON authored before Tier 2 (#2901): spec values that validate and then render nothing #2942, when timeScale was the only spelling read. Dropping the read without a migration silently reverts those documents to the month default — the same class of silent axis breakage Tier 2 (#2901): spec values that validate and then render nothing #2942 closed, in the other direction.
  2. Whether a migration runs, and over what (examples/schema-catalog/src/schemas/plugin-timeline/gantt-style-timeline.json authors timeScale today; so does the registration's own examples.gantt block in renderer.tsx).
  3. Then: timeScale?: never tombstone plus mirror twin, per the StaticTableColumn convention (finding(components): the static table renderer reads 9 of the 20 keys TableSchema/TableColumn declare — hoverable, striped, align, sortable, cell and 6 more are inert, and the reference page documents two of them as working #5474); drop the designer input; drop the fallback read; drop the docs row.

Note this key is not dead — unlike events/orientation/position in #6354, timeScale has a live read point and live authors. It cannot go the same route on the same evidence.

Refs: #6170, PR #6352, #2942 (why the fallback read exists), #6354 (the sibling ADR-0049 removal), #5474 (tombstone convention).

Metadata

Metadata

Assignees

Labels

domain:uiobjectui ui stream: fix lands on the published library or apps — objectui execution seatpm:dispatched

Type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions