|
| 1 | +--- |
| 2 | +"@objectstack/spec": patch |
| 3 | +--- |
| 4 | + |
| 5 | +docs(spec): two self-descriptions re-anchored to measured reality — the `chartConfig` liveness evidence and `allowAddTab`'s `.describe()` (#7017, #6961) |
| 6 | + |
| 7 | +Sweep card #7056. Both members are prose that stopped being answerable to the |
| 8 | +code it describes: one **overstated** what a reader delivers, one **understated** |
| 9 | +what a renderer now delivers. Zero acceptance-face change — no schema key, no |
| 10 | +enum member, no strictness posture moves, and the only generated artifact that |
| 11 | +shifts is the `.describe()` row in `content/docs/references/ui/view.mdx`. |
| 12 | + |
| 13 | +**#7017 — `widgets.children.chartConfig`'s evidence said "chart-config bag |
| 14 | +forwarded", which was never measured.** The cited lines took the bag out of the |
| 15 | +widget and the line after them read exactly one key (`showLegend`, #3135); the |
| 16 | +rest of `ChartConfigSchema` stayed unforwarded. #5175 measured that (1 of 14 |
| 17 | +keys reaching the renderer) and recorded that the wording had already mis-steered |
| 18 | +the #5022 measurement for half its length. Since then #7016 landed the enforce |
| 19 | +half in objectui, so the row is re-anchored to today's reality rather than to |
| 20 | +either older state: at objectui `@230ffd875`, `chartConfigPresentation` lowers |
| 21 | +**nine** keys one `if` per key — `showLegend`, `showDataLabels`, `title`, |
| 22 | +`subtitle`, `description`, `height`, `annotations`, `interaction` and `colors` |
| 23 | +(split into the positional palette and `categoryColors`) — and the caller spreads |
| 24 | +the result onto the chart schema handed to the renderer, with a DOM test pinning |
| 25 | +each forwarded key. The remaining **five** are named as unforwarded and why: |
| 26 | +`xAxis` / `yAxis` / `series` are derived from the dataset selection, `type` is |
| 27 | +answered by the widget's own `type` through `CHART_TYPE_MAP`, and `aria` has no |
| 28 | +reader on that path. The entry also gains `verifiedAt: 2026-08-09` and |
| 29 | +`evidenceScope: "cross-repo"` (the objectui realm was walked, at a pinned |
| 30 | +commit), the two fields #7024 added for exactly this. |
| 31 | + |
| 32 | +The verdict is unchanged — `live`, as it was, now for a reason the evidence |
| 33 | +actually supports. No `children` are opened and no key is classified: the |
| 34 | +narrowing half for the five unforwarded keys is still an open maintainer decision |
| 35 | +on #5175, and the note says so, so this row cannot be read as pre-empting it. |
| 36 | + |
| 37 | +**#6961 — `UserFiltersSchema.allowAddTab` still described the interim, |
| 38 | +deliberately-narrowed contract.** #5073 promoted the key with a `.describe()` |
| 39 | +that promised only that the tab bar *renders* an add-tab affordance, because the |
| 40 | +button objectui shipped had no click handler — narrowing on purpose rather than |
| 41 | +advertising a capability the runtime did not deliver (PD#10). The maintainer then |
| 42 | +ruled **A1 — implement, session-scoped** (#5236, 2026-08-06) and objectui#3926 |
| 43 | +delivered it. The describe now states the semantics that are actually shipped: |
| 44 | +the affordance asks for a name and snapshots the filters currently applied as a |
| 45 | +new tab; the tab is **session-scoped** — it lives only for the current mount and |
| 46 | +is never written back as metadata (ADR-0047, which scopes an end user's filter |
| 47 | +choices to the session) — and it carries a remove control the authored presets do |
| 48 | +not. The applicability sentence #5073 wrote is kept verbatim: page lists only, |
| 49 | +object views use `listViews` for named presets. The `⚠️ Scope of the promotion` |
| 50 | +TSDoc above the schema, which recorded the dead-button state as current, now |
| 51 | +records how it was resolved instead. |
| 52 | + |
| 53 | +The ruling confirmed renderers do not read this text, so this is documentation |
| 54 | +semantics only: no runtime change, and the JSON-Schema baselines and the docs |
| 55 | +site are regenerated with the describe. |
0 commit comments