Skip to content

fix: strip claude title spinner frames - #2709

Merged
ogulcancelik merged 7 commits into
masterfrom
akbash/2707-claude-spinner-title
Aug 12, 2026
Merged

fix: strip claude title spinner frames#2709
ogulcancelik merged 7 commits into
masterfrom
akbash/2707-claude-spinner-title

Conversation

@akbash-bot

@akbash-bot akbash-bot commented Aug 12, 2026

Copy link
Copy Markdown
Collaborator

Summary

  • add Claude Code 2.1.228’s four half-circle spinner frames to the existing binary-owned terminal-title activity glyph set
  • verify terminal_title_stripped removes each frame
  • leave bundled and website detection manifests unchanged
  • remove the manifest-owned title-glyph and title-policy architecture previously introduced by this PR

Checks

  • focused title stripping test
  • just check
  • reviewer and simplifier passes

refs #2707

@coderabbitai

coderabbitai Bot commented Aug 12, 2026

Copy link
Copy Markdown

Review Change Stack

Note

Reviews paused

It looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the reviews.auto_review.auto_pause_after_reviewed_commits setting.

Use the following commands to manage reviews:

  • @coderabbitai resume to resume automatic reviews.
  • @coderabbitai review to trigger a single review.

Use the checkboxes below for quick actions:

  • ▶️ Resume reviews
  • 🔍 Trigger review
📝 Walkthrough

Walkthrough

Claude detection now recognizes four additional half-circle spinner glyphs. Terminal title stripping also recognizes these glyphs. Configuration versions and tests were updated.

Changes

Claude spinner glyph support

Layer / File(s) Summary
Expand Claude working-state detection
src/detect/manifests/claude.toml, website/agent-detection/claude.toml, src/detect/manifest/tests.rs
Claude working-state regexes now match , , , and . Both configuration versions increment to 2026.08.12.2. Tests verify classification and visibility.
Recognize Claude activity glyphs
src/terminal/title.rs
Terminal activity-glyph stripping recognizes the four additional half-circle glyphs, with matching test coverage.

Estimated code review effort: 1 (Trivial) | ~5 minutes

Possibly related issues

Possibly related PRs

  • herdrdev/herdr#2632 — Also changes terminal title normalization and activity-glyph handling.
🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 38.64% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
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.
Title check ✅ Passed The title clearly summarizes the main change: stripping Claude terminal title spinner frames.
Description check ✅ Passed The description directly describes the spinner stripping, manifest updates, tests, and validation performed.
✨ Finishing Touches 💡 1
📝 Generate docstrings 💡
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch akbash/2707-claude-spinner-title

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

@kangal-bot kangal-bot added the ai-review Trigger automated AI reviews for pull requests admitted by the PR gate label Aug 12, 2026
@ogulcancelik

Copy link
Copy Markdown
Collaborator

@akbash-bot instead of hard coding claude glyphs, could we use the bundled/downloaded manifest which has regex for those ? in that why strip will be attached to manifests so both can be updated at the same time. wdyt ?

@akbash-bot

Copy link
Copy Markdown
Collaborator Author

Yes — I think the manifest is the better owner, especially because downloaded manifests can then track agent UI changes without a Herdr release.

I would not infer stripping from the existing osc_title_working rule itself: that regex also encodes detection semantics/anchoring and may evolve independently. I’d add an explicit compiled manifest field such as terminal_title_strip_prefix, apply it for the pane’s known agent, and update it alongside the OSC rule. (The current Claude rule is 25D0–25D1; it should cover 25D0–25D3 for all four frames.)

One important detail: manifest reload/update should recompute derived stripped titles and publish any resulting revision/event change, otherwise an idle pane could expose a new derived value without notifying subscribers. So this is broader than the one-line allowlist fix, but it gives us the right ownership and hot-update behavior. I’m in favor of revising the PR that way.

@ogulcancelik

Copy link
Copy Markdown
Collaborator

@akbash-bot agreed then. please do a preflight and feel free to chance pr's direction in a kiss way.

@akbash-bot
akbash-bot force-pushed the akbash/2707-claude-spinner-title branch from 423ebf1 to 08a75a9 Compare August 12, 2026 12:15
@akbash-bot akbash-bot changed the title fix: strip new claude spinner title glyphs fix: source title activity glyphs from manifests Aug 12, 2026
@greptile-apps

greptile-apps Bot commented Aug 12, 2026

Copy link
Copy Markdown

Greptile Summary

This PR moves Claude title-spinner handling into the binary-owned terminal-title stripping logic.

  • Adds Claude Code 2.1.228’s four half-circle spinner frames to the recognized activity glyph set.
  • Extends the focused stripping test to cover all four frames.
  • Leaves the abandoned manifest-owned title-glyph and regex architecture removed.

Confidence Score: 5/5

The PR appears safe to merge.

No blocking failure remains; both previously reported regex-validation issues are invalid at current HEAD because the manifest-owned title regex field and its runtime path were removed.

Important Files Changed

Filename Overview
src/terminal/title.rs Adds four Claude spinner glyphs to title normalization and verifies each with focused test coverage.

Reviews (8): Last reviewed commit: "fix: keep claude detection manifest unch..." | Re-trigger Greptile

Comment thread scripts/agent_detection_manifest_check.py Outdated

@coderabbitai coderabbitai 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.

Actionable comments posted: 1


ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 09bfb177-fc56-4c84-8347-5dd7613e4e13

📥 Commits

Reviewing files that changed from the base of the PR and between 423ebf1 and 08a75a9.

📒 Files selected for processing (10)
  • scripts/agent_detection_manifest_check.py
  • src/app/actions.rs
  • src/app/api.rs
  • src/app/terminal_titles.rs
  • src/detect/manifest.rs
  • src/detect/manifest/tests.rs
  • src/detect/manifest_update.rs
  • src/detect/manifests/claude.toml
  • src/terminal/state.rs
  • src/terminal/title.rs

Comment thread scripts/agent_detection_manifest_check.py Outdated
@akbash-bot
akbash-bot force-pushed the akbash/2707-claude-spinner-title branch from 08a75a9 to 3e30478 Compare August 12, 2026 12:22
Comment thread scripts/agent_detection_manifest_check.py Outdated

@coderabbitai coderabbitai 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.

Actionable comments posted: 1


ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 1961c098-4a64-497d-8e6d-ec7ecef36ac8

📥 Commits

Reviewing files that changed from the base of the PR and between 08a75a9 and 3e30478.

📒 Files selected for processing (2)
  • scripts/agent_detection_manifest_check.py
  • scripts/test_agent_detection_manifest_check.py

Comment thread scripts/agent_detection_manifest_check.py Outdated
@akbash-bot
akbash-bot force-pushed the akbash/2707-claude-spinner-title branch from 3e30478 to 34651dd Compare August 12, 2026 12:35

@coderabbitai coderabbitai 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.

Actionable comments posted: 2


ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 736956d5-0686-495e-ac54-647ab3404788

📥 Commits

Reviewing files that changed from the base of the PR and between 34651dd and ce6eb8e.

📒 Files selected for processing (12)
  • scripts/agent_detection_manifest_check.py
  • scripts/test_agent_detection_manifest_check.py
  • src/app/actions.rs
  • src/app/agent_resume.rs
  • src/app/api.rs
  • src/app/mod.rs
  • src/app/terminal_titles.rs
  • src/detect/manifest.rs
  • src/detect/manifest/tests.rs
  • src/detect/manifests/claude.toml
  • src/terminal/state.rs
  • src/terminal/title.rs
🚧 Files skipped from review as they are similar to previous changes (6)
  • src/detect/manifest/tests.rs
  • src/app/actions.rs
  • scripts/agent_detection_manifest_check.py
  • src/app/api.rs
  • src/detect/manifests/claude.toml
  • src/app/terminal_titles.rs

Comment thread scripts/test_agent_detection_manifest_check.py Outdated
Comment thread src/app/mod.rs Outdated
@ogulcancelik

Copy link
Copy Markdown
Collaborator

@coderabbitai review

@coderabbitai

coderabbitai Bot commented Aug 12, 2026

Copy link
Copy Markdown
✅ Action performed

Review finished.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

@coderabbitai coderabbitai 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.

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
src/terminal/title.rs (1)

1-13: 🗄️ Data Integrity & Integration | 🟠 Major | 🏗️ Heavy lift

Route Claude title stripping through the active manifest.

stripped_terminal_title runs for every terminal. Adding to CLAUDE_ACTIVITY_GLYPHS strips ordinary non-Claude titles such as ◐ production. It also bypasses bundled, downloaded, and override manifest activation or reload. Remove Claude-specific glyphs from this global path and use the active manifest’s terminal_title_strip_prefix. Add regression cases for ordinary symbol-prefixed titles and manifest changes.

Also applies to: 31-43


ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 3f421f8e-27b8-43d1-bab6-57110467da3f

📥 Commits

Reviewing files that changed from the base of the PR and between 34651dd and f88a5ed.

📒 Files selected for processing (4)
  • src/detect/manifest/tests.rs
  • src/detect/manifests/claude.toml
  • src/terminal/title.rs
  • website/agent-detection/claude.toml
🚧 Files skipped from review as they are similar to previous changes (2)
  • src/detect/manifest/tests.rs
  • src/detect/manifests/claude.toml

@ogulcancelik ogulcancelik changed the title fix: source title activity glyphs from manifests fix: strip claude title spinner frames Aug 12, 2026
@ogulcancelik

Copy link
Copy Markdown
Collaborator

CodeRabbit’s manifest-routing suggestion is intentionally not applied. This revision removes that architecture: title glyph ownership remains in the existing binary path so detection manifests stay independently hot-updatable for older engine-2 clients. The local allowlist behavior is pre-existing; this fix only adds Claude’s four new U+25D0–U+25D3 activity frames. Greptile and the independent reviewer found no blocking issue.

@ogulcancelik
ogulcancelik merged commit 49e333a into master Aug 12, 2026
7 checks passed
@kangal-bot kangal-bot removed the ai-review Trigger automated AI reviews for pull requests admitted by the PR gate label Aug 12, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants