Skip to content

spec: declare an author-settable row ceiling for gallery (and kanban) view configs — the protocol lacks the knob objectui#7390 was ruled to read (principle: 协议不正确的先改协议) #17393

Description

@os-litant

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

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions