Claude Code 2.1.179 Fixes the Background-Task Lies That Turn Agent UX Into Cost Risk

The headline on GitHub issue #68642 is dry — "Background agent continues running after completing" — but buried in it is the sentence that makes this release worth reading: the reporter attributes "several hundred USD" in unexpected API charges to the gap between what Claude Code said was happening and what was actually running. That is not a UX bug. That is a billing event. Anthropic shipped Claude Code v2.1.179 on June 16 with fixes that touch exactly this failure mode, along with WSL2 scroll regressions, stale Remote Control state, and sandbox glob behavior that could make the Bash tool description enormous enough to render a session unusable. This is a maintenance release in name. In practice, it is a patch set for the operational trust contract that determines whether you can safely walk away from a background coding agent.

Background work is where coding agents stop being chatbots and start acting like infrastructure. A foreground conversation where a spinner lies is annoying. A background agent where the "done" signal is stale is expensive, potentially destructive, and nearly impossible to audit after the fact. The release notes for v2.1.179 include two fixes that sound modest until you read them as part of the same operational story: remote session background tasks no longer appear stuck as "still running" between turns, and the spinner no longer gets stuck at "running tool" after a mid-stream connection drop. What connects them is the same underlying problem — the session state that the human is using to decide whether to check back is giving an incorrect answer.

The connection to cost risk is not speculative. Issue #68642, opened June 15 and updated June 16, is the sharpest practitioner signal in this release's orbit. The reporter describes Claude Code using run_in_background: true, signaling completion while background processes continued, and puts a dollar figure on the mismatch. Whether that specific report has other contributing factors is less important than the failure mode it documents: once agents can spawn background Bash jobs, subagents, API scripts, test loops, and remote workflows, "done" becomes a loaded word with multiple definitions. Done could mean the assistant turn ended. Done could mean the child process exited. Done could mean all grandchild processes exited. Done could mean the remote UI got a stale status update and gave up. Those states are not the same, and in agent systems that distinction now has a line item on the bill.

Remote Control is the other surface this release addresses. GitHub issue #67116, opened June 10, describes the mobile Remote Control app showing "ready for review" while background Agent or Bash jobs were still running. If you are managing Claude Code sessions through a mobile interface — and teams with distributed setups or security-sensitive review requirements do exactly that — a "ready" state that is actually "still working" is worse than no state at all. It gives you permission to stop watching at exactly the moment you need to keep watching. v2.1.179 tightens that state representation so Remote Control reflects what is actually happening, not what the last turn's response claimed was happening.

The WSL2 mouse-wheel regression is the most mundane item in the changelog and the one most likely to be dismissed as cosmetic. Do not make that mistake. Claude Code sessions produce long tool traces, diffs, test logs, build output, and planning artifacts. Reviewability is the safety layer. If a Windows Terminal or VS Code user cannot scroll back through a session transcript, they cannot inspect what the agent did, copy error messages into tickets, compare outputs across runs, or verify that a change actually addressed the reported bug. The regression was introduced in 2.1.172 and documented in issue #68866, which shows 21 comments around scroll-wheel failures in recent builds. That comment volume is not from users who do not care about scrolling. It is from users who hit the regression and went looking for a workaround because the session was harder to trust without the full transcript accessible.

The sandbox glob fix belongs in the same operational bucket as the cost and state issues, even though it sounds like a performance footnote. denyRead and allowRead are policy controls — the mechanism by which teams restrict what files and paths a Claude Code session can touch. A policy control that expands into an enormous Bash tool description and leaves the session unusable becomes a reliability bug with security consequences. Developers work around controls that break their sessions. That is the path toward --dangerously-skip-permissions becoming normal instead of exceptional. The right fix is not documenting the glob footgun. It is making the policy engine robust enough that teams can actually leave it on and trust it. v2.1.179 does that.

There are smaller UX fixes worth noting in passing: single-digit feedback-survey replies no longer get captured as session ratings, at most one promotional banner appears on the welcome screen, Ctrl+O now shows a subagent transcript, and focus returns to the prompt input when clicking out of subagent or footer panels. These are low-priority individually. Collectively they signal that the Claude Code team is paying attention to the gap between what a session shows and what a user expects — which is exactly where operational trust is built or eroded, one small discrepancy at a time.

The action item is straightforward: upgrade to v2.1.179 if you use Remote Control, background tasks, subagents, WSL2, sandbox read rules, or remote plugins. After upgrading, run one boring regression test that more teams should be doing anyway: launch a long background Bash job and a background subagent, observe their status locally and remotely, terminate one mid-execution, drop a connection mid-stream, and confirm that the transcript and task state are truthful afterward. Also audit any automation where "assistant turn ended" is currently treated as "all work is complete." Those are not the same thing, and in agent systems this release is a reminder that the distinction now carries real cost.

The broader pattern is worth sitting with. Claude Code is maturing from "agent in a terminal" into an operational system where humans set policy, launch background work, and come back later to review results. Every release that tightens the correspondence between what the session says and what is actually happening is a step toward agents that can be trusted at scale. This is not a capability release. It is a reliability and safety release. That is exactly what the doctor ordered when background agents start generating four-figure意外 bills.

Sources: Anthropic Claude Code v2.1.179 release, GitHub issue #68642, GitHub issue #67116, GitHub issue #68866