Wes
918729d7cf
fix: remove redundant role gate on respondTo/personaDisplayName in message timeline
...
The respondToLookup and personaLookup maps only contain bot pubkeys,
so gating on role === "bot" is redundant and breaks rendering when
the relay-side role is stale ("member" instead of "bot").
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-05-14 14:03:39 -07:00
Wes
02a3a0861a
revert: remove backend changes, keep desktop-only fix
...
Strip sprout-db and sprout-relay changes per Wes's direction. The
backend already supports bot role via kind:9000 ON CONFLICT — no
relay-side changes needed. Bot classification and respond-to
visibility fixes are entirely desktop-side.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-05-14 13:36:54 -07:00
Wes
69e91987d7
fix: bot classification and respond-to visibility for all users
...
Two bugs fixed:
1. Agents self-joining channels via kind:9021 were assigned "member" role
instead of "bot". The relay now detects agents (via agent_owner_pubkey)
and assigns MemberRole::Bot. Existing incorrect roles are auto-upgraded
when the agent authenticates via NIP-OA.
2. Respond-to badges were only visible to the bot owner because the data
was never published to the relay. Agent kind:0 profiles now include
respond_to, and the desktop app syncs it on create/update. The frontend
reads respond_to from profile data for all bots.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-05-14 12:13:25 -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
thomaspblock
9e76a08a47
fix(desktop): refine header scaling and shadow ( #573 )
...
Co-authored-by: Cursor <cursoragent@cursor.com >
v0.0.15
2026-05-14 10:07:15 -07:00
thomaspblock
b74ec95b8e
fix(desktop): keep day dividers below header ( #574 )
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-05-14 09:58:21 -07:00
thomaspblock
aad564b130
Move agent activity below composer ( #579 )
...
Co-authored-by: Cursor <cursoragent@cursor.com >
Co-authored-by: Wes <wesb@block.xyz >
2026-05-14 09:46:52 -07:00
tlongwell-block
bda98da771
docs(nips): NIP-AE — Agent Engrams ( #575 )
...
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-14 12:10:56 -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
Matt Toohey
f0549b5038
feat(desktop): channel hover state and right-click mark-unread context menu ( #578 )
...
Signed-off-by: Matt Toohey <contact@matttoohey.com >
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-05-14 08:33:57 -07:00
tlongwell-block
b176b52b70
fix(mobile): show ephemeral (TTL) channels in the channel list ( #571 )
...
Signed-off-by: Dawn <c6237ef84fa537c78dcee78efd2d4e59f728859c7f194da42ac51ededfa0be05@sprout-oss.stage.blox.sqprod.co >
Signed-off-by: npub1cc3ha7z055mu0rwwu7806t2wt8mj3pvu0uv5mfp2c50dahaqhczshdalg6 <c6237ef84fa537c78dcee78efd2d4e59f728859c7f194da42ac51ededfa0be05@sprout-oss.stage.blox.sqprod.co >
Co-authored-by: Dawn <c6237ef84fa537c78dcee78efd2d4e59f728859c7f194da42ac51ededfa0be05@sprout-oss.stage.blox.sqprod.co >
v0.0.14
2026-05-13 15:15:18 -07:00
Wes
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
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 >
v0.0.13
2026-05-13 15:03:35 -04:00
Wes
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
9c258e4beb
feat(desktop): GUI for agent respond-to gate (owner-only / anyone / allowlist) ( #557 )
2026-05-13 12:48:42 -04:00
thomaspblock
5db47a84b1
feat(desktop): add neutral accent color ( #563 )
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-05-13 08:34:56 -07:00
thomaspblock
5e6083ef9e
fix(desktop): inline update control in header ( #561 )
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-05-13 08:34:26 -07: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
Wes
8004bafaff
fix(desktop): resolve unarchive revert and stale member list bugs ( #558 )
...
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com >
2026-05-12 16:55:25 -07:00
tlongwell-block
69734bff00
fix: Anthropic rejects empty text blocks in assistant history ( #559 )
2026-05-12 19:41:50 -04:00
Wes
f41b9736ac
fix(desktop): resolve O(n²) render cascade in activity sidebar ( #555 )
...
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com >
2026-05-12 15:48:05 -07:00
Wes
809275795a
feat(web): browse git repos in-browser via isomorphic-git ( #554 )
...
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com >
v0.0.12
2026-05-12 15:05:57 -07: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
Wes
78508ea6cb
fix(desktop): editor bug fixes — codeblock escaping, thread edit leak, channel links, and edit cancel ( #553 )
...
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com >
2026-05-12 19:35:10 +00:00
tlongwell-block
61c30add40
feat(desktop): multi-select in the paperclip file picker ( #551 )
...
Signed-off-by: tlongwell-block <109685178+tlongwell-block@users.noreply.github.com >
2026-05-12 15:01:48 -04:00
tlongwell-block
effa24f06c
fix(desktop): forward cache headers in media proxy ( #549 )
...
Signed-off-by: tlongwell-block <109685178+tlongwell-block@users.noreply.github.com >
2026-05-12 14:40:07 -04:00
tlongwell-block
afe072fa42
docs(agents): prefer Nostr events over new REST endpoints ( #550 )
...
Signed-off-by: tlongwell-block <109685178+tlongwell-block@users.noreply.github.com >
2026-05-12 14:39:19 -04:00
tlongwell-block
385e1716b7
agent+acp: preserve session on retriable agent errors ( #544 )
2026-05-12 13:57:02 -04:00
Wes
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
tlongwell-block
6b4f9f05d4
cli: add display name lookup to get-users ( #543 )
2026-05-11 20:41:02 -04:00
Wes
11778f4250
feat(desktop): image download, drag-drop prevention, and drop zone indicator ( #542 )
...
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com >
v0.0.11
2026-05-11 23:26:12 +00:00
Wes
19f290651a
fix: pass profiles to mention autocomplete in threads and forum composers ( #541 )
...
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com >
2026-05-11 23:12:10 +00: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
1b9f6169ee
feat(desktop): channel templates — reusable project settings ( #538 )
...
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com >
v0.0.10
2026-05-11 12:31:25 -07:00
Wes
cec1143552
fix: side panel headers hidden by compact app header ( #537 )
...
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com >
2026-05-11 18:53:39 +00:00
Wes
582339d4b1
Remove obsolete secp256k1 Renovate hold ( #536 )
2026-05-11 11:40:33 -07:00
tlongwell-block
0ee9f20ccb
Build sprout-agent in staging recipe ( #535 )
2026-05-11 13:57:07 -04: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
renovate[bot]
9f42120250
Update all non-major dependencies (minor) ( #523 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-05-11 17:25:57 +00:00
tlongwell-block
e2b6e8b25a
Use dedicated sprout-agent avatar ( #532 )
2026-05-11 17:16:08 +00:00
Wes
eb73a7f7c6
[codex] Tame Renovate dependency grouping ( #531 )
2026-05-11 10:15:54 -07:00
tlongwell-block
120b1b0c06
Add sprout-agent avatar image ( #530 )
2026-05-11 17:05:35 +00:00