fix(claude): strip C3 telemetry opt-out so Remote Control works #181

Merged
rootiest merged 2 commits from fix/claude-telemetry-remote-control into main 2026-09-29 08:19:41 +00:00
Owner

Problem

The C3 privacy override exports DO_NOT_TRACK=1 and DISABLE_TELEMETRY=1 globally. When either one is set, claude-code turns off feature-flag evaluation. Remote Control (/remote-control, --remote-control) is gated on a feature flag, so it stopped working without any error. claude doctor reported:

- Feature-flag evaluation disabled (disabled by DISABLE_TELEMETRY)

Fix

  • functions/claude.fish: whenever the C3 privacy override is active, the wrapper runs claude through env -u DO_NOT_TRACK -u DISABLE_TELEMETRY. Only the claude process loses the opt-out; the parent shell and every other tool keep it. This check does not depend on the C1 wrapper gate, so it still applies when C1 is off. The exit status passes through unchanged.
  • docs/manual/.../03-c3-key-and-environment-overrides.md: added a NOTE under privacy that explains the exception. CI regenerates the generated docs.

Verification

  • Stub-binary test: with C3 on, the vars are stripped in the child and remain set in the parent, and exit status 7 propagates. With __fish_config_op_overrides=0, the vars pass through.
  • Ran claude doctor through the wrapper from a fresh login shell. It reports Control this session from claude.ai/code or the Claude mobile app and lists no failed checks.
  • tests/run-tests.fish: 919/919 passed, exit 0. docs/verify-manual.py: 89/89 after concat regen.

Out of scope (local, not in repo)

Remote Control also requires talking to api.anthropic.com directly. ANTHROPIC_BASE_URL proxy settings were removed from ~/.claude/settings.json and ~/.config/.user-dots/fish/local.fish by hand.

https://claude.ai/code/session_015eE4sQqrZ8yKGkTMf58shs

## Problem The C3 privacy override exports `DO_NOT_TRACK=1` and `DISABLE_TELEMETRY=1` globally. When either one is set, claude-code turns off feature-flag evaluation. Remote Control (`/remote-control`, `--remote-control`) is gated on a feature flag, so it stopped working without any error. `claude doctor` reported: ``` - Feature-flag evaluation disabled (disabled by DISABLE_TELEMETRY) ``` ## Fix - `functions/claude.fish`: whenever the C3 privacy override is active, the wrapper runs claude through `env -u DO_NOT_TRACK -u DISABLE_TELEMETRY`. Only the claude process loses the opt-out; the parent shell and every other tool keep it. This check does not depend on the C1 wrapper gate, so it still applies when C1 is off. The exit status passes through unchanged. - `docs/manual/.../03-c3-key-and-environment-overrides.md`: added a NOTE under `privacy` that explains the exception. CI regenerates the generated docs. ## Verification - Stub-binary test: with C3 on, the vars are stripped in the child and remain set in the parent, and exit status 7 propagates. With `__fish_config_op_overrides=0`, the vars pass through. - Ran `claude doctor` through the wrapper from a fresh login shell. It reports `Control this session from claude.ai/code or the Claude mobile app` and lists no failed checks. - `tests/run-tests.fish`: 919/919 passed, exit 0. `docs/verify-manual.py`: 89/89 after concat regen. ## Out of scope (local, not in repo) Remote Control also requires talking to `api.anthropic.com` directly. `ANTHROPIC_BASE_URL` proxy settings were removed from `~/.claude/settings.json` and `~/.config/.user-dots/fish/local.fish` by hand. https://claude.ai/code/session_015eE4sQqrZ8yKGkTMf58shs
rootiest added the Kind/BugArea/FunctionsArea/Docs labels 2026-09-29 07:59:42 +00:00
rootiest added 2 commits 2026-09-29 07:59:43 +00:00
claude-code disables feature-flag evaluation when DO_NOT_TRACK or
DISABLE_TELEMETRY is set, and Remote Control is gated on a feature flag.
The global C3 privacy override therefore silently disabled
/remote-control and --remote-control. The wrapper now removes both
variables from the claude process environment only, whenever the C3
privacy override is active, independent of the C1 wrapper gate.
docs(c3): note claude wrapper strips telemetry opt-out for Remote Control
CI / test (pull_request) Successful in 2m44s
CI / github-mirror (pull_request) Skipped
CI / docs (pull_request) Successful in 1m38s
6ed3ada5e4
Claude-Session: https://claude.ai/code/session_015eE4sQqrZ8yKGkTMf58shs
rootiest merged commit 8dd3fce566 into main 2026-09-29 08:19:41 +00:00
rootiest deleted branch fix/claude-telemetry-remote-control 2026-09-29 08:19:41 +00:00
Sign in to join this conversation.
No Reviewers
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: rootiest/fish-config#181