Blog · November 13, 2026 · 9 min read · by Vilva Athiban P B

Claude Code 2.1.323: Code Mode, Progress Heartbeat, Auto-Mode Fallback and 1M Context — What Changed for Unattended Runs

Claude Code 2.1.323 is a long changelog entry, mostly fixes you will never notice at the keyboard. This post reads the official CHANGELOG.md, fetched on 13 November 2026, for people who are not at the keyboard: overnight runs, claude -p jobs, SDK hosts, Remote Control and scheduled runs. It covers 2.1.323, 2.1.322 and 2.1.321; 2.1.319 is in our previous digest. Changelog lines are quoted as written; the rest is our reading.

1. Code Mode: one sentence, and a 404

The headline entry is a single line: “Added Code Mode, an experimental opt-in in which Claude writes JavaScript to call its tools; see https://code.claude.com/docs/en/code-mode to turn it on, or to turn it off for an organization”. That is everything the changelog says. We opened the linked docs page on 13 November and it returned a 404, so nothing beyond that sentence is known yet: not how to opt in, not what the organization switch is called, not what it does to permission prompts. The word that matters unattended is “opt-in”: nothing changes unless you turn it on.

2. A progress heartbeat while hooks run long

“Added a progress heartbeat every 30 seconds while hooks run long in claude -p and SDK sessions, so a host such as Claude Desktop won’t end the turn as hung (once it includes this version)”. A hook that runs a test suite can be silent for minutes, and a host cannot tell a slow hook from a dead process. If your own wrapper around claude -p has an inactivity timeout, check that it counts the heartbeat as activity; see our headless mode guide.

3. Auto mode unavailable? It now starts in Manual mode

Read this one twice. “Fixed --permission-mode auto or a settings defaultMode: auto starting in a mode that could allow more when auto mode was unavailable. It now starts in Manual mode, which asks first”. The old behaviour was a safety bug; the new one is safe and, for an unattended run, inconvenient in a specific way. If auto mode is unavailable at start-up (the entry does not list the reasons), the session does not fail. It starts, reaches the first tool call that needs approval, and waits for a human who is not there.

Two defences: a pre-flight check (start a short session in the same environment and confirm the mode it reports before the overnight job) and a “needs permission” notification, because a run that fell back to Manual looks exactly like a run still working. Our auto mode guide has the background.

4. Usage credits: a menu, and a reset time you can read

“Added an options menu (stop, switch to usage credits, upgrade) when a model needs usage credits that are turned off or used up”, and “Improved the Fable limit message in -p, SDK, IDE and cloud sessions: it now says when the limit resets, along with how to continue”. The second is the unattended win: a headless run that hits the limit now leaves a reset time in its output, so a script can read it and a human can decide whether to wait. See our usage limit post.

5. Claude Fable 5.2 and the 1M-context assumption

From 2.1.321: “Added Claude Fable 5.2 (claude-fable-5-2), now the default Fable model — 1M context, $8/$40 per Mtok with $0.20/Mtok cache reads”. The 2.1.323 follow-up matters more behind a gateway: “Changed the context window assumed for a model ID that Claude Code doesn’t recognize from 200K to 1M; use /autocompact to compact earlier, or CLAUDE_CODE_DISABLE_1M_CONTEXT=1 to keep 200K”. And the warning beside it: “Changed sessions on other vendors’ models with a smaller window: once full, they can fail every turn until /clear, so set CLAUDE_CODE_DISABLE_1M_CONTEXT=1 before they fill”. Unattended, that is a run where every turn fails and nobody is there to type /clear. Set the variable before the first such run.

// .claude/settings.local.json (or the file you pass with --settings)
{
  "env": {
    "CLAUDE_CODE_DISABLE_1M_CONTEXT": "1",
    "CLAUDE_CODE_DISABLE_AGENT_PROGRESS_SUMMARIES": "1"
  }
}

6. Smaller switches worth knowing

  • CLAUDE_CODE_DISABLE_AGENT_PROGRESS_SUMMARIES (“available since 2.1.318”): “set it to 1 to turn off subagent progress summaries and the requests that write them”.
  • CLAUDE_CODE_RESUME_HINT_COMMAND, “which a program that starts Claude Code can set to have the exit hint name its own resume command”.
  • “Changed the maximum of CLAUDE_CODE_OVERLOADED_RETRY_MAX_DELAY_MS from 64000 to 300000”: up to five minutes between retries.
  • “Changed workflows in the desktop app’s Code tab to pause at a usage limit and continue after it resets”. A paused workflow is another thing that looks like a hang.

The rest are in our environment variables guide.

7. Background sessions now stop instead of switching sign-ins

A cluster of fixes shares one shape. A session on a named Anthropic profile no longer moves “to another sign-in when /fork, the Left arrow or --bg continued it in the background”; a background session whose named profile is “missing, changed or overridden” now “stops and says so”; a session on an API key, auth token or workload identity from its shell likewise “now stops and says so”. Good for billing, and a new failure mode: an unattended job can now end early for authentication reasons, correctly and quietly. One more reason the “done or stopped” notification must fire on every exit.

8. Permission hardening, in one list

  • A start-up warning “for Bash allow rules with a * in a variable’s value, such as Bash(PORT=* npm run dev)”.
  • Allow rules with an attached wildcard “such as Bash(ls*)” no longer skip the prompt in some cases; “a rule that names a variable, such as Bash(NODE_ENV*), now asks”.
  • Deny and ask rules no longer miss “some commands run through sudo, env and similar wrappers”.
  • From 2.1.321: deny rules and protected-file prompts now apply “to the file that a cp or mv into a directory writes”.
  • sandbox.excludedCommands no longer lets “a command that it does not name run outside the sandbox in some cases”.
  • “Don’t ask again” rules that look like they hold a secret, or would land in a git-tracked settings.local.json, now last “for the session only” and are not saved.

9. claude remote-control --settings

From 2.1.321: “Added --settings <file> to claude remote-control, which applies a settings file to every session it starts; if the file changes, no new session starts until you restart claude remote-control”. One file can now hold the permission rules and the env block above for every session the host starts. Mind the second half: edit the file and the host stops starting sessions until restarted, a quiet way to find it idle in the morning. More in our Remote Control guide.

# Apply one settings file to every session this host starts.
# Restart the host after editing the file, or no new session starts.
claude remote-control --settings ./unattended.json

10. /security-review asks first

“Changed /security-review to ask before Claude runs it, and skills’ inline git commands to stop in bare-repository worktrees and similar folders until you allow them, outside auto mode and bypass”. If a scheduled prompt calls the review, it now contains a prompt, unless the job really is in auto or bypass mode (see section 3).

What to change in your unattended setup this week

  • Pre-flight auto mode in the environment the job runs in; unavailable now means Manual, which waits.
  • Set CLAUDE_CODE_DISABLE_1M_CONTEXT=1 for any job on an unrecognised or smaller-window model, before it fills.
  • Re-run your job interactively once and watch for allow rules that now prompt: wildcards, variables, sudo and env wrappers, cp and mv.
  • Move shared rules into a --settings file for Remote Control, and restart the host whenever it changes.
  • Notify on every exit, not only success. Auth stops, usage limits, a fallback to Manual and a paused workflow all end or stall a run without a visible error.

That last item is where AI Done Now sits: 2.1.323 adds several ways for a run to stop or wait correctly, and each is a moment you want a notification for. It alerts you on your Mac when Claude Code finishes or needs permission; our waiting-for-input post covers the case section 3 just made more likely.

FAQ

Is Code Mode on by default in 2.1.323?

No. The changelog calls it “an experimental opt-in”, and the docs page it links to returned a 404 on 13 November 2026, so how to opt in is not yet documented.

Will my overnight run fail if auto mode is unavailable?

It will not fail; it will start in Manual mode and wait at the first prompt, which from outside looks like a run still working.

Do I need CLAUDE_CODE_DISABLE_1M_CONTEXT on Claude models?

The changelog scopes it to “a model ID that Claude Code doesn’t recognize” and “other vendors’ models with a smaller window”; on recognised Claude models it does not apply.

Does the 30-second heartbeat apply to interactive sessions?

The entry names only claude -p and SDK sessions, with Claude Desktop benefiting “once it includes this version”.

Keep reading

Desk Exercises for Programmers: 15 Moves to Do While Your AI Agent Codes

7 min read

Exercise While Coding: Turn Claude Code Wait Time Into Micro-Workouts

7 min read

Claude Code Notch Notifications on Mac: See When Claude Is Done Without Watching the Terminal

7 min read

Claude Code Tips and Tricks: 12 Ways to Use Claude Code Effectively

8 min read

Claude Code Multiple Sessions: How to Run Agents in Parallel Without Losing Track

6 min read

A Claude Code Workflow That Doesn't Involve Watching the Terminal

5 min read

Claude Code Hooks: A Practical Guide to Automating Your Agent Workflow

7 min read

Claude Code Auto Mode: Fewer Permission Prompts Without Living Dangerously

7 min read

Claude Code Subagents: How to Delegate Work to Specialized Agents

7 min read

Claude Code Context Management: Treat the Context Window Like a Budget

6 min read

Per-Subagent Model Selection: Route the Grunt Work Down, Keep the Judgment Up Top

7 min read

Skills and Plugins: How to Teach Claude Code Your Way of Working

7 min read

Claude Code Background Tasks: Run Long Commands Without Blocking Your Session

6 min read

Codex CLI Notifications: How to Get a Ding When Codex Is Done or Needs Input

7 min read

Cursor Notification When Done: Every Way to Get Notified When Cursor Finishes

6 min read

Claude Code Notifications: How to Get Notified When Claude Code Finishes or Needs Your Input

6 min read

Want to Be Notified When Claude Responds? How Claude Notifications Work on Web, Desktop, and Mobile

5 min read

Claude Code Notification Scripts: Copy-Paste Recipes for Every Platform

6 min read

Get a Ding the Moment Codex Needs Your Response

6 min read

Get Notified the Moment Claude Code Is Waiting for Your Input

6 min read

“Notifications Are Turned Off for Claude” — Here Is the Fix

6 min read

Codex Sound When Done: Make Codex CLI Play a Sound When It Finishes

6 min read

terminal-notifier + Claude Code: Native macOS Alerts When Your Agent Finishes

6 min read

Gemini CLI Notifications: How to Get a Sound or Alert When Gemini Finishes

6 min read

Get Claude Code Notifications on Your Phone

6 min read

Claude Code Remote Control, Explained

7 min read

preferredNotifChannel: Claude Code's Built-In Notification Setting

6 min read

Claude Code Notifications in tmux and Over SSH

7 min read

Claude Code Effort Levels: Why Your Setting Keeps Getting Ignored

8 min read

Codex vs Claude Code Notifications: How Each One Tells You It Is Done

8 min read

Claude Code Notifications Not Working: A Diagnostic Checklist

10 min read

Claude Code Notifications Inside Your Editor's Terminal

7 min read

CLAUDE_CODE_DISABLE_BACKGROUND_TASKS Explained

7 min read

CLAUDE_CODE_DISABLE_BG_SHELL_PRESSURE_REAP Explained

8 min read

Cursor Alerts Explained: Every Alert Cursor Raises, and How to Control Them

7 min read

Claude Code Environment Variables: The Groups That Actually Matter

10 min read

Claude Code Notifications on WSL and Windows

9 min read

Claude Code Checkpoints and /rewind

8 min read

Claude Remote Control: How It Works, Turning It Off, and Auto Mode

7 min read

Claude Code /loop: Poll a Deploy, Babysit a PR, and Get Told When It's Done

8 min read

Setting Up NotchFit With OpenAI Codex CLI: Hooks, $notchfit-plan, and the Daily Flow

7 min read

Claude Mods Explained: What the New Plugin Layer Can Do, and How to Turn On 'You Should Know'

9 min read

NotchFit vs Mac Break Reminder Apps: A Clock or a Signal From Your Coding Agent?

8 min read

Claude Code Headless Mode: Running claude -p in Scripts and CI, and the Three Signals That It Finished

10 min read

Building a Movement Habit at a Desk: Use the Agent Run as the Cue, One Set as the Unit, and Streaks Carefully

8 min read

Claude Code MCP Servers Explained: Adding Servers, Choosing a Scope, Handling Secrets, and Why Long Tool Calls Go to the Background

10 min read

/notchfit:plan Explained: How Claude Code or Codex Writes a Weekly Workout Plan the Notch Can Actually Run

8 min read

Claude Code Spinner Verbs Explained: What “Pondering” and “Brewing” Mean, How to Change Them, and Why You Should Stop Watching the Spinner

7 min read

Why NotchFit's Done and Permission Alerts Wait Until Your Set Ends, When That Costs You, and How to Turn the Workout Off

7 min read

How to Resume a Claude Code Session: --continue vs --resume, Naming Sessions, the Session Picker, Branching, and What Comes Back

9 min read

NotchFit on a Mac Without a Notch: How Pill Mode Works on Mac mini, iMac, Mac Studio and a MacBook With the Lid Closed

6 min read

How to Run a Claude Code Session in the Background: /background, claude --bg, Agent View, and Getting Back to It

9 min read

What a Notch App Can See: NotchFit's Local-First Design, What the Claude Code and Codex Hooks Send, and What Stays on Your Mac

7 min read

Why Codex CLI Asks for Permission Every Time, and How to Tune the Sandbox and Approval Policy Without Going Full Access

8 min read

What to Do While Claude Code or Codex Works: A Simple Protocol for the Two-to-Twenty-Minute Gap in Every Agent Run

7 min read

Is It Possible to Get a Notification When Claude Code or Codex Hits a Reset? Yes for Claude Code: the quota_auto_resume Hooks, Explained

8 min read

What a MacBook Notch App Can Actually Do: The Five Kinds of Notch Utility, Their Trade-offs, and Where NotchFit Fits

7 min read

How to Make MCP Servers Not Take Up as Much Context in Claude Code: Tool Search, alwaysLoad, Scopes and Output Caps

8 min read

The notchfit Command Line: Drive Your Workout, Read Status as JSON, Validate Plans and Test the Notch Without Leaving the Terminal

7 min read

How to Audit MCP Tool Calls Made by Claude Code: A Five-Minute Hook Audit Log, OpenTelemetry Tool Events, and the Transcript for Investigations

9 min read

Exercise Snacks: What the Research Actually Says About One-Minute Vigorous Breaks, What It Does Not, and How NotchFit's Agent-Run Sets Compare

8 min read

How Long Until a Claude Code MCP Tool Call Times Out? The Four Timers (Startup, Two-Minute Backgrounding, Idle, Wall-Clock), Their Defaults, and Which One to Change

8 min read

Sitting Too Long as a Developer: The Posture Problems Coding Agents Made Worse, What the Research Says About Breaking Up Sitting, and How NotchFit Turns an Agent Run Into the Break

8 min read

Claude Code .mcp.json Explained: Where Project-Scoped MCP Servers Are Read From, What Happens in Subfolders and Monorepos, and Why a Committed Server Shows Pending Approval

8 min read

Standing Desk Exercises for Developers: Why Standing Still Is Not the Goal, Eight Movements That Fit a Thirty-Second Agent Run, and How NotchFit Cues Them From the Notch

8 min read

The claude mcp Command Reference: add Syntax by Transport, What --scope local, project and user Actually Mean, add-json and add-from-claude-desktop, list, get, remove, login and serve

9 min read

Your First Week With NotchFit: Install and Simulate, Run Real Tasks, Write a Smaller Plan Than You Want, Tune the Alerts, Survive the First Skipped Day, and Decide What Stays

8 min read

How to Stop a Running Claude Code Task: Esc vs Ctrl+C, Background Tasks, Subagents, and Disconnecting Remote Control

8 min read

Pomodoro vs Agent-Driven Breaks: Timing Movement to Claude Code and Codex Runs Instead of a Timer

7 min read

Claude Desktop MCP Configuration: claude_desktop_config.json, Logs, Extensions, and the Difference From Claude Code

9 min read

The 20-20-20 Rule for Developers: Eye Strain, the Evidence, and Agent Runs as the Cue

8 min read

Claude Agent SDK + MCP Servers: mcpServers, allowedTools, Status Checks and Auth

9 min read

Discreet Desk Exercises for an Open-Plan Office While Claude Code Runs

7 min read

claude remote-control Server Mode: Run Claude Code as a Session Server

9 min read

Wrist and Forearm Stretches for Developers: A 60-Second Routine for Every Claude Code Run

7 min read

Claude Remote Control vs Claude Code on the Web: Which to Use and How They Differ

9 min read

Neck and Shoulder Stretches for Developers: A 90-Second Routine Between Agent Runs

7 min read

What Happens When You Step Away From a Claude Code Session: Prompt Cache Expiry, Idle Compaction, and When to Come Back

8 min read

Hip Flexor and Lower Back Stretches for Developers: A Two-Minute Standing Routine Between Agent Runs

7 min read

Claude Code's Monitor Tool: Watch Logs, CI Runs and PRs (Even a WebSocket) and Let Claude React While You Keep Working

7 min read

Hunched Over the Keyboard? Upper-Back (Thoracic) Stretches for Developers: A Two-Minute Seated Routine Between Agent Runs

6 min read

Claude Code Ultrareview: The 15–25 Minute Cloud Review, What to Do While It Runs, and How the Findings Come Back

8 min read

Why Your Legs Go Dead After a Long Claude Code Session: A Two-Minute Standing Calf, Glute and Hamstring Routine Between Agent Runs

7 min read

claude --teleport: Pull a Cloud Session Into Your Terminal, Start One With --cloud, Send Follow-Ups From the CLI, and the Requirements That Trip People Up

8 min read

Rounded Shoulders From Typing? A Two-Minute Chest Opener, Chair Twist and Wall Press Desk Routine for Developers Between Agent Runs

7 min read

Claude Code ultrathink Explained: It Now Runs the Turn at xhigh Effort, How It Differs From /effort, What It Costs in Time, and What to Do While It Runs

7 min read

Best Break Reminder Apps for Mac in 2026: Time Out, Stretchly, BreakTimer, LookAway and NotchFit Compared

7 min read

Claude Code 2.1.319: denyInsteadOfPrompting, MCP Background Tasks and What Changes for Unattended Runs and Notifications

8 min read

Drink Water and Stand Up Cues for Developers: Use Claude Code Agent Runs as Hydration and Standing Reminders

7 min read

Notch Media Controls on a Mac: What the MacBook Notch Can and Cannot Do, Dynamic Island-Style Apps vs NotchFit

7 min read