Skip to content

feat(mobile): show lightweight running terminal indicators - #7793

Open
Adamulek123 wants to merge 4 commits into
pingdotgg:mainfrom
Adamulek123:feat/mobile-terminal-running-indicator
Open

feat(mobile): show lightweight running terminal indicators#7793
Adamulek123 wants to merge 4 commits into
pingdotgg:mainfrom
Adamulek123:feat/mobile-terminal-running-indicator

Conversation

@Adamulek123

@Adamulek123 Adamulek123 commented Aug 21, 2026

Copy link
Copy Markdown
Contributor

What Changed

  • Show a continuously pulsing terminal status on mobile thread cards and thread headers while terminal sessions are running.
  • Use one shared, low-frequency stepped pulse so animation work stays independent of 120 Hz/360 Hz display refresh rates.
  • Render the same Tabler terminal glyph on iOS and Android, with truthful accessibility labels and reduced-motion support.

Why

Running terminal sessions were easy to miss on mobile, while a conventional continuously interpolated animation could keep repainting at the display refresh rate and waste GPU time. This keeps the requested always-on motion but reduces animation updates to eight opacity steps per roughly 1.9-second cycle and shares the animated value across indicators.

Before:

Screenshot_2026-08-21-13-16-41-506_com.t3tools.t3code.png
Screenshot_2026-08-21-13-11-13-360_com.t3tools.t3code.png

After:

Screenshot_2026-08-21-14-13-50-022_com.t3tools.t3code.png

Screenshot_2026-08-21-14-14-37-567_com.t3tools.t3code.png

Screenshot_2026-08-21-14-14-10-473_com.t3tools.t3code.png

Validation

  • �p run --filter @t3tools/mobile typecheck`n- Targeted �p lint for touched TypeScript files
  • �p fmt --check for touched files and docs
  • �p test run apps/mobile/src/features/terminal/terminalRunningStatus.test.ts (4 passed)
  • git diff --check`n- Device verification not run: Android SDK is unavailable on this Windows host; iOS Simulator requires macOS.

Checklist

  • This PR is small and focused
  • I explained what changed and why
  • I included before/after screenshots for any UI changes
  • I included a video for animation/interaction changes

Generated with GPT-5.6 Sol in the Codex harness through T3 Code.

Note

Add pulsing terminal running indicators to mobile thread list and headers

  • Introduces TerminalRunningIndicator and StatusPulse to show a pulsing terminal icon when terminal sessions are running, respecting the system reduced-motion setting.
  • Adds countRunningTerminalSessions, terminalRunningSessionLabel, and useThreadRunningTerminalCount to provide reactive per-thread running session counts and accessibility labels.
  • Extends AppHeaderIconButton and NativeHeaderToolbar with custom and pulsing capabilities, replacing the old menu-based terminal item with TerminalHeaderMenuButton.
  • Adds --color-terminal-active theme token to light (#0d9488) and dark (rgba(94, 234, 212, 0.9)) variants.
  • Behavioral Change: ThreadGitControls replaces NativeHeaderToolbar.Menu with NativeHeaderToolbar.Custom for the terminal control; existing menu actions remain the same.

Macroscope summarized 03fe4f3.


Note

Medium Risk
Touches native header item types and a shared Reanimated pulse used across lists and toolbars, so header chrome and animation behavior can regress, but it does not change auth or data handling.

Overview
Shows when a thread has a running terminal process on mobile: a teal pulsing terminal glyph on list rows and the thread header, with matching accessibility labels.

Adds a shared StatusPulse (stepped opacity, one loop for all indicators, reduced-motion off) plus --color-terminal-active. The terminal glyph always uses Tabler so iOS and Android match.

The header terminal control is now a custom pulsing button wrapping the existing scripts/sessions menu (NativeHeaderToolbar.Custom). Running counts come from terminal metadata via useThreadRunningTerminalCount.

Reviewed by Cursor Bugbot for commit 03fe4f3. Bugbot is set up for automated code reviews on this repo. Configure here.

@coderabbitai

coderabbitai Bot commented Aug 21, 2026

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 29b1ccea-ba32-4df2-ac64-367e1695c52e

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

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

@github-actions github-actions Bot added vouch:unvouched PR author is not yet trusted in the VOUCHED list. size:L 100-499 changed lines (additions + deletions). labels Aug 21, 2026
@Adamulek123
Adamulek123 marked this pull request as ready for review August 21, 2026 12:19
Comment thread apps/mobile/src/features/threads/ThreadGitControls.tsx
@macroscopeapp

macroscopeapp Bot commented Aug 21, 2026

Copy link
Copy Markdown
Contributor

Approvability

Verdict: Not approved

Macroscope's review found this PR not approvable — This PR introduces a new user-facing feature with new animation components, hooks, and integrations across multiple screens (thread lists, headers). New capabilities with cross-cutting UI changes warrant human review.

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

@Adamulek123
Adamulek123 force-pushed the feat/mobile-terminal-running-indicator branch from 91ed2af to c6dbec7 Compare August 21, 2026 12:36

@cursor cursor Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes using high effort and found 1 potential issue.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit c6dbec7. Configure here.

Comment thread apps/mobile/src/features/threads/ThreadRouteScreen.tsx
@github-actions github-actions Bot added size:XL 500-999 changed lines (additions + deletions). and removed size:L 100-499 changed lines (additions + deletions). labels Aug 21, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:XL 500-999 changed lines (additions + deletions). vouch:unvouched PR author is not yet trusted in the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant