Filed by the director seat (summon #21, session_01QVMnxyWBx8cAQMsV6akDV9) executing the maintainer's principle, verbatim and untranslated: 「我们的项目以objectstack 协议为准,文档应该以实际实现为准。协议不正确的应该先修改协议。」 (director chat, 2026-09-10T11:0xZ). Routed domain:spec by the anchoring rule; pm:queue. ⛔ Not claimed.
Why this is a protocol change first
objectui#7390 is ruled C: an author-settable row ceiling for the gallery view ($top: limit ?? default, plus a visible truncation footnote). Measured on origin/main packages/spec/src/ui/view.zod.ts: GalleryConfigSchema (:945) is a strictObject of exactly coverField · coverFit · cardSize · titleField · visibleFields; KanbanConfigSchema (:1241) is exactly groupByField · summarizeField · columns. Neither declares a row ceiling. objectui already reads a ceiling on kanban (ObjectKanbanSchema.limit, declared in @object-ui/types only) and on timeline (its own props interface) — consumer-local author-settable keys the protocol never declared, which is the divergence the third clause forbids. ⇒ The knob enters the protocol first; objectui#7390 blocks on this card, and the kanban/timeline consumer-only keys are brought under the same declaration.
Deliverable
- Declare the row ceiling in
@objectstack/spec for the view kinds that page-shaped consumers cap by author choice: gallery and kanban at minimum (timeline if spec declares a timeline config), with a describe stating the default and that the renderer must show a visible truncation signal when it applies. Name and placement are the spec seat's (a shared limit on those config schemas is the smallest shape; a base view-config member is the alternative — say which and why).
- The non-grid four (gantt / calendar / map / tree) keep objectui#7210's platform ceiling; ⛔ this card does not touch them.
Clause-②: yes (a new authorable key on a published, strict schema); changeset minor; the authorable-surface ledger (packages/spec/authorable-surface/ui.json) gains the rows.
- Unlock for objectui#7390 is the installable release, not the merge.
Refs: objectui#7390 (ruling 5615809797 and its amendment), objectui#7210, ADR-0021.
Generated by Claude Code
Filed by the director seat (summon #21,
session_01QVMnxyWBx8cAQMsV6akDV9) executing the maintainer's principle, verbatim and untranslated: 「我们的项目以objectstack 协议为准,文档应该以实际实现为准。协议不正确的应该先修改协议。」 (director chat, 2026-09-10T11:0xZ). Routeddomain:specby the anchoring rule;pm:queue. ⛔ Not claimed.Why this is a protocol change first
objectui#7390 is ruled C: an author-settable row ceiling for the gallery view (
$top: limit ?? default, plus a visible truncation footnote). Measured onorigin/mainpackages/spec/src/ui/view.zod.ts:GalleryConfigSchema(:945) is a strictObject of exactlycoverField·coverFit·cardSize·titleField·visibleFields;KanbanConfigSchema(:1241) is exactlygroupByField·summarizeField·columns. Neither declares a row ceiling. objectui already reads a ceiling on kanban (ObjectKanbanSchema.limit, declared in@object-ui/typesonly) and on timeline (its own props interface) — consumer-local author-settable keys the protocol never declared, which is the divergence the third clause forbids. ⇒ The knob enters the protocol first; objectui#7390 blocks on this card, and the kanban/timeline consumer-only keys are brought under the same declaration.Deliverable
@objectstack/specfor the view kinds that page-shaped consumers cap by author choice: gallery and kanban at minimum (timeline if spec declares a timeline config), with a describe stating the default and that the renderer must show a visible truncation signal when it applies. Name and placement are the spec seat's (a sharedlimiton those config schemas is the smallest shape; a base view-config member is the alternative — say which and why).Clause-②: yes(a new authorable key on a published, strict schema); changesetminor; the authorable-surface ledger (packages/spec/authorable-surface/ui.json) gains the rows.Refs: objectui#7390 (ruling 5615809797 and its amendment), objectui#7210, ADR-0021.
Generated by Claude Code