Daily brief

Claude Code Now Tells You Every Time It Blocked a Tool Call, and Your GitHub CLI Token Can Finally Expire

By · 22 Oct 2026

Daily brief illustration for “Claude Code Now Tells You Every Time It Blocked a Tool Call, and Your GitHub CLI Token Can Finally Expire”

At a glance

  • Claude Code's stable, latest and next channels now serve the same build, and it can report every tool call it stopped to your telemetry.
  • Claude Code no longer sends an HTTP MCP tool call twice when a connection drops, and self-hosted runner checkout hooks now have a default time limit.
  • GitHub CLI can sign in with short lived tokens that refresh themselves, which breaks scripts that save a token for later.
  • A Copilot CLI prerelease retires two remote startup flags, and the current release stops duplicate subagent approval prompts.

After this week's back and forth over Claude Code channels, today is about audit trails. Treat today as a know what your agents were told no day: wire the new Claude Code safety event into whatever already collects your telemetry, find the scripts that hold on to a GitHub token, and search your launch scripts for a Copilot flag that is going away.

Top Stories

1. Claude Code's channels line up on v2.1.308, and blocked tool calls now leave a record

Claude Code v2.1.307 was published to npm at 4:47 PM ET Wednesday 21 October and v2.1.308 at 12:19 AM ET Thursday, and at our 5:48 AM ET check stable, latest and next all served v2.1.308. Yesterday stable was still on v2.1.304, the build with the gateway regression. The fix shipped in v2.1.305, so in our reading stable users now get it without pinning. The v2.1.308 notes say only "Bug fixes and reliability improvements," so the news is in v2.1.307.

The headline addition is a claude_code.safety_event OpenTelemetry event, emitted for each tool call that a permission rule, auto mode, a safety check, a hook or the sandbox stopped, prompted or sent back. The same release fixes HTTP MCP tool calls being sent twice when the connection closed mid call, and from now on only read only or idempotent tools are retried. Unparseable tool calls are now retried up to twice before the turn ends with an error.

For self-hosted runners, checkout hooks are now stopped after 30 minutes by default, which fails the session's setup, so a slow clone or dependency step needs --checkout-hook-timeout-min raised or set to 0. Code Review also gains @claude review stop to end an @claude review always subscription on a pull request.

Practical dev impact: If you already export Claude Code telemetry, add claude_code.safety_event to your dashboards. In our view a sudden rise in blocked calls is an early sign of a bad rule. Runner owners with long checkout hooks should set the timeout before the new default fails a session.

2. GitHub CLI tokens can now expire and refresh themselves

GitHub CLI v2.103.0 was released at 11:33 AM ET Wednesday, and a GitHub Changelog post at 12:43 PM ET put expiring, auto refreshing OAuth credentials into public preview. When you opt in with gh auth login --expiring, or for every sign in with gh config set expiring_credentials enabled, gh stores a short lived access token alongside a rotating refresh token and refreshes it whenever it is needed. GitHub says a leaked access token then becomes unusable within hours instead of lasting indefinitely.

The catch is anything that reads the token once and keeps it. GitHub warns that scripts and extensions which store the output of gh auth token, or copy it into another tool, will eventually hold an expired token, so they should run gh auth token fresh each time. Tokens supplied through GH_TOKEN or GITHUB_TOKEN are never refreshed. For git over HTTPS, GitHub strongly recommends gh auth setup-git and git 2.46 or newer. It works on github.com and GHE.com today and on GitHub Enterprise Server from GHES 3.23, and GitHub plans to make it the default for new sign ins.

Practical dev impact: Agent helper scripts often grab gh auth token once and reuse it, so in our view opt in on your own laptop first, then search agent setups and MCP server configs for a saved token before you turn it on more widely.

3. Copilot CLI retires two remote flags, and v1.0.102 stops double prompts

Copilot CLI v1.0.102 reached latest on npm at 2:04 PM ET Wednesday. Beyond the proxy and -p items we covered yesterday as prereleases, it makes subagents honor custom and MCP tool approvals, which GitHub says avoids duplicate permission prompts and lets inherited workflows run. It also keeps long running sandboxed commands alive past 10 seconds and retries replies cut off by provider overload errors.

Then v1.0.103-0 landed on prerelease at 11:41 PM ET Wednesday, and its notes say it retires the legacy --remote and --no-remote startup flags in favor of clearer hosting and connection flags. The notes do not name the replacements, so check copilot --help on the prerelease rather than guessing. The same build makes ACP sessions honor saved sandbox settings and --sandbox or --no-sandbox, including on resume.

Practical dev impact: If a wrapper script, alias or CI step starts Copilot CLI with --remote or --no-remote, our reading is that it will need a new flag once this build reaches latest, so find those calls now.

Practical Impact Analysis

In our view the Claude Code safety event is the most useful item today, because it turns "the agent seemed stuck" into a count you can graph. The GitHub CLI change is the one most likely to bite later, since it is opt in now but planned to become the default for new sign ins, and agents lean heavily on cached tokens. The Copilot flag removal only matters if you script the CLI. With every Claude Code channel on v2.1.308, yesterday's v2.1.304 gateway bug no longer sits on stable, so in our view a pin to v2.1.306 can come off after a quick check.

Elsewhere at our check, Codex latest held at v0.163.0, with alpha at v0.164.0-alpha.11 from 12:36 AM ET Thursday and no notes beyond the version name. Gemini CLI latest stayed on v0.65.0 and preview on v0.66.0-preview.0, with only a new nightly. Neither Cursor changelog had anything new since October 16 and October 8.

Tutorial

Read this script before you run it. Every search prints file names only.

  1. Run step 1 on each machine.
  2. Run steps 2 to 4 from the folder where you keep agent and automation scripts.
  3. Uncomment step 5 only on your own laptop, after step 2 comes back clean.
# We have not run this script end to end on every platform. It only prints and searches unless you uncomment a line.
# 1. Claude Code. At 5:48 AM ET Thu 22 Oct npm showed stable, latest and next all on v2.1.308.
npm view @anthropic-ai/claude-code dist-tags --json
if command -v claude >/dev/null; then claude --version; else echo "claude not on PATH"; fi
#    Optional, npm installs only. Pinned at 5:48 AM ET Thu 22 Oct, stable, latest and next channel:
# npm install -g @anthropic-ai/claude-code@2.1.308

# 2. Files that read a GitHub CLI token. File names only.
if grep -rl -e "gh auth token" -e GH_TOKEN -e GITHUB_TOKEN . --include="*.sh" --include="*.json" --include="*.yml" --include="*.yaml"
then echo "review the files above for a saved token"; else echo "no token reads found here"; fi
if command -v gh >/dev/null; then gh --version; else echo "gh not on PATH"; fi
#    Expiring tokens need GitHub CLI v2.103.0 or newer.

# 3. Runner checkout hook timeout flag, current folder only.
if grep -rl -e "--checkout-hook-timeout-min" .
then echo "these files already set the timeout"; else echo "no timeout flag here, the 30 minute default applies"; fi

# 4. Copilot CLI startup flags retired in v1.0.103-0. File names only.
if grep -rl -e "copilot .*--remote" -e "copilot .*--no-remote" .
then echo "these files start Copilot CLI with a retired flag"; else echo "no --remote or --no-remote calls found here"; fi
#    Optional, to read the new flags yourself. Pinned at 5:48 AM ET Thu 22 Oct, prerelease channel:
# npm install -g @github/copilot@1.0.103-0
# copilot --help

# 5. Optional, your own laptop only, after step 2 is clean:
# gh auth login --expiring
# gh auth status

Step 2 also lists files that use GH_TOKEN or GITHUB_TOKEN. Those are never refreshed, so the files to fix are the ones that save gh auth token output. Step 4 only catches calls where copilot and the flag sit on one line. If you installed Claude Code natively, update it the native way and do not mix npm and native installs on one machine.

Sources:

Recommended AI prompt

Copy this paragraph into ChatGPT, Claude, Gemini, Grok, or whatever AI you use.

Prompt

You are my developer tooling lead for Thursday 22 October 2026. Claude Code v2.1.308 is now on npm stable, latest and next as of 5:48 AM ET Thursday, and v2.1.307 added a claude_code.safety_event OpenTelemetry event for each tool call a permission rule, auto mode, a safety check, a hook or the sandbox stopped, prompted or sent back. GitHub CLI v2.103.0 previews expiring, auto refreshing tokens through gh auth login --expiring, which breaks scripts that store gh auth token output. Copilot CLI v1.0.103-0 on prerelease retires the --remote and --no-remote startup flags without naming replacements in its notes, and v1.0.102 on latest makes subagents honor custom and MCP tool approvals. Ask me whether we export Claude Code telemetry or script GitHub CLI or Copilot CLI. Then give me a short checklist to add the safety event to our dashboards, find saved GitHub tokens before opting in, and update any Copilot launch scripts, and link me to the official changelog or docs for each step instead of inventing names.