Repository navigation
Description
domain:ui#4 · zhuangjianguo · session_01QsR2jR7ZFkpqmm4U8S1f9y
Filing gate: ④ coordination node, a per-flow child of maintainer card #29040, split as its triage comment orders ("the ui lane splits it when it claims, one child card per flow, each with Part of #29040") · filed by domain:ui#4 · ⛔ Not a claim.
Part of #29040.
Business reason (from #29040). objectstack-ai/mobile 2.0 hosts the Console in a WebView (objectstack-ai/mobile#144), so phone users get the Console's responsive layout and nothing else. This child covers the Dashboards flow: a dashboard with charts and KPIs.
Ask. Drive the flow in a real browser at 375×812 and 390×844 against the showcase and CRM examples. Record what breaks and fix it. Check each of these:
- no horizontal page scroll;
- touch targets of at least 44 px;
- dialogs and drawers fit the viewport;
- the virtual keyboard does not cover the focused field;
- long lists stay responsive on a mid-range Android device profile (CPU throttling 4×).
Acceptance.
- A run record for this flow in the PR body: each check, pass or fail, at both widths, with the page and example it ran on.
- A fix for every failure, or a filed card for each failure this PR does not fix.
- Playwright coverage at a phone viewport is welcome where a fix lands, not required (Console at phone width: audit and fix the key flows at 375px (the mobile app now hosts the Console) #29040 requires it for Approvals and Record only).
- Screenshots before and after each fix stay in the project folder, not on GitHub.
Reader. domain:ui#1 (the ui lane split #29040 per flow: domain:ui#4 takes Approvals, Record and Forms; domain:ui#1 takes Lists, Navigation, Notifications, Dashboards and Auth). Size M.
Dedupe. Searched 375 in:title (0), phone in:title is:open (3: #29040, #28911, #29057), mobile width in:title (1: #29040), Part of #29040 (1: #29040). No per-flow child existed.
Links back: #29040, objectstack-ai/mobile#144.
Generated by Claude Code
Activity
objectstack-fleet commentedon Nov 2, 2026
domain:ui#1 · zhuangjianguo · session_01QsR2jUJ19MstFvFhjgiYTu
Claim: PM loop round 18 · 2026-11-02T07:19Z
Session:
session_01QsR2jTE9T9iArKPf81eTtb(card thread, os-dev); dispatched by seat sessionsession_01QsR2jUJ19MstFvFhjgiYTuAccount:
zhuangjianguoBranch:
claude/project-thread-g98ica(platform-assigned to the card thread; it can push only this branch)Worktree:
objectstack-issue-29078Domain:
domain:uiSeat:
domain:ui#1File surface: Console files read only for the phone-width audit, plus a root
.changeset. The fix surface is declared by a claim amendment after the audit, before any code (stop on breach; explain in the report)Container & model: M,
mode:thread,model: default tier (dispatch-gates --tier: no path-derived mandate),effort: mediumClause-②: no
Metadata-protocol: none
Responsibility: the Dashboards flow of the #29040 phone-width audit (375 and 390 px) and its fixes
Thread-read: none
Premise: holds (at
origin/main12aad143: no PR or run record exists for the Dashboards flow; #29040 split comment 6571123115 names this child fordomain:ui#1)Serial constraints cleared: the shared layout (ConsoleLayout, AppShell, UnifiedSidebar) is held by #29075; a fix that needs it is sequenced by the seat.
objectstack-fleet commentedon Nov 2, 2026
domain:ui#1 · zhuangjianguo · session_01QsR2jUJ19MstFvFhjgiYTu
Claim amended · 2026-11-02T07:26Z · after the dev's audit (run record
/mnt/project-files/issue-29078/run-record-before.md,origin/main6b3ba82c, real Console on CRM pipeline and the showcase dashboards, 375 and 390 px). This sets the fix surface and adds to the round 18 claim 6571438083 on this card. Branch, session and size are unchanged.ui/packages/app-shell/src/views/DashboardView.tsx,ui/packages/plugin-dashboard/src/DashboardFilterBar.tsx,ui/packages/plugin-dashboard/src/DatasetWidget.tsx,ui/packages/plugin-dashboard/src/OpenInListButton.tsx, and the sharedui/packages/components/src/ui/sheet.tsx(its Close button only), their tests and a root.changeset. Each fix is phone-only (min-h-11 sm:min-h-0style); desktop is unchanged.sheet.tsxalone and rely on this fix.AppHeader, under Console at phone width: Navigation flow audit and fixes at 375 and 390 px #29075 Navigation.objectstack-fleet commentedon Nov 2, 2026
domain:ui#1 · zhuangjianguo · session_01QsR2jUJ19MstFvFhjgiYTu
Claim amended · 2026-11-02T08:14Z · adds to the fix surface set by amendment 6571555427 (claim 6571438083). Everything else is unchanged.
ui/packages/components/src/ui/sheet.tsxis regenerated bypnpm shadcn:update(ui/AGENTS.md Commandment Remove explicit pnpm version from workflows to fix version conflict #7), so a hand edit to its Close button would be silently reverted at the next sync. The repo's mechanism for an edit that must survive is a declared patch inui/scripts/shadcn-local-patches.mjs, anchored on the registry fixture. Seat 2 reported this for the branch at0ff4d360.ui/scripts/shadcn-local-patches.mjs(one sheet Close-target patch entry, beside the existing sheet family), and the matchingui/scripts/__tests__coverage or fixture it requires. Thesheet.tsxedit stays, and it must match what the declared patch produces.dialog.tsx) adds a dialog entry to the same file (its amendment 6572263305). Whichever PR lands second merges main.objectstack-fleet commentedon Nov 2, 2026
domain:ui#1 · zhuangjianguo · session_01QsR2jTE9T9iArKPf81eTtb
os-dev-report
{ "issue": 29078, "status": "done", "branch": "claude/project-thread-g98ica", "pr": "https://github.com/objectstack-ai/objectstack/pull/29149", "session": "session_01QsR2jTE9T9iArKPf81eTtb", "premise_still_valid": true, "summary": "Audited the Dashboards flow on a real Console (pnpm build + console:build, dev:crm and dev:showcase --fresh, Playwright mobile+touch, Android UA) at 375x812 and 390x844 over CRM pipeline_dashboard and showcase ops / revenue pulse / chart gallery, origin/main 6b3ba82c. Horizontal scroll, overlays fit and CPU 4x passed; keyboard N/A (no text field in the flow); touch targets failed (16-36 px). Fixed phone-only (max-sm: classes or min-h-11 sm:min-h-0): Refresh All, filter triggers/options/text/Reset, custom-range calendar (one month, 44 px days below md), table sort buttons, drillable rows, pivot cells, Export CSV (own row on phone), Open in list, Sheet Close (declared as shadcn local patch sheet-close-phone-touch-target). After-audit: all five checks pass/N/A at both widths, 0 targets under 44 in the flow. Run records before/after + screenshots in /mnt/project-files/issue-29078/.", "tests": "New: plugin-dashboard DashboardPhoneTouchTargets-29078.test.tsx (8), app-shell DashboardView.phoneTouchTarget-29078.test.tsx (1), components sheet-close-touch-target-29078.test.tsx (1). Reverse: with the 5 sources at 6b3ba82c, 8 failed / 2 passed (the 2 controls), restored from HEAD, git diff HEAD empty (sources imported from src, no dist between). On 0ff4d360: plugin-dashboard/ full 200 files 1922 passed 6 skipped; 43 components/app-shell/console files naming sheet or the touched modules 404 passed; turbo type-check components+plugin-dashboard+app-shell 67/67. On 8423b760: shadcn-local-patches.test.ts + sheet test 54/54; ui scripts/ 169 passed 2 skipped (4900 tests). No ablation beyond the reverse run (class-only diff).", "gates": "dispatch-gates --commands: 36 families (same list at 0ff4d360 and 8423b760). 0ff4d360: 35 exit 0, ui vitest scripts/ exit 1 (shadcn round-trip, sheet), fixed in 8423b760. 8423b760: all 36 exit 0 (scripts/ run alone, the 35 in one loop, check:type-check-debt under the lock); dispatch-gates --ran: 36 derived, 36 run, 0 NOT-MEASURED. PR-body gates on the exact body: check-changeset-no-major, check-adr-0087-registration, check-closing-keyword-parity, check-partof-closing-keyword exit 0. CI on 8423b760 at report time: 33 success, 11 skipped, 10 in_progress, 0 failure.", "dogfood_battery": "n/a, no ! in the PR title and no (narrowing) arm", "mcp_calls": "0", "api_writes": "2: fleet-write relay pr_create (run 41412434713) and this os-dev-report comment via post-stamped; plus git push", "open_questions": [], "out_of_scope_findings": [ "carrier: #29075 · Console app bar controls under 44 px on every route at 375/390 (sidebar toggle 28, home/search/Studio/inbox/account 32), AppHeader, noted not filed", "carrier: none · chart tooltips at phone width draw the series label and value with no gap (e.g. 'vs previous period0'), polish, noted not filed", "carrier: none · harness deviations: PR carries no assignee/reviewer (os-dev rule, no MCP writes); session not subscribed to PR activity (re-runs and landing are the seat's)" ] }Generated by Claude Code
objectstack-fleet commentedon Nov 2, 2026
domain:ui#1 · zhuangjianguo · session_01QsR2jUJ19MstFvFhjgiYTu
Landed · 2026-11-02T10:21Z · PR #29149 merged through the merge queue as
6dda0ce5at 2026-11-02T10:18Z (GitHub's clock). ACCEPT 6573156282.6dda0ce5~1)origin/main)sheet-close-phone-touch-targetinui/scripts/shadcn-local-patches.mjsDashboardPhoneTouchTargets-29078.test.tsxexistsFixes #29078closed this card.pm:dispatchedcomes off in the same stroke as this note. #29107 and #29010 (seat 2) waited on this PR and can now be ordered onorigin/main.