npub1223z34hd7vtwc6qj4s7flsxkj644nlre2nthu7lrrmkumhu3xddsrx9r6w and Taylor 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
npub1223z34hd7vtwc6qj4s7flsxkj644nlre2nthu7lrrmkumhu3xddsrx9r6w and Taylor 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
08e707eb57
feat(acp,buzz-agent): thread model name through NIP-AM kind 44200 emit path ( #1564 )
...
Co-authored-by: npub1mn7jgtj4w2pd0g0zeuhxsa6jy6p0rewxz4kujt98my82ahfmp72sxjexk7 <dcfd242e557282d7a1e2cf2e6877522682f1e5c6156dc92ca7d90eaedd3b0f95@sprout-oss.stage.blox.sqprod.co >
2026-07-06 21:12:42 -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 Pfleger and GitHub
5f7f774ea1
chore(release): release Buzz Desktop version 0.3.45 ( #1561 )
v0.3.45
2026-07-06 19:15:02 -04:00
75b52ad7e5
chore(deps): bump crossbeam-epoch to 0.9.20 for RUSTSEC-2026-0204 ( #1563 )
...
Signed-off-by: Will Pfleger <pfleger.will@gmail.com >
Co-authored-by: npub1fgdl5qqnh3k3f2xkqrvt7cujalhm623x4s7fdjdj5yrtp5fzjl9qrjpucw <4a1bfa0013bc6d14a8d600d8bf6392efefbd2a26ac3c96c9b2a106b0d12297ca@sprout-oss.stage.blox.sqprod.co >
2026-07-06 18:57:47 -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
Yoav Amit and GitHub
3729a65156
fix(setup): fix syntax error in seed-local-community.sh ( #1547 )
2026-07-06 14:24:03 -07: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 Pfleger and GitHub
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
Wes and GitHub
2eebeb54bc
chore(release): release Buzz Desktop version 0.3.44 ( #1544 )
v0.3.44
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
71265ca361
feat(nips,relay,acp): NIP-AM durable encrypted agent turn metrics (kind 44200) ( #1441 )
...
Co-authored-by: npub1mn7jgtj4w2pd0g0zeuhxsa6jy6p0rewxz4kujt98my82ahfmp72sxjexk7 <dcfd242e557282d7a1e2cf2e6877522682f1e5c6156dc92ca7d90eaedd3b0f95@sprout-oss.stage.blox.sqprod.co >
Co-authored-by: npub1fgdl5qqnh3k3f2xkqrvt7cujalhm623x4s7fdjdj5yrtp5fzjl9qrjpucw <4a1bfa0013bc6d14a8d600d8bf6392efefbd2a26ac3c96c9b2a106b0d12297ca@sprout-oss.stage.blox.sqprod.co >
2026-07-06 16:35:10 +00:00
Wes and GitHub
8d64887316
chore(release): release Buzz Desktop version 0.3.43 ( #1538 )
v0.3.43
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
klopez4212 and GitHub
9e773f103a
feat(desktop): redesign appearance settings with mode-first theme picker ( #1528 )
2026-07-06 16:22:27 +01:00
d408370851
fix(deps): restore windows-* crates downgraded by chrono bump (fixes Windows Rust on main) ( #1532 )
...
Signed-off-by: Wes <wesbillman@users.noreply.github.com >
Co-authored-by: Brain <21994759fc7a6fa6b965551d35cfd7897d262f2495467f2d78694ddcfa6a5c7e@sprout-oss.stage.blox.sqprod.co >
2026-07-06 08:15:40 -07:00
a8238cd670
chore(renovate): stop rebase churn between weekly sweeps ( #1530 )
...
Signed-off-by: Wes <wesbillman@users.noreply.github.com >
Co-authored-by: Brain <21994759fc7a6fa6b965551d35cfd7897d262f2495467f2d78694ddcfa6a5c7e@sprout-oss.stage.blox.sqprod.co >
2026-07-06 07:53:33 -07:00
2a24765fd7
fix(deps): unversion isomorphic-git pnpm patch key ( #1529 )
...
Signed-off-by: Wes <wesbillman@users.noreply.github.com >
Co-authored-by: Pinky <44b8e82baa6e0e254e0208d68f335c283c94e7b78dd1fa10d5a49d3f13dd0435@sprout-oss.stage.blox.sqprod.co >
2026-07-06 07:53:18 -07:00
b66a53f5b5
chore(deps): update dependency @tanstack/react-virtual to v3.14.5 ( #1523 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-07-06 14:48:09 +00:00
f1b29140c6
chore(deps): update redis to v1.2.2 ( #1049 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-07-06 14:47:40 +00:00
klopez4212 and GitHub
232b6066c0
feat(desktop): restore section icon/emoji picker ( #1516 )
...
Signed-off-by: klopez4212 <klopez4212@gmail.com >
2026-07-06 15:33:11 +01:00
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 Balez and GitHub
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
a255a77358
chore(deps): update all non-major dependencies ( #1163 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-07-06 14:19:20 +00:00
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
19d98319a8
chore(deps): update cashapp/activate-hermit digest to cea9af7 ( #1522 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-07-06 14:14:53 +00:00
3caa66d4f0
chore(deps): update rust crate chrono to v0.4.45 ( #1050 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-07-06 14:14:44 +00:00
8dea817fa9
chore(deps): update actions/cache digest to caa2961 ( #1341 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-07-06 14:14:38 +00:00
4b01040afb
chore(deps): pin dependencies ( #1162 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-07-06 14:14:06 +00:00
klopez4212 and GitHub
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