mirror of
https://github.com/block/buzz.git
synced 2026-08-18 06:50:31 +02:00
Agents are now the only concept users touch. Persona records remain a pack-internal primitive; nothing in the UI creates, lists, or edits them. - Agents grid: UnifiedAgentsSection renders one card per managed agent in a single flat grid with a new AgentActionsMenu (Edit, Duplicate, Add to channel, Export, Remove). Persona-keyed grouping, persona cards, and the persona profile-panel path are deleted (unifiedAgentGroups, AgentGroupRows, ManagedAgentRow, PersonaActionsMenu, PersonaIdentity, PersonaCatalog*, PersonaLibraryEntryPoints, usePersonaActions, and the persona dialog state helpers) - Create Agent wizard: new CreateAgentStartDialog (blank, built-in template, or import from file) hands an AgentDraft to CreateAgentDialog; submit only creates a managed agent — no persona record. PersonaDialog is gone; batch import creates agents directly; the system prompt is a top-level "Agent instructions" field with model/provider fields shared via AgentModelProviderFields - Duplicate opens the wizard prefilled from the source agent record's pinned fields (prompt, model, provider, env vars, avatar, runtime) - Teams: TeamDialog picks managed agents and stores pubkeys via the unified TeamCardMember model (pack persona members render read-only); TeamsSection, import/export, and AddTeamToChannelDialog resolve members from agent_pubkeys plus pack persona_ids, deploying pack personas through the existing persona path - Channel deploy: AddChannelBotDialog lists managed agents (AddChannelBotAgentsSection + useInChannelAgentPubkeys) and attaches existing agents instead of spawning persona instances; QuickBotBar and the persona section/runtime-override helpers are deleted. The dialog also prevents open-autofocus: focus landing on the first agent chip opened its tooltip, so the first Escape dismissed the tooltip layer instead of closing the dialog - Sharing: PersonaShareDialog, catalog-visibility localStorage, and the standalone catalog dialog are removed — Export in the card menu is the sharing path - Copy sweep: remaining user-visible "persona" strings renamed (config provenance is "Inherited from agent profile", delete/import/toast copy, ModelPicker, EnvVarsEditor); profile panel actions are agent-centric and the profilePersona route param is gone; channel templates resolve agent pubkeys, persona ids, or builtin template ids polymorphically; the Fizz welcome guide spawns from its AgentTemplate - shared/api: AgentTemplate type, agentPubkeys on team types, provider on CreateManagedAgentInput, listAgentTemplates/exportAgentToJson bindings; e2eBridge mocks the new surface for the Playwright suites; colocated unit tests (.test.mjs) updated alongside their sources Co-authored-by: Taylor Ho <taylorkmho@gmail.com> Signed-off-by: Taylor Ho <taylorkmho@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