From 4add93a1950d9dbabd0a49d6db780c68c073eea8 Mon Sep 17 00:00:00 2001 From: Rootiest Date: Tue, 29 Sep 2026 03:54:59 -0400 Subject: [PATCH 1/2] fix(claude): strip C3 telemetry opt-out so Remote Control works 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. --- functions/claude.fish | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/functions/claude.fish b/functions/claude.fish index d52ab2c..b9660b5 100644 --- a/functions/claude.fish +++ b/functions/claude.fish @@ -31,6 +31,13 @@ # # All arguments are forwarded verbatim to the real claude binary. # +# When the C3 privacy override is active, DO_NOT_TRACK and +# DISABLE_TELEMETRY are removed from the claude process environment +# only. claude-code turns off feature-flag evaluation when either is +# set, and Remote Control (/remote-control, --remote-control) is gated +# on a feature flag, so the global opt-out otherwise disables it. This +# applies even when the C1 wrapper behavior is disabled. +# # Opinionated component (C1): when disabled via __fish_config_op_aliases # (or the __fish_config_opinionated master), the command is passed through # to the real claude binary unchanged. @@ -46,13 +53,16 @@ # claude --resume # claude "Explain the recent changes" function claude --wraps=claude --description 'claude wrapper: ensures AGENTS/ is scaffolded before launch' - if not __fish_config_op_enabled (status current-function) - command claude $argv - return $status + # Remote Control needs feature flags, which the C3 privacy vars disable + set -l strip + if __fish_config_op_enabled config.fish privacy + set strip -u DO_NOT_TRACK -u DISABLE_TELEMETRY end - agents-init --quiet - agents-vault --quiet + if __fish_config_op_enabled (status current-function) + agents-init --quiet + agents-vault --quiet + end - command claude $argv + env $strip claude $argv end -- 2.54.0 From 6ed3ada5e4a743002aabfb2cb4fb883a440a9279 Mon Sep 17 00:00:00 2001 From: Rootiest Date: Tue, 29 Sep 2026 03:59:24 -0400 Subject: [PATCH 2/2] docs(c3): note claude wrapper strips telemetry opt-out for Remote Control Claude-Session: https://claude.ai/code/session_015eE4sQqrZ8yKGkTMf58shs --- .../03-c3-key-and-environment-overrides.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/docs/manual/08-components-reference/03-c3-key-and-environment-overrides.md b/docs/manual/08-components-reference/03-c3-key-and-environment-overrides.md index 4c10387..0607b6c 100644 --- a/docs/manual/08-components-reference/03-c3-key-and-environment-overrides.md +++ b/docs/manual/08-components-reference/03-c3-key-and-environment-overrides.md @@ -60,3 +60,9 @@ unit, not independently toggleable from each other. `$DO_NOT_TRACK` and `$DISABLE_TELEMETRY` environment variables for telemetry opt-out across CLI tools, runtimes, and AI agents. +NOTE: +The `claude` wrapper removes both variables from the claude process +only. claude-code turns off feature-flag evaluation when either is set, +and Remote Control (`/remote-control`, `--remote-control`) depends on a +feature flag. Every other tool still receives the opt-out. + -- 2.54.0