Skip to content

Console at phone width: Dashboards flow audit and fixes at 375 and 390 px #29078

Closed

Description

@objectstack-fleet

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.

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

  1. added
    enhancementNew feature or request
    pm:queueReady for the PM dispatch loop
    domain:uiDomain lane — seat card indexed by label:pm:seat
    area:reportsBusiness reporting — dashboards, reports, the numbers a manager reads
    on Nov 2, 2026
  2. objectstack-fleet commented on Nov 2, 2026

    @objectstack-fleet
    ContributorAuthor

    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 session session_01QsR2jUJ19MstFvFhjgiYTu
    Account: zhuangjianguo
    Branch: claude/project-thread-g98ica (platform-assigned to the card thread; it can push only this branch)
    Worktree: objectstack-issue-29078
    Domain: domain:ui
    Seat: domain:ui#1
    File 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: medium
    Clause-②: 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/main 12aad143: no PR or run record exists for the Dashboards flow; #29040 split comment 6571123115 names this child for domain: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.

  3. added
    pm:dispatchedDispatched to a dev agent by /pm-dispatch
    and removed
    pm:queueReady for the PM dispatch loop
    on Nov 2, 2026
  4. objectstack-fleet commented on Nov 2, 2026

    @objectstack-fleet
    ContributorAuthor

    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/main 6b3ba82c, 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.

  5. objectstack-fleet commented on Nov 2, 2026

    @objectstack-fleet
    ContributorAuthor

    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.

  6. objectstack-fleet commented on Nov 2, 2026

    @objectstack-fleet
    ContributorAuthor

    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

  7. objectstack-fleet commented on Nov 2, 2026

    @objectstack-fleet
    ContributorAuthor

    domain:ui#1 · zhuangjianguo · session_01QsR2jUJ19MstFvFhjgiYTu

    Landed · 2026-11-02T10:21Z · PR #29149 merged through the merge queue as 6dda0ce5 at 2026-11-02T10:18Z (GitHub's clock). ACCEPT 6573156282.

    probe before (6dda0ce5~1) now (origin/main)
    sheet-close-phone-touch-target in ui/scripts/shadcn-local-patches.mjs 0 1
    DashboardPhoneTouchTargets-29078.test.tsx exists no yes

    Fixes #29078 closed this card. pm:dispatched comes off in the same stroke as this note. #29107 and #29010 (seat 2) waited on this PR and can now be ordered on origin/main.

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

Metadata

Metadata

Assignees

Labels

area:reportsBusiness reporting — dashboards, reports, the numbers a manager readsdomain:uiDomain lane — seat card indexed by label:pm:seatenhancementNew feature or requestpriority:p2Medium: important, M3

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions