mirror of
https://github.com/block/buzz.git
synced 2026-11-02 07:22:55 +00:00
Fix five gaps in Claude Code agent configuration in Buzz Desktop. Buzz sets config via env vars at spawn and ACP messages at runtime; file layout on disk stays the owner's. Model (fixes #2692): ANTHROPIC_MODEL is injected at local claude spawn as the single startup model authority. BUZZ_ACP_MODEL is removed from the spawned env to prevent two simultaneous model authorities. Remote claude deploys receive ANTHROPIC_MODEL in policy_env, never BUZZ_ACP_MODEL. PermissionMode Auto (fixes #2884): adds the Auto variant to PermissionMode with wire string "auto" and tests. The adapter handles graceful downgrade when the active model does not support it. Effort end-to-end via ACP (B5): EffortPicker in the config panel discovers the thought_level configId from the session cache (never hardcoded) and calls set_config_option. The harness verifies the configId, forwards to the adapter, and emits an ack carrying category: "thought_level" only on a real forward. The observer persists the canonical value only on ok+category. At next session creation, desired_effort is applied via session_set_config_option so the persisted default takes effect on first turn after a restart. Honest acks: no fabricated ok anywhere. Synthetic acks (unknown configIds) carry no category so the observer cannot persist them. the agent's effective CLAUDE_CONFIG_DIR env var (record > persona > global), falling back to ~/.claude/ when unset. MCP config stays at ~/.claude.json regardless (CLAUDE_CONFIG_DIR does not remap the global MCP config file). The panel shows a Keychain caveat note when a custom dir is active: Claude keys its login to the config-dir path, so a custom dir creates a fresh Keychain namespace and the agent needs re-authentication unless the user also manages CLAUDE_SECURESTORAGE_CONFIG_DIR. Closes #2692, #2884, #3493 Co-authored-by: Will Pfleger <pfleger.will@gmail.com> Signed-off-by: Will Pfleger <pfleger.will@gmail.com>