Commit Graph
847 Commits
Author SHA1 Message Date
npub1223z34hd7vtwc6qj4s7flsxkj644nlre2nthu7lrrmkumhu3xddsrx9r6wandTaylor Ho 42e81166d5 feat(desktop): add header-level threads attention menu
Threads needing attention were hard to chase down inside a busy timeline,
so the affordance moves to the channel header: a ReceiptText control left
of the Users button, badged with the channel's unread-reply total, opening
one combined list of unread and active threads. Selecting a row opens the
thread panel scroll-focused on the thread head.

- threadAttention.ts: pure derivation — merge unread counts with active
  threads (active first by start recency, then unread by reply recency),
  coarse Ns/Nm/Nh uptime formatter, single-line head previews.
- useThreadAttention.ts: 'active' comes from thread-scoped bot typing;
  uptime anchors to a session-local first-seen map keyed on a stable
  active-set key, and rows are field-wise stabilized so busy-channel
  timeline churn never re-renders the header memo.
- ChannelThreadsAttentionMenu.tsx: trigger + badge + combined list; the
  uptime tick mounts only while the menu is open.
- handleOpenThreadFocused: non-toggle open + thread-head scroll target,
  so re-selecting an already-open thread refocuses instead of closing it.
- Wired through ChannelScreenHeader/ChannelMembersBar in both inline and
  compact variants; DMs get the control (DMs are channels), forums are
  gated off since they render no thread panel.

Co-authored-by: Taylor Ho <taylorkmho@gmail.com>
Signed-off-by: Taylor Ho <taylorkmho@gmail.com>
2026-07-07 00:07:31 -07:00
npub1223z34hd7vtwc6qj4s7flsxkj644nlre2nthu7lrrmkumhu3xddsrx9r6wandTaylor Ho e20408e053 fix(desktop): scope thread typing to the thread root, not reply parent
getTypingScopeId keyed typing entries on the reply parent tag, so an agent
working deep in a thread produced a threadHeadId that matched no ingress row
(and missed the open-thread composer filter). Typing and completion events
already carry a root tag for nested replies — prefer it, falling back to the
parent for direct replies where root === parent and no root tag is emitted.

Both the registration and post-message suppression paths flow through the
same helper, so suppression keys stay consistent. Exported for tests.

Co-authored-by: Taylor Ho <taylorkmho@gmail.com>
Signed-off-by: Taylor Ho <taylorkmho@gmail.com>
2026-07-06 23:23:07 -07:00
1f5ba5bb27 fix(desktop): sync derived active-turn liveness in channel activity path (#1492)
Signed-off-by: Taylor Ho <taylorkmho@gmail.com>
Co-authored-by: npub1223z34hd7vtwc6qj4s7flsxkj644nlre2nthu7lrrmkumhu3xddsrx9r6w <52a228d6edf316ec6812ac3c9fc0d696ab59fc7954d77e7be31eedcddf91335b@sprout-oss.stage.blox.sqprod.co>
2026-07-07 03:59:23 +00:00
e3008b3604 fix(personas): remove goose runtime pin from Fizz built-in (#1566)
Signed-off-by: Will Pfleger <pfleger.will@gmail.com>
Co-authored-by: npub1mn7jgtj4w2pd0g0zeuhxsa6jy6p0rewxz4kujt98my82ahfmp72sxjexk7 <dcfd242e557282d7a1e2cf2e6877522682f1e5c6156dc92ca7d90eaedd3b0f95@sprout-oss.stage.blox.sqprod.co>
2026-07-06 23:36:32 -04:00
04a9d10299 sync channel sort preferences across clients (#1556)
Signed-off-by: Taylor Ho <taylorkmho@gmail.com>
Co-authored-by: npub1223z34hd7vtwc6qj4s7flsxkj644nlre2nthu7lrrmkumhu3xddsrx9r6w <52a228d6edf316ec6812ac3c9fc0d696ab59fc7954d77e7be31eedcddf91335b@sprout-oss.stage.blox.sqprod.co>
2026-07-06 23:53:23 +00:00
2ef26ec210 fix desktop canvas header blur in split channel management (#1558)
Signed-off-by: Taylor Ho <taylorkmho@gmail.com>
Co-authored-by: npub1223z34hd7vtwc6qj4s7flsxkj644nlre2nthu7lrrmkumhu3xddsrx9r6w <52a228d6edf316ec6812ac3c9fc0d696ab59fc7954d77e7be31eedcddf91335b@sprout-oss.stage.blox.sqprod.co>
2026-07-06 16:46:31 -07:00
1aa87bb26b feat(composer): compose spoiler, annotation, and tooltip controls (#1491)
Signed-off-by: Taylor Ho <taylorkmho@gmail.com>
Co-authored-by: npub1223z34hd7vtwc6qj4s7flsxkj644nlre2nthu7lrrmkumhu3xddsrx9r6w <52a228d6edf316ec6812ac3c9fc0d696ab59fc7954d77e7be31eedcddf91335b@sprout-oss.stage.blox.sqprod.co>
2026-07-06 16:36:01 -07:00
36ac5243ff feat(channel list): add persistent channel sort toggle (#1505)
Signed-off-by: Taylor Ho <taylorkmho@gmail.com>
Co-authored-by: npub1223z34hd7vtwc6qj4s7flsxkj644nlre2nthu7lrrmkumhu3xddsrx9r6w <52a228d6edf316ec6812ac3c9fc0d696ab59fc7954d77e7be31eedcddf91335b@sprout-oss.stage.blox.sqprod.co>
2026-07-06 16:31:22 -07:00
Will PflegerandGitHub 5f7f774ea1 chore(release): release Buzz Desktop version 0.3.45 (#1561) 2026-07-06 19:15:02 -04:00
484bede759 fix(archive): atomic remove-kind path + split test modules (#1562)
Signed-off-by: Will Pfleger <pfleger.will@gmail.com>
Co-authored-by: npub1fgdl5qqnh3k3f2xkqrvt7cujalhm623x4s7fdjdj5yrtp5fzjl9qrjpucw <4a1bfa0013bc6d14a8d600d8bf6392efefbd2a26ac3c96c9b2a106b0d12297ca@sprout-oss.stage.blox.sqprod.co>
2026-07-06 18:45:05 -04:00
429f54b4f4 feat(archive): add agent turn-metric (kind 44200) local archive (#1555)
Signed-off-by: Will Pfleger <pfleger.will@gmail.com>
Co-authored-by: npub1mn7jgtj4w2pd0g0zeuhxsa6jy6p0rewxz4kujt98my82ahfmp72sxjexk7 <dcfd242e557282d7a1e2cf2e6877522682f1e5c6156dc92ca7d90eaedd3b0f95@sprout-oss.stage.blox.sqprod.co>
2026-07-06 22:30:22 +00:00
d8355d3188 feat(desktop,buzz-acp): add harness-agnostic config bridge and setup-listener mode (#1411)
Signed-off-by: Will Pfleger <pfleger.will@gmail.com>
Co-authored-by: npub1mn7jgtj4w2pd0g0zeuhxsa6jy6p0rewxz4kujt98my82ahfmp72sxjexk7 <dcfd242e557282d7a1e2cf2e6877522682f1e5c6156dc92ca7d90eaedd3b0f95@sprout-oss.stage.blox.sqprod.co>
2026-07-06 18:23:38 -04:00
76806cb1f6 fix(desktop): stop edit-channel dialog hanging on "Saving..." (#1557)
Signed-off-by: Wes <wesbillman@users.noreply.github.com>
Co-authored-by: Brain <21994759fc7a6fa6b965551d35cfd7897d262f2495467f2d78694ddcfa6a5c7e@sprout-oss.stage.blox.sqprod.co>
2026-07-06 15:05:44 -07:00
7110788077 feat(archive): add local-save archive with observer-feed default-on option (#1442)
Signed-off-by: Will Pfleger <pfleger.will@gmail.com>
Co-authored-by: npub1mn7jgtj4w2pd0g0zeuhxsa6jy6p0rewxz4kujt98my82ahfmp72sxjexk7 <dcfd242e557282d7a1e2cf2e6877522682f1e5c6156dc92ca7d90eaedd3b0f95@sprout-oss.stage.blox.sqprod.co>
2026-07-06 17:41:56 -04:00
4c598dcef5 feat(desktop): add Slack-like Drafts inbox with persistence and image fix (#1539)
Signed-off-by: Will Pfleger <pfleger.will@gmail.com>
Co-authored-by: npub1mn7jgtj4w2pd0g0zeuhxsa6jy6p0rewxz4kujt98my82ahfmp72sxjexk7 <dcfd242e557282d7a1e2cf2e6877522682f1e5c6156dc92ca7d90eaedd3b0f95@sprout-oss.stage.blox.sqprod.co>
2026-07-06 17:40:57 -04:00
0e87998f8f feat(desktop): add right-click context menu to workspace rail (#1552)
Signed-off-by: Wes <wesbillman@users.noreply.github.com>
Co-authored-by: Brain <21994759fc7a6fa6b965551d35cfd7897d262f2495467f2d78694ddcfa6a5c7e@sprout-oss.stage.blox.sqprod.co>
2026-07-06 14:23:44 -07:00
e790c9828f fix(desktop): restore saved window geometry on launch (#1554)
Signed-off-by: Wes <wesbillman@users.noreply.github.com>
Co-authored-by: Brain <21994759fc7a6fa6b965551d35cfd7897d262f2495467f2d78694ddcfa6a5c7e@sprout-oss.stage.blox.sqprod.co>
2026-07-06 14:22:57 -07:00
3b43743e1f feat(desktop): add typeahead search to persona model dropdown (#1542)
Co-authored-by: npub1mn7jgtj4w2pd0g0zeuhxsa6jy6p0rewxz4kujt98my82ahfmp72sxjexk7 <dcfd242e557282d7a1e2cf2e6877522682f1e5c6156dc92ca7d90eaedd3b0f95@sprout-oss.stage.blox.sqprod.co>
2026-07-06 15:01:09 -04:00
346efe08b3 fix(desktop): publish new agent profiles to active relay (#1546)
Signed-off-by: npub12gtutshhh76rx0jx697f32f9tffd4hhp3hx58fp4x6u4uemkm7sqf8f757 <5217c5c2f7bfb4333e46d17c98a9255a52dadee18dcd43a43536b95e6776dfa0@sprout-oss.stage.blox.sqprod.co>
Co-authored-by: npub12gtutshhh76rx0jx697f32f9tffd4hhp3hx58fp4x6u4uemkm7sqf8f757 <5217c5c2f7bfb4333e46d17c98a9255a52dadee18dcd43a43536b95e6776dfa0@sprout-oss.stage.blox.sqprod.co>
2026-07-06 14:36:53 -04:00
Will PflegerandGitHub ccfdf45bc5 chore(desktop): use dot access for host header assignment (#1548) 2026-07-06 13:58:15 -04:00
c2ee4d1627 fix(onboarding): guard against webkit2gtk WAL race with explicit profile-event signal (#1508)
Signed-off-by: Will Pfleger <pfleger.will@gmail.com>
Co-authored-by: npub1mn7jgtj4w2pd0g0zeuhxsa6jy6p0rewxz4kujt98my82ahfmp72sxjexk7 <dcfd242e557282d7a1e2cf2e6877522682f1e5c6156dc92ca7d90eaedd3b0f95@sprout-oss.stage.blox.sqprod.co>
2026-07-06 13:57:05 -04:00
WesandGitHub 2eebeb54bc chore(release): release Buzz Desktop version 0.3.44 (#1544) 2026-07-06 10:50:05 -07:00
4343c6d55e chore(desktop): move biome-ignore comments to assertion lines in pulse hooks (#1545)
Signed-off-by: Will Pfleger <pfleger.will@gmail.com>
Co-authored-by: npub1mn7jgtj4w2pd0g0zeuhxsa6jy6p0rewxz4kujt98my82ahfmp72sxjexk7 <dcfd242e557282d7a1e2cf2e6877522682f1e5c6156dc92ca7d90eaedd3b0f95@sprout-oss.stage.blox.sqprod.co>
2026-07-06 13:45:28 -04:00
6abf614fd4 fix(desktop): keep thread-summary badges mounted through scrollback prepends (#1533)
Signed-off-by: Tyler Longwell <tlongwell@block.xyz>
Co-authored-by: npub1qyvc0c5kl4gqv2fd97fsk46tu378sqgy35vc83rvgfwne90sel7s0ed67d <011987e296fd5006292d2f930b574be47c7801048d1983c46c425d3c95f0cffd@sprout-oss.stage.blox.sqprod.co>
Co-authored-by: Tyler Longwell <tlongwell@block.xyz>
2026-07-06 12:59:37 -04:00
cfa2089831 refactor(shell): drop bundled PortableGit, add BUZZ_SHELL override + dialect hint (#1536)
Signed-off-by: Will Pfleger <pfleger.will@gmail.com>
Co-authored-by: npub1mn7jgtj4w2pd0g0zeuhxsa6jy6p0rewxz4kujt98my82ahfmp72sxjexk7 <dcfd242e557282d7a1e2cf2e6877522682f1e5c6156dc92ca7d90eaedd3b0f95@sprout-oss.stage.blox.sqprod.co>
2026-07-06 12:54:50 -04:00
WesandGitHub 8d64887316 chore(release): release Buzz Desktop version 0.3.43 (#1538) 2026-07-06 16:14:54 +00:00
4d38f1cba1 fix(desktop): guard Linux .deb installs against auto-updater crash (#1535)
Signed-off-by: Will Pfleger <pfleger.will@gmail.com>
Co-authored-by: npub1mn7jgtj4w2pd0g0zeuhxsa6jy6p0rewxz4kujt98my82ahfmp72sxjexk7 <dcfd242e557282d7a1e2cf2e6877522682f1e5c6156dc92ca7d90eaedd3b0f95@sprout-oss.stage.blox.sqprod.co>
2026-07-06 12:04:27 -04:00
ce901f7c1e fix(desktop): sync agent relay profile when persona avatar changes (#1512)
Signed-off-by: Kenny Lopez <kenny@block.xyz>
Signed-off-by: Wes <wesbillman@users.noreply.github.com>
Co-authored-by: Wes <wesbillman@users.noreply.github.com>
Co-authored-by: Brain <21994759fc7a6fa6b965551d35cfd7897d262f2495467f2d78694ddcfa6a5c7e@sprout-oss.stage.blox.sqprod.co>
2026-07-06 16:30:16 +01:00
klopez4212andGitHub 9e773f103a feat(desktop): redesign appearance settings with mode-first theme picker (#1528) 2026-07-06 16:22:27 +01:00
klopez4212andGitHub 232b6066c0 feat(desktop): restore section icon/emoji picker (#1516)
Signed-off-by: klopez4212 <klopez4212@gmail.com>
2026-07-06 15:33:11 +01:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>WesBrain
dc383c1993 chore(deps): update radix-ui-primitives monorepo (#1524)
Signed-off-by: Wes <wesbillman@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Wes <wesbillman@users.noreply.github.com>
Co-authored-by: Brain <21994759fc7a6fa6b965551d35cfd7897d262f2495467f2d78694ddcfa6a5c7e@sprout-oss.stage.blox.sqprod.co>
2026-07-06 14:29:50 +00:00
Mat BalezandGitHub 668d30b0cf fix(desktop): stop Leave-channel dialog from freezing the app (#1482)
Signed-off-by: Mathieu Balez <mbalez@squareup.com>
2026-07-06 14:29:31 +00:00
d09d7dea55 perf: lazy-load avatars and message images (#1517)
Signed-off-by: npub12gtutshhh76rx0jx697f32f9tffd4hhp3hx58fp4x6u4uemkm7sqf8f757 <5217c5c2f7bfb4333e46d17c98a9255a52dadee18dcd43a43536b95e6776dfa0@sprout-oss.stage.blox.sqprod.co>
Co-authored-by: npub12gtutshhh76rx0jx697f32f9tffd4hhp3hx58fp4x6u4uemkm7sqf8f757 <5217c5c2f7bfb4333e46d17c98a9255a52dadee18dcd43a43536b95e6776dfa0@sprout-oss.stage.blox.sqprod.co>
2026-07-06 10:25:54 -04:00
74a30c3de8 Live thread-summary push: badge counts update on reply ingest (#1521)
Signed-off-by: Tyler Longwell <tlongwell@block.xyz>
Co-authored-by: npub1qyvc0c5kl4gqv2fd97fsk46tu378sqgy35vc83rvgfwne90sel7s0ed67d <011987e296fd5006292d2f930b574be47c7801048d1983c46c425d3c95f0cffd@sprout-oss.stage.blox.sqprod.co>
Co-authored-by: Tyler Longwell <tlongwell@block.xyz>
2026-07-06 10:25:32 -04:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
26d609cbe1 chore(deps): update rust crate anyhow to v1.0.103 (#1525)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-07-06 14:16:37 +00:00
klopez4212andGitHub 5b88e59565 feat(desktop): replace placeholder icon with actual app icon on welcome screen (#1527)
Signed-off-by: klopez4212 <klopez4212@gmail.com>
2026-07-06 06:55:58 -07:00
klopez4212andGitHub a1b5983e54 feat(desktop): enable native spellcheck in message composer (#1515) 2026-07-06 06:54:30 -07:00
6428005487 fix: let agent owners delete their agent's messages (relay kind:5 + desktop/mobile UX) (#1519)
Signed-off-by: Wes <wesbillman@users.noreply.github.com>
Co-authored-by: Brain <21994759fc7a6fa6b965551d35cfd7897d262f2495467f2d78694ddcfa6a5c7e@sprout-oss.stage.blox.sqprod.co>
2026-07-06 06:45:57 -07:00
8174f2b0a0 chore(desktop): bring ChannelScreen back under the size gate (#1520)
Signed-off-by: Tyler Longwell <tlongwell@block.xyz>
Co-authored-by: npub1qyvc0c5kl4gqv2fd97fsk46tu378sqgy35vc83rvgfwne90sel7s0ed67d <011987e296fd5006292d2f930b574be47c7801048d1983c46c425d3c95f0cffd@sprout-oss.stage.blox.sqprod.co>
Co-authored-by: Tyler Longwell <tlongwell@block.xyz>
2026-07-05 21:25:16 -06:00
ee4c9ef139 fix(zoom) desktop chrome clearance under text zoom (#1490)
Signed-off-by: Taylor Ho <taylorkmho@gmail.com>
Co-authored-by: npub1223z34hd7vtwc6qj4s7flsxkj644nlre2nthu7lrrmkumhu3xddsrx9r6w <52a228d6edf316ec6812ac3c9fc0d696ab59fc7954d77e7be31eedcddf91335b@sprout-oss.stage.blox.sqprod.co>
2026-07-05 09:37:16 -07:00
caf644eda7 fix(activity panel): handle back navigation (#1487)
Signed-off-by: Taylor Ho <taylorkmho@gmail.com>
Co-authored-by: npub1223z34hd7vtwc6qj4s7flsxkj644nlre2nthu7lrrmkumhu3xddsrx9r6w <52a228d6edf316ec6812ac3c9fc0d696ab59fc7954d77e7be31eedcddf91335b@sprout-oss.stage.blox.sqprod.co>
2026-07-05 09:24:14 -07:00
33886e3dec perf: GIN index for e-tag containment + delta profile fetch (scroll-back ~2.1s/page) (#1514)
Signed-off-by: Tyler Longwell <tlongwell@block.xyz>
Co-authored-by: npub1qyvc0c5kl4gqv2fd97fsk46tu378sqgy35vc83rvgfwne90sel7s0ed67d <011987e296fd5006292d2f930b574be47c7801048d1983c46c425d3c95f0cffd@sprout-oss.stage.blox.sqprod.co>
Co-authored-by: Tyler Longwell <tlongwell@block.xyz>
2026-07-04 22:20:51 -04:00
62bb9fe8c8 GUI read-model overhaul: server-assembled channel windows (Correct™ pagination + relay-signed bounds) (#1500)
Signed-off-by: Tyler Longwell <tlongwell@block.xyz>
Signed-off-by: npub12gtutshhh76rx0jx697f32f9tffd4hhp3hx58fp4x6u4uemkm7sqf8f757 <5217c5c2f7bfb4333e46d17c98a9255a52dadee18dcd43a43536b95e6776dfa0@sprout-oss.stage.blox.sqprod.co>
Co-authored-by: npub1cc3ha7z055mu0rwwu7806t2wt8mj3pvu0uv5mfp2c50dahaqhczshdalg6 <c6237ef84fa537c78dcee78efd2d4e59f728859c7f194da42ac51ededfa0be05@sprout-oss.stage.blox.sqprod.co>
Co-authored-by: npub1qyvc0c5kl4gqv2fd97fsk46tu378sqgy35vc83rvgfwne90sel7s0ed67d <011987e296fd5006292d2f930b574be47c7801048d1983c46c425d3c95f0cffd@sprout-oss.stage.blox.sqprod.co>
Co-authored-by: Tyler Longwell <tlongwell@block.xyz>
Co-authored-by: npub12gtutshhh76rx0jx697f32f9tffd4hhp3hx58fp4x6u4uemkm7sqf8f757 <5217c5c2f7bfb4333e46d17c98a9255a52dadee18dcd43a43536b95e6776dfa0@sprout-oss.stage.blox.sqprod.co>
2026-07-04 11:51:58 -04:00
c7a8b0babb feat(desktop): show activity timestamps on demand (#1506)
Signed-off-by: Taylor Ho <taylorkmho@gmail.com>
Co-authored-by: npub1223z34hd7vtwc6qj4s7flsxkj644nlre2nthu7lrrmkumhu3xddsrx9r6w <52a228d6edf316ec6812ac3c9fc0d696ab59fc7954d77e7be31eedcddf91335b@sprout-oss.stage.blox.sqprod.co>
2026-07-04 08:40:49 -07:00
klopez4212andGitHub f35aeb7986 feat(reconnect): replace top banner with animated sidebar overlay (#1510) 2026-07-04 08:37:34 -07:00
20d3cdc22f docs(nest-skill): explain agent-owned git repos and automatic auth (#1437)
Signed-off-by: Tyler Longwell <tlongwell@block.xyz>
Co-authored-by: npub1qyvc0c5kl4gqv2fd97fsk46tu378sqgy35vc83rvgfwne90sel7s0ed67d <011987e296fd5006292d2f930b574be47c7801048d1983c46c425d3c95f0cffd@sprout-oss.stage.blox.sqprod.co>
Co-authored-by: Tyler Longwell <tlongwell@block.xyz>
2026-07-03 20:47:01 -04:00
WesandGitHub a038c6465f chore(release): release Buzz Desktop version 0.3.42 (#1479) 2026-07-03 09:16:52 -07:00
a3cf7eec1d fix(desktop): bound read-state localStorage growth and recover from quota errors (#1502)
Signed-off-by: Wes <wesbillman@users.noreply.github.com>
Co-authored-by: Brain <21994759fc7a6fa6b965551d35cfd7897d262f2495467f2d78694ddcfa6a5c7e@sprout-oss.stage.blox.sqprod.co>
2026-07-03 09:00:27 -07:00
klopez4212andGitHub bbf8d8912a Customize macOS DMG installer (#1496) 2026-07-03 08:56:20 -07:00
654b6c374b feat(profile): embed live activity feed in profile aux panel (#1380)
Signed-off-by: Taylor Ho <taylorkmho@gmail.com>
Co-authored-by: npub1223z34hd7vtwc6qj4s7flsxkj644nlre2nthu7lrrmkumhu3xddsrx9r6w <52a228d6edf316ec6812ac3c9fc0d696ab59fc7954d77e7be31eedcddf91335b@sprout-oss.stage.blox.sqprod.co>
2026-07-03 15:40:29 +00:00