fix: keep background Claude MCP tasks working (#3094)

This commit is contained in:
Can Celik
2026-08-21 21:05:22 +03:00
committed by GitHub
parent 8fe09d5ddf
commit f72a5ef99e
2 changed files with 21 additions and 2 deletions
+1
View File
@@ -7,6 +7,7 @@
- Windows panes now keep bare `cursor-agent` launches detected after Cursor hands off to its bundled Node process. (#3032)
- Oversized Kitty images no longer prevent smaller images shown later in the same pane from rendering. (#3033)
- Claude Code panes now use visible turn, background shell, and background agent activity as working-state fallbacks when OSC titles are unavailable or disabled. (#1630, #2241)
- Claude Code panes now remain working while MCP tasks continue in the background after a turn ends. (#3090)
- Tab bar status commands now remove ESC-prefixed terminal control sequences instead of displaying their sequence bodies as text. (#3001)
- Unix plugin pane commands now default `PWD` to their resolved working directory, so direct popup tools open at explicit `--cwd` paths while preserving caller-provided `PWD` values. (#2984)
+20 -2
View File
@@ -1,7 +1,7 @@
id = "claude"
version = "2026.08.19.1"
version = "2026.08.21.1"
min_engine_version = 2
updated_at = "2026-08-19T00:00:00Z"
updated_at = "2026-08-21T00:00:00Z"
aliases = ["claude-code"]
[[rules]]
@@ -40,6 +40,24 @@ region = "last_non_empty_above_prompt_box"
visible_working = true
line_regex = ['^\s*[\x{002A}\x{00B7}\x{2722}\x{2736}\x{273B}\x{273D}]\s+Waiting for [1-9]\d* background agents? to finish\s*$']
[[rules]]
id = "background_mcp_task_working"
state = "working"
priority = 965
region = "bottom_non_empty_lines(12)"
visible_working = true
# Claude renders activity summaries at column zero; wrapped continuations are indented.
# Keeping that shape prevents user prompt text from impersonating this signal.
regex = ['(?m)^[\x{002A}\x{00B7}\x{2722}\x{2736}\x{273B}\x{273D}][ \t]+\S[^\n]*?(?:\n[ \t]+[^\n]*?){0,3}·(?:[ \t]+|\n[ \t]*)[1-9]\d*(?:[ \t]+|\n[ \t]*)MCP(?:[ \t]+|\n[ \t]*)tasks?(?:[ \t]+|\n[ \t]*)still(?:[ \t]+|\n[ \t]*)running[ \t]*$']
not = [
{ contains = ["do you want to proceed?"] },
{ contains = ["esc to cancel"] },
{ contains = ["waiting for permission"] },
{ contains = ["do you want to allow this connection?"] },
{ contains = ["tab to amend"] },
{ contains = ["ctrl+e to explain"] },
]
[[rules]]
id = "btw_overlay_working"
state = "working"