Will Pfleger
b4d8574e1d
Merge remote-tracking branch 'origin/main' into test/cli-612-613
...
* origin/main:
fix(infra): pin PGDATA path for forward-compatible Postgres upgrades (#707 )
fix(deps): upgrade redis 1.0 and deadpool-redis 0.23 together (#703 )
Fix SPROUT_SHARE_IDENTITY worktree dev workflow breaks (#702 )
fix(mobile): rename IOSOptions/MacOsOptions to AppleOptions (#706 )
fix(frontend): remove deprecated baseUrl for TypeScript 6 compatibility (#705 )
fix(deps): upgrade getrandom to 0.4 with fill() rename (#704 )
feat(sprout-agent): auto-fallback to Databricks OAuth (#699 )
fix(relay): avoid websocket writes in stall watchdog (#697 )
2026-05-21 17:58:41 -04:00
Will Pfleger
d4f55cee3c
fix(deps): upgrade getrandom to 0.4 with fill() rename ( #704 )
2026-05-21 17:40:18 -04:00
tlongwell-block
962dd7dced
feat(sprout-agent): auto-fallback to Databricks OAuth ( #699 )
...
Signed-off-by: tlongwell-block <109685178+tlongwell-block@users.noreply.github.com >
2026-05-21 13:05:58 -04:00
Will Pfleger
5a097dc20b
Merge remote-tracking branch 'origin/cli-agent-parity' into test/cli-612-613
...
* origin/cli-agent-parity:
docs: add sprout-cli section and common gotchas to AGENTS.md
style: fix rustfmt formatting in channels.rs and messages.rs
fix(cli): fix search p-gate, visibility filter, and forum post routing
docs: update TESTING.md runbooks for normalized CLI output
style: fix rustfmt formatting in sprout-cli
fix(cli): address review findings — data correctness, DRY, determinism
fix(cli): normalize output and fix wrong Nostr kinds across all commands
2026-05-21 12:32:00 -04:00
tlongwell-block
fa9e26fa5c
feat(sprout-agent): Databricks provider with OAuth 2.0 PKCE auth ( #698 )
...
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-21 12:08:24 -04:00
Will Pfleger
388877188b
style: fix rustfmt formatting in channels.rs and messages.rs
2026-05-21 11:49:12 -04:00
Will Pfleger
058a498b57
fix(cli): fix search p-gate, visibility filter, and forum post routing
...
Three bugs found during E2E testing against a local relay:
1. `messages search` sent no `kinds` filter, triggering the relay's
p-gate (403). Now sends `kinds: [9, 40002, 45001, 45003]` matching
the MCP server's search implementation.
2. `channels list --visibility open` always returned `[]` because the
filter checked for `["visibility", "open"]` tags, but the relay
emits `["public"]`/`["private"]` per NIP-29. Rewritten to match
the relay's actual tag convention.
3. `--kind` flag on `messages send` was dead code (`#[allow(dead_code)]`).
Now routes to `build_forum_post` (kind 45001) and `build_forum_comment`
(kind 45003) SDK builders, enabling forum voting via CLI.
TESTING.md updated with relay behavior notes for channels leave
(last-owner guard), workflows trigger (DB indexing delay), workflows
update (missing --channel flag), and corrected expected error messages.
2026-05-21 11:31:35 -04:00
renovate[bot]
0dd9a05948
fix(deps): update rust crate sha2 to 0.11 ( #665 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-05-20 22:54:25 +00:00
Will Pfleger
a0264f48cd
docs: update TESTING.md runbooks for normalized CLI output
...
channels/workflows/DMs create responses now return entity IDs
(channel_id, workflow_id, dm_id) instead of bare id. All write
commands return {event_id, accepted, message}. canvas get outputs
raw markdown, not JSON. users get always returns an array.
Add expected-output comments throughout so testers can verify
correctness without reading the source.
2026-05-20 18:12:34 -04:00
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
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
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
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
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
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
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
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
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
9e94a7c475
fix(agent): fix OpenAI-compat request body serialization and max_tokens ( #595 )
2026-05-15 11:07:14 -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 )
2026-05-14 18:49:57 -04:00
tlongwell-block
1b87a0905f
refactor: extract shared @mention resolver into sprout-sdk ( #580 )
...
Signed-off-by: Tyler Longwell <109685178+tlongwell-block@users.noreply.github.com >
Co-authored-by: npub1cc3ha7z055mu0rwwu7806t2wt8mj3pvu0uv5mfp2c50dahaqhczshdalg6 <c6237ef84fa537c78dcee78efd2d4e59f728859c7f194da42ac51ededfa0be05@sprout-oss.stage.blox.sqprod.co >
Co-authored-by: Dawn <dawn@sprout.local >
2026-05-14 11:38:52 -04:00
Matt Toohey
2ee7356424
fix: add default-run to sprout-relay so cargo run -p sprout-relay works ( #577 )
...
Signed-off-by: Matt Toohey <contact@matttoohey.com >
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-05-14 08:34:23 -07:00
tlongwell-block
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
8d5abb7a09
chore(acp): raise default idle timeout from 320s to 620s ( #566 )
...
Signed-off-by: Tyler Longwell <109685178+tlongwell-block@users.noreply.github.com >
2026-05-13 11:04:53 -04:00
tlongwell-block
e427581ca3
fix(cli): derive thread root from parent event tags ( #564 )
...
Signed-off-by: tlongwell-block <109685178+tlongwell-block@users.noreply.github.com >
2026-05-13 09:54:43 -04:00
tlongwell-block
90063cf5f0
fix: skip empty assistant turns instead of placeholder space ( #560 )
2026-05-13 09:40:41 -04:00
tlongwell-block
80b79c4f75
agent: raise default SPROUT_AGENT_MAX_OUTPUT_TOKENS to 32768 ( #565 )
...
Co-authored-by: Tyler Longwell <tlongwell-block@users.noreply.github.com >
2026-05-13 13:03:56 +00:00
tlongwell-block
cacfe6b84e
fix(nip11): advertise auth_required: true to match actual enforcement ( #556 )
...
Signed-off-by: Tyler Longwell <109685178+tlongwell-block@users.noreply.github.com >
2026-05-12 20:08:53 -04:00
tlongwell-block
69734bff00
fix: Anthropic rejects empty text blocks in assistant history ( #559 )
2026-05-12 19:41:50 -04:00
tlongwell-block
a33d73bf6d
agent: make max_sessions default unlimited ( #547 )
2026-05-12 17:32:19 -04:00
tlongwell-block
08e00a6f0a
fix(relay): auto-create git_repo_path so kind:30617 init can't silently fail ( #545 )
2026-05-12 16:40:38 -04:00
tlongwell-block
385e1716b7
agent+acp: preserve session on retriable agent errors ( #544 )
2026-05-12 13:57:02 -04:00
tlongwell-block
6b4f9f05d4
cli: add display name lookup to get-users ( #543 )
2026-05-11 20:41:02 -04:00
tlongwell-block
23f1637728
fix: classify agent JSON-RPC errors as application errors, not transport ( #539 )
2026-05-11 17:44:34 -04:00
tlongwell-block
d953d0ecb4
fix: default max_rounds to 0 (unlimited) ( #540 )
2026-05-11 20:09:25 +00:00
Wes
1d604e8b2e
Update Rust dependencies for pair relay ( #534 )
2026-05-11 10:47:22 -07:00
tlongwell-block
98030c526a
feat: Git repository management commands ( #533 )
2026-05-11 13:40:51 -04:00
tlongwell-block
120b1b0c06
Add sprout-agent avatar image ( #530 )
2026-05-11 17:05:35 +00:00
tlongwell-block
22f1e0b724
Launch sprout-agent from the desktop GUI ( #529 )
2026-05-11 12:36:53 -04:00
tlongwell-block
70a691517b
feat: automatic git auth and signing for sprout agents ( #528 )
2026-05-11 10:38:45 -04:00
tlongwell-block
91f16e326f
feat: embed sprout CLI in dev-mcp, add NIP-OA auth tag support ( #525 )
2026-05-11 06:57:34 -04:00
tlongwell-block
082414bf3f
feat: sprout-agent + sprout-dev-mcp — minimal ACP coding agent ( #493 )
2026-05-10 22:33:58 -04:00
tlongwell-block
32c3fd1340
fix: extract NIP-OA owner on open relays for observer frame auth ( #513 )
2026-05-08 16:00:23 -04:00
Wes
0f10861850
feat(desktop): expand default agent toolsets with canvas, forums, dms, and member list ( #510 )
...
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com >
2026-05-08 10:10:06 -07:00