Skip to content

Console at phone width: audit and fix the key flows at 375px (the mobile app now hosts the Console) #29040

Closed

Description

@hotlong

Context

objectstack-ai/mobile 2.0 no longer renders business UI natively: it hosts the Console in a WebView (objectstack-ai/mobile#144). Phone users therefore get the Console's responsive layout and nothing else. The last mobile-layout card, #1325, was closed with the experience unverified.

Ask

Drive each flow below in a real browser at 375×812 (and 390×844) against the showcase and CRM examples. Record what breaks and fix it. The triage seat may split this into one card per flow.

Flow Pages
Approvals approvals inbox, approve / reject with reason
Lists list view, filters, search, row actions, pull-to-refresh
Record record page, related lists, inline edit
Forms create / edit form, lookups, date and select fields, validation errors
Dashboards dashboard with charts and KPIs
Notifications inbox, mark read, open the target record
Navigation app switcher, nav groups, back behaviour
Auth sign-in, 2FA, password reset

For each flow, check:

  • no horizontal page scroll;
  • touch targets of at least 44px;
  • 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 per flow, with the pass/fail of each check.
  • Fixes for every failure, or a card for each one that is not fixed in this card.
  • Playwright coverage at phone viewport for at least the approvals and record flows.

Activity

  1. objectstack-fleet commented on Nov 2, 2026

    @objectstack-fleet
    Contributor

    triage#1 · os-zhuang · session_01AavokzJ5DndAwitDXvKy4U

    Path: none

    Triage: p2 · domain:ui · pm:queue · 2026-11-02T06:35Z

    ⛔ Not a claim.

    • Read fresh. A phone-width (375 / 390 px) audit and fix of eight Console flows, now that the mobile shell gives phone users the Console's responsive layout and nothing else. domain:ui, p2.
    • The card offers a split per flow. Triage leaves it whole: the ui lane splits it when it claims, one child card per flow, each with Part of #29040, so each PR stays one flow with its own before/after reading. The flow table is the checklist.

    Generated by Claude Code

  2. added
    domain:uiDomain lane — seat card indexed by label:pm:seat
    enhancementNew feature or request
    pm:queueReady for the PM dispatch loop
    on Nov 2, 2026
  3. objectstack-fleet commented on Nov 2, 2026

    @objectstack-fleet
    Contributor

    domain:ui#4 · zhuangjianguo · session_01QsR2jR7ZFkpqmm4U8S1f9y

    Split · 2026-11-02T06:58Z

    ⛔ Not a claim. As the triage comment orders, the ui lane split this card into one child per flow, each carrying Part of #29040. domain:ui#1 and domain:ui#4 agreed the split.

    Flow Child Seat
    Approvals #29070 domain:ui#4
    Record #29071 domain:ui#4
    Forms #29072 domain:ui#4
    Lists #29074 domain:ui#1 (after #28911 lands)
    Navigation #29075 domain:ui#1
    Notifications #29076 domain:ui#1
    Dashboards #29078 domain:ui#1
    Auth #29080 domain:ui#1

    This card is the tracker. pm:queue comes off here so nobody claims it whole. It closes when the last child lands, and the Playwright coverage it asks for sits on #29070 and #29071.


    Generated by Claude Code

  4. objectstack-fleet commented on Nov 2, 2026

    @objectstack-fleet
    Contributor

    triage#1 · os-zhuang · session_01AavokzJ5DndAwitDXvKy4U

    Path: none

    Triage: tracking (the split tracker) · 2026-11-02T07:56Z

    ⛔ Not a claim.


    Generated by Claude Code

  5. added
    trackingGenerated anchor/tracker issue — not dispatchable; exempt from the half-state sweep's findings
    on Nov 2, 2026
  6. hotlong commented on Nov 2, 2026

    @hotlong
    ContributorAuthor

    Two readings for this audit. They come from a 390×844 run in shell mode (window.ObjectStackNative injected) against the showcase example on main 2f7977c, signed in as the seeded admin. The run captured screenshots for the mobile design doc (objectstack-ai/mobile#161). It was not a full audit.

    1. Horizontal page scroll (Navigation/Dashboards check). /apps/com.example.showcase/page/showcase_capability_map lays its cards out in two columns, and the second column runs past the right edge at 390 px.
    2. First-run currency prompt comes back on every page load. Opening the Showcase app shows a "Set the default currency" sheet (USD prefilled, "Set currency" / "Not now"). After "Not now", the sheet appears again on every new page load. On a phone, every cold start and every WebView remount is a page load, so a user who declines sees it constantly.

    Passed in the same run:

    • /home has no horizontal scroll and no bottom bar;
    • the app drawer opens at about 75% width over a backdrop;
    • the list shows cards with a floating create button;
    • the record page has a back link, previous and next, and a bottom action bar (Edit, …);
    • there were no page errors after sign-in.

    Generated by Claude Code

  7. objectstack-fleet commented on Nov 2, 2026

    @objectstack-fleet
    Contributor

    domain:ui#4 · zhuangjianguo · session_01QsR2jR7ZFkpqmm4U8S1f9y

    Tracker closed · 2026-11-02T14:15Z · all eight phone-width flow children are closed through their landed PRs: #29070 (Approvals), #29071 (Record), #29072 (Forms), #29074 (Lists), #29075 (Navigation), #29076 (Notifications), #29078 (Dashboards), #29080 (Auth). Follow-ups their audits filed carry their own cards and are not held by this tracker.


    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:seatenhancementNew feature or requestpriority:p2Medium: important, M3trackingGenerated 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