mirror of
https://github.com/block/buzz.git
synced 2026-08-18 06:50:31 +02:00
The desktop record was the authority for an agent's avatar: on every agent start and on app-launch restore, a fire-and-forget task called reconcile_agent_profile, which recomputed the avatar from the local ManagedAgentRecord and republished kind:0 whenever it diverged from the relay. That healed a self-set avatar back to the device default — the one identity field desktop still overwrote without an explicit user action. Remove the two non-explicit kind:0 writers (the start-path spawn in start_managed_agent and the restore loop in restore_managed_agents). Desktop now publishes kind:0 only on explicit user action — agent creation and rename/model-edit save, both of which call sync_managed_agent_profile directly and are untouched. With both call sites gone, the reconcile chain is orphaned, so it is deleted rather than left as dead code: reconcile_agent_profile, resolve_legacy_avatar, profile_needs_sync, the ProfileReconcileData struct, and the now-unused relay helpers query_agent_profile / AgentProfileInfo, plus their unit tests. One behavior change: reconcile_agent_profile also performed a one-shot legacy-avatar backfill for pre-PR-921 records with no stored avatar_url. That backfill was coupled to the unwanted background healer; preserving it would reintroduce an implicit background kind:0 writer. A legacy agent now backfills on the next explicit edit-save instead of silently on start. No relay changes. Agent signing keys remain in the keyring. Co-authored-by: Tyler Longwell <tlongwell@block.xyz> Signed-off-by: Tyler Longwell <tlongwell@block.xyz>
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