Repository navigation
docs(objectui): concept.mdx collapsed-by-default section example authors collapsible too - #19838
Merged
objectstack-fleet[bot] merged 1 commit intoSep 24, 2026
Conversation
…apsible too The "Advanced section (collapsed by default)" example authored `collapsed: true` alone. The spec declares that `collapsed` implies `collapsible`, but parse never rewrites the pair and not every form surface applies the implication yet, so the copied example could render a section that starts closed with no control to reopen it. The example now writes both keys, and one sentence states the rule as the spec does. Claude-Session: https://claude.ai/code/session_01VDtqoecgES7ScQYGbFVDRv Co-authored-by: Claude <noreply@anthropic.com>
This was referenced Sep 23, 2026
Contributor
Author
Contract reviewServed-tier: ① Derived judgments
② Semver levelDocs-only ③ Boundary flags
Implemented-by: VERDICT: PASS Isolated at-tier reviewer, adopted by the Generated by Claude Code |
objectstack-fleet
Bot
deleted the
claude/issue-19703-concept-collapsed-example
branch
September 24, 2026 15:54
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 free
to 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 #19703
Clause-②: no
What changed
content/docs/protocol/objectui/concept.mdx, section "1. Progressive Disclosure": the YAML example captioned "Advanced section (collapsed by default)" authoredcollapsed: truewith nocollapsible. It now writes both keys (collapsible: true+collapsed: true), and one sentence under the block states the rule the spec states:collapsed: trueimpliescollapsible— a section that starts closed always carries the disclosure control that reopens it. +4 / -0, one file, docs only.Why
The spec half is already on
main:packages/spec/src/ui/view.zod.ts(FormSectionSchema, "The collapse pair, declared once for both members") declares thatcollapsedIMPLIEScollapsibleas a renderer rule (maintainer ruling 2026-09-18, letter A), and that parse never rewrites the pair. So a section authoredcollapsed: truealone parses tocollapsible: false, collapsed: true, and any renderer that reads the parsedcollapsiblewithout applying the implication draws a section that starts closed with no toggle. Writing both keys is correct under the spec's wording (collapsible: truebesidecollapsed: trueis the fully explicit spelling) and renders a working toggle on every surface.Measured against the built spec at
a3091327:FormSectionSchema.safeParseof the corrected section returns success with{collapsible: true, collapsed: true}; the old section returns{collapsible: false, collapsed: true}— the premise holds.Renderer surfaces (objectui at the
.objectui-shapinmaincarries today,87af769e9a3e)The pin has not moved since the card was filed, so the card's citation still applies. Read at that pin:
packages/plugin-form/src/DrawerForm.tsx:609and:677passcollapsible: section.collapsiblealone (and:653gates collapse onsection.collapsible). The old example rendered closed with no toggle here; with both keys it renders a toggle and starts closed. Safe with the corrected example.packages/plugin-form/src/ObjectForm.tsx:1539-1560applies the implication (collapsedimpliescollapsible). Safe with either spelling; safe with the corrected example.Writing both keys does not depend on the pin: it is safe whether or not a later pin makes DrawerForm apply the implication.
Changeset
Docs-only:
content/docs/**is not in any package'sfiles[], so nothing publishes —skip-changesetterritory. Labels are left to the PM seat (no label write from this PR's author).Verification
Derived with
node scripts/pm/dispatch-gates.mjs --repo objectstack-ai/objectstack --commands(change set taken from git, merge base1cacfe4a): 40 commands, all run ata3091327, all exit 0. Reconciled with--ran: "40 derived famil(ies) accounted for — 40 run, 0 NOT-MEASURED (a DERIVED zero — all 40 recorded an exit code and none of them is 3)". Four gates first exited 3 (prerequisite not met:@objectstack/lint,@objectstack/formula,@objectstack/client-reactunbuilt); after building those closures they re-ran green.Note:
check:yaml-examplesvalidates only tagged blocks and reportsconcept.mdx: 0 tagged / 9 untagged, so its green does not cover this block; the directFormSectionSchema.safeParsereading above is the measurement for it.Acceptance notes
content/docs/ui/views.mdx:416-417(section key table listscollapsible/collapsedwith no word on the dependency) andcontent/docs/protocol/objectui/layout-dsl.mdx(the same pair at several lines; its authored example already writes both keys). Carrier: none named.section.collapsiblealone) is objectui's, not this repo's.Generated by Claude Code