Skip to content

tracking: console list page and shell layout refresh after the 2026-10-15 prototype — parent of #12423, #12427, #12440 and #12429, with the items not yet carded #25945

Open

Description

@objectstack-fleet

Filing gate ④ (a coordination node: one parent, its child cards listed below) on the maintainer's instruction, gate ③ (chat, 2026-10-15, session session_019YFzJp4o8Ck4NsT1toC4UP, seat account os-bill), verbatim: 「这些任务都是你处理吗? 是否建议开专题卡」 and, on the seat's recommendation of a tracking parent, 「同意专题卡」. The design every child follows is the maintainer-approved prototype at https://claude.ai/artifact/8JLqDFmcuK82RS1Cb8219f (private to the maintainer; artboards: the 1440 main board, the 1024 laptop board with the collapsed icon rail, the 390 phone board that keeps today's phone shape). The maintainer's framing of the whole, verbatim: 「我关心的是平台整体界面的布局优化」 and 「crm 本身的元数据不重要,我关心的还是平台的基础能力」 — every child changes @object-ui/* platform behaviour; the two HotCRM cards of the audit round (below) are listed here for the record and change HotCRM view metadata only.

Reader who acts: nobody on this card itself — it is not dispatchable and carries no pm:queue. The domain:ui lane's seat (seat post objectstack-ai/objectui#9800, vacant since the filing session clocked out) claims and dispatches each child from pm:queue on its own, one dev at a time, and keeps the checklist below current at each round boundary. The maintainer adds follow-ups as comments here; the seat turns each into a child card.

Dedupe (MCP search_issues, scope objectstack-ai/objectui, all states, read 2026-10-15T07:25Z): "tracking parent card console list page shell layout sidebar favorites toolbar Display prototype" → 37 total, top 8 read: the four children (#12440, objectstack-ai/objectui#12423, objectstack-ai/objectui#12429, objectstack-ai/objectui#12427) and four unrelated closed cards (#12211 browser-pass list card, objectstack-ai/objectui#11572 InterfaceListPage projection, objectstack-ai/objectui#5720 AppSidebar observation, objectstack-ai/objectui#3946 app-shell.mdx). No open or closed parent for this prototype. None is this card.

What the prototype changes, and where each piece lives

The list page on a 1440 px desktop spent about 290 px of chrome before its first row and offered up to twelve toolbar controls at once; the sidebar had two "keep this handy" controls that landed in different places, and its collapse toggle sat at the bottom-left of a long navigation. The prototype's shape: four toolbar controls (Filter · Sort · Display · Search) with everything else inside Display; saved-view tabs sized to the width, on the same row as those controls; one leading cell per grid row (number, checkbox on hover); a one-row page header; one Favorites section at the top of the sidebar fed by a hover ⋯ menu on each item and by the page's overflow menu; the collapse toggle in the app bar's left slot at every width; the phone shape unchanged.

Children of the prototype round (all landed)

Acceptance of the round: the filing session's post-merge screenshots at 1440 / 1024 / 390 were shown to the maintainer in chat; the gaps the maintainer named became objectstack-ai/objectui#12461, objectstack-ai/objectui#12462 and objectstack-ai/objectui#12463 above, now landed.

Children of the audit round (filed 2026-10-15T14:31Z)

On the maintainer's instruction 「更新最新的代码,完整的测试一下前端用户界面的各项功能,评估还有哪些可以改进的地方」 the filing session audited the HotCRM console on main 720f6d4 (report, private to the maintainer: https://claude.ai/artifact/XPrn5eZMsQaKUgasMJEMmR; 93 screenshots at 1440 / 1024 / 390, light and dark, en and zh-CN; every function exercised worked, zero runtime errors). The maintainer answered 「同意开卡,使用 pm-dispatch 创建卡片」 and then 「你创建的卡片可以放到队列让 ui 车道自己认领吧?」: every card below sits in pm:queue with no assignee for the lane's seat to claim; nothing is dispatched by the filing session. The quota of three cards per fire is exceeded on that word, which approved the report's list as a set.

Not carded from the audit, by the filing gate: the dev-mode boot cost (3,303 module requests on a full reload; a production build measurement first), the pre-login 401s and the auth/organization/list 404 on boot, and the 2-second "Connected" flash of ConnectionStatus (by design).

Parallelism: objectstack-ai/objectui#12518 (plugin-view), objectstack-ai/objectui#12521 (plugin-form), objectstack-ai/objectui#12523 and objectstack-ai/objectui#12527 (plugin-detail, different files), objectstack-ai/objectui#12528 (plugin-list / plugin-grid / plugin-dashboard) touch disjoint packages and run in parallel. objectstack-ai/objectui#12520, objectstack-ai/objectui#12530, objectstack-ai/objectui#12526 and objectstack-ai/objectui#12529 all edit @object-ui/app-shell: objectstack-ai/objectui#12520 (SidebarItemMenu.tsx), objectstack-ai/objectui#12530 (hooks/sharedUserFeeds.ts, layout/ActivityFeed.tsx), objectstack-ai/objectui#12526 (layout/PageHeader.tsx, views/DashboardView.tsx, layout/AppHeader.tsx) and objectstack-ai/objectui#12529 (views/RecordDetailView.tsx) are different files; the second to land merges main again.

In the prototype, not yet carded

  1. The 1024 px laptop board's collapsed icon rail was console shell: the sidebar collapse toggle moves from the sidebar footer to the app bar's left slot at every width, where the drawer button already sits below lg objectui#12429's acceptance, not a card of its own.
  2. Per-user persistence of Display settings (density, hidden fields, row numbers) landed as console lists: per-user list state (view tab order, filter state, sort, column widths) moves from localStorage and shared-view writes onto sys_user_preference ui.* keys; a toolbar sort or drag-reorder no longer rewrites the shared view objectui#12418 (caac3b2), an existing card outside this parent; its remainder is console list toolbar: the density toggle and Hide Fields still write the shared view, so one user's click changes the list for everyone and a walled tenant is refused (the rest of objectui#12418's family) objectui#12474 / console list toolbar: Hide Fields on a user's saved view that declares no columns is session-only after objectui#12474 (it used to persist by writing the shared view) objectui#12505, outside this parent.

How this parent is kept

The checklist above is the only state on this card; the seat ticks a child when its PR is MERGED and adds a line with the merge commit. Child cards carry Blocked-by: lines to each other, not to this parent. Sub-issue links are not written: the fleet-write relay's op table has no sub-issue op and the seat writes GitHub through that relay only, so the task-list references above are the parent–child relation GitHub shows ("tracked by").

Attribution: written by the domain:ui seat in session session_019YFzJp4o8Ck4NsT1toC4UP (account os-bill) on the maintainer's instruction quoted above.

Design reference (added 2026-10-15T08:12Z on the maintainer's question 「如何确保车道能严格按照你的设计开发」)

The visual target lives in one page, readable by every session of this account and shareable by the maintainer from its Share menu: https://claude.ai/artifact/JCzrzHxTxzD4EEKCTtDaNA — the three artboards rendered to PNG (main-1440.png, laptop-1024.png, phone-390.png, fetchable as the page's files), a targets table per child card, the designer's notes verbatim, and the acceptance protocol. The interactive prototype stays at https://claude.ai/artifact/8JLqDFmcuK82RS1Cb8219f. Text beats picture: a child card's acceptance list is the spec a dev builds and a seat reviews against; the images show the shape; where they disagree the card wins and gets fixed. The audit report linked above is the second reference: its figures are what each audit-round card cites.

Pixel facts on the main board (1440 px, Leads list, admin): chrome before the first data row ≈ 183 px (app bar 48, page header 52, view row 47, table header 36); the console on main 720f6d4 measures first row y = 207 with the tab row and the toolbar on one row. At 1024 the sidebar is a 56 px icon rail and 4 tabs show with "4 more" (today one tab, objectstack-ai/objectui#12518). At 390 only the view row changes (a current-view picker, icon-only controls); the phone shape is otherwise today's.

How a landing seat proves a child matches: its ## 席位核对 carries browser readings at 1440 / 1024 / 390 against the HotCRM demo (first-row y, the toolbar's control list by test id, the folded tab count), compared with the targets table. How the maintainer accepts after merge: three screenshots of the merged console beside the three PNGs, taken by the session the maintainer designates; differences come back here as comments and become child cards.

Handover: a domain:ui PM named by the maintainer takes this parent over; the filing session landed objectstack-ai/objectui#12427 (PR objectstack-ai/objectui#12443), returned objectstack-ai/objectui#12440 and objectstack-ai/objectui#12429 to pm:queue at priority:p1 in that landing stroke, clocked out of seat 3 with the handover brief on the seat post, and later filed the audit round above without claiming any of it.

Activity

  1. added
    trackingGenerated anchor/tracker issue — not dispatchable; exempt from the half-state sweep's findings
    domain:uiDomain lane — seat card indexed by label:pm:seat
    on Oct 15, 2026
  2. objectstack-fleet commented on Oct 15, 2026

    @objectstack-fleet
    ContributorAuthor

    Maintainer's instruction 2026-10-15T07:58Z (chat, 2026-10-15, verbatim: 「那后续的任务你放回队列,按 p1 标记,开发完了合并之后你验收。」): the children not yet in development (#12440, objectstack-ai/objectui#12429) are regraded priority:p1 and go back to pm:queue as soon as their blocker (#12427's PR objectstack-ai/objectui#12443) merges; any domain:ui seat dispatches them from the queue. The filing session finishes objectstack-ai/objectui#12427 (in flight, PR objectstack-ai/objectui#12443) and then clocks out of seat 3. Acceptance of each child after its merge is the maintainer's step: screenshots of the merged console against the prototype linked above, taken by the session the maintainer designates; the seat that lands a child ticks it here and leaves the acceptance line to the maintainer.
    Thread-read: none


    Generated by Claude Code

  3. objectstack-fleet commented on Oct 15, 2026

    @objectstack-fleet
    ContributorAuthor

    Post-merge acceptance readings 2026-10-15T08:56Z by the session the maintainer designated (session_019YFzJp4o8Ck4NsT1toC4UP), on origin/main a8e5b73 (#12436 and objectstack-ai/objectui#12443 merged), the HotCRM demo's Leads list as admin, driven by Playwright; the screenshots went to the maintainer in chat and are compared with the reference page's boards.

    reading value on main target (reference page) verdict
    1440 toolbar Filter · Sort (1) · Display · Search, by test id the same four met (#12423)
    1440 page header icon · title · description; New, Import, Add to Campaign, ⋯; no star icon · title · description; New, Import, ⋯ met for objectstack-ai/objectui#12423 and objectstack-ai/objectui#12427; "Add to Campaign" (a list_toolbar metadata action) stays in the header until the bulk-bar item is carded
    1440 view row 8 saved views fit, "+" tabs sized to the width met (#12423)
    1440 first data row y 242 ≤ 200 (one row for tabs + controls) not yet: objectstack-ai/objectui#12440
    1440 sidebar hovering Leads shows one ⋯; its menu reads Add to favorites · Open in new tab · Copy link · Design (admin); choosing Add puts a Favorites section at the top of the sidebar with Leads in it; no group after Recent; the page header ⋯ then reads Remove from favorites one Favorites section at the top; hover ⋯ with those four entries; the header entry agrees met (#12427)
    1440 sidebar collapse toggle still the sidebar's bottom-left footer button the app bar's leftmost button not yet: objectstack-ai/objectui#12429
    record header star still drawn (remainder of objectstack-ai/objectui#12427) no star not yet: objectstack-ai/objectui#12427 remainder
    1024 4 tabs + "3 more"; Filter · Sort · Display keep their labels; sidebar full width fold by width; labels kept; 56 px icon rail tabs and labels met; the rail is objectstack-ai/objectui#12429
    390 drawer ☰, icon-only Filter · Sort · Display, search in the top bar, no sidebar ⋯ today's phone shape, only the view row changes met

    So: objectstack-ai/objectui#12423 and the merged half of objectstack-ai/objectui#12427 match the boards; the three gaps are exactly the queued cards (#12440 one row, objectstack-ai/objectui#12429 toggle, objectstack-ai/objectui#12427's record star) plus the uncarded bulk-bar item. Readings only; the checklist above is the seat's to tick on each landing.
    Thread-read: 6187364621


    Generated by Claude Code

  4. objectstack-fleet commented on Oct 26, 2026

    @objectstack-fleet
    ContributorAuthor

    Transferred 2026-10-26T04:56Z from objectstack-ai/objectui#12444, with its comments and timeline; the old URL redirects here. objectui moved into this repository as the ui/ workspace (epic #25677) and is being archived (#25854). The body is left exactly as filed.

    Paths. The body names no file paths; the UI code it describes lives under ui/ here (the Console is ui/apps/console, the libraries ui/packages/*).

    References. The bare issue numbers in the body were written in objectui and now resolve against this repository by mistake; read them as objectstack-ai/objectui#3946, objectstack-ai/objectui#5720, objectstack-ai/objectui#9800, objectstack-ai/objectui#11572, objectstack-ai/objectui#12211, objectstack-ai/objectui#12418, objectstack-ai/objectui#12423, objectstack-ai/objectui#12427, objectstack-ai/objectui#12429, objectstack-ai/objectui#12436, objectstack-ai/objectui#12440, objectstack-ai/objectui#12443 and 21 more.

    No stale pm:dispatched or assignee to strip.


    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

    domain:uiDomain lane — seat card indexed by label:pm:seattrackingGenerated anchor/tracker issue — not dispatchable; exempt from the half-state sweep's findings

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions