Skip to content

fix(mobile): show Agent behavior icon on Android - #12316

Merged
juliusmarminge merged 1 commit into
mainfrom
t3code/android-icon-coverage
Sep 17, 2026
Merged

juliusmarminge merged 1 commit into
mainfrom
t3code/android-icon-coverage

Conversation

@juliusmarminge

@juliusmarminge juliusmarminge commented Sep 17, 2026

Copy link
Copy Markdown
Member

Android Settings renders the Agent behavior row without an icon because text.alignleft has no Android Tabler mapping. The mobile symbol wrapper accepts SF Symbols that its Android implementation would silently render as null.

Add the missing Android mappings found by narrowing the symbol name type to icons this wrapper can render. Validate SF and Material names against their platform types, share that contract with iOS, and check raw native-menu image strings before passing them to the icon component.

These crops are from one Pixel 10 Pro emulator, the same T3 Code Dev client, and one disposable connected environment. The base and PR head use the same viewport and Settings state.

Before, on main (592021f0080):

Android Server settings before, Agent behavior has a blank icon slot

After, on this PR (7c1a6563d4a):

Android Server settings after, Agent behavior has a text alignment icon

Mobile typecheck and targeted lint pass. React Doctor reports no issues in the changed files. The Android development client built locally and was verified against the disposable environment.

Model: withheld by request. Harness: Codex.

Summary by CodeRabbit

  • New Features

    • Added Android icon support for additional arrows, devices, microphones, pencils, and text-alignment actions.
    • Improved handling of shared icon names across iOS and Android platforms.
  • Bug Fixes

    • Prevented unsupported menu icons from rendering incorrectly on Android.
    • Improved fallback behavior when an icon cannot be resolved.

@github-actions github-actions Bot added vouch:trusted PR author is trusted by repo permissions or the VOUCHED list. size:M 30-99 changed lines (additions + deletions). labels Sep 17, 2026
@github-actions

Copy link
Copy Markdown
Contributor

Thread transfer impact

✅ Thread transfer remains within every enforced ceiling.

ℹ️ The exact PR base did not have a successful artifact. Baseline uses the latest successful main measurement shown below.

Provider Metric Main baseline This PR Impact PR ceiling
Codex Total thread wire 13.5 KiB 13.5 KiB +11 B (+0.1%) 15.1 KiB
Codex Thread snapshot wire 7.1 KiB 7.1 KiB −3 B (−0.0%) 7.3 KiB
Codex Live turn WebSocket wire 6.5 KiB 6.5 KiB +14 B (+0.2%) 7.8 KiB
Codex Live turn WebSocket decoded 56.3 KiB 56.3 KiB 0 B (0.0%) 66.4 KiB
Codex Live turn messages 10 10 0 (0.0%) 21
Claude Total thread wire 13.5 KiB 13.5 KiB −12 B (−0.1%) 15.1 KiB
Claude Thread snapshot wire 7.1 KiB 7.1 KiB +2 B (+0.0%) 7.3 KiB
Claude Live turn WebSocket wire 6.4 KiB 6.4 KiB −14 B (−0.2%) 7.8 KiB
Claude Live turn WebSocket decoded 57.0 KiB 57.0 KiB 0 B (0.0%) 66.4 KiB
Claude Live turn messages 9 9 0 (0.0%) 21

Baseline: 4749035 · PR result: 7c1a656 · Source CI: success

Scenario and decoded snapshot size

10 historical turns, 5 command tools per turn, 878.9 KiB retained MCP result per historical turn, and a 1.05 MiB retained result in the measured turn.

  • Codex decoded thread snapshot: 113.9 KiB
  • Claude decoded thread snapshot: 114.6 KiB

Updated in place by a trusted workflow. PR artifacts are strictly validated and never executed.

@juliusmarminge
juliusmarminge marked this pull request as ready for review September 17, 2026 21:00
@macroscopeapp

macroscopeapp Bot commented Sep 17, 2026

Copy link
Copy Markdown
Contributor

Approvability

Verdict: Approved at 7c1a656

Macroscope's review found this PR approvable — This is a focused Android icon-rendering fix confined to the mobile symbol wrapper and menu presentation. It adds supported icon mappings and compile-time narrowing without changing product defaults, workflows, data contracts, or other production behavior.

You can add or adjust custom eligibility rules. Learn more.

@juliusmarminge
juliusmarminge merged commit 6deac7a into main Sep 17, 2026
27 of 28 checks passed
@juliusmarminge
juliusmarminge deleted the t3code/android-icon-coverage branch September 17, 2026 21:03
@coderabbitai

coderabbitai Bot commented Sep 17, 2026

Copy link
Copy Markdown

Review Change StackReview Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Team

Run ID: 4516b702-599a-4933-88d5-e1fdd68b9917

📥 Commits

Reviewing files that changed from the base of the PR and between 675869d and 7c1a656.

📒 Files selected for processing (4)
  • apps/mobile/src/components/AppSymbol.ios.tsx
  • apps/mobile/src/components/AppSymbol.tsx
  • apps/mobile/src/components/EnvironmentMachineSymbol.tsx
  • apps/mobile/src/components/MaterialMenuPopup.android.tsx

Included review availability: Your plan provides up to 10 included reviews per hour; 1 remains after this review.


📝 Walkthrough

Walkthrough

The mobile symbol system now uses shared symbol types, expanded Android icon mappings, and runtime name validation. iOS and environment symbol consumers use the shared type. Android rendering prioritizes Material mappings before SF mappings.

Changes

App symbol support

Layer / File(s) Summary
Symbol mappings and shared contracts
apps/mobile/src/components/AppSymbol.tsx
Added Android icon mappings. The component now defines supported symbol names, shared view props, and runtime name validation.
Platform symbol rendering
apps/mobile/src/components/AppSymbol.tsx, apps/mobile/src/components/AppSymbol.ios.tsx, apps/mobile/src/components/EnvironmentMachineSymbol.tsx
Android rendering checks Material mappings before SF mappings. iOS and environment symbols use the shared symbol types.
Menu icon validation
apps/mobile/src/components/MaterialMenuPopup.android.tsx
Menu icons render only when action image names pass isAppSymbolName.

Priority: ⬇️ Low

Estimated code review effort: 2 (Simple) | ~10 minutes

Change: Bug fix

Merge Risk: ⚪ Minimal · up to 7c1a6

The Android icon change has no remaining actionable risk identified and is ready to merge.

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 40.00% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 5 functions across 4 files. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly identifies the mobile Android fix and the main user-visible change: showing the Agent behavior icon.
Description check ✅ Passed The description explains what changed, why it was needed, the UI result, screenshots, and validation performed. It does not include the template's explicit section headings or checklist, but the requi…
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
  • Fix all pre-merge checks with AI
✨ Finishing Touches 💡 1
📝 Generate docstrings 💡
  • Commit to this branch
  • Create a new PR
🧪 Generate unit tests (beta)
  • Commit to this branch
  • Create a new PR

Comment @coderabbitai help to get the list of available commands.

github-actions Bot added a commit to omarcresp/t3code-flake that referenced this pull request Sep 18, 2026
## What's Changed
* fix(web): keep thoughts and failed tool calls in one activity row by @maria-rcks in pingdotgg/t3code#12270
* fix(web): avoid reopening settled threads when adding projects by @dominic-r in pingdotgg/t3code#11804
* feat(mobile): make Settings easier to navigate and scope by @juliusmarminge in pingdotgg/t3code#12272
* fix(mobile): prevent overlapping text and UI on Android chat messages by @Exotic209093 in pingdotgg/t3code#11611
* feat(web): pull request files can be marked as viewed by @yordis in pingdotgg/t3code#7721
* fix(web): keep composer banners compact and readable by @Bil0000 in pingdotgg/t3code#12166
* fix(web): collapse thoughts within tool groups by @maria-rcks in pingdotgg/t3code#12302
* fix(usage): preserve saved totals after transcript cleanup by @maria-rcks in pingdotgg/t3code#12304
* fix(mobile): show Agent behavior icon on Android by @juliusmarminge in pingdotgg/t3code#12316

## New Contributors
* @Exotic209093 made their first contribution in pingdotgg/t3code#11611

**Full Changelog**: pingdotgg/t3code@v0.0.43-nightly.20260917.1866...v0.0.43-nightly.20260917.1880

Upstream release: https://github.com/pingdotgg/t3code/releases/tag/v0.0.43-nightly.20260917.1880
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:M 30-99 changed lines (additions + deletions). vouch:trusted PR author is trusted by repo permissions or the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant