Skip to content

fix(mobile): stabilize subagent card activity#4590

Merged
iscekic merged 1 commit into
mainfrom
fix/mobile-subagent-card-activity
Jul 16, 2026
Merged

fix(mobile): stabilize subagent card activity#4590
iscekic merged 1 commit into
mainfrom
fix/mobile-subagent-card-activity

Conversation

@iscekic

@iscekic iscekic commented Jul 16, 2026

Copy link
Copy Markdown
Contributor

Summary

Keeps every subagent card at a stable three-row content height while permanently showing the subagent name, task name, and latest child-session tool activity for the full parent task lifecycle (pending/running/completed/error).

  • Derives a small immutable presentation model (getChildSessionCardState) from the parent task tool part and child-session messages.
  • The selector scans child assistant messages newest-first and returns the latest tool part regardless of status, so status transitions never blank the activity row.
  • The card always renders all three one-line rows (numberOfLines={1}), only the text changes — never the structure or height.
  • Preserves existing border, status badge, icons, press behavior, accessibility role, and transcript navigation, including for an errored parent task when its metadata still has sessionId.

Feature-state coverage

State Coverage
Happy Selector tests cover newest-tool selection and completed/error retention of the third row
Empty Selector test covers pending/empty input+messages and fixed fallback copy (Subagent / Task / Waiting for activity); CTA is structurally absent (no transcript destination yet)
Unhappy, retryable Not applicable — this card performs no fetch/mutation; child transcript hydration retry is owned by the existing sheet (unchanged)
Unhappy, non-retryable Selector test proves an errored child tool remains the latest activity; task-session extraction test covers parent-error metadata retaining navigation when sessionId exists

Testing

  • apps/mobile: pnpm format, pnpm typecheck, pnpm lint, pnpm check:unused, pnpm test (861 tests passing), pnpm format:check — all green on latest head.
  • git diff --check clean from repo root.

E2E note

On-device Maestro verification hit a login/preflight boundary in this worktree's simulator session (the email OTP request/verify flow did not progress past the sign-in screen despite the backend OTP/token endpoints themselves responding successfully in earlier passes in this same session, and despite a validated Metro/API provenance preflight). This is classified as a test-environment/login blocker rather than a product failure: no acceptance-flow behavior was exercised or found failing. Automated coverage (selector + task-session extraction tests) covers every applicable feature state. Documenting per the accepted E2E exception process.

@iscekic iscekic self-assigned this Jul 16, 2026
@iscekic iscekic merged commit a4a1d3a into main Jul 16, 2026
19 checks passed
@iscekic iscekic deleted the fix/mobile-subagent-card-activity branch July 16, 2026 16:39
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants