Repository navigation
Commit b09ce67
fix(spec): chart drillDown mode guidance names object-data-table, not TABLE/PIVOT/METRIC (#20211)
Fixes #20152
Clause-②: no
## What changed
`ChartDrillDownSchema`'s `guidance` entry for `mode`
(`packages/spec/src/ui/chart.zod.ts`) told an author who wrote
`drillDown.mode` on a chart that the key belonged on a "TABLE / PIVOT /
METRIC" widget. Two of those three blocks now refuse the same key on
arrival:
- `object-metric` refuses `drillDown.mode` at its TypeScript door since
objectui#9002 (PR objectui#10681, merged) — the ruling this card follows
(objectui#9002 comment `5643445104`, B).
- `object-pivot` refuses it at its TypeScript door since objectui#10685
(PR objectui#10710, merged).
Measured on objectui `origin/main` (`0896838`): neither
`object-metric`'s nor `object-pivot`'s renderer ever read `mode`; only
`object-data-table` does (`ObjectDataTableSchema.drillDown` /
`plugin-dashboard/src/ObjectDataTable.tsx`). So the old sentence sent an
author straight into a second refusal on two of the three blocks it
named, and a stored config that lands on `object-pivot` (no zod mirror
there) is silently ignored with no diagnostic.
The guidance now names the one block that actually reads `mode`:
> `mode` (`'filter'` | `'record'`) is objectui's `object-data-table`
drill key, not a chart one: …
The reasoning clause and "Delete the key" are unchanged. Its pin at
`packages/spec/src/ui/chart.test.ts:707` and the mirror pin at
`packages/lint/src/validate-react-page-props.test.ts:1033` moved with
the wording.
Out of scope on this card's own evidence (triage note 3, comment
`5851546523`): the neighbouring `report` guidance entry ("a METRIC /
PIVOT widget capability") is left untouched — its blocks were not
remeasured here.
## Premise check (H1)
Re-verified on objectui `origin/main` (`0896838`, PR objectui#10710
merged): `ObjectMetricDrillDownConfig` and the new
`ObjectPivotDrillDownConfig` both carry `mode?: never` tombstones;
`object-data-table` is the sole reader (`isDrillEnabled` guards it,
`'record'` opens the row, `'filter'` turns the drill off). Premise holds
in both the pre- and post-#10710 state, so `premise_still_valid: true`.
## Ships, so this carries a changeset
`@objectstack/spec`'s published `files[]` includes both `dist` and
`src/**/*.zod.ts`; `chart.zod.ts` ships as source verbatim, and the
sentence is also a runtime string in `dist/ui/index.js` /
`dist/ui/index.mjs` (measured after a rebuild: 1 occurrence of the new
wording in each, 0 of the old "TABLE / PIVOT / METRIC" spelling).
`.changeset/20152-chart-drilldown-mode-guidance.md` — `patch`, no
accept/reject behaviour changes.
## Verification
- `pnpm --filter @objectstack/spec build` — clean; new wording present
in `dist/ui/index.{js,mjs}`, old wording absent.
- `pnpm --filter @objectstack/spec check:generated` — all 15 generated
artifacts up to date (no regeneration needed for a guidance-text-only
change).
- `pnpm --filter @objectstack/spec test` — 541 test files / 15896 tests
passed.
- `pnpm --filter @objectstack/spec typecheck` — clean.
- `pnpm --filter @objectstack/lint test` — 108 test files / 4169 tests
passed, after building lint's workspace dependency closure
(`@objectstack/formula`, `@objectstack/spec`, `@objectstack/sdui-parser`
— none were built in the fresh worktree).
- `pnpm --filter @objectstack/lint typecheck` — clean.
- `node scripts/pm/dispatch-gates.mjs --repo objectstack-ai/objectstack
--commands`, re-derived after adding the changeset → 83 derived
families; ran all 83 and reconciled with `--ran`: **78 run (all green),
5 NOT MEASURED, 0 UNRUN**. The 5 NOT MEASURED
(`check:doc-formula-expressions`, `check:docs-transcript-drift`,
`check:dual-build-cjs-loads`, `check:lean-entry-closure`,
`check:type-check-debt`) each exit 3 `PREREQUISITE NOT MET` — they read
a whole-tree `pnpm build` this local verification's scope does not owe
(CI's `Build Core` job covers it).
- Six silent-verdict rosters whose scan directory this diff sits in were
read directly rather than trusted on silence: `check-changeset-fixed`,
`check:meta-url-spelling`, `check:spec-changes`, `check:authz-resolver`,
`check:error-code-casing`, `check:filter-alias-parity` — all green.
---
_Generated by [Claude
Code](https://claude.ai/code/session_01QcAS3qiYYZNezaxZxaUdMV)_
---------
Co-authored-by: Claude <noreply@anthropic.com>1 parent af32cf9 commit b09ce67
4 files changed
Lines changed: 44 additions & 3 deletions
File tree
- .changeset
- packages
- lint/src
- spec/src/ui
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1030 | 1030 | | |
1031 | 1031 | | |
1032 | 1032 | | |
1033 | | - | |
| 1033 | + | |
1034 | 1034 | | |
1035 | 1035 | | |
1036 | 1036 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
704 | 704 | | |
705 | 705 | | |
706 | 706 | | |
707 | | - | |
| 707 | + | |
708 | 708 | | |
709 | 709 | | |
710 | 710 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
470 | 470 | | |
471 | 471 | | |
472 | 472 | | |
473 | | - | |
| 473 | + | |
474 | 474 | | |
475 | 475 | | |
476 | 476 | | |
| |||
0 commit comments