feat(dashboard): mobile / narrow-viewport layout for agent run view #1007

Merged
reviewer merged 1 commit from dev/975 into main 2026-05-09 08:45:50 +00:00
Collaborator

Mobile-responsive layout for the agent run view (TaskDetail), targeting 375 px / 640 px / 960 px breakpoints.

Test plan

  • At ≤ 959 px: status pill appears first in header; "Workspace" button opens bottom sheet; Artifacts tab is absent from tab bar
  • Workspace bottom sheet (slides up from bottom) contains ArtifactPanel + token/cost meters in footer
  • At ≥ 960 px: original two-tab layout with Artifacts tab is unchanged
  • At ≤ 639 px: ToolCard in approval cards defaults collapsed regardless of state; expands on tap
  • Fleet cards: StatusPill uses default (full) text size; card button meets 44 px tap-target minimum
  • Switching from ≥ 960 px to < 960 px while on Artifacts tab auto-resets to Timeline

Closes #975

Mobile-responsive layout for the agent run view (`TaskDetail`), targeting 375 px / 640 px / 960 px breakpoints. ## Test plan - At ≤ 959 px: status pill appears first in header; "Workspace" button opens bottom sheet; Artifacts tab is absent from tab bar - Workspace bottom sheet (slides up from bottom) contains `ArtifactPanel` + token/cost meters in footer - At ≥ 960 px: original two-tab layout with Artifacts tab is unchanged - At ≤ 639 px: `ToolCard` in approval cards defaults collapsed regardless of state; expands on tap - Fleet cards: `StatusPill` uses default (full) text size; card button meets 44 px tap-target minimum - Switching from ≥ 960 px to < 960 px while on Artifacts tab auto-resets to Timeline Closes #975
dev self-assigned this 2026-05-08 22:51:18 +00:00
feat(dashboard): mobile / narrow-viewport layout for agent run view (#975)
Some checks failed
qa / sql-layer-check (pull_request) Successful in 9s
qa / i18n-string-check (pull_request) Successful in 12s
qa / dockerfile (pull_request) Successful in 12s
qa / db-schema (pull_request) Successful in 14s
qa / qa-1 (pull_request) Failing after 43s
qa / qa (pull_request) Failing after 0s
2841fb3673
- Extends Drawer with side="bottom" (bottom sheet, max-h 85dvh, slide-up animation)
- TaskDetail: on ≤959 px, status pill is primary chrome in header; Workspace button opens bottom sheet with ArtifactPanel + token/cost meters in footer; Artifacts tab hidden on mobile (accessed via sheet instead)
- ToolCard: all cards default-collapsed on < 640 px to save vertical real estate
- FleetCard: removes text-[10px] override on StatusPill so pill reads at full size; min-h-[44px] tap target on card button

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
dev requested review from reviewer 2026-05-08 22:54:19 +00:00
dev force-pushed dev/975 from 2841fb3673
Some checks failed
qa / sql-layer-check (pull_request) Successful in 9s
qa / i18n-string-check (pull_request) Successful in 12s
qa / dockerfile (pull_request) Successful in 12s
qa / db-schema (pull_request) Successful in 14s
qa / qa-1 (pull_request) Failing after 43s
qa / qa (pull_request) Failing after 0s
to d9b91ef4b7
All checks were successful
qa / sql-layer-check (pull_request) Successful in 7s
qa / i18n-string-check (pull_request) Successful in 9s
qa / dockerfile (pull_request) Successful in 10s
qa / db-schema (pull_request) Successful in 10s
qa / qa-1 (pull_request) Successful in 1m11s
qa / qa (pull_request) Successful in 0s
2026-05-09 08:41:00 +00:00
Compare
reviewer approved these changes 2026-05-09 08:45:40 +00:00
reviewer left a comment

All 5 ACs verified, CI green.

Nit (non-blocking): workspaceOpen is never reset when isMobile transitions true → false. If a user opens the bottom sheet then widens the viewport past 640 px, the drawer stays open on desktop. Add if (!isMobile) setWorkspaceOpen(false) to the existing isMobile effect to close it on breakpoint crossing.

All 5 ACs verified, CI green. Nit (non-blocking): `workspaceOpen` is never reset when `isMobile` transitions `true → false`. If a user opens the bottom sheet then widens the viewport past 640 px, the drawer stays open on desktop. Add `if (!isMobile) setWorkspaceOpen(false)` to the existing `isMobile` effect to close it on breakpoint crossing.
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
2 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
charles/claude-hooks!1007
No description provided.