mirror of
https://github.com/block/buzz.git
synced 2026-08-18 06:50:31 +02:00
Recognize Claude adapters launched through a JS runner (`npx`, `node`, `bunx`) by the package in their arguments. Matching the command name alone spawned the same adapter with no isolation, and the fallback was silent; a Claude-looking command that still cannot be confirmed now warns that it is unisolated, and a confirmed one logs that it is. Project `user.name`, `user.email`, and a `nostr` credential helper from the operator's global git config into the disposable profile. Redirecting HOME hides ~/.gitconfig, which otherwise costs the agent its commit identity and its NIP-98 push credential against Buzz's own git server. Only those keys cross the boundary: a keychain or `!shell` helper would hand the agent the operator's stored credentials, and `GIT_CONFIG_GLOBAL` now passes through as the explicit opt-out. Also allowlist the proxy variables — an egress-proxied host has no route to the model API without them, and they carry no credential material — plus `USERNAME`, and redirect `HOMEDRIVE`/`HOMEPATH` so Windows tooling that predates `USERPROFILE` cannot resolve the operator's home. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Signed-off-by: Eli Foster <efoster@squareup.com>