Commit Graph
62 Commits
Author SHA1 Message Date
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 PflegerandGitHub faf00724fb fix(release): ignore prerelease tags in changelog generation (#1021) 2026-06-12 18:36:51 -04:00
Will PflegerandGitHub 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 PflegerandGitHub 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 PflegerandGitHub 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 PflegerandGitHub 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 PflegerandGitHub fb514c8918 refactor(desktop): feature-gate mesh-llm-sdk behind optional Cargo feature (#823) 2026-06-02 20:25:01 +00:00
tlongwell-blockandGitHub ede8ddb425 Sprout × mesh-llm: in-process mesh node (serve/consume) + relay admission (#798) 2026-06-02 10:28:20 -04:00
Will PflegerandGitHub 9b9cf46127 refactor(just): slim down mobile-dev to just run Flutter (#801) 2026-05-29 20:44:32 -04:00
Will PflegerandGitHub 2a03851527 refactor: consolidate infra management into justfile + add mobile-dev (#797) 2026-05-29 18:26:24 -04:00
WesandGitHub c761a76ff2 fix(release): sync release tags during preflight (#780) 2026-05-28 16:29:25 -07:00
Will PflegerandGitHub 3fbee555f0 chore(hooks): standardize check/fix convention with auto-fix pre-commit (#776) 2026-05-28 17:42:35 -04:00
Will PflegerandGitHub 5f2423c231 fix(release): fetch tags so changelog tracks versions correctly (#775) 2026-05-28 19:17:35 +00:00
WesandGitHub 9a10e6281e chore(release): release version 0.3.1 (#769) 2026-05-28 09:10:28 -07:00
WesandGitHub 4222a758c6 [codex] Default release command to patch bump (#768) 2026-05-28 08:48:12 -07:00
WesandGitHub 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 PflegerandGitHub bcd903edcc feat(release): automate OSS release pipeline with just release (#757) 2026-05-27 19:25:09 -04:00
Will PflegerandGitHub 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 PflegerandGitHub f8a0cb0147 perf(ci): add caching, path filtering, and nextest to speed up CI (#723) 2026-05-22 17:28:13 -04:00
Will PflegerandGitHub 582cfc8885 Bundle sprout CLI in DMG release + agent PATH discoverability (#614) 2026-05-19 20:53:46 -04:00
tlongwell-blockandGitHub 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-blockandGitHub 0ee9f20ccb Build sprout-agent in staging recipe (#535) 2026-05-11 13:57:07 -04:00
tlongwell-blockandGitHub 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-blockandGitHub 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
WesandGitHub 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
WesandGitHub 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 TooheyandGitHub 89aa68d769 feat: support multiple sprout instances with stable ports (#264) 2026-04-08 11:39:51 +10:00
Will PflegerandGitHub 71c378d312 fix: use dev Tauri config in just staging for consistent app data (#263) 2026-04-07 20:22:43 -04:00
Bradley AxenandGitHub a6e5c85c7d feat: add just staging shortcut for desktop app against staging relay (#258) 2026-04-07 12:03:14 -07:00