fix(desktop): apply Claude models and run Windows installers natively - #2696
fix(desktop): apply Claude models and run Windows installers natively#2696tagadearpit wants to merge 1 commit into
Conversation
Signed-off-by: Arpit Tagade <143588157+tagadearpit@users.noreply.github.com>
|
🤖 hey @tagadearpit — thank you for this contribution. Closing it, with a note on each half, since it's really two changes and they land differently. The Windows installer half is superseded by #2750 ( The Claude half — setting |
…itch (#2795) ## Summary Fixes #2794. Related: #2692. `resolve_model_switch_method()` reads the `configId` key from each `session/new` `configOptions` entry and skips entries that lack it. `claude-agent-acp` (v0.61.0) keys its entries with `id`, so every model-category entry was skipped, the desired model never matched, and Claude Code sessions fell back to the CLI default from the user's `~/.claude/settings.json`. The only trace was a `pool::model` WARN that never reaches the per-agent log files. This is the ACP-side half of the symptom reported in #2692. The open desktop-side PRs (#2695, #2701, #2696) inject `ANTHROPIC_MODEL` at spawn, which masks the problem for spawn-time selection but leaves the config-option switch path broken. ## Changes - `resolve_model_switch_method()` accepts either `configId` or `id` when extracting the config id. The set request is unchanged: the ACP SDK schema takes `configId` as the request param and the adapter resolves it against its `id`-keyed entries, so only the read side needed fixing. - Regression test with an `id`-keyed `configOptions` payload mirroring the real adapter response (including `models: null`, so the unstable fallback path cannot rescue the match). - Doc comment on `extract_model_config_options()` notes the key drift. ## Testing `cargo test -p buzz-acp --lib`: 599 passed, 0 failed. The new test fails on main and passes with this change. Verified against the real adapter: a stdio JSON-RPC probe of the bundled `claude-agent-acp` 0.61.0 confirms `session/new` returns `id`-keyed config options with `opus[1m]` present as a value, and the SDK's `SetSessionConfigOptionRequest` schema accepts `{sessionId, configId, value}` as sent by `session_set_config_option()`. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Signed-off-by: chillerno1 <gh.chiller@pm.me> Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
Summary
ANTHROPIC_MODELfrom the structured Claude Code model picker at spawn timeANTHROPIC_MODELas derived configuration so stale custom environment values cannot override later picker changesRoot cause
Claude Code's runtime catalog had no model environment variable, so the picker value was saved but never reached the spawned Claude process. On Windows, Claude and Codex installer scripts were invoked through Git Bash; MSYS path conversion could turn
C:paths into invalid arguments for native tools such astar.Closes #2692
Closes #2688
Issue #2690 is intentionally not duplicated here: upstream PR #2694 already addresses the macOS artifact-name collision.
Validation
cargo fmt --all -- --checkgit diff --checkblock/buzz:main, with only the five intended filespkg-configand the required GLib/GObject development libraries are unavailable; CI should run the full platform matrix.