Files
DuncanandWill Pfleger 0ebb2a753b feat(acp): enforce deterministic agent git commit identity
Agent sessions could commit under the human operator's ambient git
identity: only buzz-dev-mcp's shim applied the nostr author/signing
GIT_CONFIG_* env, and only to its own shell-tool children. The native
shells of claude-code, codex, and goose never saw it, so a bare
`git commit` there resolved to whatever the repo/global config carried
— erasing the AI-attribution signal (e.g. block/buzz #3140).

Make the identity machine-managed across every harness:

- New `buzz-git-identity` crate holds the pure author/email/signing/
  keyfile logic as the single source of truth, consumed by both the
  shim and the harness so an agent commits under a byte-identical
  identity regardless of which surface applied it.
- A `git` enforcement wrapper (installed on PATH ahead of the real
  binary) scrubs GIT_AUTHOR_*/GIT_COMMITTER_* from the child env,
  rejects `-c user.*`, `--config-env=user.*`, `--author`, and
  `--reset-author`, and on push refuses any outgoing commit not
  authored by the agent identity, then execs real git.
- The harness lifts the identity + NIP-GS signing config onto the
  agent-runtime child and installs the wrapper plus the nostr
  signer/credential helpers via buzz-acp's own multicall, so native
  shells of all runtimes inherit both. Composed over the desktop's
  per-URL credential helper; skipped when no nostr key is present.
- Prompt guidance (base_prompt.md, nest_agents.md) updated: identity
  is machine-managed; credit the operator via Co-authored-by/
  Signed-off-by trailers, never user.name/email/-c/--author.

Co-authored-by: Will Pfleger <pfleger.will@gmail.com>
Signed-off-by: Will Pfleger <pfleger.will@gmail.com>
2026-08-17 18:49:18 -04:00
..
2026-08-03 21:51:17 -04:00
2026-03-09 13:02:11 -07:00
2026-06-11 15:06:24 +00:00
2026-03-09 13:02:11 -07: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