Files
buzz/desktop
Michael Neale aef3921c1e fix(desktop): strip inherited agent config by prefix, not by name
The previous fix removed GOOSE_MODEL and GOOSE_PROVIDER: the two keys
that caused the observed bug. That is a denylist of length two. GOOSE_MODE,
GOOSE_CONTEXT_LIMIT, GOOSE_MAX_TOKENS, GOOSE_THINKING_EFFORT,
OPENAI_API_KEY and the rest still reached the agent from the developer's
login shell -- the same bug waiting on a different variable.

Strip by prefix instead: GOOSE_, ANTHROPIC_, OPENAI_, OPENROUTER_,
DATABRICKS_. That closes the class, including variables goose adds later.

Deliberately not a whole-environment allowlist. Agents run shell tools
that need the developer's PATH, HOME, SSH_AUTH_SOCK, proxy settings and
toolchain vars; an allowlist that missed one would break tools silently,
which is worse than the bug being fixed. Agent configuration is Buzz's
to own -- the rest of the shell is the user's.

The test now supplies inherited keys explicitly instead of reading the
real environment. As written before it passed only because my own shell
exports GOOSE_*; on a clean machine it asserted nothing.

Desktop suite 2401 green, clippy and fmt clean, ratchet passes.

Signed-off-by: Michael Neale <michael.neale@gmail.com>
Co-authored-by: Michael Neale <michael.neale@gmail.com>
2026-08-12 15:23:14 +10:00
..
2026-08-03 21:51:17 -04:00
…

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 frontend
  • pnpm tauri dev - run the desktop app
  • pnpm build - typecheck and build frontend
  • pnpm typecheck - TypeScript checks
  • pnpm lint - Biome lint
  • pnpm 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