[Bug]: iOS Live Activity compact status text wraps onto two lines when another Live Activity shares the Dynamic Island
Maintainers usually reply within 1 day
Nobody has claimed this yet.
Assessment
- Difficulty
- 2/5
- Estimated time
- 1-3 hours
- Newbie friendliness
- 84/100
- Issue type
- Bug
- Clarity
- Clearly specified
- Activity status
- Active
- Tech stack
- ios, typescript
- Domain
- mobile
Research direction
Start in apps/mobile/src/widgets/AgentActivity.tsx at the compactTrailing Text and compare its modifiers with the banner, watch card, and row texts. Reproduce with AgentActivity sharing the Dynamic Island with another Live Activity, then verify that active, finished, approval, input, and other compact statuses remain on one line and shrink or use an appropriate shorter form.
Written by the indexing model from the issue text.
Description
Before submitting
- I searched existing issues and did not find a duplicate.
- I included enough detail to reproduce or investigate the problem.
Area
apps/mobile
Steps to reproduce
- Enable Live Activities in the T3 Code iOS app and start an agent turn so the
AgentActivityLive Activity appears. - Start a Live Activity from any other app (e.g. a podcast/now-playing, timer, or sports activity) so the Dynamic Island shows two activities side by side.
- Look at the T3 pill while the agent is running ("1 active"), then again after it finishes ("Done").
Expected behavior
The compact trailing status stays on one line, e.g. T3 1 active / T3 Done. If space is tight, it should shrink or fall back to a shorter form, not break across lines.
Actual behavior
The compact trailing label wraps onto a second line:
1 activeshows as1aboveact…Donebreaks in the middle of the word, asDonabovee
The T3 pill still has plenty of empty horizontal space, so the label is wrapping inside a narrow trailing slot, not because the pill is full.
Likely cause
apps/mobile/src/widgets/AgentActivity.tsx (main @ 4ee6bfd5), compactTrailing:
compactTrailing: (
<Text modifiers={[font({ weight: "semibold", size: 11 }), foregroundStyle(tint)]}>
{attentionRow
? attentionRow.phase === "waiting_for_approval"
? "Approval"
: "Input"
: activeLabel}
</Text>
),
This is the only status Text in the file without lineLimit(1); the banner, watch card, and row texts all have it. When iOS gives the trailing region a narrow proposed width (as it does when the island is shared), SwiftUI wraps the text instead of truncating it.
Suggested fix
- Add
lineLimit(1)to thecompactTrailingtext, plusminimumScaleFactor(...)orfixedSize()so it shrinks or takes its natural width instead of truncating or wrapping. - Optionally use a terser compact label: the count only (
1) while running, and the existing phase glyph (checkmark / cross) for Done/Failed, matching whatminimalalready does.Approval/Input/Out of datecan hit the same problem.
Impact
Cosmetic issue
Version or commit
T3 Code iOS 2.0.0; code reference main @ 4ee6bfd5
Environment
iPhone 18 Pro Max, iOS 27.2. Reproduced whenever a second app's Live Activity shares the Dynamic Island.
Screenshots
Running — 1 active wraps to 1 / act… (the other app's activity is blurred):

Finished — Done breaks as Don / e:

- Dominant language
- TypeScript
- Stars
- 24.8k
- Forks
- 6.4k
- Avg merge
- 7h 14m
- Merged PRs (30d)
- 201
Getting set up
Starts the project's dev container in your browser, under your own GitHub account.
- No Dockerfile or Docker Compose file
- Has a pull request template
- Read the contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from pingdotgg/t3code
-
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
Maintainers usually reply within 1 day
-
bug via-triage
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
pingdotgg/t3code#16096 · 1 comment ·
Maintainers usually reply within 1 day
-
bug via-triage
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
pingdotgg/t3code#16090 · 2 comments ·
Maintainers usually reply within 1 day
-
bug via-triage
Difficulty 2/5 1-3 hours Newbie friendliness 67/100
pingdotgg/t3code#15954 · 1 comment ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
Maintainers usually reply within 1 day
All issues in pingdotgg/t3code
Similar issues
-
level/task reporter/qa type/bug
Difficulty 2/5 1-3 hours Newbie friendliness 85/100
wazuh/wazuh-dashboard-plugins#9310 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
cybersemics/treecrdt#267 ·
-
Difficulty 1/5 1-3 hours Newbie friendliness 85/100
wiz-sec-public/backstage-plugin-wiz#16 · 1 comment ·
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
solana-foundation/solana-com#2245 ·
Maintainers usually reply within 1 day