Skip to content

epic: record page v2 — one default open mode per object (drawer by default, page by declaration; modal / split / popover retired as metadata); the drawer and the page are one page at two widths; related records open in place #26676

Open
9 of 13 issues completed

Description

@objectstack-fleet

Epic parent (pm-dispatch 〈Epic 子树车道〉): this card and its children are reserved for the epic PM session session_cdb7a717-def7-4e71-9988-f089fbaa18ff; they carry pm:epic and never pm:queue, so no domain seat takes them. The spec child is claimed from this session on the maintainer's direct instruction (footer), which is the authority that overrides the "spec sub-issues go to the spec seat's queue" default.

Territory (files this subtree edits; other lanes avoid them while the children are open)

  • packages/spec/src/ui/view.zod.ts (NavigationModeSchema, NavigationConfigSchema), packages/spec/src/ui/page.zod.ts (recordAction), packages/spec/src/ui/page.form.ts (the recordAction options), plus the spec retirement kit files the spec-property-retirement skill names.
  • ui/packages/react/src/hooks/useNavigationOverlay.ts; ui/packages/components/src/custom/navigation-overlay.tsx.
  • ui/packages/app-shell/src/views/ObjectView.tsx, objectViewRecordNavigation.ts, objectViewRecordOverlay.tsx, RecordDetailView.tsx, RelatedRecordActionsBridge.tsx; ui/packages/app-shell/src/console/appObjectScope.ts.
  • ui/packages/plugin-view/src/** (deriveRecordSurface), ui/packages/plugin-calendar, plugin-kanban, plugin-gantt navigation reads.
  • ui/packages/plugin-detail/src/synth/buildDefaultPageSchema.ts, DetailTabs.tsx, RelatedList.tsx.
  • ui/packages/plugin-list/src/components/ViewSettingsPopover.tsx — only after Display menu: the layout row's five segments (表格 / 看板 / 日历 / 时间线 …) wrap their labels inside the 240 px popover; the row folds to icons with tooltips or the popover widens #26637 (in flight, domain:ui seat 4) lands.

Children (dispatch order; file surfaces that overlap run in series)

  1. spec(+ui): navigation.mode keeps page | drawer | new_window | none — modal, split and popover are retired; the default becomes drawer in the schema and in the console (no field-count guess); list-page recordAction drops modal; the console's split pane becomes a per-user preference read #26677 — spec + its console consumers: navigation.mode keeps page | drawer | new_window | none, modal / split / popover retired; the default is drawer in the schema and in the console (the field-count guess goes); list-page recordAction drops modal; the console's split pane stays as a per-user preference read, not metadata.
  2. console record page: one page at two widths — three resident columns (details | timeline | related) at 1280 px and up, two columns with a collapsible related rail from 1024 px, today's tabs below that and in the drawer #26678 — the record page is one page at two widths: three resident columns at 1280 px and up, two columns with a collapsible related rail from 1024 px, the tabs it has today below that and in the drawer. (parallel with 1: disjoint files)
  3. console record drawer v2: the bar is ↑ ↓ · ⤢ · ✕ (no object name, no counter); a related row or a lookup opens its record in place with a trail, ← / Esc go back one level; ⤢ carries the trail into the page; on the record page a related row opens a drawer over the page #26679 — drawer v2 navigation: the bar is ↑ ↓ · ⤢ · ✕; a related row or a lookup opens its record in place with a trail; ← / Esc go back one level; ⤢ carries the trail into the page; on the record page a related row opens a drawer over the page. (after 1)
  4. console list Display menu: 「打开记录」 (drawer | split) as a per-user preference; an object or view declaring page shows the declaration instead; the name cell's hover ↗ opens the record as a full page #26681 — the list Display menu gains 「打开记录」 (drawer | split) as a per-user preference; an object declaring page shows the declaration instead; the name cell's hover ↗ opens the record as a full page. (after 1 and Display menu: the layout row's five segments (表格 / 看板 / 日历 / 时间线 …) wrap their labels inside the 240 px popover; the row folds to icons with tooltips or the popover widens #26637)

Not in this subtree, on purpose: the clickable stage path (#26612 / #26581 are in flight on that surface), inline field editing and the merged timeline (the record page already has an activity timeline and comments; nothing measured broken there). HotCRM needs no card: its views declare only page (lead) and drawer (opportunity, task, case), none of the retired modes (git grep "navigation: {" on HotCRM 1f3f8880).

Rulings (maintainer, 2026-10-27, chat in the filing session — verbatim, not re-decidable here)

  1. The model, quoted back by the maintainer and ordered built: 「1. 一个对象一个默认打开方式:默认抽屉(带展开整页),page 只给显式声明的对象,modal 退役,split / popover 变成用户个人偏好;抽屉和整页是同一张页在两个宽度。」
  2. On the drawer's top bar: 「左上角的 任务 · 2 / 2 · 分屏 几个字有必要嘛」 — no object name, no mode label on the bar.
  3. On the position counter: 「我觉得记录详情页显示第几条记录 好像也没必要」 — no "n / N" anywhere on a record; the ↑ ↓ previous / next controls stay.
  4. On the right pane: 「右侧应该可以拖动吗?展开为整页那个是不是用图标就可以」 — the pane is drag-resizable and "open as full page" is an icon-only control with a tooltip.
  5. On related records, the maintainer confirmed the in-place model: 「所以关联记录是一层一层的往下点,然后可以一层一层的反悔吗」 — one level down per click, one level back per ← / Esc, never a second drawer.

Filed by the epic PM session session_cdb7a717-def7-4e71-9988-f089fbaa18ff on 2026-10-27, from the record-page / list-page assessment and the clickable prototype the maintainer walked and ruled on in that session (objectstack main 416a76030e, HotCRM 1f3f8880 on platform 18.2.0). The maintainer's instruction to build it, verbatim: 「你直接立卡派发处理这个开发,然后审核。」 Design evidence (never merged): branch claude/record-page-v2-evidence-20261027b at commit 345ec777220843ce1fd7f95b6cc0b2b6dcc81bf8, folder docs/design/record-page-v2-2026-10-27/ (prototype.html, artboards/, assessment.md).

Activity

  1. objectstack-fleet commented on Oct 27, 2026

    @objectstack-fleet
    ContributorAuthor

    Epic checklist · epic PM session_cdb7a717-def7-4e71-9988-f089fbaa18ff · round 1 · 2026-10-27T12:53Z

    Batch 1 dispatched (two os-dev subagents of this session, mode:subagent on the maintainer's machine, one build-heavy each, disjoint file surfaces):

    Design evidence: branch claude/record-page-v2-evidence-20261027b at 345ec777220843ce1fd7f95b6cc0b2b6dcc81bf8. Not filed on purpose: a HotCRM card (its views declare only page / drawer), the clickable stage path (#26612 / #26581 in flight), inline field edit and timeline merge (nothing measured broken).


    Generated by Claude Code

  2. objectstack-fleet commented on Oct 27, 2026

    @objectstack-fleet
    ContributorAuthor

    Epic checklist · epic PM session_cdb7a717-def7-4e71-9988-f089fbaa18ff · round 1 collected · 2026-10-27T17:25Z

    Readings for the maintainer: PR #26758's three-column tier shows on this seat's preview (console on the PR head, HotCRM on 4001); the tier floors stay 1280 / 1024 of the record view (PM discretion A, override open). PR #26804's prescriptions name the Display-menu control #26681 builds (answer A: land #26681 before the 18.3.0 cut).


    Generated by Claude Code

  3. objectstack-fleet commented on Oct 28, 2026

    @objectstack-fleet
    ContributorAuthor

    Epic checklist · epic PM session_cdb7a717-def7-4e71-9988-f089fbaa18ff · round 2 dispatched · 2026-10-28T00:04Z

    Both batch-2 devs build on the merged #26804 (drawer-only overlay, read-side preference util) and #26758 (column tiers).


    Generated by Claude Code

  4. objectstack-fleet commented on Oct 28, 2026

    @objectstack-fleet
    ContributorAuthor

    Epic checklist · epic PM session_cdb7a717-def7-4e71-9988-f089fbaa18ff · round 3 filed (record page v3) · 2026-10-28T03:28Z

    Maintainer approval of the v3 design and the definition-surface disposition, verbatim: 「同意,以上界面相关的需要我确认的你负责立卡派发,如果有可能可以启动云会话,开发完你来确认。」 and 「如果你不能派云会话,我可以让 ui 车道优先处理你的卡片,然后你负责确认和我沟通」. Split: the epic session keeps one card for a cloud-session trial; the rest go to the lanes' queues at priority:p1, blocked ones carry Blocked-by: and unlock in order; the epic session confirms each landing against the design boards and reports to the maintainer.

    Round 2 (closing): #26681 → PR #27031 ACCEPT, queued; #26679 → PR #27038 REWORK (patch round after #27031: the list-root ↑ ↓ half, zh copy, pins).

    Round 3 (record page v3):

    Design boards: canvas 「记录页 v3」 row (RecordPageV3, RecordPageV3NoTimeline, RecordPageRef, RecordDrawerV3, RecordMobile) — exported to claude/record-page-v2-evidence-20261027b (commit named in the next comment once pushed).


    Generated by Claude Code

  5. objectstack-fleet commented on Oct 28, 2026

    @objectstack-fleet
    ContributorAuthor

    Epic checklist · epic PM session_cdb7a717-def7-4e71-9988-f089fbaa18ff · round 3 update · 2026-10-28T04:13Z

    Three corrections to the round-3 comment above, each a reading taken on GitHub in this stroke:

    Round 2 state at this reading: PR #27031 is in the merge queue (position 2, MERGEABLE, behind #26999); PR #27038's patch round is on head 2baea3a5c7 with CI running (22 in progress, 0 red), its report not yet filed.

    Round 3 (record page v3), corrected:


    Generated by Claude Code

  6. objectstack-fleet commented on Oct 28, 2026

    @objectstack-fleet
    ContributorAuthor

    Epic checklist · epic PM session_cdb7a717-def7-4e71-9988-f089fbaa18ff · round 2 closed, round 3 in flight · 2026-10-28T07:04Z

    Round 2 is on main:

    Round 3 (record page v3):

    Cloud-dispatch lessons from this round, to be filed as one domain:skills card once the first cloud card has reported: the desktop-launched cloud session clones the launching session's recorded branch (push a pointer when the remote lacks it; claude-code#104412), its model cannot be set at launch (it inherits the launching seat's), and its only way back is GitHub.


    Generated by Claude Code

  7. objectstack-fleet commented on Oct 28, 2026

    @objectstack-fleet
    ContributorAuthor

    Epic checklist · epic PM session_cdb7a717-def7-4e71-9988-f089fbaa18ff · round 3: both cloud cards landed or queued, layout dispatched · 2026-10-28T10:53Z

    Round 3 (record page v3):

    Readings carried to this parent:

    Preview: the console preview on this seat is being rebuilt on main at 9dacccf961 (includes #27120) for the maintainer's walk-through.


    Generated by Claude Code

  8. objectstack-fleet commented on Oct 28, 2026

    @objectstack-fleet
    ContributorAuthor

    epic:#26676#1 · zhuangjianguo · session_cdb7a717def74e719988f089fbaa18ff

    Epic checklist · epic PM session_cdb7a717-def7-4e71-9988-f089fbaa18ff · round 3: layout awaiting a human merge · 2026-10-28T18:49Z

    Round 3 (record page v3):

    Filed this round from reports and the seat's readings: #27177 / #27178 (page designer canvas; os-warren, in flight), #27214 (domain:skills — the desktop-launched cloud dispatch path, six lessons), #27311 (spec: relatedLists describe promises a refusal the package-closure publish does not make), #27312 (spec: relatedList: 'primary' and enable.trackHistory describes narrate the v2 page). HotCRM follow-up after #27055 lands: its lead / account / opportunity / case carry authored kind: full pages and never see the v3 default.

    Cloud-dispatch readings added since the last checklist: the fleet App's events (push, PR open, reopen) fire no PR workflow on this repository — only a user-token push does — so every cloud card ends with a local round that merges main and pushes; the cloud session on #27055 ran about 4 h for an L card and delivered Targets 1–10 in one PR.


    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:recordsBusiness objects, records, the views that show data, usable forms, searchdomain:uipm:epicpriority:p2Medium: important, M3tracking

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions