mirror of
https://github.com/block/buzz.git
synced 2026-11-03 16:01:35 +00:00
Implements the claude-config-gaps plan of record (B1/B2/B3/B6/B7): B1/B2 — Paired atom injection at spawn: CLAUDE_CONFIG_DIR=<managed-root>/claude/<pubkey> and CLAUDE_SECURESTORAGE_CONFIG_DIR="" so each Claude agent has an isolated config root while sharing the owner's default Keychain credential namespace. Generated as a typed ClaudeLaunchPolicy at spawn time, never persisted. Remote agents are excluded. B7 — Layered settings.json projection at spawn: owner ~/.claude/settings.json is read as a base layer; Buzz canonical fields (effortLevel) are applied as an overlay; protected env keys (model authority, credential roots, isolation flags, provider/auth routing, BUZZ_* and NOSTR_* prefixes) are stripped from the base env object before merging. Missing/unreadable owner base degrades to overlay-only with a logged warning. Spawn fails if the projection write fails (B7.5 — never launch on wrong config). B3 — Config root cleanup on agent deletion: cleanup_claude_config_root removes the per-agent directory after the record is gone; validation rejects non-hex pubkeys and traversal attempts; filesystem errors are swallowed so cleanup never blocks deletion. B6 — effort_level added to spawn_config_hash so effort changes raise the restart badge. New module: managed_agents/claude_config — ClaudeLaunchPolicy, is_launch_policy_protected_key predicate (single source of truth for projection and launch assembly), project_settings_json, write_projected_settings, cleanup_claude_config_root. 28 tests covering all contract obligations. Closes #2692, #2884, #3371, #3493. Does not close #2265, #4004 (tracked as follow-up in PR). Co-authored-by: Will Pfleger <pfleger.will@gmail.com> Signed-off-by: Will Pfleger <pfleger.will@gmail.com>
Buzz
Desktop chat shell with:
- Tauri + React + TypeScript + Vite
- Tailwind CSS
- shadcn/ui-ready shared components
- Biome (lint/format/check)
- Feature-driven frontend structure
Scripts
pnpm dev- run the web frontendpnpm tauri dev- run the desktop apppnpm build- typecheck and build frontendpnpm typecheck- TypeScript checkspnpm lint- Biome lintpnpm format- Biome format (write)pnpm check- Biome check
Structure
src/shared- reusable app-wide code (ui,lib,styles)src/features- feature modules (vertical slices)src/app- top-level app composition