Will Pfleger
c950d60454
style: fix rustfmt formatting in sprout-cli
...
Reformat long method chains and closure expressions that rustfmt
flagged during CI. No logic changes.
2026-05-20 17:57:15 -04:00
Will Pfleger
0cf0d106e7
fix(cli): address review findings — data correctness, DRY, determinism
...
Crossfire review (Codex + Gemini) surfaced 15 issues the Claude agents
missed. Critical: p-tag role read from wrong index (empty relay_url at
index 2 vs actual role at index 3), cmd_open_dm panics on malformed
pubkey, users get returns inconsistent types, channels query wrong Nostr
kind (41 vs 39000). Also: DM open now parses relay-assigned channel_id,
canvas not-found returns null, thread filter restricts to message kinds,
query() delegates to query_multi(), normalize_events takes &[Value],
extract_channel_metadata and print_create_response DRY helpers,
workflows get normalized, empty reaction content defaults to "+",
reactions sorted deterministically.
2026-05-20 17:57:15 -04:00
Will Pfleger
5a53383897
fix(cli): normalize output and fix wrong Nostr kinds across all commands
...
Comprehensive audit revealed the CLI queried wrong Nostr kinds (channels
list used kind:39002 instead of 41, dms list used 41010 instead of 41001,
workflow runs used 46020 instead of [46001,46002,46003]), used wrong tag
filters (#h instead of #d), discarded generated IDs from create commands,
and returned raw Nostr events with sig fields instead of structured data.
Adds query_multi() for compound queries, normalize_write_response() for
consistent {event_id, accepted, message} write output, normalize_events()
for stripping sig and reshaping reads, and extract_d_tag/extract_p_tags
helpers. All 25+ write handlers and 10+ read handlers now produce
structured output matching the MCP server.
2026-05-20 17:57:15 -04:00
renovate[bot]
811798b405
chore(deps): update taiki-e/install-action digest to 65851e1 ( #633 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-05-20 21:48:16 +00:00
renovate[bot]
f62707f4dc
chore(deps): update rust crate earshot to v1.1.0 ( #654 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-05-20 17:43:33 -04:00
renovate[bot]
6ada9da386
chore(deps): update all non-major dependencies (patch) ( #634 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-05-20 17:36:06 -04:00
Will Pfleger
94b92b55d1
Add CODEOWNERS file to repo ( #632 )
2026-05-20 21:15:06 +00:00
tlongwell-block
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
Will Pfleger
8dcf24f993
fix: unblock Renovate PR creation and reduce cargo branch sprawl ( #630 )
2026-05-20 20:11:35 +00:00
Taylor Ho
af08b0f0e8
fix: prevent agent proliferation when adding bots to channels ( #621 )
2026-05-20 12:08:34 -07:00
Will Pfleger
c8f99bbc31
fix: surface swallowed errors across crates and emit turn failures to activity log ( #628 )
2026-05-20 14:55:20 -04:00
tlongwell-block
c9dd97ba1a
feat(cli/mem): add mem patch, mem hash, and reject empty-stdin in mem set ( #627 )
...
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 14:51:30 -04:00
tlongwell-block
23c8fa72c7
Add relay support for NIP-51 lists ( #616 )
...
Signed-off-by: Tyler Longwell <tlongwell@squareup.com >
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 13:59:22 -04:00
thomaspblock
b5e5a39bf0
Refine Pulse composer and post actions ( #629 )
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-05-20 13:04:47 -04:00
Mat Balez
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
tlongwell-block
2a69f285e7
cli(mem): clarify 'no memories' wording to note core is excluded ( #622 )
...
Signed-off-by: Tyler Longwell <109685178+tlongwell-block@users.noreply.github.com >
Co-authored-by: Dawn <dawn@sprout-agents.local >
2026-05-20 14:10:39 +00:00
tlongwell-block
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
tlongwell-block
c0c9cf9271
cli(messages): allow --content - to read body from stdin ( #624 )
...
Signed-off-by: Tyler Longwell <109685178+tlongwell-block@users.noreply.github.com >
Co-authored-by: Dawn (sprout agent) <c6237ef84fa537c78dcee78efd2d4e59f728859c7f194da42ac51ededfa0be05@sprout-oss.stage.blox.sqprod.co >
2026-05-20 02:38:17 +00:00
Will Pfleger
582cfc8885
Bundle sprout CLI in DMG release + agent PATH discoverability ( #614 )
2026-05-19 20:53:46 -04:00
tlongwell-block
2392e6523a
fix(composer): use native ProseMirror inserts for autocomplete (mentions / channels / emoji) ( #618 )
...
Signed-off-by: Tyler Longwell <109685178+tlongwell-block@users.noreply.github.com >
Co-authored-by: Quinn (sprout agent) <96f056ad5f2305c8ddf637dc65d048aa4c12d7daeb8867690e34fca46b0ef64c@sprout-oss.stage.blox.sqprod.co >
2026-05-19 20:28:40 -04:00
thomaspblock
b881d5319c
Refine thread reply alignment ( #620 )
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-05-19 19:11:49 -04:00
tlongwell-block
2fed74bdcd
Show channels in command search ( #617 )
...
Signed-off-by: npub1mprnacetjua2xx3p5eddmhxyk6wv929ymm5py8kd2xfxurxahspqqlgyta <d8473ee32b973aa31a21a65adddcc4b69cc2a8a4dee8121ecd51926e0cddbc02@sprout-oss.stage.blox.sqprod.co >
Co-authored-by: npub1mprnacetjua2xx3p5eddmhxyk6wv929ymm5py8kd2xfxurxahspqqlgyta <d8473ee32b973aa31a21a65adddcc4b69cc2a8a4dee8121ecd51926e0cddbc02@sprout-oss.stage.blox.sqprod.co >
2026-05-19 14:33:53 -04:00
tlongwell-block
24520aa2b1
NIP-AE: agent engrams (kind:30174) — core memory injection + sprout mem CLI ( #593 )
...
Signed-off-by: Tyler Longwell <tlongwell@squareup.com >
Signed-off-by: Tyler Longwell <109685178+tlongwell-block@users.noreply.github.com >
2026-05-19 13:16:37 -04:00
thomaspblock
3973080dce
Refine conversation visual affordances ( #615 )
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-05-19 08:54:41 -04:00
Will Pfleger
50b350dc58
fix(desktop): worktree support — workspace boundary + shared identity ( #610 )
2026-05-18 19:11:34 -04:00
tlongwell-block
6e1418e571
feat(huddle): fix concurrent-speaker mixing + jitter buffer + protocol v2 (up to 10 peers) ( #609 )
...
Signed-off-by: tlongwell-block <109685178+tlongwell-block@users.noreply.github.com >
2026-05-18 16:34:52 -04:00
tlongwell-block
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
thomaspblock
137a4e268f
Update inbox conversation experience ( #608 )
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-05-18 13:48:47 -04:00
tlongwell-block
70cb53e2c7
Add Sprig all-in-one agent binary ( #605 )
...
Signed-off-by: Tyler Longwell <tlongwell@squareup.com >
2026-05-17 13:31:58 -04:00
thomaspblock
17eea2d267
Fix full-width message layouts ( #591 )
...
Co-authored-by: Cursor <cursoragent@cursor.com >
sprout-agent-bundle-latest
2026-05-17 09:04:09 -04:00
tlongwell-block
e4e9923799
feat(agent): add OpenAI Responses API with auto endpoint detection ( #604 )
...
Signed-off-by: Tyler Longwell <109685178+tlongwell-block@users.noreply.github.com >
2026-05-16 21:23:33 -04:00
tlongwell-block
edcef511eb
docs(readme): refresh as a landing page ( #596 )
...
Signed-off-by: tlongwell-block <109685178+tlongwell-block@users.noreply.github.com >
2026-05-16 20:04:37 -04:00
tlongwell-block
6ba46f21da
ci: publish Sprout Agent Bundle (sprout-acp + sprout-agent + sprout-dev-mcp) to GitHub Releases ( #603 )
...
Signed-off-by: Tyler Longwell <109685178+tlongwell-block@users.noreply.github.com >
2026-05-16 21:04:00 +00:00
tlongwell-block
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
d1097aa91f
chore(desktop): upgrade Tauri to 2.11.x to fix blank window after sleep on macOS ( #600 )
...
Signed-off-by: Tyler Longwell <109685178+tlongwell-block@users.noreply.github.com >
2026-05-15 18:59:16 -04:00
tlongwell-block
92c859043c
dev-mcp: add view_image tool ( #602 )
...
Signed-off-by: Tyler Longwell <tlongwell@squareup.com >
2026-05-15 16:21:16 -04:00
tlongwell-block
7171d4954d
fix(relay,desktop): only advertise NIP-43 when enforced; probe pairing by supported_nips ( #601 )
...
Signed-off-by: Tyler Longwell <tlongwell@squareup.com >
2026-05-15 15:11:37 -04:00
tlongwell-block
7763072ef9
fix(desktop): derive unread state from NIP-RS + relay catch-up only ( #599 )
...
Signed-off-by: Tyler Longwell <109685178+tlongwell-block@users.noreply.github.com >
2026-05-15 14:46:33 -04:00
tlongwell-block
4cbcfa86ee
docs(testing): rewrite TESTING.md for current API and CLI-first workflow ( #597 )
...
Signed-off-by: Tyler Longwell <tlongwell@squareup.com >
2026-05-15 18:11:04 +00:00
tlongwell-block
9e94a7c475
fix(agent): fix OpenAI-compat request body serialization and max_tokens ( #595 )
2026-05-15 11:07:14 -04:00
tlongwell-block
32347d117c
feat(desktop): per-persona and per-agent env var overrides ( #594 )
2026-05-15 10:43:00 -04:00
tlongwell-block
13dc0df688
fix(desktop): stop pinning agents to deprecated SPROUT_ACP_TURN_TIMEOUT ( #592 )
...
Signed-off-by: Tyler Longwell <109685178+tlongwell-block@users.noreply.github.com >
2026-05-14 21:51:38 -04:00
tlongwell-block
5cdb3062ed
fix(desktop): populate member_count in get_channels so channel browser shows real counts ( #548 )
...
Signed-off-by: tlongwell-block <109685178+tlongwell-block@users.noreply.github.com >
2026-05-14 20:38:01 -04:00
tlongwell-block
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
Will Pfleger
1d8a130b32
refactor(cli): restructure flat commands into 12 subcommand groups ( #585 )
2026-05-14 19:13:49 -04:00
Will Pfleger
01a3df7f1f
feat(sdk): add builder functions for workflows, DMs, and presence ( #589 )
v0.0.16
2026-05-14 18:49:57 -04:00
Wes
4425f1f713
feat(desktop): add message more-actions dropdown menu ( #590 )
...
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com >
2026-05-14 15:31:55 -07:00
Wes
586b3678d9
fix(mobile): preserve channel list across background/resume reconnection ( #588 )
...
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com >
2026-05-14 21:24:54 +00:00
thomaspblock
8a2d24e4fd
Redesign Home as an inbox ( #582 )
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-05-14 13:35:17 -07:00
tlongwell-block
1858e98d5e
fix(desktop): drive unread badges from live subscription, not refetched lastMessageAt ( #581 )
...
Signed-off-by: Tyler Longwell <tlongwell@squareup.com >
2026-05-14 13:25:24 -04:00