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
Will Pfleger and GitHub
faf00724fb
fix(release): ignore prerelease tags in changelog generation ( #1021 )
2026-06-12 18:36:51 -04:00
Will Pfleger and GitHub
a101fd6ad3
chore(justfile): build git-credential-nostr in dev and staging recipes ( #980 )
...
Signed-off-by: Will Pfleger <wpfleger@block.xyz >
2026-06-11 14:53:36 -04:00
8f580f308c
Rename desktop app to Buzz ( #960 )
...
Signed-off-by: Wes <wesbillman@users.noreply.github.com >
Co-authored-by: Pinky <44b8e82baa6e0e254e0208d68f335c283c94e7b78dd1fa10d5a49d3f13dd0435@sprout-oss.stage.blox.sqprod.co >
2026-06-11 15:06:24 +00:00
31b0665cff
fix(justfile): complete buzz rename in dev and staging recipes ( #966 )
...
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-06-11 01:06:29 -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
53e3f09485
fix(desktop): reap orphaned agent processes across instances ( #954 )
...
Signed-off-by: npub1mn7jgtj4w2pd0g0zeuhxsa6jy6p0rewxz4kujt98my82ahfmp72sxjexk7 <dcfd242e557282d7a1e2cf2e6877522682f1e5c6156dc92ca7d90eaedd3b0f95@sprout-oss.stage.blox.sqprod.co >
Signed-off-by: Will Pfleger <pfleger.will@gmail.com >
Co-authored-by: npub1mn7jgtj4w2pd0g0zeuhxsa6jy6p0rewxz4kujt98my82ahfmp72sxjexk7 <dcfd242e557282d7a1e2cf2e6877522682f1e5c6156dc92ca7d90eaedd3b0f95@sprout-oss.stage.blox.sqprod.co >
2026-06-10 17:38:39 -04:00
Will Pfleger and GitHub
5c0af0bc93
fix(release): make just release idempotent for re-runs ( #948 )
2026-06-10 12:50:18 -04: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
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
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
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
06bc67fd34
feat(desktop): reusable screenshot workflow for agents ( #826 )
...
Signed-off-by: Will Pfleger <wpfleger@block.xyz >
2026-06-03 19:33:56 +00:00
9f0c22a43a
desktop(mesh-llm): let a serving node route a different model ( #833 )
...
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-03 14:30:46 -04:00
33cfc85293
Mesh-LLM v1: relay-gated direct-iroh inference between users (WAN) ( #822 )
...
Signed-off-by: Eva <011987e296fd5006292d2f930b574be47c7801048d1983c46c425d3c95f0cffd@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 >
Co-authored-by: Max <d8473ee32b973aa31a21a65adddcc4b69cc2a8a4dee8121ecd51926e0cddbc02@sprout-oss.stage.blox.sqprod.co >
2026-06-03 10:49:09 -04:00
Michael Neale
12241a5fda
fix(serverless): launch agents with current workspace relays + real dev sidecars
...
Agent restore at startup raced ahead of the frontend applying the active
workspace, so serverless agents launched with the stale relay list frozen
into their record at creation time (including paid relays that 403) and one
even ran in server mode. When the only healthy relay rate-limited a reply,
there was no failover and the reply silently vanished.
- AppState.workspace_applied: agent restore now waits (bounded 15s) for the
frontend to call apply_workspace before launching, so agents inherit the
CURRENT workspace relays + serverless mode instead of record defaults.
- apply_workspace sets the flag once config is live.
- justfile _ensure-sidecar-stubs builds REAL sprout-acp + sprout sidecars
(serverless agents need them) instead of 0-byte stubs that silently fail
to launch/reply under just dev.
2026-06-03 06:40:57 +10:00
Will Pfleger and GitHub
fb514c8918
refactor(desktop): feature-gate mesh-llm-sdk behind optional Cargo feature ( #823 )
2026-06-02 20:25:01 +00:00
tlongwell-block and GitHub
ede8ddb425
Sprout × mesh-llm: in-process mesh node (serve/consume) + relay admission ( #798 )
2026-06-02 10:28:20 -04:00
Will Pfleger and GitHub
9b9cf46127
refactor(just): slim down mobile-dev to just run Flutter ( #801 )
2026-05-29 20:44:32 -04:00
Will Pfleger and GitHub
2a03851527
refactor: consolidate infra management into justfile + add mobile-dev ( #797 )
2026-05-29 18:26:24 -04:00
Wes and GitHub
c761a76ff2
fix(release): sync release tags during preflight ( #780 )
2026-05-28 16:29:25 -07:00
Will Pfleger and GitHub
3fbee555f0
chore(hooks): standardize check/fix convention with auto-fix pre-commit ( #776 )
2026-05-28 17:42:35 -04:00
Will Pfleger and GitHub
5f2423c231
fix(release): fetch tags so changelog tracks versions correctly ( #775 )
2026-05-28 19:17:35 +00:00
Wes and GitHub
9a10e6281e
chore(release): release version 0.3.1 ( #769 )
2026-05-28 09:10:28 -07:00
Wes and GitHub
4222a758c6
[codex] Default release command to patch bump ( #768 )
2026-05-28 08:48:12 -07:00
Wes and GitHub
30654e95f6
Polish desktop Pulse and Home views ( #764 )
...
Signed-off-by: Wes <wesbillman@users.noreply.github.com >
2026-05-28 08:17:02 -07:00
Will Pfleger and GitHub
bcd903edcc
feat(release): automate OSS release pipeline with just release ( #757 )
2026-05-27 19:25:09 -04:00
Will Pfleger and GitHub
11905d1fbc
chore: activate lefthook hooks and add fmt-all, mobile-fmt recipes ( #751 )
...
## Summary
- Activate lefthook pre-commit and pre-push hooks that have existed in `lefthook.yml` since the initial desktop app but were never wired up.
- Add `just hooks` recipe: sets `core.hooksPath = .hooks` and runs `lefthook install --force` to generate hook scripts.
- Wire hook installation into `scripts/dev-setup.sh` so hooks activate automatically on `just setup`.
- Enable `parallel: true` for pre-commit hooks (pre-push already had it) — all 5 format/lint checks run simultaneously.
- Add `just mobile-fmt` recipe (`dart format .`) and `just fmt-all` recipe (Rust root + Tauri Rust + Dart) as one-shot formatters.
- `.hooks/` is gitignored since lefthook generates machine-specific scripts.
- Update `AGENTS.md`: document pre-commit/pre-push hooks in Quality Gates, add `just fmt-all` and `just hooks` usage, upgrade worktree fmt gotcha from CI note to commit blocker, add `just mobile-fmt` to mobile commands; also backfill CLI-first updates (`SPROUT_AUTH_TAG`, complete exit codes, `--format compact` flag position, two new gotchas).
All hook commands delegate to `just` recipes as the single source of truth.
2026-05-26 22:05:42 +00:00
Will Pfleger and GitHub
f8a0cb0147
perf(ci): add caching, path filtering, and nextest to speed up CI ( #723 )
2026-05-22 17:28:13 -04:00
Will Pfleger and GitHub
582cfc8885
Bundle sprout CLI in DMG release + agent PATH discoverability ( #614 )
2026-05-19 20:53:46 -04:00
tlongwell-block and GitHub
9a403d3e8a
fix: channel member search via NIP-50 + Typesense indexer fix for kind:0 ( #569 )
...
Signed-off-by: Tyler Longwell <109685178+tlongwell-block@users.noreply.github.com >
2026-05-13 15:03:35 -04:00
tlongwell-block and GitHub
0ee9f20ccb
Build sprout-agent in staging recipe ( #535 )
2026-05-11 13:57:07 -04:00
tlongwell-block and GitHub
22f1e0b724
Launch sprout-agent from the desktop GUI ( #529 )
2026-05-11 12:36:53 -04:00
0dcfa86f84
chore: remove dead API token references from GUI, docs, and config ( #498 )
...
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com >
2026-05-07 19:07:44 +00:00
3a12369491
feat: serve web UI from relay + repos page redesign ( #479 )
...
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com >
2026-05-05 19:20:13 +00:00
4d0cd58d35
feat: pnpm workspace, deep links, and web repos page ( #476 )
...
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com >
2026-05-04 17:09:25 -07:00
9c6b770aa5
feat(web): scaffold browser-based Sprout web client ( #474 )
...
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com >
2026-05-04 12:49:48 -07:00
tlongwell-block and GitHub
c9f287958d
feat(desktop): wire git-credential-nostr into agent spawn path ( #451 )
2026-05-02 11:46:49 -04:00
60b51806dd
feat(desktop): improve new user defaults for presence and notifications ( #376 )
...
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-21 06:48:15 -07:00
Wes and GitHub
28bf8bfeee
fix(desktop): remove stale sprout-admin prereq, add sidecar tooling ( #371 )
2026-04-20 12:30:37 -07:00
fa5a0b77fe
Add server cross-compile and macOS desktop build CI jobs ( #369 )
...
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-20 11:52:39 -07:00
Wes and GitHub
baecb99550
fix: staging to generate stubs as needed ( #366 )
2026-04-20 15:16:44 +00:00
11410be09b
feat(desktop): autoscroll thread sidebar for new replies ( #363 )
...
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-18 10:38:02 -07:00
9db198a332
feat(desktop): bundle sprout-acp and sprout-mcp-server as Tauri sidecars ( #362 )
...
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-18 08:38:27 -07:00
cca1d51012
Remove release pipeline from public repo ( #360 )
...
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-18 06:55:09 -07:00
711e8213ac
fix: derive staging ports from worktree to avoid collisions ( #329 )
...
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-15 13:49:00 -07:00
a444fb9516
feat(mobile): scaffold Flutter app with Riverpod & Catppuccin theme ( #306 )
...
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-13 09:55:14 -07:00
Matt Toohey and GitHub
89aa68d769
feat: support multiple sprout instances with stable ports ( #264 )
2026-04-08 11:39:51 +10:00
Will Pfleger and GitHub
71c378d312
fix: use dev Tauri config in just staging for consistent app data ( #263 )
2026-04-07 20:22:43 -04:00
Bradley Axen and GitHub
a6e5c85c7d
feat: add just staging shortcut for desktop app against staging relay ( #258 )
2026-04-07 12:03:14 -07:00