# fix\(mobile\): only make work rows expandable when the body adds something · PR \#10210 · pingdotgg/t3code

[View on GitCafe](https://git.cafe/pingdotgg/t3code/pull/10210)

Repository: [pingdotgg/t3code](https://git.cafe/pingdotgg/t3code)

Visibility: public

State: merged

Source repository: pingdotgg/t3code

Source branch: t3code/mobile-work-row-expand-only-with-extra

Target branch: t3code/mobile-working-pill-spacing

Head commit: e4d0f1d58a4424c17f0ffb5335da27cd66fa21ae

[Discussion and reviews](https://git.cafe/pingdotgg/t3code/pull/10210)

[Commits](https://git.cafe/pingdotgg/t3code/pull/10210/commits?format=markdown)

[Files changed](https://git.cafe/pingdotgg/t3code/pull/10210/diffs?format=markdown)

## Description

---

Stacked on #10209.

## Problem

Every work row with a `command` or `detail` got a chevron, so runtime warnings, background-task summaries, and short commands opened to repeat the one line they already showed. Web only marks a row expandable when its body adds something beyond the visible label (`PlainWorkEntryRow.canExpand`); mobile checked field presence.

## Fix

Decide `canExpand` against the collapsed label the row actually renders (`workEntryRowLabel`, now shared between the feed model and `ThreadWorkLogRow` so they cannot drift). Multi-line bodies stay expandable because the collapsed row truncates them to one line; MCP payloads and changed-file lists always do. Cheap field checks run first so large tool outputs are not serialized per row (the existing deferred-expansion test guards that).

## Verification

- `vp test run apps/mobile/src/lib/threadActivity.test.ts` — 95 passed, with new cases for a task summary that is its own detail, a runtime warning, a multi-line task report, and a command whose output differs from the command.
- `tsc --noEmit` for `apps/mobile`, targeted lint and format.
- Simulator, same seeded group on `main` and this branch: the "Run mobile threadActivity tests" and "git status --short" rows lose their chevrons; the multi-line `ffmpeg` command and the file read keep theirs.

![Before: every row in the group has a chevron. After: only rows with more to show have one.](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/7623c70a64e2032e/pair-rows.png)

Implemented by Claude Fable 5 in the Claude Code harness.

