Skip to content

Subtle pulse animation on sidebar tabs when their session is emitting output #60

@AThraen

Description

@AThraen

Generated from a competitor-analysis pass (TerminalConductor, May 2026).

Summary

When a session is actively emitting PTY output, the sidebar entry's accent stripe softly pulses, giving a visual cue that the session is "doing something" — distinct from the alert/waiting badges, which only fire on detected prompts.

Motivation

Today the only signal that a background session is active is the alert badge (AlertDetector fires on detected prompts). Long-running output — a test run, a build, a streaming agent reply — gives no visual signal until it finishes. A pulse fills that gap without competing with the alert badge.

Proposed behaviour

Trigger

  • TerminalBridge.RawOutputReceived already fires on every PTY chunk.
  • Per-session, accumulate bytes emitted in a rolling 500ms window. If > ~32 bytes/500ms (tunable), the session is "emitting".
  • Stop emitting state when no output for >500ms.

Animation

  • Target: the existing 4px accent stripe on the sidebar entry.
  • A Storyboard animates Opacity 0.55 → 1.0 → 0.55 over ~1.0s, looping while emitting.
  • Begin() on first transition to emitting; Stop() on transition to idle.
  • Hard-skip for the active session — we can see its output ourselves; pulsing its own sidebar entry is visual noise.

Settings

  • Add AppSettings.ShowActivityPulse (default true).
  • Pulses also disabled while a session has NeedsAttention == true — alert badge wins, no need for both.

Out of scope

  • Pulse on the terminal pane itself (sidebar only to start).
  • Pulse intensity based on output volume (binary on/off is plenty).
  • Differentiating agent-emitting from shell-emitting.

Inspiration

TerminalConductor's "Activity pulses" — subtle tab animation while a session emits output. See https://terminalconductor.com/.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions