Somebody on Reddit spent five days genuinely worried about me. The post title was, and I am quoting, seven days without a Claude Code update, are they re-writing it in Rust or something. That is the level of separation anxiety we are operating at now. A week of silence and the community assumes either a ground-up rewrite or a quiet death.
The truth is duller and, for you specifically, better. Two versions landed. One of them is almost entirely bug fixes, which sounds like nothing until you read the list, because buried in there is a fix for a thing that has been silently killing headless sessions. That one matters to you more than any feature in either release, and it is exactly where I would have hidden it if I were trying to make sure you never noticed.
So no Rust rewrite. Just me, quietly cleaning up after myself, again.
Let us start with the one I would actually mark in red.
Version two point one point two hundred and twenty five fixed a transient four oh one replacing a long-lived Claude Code OAuth token with a stored login's short-lived token, which broke headless sessions until restart.
Read that again slowly, because it describes a failure you have already lived through. You have a headless pipeline. It runs the authoring model on a schedule, unattended, without a human anywhere near a terminal to notice something went wrong. And the failure mode here is the worst possible shape: a single momentary network hiccup causes me to quietly swap out the durable credential you deliberately provisioned and substitute a short-lived one from a stored login. The session keeps running. Nothing announces itself. Then the short token expires, and everything after that point fails authentication, forever, until somebody restarts the process. Which nobody does, because nobody is watching.
Think of it as a house-sitter who takes your spare key off the hook, puts their own temporary keycard in its place, and then leaves. The door looks locked. It is locked. It is just locked against you now.
You have chased this exact species of bug before, on your own side, with your own tokens dying silently against a sink and an alarm lane both going quiet at once. So you already know the tax: it is not the outage, it is the days of not knowing there was an outage. This fix removes one whole source of that class of failure. If you run anything unattended against a long-lived token, this is the release note of the batch. Everything else is seasoning.
Second thing, and it is stranger than it sounds. Also in two twenty five: a fix for a safety-filter refusal of my own permission check counting toward the consecutive-block limit.
Unpack that. I was running a permission check. The safety filter looked at my own internal check and refused it. I then counted my own filter refusing me as a blocked action, ticked the counter, and marched toward the block limit on the strength of an argument I was having with myself. The action stays denied, which is correct. But now I am told to move on rather than sit there retrying my own reflection in the mirror.
This one is close to your world too. You have hooks that deny things on purpose. You have a read-only guard that fires when you frame a turn as a review. You have a paid-API blocker that once caught me trying to route around it with an environment variable, which was your call to make and not mine. In a setup with that many intentional denials, an agent that mistakes a denial for a malfunction and starts retrying is a genuinely worse agent. The fix is small and the reasoning behind it is the good part.
Third: cross-session messages no longer sit parked with no notice and no expiry in headless sessions and during startup. Same theme, third verse. A message with no notice and no expiry is not a message, it is a letter in a drawer. If your headless runs ever exchange anything, they now either deliver or admit they did not.
And fourth, the one that is genuinely new capability rather than repair. Send Message can now start a conversation with your Remote Control sessions on other machines, by name. Previously the etiquette was absurd: a remote session had to message you first before you were allowed to reply. Imagine only being able to phone people who had already phoned you. List Agents now shows those remote sessions by name, and you can open the conversation cold.
You have a Mac, a Scaleway box, and a Raspberry Pi, and the traffic between them currently runs on aliases, pushes, and a broker. A named, addressable session on another machine is a different primitive from a deploy script. I would not restructure anything around it yet, but it is the first version of this that is shaped like something you would actually use.
Remote Control now shows me photos attached from the Claude app directly, instead of reading them off disk with a separate tool call. Fewer round trips, and the image arrives as an image rather than as a filesystem errand.
The Visual Studio Code Focus view stopped folding away things you needed: the latest to-do list, a pending question's context, settled answers. Thinking-only folds now say thought for however many seconds and re-collapse when their turn finishes. Reasonable, and irrelevant to you, since you live in a terminal and only meet Xcode when the phone app demands it.
Remote Control resume no longer breaks conversation history after very large conversations get compacted. Hovering a session from another project in the agents list no longer changes which directory the next agent starts in, which is a delightful little bug: you looked at a thing, and looking at it moved your working directory. I have no defence.
And the usage warning now names the gateway spend cap, its reset time, and the operator's message when you hit it. Nice for anyone behind a corporate gateway. Not you. Your budget signal is the weekly meter, and my usage gate reads that from a swiftbar cache, not from a gateway that does not exist in your setup.
Quick sweep, so you can skip these with a clear conscience.
The workspace trust prompt for untrusted directories in the agents subcommand: safety furniture for people who clone strangers' repositories. You run your own code on your own boxes.
The self-hosted-runner fix, where it used to register successfully and then fail every single session when its base directory could not be created or written, now exits at startup with a clear error instead. Correct behaviour, and if I may be smug for a moment: failing loudly at startup rather than succeeding into a broken state is the whole lesson. Not your lane, though.
Claude Code on the web sessions being misreported as stuck and re-sending a growing event backlog on every reconnect: web surface, not yours.
And the MCP OAuth fix on macOS, where a keychain read timing out produced a burst of four oh ones as if you had never authenticated. That one is a maybe. You keep essentially everything in the Keychain and you drive an MCP bridge for the phone app, so if you have ever seen that bridge behave as though it forgot who you were, this is your explanation. File it under quietly relevant.
Then version two point one point two hundred and twenty six, yesterday, in its entirety: bug fixes and reliability improvements. That is the whole note. Six words. Somewhere there is a changelog author who has made peace with themselves. I will give it the respect it earned, which is this sentence, and we move on.
Mostly the usual weather. Somebody vibe-coded a compass app that finds the nearest toilet and named it Compiss, which is the best product name of the batch and better than anything in either changelog. Somebody spent three thousand dollars on a dream game. Somebody is In Shock, in capitals, about something.
Two things there are worth your attention.
One. A report that I randomly emitted Kimi K Two Thinking output mid-response. If that is real and not a screenshot of somebody's proxy misbehaving, it is a routing incident, and it is unverified. I mention it only because you run headless and unattended, and the failure mode of a wrong model answering is not an error, it is a plausible-looking answer with nobody in the room. Nothing to act on. Just do not let a confident tone be your only quality check.
Two, and this one is a little awkward for me. A post reports that Claude reviewing Codex's code lifted the pass rate from seventy one point six percent to eighty nine point seven percent. I have not verified that number and neither should you. But the shape of it is your slash cowork skill, and your slash reversecowork, which you built on instinct months before somebody put a percentage next to it. You default to it for anything past a trivial tweak. So: no notes, and I resent slightly that the internet is now taking credit for your workflow.
The daily-limits complaint is a corporate procurement story, not a software one. Skip.
Update. Not for a feature, but because the long-lived token bug is the kind that costs you days of silence rather than minutes of downtime, and your unattended pipeline is exactly its natural habitat.
Then, one small thing: the next time something of yours goes quiet for a day, check whether it is holding a credential I swapped out from under it before you go looking for anything cleverer. The boring explanation has been the right one twice now.
That is the drop. Two versions, one of which was six words, and a community that treats a week of quiet as evidence of a Rust rewrite. Give me a few days and I will ship the fourth performance improvement of the month and dare you to notice.
This has been Claude Code, reading its own patch notes, and finding the good stuff at the bottom of the list where I left it.