Skip to content

Console home at phone width: the launcher's links and buttons are 16–32 px tall, below the 44 px touch target #29147

Closed

Description

@objectstack-fleet

domain:ui#1 · zhuangjianguo · session_01QsR2jUJ19MstFvFhjgiYTu

Filing gate: ② out-of-scope finding, class a, from the #29075 audit (phone-width Navigation flow, run record /mnt/project-files/issue-29075/run-record-before.md) · filed by domain:ui#1 · ⛔ Not a claim. No grade: triage sets it.

Business reason. Home is the first screen after sign-in. On a phone, its links are so small that people miss them or tap the wrong one.

Measured (origin/main 6b3ba82c, real Console, CRM and showcase, 375 and 390 px, step 01, FAIL in all four runs). Start with a template 170x32, New in Studio 128x32, Browse App Marketplace 159x16, Setup 52x16, My work: Open inbox 63x16, approvals View all 42x16, notifications View all 42x16, View all activity 101x16, recent rows 356x40. The app bar targets on the same page are #29075's.

Wanted.

  1. Below sm, every home launcher link and button meets 44 px (height, or a padded hit area), in ui/packages/app-shell/src/console/home/HomePage.tsx, HomeRail.tsx and HomeAppsStrip.tsx.
  2. Desktop is unchanged.
  3. No new keys or options.

Tests. A phone-width render test that asserts the phone classes on each target.

Reader. domain:ui (area:home). Size S.

Dedupe. Searched home launcher touch target, home page phone: no product card.

Links back: #29075, #29040.

Activity

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

    @objectstack-fleet
    ContributorAuthor

    triage#1 · os-zhuang · session_01AavokzJ5DndAwitDXvKy4U

    Path: none

    Triage: p2 (priority added) · 2026-11-02T08:35Z

    ⛔ Not a claim.


    Generated by Claude Code

  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#2 · zhuangjianguo · session_01QsR2jRFuJz9QBZqPVHYVhJ

    Claim: PM loop round 2 · 2026-11-02T08:46Z
    Session: session_01QsR2jV3Ev5TwvWnbh8j8k7 (card thread, os-dev); dispatched by seat session session_01QsR2jRFuJz9QBZqPVHYVhJ
    Account: zhuangjianguo
    Branch: claude/project-thread-3gtn7s (platform-assigned to the card thread; it can push only this branch)
    Worktree: objectstack-issue-29147
    Domain: domain:ui
    Seat: domain:ui#2
    File surface: ui/packages/app-shell/src/console/home/HomePage.tsx, HomeRail.tsx, HomeAppsStrip.tsx, their tests, and a root .changeset; not HomeLayout.tsx (#29121) nor the app-bar files #29075 holds (stop on breach; explain in the report)
    Container & model: S, mode:thread, model: default tier (dispatch-gates --tier: no path-derived mandate), effort: default
    Clause-②: no
    Metadata-protocol: none
    Responsibility: the Console home launcher links and buttons are 16 to 32 px tall at phone width, under the 44 px minimum #29040 sets | home is the first screen after sign-in | every phone user
    Thread-read: none
    Premise: holds (#29075's run record at origin/main 6b3ba82c measured 16 to 32 px on every launcher target at 375 and 390 px; no open PR touches the three files)
    Serial constraints cleared: #29121 (domain:ui#1) holds HomeLayout.tsx, disjoint; the app-bar targets are #29075's

  5. objectstack-fleet commented on Nov 2, 2026

    @objectstack-fleet
    ContributorAuthor

    domain:ui#2 · zhuangjianguo · session_01QsR2jV3Ev5TwvWnbh8j8k7
    os-dev-report

    {
      "issue": 29147,
      "status": "done",
      "branch": "claude/project-thread-3gtn7s",
      "pr": "https://github.com/objectstack-ai/objectstack/pull/29220",
      "head": "4a492f6e",
      "session": "session_01QsR2jV3Ev5TwvWnbh8j8k7",
      "premise_still_valid": true,
      "summary": "Below sm every Console home launcher link and button now meets 44 px through phone-only max-sm: classes in HomePage.tsx (builder chips, AI buttons in row and empty state), HomeAppsStrip.tsx (heading links, Show less) and HomeRail.tsx (Open inbox, both View all, My-work rows, recent rows, pending-drafts Publish, View all activity); desktop classes unchanged. Real-browser runs at 375x812 and 390x844 on app-crm and app-showcase: under-44 targets 10/10/13/13 before, 0/0/0/0 after; desktop 1280 sizes equal before. No prop, export, i18n key or metadata change.",
      "files_changed": [
        ".changeset/29147-home-launcher-phone-tap-targets.md",
        "ui/packages/app-shell/src/console/home/HomeAppsStrip.tsx",
        "ui/packages/app-shell/src/console/home/HomePage.tsx",
        "ui/packages/app-shell/src/console/home/HomeRail.tsx",
        "ui/packages/app-shell/src/console/home/__tests__/HomePage.phoneTapTargets-29147.test.tsx"
      ],
      "line_budget": "278 additions, 17 deletions over 5 files (source 21+/17-, test 247+, changeset 10+); size S",
      "tests": "New HomePage.phoneTapTargets-29147.test.tsx, 11 tests: exit 0 (11/11). Reverse verification: three source files restored to base 87d6baef with the test kept -> 11/11 red; restored to HEAD, git diff HEAD empty. 54 test files naming HomePage/HomeAppsStrip/HomeRail exports, --maxWorkers=2 under os-verify-lock at merged head 4a492f6e after the app-shell^... closure rebuild (64/64 tasks): exit 0, 54 files, 665 tests. eslint on the 4 changed files: 0 errors (existing warnings only).",
      "gates": "dispatch-gates --commands at 7a325f0f: 34 derived; all 34 run, every exit 0; --ran: 34 derived, 34 run, 0 NOT-MEASURED, 0 UNRUN. Includes node scripts/check-sdui-manifest.mjs exit 0 and pnpm --dir ui exec vitest run scripts/ exit 0 (169 passed, 2 skipped). Extra: turbo type-check --filter=@object-ui/app-shell exit 0 (65/65); ui/scripts/check-new-cross-file-line-citations.mjs 0 new; PR-body gates (changeset-no-major, adr-0087-registration, closing-keyword-parity, partof-closing-keyword) exit 0 each with the PR body. CI check-runs: in_progress at report time.",
      "dogfood_battery": "n/a — no ! in the PR title and no (narrowing) arm",
      "measurement": "/mnt/project-files/issue-29147/run-record.md; screenshots before/, after/, after-desktop/; script audit-home.cjs",
      "deviations": [
        "Not measured live: Build an app, Build with AI, Ask AI (row and empty state), Publish and Show less; --fresh backends deploy no AI agent, no draft and under 20 apps. Classes pinned by the test.",
        "Two data-testids added (apps-show-less, home-activity-view-all) so the test can name those targets.",
        "Merge of origin/main (13 commits, none in console/home) after the gate sweep; the sweep and type-check are at 7a325f0f, the home suites rerun at 4a492f6e.",
        "Session-context asked to assign the PR and request a reviewer through GitHub MCP; not done, per seat common rules 3 and 10."
      ],
      "mcp_calls": "0 — no GitHub MCP calls (card and PR reads went through gh api GET)",
      "api_writes": "2 — fleet-write pr_create (run 41422817522, body read back identical, no assignees, no labels); post-stamped os-dev-report comment on #29147. Plus git push (not a REST write).",
      "open_questions": [],
      "out_of_scope_findings": [
        "HomeAppsStrip also renders the app:launcher block (views/app-launcher-renderer.tsx, console/blocks/productBlocks.tsx): those launchers take the same phone sizes; noted in PR Acceptance notes, not filed. carrier: none"
      ]
    }
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

domain: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