Skip to content

Commit 239f840

Browse files
authored
Merge pull request #372 from trailofbits/release-v0.5.2
Release v0.5.2
2 parents 5bbdb78 + 9d597fe commit 239f840

3 files changed

Lines changed: 47 additions & 3 deletions

File tree

CHANGELOG.md

Lines changed: 45 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,23 @@
11
# Changelog
22

3-
## Unreleased
3+
## v0.5.2
44

55
### New features
66

7+
- **`coop model` — route a VM at a host-side local model** (#352) —
8+
Points Claude Code and Codex at a local model server (Ollama, LM
9+
Studio, vLLM, llama.cpp) running on the host instead of the cloud,
10+
configured per tool under `[claude.local_model]` /
11+
`[codex.local_model]` in `config.toml`. `coop model <vm>` reports the
12+
per-tool mode and resolved endpoint; `coop model <vm> local` routes
13+
the VM at the local model(s) and `coop model <vm> remote` restores
14+
the cloud defaults. The selection is a persisted per-VM setting (not
15+
a per-launch flag), so it applies to `coop shell`, `coop claude`,
16+
`coop codex`, and VS Code alike; switching writes guest config over
17+
SSH with no rebuild and is re-applied on the next boot. A
18+
`localhost`/loopback `host_url` is rewritten to the backend's
19+
guest-visible host automatically.
20+
721
- **`coop codex` bypasses Codex's sandbox by default** (#353) — `coop codex`
822
now launches Codex with `--dangerously-bypass-approvals-and-sandbox`, so it
923
runs unrestricted like `coop claude`. The VM is the isolation boundary, and
@@ -21,6 +35,36 @@
2135
instance's name, index, IP, and workspace association. Both require a
2236
stopped instance; `commit --force` overwrites an existing image name.
2337

38+
### Fixes
39+
40+
- **OAuth-token users no longer land in Claude Code's onboarding wizard**
41+
(#87) — Running `coop claude` with subscription auth
42+
(`CLAUDE_CODE_OAUTH_TOKEN` forwarded into the guest) dropped the user
43+
into the first-run theme/login wizard, whose login step ignores the
44+
token. Claude Code gates the wizard on `hasCompletedOnboarding` in
45+
`~/.claude.json`, which coop never staged. coop now seeds that flag on
46+
boot when an OAuth token is forwarded and the flag is not already set.
47+
Idempotent and a no-op for API-key and no-credential users. Reverts
48+
when anthropics/claude-code#8938 is fixed upstream.
49+
50+
- **Installed Claude plugins survive a stop/start cycle** (#350) —
51+
`write_managed_claude_settings` rewrote `~/.claude/settings.json` from
52+
scratch on every boot with only a `permissions` block, deleting the
53+
`enabledPlugins` and `extraKnownMarketplaces` keys Claude Code uses to
54+
track installed plugins and marketplaces. Plugins installed on first
55+
boot then showed as uninstalled in `/plugins` after a restart. coop now
56+
merges its managed `permissions` into the existing file, preserving
57+
those keys.
58+
59+
- **`~` is expanded in every `config.toml` path field** (#349, #351) — A
60+
leading `~` was only expanded for `claude.config_dir`,
61+
`codex.config_dir`, and `claude.marketplaces`; other host-path fields
62+
(`data_dir`, `firecracker_bin`, `vm.kernel_path`, per-profile
63+
`marketplaces`) kept a literal `~`, so e.g. `data_dir = "~/coop-data"`
64+
resolved to a literal `./~/coop-data` directory. Expansion now happens
65+
at deserialization via a `ConfigPath` newtype, so every path field —
66+
including ones added later — is expanded on every load path.
67+
2468
## v0.5.1
2569

2670
### New features

Cargo.lock

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "coop"
3-
version = "0.5.1"
3+
version = "0.5.2"
44
edition = "2024"
55
description = "Isolated VM environment for running Claude Code"
66

0 commit comments

Comments
 (0)