[Bug]: iOS Live Activity compact status text wraps onto two lines when another Live Activity shares the Dynamic Island
メンテナーはふだん 1 日以内に返信
まだ誰も着手していません。
評価
- 難易度
- 2/5
- 見積もり時間
- 1〜3時間
- 初心者へのやさしさ
- 84/100
- issue の種類
- バグ
- 明瞭さ
- 明確に書かれている
- 活発さ
- 活発
- 技術スタック
- ios, typescript
- 領域
- mobile
調査の方向性
apps/mobile/src/widgets/AgentActivity.tsx の compactTrailing Text から始め、その modifiers をバナー、watch card、row のテキストと比較します。AgentActivity が別の Live Activity と Dynamic Island を共有する状態で再現し、その後、アクティブ、完了、承認、入力、その他のコンパクトなステータスが 1 行に収まり、縮小されるか適切な短い形式を使用することを確認します。
索引モデルが issue の本文から書いたものです。
説明
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:

- 主要言語
- TypeScript
- スター
- 24.8k
- フォーク
- 6.4k
- 平均マージ
- 10時間 8分
- マージ済み PR(30日)
- 323
環境構築
このプロジェクトの開発コンテナを、あなたの GitHub アカウントでブラウザ上に起動します。
- Dockerfile・Docker Compose ファイルなし
- プルリクエストのテンプレートあり
- コントリビューションガイドを読む
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
pingdotgg/t3code のほかの issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
メンテナーはふだん 1 日以内に返信
-
bug needs-triage
難易度 2/5 1〜3時間 初心者へのやさしさ 62/100
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 73/100
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 75/100
メンテナーはふだん 1 日以内に返信
pingdotgg/t3code の issue をすべて見る
似ている issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 66/100
getsentry/sentry-conventions#732 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信
-
status:in-linear status:team-assigned team:nodes
難易度 2/5 1〜3時間 初心者へのやさしさ 76/100
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 82/100
motiondivision/motion#3955 ·
メンテナーはふだん 1 日以内に返信
-
enhancement
難易度 2/5 1〜3時間 初心者へのやさしさ 68/100
equinor/prisma-decision-web#919 ·
メンテナーはふだん 1 日以内に返信
-
難易度 1/5 1時間未満 初心者へのやさしさ 83/100