Uh oh!
There was an error while loading. Please reload this page.
docs(plugin-view): re-teach the canonical table keys now that #5102 landed - #5289
Merged
os-support-ai merged 1 commit intoAug 19, 2026
Merged
Conversation
…anded Fixes#5271 objectui#5102 (PR #5274, merged) made ObjectView forward the canonical `table.pagination` / `.selection` / `.filter` / `.sort` on every rendering path, keeping `pageSize` / `selectable` / `defaultFilters` / `defaultSort` as working aliases. The two docs pages PR #5101 (README) and PR #5109 (docs-site mirror) wrote against the pre-#5102 reality — legacy-only — and now teach a stale caveat. Re-teach the canonical spellings as the recommended form without implying the legacy ones stopped working, and state the precedence read directly off the landed `ObjectView.tsx` / `ObjectGrid.tsx`: canonical wins when both are written; an active named view's own filter/sort still outranks anything on `table`; `table.columns` stays out of scope (#5269, still open, grid-path only). Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01RV6yuVCxymHYE16PL9vQkE
Contributor
✅ Console Performance Budget
📦 Bundle Size Report
Size Limits
|
os-support-ai
marked this pull request as ready for review
August 19, 2026 07:10
Uh oh!
There was an error while loading. Please reload this page.
os-support-ai
deleted the
claude/issue-5271-plugin-view-docs-canonical-keys
branch
August 19, 2026 07:10
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for freeto join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixes#5271
Which pages, and how I found them
The card and the dispatch order both say "the pages PR #5101 wrote." I read PR #5101's actual diff (
changed_files: 2) rather than trusting that description: it touched onlypackages/plugin-view/README.md+ a changeset — not anything undercontent/docs/**. The dispatch order's Hard Limits line ("File surface: thecontent/docs/**pages PR #5101 touched") is therefore not literally true of any file; it conflated PR #5101 with its docs-site sibling.That sibling exists and has the identical defect:
content/docs/plugins/plugin-view.mdxwas written by PR #5109 (issue #5088, "文档站页面整片示例按 ObjectView 真读的键面重写") as the docs-site mirror of PR #5101's README rewrite, same key-face investigation, same era, same legacy-only teaching + the same now-stale caveat ("page size istable.pageSizeand nottable.pagination"). Leaving it untouched while fixing the README would have left the two pages disagreeing.Fixed both, under one bounded scope — same defect class (docs teaching the deprecated spelling exclusively, now stale since #5102 landed), same evidence (the landed
ObjectView.tsx/ObjectGrid.tsx), same gate family, no new verification surface:packages/plugin-view/README.md— PR docs(plugin-view): README 的 13 个 schema 示例按 ObjectView 真读的键面重写 #5101's actual output.content/docs/plugins/plugin-view.mdx— PR docs(plugin-view): 文档站页面整片示例按 ObjectView 真读的键面重写 (#5088, #5086 的 view 三分之一) #5109's actual output, the docs-site mirror.Confirmed via
git log --oneline -- content/docs/plugins/plugin-view.mdxthat no OTHER PR has touched it since #5109, and viasearch_pull_requeststhat no open PR currently touches either file.What changed
Both pages taught only
table.pageSize/.selectable/.defaultFilters/.defaultSortand stated that the canonical.pagination/.selection/.filter/.sorthad no effect. As of #5102 (PR #5274, merged) all four canonical keys take effect on every forwarding path; the legacy spellings stay working aliases. Both pages now teach the canonical spelling as the recommended form, without stating or implying the legacy ones stopped working — the forwarding table and every explanatory paragraph list both, and three rewritten examples show the canonical spelling in place (grid sort, read/list filter+pagination, ObjectQL-integration pagination), one of them (sort: 'created_at desc') deliberately using the string aritydefaultSortcannot reach.Precedence, quoted from the landed code (not guessed)
When a key is written both ways, canonical wins —
ObjectGrid.tsx's own pre-existing resolution, whichObjectViewdefers to by forwarding both slots rather than re-resolving:One caveat I did not overclaim (the precision note in the dispatch): on the grid path the canonical
filter/sortslots forwarded fromtablecarry thetablesegment only —(
ObjectView.tsx,gridSchema, around:1041-1078) — so an active named/saved list view's ownfilter/sortkeeps outrankingtable.filter/table.sort, exactly as it already outrankedtable.defaultFilters/table.defaultSort. Both pages state the full three-tier order (active named view, thentable.filter/.sort, thentable.defaultFilters/.defaultSort) rather than the wrong "table.filteralways wins" simplification the card explicitly warned against.pagination/selectionhave no such tier (no view-level pagination/selection to defer to) and no effect outside the grid — verified by readingObjectView.tsx's non-gridbasePropsbuilder (around:840-843), which forwardsfieldsonly, neverpagination/selection.table.columnsis untouched and not taught as working on non-grid views: the forwarding-table row still marks it as the one non-canonical/legacy key with its own open gap (#5269, grid-path only), per the card's explicit ⛔.Gate awareness — measured, not carried from another card (per the PM's follow-up message)
```typescriptfence countUNGATED_DOCS(scripts/check-doc-snippet-types.mjs)?packages/plugin-view/README.mdgrep -c '^```typescript')content/docs/plugins/plugin-view.mdxdist/*.d.tsBecause the
.mdxpage is gated, I built the gate's own--build-filterpackage set (cli,core,data-objectstack,plugin-charts,plugin-editor,plugin-grid,plugin-markdown,plugin-timeline,plugin-view,react,types— viapnpm exec turbo run build --concurrency=2under the shared/tmp/os-heavy-verify.lock) and then ran the gate for real, in the foreground, and watched it finish (it does not read the README's snippets at all — they are declared-ungated, not silently passing):(An earlier attempt at this same build auto-backgrounded past the tool's 120s foreground window and I stopped the turn waiting on a Monitor notification that, per the PM's follow-up, was not going to arrive in this container. Resumed in the foreground per that message; the build had in fact already finished, exit 0, 20/20 tasks — reported here rather than claimed sight-unseen.)
Verification, on final commit
ce711b6ffnode scripts/check-doc-snippet-types.mjs→ ran to completion above, 68/68 semantic pass — this is the one that needed the build, and I watched it finish.node scripts/check-doc-component-types.mjs→Scanned 143 mdx file(s) … ✅ Every documented component type is registered.(no build needed; unaffected by this change — I add no newtype:literals).node scripts/check-doc-links.mjs→Links are valid across 13 scan roots.node scripts/check-control-bytes.mjs→OK (scanned 4682 tracked text file(s)); manual self-scan of both changed files withgrep -naP '[\x00-\x08\x0b\x0c\x0e-\x1f\x7f]'— no hits.node scripts/check-changeset-presence.mjs→0 file(s) … under the src/ of a package the release covers … No source of a released package changed in this range, so no changeset is owed.Both changed files are docs (a package README and acontent/docs/**page), neither under a package'ssrc/**. This repo has noskip-changesetlabel mechanism (unlikeobjectstack), so nothing to apply.All five gates in the verification bar ran and finished; none skipped, none guessed.
Generated by Claude Code