Skip to content

fix: disable Claude auto-updater in all cac-managed environments#62

Merged
nmhjklnm merged 3 commits intomasterfrom
fix/disable-autoupdater
Apr 2, 2026
Merged

fix: disable Claude auto-updater in all cac-managed environments#62
nmhjklnm merged 3 commits intomasterfrom
fix/disable-autoupdater

Conversation

@nmhjklnm
Copy link
Copy Markdown
Owner

@nmhjklnm nmhjklnm commented Apr 2, 2026

Problem

When a new cac environment is created and Claude starts for the first time, it has no settings.json entry to disable auto-updates. Claude triggers its auto-updater mid-session, re-execs a new binary directly (not through the cac wrapper), bypassing:

  • fingerprint hook (hostname/MAC spoofing lost)
  • dns-guard (telemetry unblocked)
  • timezone/locale settings

The session UI still shows the old version number, but /usage reveals the real timezone — the classic symptom.

Root cause

Claude Code migrated the "disable auto-updates" mechanism from autoUpdates: false in .claude.json to DISABLE_AUTOUPDATER=1 in settings.json. cac's _write_env_settings template didn't include this field, so new envs were left unprotected.

Fix

  • src/templates.sh — add env.DISABLE_AUTOUPDATER: "1" to the settings.json template written on env create
  • src/cmd_setup.sh — in _ensure_initialized, patch all existing env settings.json files to add the field if missing (idempotent, runs on every cac invocation)

No .claude.json is touched.

nmhjklnm added 3 commits April 2, 2026 02:13
Claude's auto-updater runs mid-session and re-execs a new binary directly,
bypassing the cac wrapper (no fingerprint hook, no timezone spoofing, no
dns-guard). Claude Code migrated the disable mechanism from .claude.json
to settings.json env.DISABLE_AUTOUPDATER=1.

- _write_env_settings: add DISABLE_AUTOUPDATER=1 to new env settings.json
- _ensure_initialized: patch all existing envs on every cac invocation (idempotent)
@nmhjklnm nmhjklnm merged commit 07ccc5f into master Apr 2, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant