OSC title not emitting idle marker after turn ends (breaks herdr status detection)
Summary
After a Claude Code update on 2026-06-15, the OSC terminal title no longer emits the ✳ (U+2733) idle marker when a turn completes. This causes herdr (terminal workspace manager) to show agents as permanently "working" after their first tool call.
Reproduction
- Run Claude Code inside herdr (
HERDR_ENV=1) - Submit a prompt that triggers tool use
- Wait for the turn to complete (agent returns to prompt)
- Observe:
herdr agent explain <target>still showsstate: working
Expected behavior
When the turn ends and Claude Code returns to the idle prompt (❯), the OSC title should switch from the braille spinner prefix (⠂, ⠄, etc.) to the ✳ prefix, allowing herdr's osc_title_idle detection rule to fire.
Evidence
herdr's Claude detection manifest (~/.local/state/herdr/agent-detection/remote/claude.toml, version 2026.06.10.3) has:
[[rules]]
id = "osc_title_working"
state = "working"
priority = 1100
region = "osc_title"
regex = ['^[\x{2800}-\x{28FF}] ']
[[rules]]
id = "osc_title_idle"
state = "idle"
priority = 250
region = "osc_title"
regex = ['^\x{2733} ']
The working rule fires correctly. The idle rule never fires because the ✳ title is never emitted after the turn ends.
herdr agent explain output when agent is idle at prompt:
agent: claude
state: working
manifest: remote:claude.toml 2026.06.10.3
rule: osc_title_working (region=osc_title priority=1100)
evidence: "⠂ <last task description>"
Environment
- Claude Code: latest as of 2026-06-15
- herdr: 0.7.0
- macOS Darwin 25.5.0
- herdr integration v6 installed (
herdr integration install claude)
Notes
- The
live_prompt_boxrule (priority 950, matches❯in prompt region) should also detect idle, but appears not to fire — possibly the prompt box region isn't being matched either. - This worked correctly prior to today's Claude Code update.
This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗