You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit c9f81fa
Browse filesBrowse the repository at this point in the historyBrowse files
docs(spec): say what is true about the readers of a list view's tabs
A list view's own `tabs` has no reader, and objectui's TabBar, the one
component that would draw it, has zero production mounts. The earlier wording
said the one component that reads a ViewTab[] has none, which is false:
`userFilters.tabs` is a ViewTab[] too, and TabFilters reads and renders it.
The population sentence now says examples or platform sources, and that the
one published skill example that taught the key is corrected in this change.
Corrected in the changeset, the tombstone docblock, both retired-key entries,
the conversion docblock, the step-18 rationale, the ledger note and the pin's
header; the migration registry regenerated.
Claude-Session: https://claude.ai/code/session_01QcAS3qiYYZNezaxZxaUdMV
Co-Authored-By: Claude <noreply@anthropic.com>
Copy file name to clipboardExpand all lines: packages/spec/liveness/view.json
+1-1Lines changed: 1 addition & 1 deletion
Original file line number
Diff line number
Diff line change
@@ -211,7 +211,7 @@
211
211
"status": "dead",
212
212
"verifiedAt": "2026-09-27",
213
213
"evidenceScope": "cross-repo",
214
-
"note": "REMOVED 2026-09-27 (#20301, ADR-0049 enforce-or-remove; triage verdict RETIRE under the maintainer's #18900 criterion — mainstream named-view switching is already delivered here, by `listViews` rendered in ViewTabBar) — tombstoned at the schema (retiredKey carries the prescription; authoring it is a tsc error and a parse error at every list-view door built from the shape: ListViewSchema, ObjectListViewSchema and the flattened overlay arm) and stripped from stored rows and sources by the protocol-18 view-list-tabs-removed conversion. The entry stays because retiredKey keeps the key in the walked shape (the rls.priority precedent); to give end users one tab per preset, declare each tab as a named entry under the object's `listViews` — every entry renders as a tab in the saved-view switcher. RE-MEASURED 2026-09-27 before removal, with lit controls: objectui at the pinned sha f8a9d0fb — every `<TabBar` occurrence is in one of its two test files (components/__tests__/TabBar.i18nLabel.test.tsx, __tests__/icon-seam-fallbacks-5935.test.tsx) and every TabBar import is a test's, zero production mounts; CONTROL on the same instrument: `<ViewTabBar` mounts at app-shell/src/views/ObjectView.tsx, fed `views={viewTabItems}` built from `objectDef.listViews`. objectui's own type mirror (types/src/objectql.ts, `tabs?: ListViewSchema['tabs']`, and the zod twin's by-reference import) carries the tombstone in on the pin bump, the pageName precedent. In this repo: zero authorings in examples/, skills/ (one published rules example taught the key and is corrected in the same change) or platform sources — CONTROL: `listViews:` authored in 9 example files. The two author-time reference walks (packages/lint/src/validate-list-view-field-refs.ts#checkTabs, packages/metadata-protocol/src/metadata-diagnostics.ts) read raw input, deliver no tab bar, and are left for their own follow-up. The prior note (RE-DERIVED 2026-09-07, #16362) flipped this row live to dead on the same measurement at objectui @a472b071 and recorded that TabBar does sort on `tabs[].order` — both moot now that the key is gone and nothing mounts TabBar."
214
+
"note": "REMOVED 2026-09-27 (#20301, ADR-0049 enforce-or-remove; triage verdict RETIRE under the maintainer's #18900 criterion — mainstream named-view switching is already delivered here, by `listViews` rendered in ViewTabBar) — tombstoned at the schema (retiredKey carries the prescription; authoring it is a tsc error and a parse error at every list-view door built from the shape: ListViewSchema, ObjectListViewSchema and the flattened overlay arm) and stripped from stored rows and sources by the protocol-18 view-list-tabs-removed conversion. The entry stays because retiredKey keeps the key in the walked shape (the rls.priority precedent); to give end users one tab per preset, declare each tab as a named entry under the object's `listViews` — every entry renders as a tab in the saved-view switcher. RE-MEASURED 2026-09-27 before removal, with lit controls: objectui at the pinned sha f8a9d0fb — every `<TabBar` occurrence is in one of its two test files (components/__tests__/TabBar.i18nLabel.test.tsx, __tests__/icon-seam-fallbacks-5935.test.tsx) and every TabBar import is a test's, zero production mounts (TabBar is the one component that would draw a list view's own `tabs`; `userFilters.tabs`, a different key of the same element type, is read and rendered by UserFilters/TabFilters and stays); CONTROL on the same instrument: `<ViewTabBar` mounts at app-shell/src/views/ObjectView.tsx, fed `views={viewTabItems}` built from `objectDef.listViews`. objectui's own type mirror (types/src/objectql.ts, `tabs?: ListViewSchema['tabs']`, and the zod twin's by-reference import) carries the tombstone in on the pin bump, the pageName precedent. In this repo: zero authorings in examples/ or platform sources — CONTROL: `listViews:` authored in 9 example files; the one published skill example that taught it (skills/objectstack-ui/rules/list-views.md) is corrected in the same change. The two author-time reference walks (packages/lint/src/validate-list-view-field-refs.ts#checkTabs, packages/metadata-protocol/src/metadata-diagnostics.ts) read raw input, deliver no tab bar, and are left for their own follow-up. The prior note (RE-DERIVED 2026-09-07, #16362) flipped this row live to dead on the same measurement at objectui @a472b071 and recorded that TabBar does sort on `tabs[].order` — both moot now that the key is gone and nothing mounts TabBar."
0 commit comments