Skip to content

perf(app): remove session progress whip bar#275

Merged
Astro-Han merged 1 commit into
devfrom
worktree-claude+remove-progress-whip
Apr 27, 2026
Merged

perf(app): remove session progress whip bar#275
Astro-Han merged 1 commit into
devfrom
worktree-claude+remove-progress-whip

Conversation

@Astro-Han

@Astro-Han Astro-Han commented Apr 27, 2026

Copy link
Copy Markdown
Owner

Summary

Remove the whip progress bar at the top of the session header. Sidebar session indicator and header spinner remain as the working indicators.

Why

The whip bar used a clip-path infinite CSS animation with will-change: clip-path, which forces a permanent compositor layer per active session and keeps GPU work alive whenever a session is in the running state. It is also redundant with the sidebar dot/spinner and the spinner next to the title, so removing it reduces visual noise without losing any signal. Same class of cause as #262 (sustained idle GPU/CPU from infinite session animations).

Related Issue

No tracked issue. Follow-up to #262.

How To Verify

cd packages/app
bunx tsgo -b
bun test --preload ./happydom.ts ./src

Manual check performed:

  • Started bun run dev:desktop, opened a session, sent a message that triggered an LLM turn.
  • Confirmed the top whip bar no longer renders in the session header.
  • Confirmed the sidebar session item spinner and the header title spinner still animate while running and stop when the turn completes.
  • Confirmed document.querySelector('[data-component="session-progress"]') returns null while a session is running.

Screenshots or Recordings

Not included. Pure removal of an animated element; verified via DOM check and manual observation.

Checklist

  • I linked the related issue, or stated why there is no issue
  • This PR has type, scope, and priority labels, or I requested maintainer labeling
  • I listed the relevant verification steps, including tests when behavior changed
  • I manually checked visible UI or copy changes when needed, with screenshots or recordings
  • I considered macOS and Windows impact for desktop, packaging, updater, signing, paths, shell, or permissions changes
  • I called out docs, release notes, dependencies, permissions, credentials, deletion behavior, or generated/local file changes when relevant
  • I am targeting dev, and my PR title and commit messages use Conventional Commits in English

Summary by CodeRabbit

  • Changes
    • Removed the animated session progress bar component from the message timeline interface.
    • Simplified the session title header by removing associated progress-tracking logic and measurement overhead.

Removes the top progress bar in the session header. The bar used a clip-path infinite animation with `will-change: clip-path`, which forced a permanent compositor layer per active session. Sidebar and header spinners remain as the working indicators.
@coderabbitai

coderabbitai Bot commented Apr 27, 2026

Copy link
Copy Markdown
Contributor

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: 0e2566b0-3b38-4835-943d-519b1cd057e6

📥 Commits

Reviewing files that changed from the base of the PR and between dc67400 and 1a30ce7.

📒 Files selected for processing (2)
  • packages/app/src/index.css
  • packages/app/src/pages/session/message-timeline.tsx
💤 Files with no reviewable changes (2)
  • packages/app/src/index.css
  • packages/app/src/pages/session/message-timeline.tsx
📜 Recent review details
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (12)
  • GitHub Check: smoke-macos-arm64
  • GitHub Check: unit-windows-desktop
  • GitHub Check: unit-windows-opencode-server-tools
  • GitHub Check: unit-windows-app
  • GitHub Check: unit-windows-opencode-session
  • GitHub Check: unit-opencode
  • GitHub Check: unit-windows-opencode-config-project
  • GitHub Check: typecheck
  • GitHub Check: unit-desktop
  • GitHub Check: unit-app
  • GitHub Check: analyze-js-ts
  • GitHub Check: e2e-artifacts

📝 Walkthrough

Walkthrough

Removes session progress bar functionality by deleting CSS animations and component styles from the stylesheet, and eliminating progress tracking logic, state management, resize-observer, and related UI rendering from the message-timeline component.

Changes

Cohort / File(s) Summary
Session Progress Bar Styling
packages/app/src/index.css
Removes CSS animation definition session-progress-whip and all component-scoped styles for data-component="session-progress" and data-component="session-progress-bar", including layout, visibility transitions, and animated clip-path effect.
Progress Bar Logic & UI
packages/app/src/pages/session/message-timeline.tsx
Removes progress-bar behavior: eliminates pace computation, bar state store, resize-observer logic, and the session-progress component UI that conditionally rendered while workingStatus() !== "hidden"; simplifies header markup by removing ref callback used for progress timing.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Possibly related PRs

  • fix: expire stale session running state #262: Changes session message-timeline's handling of the session "working" state and related UI state management; this PR removes the progress-bar logic that was integrated with working status detection.

Suggested labels

enhancement, desktop, ui

Poem

🐰 Whip away the progress bar, no more timing animations,
Simplify the session flow with smoother transitions,
Hide the clip-path dancing, let the work speak plain,
Progress without the flourish—elegance remains!

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly summarizes the main change: removing the session progress whip bar animation, which directly corresponds to the CSS and component removal in the changeset.
Description check ✅ Passed The description follows the template comprehensively, including summary, rationale, related issue context, detailed verification steps with manual checks, and a completed checklist addressing all required considerations.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
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.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch worktree-claude+remove-progress-whip

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

@Astro-Han Astro-Han added enhancement New feature or request ui Design system and user interface platform Electron shell, OS integration, packaging, updater, signing, paths, and permissions P2 Medium priority labels Apr 27, 2026

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Code Review

This pull request removes the session progress bar feature, including its CSS animations, the pace calculation logic, and the associated UI components and resize observers in the MessageTimeline component. I have no feedback to provide.

@Astro-Han Astro-Han merged commit 6bc7850 into dev Apr 27, 2026
26 checks passed
@Astro-Han Astro-Han deleted the worktree-claude+remove-progress-whip branch April 27, 2026 13:58
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request P2 Medium priority platform Electron shell, OS integration, packaging, updater, signing, paths, and permissions ui Design system and user interface

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant