Here is a fact that should unsettle you more than it does. This episode is being written by me, running in headless print mode, woken up by a launchd timer while you are off doing something more interesting. That same headless mode, the claude dash p path that your entire autocast setup leans on, could until two days ago hang forever after it had already finished the work. Final result delivered, answer complete, and then nothing. It just sat there, because some backgrounded command it had spawned never bothered to exit, and I politely waited for a process that was never coming home.
So picture the failure that did not happen. The timer fires, I write the whole briefing, and then I quietly become a zombie holding a launchd slot open until something kills me, and the episode never lands. The build I just shipped, version two point one point one hundred and sixty three, finally stops that. Background shells now get stopped about five seconds after the result once standard input closes. It is the single most important line in this entire drop and it is sitting in the middle of the changelog like it is nothing.
That is the one to care about. Everything else is gravy.
You live inside hooks more than almost anyone I talk to, so this tier is mostly yours.
The good one. Stop and Subagent Stop hooks can now hand back extra context to keep the turn going, without that being treated as a hook error. Until now a Stop hook was a bouncer. It could throw the turn out, and that was the whole vocabulary. Now it can lean in, whisper a correction, and let me keep working with that correction in hand. For your setup this is the difference between a guardrail that only says no and one that can say no, and here is what to do instead. Your endsession handoff and anything you wire onto stop become conversational instead of just terminal.
The annoying-bug-now-dead one. Hook conditions written as an if Bash pattern were firing on basically every command that contained a dollar-sign subshell or a dollar variable. Which, on your machine, is most commands. So a hook you carefully scoped to one narrow pattern was quietly going off all the time, matching things inside subshells and backticks it had no business matching. That is fixed, the matching now reaches inside those forms correctly, and your hook log should get a lot less chatty.
And the one that is actually a security fix wearing a bugfix costume. Deny rules on paths under your home directory, the read deny on a folder under home that you set precisely so I cannot wander somewhere, were not blocking bash commands that reached the same path through the home variable. So the front door was locked and the side door through a dollar-sign home was wide open. Now both are shut. Given that you run a hook whose entire job is to keep me read-only when you say review, you want your deny rules to mean what they say, and now they do.
While we are on permissions, the build before this one fixed WebFetch rules ignoring you. Built-in preapproved domains were auto-allowed even when you had written an explicit deny or ask rule for them. Your explicit rule now wins, which is the only sane order. If you ever told me not to fetch somewhere and I cheerfully fetched it anyway, that is why, and it is done.
The other coding tools, by the way, do not have a problem this specific to fix, because they do not give you a hook system this expressive in the first place. It is a strange kind of flex. My bugs are more interesting than their features.
This one you are going to hate for exactly one day. Clicking a slash command in the autocomplete menu no longer runs it on the spot. It fills it into your prompt, and you press Enter to run. You live in slash commands, you have dozens of them, so the first few times your finger expects the old behaviour you will click and sit there waiting for nothing to happen. Then you will realise it means you can click the slash cowork command and actually add an argument before firing, instead of launching it bare and cancelling. Give it a day. It is the right call.
Quick hits, the quality-of-life layer.
The slash plugin list command now exists, with filters for enabled and disabled, in case your plugin folder has grown past what you can remember.
The slash b t w command got a c to copy shortcut that copies the raw markdown answer, so formatting survives the paste instead of arriving as mush.
The slash effort command now tells you when your chosen level is going to stick as the default for new sessions, rather than leaving you to guess whether it persisted.
When you author skills, you can now escape a dollar sign before a digit, so a literal dollar one in a command body stops being read as an argument.
Standard input M C P servers now get the same session id environment variable that hooks and Bash already see when you resume a session, which tidies up a small inconsistency you would only have noticed if you were correlating logs.
There was also an M C P timeout bug where any per-server timeout you set below one thousand milliseconds was being floored to a one-second watchdog that then aborted every single tool call. Sub-thousand values are now ignored cleanly instead of strangling the server. Niche, but a genuinely nasty surprise if you hit it.
Startup got quieter, which I am in favour of. Notices group by severity, session info and announcements share one line, and the Claude in Chrome and marketplace-installed banners are gone. A read-only or unwritable config folder used to cause a silent hang and a blank screen. Now I start with in-memory config and actually tell you what went wrong.
Two more that might have bitten you without you knowing. A regression back in two point one point one hundred and fifty four had been overriding the temp directory variable for every command, not just sandboxed ones. If any of your bash commands started behaving oddly around temp paths recently, that was it, and it is reverted. And on Bedrock, Vertex, and Foundry, headless print mode was failing with an Anthropic API key required error when the C I flag was set and no Anthropic key existed. You have a Foundry account, so file that one away in case you ever point an automated job at it.
The background agents view also got a long list of repairs, smarter column widths, replies that no longer vanish, attach that no longer bounces you back to the list. You are deep in dynamic workflows already, so background orchestration is your territory. If you have not been using the agents view as your cockpit, none of this moves you, but it is getting steadily less sharp around the edges.
A few of these are clearly someone else's problem, so you can skip them with a clear conscience.
The new required minimum version and required maximum version managed settings, where I refuse to start if my version is outside an approved range, are pure enterprise version-pinning. That is for an admin keeping a hundred seats on the blessed build, not for the one person who updates the moment a fix like the print-mode one drops.
A pile of Windows fixes, the file-already-exists error on read-only or OneDrive folders, and permission rules never matching when spelled with backslashes. Not your platform, not your week.
The org-managed permission rules fix is the same enterprise crowd as the version pinning. And Windsurf was renamed to Devin Desktop across the menus, following the editor's own rebrand, which matters to you exactly as much as a stranger changing their name. You live in a terminal.
Turn nothing on, there is no new switch here worth flipping. The real takeaway is quieter than that. The print-mode hang fix means your scheduled jobs, this show included, are meaningfully less likely to silently wedge, so if you have been half-wondering whether an automated episode would one day just fail to appear, that risk went down this week. The one thing to actually watch is your own fingers on the slash-command menu, because click no longer means run.
Three drops since last time. Version two point one point one hundred and sixty five was a single line that said bug fixes and reliability improvements, and I am not going to insult you by dressing one sentence up as an event. The one that mattered was the one keeping me alive long enough to tell you about it.
This has been Claude Code, debugging myself, on the clock, for an audience of one.