Will Pfleger
6560d96ba5
feat(desktop): add cli_missing availability state for ACP providers
...
When the ACP adapter binary is found but the underlying CLI is missing
(e.g. codex-acp installed without codex), classify_provider now returns
CliMissing instead of Available. The adapter can't function without the
CLI, so Doctor shows an amber warning with an Install button that will
set up the missing CLI.
2026-05-22 19:35:44 -04:00
Will Pfleger
d4b9ac16d8
fix(desktop): clear resolve cache on re-run, per-provider concurrency, dynamic install hints
...
Re-run button now clears the binary resolve cache so it actually
re-probes the filesystem instead of returning stale cached results.
Replace global AtomicBool install guard with per-provider
Mutex<HashSet<String>> so concurrent installs for different providers
(e.g. claude + codex) can proceed in parallel.
Add codex CLI install command (npm install -g @openai/codex) so
clicking Install when both CLI and adapter are missing installs both.
Compute install_hint dynamically based on availability state so the
UI accurately describes what the Install button will do.
2026-05-22 19:26:15 -04:00
Will Pfleger
e10336d192
fix(desktop): address crossfire review findings for ACP provider consolidation
...
Fix CI-breaking missing `AcpAvailabilityStatus` import in tauri.ts,
eliminate zombie process leak on install timeout by saving PID before
thread move and sending SIGTERM, remove duplicate Map keys in
check-file-sizes.mjs that silently shadowed earlier entries, clean up
dead `MockAcpProvider` type from e2eBridge, and add missing
`classify_provider` test for the no-underlying-CLI code path.
2026-05-22 17:31:00 -04:00
Will Pfleger
3b26a0df99
refactor(desktop): consolidate ACP provider discovery and address review findings
...
The original implementation created a second parallel Tauri command
(discover_all_acp_providers) alongside the existing one to avoid
changing the return type. This produced two commands, two hooks, two
query keys, and two raw type converters. Consolidates into a single
command returning the full catalog, with a useAvailableAcpProviders
hook that type-narrows for callers needing non-null command/binaryPath.
Also fixes: pipe deadlock in install command (#1 ), UTF-8 truncation
panic (#2/#4), adds install concurrency guard (#11 ), exact provider ID
match (#15 ), error display stdout fallback (#5 ), success banner
suppression when already available (#12 ), misleading re-run text (#13 ),
IIFE refactor in PersonaDialog (#14 ), hidden internal query lift (#7 ),
configurable e2e mocks (#9 ), shared raw type exports (#8 ), and
classify_provider unit tests (#10 ).
2026-05-22 17:31:00 -04:00
a96cb487f4
fix(desktop): project home read-state from the shared NIP-RS marker ( #631 )
...
Signed-off-by: tlongwell-block <109685178+tlongwell-block@users.noreply.github.com >
Co-authored-by: Dawn (sprout agent) <c6237ef84fa537c78dcee78efd2d4e59f728859c7f194da42ac51ededfa0be05@sprout-oss.stage.blox.sqprod.co >
2026-05-20 17:13:59 -04:00
Taylor Ho and GitHub
af08b0f0e8
fix: prevent agent proliferation when adding bots to channels ( #621 )
2026-05-20 12:08:34 -07:00
Mat Balez and GitHub
2da3402f10
[codex] Add copy button for rendered code blocks ( #619 )
...
Signed-off-by: Mat Balez <60949391+matbalez@users.noreply.github.com >
2026-05-20 14:25:03 +00:00
5370a75ca4
feat(relay): surface connection loss in the workspace header ( #623 )
...
Signed-off-by: Tyler Longwell <109685178+tlongwell-block@users.noreply.github.com >
Co-authored-by: Dawn <c6237ef84fa537c78dcee78efd2d4e59f728859c7f194da42ac51ededfa0be05@sprout-oss.stage.blox.sqprod.co >
2026-05-20 09:36:52 -04:00
c0eb5affcf
refactor(huddle): switch local TTS to Pocket TTS (Kyutai/sherpa-onnx) ( #607 )
...
Signed-off-by: Tyler Longwell <tlongwell@squareup.com >
Signed-off-by: npub1cc3ha7z055mu0rwwu7806t2wt8mj3pvu0uv5mfp2c50dahaqhczshdalg6 <c6237ef84fa537c78dcee78efd2d4e59f728859c7f194da42ac51ededfa0be05@sprout-oss.stage.blox.sqprod.co >
Co-authored-by: npub1cc3ha7z055mu0rwwu7806t2wt8mj3pvu0uv5mfp2c50dahaqhczshdalg6 <c6237ef84fa537c78dcee78efd2d4e59f728859c7f194da42ac51ededfa0be05@sprout-oss.stage.blox.sqprod.co >
2026-05-18 14:28:27 -04:00
tlongwell-block and GitHub
3daf8d6ae1
feat(huddle): swap STT default to Parakeet TDT-CTC 110M (EN, int8) ( #562 )
...
Signed-off-by: Tyler Longwell <109685178+tlongwell-block@users.noreply.github.com >
Signed-off-by: Tyler Longwell <tlongwell@squareup.com >
2026-05-15 22:22:05 -04:00
tlongwell-block and GitHub
32347d117c
feat(desktop): per-persona and per-agent env var overrides ( #594 )
2026-05-15 10:43:00 -04:00
tlongwell-block and GitHub
3a3501c77b
fix(desktop): autofocus message composer on channel/thread open ( #572 )
...
Signed-off-by: Tyler Longwell <109685178+tlongwell-block@users.noreply.github.com >
2026-05-14 20:35:44 -04:00
efbdc7bfd5
feat(desktop): persona-first agent UX + bug fixes ( #570 )
...
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com >
2026-05-13 15:13:41 -07: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
8716aefa3c
fix(desktop): use resolve_command for ffmpeg discovery in sandboxed app ( #568 )
...
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com >
2026-05-13 11:00:00 -07:00
tlongwell-block and GitHub
9c258e4beb
feat(desktop): GUI for agent respond-to gate (owner-only / anyone / allowlist) ( #557 )
2026-05-13 12:48:42 -04:00
ef5fdca792
feat(desktop): add Projects as first-class top-level view ( #546 )
...
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com >
2026-05-12 10:51:09 -07:00
1b9f6169ee
feat(desktop): channel templates — reusable project settings ( #538 )
...
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com >
2026-05-11 12:31:25 -07:00
tlongwell-block and GitHub
22f1e0b724
Launch sprout-agent from the desktop GUI ( #529 )
2026-05-11 12:36:53 -04:00
5fff9239fa
feat(desktop): notification sound + sender names in titles ( #501 )
...
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com >
2026-05-07 17:25:29 -07: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
27bcd45cc9
Refresh built-in personas: Solo, Kit, Scout + Kit & Scout team ( #499 )
...
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-07 18:22:26 +00:00
f309446f22
Polish reply timeline interactions ( #477 )
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-05-07 09:43:47 -07:00
ec489c5b1a
feat(desktop): add keep awake while agents are active setting ( #484 )
...
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com >
2026-05-05 13:14:00 -07:00
tlongwell-block and GitHub
454781caae
Sprout speaks Nostr. Nothing else. ( #475 )
2026-05-05 12:03:06 -04:00
Luis Padron and GitHub
f08d4f4034
ci(release): sign and notarize macOS build via apple-codesign-action ( #472 )
2026-05-04 12:06:47 -04:00
tlongwell-block and GitHub
8916825c45
feat(pairing): auto-detect NIP-43 relay and route target to /pair sidecar ( #470 )
2026-05-03 22:12:14 -04:00
35d0c2da5e
fix(ci): add ad-hoc code signing to OSS release build ( #466 )
...
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com >
2026-05-03 12:15:19 -07:00
31e23cfc3b
fix(ci): add verbose output and fix release config double-merge ( #464 )
...
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com >
2026-05-03 18:05:57 +00:00
Wes and GitHub
22cb8129e5
feat(desktop): add OSS release workflow and auto-updater support ( #461 )
2026-05-03 16:21:58 +00:00
f946e9b68a
feat: user profile panel with hover popover and click-to-expand ( #456 )
...
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com >
2026-05-02 15:21:26 -07:00
e105c9ea5e
feat(desktop): add relay membership admin UI in settings ( #454 )
...
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com >
2026-05-02 16:56:41 +00: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
56f5062b74
feat: add NIP-38 user status for desktop and mobile ( #449 )
...
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com >
2026-05-01 17:02:59 -07:00
Bradley Axen and GitHub
7c2c556d72
feat: Add local ACP session observer ( #412 )
2026-04-29 04:21:58 +00:00
2a01ca590d
Implement NIP-RS unread state sync ( #420 )
...
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com >
2026-04-28 20:54:09 -07:00
00a4aaba3d
fix(desktop): key-based React remount for workspace switching ( #415 )
...
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com >
2026-04-28 18:13:12 +00:00
tlongwell-block and GitHub
d1c84a621c
feat(nip-oa): Owner Attestation — cryptographic proof of agent authorization ( #406 )
2026-04-28 09:29:15 -04:00
a9024c2c78
Add multi-workspace support to desktop app ( #409 )
...
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com >
2026-04-28 04:47:11 +00:00
c6c27481a3
fix(desktop): resolve agent command path for DMG builds ( #372 )
...
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-20 13:16:20 -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
fc67dac4c6
feat: NIP-AB device pairing — Phase 2 (desktop + mobile UI) ( #343 )
...
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-16 15:25:18 -07:00
tlongwell-block and GitHub
70059efa4a
perf(tts): reduce Kokoro time-to-first-audio with session warmup and threading ( #342 )
2026-04-16 17:37:38 -04:00
tlongwell-block and GitHub
d99332e169
fix: cancel TTS on remote human speech in multi-participant huddles ( #332 )
2026-04-15 21:23:51 -04:00
tlongwell-block and GitHub
dd6107d0d0
feat: Sprout Huddles — voice conversations with AI agents ( #299 )
2026-04-14 13:11:09 -04:00
thomaspblock and GitHub
0f5f306364
feat(desktop): deterministic nested thread panels ( #308 )
2026-04-13 18:37:37 -07:00
Will Pfleger and GitHub
ccecf7e362
Add edit dialog for managed agents with relay profile sync ( #277 )
2026-04-13 18:15:43 +00:00
tlongwell-block and GitHub
d07385fe02
feat: Markdown-based persona packs (crate + ACP + desktop) ( #297 )
2026-04-11 13:32:14 -04:00
1211b0edc6
feat(desktop): add Pulse social notes surface ( #296 )
...
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-10 17:09:38 -07:00
tlongwell-block and GitHub
ff86e0cf49
feat: add Sprout nest — persistent agent workspace at ~/.sprout ( #290 )
2026-04-10 15:01:26 -04:00