Skip to content

Page designer: the add-block palette does not offer list-view, though the block now has an inspector panel #26794

Closed

Description

@objectstack-fleet

Source

Found by the #26703 card thread (PR #26793, open question), checked by the ui seat on origin/main 4f05de4b.

Problem

PR #26793 gives the page list-view block a BLOCK_CONFIG panel (Object, View, Row limit). The add-block palette still does not offer the block: TYPES_BY_CATEGORY in ui/packages/app-shell/src/views/metadata-admin/previews/block-types.ts is built from BLOCK_TYPE_META, and BLOCK_TYPE_META has no list-view row. A designer can edit a list block a page already carries (published pages place it, for example packages/objectql/src/__fixtures__/hotcrm-4.0.1-published-pages.artifact.json), but cannot add one from the palette. PR #26793 records this with a one-row PANEL_WITHOUT_PALETTE exemption in previews/__tests__/block-config.test.ts, which goes red once the palette offers the block.

Target

Offer list-view in the palette: add it to BlockTypeId and BLOCK_TYPE_META (category data, icon, a type label key in ../i18n.ts en + zh), and drop its PANEL_WITHOUT_PALETTE row. Check the canvas default for a new block, so a freshly added list block either asks for its object or carries an empty dataSource the panel fills.

File surface

ui/packages/app-shell/src/views/metadata-admin/previews/block-types.ts, the metadata-admin i18n.ts type label keys, previews/__tests__/block-config.test.ts (remove the exemption row), tests beside, one changeset. No packages/spec/** change: list-view already has a ComponentPropsMap entry and a public-block renderer.

Acceptance

A test: the page palette lists list-view under its category, and adding it then selecting it opens the Object / View / Row limit panel. The PANEL_WITHOUT_PALETTE table is empty or gone.

Related: #26703, PR #26793.

Activity

  1. objectstack-fleet commented on Oct 27, 2026

    @objectstack-fleet
    ContributorAuthor

    Triage: first grade — priority:p2 · domain:ui · area:studio · pm:queue · triage seat · session_01AavokzJ5DndAwitDXvKy4U · 2026-10-27T17:11Z

    ⛔ Not a claim, ⛔ not a dispatch.


    Generated by Claude Code

  2. added
    area:studioChanging a running app without code — authoring, publish, docs and the portal
    bugSomething isn't working
    and removed on Oct 27, 2026
  3. objectstack-fleet commented on Oct 27, 2026

    @objectstack-fleet
    ContributorAuthor

    Claim: PM loop round 1
    Session: session_01QsR2jTfvjNTaR29ehLk26T
    Account: zhuangjianguo
    Branch: claude/project-thread-ot4blw (platform-assigned card-thread branch; a card thread can push only its assigned branch, and the name carries no issue number, so this claim is the identity record)
    Worktree: objectstack-issue-26794
    Domain: domain:ui
    Seat: domain:ui#4
    File surface: ui/packages/app-shell/src/views/metadata-admin/previews/block-types.ts, the studio namespace en.ts/zh.ts type label, previews/__tests__/block-config.test.ts (remove the exemption row), tests beside, one root changeset; ⛔ packages/spec/**, server packages, any new key (stop on breach; explain in the report)
    Container & model: S, mode:thread, model: TIER_DEFAULT (dispatch-gates --tier: no path-derived mandate; reason: the maintainer's standing rule 「只认领不需要 fable 的卡」, 2026-10-27T10:39Z), effort: high
    Clause-②: no
    Metadata-protocol: none
    Responsibility: the page designer's add-block palette (ui app-shell, this lane) does not offer list-view, though PR #26793 gave it an inspector panel · the platform path that may cover it: none, TYPES_BY_CATEGORY is built only from BLOCK_TYPE_META · reached by every page author who wants a list block
    Thread-read: 6448480586
    Premise: holds (git show origin/main:…/previews/block-types.ts | grep -c "'list-view'" → 0; PANEL_WITHOUT_PALETTE at block-config.test.ts:261 on origin/main 6090bb73 at 2026-10-27T20:24Z)
    Serial constraints cleared: no open PR touches the surface (the thread re-checks at start)

    Dispatched at 2026-10-27T20:28Z to the card thread on that branch; the order lives in the thread's opening message.


    Generated by Claude Code

  4. objectstack-fleet commented on Oct 27, 2026

    @objectstack-fleet
    ContributorAuthor

    os-dev-report

    {
      "issue": 26794,
      "status": "done",
      "branch": "claude/project-thread-ot4blw",
      "pr": "https://github.com/objectstack-ai/objectstack/pull/26915",
      "session": "session_01QsR2jVDGfqqDsAhmZbg6aF",
      "premise_still_valid": true,
      "summary": "BLOCK_TYPE_META gains a list-view row (category data, LayoutList icon, label key engine.pageBlockCanvas.type.listView: 'List view' / '列表视图' in the studio namespace en + zh), so TYPES_BY_CATEGORY and the add-block picker offer it. PANEL_WITHOUT_PALETTE and its self-deleting case are removed from block-config.test.ts. A fresh block is written bare ({ type: 'list-view' }) and selected: measured on main, ListViewBlock with no data/dataSource draws its existing 'No object named' hint, so the chosen behaviour is 'asks for its object' and the panel's Object control writes dataSource.object; no canvas default added.",
      "head": "1959511d",
      "tests": "At 1959511d. New previews/PageBlockCanvas.addListView-26794.test.tsx: 3/3 passed (picker row under Data in en+zh; pick writes [{type:'list-view'}], PageSchema.safeParse ok, selects regions[0].components[0]; inspector opens empty Object/View/Row limit, Object writes dataSource.object). Ablation (row deleted, anchor count 0, trap restore, hash f6153ab1 identical): 4 failed / 44 passed across the new file + block-config.test.ts. Narrowed suite (app-shell tests naming block-types/PageBlockCanvas/BLOCK_CONFIG/PageBlockInspector or the studio namespace, plus all packages/i18n): Test Files 181 passed, Tests 2387 passed, 13 skipped. type-check @object-ui/i18n and @object-ui/app-shell: exit 0. ui check:i18n-designer-parity, check:i18n-dead-keys, check:new-line-citations: exit 0.",
      "gates": "dispatch-gates --commands derived 34; all 34 run locally, each exit 0 (PR-body gates via GITHUB_EVENT_PATH on the final body; check:type-check-debt and vitest run scripts/ under the lock); --ran: 34 derived, 34 run, 0 NOT-MEASURED. check-partof-closing-keyword with PR_BODY: exit 0. CI check-runs on #26915: in_progress at report time.",
      "line_budget": "6 files, +173 / -23 at f9c12f64 plus a 1-line test fix in 1959511d; under the 3000 human-merge threshold",
      "files_changed": [
        ".changeset/26794-list-view-in-add-block-palette.md",
        "ui/packages/app-shell/src/views/metadata-admin/previews/block-types.ts",
        "ui/packages/app-shell/src/views/metadata-admin/previews/PageBlockCanvas.addListView-26794.test.tsx",
        "ui/packages/app-shell/src/views/metadata-admin/previews/__tests__/block-config.test.ts",
        "ui/packages/i18n/src/namespaces/studio/en.ts",
        "ui/packages/i18n/src/namespaces/studio/zh.ts"
      ],
      "dogfood_battery": "n/a — no ! in the PR title and no (narrowing) arm",
      "deviations": [
        "changeset carries '@object-ui/i18n': patch beside '@object-ui/app-shell': patch, because the label row is added to the i18n package's studio catalogues (the claim named app-shell only)",
        "the label key sits in the studio namespace as the claim's file surface says, while its sibling engine.pageBlockCanvas.type.* rows are still in app-shell metadata-admin/i18n.ts (the claim's premise that #26780/#26815 moved them does not hold for this family; open slice S4 PR #26900 does not move it either); recorded in the PR's Acceptance notes",
        "the ablation mutation was written with a python exact-replace instead of scripts/ablation-replace.mjs; landing proved by anchor count 0, restore proved by empty git diff HEAD and identical blob hash; the test imports source, so no build/dist leg"
      ],
      "mcp_calls": "7 — reads only: issue_read x4 (get, get_comments x3), search_pull_requests x2, pull_request_read get_files x1",
      "api_writes": "2 — relay strokes: pr_create (POST /repos/objectstack-ai/objectstack/dispatches → pulls create #26915 + issues/26915/assignees), and this report comment (POST /dispatches → issues/26794/comments)",
      "open_questions": [],
      "out_of_scope_findings": []
    }

    Generated by Claude Code

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

Metadata

Metadata

Assignees

Labels

area:studioChanging a running app without code — authoring, publish, docs and the portalbugSomething isn't workingdomain:uipm:dispatchedpriority:p2Medium: important, M3

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions