Files
buzz/CHANGELOG.md
DuncanandWill Pfleger 1f37a26ae7 fix(relay): reject unbracketed IPv6 in BUZZ_ADMIN_HOST at config parse
A bare IPv6 admin host (BUZZ_ADMIN_HOST=::1) passed authority validation
but then interpolated unbracketed into the NIP-11 admin_api advertisement and
the NIP-98 u-tag canonical URL, yielding http://::1 — which no URL parser
accepts (an IPv6 authority must be bracketed per RFC 3986). Desktop discovery
rejected it and no client could match the malformed signed URL.

Reject the shape at config parse with an error naming the required bracketed
form, matching the documented exact-authority contract. This makes the
unbracketed multi-colon branch in scheme_for_host dead, so drop it. Replace the
auth.rs assertions that pinned http://::1 as expected output with parseability
tests; keep the advertised-vs-verified scheme-consistency invariant.

Co-authored-by: Will Pfleger <pfleger.will@gmail.com>
Signed-off-by: Will Pfleger <pfleger.will@gmail.com>
2026-08-12 23:20:30 -04:00

277 KiB
Raw Permalink Blame History

Changelog

Unreleased

  • Breaking: the relay admin moderation API (/api/admin/v1) now requires explicit authentication configuration when BUZZ_ADMIN_HOST is set. Choose one mode via BUZZ_ADMIN_AUTH (unset defaults to token):
    • BUZZ_ADMIN_AUTH=token (default): set BUZZ_ADMIN_TOKEN to exactly 64 hex characters (openssl rand -hex 32). Every request requires Authorization: Bearer. The dashboard prompts for the token on first load.
    • BUZZ_ADMIN_AUTH=disabled: admin API is unauthenticated. Use only when the admin API is already protected by a VPN or private ingress. The relay logs a WARN on every startup. The dashboard skips the token prompt.
    • BUZZ_ADMIN_AUTH=nip98: NIP-98 HTTP Auth. Every request must carry an Authorization: Nostr <base64 event> header containing a signed kind-27235 event. Authorized principals resolve from RELAY_OPERATOR_PUBKEYS (comma-separated 64-char hex pubkeys for config-backed Operators), RELAY_OWNER_PUBKEY (implicit Operator fallback when RELAY_OPERATOR_PUBKEYS is unset), and the relay_operators table (DB-managed Operator/Moderator roster). The dashboard requires a NIP-07 browser extension (nos2x or Alby); without one it shows an installation screen. Individual operator access is revocable without rotating a shared secret.
    • Any unrecognised value for BUZZ_ADMIN_AUTH is a startup error (typo-proofing). BUZZ_ADMIN_TOKEN set alongside disabled or nip98 is also a startup error.
    • Host/Origin matching is retained in all modes as defense-in-depth.
    • Migration from the previous BUZZ_ADMIN_INSECURE_NO_AUTH=true: replace with BUZZ_ADMIN_AUTH=disabled. The behavior is identical.
  • The relay NIP-11 relay-information document now advertises the admin API origin in an optional admin_api field (scheme://host[:port]) whenever the admin surface is configured (BUZZ_ADMIN_HOST set). The scheme follows the same loopback rule as NIP-98 u-tag verification (http for localhost/127.x/[::1], else https). Clients can auto-discover the admin console instead of requiring manual URL entry; the field is omitted entirely when no admin surface is configured. IPv6 admin hosts must be bracketed ([::1], [::1]:3000); an unbracketed literal is a startup error because it cannot form a valid URI authority.
  • RELAY_OPERATOR_API_ORIGIN is no longer required at boot when RELAY_OPERATOR_PUBKEYS is set. The allowlist is shared by the NIP-98 admin console (which needs no origin) and the community-provisioning endpoints (which do). Setting the pubkeys for the admin console no longer forces an origin; the relay logs a WARN naming the affected feature, and the community-provisioning endpoints (POST /operator/communities) fail closed at request time until RELAY_OPERATOR_API_ORIGIN is set.

v0.5.11

Desktop and shared changes

Other repository changes

Compare desktop-v0.5.10...desktop-v0.5.11

v0.5.10

Desktop and shared changes

Other repository changes

Compare desktop-v0.5.9...desktop-v0.5.10

v0.5.9

Desktop and shared changes

Other repository changes

Compare desktop-v0.5.8...desktop-v0.5.9

v0.5.8

Desktop and shared changes

Other repository changes

Compare desktop-v0.5.7...desktop-v0.5.8

v0.5.7

Desktop and shared changes

Other repository changes

Compare desktop-v0.5.6...desktop-v0.5.7

v0.5.6

Desktop and shared changes

Other repository changes

Compare desktop-v0.5.5...desktop-v0.5.6

v0.5.5

Desktop and shared changes

Other repository changes

Compare desktop-v0.5.4...desktop-v0.5.5

v0.5.4

Desktop and shared changes

Other repository changes

Compare desktop-v0.5.3...desktop-v0.5.4

v0.5.3

Desktop and shared changes

Other repository changes

Compare v0.5.2...desktop-v0.5.3

v0.5.2

v0.5.1

  • perf(desktop): move observer-feed archive and decrypt commands off main thread (#3415) (294c8c821)
  • fix(desktop): preserve shared agent fidelity (#3553) (f7a3988ba)
  • feat(agent): route Claude/GPT model families to their native gateway wire (#3538) (6438dedf8)
  • Refine community invite limits (#3529) (24d90d128)
  • feat(agent): fix Anthropic prompt caching with Databricks (+ MCP proxy/TLS passthrough) (#3463) (c405ad1d4)
  • feat: add explicit entry for claude-opus-5 in model config (#2831) (90e058ebf)
  • fix(desktop): clear stale thread new-message pill (#3411) (55a3ed7b9)
  • fix(ci): ratchet file sizes against the base tree (#3352) (9227bdf58)
  • feat(desktop): apply WebKit rendering workarounds at startup on Linux (#3271) (3ece4461d)
  • fix(desktop): stabilize flaky DM expansion E2E ordering assertions (#2004) (913d564ce)
  • fix(desktop): paint community rail full height (#3382) (1d3b810ad)
  • feat(desktop): add custom harness inline from agent dialogs (#3252) (b0503d80c)
  • feat(desktop): refine agent catalog sharing (#2439) (a35771fc4)
  • fix(desktop): keep drafts out of the Inbox All view (#3217) (3afa129ee)
  • fix(desktop): restore the inbox icon in the sidebar (#3341) (00ede2e7a)
  • fix(desktop): gate codex-acp on a minimum supported version (#3254) (4e3998f36)
  • feat(cli): add users set-status command for NIP-38 profile status (#3253) (60158fce3)
  • fix(composer): scope multiline block formatting (#3246) (5457c947a)

v0.5.0

  • feat(invites): add use-limited invite links (#3141) (d500c2d5c)
  • fix(node): bump Buzz-supplied Node runtimes past OpenClaw's >=24.15.0 floor (#3218) (98a7b1334)
  • fix(desktop): preserve thread anchor through layout reflow (#3212) (9810d8545)
  • feat(search): parse from:/in:/after:/before: and pass them in the filter (#2871) (cb2a265b5)
  • fix(desktop): fetch join policies through native networking (#2862) (0019f8076)
  • fix(desktop): republish agent identity records when a persona rename propagates (#2607) (7ca0bbd94)
  • fix(desktop): keep project Inbox previews compact (#3193) (de1396050)
  • Inbox refactor (#2045) (2bd4c24b7)
  • Fix composer selection formatting and drop overlay (#3172) (99da5b7eb)
  • Refine pending message status (#3153) (75588eaff)
  • fix(desktop): recover full local storage on startup (#3182) (174c38e4b)
  • fix(desktop): keep collapsed table separators out of spoilers (#3169) (4d8b676bb)
  • feat(desktop): redesign agent runtime settings (#3093) (d98da7389)
  • fix(desktop): use forward slashes for git credential.helper on Windows (#3023) (899531684)
  • chore(desktop): add AgentCreationPreview file-size override to unblock main CI (#3154) (b92a1f4bf)
  • fix(desktop): make the test loader work on Windows (#2758) (8bb43d519)
  • fix(desktop): make lint and unit-test gates work on Windows (#2943) (545bb46b8)
  • feat(desktop): add search to agent emoji picker (#2630) (313f793c8)
  • fix(desktop): keep identity key help dialog readable in dark mode (#2854) (be275cfc6)
  • feat(acp): title agent sessions from the agent and channel name (#3028) (f2fe3b63c)
  • feat(git): use agent display name as git author name (#3040) (18eef633d)
  • fix(deps): bump nostr to 0.44.6 for RUSTSEC-2026-0216 (NIP-44 remote DoS) (#3135) (31e2de196)
  • fix(desktop): read the newest pair-scoped harness log (#3134) (654f38490)
  • feat(desktop): handle project work from Inbox (#3117) (c5c4f390b)
  • fix(desktop): clarify identity key button when key exists (#2357) (87b3fcd3c)
  • Restore Goose and Buzz Agent to onboarding harness selection (#2731) (7fc0cc82d)
  • fix(desktop): render rich project work item content (#3100) (afb272bb7)
  • feat(acp): bring your own harness (BYOH) — generic ACP runtime seam + settings gallery (#2773) (95fdf9788)
  • feat(desktop): use collective mesh routing for Auto (#2825) (16d4ec335)
  • fix(desktop): strip legacy baked team instructions from stored prompts (#3035) (aee631448)
  • feat(agents): lower default agent parallelism from 24 to 10 (#3038) (5d8ede446)
  • Polish community rail and mobile pairing (#2972) (e6c90bb7c)
  • fix(desktop): remove bundled libsystemd from AppImage (#2353) (a31fc4d2f)
  • fix(desktop): make agent definition authoritative for model/provider/prompt (#1968) (8c0e8cb16)
  • chore(desktop): delete dead persona catalog UI cluster (#2886) (8e67cf399)
  • fix(desktop): surface install failures hidden by curl-pipe exit codes (#2892) (166c6655e)
  • Refactor managed-agent runtime into cohesive modules (#2974) (74b63e184)
  • fix(desktop): make Linux AppImage GStreamer work on non-Debian distros (#2176) (cc6c4d347)
  • refactor(desktop): remove Agent directory section from Agents page (#2290) (5d1233e84)
  • fix(desktop): enable arboard Wayland backend so Linux copies reach the Wayland clipboard (#2904) (ab7aa8b12)
  • fix(desktop): supervise and re-arm relay-mesh runtime (#2823) (aa51dab9d)
  • fix(agents): run live Databricks discovery instead of the fallback list (#2890) (8eb6e3eb6)
  • fix(desktop): retire prepend mode on every reader wheel (#2913) (07d0265cf)
  • fix(desktop): consolidate prepend scroll correction (#2855) (25e7864b3)
  • fix(desktop): track concurrent agent turns up to the harness maximum (#2882) (20bff5910)
  • fix(relay): preserve reconnect backoff (#2759) (499c5d349)
  • refactor(relay): expose reconnect timing policy (#2310) (2f0041595)
  • fix(desktop): clear stale working badges on agent stop/restart (#2803) (a64cc71f6)
  • fix(desktop): surface agent rename relay profile sync failure as a warning toast (#2279) (5e3d2e484)
  • fix(discovery): inject PATH into Codex adapter planning (#2767) (6ab3835f3)

v0.4.26

v0.4.25

  • fix(discovery): spawn PowerShell install commands natively on Windows (#2750) (f3981dbfe)
  • fix(desktop): use augmented PATH for model discovery subprocess (#2753) (3bd3a014c)
  • Improve huddle audio failure handling (#2578) (fb4a801ad)
  • fix(onboarding): show real install errors and fix concurrent install state (#2658) (9731cd818)
  • feat(node): add Windows managed Node.js fallback (win-x64 + win-arm64) (#2661) (596386ee5)
  • fix(desktop): parse runtime team instructions section (#2645) (269ef357f)
  • Match create-channel template selector styling (#2654) (72bbaece4)
  • feat(desktop): make pull request reviews actionable (#2510) (9081ab0ec)
  • fix(desktop): shared-compute usability — share toggle, usage indicator, model resync (#2448) (9cc9652c7)
  • fix(desktop): refine focused thread dismissal targets (#2644) (c86c4f59c)
  • Clarify agent harness defaults in create flow (#2601) (76aeae703)
  • fix: expose community icon control on open relays (#2640) (e341b09cb)

v0.4.24

  • fix(desktop): suppress Windows console flashes and reject WSL bash alias (#2587) (5afa16157)
  • fix(desktop): fix Windows PATH clobber and .cmd shim EINVAL (#2563) (cca16635d)
  • Gate default relay auto-connect behind release flag (#2589) (e67303f60)
  • fix(desktop): fast-track relay restart reconnects (#2579) (f3f7688c3)
  • fix(sharing): preserve agent/team snapshot tEXt chunks through media sanitization (#2438) (b096b0a15)
  • test(desktop): live relay kill/restart reconnect gate (#2583) (6a56c8bda)
  • fix(desktop): retry failed initial relay dials (#2564) (9ec52cfed)
  • Refine channel lifecycle settings (#2427) (daeaf7c33)
  • Fix avatar upload lifecycle edge cases (#2277) (80244f823)
  • fix(observer): eager archive hydration on panel open + 200-frame pages (#2574) (8cb05028b)
  • chore: Omit the Model control when an optional-model harness has nothing to select (#2262) (9cf953904)
  • fix(media): sanitize animated image uploads (#2524) (8f8f5fa5a)
  • fix(desktop): populate team instructions when opening the edit team dialog (#2565) (55c921124)
  • feat(desktop): add drag-to-reorder for community rail (#2549) (1e68c6c05)
  • fix(channels): strip leading hash prefixes from names (#2250) (d0ab3fdb0)
  • fix(desktop): allow skipping harness setup onboarding (#2360) (06e3d82b0)

v0.4.23

  • fix(desktop): strip GIF metadata extensions before upload (#2425) (47d7eb698)
  • feat(desktop): gate sign-out behind key backup + typed confirmation (#2424) (fd967c6ea)
  • feat(desktop+acp): spawn a harness per (agent, community) pair at GUI startup — warm sockets, lazy LLM pool (#2122) (61cc738ee)
  • Show team count separately in channel template rows (#2404) (6d04d279a)
  • fix(onboarding): skip community profile setup for existing relay members (#2300) (25f631870)
  • Unify sidebar chrome across themes (#2380) (f8fd055b9)
  • fix(desktop): refresh cached channel member names (#2258) (5a3b8176a)

v0.4.22

  • Keep avatar preview visible during upload (#2237) (f609fcee0)
  • fix(desktop): keep machine onboarding for unrecognized identities after reset (#2244) (fd55ab662)
  • fix(managed-agents): stale harness pin shadows runtime edits; add Restart quick action (#2252) (ec0e450f1)
  • fix(desktop): surface model discovery failures in agent config UI (#2246) (083f6d625)
  • Hide bundled harnesses from onboarding (#2233) (50f441216)
  • Restore npub copy option for private community joins (#2232) (9cd13f3d5)
  • fix(desktop): align onboarding runtime auth (#2229) (c1de3e7c0)
  • fix(desktop): survive degraded networks with rate-limit-aware relay client (#2197) (258cc9206)
  • feat(desktop): browse immutable repository tags (#2231) (c11b7b611)
  • Update built-in agent avatars (#2215) (396ce6473)
  • fix(mesh): dedupe models + retry throttled startup channel discovery (#2063) (97b8b22ee)
  • fix(desktop): keep project branches after reload (#2214) (001184395)
  • fix(git): make project branch workflows reliable (#2213) (166f27be4)
  • feat(desktop): manage project branches (#2212) (b2c38c775)
  • feat(cli): manage repository protection rules (#2193) (f94324598)

v0.4.21

  • fix(desktop): clarify data deletion action (#2208) (e315c498)
  • feat: brand authentication complete page (#2192) (1470ac3a)
  • fix(buzz-acp,buzz-agent): surface stall duration and fate (#2204) (cd6b573f)
  • fix(desktop): resolve activity feed showing channel UUID instead of message content (#2201) (c5d00a35)
  • feat(cli): add agents archive/unarchive/archived subcommands (#2173) (7d799206)
  • Simplify first-community onboarding choices (UI only) (#2194) (6ab45d75)
  • Fix persisted agent defaults display (#2182) (d538111b)
  • fix(timeout): unified turn-timeout fix — cap inheritance, steer renewal, activity-aware requeue, LLM stall surfacing (#2175) (0f86a608)
  • fix(desktop): scope draft store per workspace relay (#2179) (2eff2cb3)
  • fix(desktop): avoid forwarding click event as channel callback (#2174) (9ed843a0)
  • Polish agent defaults surfaces: app dropdowns + collapsed Advanced env vars (#2184) (8c77a0cf)

v0.4.20

  • fix(desktop): composite harness loader opacity (#2180) (77900e69)
  • fix(desktop): modal sign-in + branded communities onboarding page (#2147) (8a65d81f)
  • test(desktop): model membership relay in invite QR spec (#2178) (9ab52d4f)
  • fix(desktop): prefer live agent mentions (#2149) (a4dfead2)
  • fix(desktop): close focused threads on Escape (#2154) (9fb1a90b)
  • fix: skip membership lookup for open relays (#2107) (fc1db469)
  • fix(desktop): make invite QR downloadable (#2168) (144b4f6c)
  • Archive managed agents when deleted (#2135) (4d58deaf)
  • chore(deps): update rust crate rustls to v0.23.42 (#2151) (984645ec)
  • Add Agent Config Core: harness capability model behind agent config surfaces (#2158) (6881a337)
  • fix(desktop): derive default clone URL for relay-hosted repos (#2166) (21dbd326)
  • fix(desktop): mask composer rounded corners (#2165) (8024ce72)
  • feat(desktop): add PR merge conflict recovery (#2164) (4fe3835e)
  • fix(desktop): mask scrolled content behind channel and thread composers (#2163) (6ecc8946)
  • feat(desktop): add inline PR diff comments (#2162) (73ac59a0)
  • feat(desktop): add commit-scoped PR review decisions (#2161) (de2220a7)
  • fix(desktop): batch project work item queries (#2160) (ba07de36)
  • feat(desktop): make missing project checkouts actionable (#2159) (ac8c5261)
  • Fix harness default model states in onboarding (#2156) (a6432ab1)
  • Reduce agent config flags to canonical behaviors + disclosure presets (#2148) (ad990b0d)
  • fix(desktop): align inbox layout and draft details (#2143) (7f769b24)
  • fix(desktop): scope Emacs keys to lines (#2127) (9a251fbe)
  • feat(desktop): add fuzzy onboarding cards (#2141) (e84f3fe8)
  • Add back action to community profile onboarding (#2136) (1342fc56)
  • fix(desktop): restore channel header hidden behind shared backdrop (#2139) (916c67d1)
  • refactor(desktop): rename agent config files to agent-config family (#2140) (c5db0943)
  • feat(desktop): complete project git workflows (#2119) (ed432f91)
  • Add owned community onboarding (#2123) (cd0e7402)
  • Improve agent runtime settings (#2026) (2b0f5e9f)
  • fix(desktop): refine onboarding copy (#2130) (d04a4c97)
  • fix(ui): relabel agent owner attribution from "owned by" to "managed by" (#2133) (a1e977cd)
  • remove relay field from invite link step (#2131) (3881bff6)
  • Polish onboarding avatar capture (#2118) (46a63a86)

v0.4.19

v0.4.18

v0.4.17

  • fix(desktop): onboarding defaults — API key field and model search (#2081) (741610f13)
  • feat(desktop): show agent owners in messages (#2080) (463db6de3)
  • fix(desktop): restore onboarding provider choices (#2079) (b18a79476)
  • Fix Claude onboarding terminal popup (#2078) (f125f0868)
  • fix(desktop): complete request access flow (#2073) (426497a18)
  • fix(desktop): preserve profile descriptions across communities (#2068) (0dda0ad2f)
  • Fix membership-denied community onboarding recovery (#2072) (f347dcac2)
  • feat(desktop): add channel archive and delete actions (#2067) (929d3aa12)
  • fix(desktop): restore channel browsing and add recent sorting (#2065) (2cb7753fa)
  • feat(desktop): polish onboarding harness (#2039) (66a0f7bcb)
  • Expose model selection for provider-locked runtimes (#2071) (3ad180a60)
  • Speed up the Welcome kickoff and show the team arriving (#2066) (1fdb73e17)
  • Add identity key help and reveal toggle to machine onboarding (#2064) (1bdd93849)
  • fix(desktop): keep Private toggle when picking a channel template (#2070) (89bcbd826)
  • fix(agents): explain why Create/Save is disabled and fix Codex/Claude gate (#2050) (87dc4dccb)
  • fix(desktop): recover relay-closed subscriptions (#2060) (79598bdb3)

v0.4.16

  • Polish private key onboarding texture (#2051) (7873135a0)
  • Fix community profile onboarding back navigation (#2058) (385dde113)
  • fix(desktop): route text copies through native clipboard (#2054) (9f8285095)
  • BOT-1359: Continue onboarding after key import (#2056) (738d45636)
  • fix(desktop): route first community deep links into onboarding (#2055) (34ef70263)

v0.4.15

  • fix(desktop): honor selected onboarding runtime config (#2047) (0bbcafe9e)
  • Polish community onboarding flow (#2048) (2ea71de24)
  • fix(desktop): retry transient runtime installs and repoint Goose to official upstream (#2046) (51c2d1ca6)
  • fix(agents): anchor active-turn timer to authoritative start time (#2033) (4be5c6ae3)
  • Add preferred runtime onboarding (#2040) (c19e0ce2d)
  • fix(desktop): limit channel composer blur to input (#2038) (0e0383601)
  • Bug-bash round 2: table scroll, Goose instructions, workflow mention wake (#2034) (64b8fea6d)
  • feat(desktop): clean up Agents page copy and streamline agent defaults (#2031) (3e80b7666)

v0.4.14

  • fix(desktop): restore Doctor ACP login discovery (#2017) (e179f88ad)
  • feat(desktop): animate starter team onboarding (#2032) (1aab50e95)
  • fix(desktop): include exe dir and ~/.local/bin in provider discovery (#2007) (ac404ba67)
  • fix(desktop): close mention popup after an exact name + trailing space (#2030) (fb0a4d5e7)
  • test(desktop): harden observer archive policy regression coverage (#1994) (fd2eaac73)
  • Bug-bash: mention/code-span, feed titles, autocomplete, edit-mentions, draft routing, and right-click media Download (#2027) (084e442d2)
  • fix(desktop): keep mesh allowlist on transient roster query failure (#2024) (f205e6693)
  • Polish Buzz theme and sidebar (#1971) (2121fd045)
  • Welcome new users with a live agent team kickoff (#1998) (85fc64835)

v0.4.13

  • fix(desktop): compare relay media origins case-insensitively so uploads render when the saved community URL has uppercase characters
  • fix(desktop): invalidate stale media lookups so an in-flight relay-origin fetch cannot repopulate caches after a community reset

v0.4.12

  • fix(desktop): proxy authenticated relay media after cold-start community initialization
  • fix(desktop): keep shared-compute consumers admitted (WIP: multi-workspace publishing) (#2000) (5d77fa57)
  • feat(desktop): reskin provider, config, community, profile, and team onboarding pages (#2003) (f054df73)

v0.4.11

v0.4.10

  • feat(desktop): onboarding step dots, identity/key page restyle, overflow scroll (#1993) (f2522995c)
  • chore(desktop): add AppShell.tsx file-size override to unblock main CI (#1992) (db57bc8a2)
  • feat: add invite QR and mobile direct join (#1957) (648cbf361)
  • feat: open add community from deep links (#1970) (adb48311e)
  • fix(desktop): enforce observer archive policy reconciliation on internal builds (#1923) (896974554)
  • feat(desktop): streamline nostr identity pairing (#1974) (1eae8575e)
  • feat(desktop): ensure starter channels during onboarding (#1937) (74f3f2975)
  • test(desktop): make omission-preservation test discriminate on instructions (#1988) (2b015cb5d)
  • fix(desktop): omission must not wipe team persona_ids/instructions (#1985) (1e91fd473)
  • [codex] Prevent actor-tag UI impersonation (#1931) (c540ec967)

v0.4.9

  • Restyle onboarding: branded landing screen, yellow/gradient backgrounds, new starter avatars (#1982) (831c80c1a)
  • Guide CLI installation and subscription sign-in (#1980) (8d3666c5f)
  • unify channel add + search into one entry point (#1964) (3dd236eb6)
  • Apply optional relay join policy across join flows (#1894) (6c2d66757)
  • fix(desktop): preserve relaunch through mesh shutdown (#1966) (a1626f96c)
  • Persist agent audiences with native inline mentions (#1949) (19dc33bda)

v0.4.8

  • fix(desktop): restore default community join option (#1969) (a84fe13a8)
  • feat(desktop): refine Projects navigation and overview hierarchy (#1956) (158259d95)
  • Log handoff token counts (#1954) (ca8324d2c)
  • fix(onboarding): add Welcome finalize skip escape hatch (#1960) (7ed6422c1)
  • Welcome channel: Browse channels card, browser sorting, shortcut hint placement (#1948) (f20d79658)

v0.4.7

  • feat(desktop): confirm invites with an Opening-invite loading gate before machine onboarding (#1950) (2510a4b4c)
  • feat(desktop): remove theme selection from onboarding, default to Buzz + System (#1947) (2c08271ba)
  • fix(desktop): sentence-case runtime descriptions in onboarding setup (#1944) (36c3c4994)
  • feat(desktop): Projects v3 — overview redesign, activity feed, agent access & sync controls (#1851) (72a5c388d)
  • Rework first-launch community onboarding (#1936) (8688c0416)
  • fix(desktop): stop marking users away while active on the machine (#1942) (e1865cb7f)
  • fix(desktop): variant-aware connecting gate for first-run handoffs (#1938) (dd39b6249)
  • Redesign agent AI configuration and defaults (#1935) (2910ea45d)
  • Add Buzz-managed Node runtime for agent installs (#1930) (0722346b1)
  • feat(desktop): return nostr binding proof in browser fragment (#1933) (ccf7f1a2d)
  • Use selected relay for desktop pairing socket (#1934) (91be66a2d)
  • fix(desktop): allow editing built-in agents (#1928) (202201f3a)
  • fix(desktop): load downloaded mesh runtime on signed macOS builds (#1932) (32957692e)
  • feat(media): require auth for relay media reads (#1926) (f30876285)
  • fix(desktop): remove superseded built-in agents (#1929) (dbf2cfc21)
  • Move agent AI defaults into Settings (#1919) (3e90dd5dd)
  • feat(desktop): add Honey and Bumble starter agents (#1925) (335413461)
  • feat(desktop): expand owned team mentions (#1918) (470458d32)
  • Fix live agent reactions in Inbox and channels (#1921) (8212a8723)
  • refactor(desktop): unify page/section header hierarchy across Agents and Settings (#1912) (7fbdacb03)

v0.4.6

  • Polish agent and team sharing and snapshots (#1852) (2f3fa586f)
  • fix(desktop): filter punctuation from avatar initials (#1904) (63e099709)
  • fix(desktop): preserve snapshot attachment URLs (#1905) (1ab7bbfe4)
  • Chat-first agent creation via portable buzz CLI drafts (#1878) (54e174b5e)
  • feat(desktop): enable community rail by default (#1902) (55a46b063)
  • feat(desktop): redesign Nostr bind verification flow (#1850) (abfe78aaf)
  • fix(desktop): simplify sign out settings row (#1903) (3e8dae7ff)
  • feat(desktop): Send feedback modal + profile presence chip (#1756) (f5c33d333)
  • fix(desktop): seed timeline virtualization row heights (#1887) (406cf7911)
  • fix(desktop): dedupe react-dismissable-layer to stop modal menu → dialog freezes (#1899) (366567ac2)
  • fix(desktop): clean up Remind me later dialog footer and loading state (#1898) (40fe65095)
  • fix(desktop): let sidebar action card description wrap over multiple lines (#1891) (b36ee3e30)
  • mesh: upgrade runtime, enforce membership, add shared compute provider (#1656) (54638ff4b)

v0.4.5

  • test(desktop): remove stale collapsed home chrome check (#1871) (395a3f149)
  • fix(desktop): hide message action for inaccessible agents (#1883) (8ce9e7914)
  • feat(desktop): add API key field, global default indicators, and collapsed advanced (#1875) (1742dce7b)
  • fix(desktop): foreground app for deep links (#1880) (a26168f55)
  • chore(desktop): replace setup ? operators with clean exit (#1882) (4c106d878)
  • fix(desktop): remediate all onboarding dead paths (D1-D7) (#1856) (5bb619295)

v0.4.4

  • fix(desktop): allow staged updater commands (#1870) (109c2c526)
  • feat(teams): unify team model, snapshot sharing, and PNG memory parity (#1846) (448baeef7)
  • fix(desktop): always start agents and hide unavailable mesh (#1860) (37bc962cb)
  • Relay mesh: cross-pod tunnel + huddle transport (buzz-relay-mesh) (#1670) (ccb021d71)
  • feat(desktop): add Sign Out to Settings to reset and relaunch (#1842) (cf9723796)

v0.4.3

  • Stabilize persona and stream end-to-end tests (#1865) (916de4e4d)
  • refactor(clients): standardize product naming on community (#1858) (3e76481a1)
  • fix(desktop): retain live rows after window exhaustion (#1810) (fa6f4819b)
  • Add private product feedback sidecar (#1857) (af190c93e)
  • fix(desktop): resolve Doctor install shell and command detection on Windows (#1854) (1aec7ea7a)
  • fix(desktop): navigate to channel from inbox thread header (#1847) (ff11f26bc)
  • feat(desktop): surface needsRestart badge on live UI surfaces (#1853) (b1d323c4e)
  • fix(desktop): prevent menu-to-dialog UI lockups (#1839) (7f81d93eb)
  • feat(desktop): add conversation-style DM composer (#1768) (bb9d9b0c0)
  • feat(push): add public APNs gateway (#1770) (1c006822e)
  • fix(desktop): stabilize agent identity restore (#1831) (3370cd083)
  • fix(observer): align scroll-anchor ids with transcript display-block keys (#1849) (1df4a4e77)
  • [codex] Add view activity label to agent popover (#1748) (458c7f915)
  • ci(desktop): surface flaky E2E tests instead of retry-masking them (#1838) (a65340630)
  • fix(desktop): treat channel creator as member before 39002 provisioning (#1830) (7e62a25af)

v0.4.2

  • fix(desktop): unify observer feed scroll onto useAnchoredScroll (#1825) (d75c2e913)
  • fix(desktop): sync sidebar update card copy with global installing state (#1827) (b63a2e423)
  • fix(desktop): parse codex ACP plan entries[] into checklist (#1824) (34dcd13d5)
  • fix(desktop): resolve Git Bash for Windows shell tool via PATH/git/registry fallback (#1821) (020ac7f40)
  • feat(desktop): show read-only MCP server config (#1780) (51ee1c473)
  • fix(desktop): require user action before applying updates (#1820) (deed64a14)
  • fix(desktop): preserve selected inbox rows through reflow (#1817) (c06ddcf14)
  • fix(snapshot): send Buzz shares as PNG avatar cards (#1811) (a6cfd6551)
  • test(desktop): consolidate and stabilize scroll coverage (#1815) (d41b4c390)
  • fix(buzz-agent): support max effort for gpt-5.6 family (#1806) (e34e0974a)
  • fix(desktop): widen probe test timing margins for parallel pre-push (#1812) (fac79215a)
  • fix(desktop): keep pairing tests after production items (#1807) (68909629f)
  • chore(deps): update rust crate nostr to v0.44.4 (#1789) (f1f5002a9)
  • Add optional standalone pairing relay to Helm chart (#1799) (9b47c8548)
  • chore(ci): lint desktop Tauri crate in CI (#1801) (bea507d8a)
  • fix(desktop): preserve live events and window order across channel refreshes (#1802) (e09e94ab8)
  • fix(desktop): restore macOS navigation chrome alignment (#1797) (109800fe5)
  • fix(desktop): omit invalid snapshot imeta thumbnails (#1800) (b32f2c08f)
  • fix(desktop): centralize known-agent trust set in useKnownAgentPubkeys (#1703) (095f3c728)
  • chore(deps): update all non-major dependencies (#1778) (221aceb1c)
  • fix(desktop): pass augmented PATH to codex-acp version probe (#1794) (10ae66893)
  • feat(desktop): add team snapshot sharing commands (#1790) (150514f66)
  • feat(managed_agents): add buzz-team-snapshot v1 codec (#1784) (aceb5e045)

v0.4.1

  • feat(desktop): auto-restart setup-mode agents after adapter install, badge drift fallback (#1786) (11a286b9a)
  • Retain a stable message window in channel timelines (#1698) (b0ad2b66d)
  • refactor(desktop): remove legacy persona-card flows (#1781) (1fa91f569)
  • Serialize managed agent PATH tests (#1777) (1fc7488ea)
  • fix(desktop): stable inbox selection and scroll/draft preservation (#1760) (7e3252ea3)
  • feat(desktop): add buzz-agent-snapshot v1 export, import, sender-native send, and recipient card/import (#1753) (1580046b3)
  • refactor(desktop): remove vestigial MCP toolsets config (#1776) (dfec75b3c)
  • feat(desktop): add key backup and agent defaults to onboarding, make avatar optional (#1767) (d2e87e1ca)
  • fix(desktop): correct provider and model handling in agent config dialogs (#1764) (f3319dd11)
  • fix(desktop): cascade persona deletes and restart agents on global config save (#1766) (7c346d7f8)
  • fix(desktop): make doctor installs retryable with per-runtime progress and auth status (#1765) (25bb71475)
  • fix(codex): swap to @agentclientprotocol/codex-acp 1.x + detect outdated adapter (#1750) (6d1a77e49)
  • fix(desktop): show thread replies loader (#1773) (e07e02c0e)
  • fix(desktop): restore multi-image mosaic galleries (#1769) (2c41e9e6b)
  • Group channel membership events (#1713) (5dc70bd0b)
  • Fix desktop launch motion and reaction spacing (#1717) (89e2e2e4a)
  • fix(desktop): align sidebar search across themes (#1712) (53c177e34)
  • fix(desktop): Buzz theme flicker, white bar & accent-picker motion (#1681) (5e15a588e)
  • feat(desktop): surface Team Instructions as distinct observer section (#1759) (56d822dc2)
  • fix(desktop): separate system prompt from turn context (#1754) (84ec63aa2)
  • fix(desktop): preserve archived observer history (#1752) (51234bd89)
  • fix(desktop): surface codex config-parse failures and -32603 internal errors clearly (#1745) (ec3762552)
  • fix(desktop): fix workspace rail badge disappearance and persist mark-as-unread (#1747) (e8df6ba69)
  • chore(desktop): remove container-only npm-preflight E2E harness (#1749) (9895b4d39)
  • fix(desktop): preflight npm prefix writability in doctor installs (#1732) (58aee8f91)
  • fix(workspaces): exclude muted channels and unfollowed threads from rail unread badge (#1738) (ea1c75b0d)
  • feat(desktop): add explicit Edit avatar CTA in agent instance edit dialog (#1736) (26966aace)
  • fix(observer): order system prompt below current-session divider on restart (#1734) (67a2d047e)

v0.4.0

  • feat(desktop): default observer archive on for dev-nest builds (#1726) (d9e4edbbf)
  • feat(desktop): thread baked build env into global agent config UI (#1722) (2f2ad409a)
  • feat: relay invite links (mint + claim + landing page + deep link) (#1668) (2e529aab7)
  • fix(desktop): pass GlobalAgentConfig to spawn_config_hash in tests (#1721) (b97777350)
  • feat(desktop): global agent config defaults with readiness/spawn parity (#1448) (77c08365e)
  • fix(desktop): remove "Remove all stopped" bulk action from agents menu (#1720) (651efe8d9)
  • fix(desktop): retire single-member built-in Fizz team (#1718) (f12bd3689)
  • fix(desktop): hide relay mesh option when mesh-llm feature is absent (#1719) (f0b8f806f)
  • fix(desktop): propagate agent definition edits to instances and remove dead config knobs (#1715) (1f48860b7)
  • perf(desktop): thread panel rebuilt on every render — fix memo + add typing-latency benchmark (#1652) (9b2f0c8cb)
  • fix(drafts): stop clearing drafts on workspace switch and hide sent section (#1708) (e2d104f66)
  • fix(inbox): reply at same thread level as inbox item (#1714) (177fc30be)
  • fix(desktop): make @mention clicks reliably open the profile panel (#1705) (5f0d8309d)
  • fix(desktop): walk ancestor chain in orphan sweep exemption (#1711) (7fb215c4f)
  • fix(desktop): stop showing /dev/null in diff labels, keep type badge visible (#1704) (868c9ad05)
  • perf(desktop): stop re-rendering the app shell on every keystroke; fix two latent cache races it unmasked (#1692) (129c91a2b)
  • fix(observer): widen live subscription lookback to capture session/prompt (#1710) (715df2537)
  • test(desktop): stabilize custom emoji e2e (#1685) (20c40d176)
  • fix(observer): use lifecycle item title as verb instead of hardcoded "Status" (#1709) (95bc640a5)
  • chore(desktop): remove dead archive-migration and keyring load_readonly helpers (#1701) (389a956e0)
  • fix(desktop): stop losing imported identity on every launch (#1568) (e15f06857)
  • fix(desktop): use augmented PATH for readiness probes (#1613) (94ec2c2bc)
  • fix(desktop): isolate dev keyring from production and make BUZZ_SHARE_IDENTITY keyring-aware (#1680) (e5d215e3c)
  • fix(desktop): migrate Databricks V1→V2 records at boot and fix readiness gate (#1686) (1f2afce29)
  • B5 residue: inbound-event security hardening + persona→agent copy sweep (#1688) (f0e65589a)
  • fix(desktop): paginate complete channel directory (#1690) (b41cf3ffc)
  • fix: flush debounce on Tab/Enter to prevent stale autocomplete (#1661) (841282141)
  • fix(desktop): preserve agent timer state across workspace switches (#1679) (46613dcce)
  • fix(desktop): honor macOS title-bar double-click preference (#1674) (6b2147a5d)
  • feat(desktop): projects overview v2 — aggregate rail, PR review flow, commit detail, and straighter layout (#1677) (58fe9388c)
  • B5: one create path — behavioral quad activation, backfill, menu collapse, legacy dialog deletion (#1667) (3a7e40027)
  • Polish Buzz sidebar theme (#1671) (cdba2a08e)
  • fix(agents): harden structured error-code classification edge cases (#1663) (fc8a17445)
  • feat: add deeplink nostr identity binding flow (#1648) (cecd03142)
  • perf(desktop): cache parsed markdown across channel-switch remounts (#1635) (2b3246934)
  • fix(agents): surface provider errors structurally instead of raw dumps (#1653) (9b244ff22)
  • feat(relay,desktop): canonicalize agent definitions on kind:30175 (Phase 2) (#1655) (b2c63291f)
  • fix(desktop): scope observer feed by channel and add session-boundary dividers (#1634) (fd5d04de0)
  • feat(config-nudge): distinguish install/auth state in cli_login nudge cards (#1633) (4f1a487ab)
  • fix(desktop): async-ify the auto-restart setter after the perf-sweep merge collision (#1651) (dc7ececdc)
  • feat(desktop): auto-restart agents on config change (Chunk F) (#1649) (a415f0f31)
  • perf(desktop): GUI performance sweep — async offload, poll reduction, render stabilization (#1641) (2cc0eb539)
  • fix: user search returns zero results for partially typed names (#1603) (11608ef67)
  • copy(desktop): finish the persona→agent rename in rendered UI (B4.1) (#1647) (577fc8df5)
  • Community moderation UI: integration branch (data layer + member surface base) (#1617) (c9c868b25)
  • Community moderation Phase 1: reports, bans/timeouts, audit, tombstones, relay-DM notices (#1616) (863aeb79f)
  • copy(desktop): the word "persona" leaves the UI (Phase 1B.4) (#1646) (41b187f93)
  • feat(desktop): flapping bee on the setup loading screen (#1631) (c145037aa)
  • fix(desktop): make ⌘K open the composer link editor for selections (#1644) (3e982fd37)
  • fix(linux): make AppImage work on Mesa 25+ / GLib 2.88 distros (#1567) (563dab92e)
  • fix(desktop): add unread dot to workspace rail for channel unreads (#1637) (f968601ef)
  • refactor(desktop): converge the three definition→instance mappings (Phase 1B.3.5) (#1645) (9683ef807)
  • Hide non-invocable member agents from @-mention autocomplete (#1611) (f929aa09e)
  • fix(desktop): clamp HDR avatar images to SDR range (#1642) (fa816d5bf)
  • refactor(desktop): definition-edit routes through AgentDialog — single dialog entry point (Phase 1B.3c) (#1643) (aa17294ad)
  • fix(desktop): refresh persona env vars on respawn — record.env_vars is overrides-only (#1640) (79a057534)
  • refactor(desktop): re-host instance edit as AgentInstanceEditDialog behind AgentDialog (Phase 1B.3b) (#1639) (8af18ee32)
  • feat(desktop): show full URL tooltip on masked link hover (#1625) (01c6b8566)
  • fix(desktop): paint Buzz gradient on the workspace rail (#1636) (2f1cd6771)
  • refactor(desktop): single-home the definition form as AgentDefinitionDialog (Phase 1B.3a) (#1627) (48bd8abfe)
  • feat(desktop): unified AgentDialog create entry point with create intents (Phase 1B.2) (#1626) (6f38db680)
  • Update DMG background and label size (#1629) (5b1a53ceb)
  • test(desktop): deflake mid-scroll older-history spinner smoke test (#1632) (7ff58d9af)
  • feat(desktop): add Buzz light + dark themes with branded sidebar gradient (#1630) (290be2a03)
  • fix(desktop): render thread facepile oldest-replier-first (#1595) (f9701a386)
  • fix(desktop): keep sidebar section actions visible while ⋮ menu is open (#1584) (943d7a663)
  • refactor(desktop): extract shared runtime/provider/model selection + env-var helpers (Phase 1B.1) (#1624) (4b5cac074)
  • feat(desktop): fold personas.json into the unified agent store (Phase 1A.2) (#1623) (381c7714f)
  • fix(desktop): hash spawn config as the env receives it, not raw record fields (#1621) (f0eb4eccd)
  • test(desktop): add edit-agent dialog e2e coverage (Phase 1B.3b-pre) (#1628) (a609e796b)
  • feat(desktop): unified AgentRecord groundwork — record-first resolution + runtime materialization (Phase 1A.1) (#1618) (5dce80aff)
  • fix(desktop): backfill edits for thread replies so edited replies survive refetch (#1610) (d1f3194e7)
  • chore(desktop): clear desktop-tauri clippy backlog (#1612) (36fd41c5c)
  • fix(desktop): restrict shared-agent sync to dev data dirs (#1597) (e5f831d2c)
  • feat(desktop): restart-required badge from spawn-time config hash (#1602) (cc42a4979)
  • feat(desktop): boot-time reconcile of managed agents to relay events (#1601) (c5a541ee2)
  • feat(desktop): canonical component — hover to view/copy full keys, owner "you" labels (#1589) (777babf39)
  • fix(desktop): hydrate reactions for Inbox context messages (#1596) (cdf982bdb)

v0.3.46

  • fix(desktop): preserve agent model/provider when persona snapshot fields are blank (#1583) (a3ee2c569)
  • feat(acp,desktop): identify and reap stale agent harness processes (#1582) (3c6c0d447)
  • feat(desktop): active-draft badge, send-from-drafts confirm dialog, thread-deleted state (#1581) (b394e95ef)
  • fix(desktop): treat baked build env vars as satisfying required agent config (#1580) (b90e80443)
  • feat(desktop): add "Copy image" to image right-click context menu (#1579) (683f7fec1)
  • fix(nest): use buzz-dev symlink name for dev builds (#1587) (dcbb3ff78)
  • fix(composer): address image-editor follow-up nits on #1491 (#1565) (49391d807)
  • fix(desktop): render black static boot screen (#1570) (10444d248)
  • feat(agents): group activity tool bursts (#1571) (426f04484)
  • feat(desktop): aggregated overview rail, commit detail page, and full breadcrumbs (#1573) (c97263901)
  • fix(desktop): fetch profiles for reaction actors and thread-reply authors (#1550) (62def1459)
  • refactor(desktop): unify EditAgentDialog styling with PersonaDialog (#1540) (c258ffc4a)
  • feat(desktop): add 10-minute message grouping window (#1578) (564ead385)
  • feat(desktop): unify sidebar section actions into a per-section ⋮ menu (#1577) (d94561795)
  • feat(desktop): emoji avatar picker for agents + reliable picker scroll (#1576) (ed84a8735)
  • fix(desktop): sync derived active-turn liveness in channel activity path (#1492) (1f5ba5bb2)
  • fix(personas): remove goose runtime pin from Fizz built-in (#1566) (e3008b360)
  • feat(acp,buzz-agent): thread model name through NIP-AM kind 44200 emit path (#1564) (08e707eb5)
  • sync channel sort preferences across clients (#1556) (04a9d1029)
  • fix desktop canvas header blur in split channel management (#1558) (2ef26ec21)
  • feat(composer): compose spoiler, annotation, and tooltip controls (#1491) (1aa87bb26)
  • feat(channel list): add persistent channel sort toggle (#1505) (36ac5243f)

v0.3.45

  • chore(deps): bump crossbeam-epoch to 0.9.20 for RUSTSEC-2026-0204 (#1563) (75b52ad7e)
  • fix(archive): atomic remove-kind path + split test modules (#1562) (484bede75)
  • feat(archive): add agent turn-metric (kind 44200) local archive (#1555) (429f54b4f)
  • feat(desktop,buzz-acp): add harness-agnostic config bridge and setup-listener mode (#1411) (d8355d318)
  • fix(desktop): stop edit-channel dialog hanging on "Saving..." (#1557) (76806cb1f)
  • feat(archive): add local-save archive with observer-feed default-on option (#1442) (711078807)
  • feat(desktop): add Slack-like Drafts inbox with persistence and image fix (#1539) (4c598dcef)
  • fix(setup): fix syntax error in seed-local-community.sh (#1547) (3729a6515)
  • feat(desktop): add right-click context menu to workspace rail (#1552) (0e87998f8)
  • fix(desktop): restore saved window geometry on launch (#1554) (e790c9828)
  • feat(desktop): add typeahead search to persona model dropdown (#1542) (3b43743e1)
  • fix(desktop): publish new agent profiles to active relay (#1546) (346efe08b)
  • chore(desktop): use dot access for host header assignment (#1548) (ccfdf45bc)
  • fix(onboarding): guard against webkit2gtk WAL race with explicit profile-event signal (#1508) (c2ee4d162)

v0.3.44

  • fix(desktop): keep thread-summary badges mounted through scrollback prepends (#1533) (6abf614fd)
  • refactor(shell): drop bundled PortableGit, add BUZZ_SHELL override + dialect hint (#1536) (cfa208983)
  • feat(nips,relay,acp): NIP-AM durable encrypted agent turn metrics (kind 44200) (#1441) (71265ca36)

v0.3.43

  • fix(desktop): sync agent relay profile when persona avatar changes (#1512) (ce901f7c1)
  • feat(desktop): redesign appearance settings with mode-first theme picker (#1528) (9e773f103)
  • fix(deps): restore windows-* crates downgraded by chrono bump (fixes Windows Rust on main) (#1532) (d40837085)
  • chore(renovate): stop rebase churn between weekly sweeps (#1530) (a8238cd67)
  • fix(deps): unversion isomorphic-git pnpm patch key (#1529) (2a24765fd)
  • chore(deps): update dependency @tanstack/react-virtual to v3.14.5 (#1523) (b66a53f5b)
  • chore(deps): update redis to v1.2.2 (#1049) (f1b29140c)
  • feat(desktop): restore section icon/emoji picker (#1516) (232b6066c)
  • chore(deps): update radix-ui-primitives monorepo (#1524) (dc383c199)
  • fix(desktop): stop Leave-channel dialog from freezing the app (#1482) (668d30b0c)
  • perf: lazy-load avatars and message images (#1517) (d09d7dea5)
  • Live thread-summary push: badge counts update on reply ingest (#1521) (74a30c3de)
  • chore(deps): update all non-major dependencies (#1163) (a255a7735)
  • chore(deps): update rust crate anyhow to v1.0.103 (#1525) (26d609cbe)
  • chore(deps): update cashapp/activate-hermit digest to cea9af7 (#1522) (19d98319a)
  • chore(deps): update rust crate chrono to v0.4.45 (#1050) (3caa66d4f)
  • chore(deps): update actions/cache digest to caa2961 (#1341) (8dea817fa)
  • chore(deps): pin dependencies (#1162) (4b01040af)
  • feat(desktop): replace placeholder icon with actual app icon on welcome screen (#1527) (5b88e5956)
  • feat(desktop): enable native spellcheck in message composer (#1515) (a1b5983e5)
  • fix: let agent owners delete their agent's messages (relay kind:5 + desktop/mobile UX) (#1519) (642800548)
  • chore(desktop): bring ChannelScreen back under the size gate (#1520) (8174f2b0a)
  • fix(zoom) desktop chrome clearance under text zoom (#1490) (ee4c9ef13)
  • fix(activity panel): handle back navigation (#1487) (caf644eda)
  • Port channel windows to mobile (#1518) (6716cd31a)
  • perf: GIN index for e-tag containment + delta profile fetch (scroll-back ~2.1s/page) (#1514) (33886e3de)
  • GUI read-model overhaul: server-assembled channel windows (Correct™ pagination + relay-signed bounds) (#1500) (62bb9fe8c)
  • feat(desktop): show activity timestamps on demand (#1506) (c7a8b0bab)
  • feat(reconnect): replace top banner with animated sidebar overlay (#1510) (f35aeb798)
  • docs(nest-skill): explain agent-owned git repos and automatic auth (#1437) (20d3cdc22)
  • fix(agent): make stop-hook rejection budget per-prompt, fix stale hook docs (#1503) (4a0951042)

v0.3.42

  • fix(desktop): bound read-state localStorage growth and recover from quota errors (#1502) (a3cf7eec1)
  • Customize macOS DMG installer (#1496) (bbf8d8912)
  • mobile: thread scroll-to-bottom and desktop-parity mention autocomplete (#1499) (e9318f66d)
  • fix(agent): honor stop hook retry budget (#1501) (1c297d2f2)
  • feat(profile): embed live activity feed in profile aux panel (#1380) (654b6c374)
  • feat(desktop): contribution heatmap and graphical cards on projects overview (#1497) (204a0fd2e)
  • feat(desktop): repository-first projects with git workflows (#1471) (8e3c0ee95)
  • fix(desktop): lock horizontal webview pan (Magic Mouse side-scroll) (#1480) (5d4edf153)
  • Add agent catalog modal (#1302) (228122fdd)
  • fix(desktop): actually close relay sockets — plugin:websocket|disconnect does not exist (#1481) (e70dd1a1e)
  • feat(buzz-agent): config parity — thinking effort, model switching, normalized token limits (#1470) (3e282a241)
  • fix(sidebar): scope channel sections storage to relay URL (#1477) (f9d06ae21)
  • chore(mobile): declare non-exempt encryption usage in Info.plist (#1474) (453b8b1e4)
  • fix(desktop): bind channel and thread context at compose time to prevent wrong-channel send (#1472) (d369ca9df)
  • fix(relay-reconnect): resilient reconnect with fast-path, escalation, and polling (#1456) (02ff06cac)
  • feat: per-community workspace icon set by admins, served via NIP-11 (#1463) (5bfd5ca27)
  • perf(relay): batch outbound websocket data frames (#1464) (01b92faa1)
  • Make reaction ingest atomic (#1458) (835302cc8)
  • Serialize fan-out EVENT frames once (#1459) (3c661fb48)
  • fix: agent reliability — no restart on channel-add, visible dead-letter notice (#1468) (d9c4e4aa7)
  • fix(profile): consolidate agent profile runtime metadata (#1451) (c48006fc3)
  • fix(desktop): simplify workspace rail badges (#1462) (e42dae3f9)
  • perf(desktop): instant channel switching — non-blocking first paint, persisted snapshots (#1452) (deb3e6adc)
  • perf(relay): bounded-concurrency multi-filter query execution (S2) (#1457) (a9e752e25)
  • fix(desktop): classify timeline prepends so history loads don't bump unread (#1416) (9967b97f5)
  • fix(desktop): quiet gate for workspace switches instead of boot splash (#1449) (b779a3ee2)
  • fix(read-path): reach complete threads, dense-second timelines, and all people in the GUI (#1418) (7da936fff)
  • E1+E3: reduce relay ingest/fan-out DB round trips; ack p99 716%, fd p99 628%, p999 tails 2953% vs PR #1453 tip (#1454) (a504ad619)
  • perf(relay): defer post-commit dispatch and avoid verify clone (#1453) (7bd3760c8)
  • fix(relay): include git hook tools in runtime image (#1326) (88c089d3b)
  • feat(chart): per-pod emptyDir git scratch when persistence disabled (multi-replica HA) (#1450) (c88799ac6)
  • fix(relay): remove media bearer-token auth (#1444) (0701f47f4)
  • fix(desktop): stop search shortcut from hijacking the sidebar (#1447) (15ad7ae87)
  • fix(ci): set PGSCHEMA_PLAN_* in start-relay-for-tests.sh to avoid embedded-PG fetch (#1443) (89c4f7657)
  • feat(desktop): restore observer-feed regressions from #1381 and classify 4 new session/update types (#1412) (fec768436)
  • fix(desktop): disable spellcheck/autocorrect/autocapitalize on emoji picker search (#1438) (bdeab23b5)
  • feat(relay): add OpenTelemetry tracing, keep Prometheus metrics (#1398) (b1d9d955d)
  • feat(buzz-agent): emit agent_thought_chunk for reasoning content (#1436) (9f2a11b33)
  • feat(git): move repo-name registry to Postgres + relax RWM chart gate (HA relay) (#1432) (e5aa4a213)

v0.3.41

v0.3.40

  • fix(desktop): stabilize channel-timeline scrollback with per-row height reserves (#1413) (4fdc68f1)
  • fix(sidebar): trim working badge label and name working agents in tooltip (#1408) (697f63dd)
  • Mobile tab bar polish (#1368) (c444e344)
  • feat(desktop): let thread pane expand on ultrawide monitors (#1407) (f86f97bb)

v0.3.39

  • fix: close cross-process keychain race and namespace dev-build nest (#1409) (e8adc3383)
  • feat(relay): allow agent owners to edit/manage agent-owned content (#1403) (0042c8e10)
  • fix(media): support IRSA/credential-chain S3 auth and configurable signing region (#1406) (06ef533ec)
  • fix(desktop): fold baked build env into in-process model discovery (#1376) (f061ae9c8)
  • docs: link VISION_ACTIVITY from the VISION index (#1405) (aa1042b16)
  • test(desktop): gate keychain-write test behind --ignored (#1404) (36f32291e)
  • Refactor oversized mobile widgets (#1401) (71b2c41e9)
  • perf(desktop): stop beachballs on agents menu and thread open (#1402) (34d61acc9)
  • feat(desktop): rebuild agent activity feed around a classifier registry and twelve render classes (#1381) (5cc09e698)
  • fix(thread): stop mid-scroll content jump in live threads (#1397) (42ec17f13)
  • fix(ci): restore main to green — tauri fmt, personas.rs file-size split, Windows path test (#1399) (67c47de69)
  • fix(desktop): enable buzz-dev-mcp MCP server for Codex agents (#1394) (b74ed858f)
  • fix(ci): restore E2E flakiness fixes for pgschema, docker-pull, and spec timing (#1396) (fdf29c457)
  • fix(personas): persist pack-backed persona UI edits across reboot (#1392) (a7e1202cc)
  • fix(buzz-acp): clear steer_rx on all run_prompt_task exit paths (#1391) (10aaa72f0)
  • Restore channel date divider rule (#1395) (0827171d5)
  • Speed up profile wave action (#1379) (2fc5dd35b)
  • Restore visible links for rich previews (#1378) (8d8fc6331)
  • Mobile channel list polish (#1367) (09d8965ab)
  • style(desktop): unify corner radii to rounded-2xl (16px) (#1393) (2f496debc)
  • fix(desktop): skip keychain write when blob contents are unchanged (#1377) (5a64ee4a6)
  • fix(desktop): stop clipping the agent-activity row under the composer (#1371) (2044ad76f)
  • Constrain macOS overscroll to conversations (#1317) (9b711f47a)
  • Mobile appearance foundation (#1366) (945e9b879)

v0.3.38

  • feat(desktop): provider-agnostic model selection + databricks discovery (#1307) (eacbbe880)
  • release(helm): buzz chart 0.1.1 (#1374) (2561cbd06)
  • Harden relay attack surfaces (#1369) (29368cf17)
  • ci(helm): publish chart to GHCR on chart-v* tags (#1372) (2722ce422)
  • feat(buzz-agent): add databricks_v2 provider for AI Gateway v2 (#1311) (15a73aa27)
  • refactor(desktop): centralize auxiliary panel shell (#1343) (e6738c501)
  • perf(desktop): stop typing from re-rendering the channel pane + timeline (#1364) (db1b617ab)
  • fix(desktop): check PGID in orphan sweep and signal correct process groups (#1359) (59be27ff3)
  • feat(desktop): harness-agnostic config bridge (#887) (c65989a61)
  • fix(acp): enable sandbox network access for Codex MCP subprocesses (#1363) (401bb51bf)
  • perf(desktop): don't block channel create on channel-list refetch (#1360) (cf57bcbea)
  • refactor(desktop): split global styles and markdown renderers (#1361) (c27b4251a)
  • feat(read-state): multi-slot splitting + no-op suppression for oversized blobs (#1309) (2612324fd)
  • fix: unconditionally replace CLI symlink on boot (#1357) (50873ef98)

v0.3.37

  • feat(buzz-acp): steering as the default mid-turn mention delivery (#1160) (e567491a)
  • Multi-tenant Buzz relay: community_id as a server-resolved key (comprehensive rewrite) (#1321) (14fba21e)
  • Disable persona start while runtime discovery runs (#1353) (92a5f1fc)
  • chore(deps): update dependency @tanstack/react-virtual to v3.14.4 (#1342) (1c221eaa)
  • Fix sidebar unread indicator placement (#1319) (51b2613c)
  • fix(desktop): un-clip hover action bar's upward bleed under content-visibility (#1354) (7adbd05b)
  • Allow Huddle between 2 humans in DM (#1347) (b58f671b)

v0.3.36

v0.3.35

  • fix(desktop): split lib modules under size guard (#1314) (e7d43dc2)
  • Fix desktop notifications on GNOME 46+ Linux (#1246) (ca50d832)
  • perf(desktop): debounce channel-list refetch + profile get_channels (#1310) (c6e3e947)
  • feat(desktop): move agent management into profile sidebar (#1274) (8d40150c)
  • feat(desktop): re-land virtualized timeline to fix macOS beachball (#1250) (8c3d0c92)
  • feat(acp): add BUZZ_ACP_ALLOWED_RESPOND_TO and BUZZ_ALLOWED_CHANNEL_ADD_POLICIES gates (#1304) (1a61d783)
  • fix(read-state): enforce byte-budget eviction in currentContexts() (#1305) (6b056461)
  • feat(media): transcode HEIC/HEIF to JPEG on desktop upload (#1257) (d32f3c0a)
  • Bring mobile sidebar unread and DM parity (#1303) (1843a057)
  • Multi-tenant relay: spec + mechanized formal proof (S1S8) (#1285) (2ecdcce7)
  • Polish side panel motion and composer alignment (#1294) (34b2d3e8)
  • feat(mobile): harden unread badges and float tabs (#1298) (59b21592)
  • feat(desktop): restore archive identity UI in profile panel (#961) (4fce5aab)
  • fix(sidebar): non-selectable channel names + copy/leave context menu actions (#1260) (4481f8fd)
  • fix(runtime): sweep node wrapper processes hosting managed agent shims (#1296) (f072032a)
  • fix(buzz-agent): follow symlinks when discovering skill directories (#1295) (8717ddf2)
  • chore: add grab-emoji.sh to register Slack emoji in Buzz (#1292) (dfa864fc)
  • Fix cross-pod membership notification fanout (#1291) (e1c51d71)
  • fix(buzz-acp): strengthen agent communication rules in base prompt (#1293) (ccdb8975)

v0.3.34

  • feat(desktop): refresh Agents tab live on inbound relay sync (#1256) (9a59e308)
  • fix(buzz-acp): inject Codex network allowlist for relay hostname at spawn time (#1287) (0379247e)
  • refactor(desktop): consolidate notification helpers and add channel names to toasts (#1286) (dd5592e3)
  • feat(buzz-agent): lazy skill loading via load_skill tool (#1283) (25396c06)
  • fix(buzz-acp): human-aware reply anchoring to keep threads flat (#1281) (6c920d21)
  • feat(desktop): add 'Follow system' theme mode (#1262) (c996be39)
  • Fix mention autocomplete layout in narrow threads (#1282) (227518c2)
  • Clean up screenshot e2e tests (#1284) (2499d339)
  • fix(desktop): DM close button replaces unread badge on hover (#1280) (e3663721)
  • Add NIP-34 git pull request CLI support (#1279) (5fef9b72)
  • fix(desktop): preserve timeline scroll when opening threads (#1278) (d05f122d)
  • chore: remove LLM-slop comments across the codebase (#1277) (73cc31cc)
  • fix(desktop): allow saving personas with an empty system prompt (#1276) (996a3f89)

v0.3.33

  • fix(desktop): always use legacy keyring for blob entry on macOS (#1271) (e7c3638fe)
  • chore(release): release Buzz Relay version 0.1.1 (#1269) (68a0cc850)
  • perf(desktop): consolidate keychain secrets into a single blob entry (#1267) (fa942cb51)
  • feat(desktop): re-snapshot persona config on every agent spawn (#1268) (048e8fdc0)
  • feat(relay): add buzz-admin member management CLI with NIP-43 roster publish (#1265) (0cee0435f)
  • fix(desktop): fall back to old keychain when DPK unavailable (unsigned builds) (#1266) (958ac7aaa)
  • Align channel management panel with profile (#1066) (9f35b0188)
  • fix(relay): multi-pod subscription coherence (one access-gated fan-out path + cross-pod cache invalidation + REQ/COUNT DB guard) (#1261) (628445429)
  • fix(desktop): switch macOS keychain to Data Protection Keychain (#1264) (35522311a)
  • fix(desktop): use IPv4 loopback for media proxy URLs (#1245) (cee2c5f26)
  • perf(relay/git): stream read-path, manifest info/refs fast path, idx sidecar (A/B/C) (#1240) (856815994)

v0.3.32

  • fix(desktop): restore solid dot for top-level channel unreads (#1253) (9d3bfd38b)
  • Allow explicit root posts from reply prompts (#1251) (ebd74d11b)
  • feat: publish personas, teams, and managed agents as relay events (#939) (d256935c3)
  • fix(observability): gate agent observability on declared ownership, not key custody (#1229) (e993b9e74)
  • fix(desktop): split AppShell notification effects (#1248) (a9ce477a0)
  • feat(desktop): store nsec private keys in the OS keyring (#1172) (4be43d708)
  • fix: add evict-completed-work prompt rule and unblock desktop file-size gate (#1247) (048228889)
  • fix(desktop): scope mention/add autocomplete to reachable identities (#1243) (a3e8fb6fd)
  • test(e2e): raise scroll-history pagination test timeout to 90s (#1234) (09dbeb86f)
  • Polish thread and media layout (#1239) (b264a32cf)
  • Polish desktop navigation chrome (#1238) (092546495)
  • fix: propagate persona harness edits to live agent instances (#1244) (2e426b2fd)
  • fix(desktop): render autolinked message links as chips (#1241) (45067ec13)
  • fix(desktop): clear unread projections from message read markers (#1242) (733c766eb)
  • fix(desktop): resolve repos_dir symlink at boot before agent restore (#1231) (86d7748eb)
  • Fix presence fan-out across relay pods (#1227) (36d3d2ed1)
  • fix(relay): raise grace limit, add replay backpressure, and NOTICE on oversized frames (#1226) (142a5c909)
  • [codex] Make relay frame limit configurable (#1225) (38a953343)

v0.3.31

  • fix(release): publish versioned relay Docker tags via independent release lanes (#1173) (549b7d24)
  • fix(desktop): align settings section headers (#1165) (6ad68a6b)
  • fix(desktop): ground agent workspace, migrate legacy nest, configurable repos_dir (#1194) (1011cea2)
  • fix(desktop): enable mesh llm for release builds (#1221) (fa1262a9)
  • fix(desktop): move crypto commands off the main thread (#1222) (e35e84b0)
  • fix: tolerate missing private_key_nsec in agent store (#1220) (c58e9880)
  • Update navigation header height (#1212) (6b5cf325)
  • Improve global search (#1195) (5130a6a0)
  • Parse Typesense multi_search errors (#1208) (65ccb126)
  • fix(desktop): keep settings shortcut from opening search (#1204) (89ff9504)
  • Polish sidebar channel navigation (#1213) (c0a872e8)
  • fix(desktop): restore channel unread badges (#1218) (89aaa264)
  • Fix collapsed home header chrome overlap (#1215) (b4e75a1e)
  • fix(desktop): dedupe welcome intro per channel (#1216) (2a522826)
  • fix(desktop): defer agent page secondary requests (#1217) (bee2d64c)
  • ci(release): enable Tauri auto-updater on Windows and Linux builds (#1206) (3ef2a8e5)
  • Hydrate reactions for rendered messages (#1205) (ed556f3d)
  • fix(desktop): show NIP-OA owners in profile pane (#1198) (40070a58)
  • fix(desktop): preserve login-shell PATH for managed agents (#1193) (29978b6f)
  • Fix nav chrome offset in fullscreen (#1192) (b3b0704e)
  • fix(desktop): show due-reminder count in the Inbox nav badge (#1191) (c0858dac)

v0.3.30

  • fix(desktop): collapse mark-read/unread menu into one toggling item (#1188) (ce994df74)
  • fix(channels): replace thread-unread badge frontier with per-message read markers (#1178) (28db41dfd)
  • fix(relay): resubscribe agents when an archived channel is restored (#1187) (6780ea21e)

v0.3.29

  • build: make mesh-llm opt-in for dev/staging to speed up iteration (#1183) (ce526106)
  • feat(desktop): default temporary channels to 7-day expiry (#1182) (4b518fc4)
  • fix(desktop): render lightbox image sharply at full resolution (#1181) (ff727af9)
  • fix(desktop): keep thread guides behind the reply composer (#1179) (781d1acf)
  • Sort direct messages alphabetically (#1180) (04df2c8d)
  • Add composer selection formatting tray (#1133) (7dcf22d5)
  • fix(desktop): honor per-agent relay override, default to workspace relay (#1131) (ea97e219)
  • [codex] Stabilize desktop E2E flakes (#1174) (141f7118)
  • feat(desktop): show reminder author + source and click-to-navigate in inbox (#1176) (1186ea48)
  • Improve inbox thread updates (#1114) (de3f21ab)
  • docs(readme): mark git hosting as shipped in status table (#1175) (26fdfb67)
  • feat(windows): bundle full Git-for-Windows toolchain for the shell tool (#1145) (592508ad)
  • fix(buzz-dev-mcp): resolve MSYS-absolute paths in the Windows file tools (#1169) (ec5cfa37)

v0.3.28

v0.3.27

  • chore: remove block team id from Xcode (#1156) (67fcf41b)
  • fix(desktop): keep channel chrome clear of window controls (#1159) (fa10871d)
  • desktop: polish sidebar search dialog (#1155) (5f79830e)
  • desktop: fix scrollback paging and visible history depth (#1153) (6cca7599)
  • Fix ACP activity tool title detection (#1149) (4c7df9b0)
  • fix(desktop): clear channel unread badges from thread reads (#1148) (7c3e411f)
  • desktop: move global search into sidebar header and remove vestigial top band (#1150) (c488d845)
  • Update README.md (7c67dfa6)
  • Hide channel intro actions until history start (#1151) (7aa6daa4)
  • fix(desktop): remount timeline scroll node per channel (#1147) (0c5dbf34)
  • Render custom emoji in the inbox; DRY up emoji derivation (#1146) (39626197)
  • desktop: open thread pane optimistically (#1143) (663b554c)
  • fix(desktop): keep channel header search/add icons always visible (#1144) (9c685282)
  • fix(desktop): show skeleton during channel switch (#1141) (d1c3574b)
  • Avoid duplicate thread event fetches (#1129) (959f2598)
  • desktop: restore channel browse button (#1140) (cc8958f5)
  • desktop: make date dividers pill shaped (#1139) (bee41597)
  • fix(desktop): align sidebar unread pills (#1138) (59754218)
  • Fix display names flashing to pubkeys when loading older messages (#1137) (c448f1c7)
  • desktop: keep sidebar unread pill below top chrome strip (#1136) (aeafb0b0)
  • fix(desktop): restore sticky date divider handoff (#1135) (3e9d7ff4)
  • desktop: drop redundant post-subscribe history refetch (#1130) (b2bf471e)

v0.3.26

  • ci: cache Flutter pub packages in the Mobile job (#1128) (ceb5eff53)
  • Delete RESEARCH directory (a1d5570d3)
  • feat(cli): support ephemeral channels via --ttl on create/update (#1126) (4f671a255)
  • fix(justfile): suppress grep exit code in release changelog formatter (d40c86626)
  • fix(desktop): single-owner anchored scroll for dynamic loading (#1115) (047db4214)
  • fix(buzz-dev-mcp): resolve non-WSL bash so the MCP shell works on Windows (#1119) (4d2eb52a6)
  • ci: key main-push concurrency group on SHA to stop run eviction (#1124) (e99105edc)
  • fix(desktop): seed up agent JSON files in sync_shared_agent_data (#1121) (065625bb4)
  • fix(acp): emit per-section prompt blocks so observer counts every section (#1122) (a1cf1db67)
  • refactor(justfile): rename, relay auto-start, bootstrap, DRY cleanup (#1117) (1dc4fb5da)
  • fix(desktop): keep active-turn badges through transient relay drops (#1120) (cf122fcf1)
  • Polish desktop sidebar navigation (#1107) (7072281f6)
  • fix(desktop): collapse thread-unread badge on thread-open (#1118) (0176d5f31)
  • feat(desktop): unify unread pills into one shared UnreadPill component (#1111) (826945e1b)
  • fix(cli): use relay workflow id on create (#872) (762ca43d2)
  • Fold agent core memory into the session system prompt (#1112) (633544788)
  • feat(cli): add patches and issues commands for NIP-34 git collaboration (#1073) (cd8292fe9)
  • fix(desktop): stop random timeline message loss + page reconnect replay (#1105) (0181603eb)
  • Update README.md (c338d8840)
  • fix(desktop): keep thread replies from scrolling channel (#1109) (d24eac61a)
  • fix(buzz-acp): accept siblings under allowlist author gate (#1108) (dd9ce0902)
  • feat(deploy): add production Helm chart for Buzz (#990) (629fb57bf)
  • fix(desktop): keep MembersSidebar input usable while an add is in flight (#1106) (aadbe6735)

v0.3.25

  • fix(desktop): stop dimming deferred message lists (#1104) (718b596e5)
  • Smooth channel loading: single-surface timeline state machine (#1099) (d47572209)
  • feat: surface base + persona system prompts in observer feed (#1103) (5004758fb)
  • ci: move reminder e2e to a dedicated backend-integration job (#1098) (466bb993c)
  • fix: give agent-observer sub a replay-capable limit (#1100) (959fc6e9d)
  • fix: make managed-agent spawn and teardown portable to Windows (#1097) (420131182)
  • fix(desktop): constrain message timeline width with min-w-0 (#1092) (7de5517f1)
  • feat(desktop): reminders notifications, snooze, overlay, and inbox view mode (#1093) (22b47db8e)
  • feat(prompt): add memory hygiene and hoist universal engineering discipline to base prompt (#1085) (010e8022b)
  • fix(desktop): correct thread-unread badge flicker, stale clear, phantom count, mention gate, and nested count (#1080) (c8e1120fc)
  • Fix mention chip alignment (#1094) (4f93d52e1)
  • perf(desktop): virtualize unbounded lists and warm the emoji index (#1089) (a4fbebb39)
  • Adjust unread pill spacing (#1091) (3bf2ac004)
  • Improve image lightbox controls (#1084) (bb9b6674e)
  • Use Inter for app typography (#899) (7b0500c93)
  • fix(desktop): paint thread replies on open without scroll nudge (#1090) (422a90f5e)
  • Polish sidebar update and relay cards (#1009) (d4cd919b8)
  • Normalize desktop icon sizing (#1088) (1a37ee395)
  • fix(desktop): normalize loopback host for HTTP writes and stop Reminders nav flicker (#1086) (771086fd6)
  • feat(composer): link editing — inline popover, modal picker, buzz:// in-app nav (#1045) (770266d2a)
  • chore(Pulse): gate Follow button behind Pulse feature flag (#1019) (48994e01b)
  • fix(desktop): wrap long markdown autolinks (#1081) (b7e22f4b5)
  • feat(desktop): add NIP-ER reminder UI — create, view, and manage encrypted reminders (#963) (ff824a365)
  • feat(relay): add NIP-ER push scheduler with cross-pod delivery (#957) (26563968c)
  • feat(relay): implement NIP-ER event reminder support (kind:30300) (#934) (79fcfd82b)
  • feat(desktop): adding ui state into the history stack (#967) (538f33341)
  • fix(desktop): restore timeline zoom via rem tokens + chat-as-base type scale (#1052) (c22c54e7a)
  • fix(release): format changelog as linked markdown bullets (#1075) (d879fac4c)

v0.3.24

v0.3.23

  • fix(release): publish manifest from successful platforms (#1039) (9b410325a)

v0.3.22

  • fix(release): publish rolling updater manifest for automated release tags

v0.3.21

  • fix(release): use signed NSIS installer for updates (#1036) (4d19a5901)
  • handoff: pass full session history to summarizer (#1033) (fa1cade3b)
  • feat(emoji): latest-set-wins union for custom emoji across desktop, mobile, and CLI (#989) (6e4c8680c)
  • Fix relay NIP-11 software URL (#1030) (5f8ab33b3)
  • fix(desktop): make Windows release compile cleanly (#1029) (5c2f46e62)
  • Add production Docker Compose bundle (#985) (6caa359d7)
  • feat(profile): show active turn badges on agent profile panel and popover (#1026) (a32681fd4)

v0.3.20

  • fix(release): resolve Windows sidecar path and Linux AppImage updater format (#1024) (c7dd4295b)

v0.3.19

  • fix(release): ignore prerelease tags in changelog generation (#1021) (faf00724f)
  • fix: repair main build after cross-PR merge skew (#1020) (b8c0556e7)
  • feat(agents): show per-turn duration and prune dead turns within ~25s of host crash (#1017) (87e45c65b)
  • fix(release): replace hermit with native tool setup on Windows job (#1018) (2fef8d664)
  • feat(acp): surface error-class outcomes to the activity feed only, never the channel (#1010) (6db90514b)
  • fix(desktop): migrate Sprout workspace storage (#1016) (563f68434)
  • feat(auth): force token refresh on rejected token (401/403), never the browser (#1015) (5a8cc79c6)
  • fix(release): mark prerelease versions so they do not become latest (#1013) (59a7e5da8)
  • feat(acp): implement systemPrompt with protocol version gating (#981) (f08588245)
  • fix(release): update repository name check from block/sprout to block/buzz (#1012) (d07c8216c)
  • feat(release): all-OS desktop builds + universal auto-update manifest (#1011) (de641fce5)
  • Add relay disconnect UX: friendly errors, reconnect, cached identity (#1004) (8c9211ffc)
  • feat(agents): add active turn indicators to Agents Menu (#1005) (7983bf675)
  • ci: add fork guards to docker, release, and auto-tag workflows (#1007) (39d9aa826)
  • docs(nip-rs): add optional thread read context scheme (#1006) (43d1ce353)
  • fix(huddle): Pocket TTS quality overhaul — reference parity + cross-message pipelining (#997) (12433077a)
  • Add manual ACP session rotation command (#932) (00dc4915d)
  • fix(desktop): heal stale persona_team_dir paths in release builds (#1003) (df8896f13)
  • ci(docker): publish public ghcr.io/block/buzz image (native multi-arch) (#986) (1fa63bada)
  • fix(buzz-agent): cap tool-result text at 50 KiB with middle elision (#952) (84f499cb6)
  • feat(huddle): sentence-at-a-time voice-mode guidelines for lower TTS latency (#996) (2846a96ed)
  • Shard desktop Playwright CI jobs (#992) (a1c28f487)

v0.3.18

  • Video Player Improvements (#993) (05fc69b84)
  • Improve first-run welcome setup (#970) (d9ce0943e)
  • fix(release): use legacy updater key secret (#991) (50986406f)
  • Replace built-in personas with Fizz (#987) (ea5a0a9b4)
  • docs(buzz-acp): rewrite Communication Patterns for mention accuracy and threading clarity (#982) (654176541)
  • chore(justfile): build git-credential-nostr in dev and staging recipes (#980) (a101fd6ad)
  • Fix Buzz command migration for saved agents (#979) (824c55114)
  • fix(desktop): resolve effective model and prompt from persona in display path (#972) (63738139b)
  • docs: clean up remaining Buzz references (#977) (1bb8b8d54)

v0.3.17

  • docs: finish Buzz rename cleanup (#974) (79bcee55c)
  • fix(desktop): let channel members bypass mention agent gate (#965) (6f3733d43)
  • Rename desktop app to Buzz (#960) (8f580f308)
  • feat(desktop): open profile panel from MembersSidebar rows (#962) (dcb2639b3)
  • feat(desktop): per-event notification sounds and alert controls (#968) (4e4dc723e)
  • fix(desktop): make header chrome zoom-correct and tidy split-pane (#941) (1ca16c898)
  • fix(desktop): rename SPROUT_ env vars to BUZZ_ for child agent processes (#971) (8c8312932)
  • fix(justfile): complete buzz rename in dev and staging recipes (#966) (31b0665cf)
  • refactor: rename sprout backend to buzz (#958) (d99ad131f)
  • fix(desktop): reap orphaned agent processes across instances (#954) (53e3f0948)
  • Rename web app to Buzz (#959) (c5a54dcc3)
  • fix(desktop): allow restarting saved relay-mesh agents from the UI (#956) (510009c11)
  • feat(acp): agent timeout resilience — idle margin, tool-call reset, death notices, keepalive (#935) (60c8c5036)
  • Rename mobile app to Buzz (#955) (c63e018b0)
  • fix(desktop): repair team-persona mismatch and deduplicate legacy imports (#949) (929cc8861)
  • fix(desktop): populate last_message_at in channel browser (#951) (b792aa470)
  • Kit/circular avatars (#927) (e5f0c3264)
  • fix(relay): accept mesh signaling kinds (24620/24621) via POST /events (#946) (dbe973dac)
  • feat(sprout-dev-mcp): add read_file tool and replace_all to str_replace (#928) (f49cdcdd3)

v0.3.16

  • fix(desktop): land live presence updates for not-yet-cached pubkeys (#947) (34c8bdab1)
  • fix(release): make just release idempotent for re-runs (#948) (5c0af0bc9)
  • Improve mentions for agents + people (#942) (e9cd1c392)
  • feat: agent memory viewer (read-only) in profile panel (#917) (384eb6cba)
  • Fix channel visibility controls (#940) (2dc466fe0)
  • fix(delete): make agent-deleted messages disappear from desktop UI immediately (#918) (3e56331e9)
  • Fix emoji message rendering (#938) (e08937cdd)
  • refactor(desktop): consolidate packs into teams (#852) (ba2fdbf69)
  • Update README.md wording (384a34ec3)
  • Fix post-compact handoff context for OpenAI providers (#931) (fe14daa5d)

v0.3.15

  • fix: persona is source of truth at spawn + thread-depth conventions (#930) (877048d68)
  • fix: skip avatar reconciliation for legacy agent records (#933) (73cd8d082)
  • feat(desktop): add nest commit identity guidance with human sign-off (#929) (165b9f7a5)
  • feat: provider/model selection for personas and runtime-aware env injection (#794) (9a98e60fc)
  • fix: reconcile agent profile on startup when relay publish was missed (#921) (762a45969)
  • Revamp first-run onboarding (#924) (5d927aba0)
  • Update setup loading screen (#926) (f36265019)
  • fix(dm): keep hidden DMs hidden across refetch via relay-signed visibility snapshot (NIP-DV) (#857) (c38301bca)
  • Maximize desktop window on launch (#925) (4dfae61f2)
  • feat: preview features (experiments settings UI) (#888) (ae430d4dd)
  • fix(updater): send no-cache header on update check to avoid stale manifest (#922) (a357e220d)
  • fix(desktop): refresh channel state after unarchive (#923) (56230c144)
  • Add channel visibility & ephemeral TTL controls to manage sidebar (#911) (7dd5b3453)
  • ci(release): add Intel macOS (x86_64) DMG as a release target (#748) (4b78fe3be)
  • mesh: Rust-owned coordinator — fix saved-agent reconnect flakiness + DRY the start path (#879) (421593062)

v0.3.14

  • fix(sdk): resolve multi-word display names and add NIP-27 nostr:npub mention extraction (#905) (bfafdd46b)
  • fix(desktop): re-enable mcp_command reconciliation and harden spawn site (#909) (15f610dcd)
  • Fix desktop DM and sidebar UI polish (#908) (da80c7340)
  • Animate reaction counts (#904) (dd08f988d)
  • Mobile custom emoji + settings redesign (#906) (10b6674bd)
  • Renew TTL when unarchiving ephemeral channels (#902) (732e23dd5)

v0.3.13

v0.3.12

  • Show hover cards for inline message emoji (#885) (1b7b6978f)
  • Fix monotonic read-state merges (#884) (5268fac2d)
  • Refine sidebar behavior and borders (#869) (0a4783c6f)
  • fix(presence): clear on disconnect, fix heartbeat/TTL, drop broken REST path (#877) (5d7c74896)
  • fix(cli): publish ephemeral events over WebSocket via sprout-ws-client (#876) (ef98ae942)
  • docs(sprout-acp): add communication discipline rules to base prompt + deprecate --mention flag (#883) (2f50011bd)
  • Polish thread summaries and reactions (#881) (5c2476a71)
  • feat(cli): add emoji export and import subcommands (#882) (7129cd6f2)
  • Polish message row hover states (#880) (b84f8e6a0)
  • Improve emoji naming and custom emoji UX (#878) (bc5300867)
  • docs: add ecosystem section to CONTRIBUTING.md, fix stale release info (#873) (581c7e95a)
  • fix(relay): wire custom filter fields through HTTP bridge (#864) (031152221)
  • chore: deprecate sprout-mcp — fill CLI gaps, remove crate and all references (#850) (f1c672fea)
  • Fix custom emoji status in profile popover (#874) (5bdac0566)
  • fix(agent): gate handoff on provider token usage, not byte estimate (#821) (b295f51c9)
  • docs: add VISION_MESH.md — the compute-commons vision (#867) (cdb7bc27e)
  • fix(desktop): simplify profile popover header (#853) (d4bb7f66e)
  • fix(desktop): remove thread comment hover outline (#861) (ccff5464a)
  • feat(desktop): always show channel section search/add buttons (#856) (ad7ab482e)

v0.3.11

  • fix(mobile+desktop): cross-device read state sync + diagnostic logging (#843) (269b35e8d)
  • feat(mobile): star channels (Slack-style favorites) (#863) (3ddfe5fcc)
  • feat: desktop-screenshot skill to stop agents uploading relay media to PRs (#862) (36d7dbd7c)
  • feat(desktop): star channels (Slack-style favorites) (#860) (c10b4f8f5)
  • fix(desktop): handle symlinked persona pack directories (#859) (f748f7126)
  • feat: channel muting for desktop and mobile (#838) (1fe7bf287)
  • feat(acp): default SPROUT_ACP_MEMORY to on (#854) (4ead7de46)
  • fix(desktop): eliminate image-hover layout jump in messages (#813) (759e5cd92)

v0.3.10

  • fix(desktop): harden relay mesh connect p-tag (#834) (34ac3ba1d)
  • fix(desktop): scroll activity panel to bottom on open (#848) (b3aefae15)
  • Polish desktop profile menu interactions (#836) (a13691b62)
  • fix(desktop): outline thread hover targets (#845) (0d9b8148f)
  • fix(desktop): keep message actions hover-only (#844) (b3be9ecba)
  • fix(desktop): let inbox composer fill available width (#841) (db46c4254)
  • fix: use immutable commit-SHA URLs in screenshot PR comments (#842) (2a0572c0d)
  • feat(mobile+desktop): two-tier Slack-style app icon badge (#802) (3b78dc569)
  • chore: simplify file-size check to a flat 1000-line limit (#839) (0c225f4d7)
  • fix(desktop): robust emoji picker — unify picker + fix custom emoji in editing, status, reactions (#837) (d8b602a35)
  • feat(desktop): reusable screenshot workflow for agents (#826) (06bc67fd3)
  • desktop(mesh-llm): let a serving node route a different model (#833) (9f0c22a43)

v0.3.9

  • fix: native arbitrary-file download + image context-menu flash (#830) (82ae85f79)
  • fix(desktop): custom emoji reaction rendering + picker autofocus (#831) (7797ae77f)
  • Mesh-LLM v1: relay-gated direct-iroh inference between users (WAN) (#822) (33cfc8529)

v0.3.8

v0.3.7

  • feat: custom emoji — user-owned NIP-30 sets with a client-side union (#816) (234942130)
  • Install sprout-cli skill at repo root + fix desktop clippy (#818) (7a12e5051)
  • fix(desktop): use public re-export path for ensure_client_node_for_model (#824) (2ea3fd88d)
  • refactor(desktop): feature-gate mesh-llm-sdk behind optional Cargo feature (#823) (fb514c891)
  • fix(desktop): align workflow read/save commands to the frontend contract (#820) (b72eee365)
  • fix(desktop): disable mesh-llm auto-build to prevent git config corruption (#819) (5b572d6f5)
  • fix(desktop): clear clippy lints in agents/mesh_llm commands (#817) (192388a3c)
  • fix(desktop): let channel members add members and bots without admin (#815) (41a3fc158)
  • Desktop #806 follow-ups: panel/inbox fixes + top-bar backdrop (#814) (a25ca5d1b)
  • Fix desktop right-side panel chrome overlap (#806) (5bed17a11)
  • Sprout × mesh-llm: in-process mesh node (serve/consume) + relay admission (#798) (ede8ddb42)
  • fix(desktop): resolve flaky integration tests via project-level assertion timeout (#812) (6481428e2)

v0.3.6

  • feat(mobile): add channel sections with relay sync (#800) (5cbedb180)
  • feat(desktop): sync channel sections across devices via Nostr (#792) (753d0fe26)
  • feat(media): support arbitrary file types with download cards (#810) (2b052eb46)
  • feat(desktop): add user-defined channel sections to sidebar (#789) (247ac5239)
  • feat(desktop): keyboard shortcuts — ⌘⇧N new channel + ↑-to-edit last message (#809) (d810608d8)
  • fix(desktop): scope agent sweep to the owning app instance (#808) (39911e428)
  • fix(desktop): route notification clicks to thread context (#790) (f2c266bac)
  • chore(deps): update all non-major dependencies (#804) (33e37de6e)
  • fix(deps): re-pin isomorphic-git patch to 1.38.3 (#807) (5670ffc6a)
  • chore(deps): update dependency @tanstack/react-query to v5.100.14 (#805) (033d92f10)
  • Fix desktop glass chrome and inbox previews (#793) (bc23620fc)
  • refactor(just): slim down mobile-dev to just run Flutter (#801) (9b9cf4612)
  • refactor: consolidate infra management into justfile + add mobile-dev (#797) (2a0385152)

v0.3.5

  • feat(mobile): Pulse polish — flat feed, compose page, shared filter chips, like + accent fixes (#796) (b82042090)
  • feat(desktop): add standalone Playwright screenshot helper (#795) (10f37e4ca)
  • feat(sprout-agent): load AGENTS.md and SKILL.md into system prompt (#762) (f34a21d32)
  • feat: add code block support to message composer (#788) (85861f33f)
  • fix(desktop): reap orphaned agent processes on shutdown and restart (#787) (7beb0f8e6)

v0.3.4

  • Update desktop navigation chrome and search (#779) (d77b111b1)
  • feat(desktop): reload webview on Cmd/Ctrl+R (#785) (5ee2cd051)
  • fix(desktop): sync persona pack directory across worktree instances (#782) (fa7febe40)

v0.3.3

  • fix(release): sync release tags during preflight (#780) (c761a76ff)
  • feat(desktop): thread-aware notifications with mutable follow/mute controls (#761) (3f3ec6479)
  • fix(desktop): improve model picker message and runtime dropdown clarity (#778) (03e678cfb)
  • desktop: float unread indicator + fix sidebar scroll jump (#777) (9db8f6ccb)
  • chore(hooks): standardize check/fix convention with auto-fix pre-commit (#776) (3fbee555f)
  • web: clickable repo tree + per-file blob viewer (#773) (0f89ad169)
  • fix(agent): keep parallel tool-result messages contiguous on OpenAI Chat (Databricks image fix) (#770) (61297ac80)
  • fix(release): fetch tags so changelog tracks versions correctly (#775) (5f2423c23)

v0.3.2

v0.3.1

v0.3.0

  • Initial release on the automated pipeline. Unifies OSS and internal version numbering above both v0.0.21 (OSS) and v0.2.38 (internal).