Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

[Bug]: iOS Live Activity compact status text wraps onto two lines when another Live Activity shares the Dynamic Island

Open Beginner friendly
#15,682 1 comment 0 reactions 0 assignees View on GitHub

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

bug via-triage
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
  1. Enable Live Activities in the T3 Code iOS app and start an agent turn so the AgentActivity Live Activity appears.
  2. 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.
  3. 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 active shows as 1 above act…
  • Done breaks in the middle of the word, as Don above e

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 the compactTrailing text, plus minimumScaleFactor(...) or fixedSize() 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 what minimal already does. Approval / Input / Out of date can 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):

1 active wraps

Finished — Done breaks as Don / e:

Done wraps

Dominant language
TypeScript
Stars
24.8k
Forks
6.4k
Avg merge
7h 14m
Merged PRs (30d)
201

Getting set up

Open in Codespaces

Starts the project's dev container in your browser, under your own GitHub account.

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from pingdotgg/t3code

All issues in pingdotgg/t3code

Similar issues

More TypeScript issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.