Skip to content

feat(spec): ADR-0047 — interface/list pages get a lean, relevant config form - #1817

Merged
xuyushun441-sys merged 1 commit into
mainfrom
feat/adr-0047-interface-form-tidy
Jun 13, 2026
Merged

feat(spec): ADR-0047 — interface/list pages get a lean, relevant config form#1817
xuyushun441-sys merged 1 commit into
mainfrom
feat/adr-0047-interface-form-tidy

Conversation

@xuyushun441-sys

Copy link
Copy Markdown
Contributor

Why

On an interface/list page, the page editor showed the full generic page form — page type/template, Data Context (object/variables), and the region designer (Layout) — none of which apply to a curated list surface. The interface config was buried at the bottom with raw inputs.

This reorganises page.form.ts (the form layout served via /meta) so a list page gets only the relevant, well-ordered controls. Pairs with the objectui renderer PR (collapsible sections + multi-select widget).

Changes (packages/spec/src/ui/page.form.ts)

  • Data Context and Layout sections gain visibleOn: "data.type != 'list'" — hidden for list/interface pages (the region designer and page-level object don't apply).
  • Interface (list pages) section: collapsed: false (primary content for a list page, still collapsible), name for i18n.
  • interfaceConfig sub-fields reordered — common authoring controls first (source, sourceView, appearance, userFilters, userActions, addRecord, showRecordCount), rarely-used last (filterBy, levels, allowPrinting); source gets the ref:object picker; added helpText throughout.
  • type field helpText notes that list = interface page.

Form-definition only — no schema/runtime change. Requires pnpm --filter @objectstack/spec build.

Verification

Built the spec dist and served it from a local showcase backend; confirmed via /api/v1/meta that the page form now carries the visibleOn/collapsed/ordering above. The objectui renderer (companion PR) honours these flags — covered by component tests there.

🤖 Generated with Claude Code

… section prominent
Page form (page.form.ts) reorg so interface/list pages get a lean,
relevant panel instead of the generic page-form dump:
• Data Context + Layout sections gain visibleOn data.type != 'list'
(region designer / page object don't apply to a list surface)
• Interface section: collapsed:false (primary content), name for i18n
• interfaceConfig sub-fields reordered (common first, rare last);
source gets the ref:object picker; sourceView/userActions/etc. helpText
• type field helpText notes 'list' = interface page
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@vercel

vercelBot commented Jun 13, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

ProjectDeploymentActionsUpdated (UTC)
specReadyReadyPreview, CommentJun 13, 2026 2:33pm

Request Review

@xuyushun441-sys
xuyushun441-sys merged commit 0d7ee8b into mainJun 13, 2026
12 checks passed
@xuyushun441-sys
xuyushun441-sys deleted the feat/adr-0047-interface-form-tidy branch June 13, 2026 14:39
os-zhuang added a commit that referenced this pull request Jun 20, 2026
…2072)
The landing KPIs all rendered with the neutral grey icon (object-metric's
default colorVariant) and an empty card bottom, which read flat. Opt them
into the metric palette and add a one-line sublabel so the tiles are colorful
and informative:
• Home — Projects (blue), Tasks (purple), Accounts (teal), Open Tasks (amber)
• My Work — Open Tasks (blue), In Review (amber), At-Risk (rose)
Each gains a description (active & planned / not done / awaiting review / …)
that fills the previously-empty space. Pairs with objectui #1817
(tabular-nums on the metric value).
Browser-verified on :5181.
Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@xuyushun441-sys@os-zhuang