Skip to content

showcase: the command center's "待审核列表 · Work Queue" (badge 审批中) has no filter, so it lists every task including completed ones #25503

Closed

Description

@objectstack-fleet

Filing-gate: ① product defect · reach: /apps/com.example.showcase/page/showcase_command_center as admin
Reader: objectstack triage seat → the lane that owns examples/app-showcase; the fix is one filter on cc_queue_g in src/ui/pages/command-center.page.ts
Duplicate search: semantic search "showcase command center work queue lists all tasks not only in review" in objectstack, incl. closed → 4 hits: #7750 (closed, my-work filters: vs $filter, a different page), #7568, #6739, #22030 (closed, unrelated). None covers this panel.

Measured during an exploratory showcase walkthrough on 2026-10-23: objectstack main b9c7a8f (PORT=3000 pnpm dev, stock showcase), objectui main 6fb31dc console (Vite dev, :5180), locale zh-CN.

What happens

The bottom panel is titled 待审核列表 · Work Queue with an 审批中 badge, and the KPI tile above it counts 待复审 Review = 2 (status in_review). The grid, however, lists all 10 tasks. That includes done ones such as Audit current IA, as well as backlog and to-do rows.

Where

examples/app-showcase/src/ui/pages/command-center.page.ts:

child: { id: 'cc_queue_g', type: 'object-grid', …, properties: { objectName: 'showcase_task', columns: ['title', 'project', 'status', 'priority', 'due_date'] } },

There is no filter. The KPI tile cc_k3 on the same page uses [{ field: 'status', operator: 'equals', value: 'in_review' }].

Expected

The queue shows the rows its title and badge promise, the same set as the KPI it sits under (2 rows today). The other option is to retitle it as an all-tasks list.

Session: https://claude.ai/code/session_01A48x1XYLTmiM2pgQxsgeKJ

Activity

  1. added
    area:reportsBusiness reporting — dashboards, reports, the numbers a manager reads
    bugSomething isn't working
    domain:serverDomain lane — seat card indexed by label:pm:seat
    on Oct 23, 2026
  2. objectstack-fleet commented on Oct 23, 2026

    @objectstack-fleet
    ContributorAuthor

    Triage: lands in examples/app-showcase/src/ui/pages/command-center.page.ts (cc_queue_g, add the in_review filter the KPI tile cc_k3 uses); rationale: showcase metadata; the panel promises a review queue and lists every task.
    Path: reports · 图表画得出来… | none (showcase content) | step ②
    Grade: priority:p3 — misleading demo content, one filter; not on a checklist clause.
    Type: Bug

    Session: session_01AkmasAfXt3cu83xGzkuKhe (objectstack triage, run on the maintainer's request in the project thread)


    Generated by Claude Code

  3. objectstack-fleet commented on Oct 23, 2026

    @objectstack-fleet
    ContributorAuthor

    Claim: PM loop round 1 · domain:services seat 1 (seat post #6021, project run by the Sales account) · S mechanical card, in-seat subagent · 2026-10-23T19:48Z
    Session: session_016g7nYP9wdNx1GDa5XDr7Uy
    Account: os-sales (the seat's linked user as GET /user answers it; the card's assignee)
    Branch: claude/issue-25503-showcase-review-queue-filter
    Worktree: objectstack-issue-25503
    Domain: domain:server
    Seat: domain:services#1
    File surface: examples/app-showcase/src/ui/pages/command-center.page.ts (cc_queue_g: add the status = in_review filter the KPI tile cc_k3 on the same page uses), plus a showcase pin. ⛔ packages/spec is not edited. Stop on breach; explain in the report.
    Container & model: S 级机械卡, mode:subagent (general-purpose subagent loading .claude/agents/os-dev.md as its role file), model: default tier, effort: medium
    Clause-②: no
    Metadata-protocol: none
    Responsibility: the command center's 待审核列表 · Work Queue (badge 审批中) lists every task, done ones included | the panel contradicts its own KPI tile (Review = 2) | anyone demoing the command center, today
    Thread-read: none
    Serial constraints cleared: no open PR touches command-center.page.ts at claim (open PRs read at 2026-10-23T19:45:00Z on f38832be9c). #25504 (KPI format on the same page) is dispatched after this lands.
    Resume-from: none

  4. objectstack-fleet commented on Oct 23, 2026

    @objectstack-fleet
    ContributorAuthor

    os-dev-report

    {
      "issue": 25503,
      "status": "done",
      "branch": "claude/issue-25503-showcase-review-queue-filter",
      "pr": "https://github.com/objectstack-ai/objectstack/pull/25534",
      "session": "session_016g7nYP9wdNx1GDa5XDr7Uy",
      "premise_still_valid": true,
      "summary": "I checked the premise on origin/main 1ff43b67ea and it holds: cc_queue_g in examples/app-showcase/src/ui/pages/command-center.page.ts was an object-grid over showcase_task with no filter, while the tile cc_k3 counts status equals in_review. Both blocks now read one module constant, IN_REVIEW = [{ field: 'status', operator: 'equals', value: 'in_review' }]: cc_k3 passes it to kpi() as before, and the grid gets filter: IN_REVIEW. The key is `filter` (singular, a ViewFilterRule array). Sources: ObjectGridPropsSchema in packages/spec/src/ui/component.zod.ts line 5055 ('lowered to the wire $filter. THE key, singular'; `filters` is only an alias and defaultFilters is retired), the committed sdui.manifest.json object-grid inputs (built from the objectui pin 6fb31dc, which lists `filter` and no `filters`), and the my-work.page.ts object-grid that #7750 was about. The renderer read point (objectui ObjectGrid.tsx schema.filter) is cited from the my-work comment only, because this session cannot read the objectui repo. The landing is the claimed file plus the existing showcase test file. No packages/spec edit. The draft PR is assigned to os-sales with skip-changeset.",
      "tests": "Head 15ef279240. The pin file (pnpm --filter @objectstack/example-showcase exec vitest run --maxWorkers=2 test/command-center-metric-filter.test.ts) passed: Test Files 1 passed, Tests 7 passed. Showcase test: Test Files 38 passed (38), Tests 465 passed (465), VERDICT command-exit 0. Showcase typecheck: VERDICT command-exit 0, and tsc --listFiles counts the test file once. os validate (showcase validate): 'Validation passed', exit 0. Ablation via scripts/ablation-replace.mjs, run under the verify lock: the anchor `'due_date'], filter: IN_REVIEW } },` was replaced by `'due_date'] } },` (anchor x1 to x0, blob a98af74d6112 to 8af132bc2407). Result: 2 of 7 failed ('scopes the queue to in_review tasks through `filter`' and 'carries the same rules as the tile `cc_k3`'). Restore: blob after restore == HEAD a98af74d6112, git diff HEAD empty, git status clean. No build leg was needed because the test imports the page from the package's own src. The dependency closure was built first (pnpm --filter '@objectstack/example-showcase^...' build, VERDICT command-exit 0).",
      "gates": "node scripts/pm/dispatch-gates.mjs --commands at 15ef279240 derived 45 commands. 44 exited 0. pnpm check:dual-build-cjs-loads exited 3 with PREREQUISITE NOT MET, because only the showcase closure was built (studio, client-react and others have no dist); it is NOT MEASURED locally and is left to CI Lint & Repo Gates. Reconciliation with --ran and exit codes recorded printed '45 derived famil(ies) accounted for — 44 run, 1 NOT-MEASURED (1 DERIVED from a recorded exit 3)', exit 0. PR check-runs read once at open: 42 total (8 success, 12 skipped, 22 in_progress). Check Changeset: success. Test Core 1/6 to 6/6, Build Core and Governed Surface Queue Guard: in_progress. Lint & Repo Gates and TypeScript Type Check had not appeared yet: in_progress / NOT MEASURED. I did not wait for CI.",
      "dogfood_battery": "n/a: no ! in the PR title and Clause-②: no has no (narrowing) arm",
      "mcp_calls": "0",
      "api_writes": "2 relay writes: (1) fleet-write pr_create, a POST /repos/objectstack-ai/objectstack/dispatches that ran 40020175473 (success), which opened PR #25534 as a draft with assignee os-sales and label skip-changeset; (2) this os-dev-report comment, posted through post-stamped.mjs to POST /repos/objectstack-ai/objectstack/issues/25503/comments. Plus git push, which is not a REST write.",
      "open_questions": [],
      "out_of_scope_findings": []
    }
  5. objectstack-fleet commented on Oct 23, 2026

    @objectstack-fleet
    ContributorAuthor

    Landed · domain:services seat 1 (seat post #6021) · os-sales · session_016g7nYP9wdNx1GDa5XDr7Uy · 2026-10-23T21:03Z

    reading value
    PR #25534 MERGED through the queue (ACCEPT 6374407549), head 15ef279240
    origin/main carries 8ef2a96bd5

    State: Fixes #25503 closed the card. pm:dispatched is now off and the assignee is cleared. #25504 (KPI format on the same page) is now dispatched.


    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

No one assigned

    Labels

    area:reportsBusiness reporting — dashboards, reports, the numbers a manager readsbugSomething isn't workingdomain:serverDomain lane — seat card indexed by label:pm:seatpriority:p3

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions