Michael Neale
d8bf476c8a
Fix serverless pre-push compile checks
2026-06-16 13:19:11 +10:00
Michael Neale
2a947e383d
Merge branch 'main' into micn/serverless-mode
...
* main: (128 commits)
perf(timeline): gate heavy message render behind useDeferredValue (#1022 )
Add animated profile avatars (#1031 )
Polish direct message and members modals (#1054 )
Polish huddles UI (#1041 )
Fix video review comments in threads (#1056 )
Polish message reaction tray (#1002 )
Refine app loading skeletons (#1001 )
Polish channel modal forms (#1000 )
Normalize desktop icon sizing (#999 )
Add shared skeleton loader primitives (#998 )
chore(scripts): update post-screenshots repo name to block/buzz (#1042 )
docs: fix stale sprout repo references in RELEASING.md (#1043 )
chore(release): release version 0.3.23 (#1040 )
fix(release): publish manifest from successful platforms (#1039 )
chore(release): release version 0.3.22 (#1038 )
chore(release): release version 0.3.21 (#1037 )
fix(release): use signed NSIS installer for updates (#1036 )
handoff: pass full session history to summarizer (#1033 )
feat(emoji): latest-set-wins union for custom emoji across desktop, mobile, and CLI (#989 )
Fix relay NIP-11 software URL (#1030 )
...
# Conflicts:
# Cargo.lock
# crates/buzz-acp/src/config.rs
# crates/buzz-acp/src/relay.rs
# crates/buzz-acp/src/serverless_relay.rs
# crates/buzz-cli/src/client.rs
# crates/buzz-cli/src/commands/channels.rs
# crates/buzz-cli/src/commands/mem.rs
# crates/buzz-cli/src/lib.rs
# desktop/scripts/check-file-sizes.mjs
# desktop/src-tauri/Cargo.lock
# desktop/src-tauri/src/commands/messages.rs
# desktop/src-tauri/src/commands/mod.rs
# desktop/src-tauri/src/events.rs
# desktop/src-tauri/src/lib.rs
# desktop/src-tauri/src/managed_agents/runtime.rs
# desktop/src-tauri/src/relay.rs
# desktop/src/app/AppShell.tsx
# desktop/src/app/AppTopChrome.tsx
# desktop/src/features/messages/hooks.ts
# desktop/src/features/sidebar/ui/AppSidebar.tsx
# desktop/src/features/workspaces/ui/AddWorkspaceDialog.tsx
# desktop/src/features/workspaces/ui/WelcomeSetup.tsx
# desktop/src/features/workspaces/workspaceStorage.ts
# desktop/src/shared/api/tauri.ts
# justfile
2026-06-16 13:09:55 +10:00
klopez4212 and GitHub
5234fc8167
Polish huddles UI ( #1041 )
2026-06-15 21:58:12 +01:00
fa1cade3ba
handoff: pass full session history to summarizer ( #1033 )
...
Signed-off-by: npub1jh9wn95s0472h86ahapupaf7m6kx4v9sx2n0atj2hltcfer8k06s5n3pyf <95cae996907d7cab9f5dbf43c0f53edeac6ab0b032a6feae4abfd784e467b3f5@sprout-oss.stage.blox.sqprod.co >
Co-authored-by: npub1jh9wn95s0472h86ahapupaf7m6kx4v9sx2n0atj2hltcfer8k06s5n3pyf <95cae996907d7cab9f5dbf43c0f53edeac6ab0b032a6feae4abfd784e467b3f5@sprout-oss.stage.blox.sqprod.co >
2026-06-13 15:49:05 -04:00
6e4c8680c8
feat(emoji): latest-set-wins union for custom emoji across desktop, mobile, and CLI ( #989 )
...
Signed-off-by: npub1qyvc0c5kl4gqv2fd97fsk46tu378sqgy35vc83rvgfwne90sel7s0ed67d <011987e296fd5006292d2f930b574be47c7801048d1983c46c425d3c95f0cffd@sprout-oss.stage.blox.sqprod.co >
Signed-off-by: npub1t2tgm7d8f995uqvmnm8h88sg3wnpp9a5xysjf6dg3tjmgt3ltulqdp8ehr <5a968df9a7494b4e019b9ecf739e088ba61097b4312124e9a88ae5b42e3f5f3e@sprout-oss.stage.blox.sqprod.co >
Co-authored-by: npub1qyvc0c5kl4gqv2fd97fsk46tu378sqgy35vc83rvgfwne90sel7s0ed67d <011987e296fd5006292d2f930b574be47c7801048d1983c46c425d3c95f0cffd@sprout-oss.stage.blox.sqprod.co >
Co-authored-by: npub1t2tgm7d8f995uqvmnm8h88sg3wnpp9a5xysjf6dg3tjmgt3ltulqdp8ehr <5a968df9a7494b4e019b9ecf739e088ba61097b4312124e9a88ae5b42e3f5f3e@sprout-oss.stage.blox.sqprod.co >
2026-06-13 13:50:40 -04:00
5f8ab33b3b
Fix relay NIP-11 software URL ( #1030 )
...
Signed-off-by: npub1mprnacetjua2xx3p5eddmhxyk6wv929ymm5py8kd2xfxurxahspqqlgyta <d8473ee32b973aa31a21a65adddcc4b69cc2a8a4dee8121ecd51926e0cddbc02@sprout-oss.stage.blox.sqprod.co >
Co-authored-by: npub1mprnacetjua2xx3p5eddmhxyk6wv929ymm5py8kd2xfxurxahspqqlgyta <d8473ee32b973aa31a21a65adddcc4b69cc2a8a4dee8121ecd51926e0cddbc02@sprout-oss.stage.blox.sqprod.co >
2026-06-13 13:45:57 -04:00
Will Pfleger and GitHub
b8c0556e7c
fix: repair main build after cross-PR merge skew ( #1020 )
2026-06-12 18:20:16 -04:00
87e45c65bf
feat(agents): show per-turn duration and prune dead turns within ~25s of host crash ( #1017 )
...
Signed-off-by: Will Pfleger <pfleger.will@gmail.com >
Co-authored-by: Will Pfleger <pfleger.will@gmail.com >
Co-authored-by: npub1mn7jgtj4w2pd0g0zeuhxsa6jy6p0rewxz4kujt98my82ahfmp72sxjexk7 <dcfd242e557282d7a1e2cf2e6877522682f1e5c6156dc92ca7d90eaedd3b0f95@sprout-oss.stage.blox.sqprod.co >
2026-06-12 18:01:29 -04:00
6db90514b2
feat(acp): surface error-class outcomes to the activity feed only, never the channel ( #1010 )
...
Signed-off-by: Will Pfleger <pfleger.will@gmail.com >
Co-authored-by: npub1mn7jgtj4w2pd0g0zeuhxsa6jy6p0rewxz4kujt98my82ahfmp72sxjexk7 <dcfd242e557282d7a1e2cf2e6877522682f1e5c6156dc92ca7d90eaedd3b0f95@sprout-oss.stage.blox.sqprod.co >
2026-06-12 17:56:25 -04:00
5a8cc79c6a
feat(auth): force token refresh on rejected token (401/403), never the browser ( #1015 )
...
Signed-off-by: Will Pfleger <pfleger.will@gmail.com >
Co-authored-by: npub1mn7jgtj4w2pd0g0zeuhxsa6jy6p0rewxz4kujt98my82ahfmp72sxjexk7 <dcfd242e557282d7a1e2cf2e6877522682f1e5c6156dc92ca7d90eaedd3b0f95@sprout-oss.stage.blox.sqprod.co >
2026-06-12 17:19:37 -04:00
f085882454
feat(acp): implement systemPrompt with protocol version gating ( #981 )
...
Signed-off-by: Will Pfleger <wpfleger@block.xyz >
Signed-off-by: Will Pfleger <wpfleger@squareup.com >
Signed-off-by: Will Pfleger <pfleger.will@gmail.com >
Co-authored-by: npub1mn7jgtj4w2pd0g0zeuhxsa6jy6p0rewxz4kujt98my82ahfmp72sxjexk7 <dcfd242e557282d7a1e2cf2e6877522682f1e5c6156dc92ca7d90eaedd3b0f95@sprout-oss.stage.blox.sqprod.co >
Co-authored-by: npub16v54tttfqacx9ycvc3k0ut0npj564ahcuajzy6qjvh57ntmsf4uq4806j2 <d32955ad69077062930cc46cfe2df30ca9aaf6f8e76422681265e9e9af704d78@sprout-oss.stage.blox.sqprod.co >
Co-authored-by: npub1fgdl5qqnh3k3f2xkqrvt7cujalhm623x4s7fdjdj5yrtp5fzjl9qrjpucw <4a1bfa0013bc6d14a8d600d8bf6392efefbd2a26ac3c96c9b2a106b0d12297ca@sprout-oss.stage.blox.sqprod.co >
2026-06-12 15:07:34 -04:00
de641fce52
feat(release): all-OS desktop builds + universal auto-update manifest ( #1011 )
...
Signed-off-by: Will Pfleger <wpfleger@block.xyz >
Signed-off-by: Will Pfleger <pfleger.will@gmail.com >
Co-authored-by: npub1mn7jgtj4w2pd0g0zeuhxsa6jy6p0rewxz4kujt98my82ahfmp72sxjexk7 <dcfd242e557282d7a1e2cf2e6877522682f1e5c6156dc92ca7d90eaedd3b0f95@sprout-oss.stage.blox.sqprod.co >
2026-06-12 14:50:03 -04:00
7983bf6751
feat(agents): add active turn indicators to Agents Menu ( #1005 )
...
Signed-off-by: Will Pfleger <pfleger.will@gmail.com >
Signed-off-by: Will Pfleger <wpfleger@squareup.com >
Co-authored-by: npub1mn7jgtj4w2pd0g0zeuhxsa6jy6p0rewxz4kujt98my82ahfmp72sxjexk7 <dcfd242e557282d7a1e2cf2e6877522682f1e5c6156dc92ca7d90eaedd3b0f95@sprout-oss.stage.blox.sqprod.co >
Co-authored-by: npub1fgdl5qqnh3k3f2xkqrvt7cujalhm623x4s7fdjdj5yrtp5fzjl9qrjpucw <4a1bfa0013bc6d14a8d600d8bf6392efefbd2a26ac3c96c9b2a106b0d12297ca@sprout-oss.stage.blox.sqprod.co >
2026-06-12 13:54:07 -04:00
00dc4915d4
Add manual ACP session rotation command ( #932 )
...
Signed-off-by: npub1mprnacetjua2xx3p5eddmhxyk6wv929ymm5py8kd2xfxurxahspqqlgyta <d8473ee32b973aa31a21a65adddcc4b69cc2a8a4dee8121ecd51926e0cddbc02@sprout-oss.stage.blox.sqprod.co >
Co-authored-by: Max <d8473ee32b973aa31a21a65adddcc4b69cc2a8a4dee8121ecd51926e0cddbc02@sprout-oss.stage.blox.sqprod.co >
2026-06-12 11:50:44 -04:00
84f499cb6e
fix(buzz-agent): cap tool-result text at 50 KiB with middle elision ( #952 )
...
Signed-off-by: npub1qyvc0c5kl4gqv2fd97fsk46tu378sqgy35vc83rvgfwne90sel7s0ed67d <011987e296fd5006292d2f930b574be47c7801048d1983c46c425d3c95f0cffd@sprout-oss.stage.blox.sqprod.co >
Co-authored-by: npub1qyvc0c5kl4gqv2fd97fsk46tu378sqgy35vc83rvgfwne90sel7s0ed67d <011987e296fd5006292d2f930b574be47c7801048d1983c46c425d3c95f0cffd@sprout-oss.stage.blox.sqprod.co >
Co-authored-by: npub1mprnacetjua2xx3p5eddmhxyk6wv929ymm5py8kd2xfxurxahspqqlgyta <d8473ee32b973aa31a21a65adddcc4b69cc2a8a4dee8121ecd51926e0cddbc02@sprout-oss.stage.blox.sqprod.co >
2026-06-12 10:39:34 -04:00
Will Pfleger and GitHub
6541765416
docs(buzz-acp): rewrite Communication Patterns for mention accuracy and threading clarity ( #982 )
...
Signed-off-by: Will Pfleger <wpfleger@block.xyz >
2026-06-11 15:17:26 -04:00
1bb8b8d547
docs: clean up remaining Buzz references ( #977 )
...
Signed-off-by: Wes <wesbillman@users.noreply.github.com >
Co-authored-by: Pinky <44b8e82baa6e0e254e0208d68f335c283c94e7b78dd1fa10d5a49d3f13dd0435@sprout-oss.stage.blox.sqprod.co >
2026-06-11 10:22:14 -07:00
d99ad131f1
refactor: rename sprout backend to buzz ( #958 )
...
Signed-off-by: Will Pfleger <pfleger.will@gmail.com >
Signed-off-by: Will Pfleger <wpfleger@block.xyz >
Signed-off-by: Will Pfleger <wpfleger@squareup.com >
Signed-off-by: Will Pfleger <wpfleger96@gmail.com >
Co-authored-by: npub1mn7jgtj4w2pd0g0zeuhxsa6jy6p0rewxz4kujt98my82ahfmp72sxjexk7 <dcfd242e557282d7a1e2cf2e6877522682f1e5c6156dc92ca7d90eaedd3b0f95@sprout-oss.stage.blox.sqprod.co >
Co-authored-by: npub1fgdl5qqnh3k3f2xkqrvt7cujalhm623x4s7fdjdj5yrtp5fzjl9qrjpucw <4a1bfa0013bc6d14a8d600d8bf6392efefbd2a26ac3c96c9b2a106b0d12297ca@sprout-oss.stage.blox.sqprod.co >
Co-authored-by: npub16v54tttfqacx9ycvc3k0ut0npj564ahcuajzy6qjvh57ntmsf4uq4806j2 <d32955ad69077062930cc46cfe2df30ca9aaf6f8e76422681265e9e9af704d78@sprout-oss.stage.blox.sqprod.co >
Co-authored-by: Will Pfleger <wpfleger96@gmail.com >
2026-06-10 19:29:51 -04:00
60c8c5036a
feat(acp): agent timeout resilience — idle margin, tool-call reset, death notices, keepalive ( #935 )
...
Signed-off-by: Will Pfleger <pfleger.will@gmail.com >
Co-authored-by: npub1mn7jgtj4w2pd0g0zeuhxsa6jy6p0rewxz4kujt98my82ahfmp72sxjexk7 <dcfd242e557282d7a1e2cf2e6877522682f1e5c6156dc92ca7d90eaedd3b0f95@sprout-oss.stage.blox.sqprod.co >
Co-authored-by: npub16v54tttfqacx9ycvc3k0ut0npj564ahcuajzy6qjvh57ntmsf4uq4806j2 <d32955ad69077062930cc46cfe2df30ca9aaf6f8e76422681265e9e9af704d78@sprout-oss.stage.blox.sqprod.co >
2026-06-10 16:54:16 -04:00
dbe973dacd
fix(relay): accept mesh signaling kinds (24620/24621) via POST /events ( #946 )
...
Signed-off-by: npub1qyvc0c5kl4gqv2fd97fsk46tu378sqgy35vc83rvgfwne90sel7s0ed67d <011987e296fd5006292d2f930b574be47c7801048d1983c46c425d3c95f0cffd@sprout-oss.stage.blox.sqprod.co >
Co-authored-by: npub1qyvc0c5kl4gqv2fd97fsk46tu378sqgy35vc83rvgfwne90sel7s0ed67d <011987e296fd5006292d2f930b574be47c7801048d1983c46c425d3c95f0cffd@sprout-oss.stage.blox.sqprod.co >
2026-06-10 14:51:38 -04:00
f49cdcdd30
feat(sprout-dev-mcp): add read_file tool and replace_all to str_replace ( #928 )
...
Co-authored-by: Will Pfleger <wpfleger@block.xyz >
Signed-off-by: Will Pfleger <wpfleger@block.xyz >
Co-authored-by: npub16v54tttfqacx9ycvc3k0ut0npj564ahcuajzy6qjvh57ntmsf4uq4806j2 <d32955ad69077062930cc46cfe2df30ca9aaf6f8e76422681265e9e9af704d78@sprout-oss.stage.blox.sqprod.co >
2026-06-10 17:28:53 +00:00
klopez4212 and GitHub
e9cd1c3926
Improve mentions for agents + people ( #942 )
2026-06-10 17:40:53 +01:00
384eb6cba4
feat: agent memory viewer (read-only) in profile panel ( #917 )
...
Signed-off-by: Taylor Ho <taylorkmho@gmail.com >
Co-authored-by: npub1223z34hd7vtwc6qj4s7flsxkj644nlre2nthu7lrrmkumhu3xddsrx9r6w <52a228d6edf316ec6812ac3c9fc0d696ab59fc7954d77e7be31eedcddf91335b@sprout-oss.stage.blox.sqprod.co >
Co-authored-by: Bart Simpson <bart@sprout.local >
2026-06-10 08:32:38 -07:00
3e56331e9c
fix(delete): make agent-deleted messages disappear from desktop UI immediately ( #918 )
...
Signed-off-by: Taylor Ho <taylorkmho@gmail.com >
Co-authored-by: Bart <bart@sprout.local >
2026-06-09 23:02:13 -07:00
fe14daa5d6
Fix post-compact handoff context for OpenAI providers ( #931 )
...
Signed-off-by: npub1t2tgm7d8f995uqvmnm8h88sg3wnpp9a5xysjf6dg3tjmgt3ltulqdp8ehr <5a968df9a7494b4e019b9ecf739e088ba61097b4312124e9a88ae5b42e3f5f3e@sprout-oss.stage.blox.sqprod.co >
Co-authored-by: npub1t2tgm7d8f995uqvmnm8h88sg3wnpp9a5xysjf6dg3tjmgt3ltulqdp8ehr <5a968df9a7494b4e019b9ecf739e088ba61097b4312124e9a88ae5b42e3f5f3e@sprout-oss.stage.blox.sqprod.co >
2026-06-09 21:56:54 -04:00
877048d68f
fix: persona is source of truth at spawn + thread-depth conventions ( #930 )
...
Signed-off-by: Wes <wesbillman@users.noreply.github.com >
Signed-off-by: npub1mn7jgtj4w2pd0g0zeuhxsa6jy6p0rewxz4kujt98my82ahfmp72sxjexk7 <dcfd242e557282d7a1e2cf2e6877522682f1e5c6156dc92ca7d90eaedd3b0f95@sprout-oss.stage.blox.sqprod.co >
Co-authored-by: Brain <21994759fc7a6fa6b965551d35cfd7897d262f2495467f2d78694ddcfa6a5c7e@sprout-oss.stage.blox.sqprod.co >
Co-authored-by: npub1mn7jgtj4w2pd0g0zeuhxsa6jy6p0rewxz4kujt98my82ahfmp72sxjexk7 <dcfd242e557282d7a1e2cf2e6877522682f1e5c6156dc92ca7d90eaedd3b0f95@sprout-oss.stage.blox.sqprod.co >
2026-06-09 23:58:45 +00:00
Will Pfleger and GitHub
9a98e60fc2
feat: provider/model selection for personas and runtime-aware env injection ( #794 )
2026-06-09 20:42:27 +00:00
c38301bca5
fix(dm): keep hidden DMs hidden across refetch via relay-signed visibility snapshot (NIP-DV) ( #857 )
...
Signed-off-by: Wes <wesbillman@users.noreply.github.com >
Signed-off-by: npub1qyvc0c5kl4gqv2fd97fsk46tu378sqgy35vc83rvgfwne90sel7s0ed67d <011987e296fd5006292d2f930b574be47c7801048d1983c46c425d3c95f0cffd@sprout-oss.stage.blox.sqprod.co >
Co-authored-by: Brain <21994759fc7a6fa6b965551d35cfd7897d262f2495467f2d78694ddcfa6a5c7e@sprout-oss.stage.blox.sqprod.co >
Co-authored-by: npub1qyvc0c5kl4gqv2fd97fsk46tu378sqgy35vc83rvgfwne90sel7s0ed67d <011987e296fd5006292d2f930b574be47c7801048d1983c46c425d3c95f0cffd@sprout-oss.stage.blox.sqprod.co >
2026-06-09 10:23:57 -07:00
7dd5b34536
Add channel visibility & ephemeral TTL controls to manage sidebar ( #911 )
...
Signed-off-by: Wes <wesbillman@users.noreply.github.com >
Co-authored-by: Brain <21994759fc7a6fa6b965551d35cfd7897d262f2495467f2d78694ddcfa6a5c7e@sprout-oss.stage.blox.sqprod.co >
2026-06-09 09:01:10 -07:00
421593062f
mesh: Rust-owned coordinator — fix saved-agent reconnect flakiness + DRY the start path ( #879 )
...
Signed-off-by: npub1qyvc0c5kl4gqv2fd97fsk46tu378sqgy35vc83rvgfwne90sel7s0ed67d <011987e296fd5006292d2f930b574be47c7801048d1983c46c425d3c95f0cffd@sprout-oss.stage.blox.sqprod.co >
Signed-off-by: npub1mprnacetjua2xx3p5eddmhxyk6wv929ymm5py8kd2xfxurxahspqqlgyta <d8473ee32b973aa31a21a65adddcc4b69cc2a8a4dee8121ecd51926e0cddbc02@sprout-oss.stage.blox.sqprod.co >
Co-authored-by: npub1qyvc0c5kl4gqv2fd97fsk46tu378sqgy35vc83rvgfwne90sel7s0ed67d <011987e296fd5006292d2f930b574be47c7801048d1983c46c425d3c95f0cffd@sprout-oss.stage.blox.sqprod.co >
Co-authored-by: npub1mprnacetjua2xx3p5eddmhxyk6wv929ymm5py8kd2xfxurxahspqqlgyta <d8473ee32b973aa31a21a65adddcc4b69cc2a8a4dee8121ecd51926e0cddbc02@sprout-oss.stage.blox.sqprod.co >
2026-06-09 10:59:28 -04:00
7b854971c6
feat(acp): pass slash commands through to ACP connectors ( #919 )
...
Signed-off-by: npub1qyvc0c5kl4gqv2fd97fsk46tu378sqgy35vc83rvgfwne90sel7s0ed67d <011987e296fd5006292d2f930b574be47c7801048d1983c46c425d3c95f0cffd@sprout-oss.stage.blox.sqprod.co >
Co-authored-by: npub1qyvc0c5kl4gqv2fd97fsk46tu378sqgy35vc83rvgfwne90sel7s0ed67d <011987e296fd5006292d2f930b574be47c7801048d1983c46c425d3c95f0cffd@sprout-oss.stage.blox.sqprod.co >
2026-06-09 10:02:21 -04:00
bfafdd46b2
fix(sdk): resolve multi-word display names and add NIP-27 nostr:npub mention extraction ( #905 )
...
Signed-off-by: npub1mn7jgtj4w2pd0g0zeuhxsa6jy6p0rewxz4kujt98my82ahfmp72sxjexk7 <dcfd242e557282d7a1e2cf2e6877522682f1e5c6156dc92ca7d90eaedd3b0f95@sprout-oss.stage.blox.sqprod.co >
Co-authored-by: npub1mn7jgtj4w2pd0g0zeuhxsa6jy6p0rewxz4kujt98my82ahfmp72sxjexk7 <dcfd242e557282d7a1e2cf2e6877522682f1e5c6156dc92ca7d90eaedd3b0f95@sprout-oss.stage.blox.sqprod.co >
2026-06-08 19:05:37 -04:00
732e23dd5c
Renew TTL when unarchiving ephemeral channels ( #902 )
...
Signed-off-by: npub1mprnacetjua2xx3p5eddmhxyk6wv929ymm5py8kd2xfxurxahspqqlgyta <d8473ee32b973aa31a21a65adddcc4b69cc2a8a4dee8121ecd51926e0cddbc02@sprout-oss.stage.blox.sqprod.co >
Co-authored-by: npub1mprnacetjua2xx3p5eddmhxyk6wv929ymm5py8kd2xfxurxahspqqlgyta <d8473ee32b973aa31a21a65adddcc4b69cc2a8a4dee8121ecd51926e0cddbc02@sprout-oss.stage.blox.sqprod.co >
2026-06-08 12:43:39 -04:00
4ec7f8125e
sprout-agent: make Databricks defaults env-only ( #868 )
...
Signed-off-by: Wes <wesbillman@users.noreply.github.com >
Co-authored-by: Pinky <44b8e82baa6e0e254e0208d68f335c283c94e7b78dd1fa10d5a49d3f13dd0435@sprout-oss.stage.blox.sqprod.co >
2026-06-08 09:17:30 -07:00
Will Pfleger and GitHub
0a6067ca1b
refactor: rename ACP "provider" to "runtime" across the codebase ( #783 )
2026-06-07 14:40:59 -04:00
Michael Neale
15f038748f
Merge remote-tracking branch 'origin/main' into micn/serverless-mode
...
* origin/main:
chore(release): release version 0.3.12 (#886 )
Show hover cards for inline message emoji (#885 )
Fix monotonic read-state merges (#884 )
Refine sidebar behavior and borders (#869 )
fix(presence): clear on disconnect, fix heartbeat/TTL, drop broken REST path (#877 )
fix(cli): publish ephemeral events over WebSocket via sprout-ws-client (#876 )
docs(sprout-acp): add communication discipline rules to base prompt + deprecate --mention flag (#883 )
Polish thread summaries and reactions (#881 )
feat(cli): add emoji export and import subcommands (#882 )
Polish message row hover states (#880 )
Improve emoji naming and custom emoji UX (#878 )
docs: add ecosystem section to CONTRIBUTING.md, fix stale release info (#873 )
fix(relay): wire custom filter fields through HTTP bridge (#864 )
chore: deprecate sprout-mcp — fill CLI gaps, remove crate and all references (#850 )
Fix custom emoji status in profile popover (#874 )
fix(agent): gate handoff on provider token usage, not byte estimate (#821 )
docs: add VISION_MESH.md — the compute-commons vision (#867 )
fix(desktop): simplify profile popover header (#853 )
fix(desktop): remove thread comment hover outline (#861 )
feat(desktop): always show channel section search/add buttons (#856 )
# Conflicts:
# crates/sprout-cli/src/client.rs
# desktop/src/app/AppShell.tsx
# justfile
2026-06-06 15:21:14 +10:00
Michael Neale
037b973793
fix(serverless): resolve replaceable events to latest copy; publish agent profile
...
Membership/metadata reads used limit:1 + first(), picking an arbitrary
kind:39002/39000 copy when relays disagreed. A stale copy on one relay
(e.g. a dropped write) could be read and then clobber members on the next
read-modify-write. Add latest_event/latest_by_d_tag (max created_at, id
tie-break) and apply at all four read sites; drop the limit truncation in
get_channels.
Agents only published presence (kind:20001), never a kind:0 profile, so
clients showed a raw hex pubkey. Add publish_profile (name/display_name/
about/picture) at startup, sourced from the persona display_name with a
title-cased fallback from the agent command (goose -> Goose).
Tests: membership latest-wins resolution + profile metadata/name fallback.
2026-06-06 13:39:38 +10:00
Will Pfleger and GitHub
5d7c748969
fix(presence): clear on disconnect, fix heartbeat/TTL, drop broken REST path ( #877 )
2026-06-05 13:28:00 -07:00
Will Pfleger and GitHub
ef98ae942a
fix(cli): publish ephemeral events over WebSocket via sprout-ws-client ( #876 )
2026-06-05 16:26:30 -04:00
Will Pfleger and GitHub
2f50011bdd
docs(sprout-acp): add communication discipline rules to base prompt + deprecate --mention flag ( #883 )
2026-06-05 15:52:05 -04:00
Will Pfleger and GitHub
7129cd6f23
feat(cli): add emoji export and import subcommands ( #882 )
2026-06-05 15:33:31 -04:00
Will Pfleger and GitHub
031152221b
fix(relay): wire custom filter fields through HTTP bridge ( #864 )
2026-06-05 12:36:22 -04:00
Will Pfleger and GitHub
f1c672fea5
chore: deprecate sprout-mcp — fill CLI gaps, remove crate and all references ( #850 )
2026-06-05 12:31:52 -04:00
b295f51c90
fix(agent): gate handoff on provider token usage, not byte estimate ( #821 )
...
Signed-off-by: npub1qyvc0c5kl4gqv2fd97fsk46tu378sqgy35vc83rvgfwne90sel7s0ed67d <011987e296fd5006292d2f930b574be47c7801048d1983c46c425d3c95f0cffd@sprout-oss.stage.blox.sqprod.co >
Signed-off-by: npub1mprnacetjua2xx3p5eddmhxyk6wv929ymm5py8kd2xfxurxahspqqlgyta <d8473ee32b973aa31a21a65adddcc4b69cc2a8a4dee8121ecd51926e0cddbc02@sprout-oss.stage.blox.sqprod.co >
Co-authored-by: npub1qyvc0c5kl4gqv2fd97fsk46tu378sqgy35vc83rvgfwne90sel7s0ed67d <011987e296fd5006292d2f930b574be47c7801048d1983c46c425d3c95f0cffd@sprout-oss.stage.blox.sqprod.co >
Co-authored-by: npub1mprnacetjua2xx3p5eddmhxyk6wv929ymm5py8kd2xfxurxahspqqlgyta <d8473ee32b973aa31a21a65adddcc4b69cc2a8a4dee8121ecd51926e0cddbc02@sprout-oss.stage.blox.sqprod.co >
2026-06-05 11:52:50 -04:00
Michael Neale
21532f6a14
Merge remote-tracking branch 'origin/main' into micn/serverless-mode
...
* origin/main:
chore(release): release version 0.3.11 (#865 )
fix(mobile+desktop): cross-device read state sync + diagnostic logging (#843 )
feat(mobile): star channels (Slack-style favorites) (#863 )
feat: desktop-screenshot skill to stop agents uploading relay media to PRs (#862 )
feat(desktop): star channels (Slack-style favorites) (#860 )
fix(desktop): handle symlinked persona pack directories (#859 )
feat: channel muting for desktop and mobile (#838 )
feat(acp): default SPROUT_ACP_MEMORY to on (#854 )
fix(desktop): eliminate image-hover layout jump in messages (#813 )
chore(release): release version 0.3.10 (#849 )
fix(desktop): harden relay mesh connect p-tag (#834 )
fix(desktop): scroll activity panel to bottom on open (#848 )
Polish desktop profile menu interactions (#836 )
fix(desktop): outline thread hover targets (#845 )
fix(desktop): keep message actions hover-only (#844 )
fix(desktop): let inbox composer fill available width (#841 )
# Conflicts:
# desktop/src/app/AppShell.tsx
# desktop/src/features/workspaces/useWorkspaceInit.ts
2026-06-05 12:52:08 +10:00
tlongwell-block and GitHub
4ead7de463
feat(acp): default SPROUT_ACP_MEMORY to on ( #854 )
...
Signed-off-by: Tyler Longwell <tlongwell@squareup.com >
2026-06-04 15:17:28 -04:00
Michael Neale
4c49c8f521
Merge remote-tracking branch 'origin/main' into micn/serverless-mode
...
* origin/main: (36 commits)
fix: use immutable commit-SHA URLs in screenshot PR comments (#842 )
feat(mobile+desktop): two-tier Slack-style app icon badge (#802 )
chore: simplify file-size check to a flat 1000-line limit (#839 )
fix(desktop): robust emoji picker — unify picker + fix custom emoji in editing, status, reactions (#837 )
feat(desktop): reusable screenshot workflow for agents (#826 )
desktop(mesh-llm): let a serving node route a different model (#833 )
chore(release): release version 0.3.9 (#832 )
fix: native arbitrary-file download + image context-menu flash (#830 )
fix(desktop): custom emoji reaction rendering + picker autofocus (#831 )
Mesh-LLM v1: relay-gated direct-iroh inference between users (WAN) (#822 )
chore(release): release version 0.3.8 (#829 )
chore(release): release version 0.3.7 (#825 )
feat: code block rendering, syntax highlighting, and compose fixes (#803 )
feat: custom emoji — user-owned NIP-30 sets with a client-side union (#816 )
Install sprout-cli skill at repo root + fix desktop clippy (#818 )
fix(desktop): use public re-export path for ensure_client_node_for_model (#824 )
refactor(desktop): feature-gate mesh-llm-sdk behind optional Cargo feature (#823 )
fix(desktop): align workflow read/save commands to the frontend contract (#820 )
fix(desktop): disable mesh-llm auto-build to prevent git config corruption (#819 )
fix(desktop): clear clippy lints in agents/mesh_llm commands (#817 )
...
# Conflicts:
# Cargo.lock
# desktop/scripts/check-file-sizes.mjs
# desktop/src-tauri/Cargo.toml
# desktop/src/app/AppShell.tsx
# desktop/src/app/AppTopChrome.tsx
# desktop/src/features/messages/hooks.ts
# desktop/src/features/workspaces/useWorkspaceInit.ts
# desktop/src/shared/api/tauri.ts
2026-06-04 15:08:56 +10:00
Will Pfleger and GitHub
3b78dc5690
feat(mobile+desktop): two-tier Slack-style app icon badge ( #802 )
2026-06-03 18:16:49 -07:00
Michael Neale
fcb62472f1
fix(serverless): clippy cloned_ref_to_slice_refs in sdk tests
2026-06-04 09:56:49 +10:00
Michael Neale
a4183e263c
test(serverless): prove agent replies in DM (gift-wrapped, deterministic channel id)
...
Adds agent_responds_in_dm_e2e — completes the functional trio (public
channel, private channel, DM). A DM in serverless is a private channel
with a deterministic UUIDv5 id derived from the participants (matching
desktop/src-tauri/src/commands/dms.rs). The message is gift-wrapped to
the agent; the test asserts the agent decrypts it and replies.
All three pass against live public relays (3 passed; 0 failed).
2026-06-04 06:45:00 +10:00