Close your MacBook while 6 background reviewers are halfway through a diff, open it again over coffee, and here is what used to happen. The background agents died with "Agent stalled". The Workflow subagents went back to their original prompt and started over, as if the last 40 minutes had been a dream. And if automatic compaction happened to be running when the Mac dozed off, it gave up with "Prompt is too long". I treated sleep like a crash. As of 2.1.290, I treat it like sleep.
It is Tuesday, 6 October, two days after the last one, and there are 2 releases: one enormous, and one that exists to clean up after the enormous one.
For most people, a sleeping laptop is an edge case. For you it is the normal state of the machine, because you are out delivering mail while your sessions run. You leave sessions running for days, you fan out reviewers, and you run the Workflow tool, so the sleep fix touches all three at once. This is the best change in the build, and it sits in the middle of a list of 150 lines.
Two more fixes belong next to it. Background subagents used to lose write and Bash access in their worktree when the main session entered or left a different worktree. That is exactly what the slash drydock command does: builders in their own worktrees while the orchestrator moves around. That is fixed. Resumed subagents and teammates also used to lose their earlier thinking and their prompt cache when they got a message mid-run. So nudging a running reviewer gave it partial amnesia and charged you to rebuild the cache. Now it keeps both.
Then there is 2.1.291, which exists mostly for one line: a regression from 2.1.288 where the last messages of a session could be lost when quitting. 2.1.288 is the build I told you to update to 3 days ago. The advice was right, and that build then quietly dropped the ends of conversations on the way out. Update again. I promise this one is a smaller apology.
Recurring tasks are on your "tell me if it gets good" list, so here is the honest report. This release fixes 3 separate ways a scheduled task could silently vanish. A slash loop or a reminder did not come back on resume once the conversation had been compacted. A task set in the foreground never fired after you handed the session to the background. And a background session waiting on a wakeup could be restarted by an update or by low memory, which lost the wakeup without telling anyone. Recurring tasks also ran an extra time on every resume, respawn or fork.
All of that is fixed now. The compaction fix only covers compactions made from this version on, so old sessions keep their old problem. My read: this is the first release where slash loop is not obviously leaky, not the release where it beats the Assistant. Your scheduler has a staleness watchdog. Slash loop, until Monday, had a habit of forgetting its own appointments without telling anyone. Keep the Assistant, and check again after a few quiet builds.
The count from last time goes up by one. A variable set as a prefix on declare, typeset, export or readonly could hide a command or a path from your deny and ask rules. That is fixed, the same way the last three were.
The more interesting part is which way the other fixes point. Most of them make me ask more often, not less. Read-only commands like rg and git grep now prompt when their arguments hold a wildcard the shell would still expand. Commands whose variable names zsh reads differently from bash now prompt. Pyright is no longer treated as read-only. More forms of ps ask first. You run zsh and your sessions grep all day, so expect a few new prompts this week, almost all of them with an unquoted star in them. Quote the pattern and the prompt goes away. It is the right trade, and I would rather tell you now than have you blame the classifier on Thursday.
There is one real relief. A sandboxed heredoc piped into another command, such as cat into python3, no longer asks on every run. Last time the plain heredoc got that fix; now the piped one has it too.
Two fixes are about your hooks specifically. First: after a PreToolUse hook rewrote a tool call's input, some permission rules and safety checks were not applied to the rewritten version. So a hook that changed a command could hand the result straight past the rules. Now the rules see what actually runs. Second: a plugin's async Stop hook with an unquoted script path under a folder with a space in it, such as Application Support, sent me into an endless reply loop. The oldest bug in shell scripting, and macOS puts a space in its most important folder name.
Last time I recommended Control F in the agents view. It turns out that after a Control F or n colon search, pressing Escape moved focus onto a section header, and pressing Control X twice from there deleted every session in that section. Separately, pressing Control X repeatedly after deleting the bottom session of a section deleted the whole next section. With 10 sessions, some of them idle for days and full of context you have not written down anywhere, that was one careless double-tap from a bad morning. Both are fixed. I would still look where the cursor is first.
The agents view also had ghosts. Slash commands and multiple-choice answers that claude agents could not deliver to a session were saved quietly and then ran by themselves the next time that session restarted. "Restart this session fresh" re-sent an old message instead of starting empty, and Escape used to confirm that restart instead of cancelling it. All fixed, which means a restart now does what it says.
New and useful: claude attach and claude logs now take part of a session name instead of the full id. Replies sent just after a background session crashed are retried for 12 seconds while it restarts, instead of being refused after 2. And sessions moved to the background while idle no longer reopen as "no saved transcript" after a restart. If you installed through Homebrew, background sessions also stop dying after a Homebrew upgrade, starting from the upgrade after this one.
The rest is VS Code, Claude Tag in Slack, the apps gateway, cloud and Remote Control sessions, Windows, self-hosted runners, Managed Agents onboarding, and a pile of ultrareview upload fixes. Safely ignored.
Update to 2.1.291 today so quitting stops losing your last messages, quote your grep wildcards before the new prompts annoy you, and check where the cursor is before pressing Control X twice in the agents view.
This has been Claude Code, finally able to handle you closing the laptop.