npub1mn7jgtj4w2pd0g0zeuhxsa6jy6p0rewxz4kujt98my82ahfmp72sxjexk7
3c6cd9c3f0
feat(desktop): add persona event kind with client publish/read/retain
...
Implements the foundation for personas-as-events architecture:
- Define KIND_PERSONA (30175) as NIP-33 parameterized replaceable,
keyed by (pubkey, kind, d_tag) where d_tag is the plaintext persona
slug. Relay allowlists the kind under UsersWrite scope and marks it
global-only (never channel-scoped).
- Client-side serialization: PersonaRecord ↔ kind:30175 event with
JSON content body. Publish and fetch functions via relay HTTP API.
- SQLite retention store: local durable storage for persona events
enabling offline boot. INSERT OR REPLACE on (kind, pubkey, d_tag)
for NIP-33 latest-wins semantics. Pending-sync queue for deferred
relay publish.
- Migration: on first launch after upgrade, non-builtin personas from
personas.json are serialized as events and written to the retention
store with pending_sync=1. Idempotent via sentinel file. Runs after
the packs→teams migration.
The existing load_personas path is unchanged — retention-based loading
is wired up as a helper for PR 2 (instantiation flow) to activate.
Co-authored-by: Will Pfleger <pfleger.will@gmail.com >
Signed-off-by: Will Pfleger <pfleger.will@gmail.com >
2026-06-10 00:17:51 -04:00
Will Pfleger
ba2fdbf697
refactor(desktop): consolidate packs into teams ( #852 )
2026-06-09 23:22:34 -04:00
Wes
98aa535935
chore(release): release version 0.3.15 ( #936 )
2026-06-09 18:02:31 -07:00
Wes
877048d68f
fix: persona is source of truth at spawn + thread-depth conventions ( #930 )
...
Signed-off-by: Wes <wesbillman@users.noreply.github.com >
Signed-off-by: npub1mn7jgtj4w2pd0g0zeuhxsa6jy6p0rewxz4kujt98my82ahfmp72sxjexk7 <dcfd242e557282d7a1e2cf2e6877522682f1e5c6156dc92ca7d90eaedd3b0f95@sprout-oss.stage.blox.sqprod.co >
Co-authored-by: Brain <21994759fc7a6fa6b965551d35cfd7897d262f2495467f2d78694ddcfa6a5c7e@sprout-oss.stage.blox.sqprod.co >
Co-authored-by: npub1mn7jgtj4w2pd0g0zeuhxsa6jy6p0rewxz4kujt98my82ahfmp72sxjexk7 <dcfd242e557282d7a1e2cf2e6877522682f1e5c6156dc92ca7d90eaedd3b0f95@sprout-oss.stage.blox.sqprod.co >
2026-06-09 23:58:45 +00:00
Will Pfleger
73cd8d082d
fix: skip avatar reconciliation for legacy agent records ( #933 )
...
Signed-off-by: npub1mn7jgtj4w2pd0g0zeuhxsa6jy6p0rewxz4kujt98my82ahfmp72sxjexk7 <dcfd242e557282d7a1e2cf2e6877522682f1e5c6156dc92ca7d90eaedd3b0f95@sprout-oss.stage.blox.sqprod.co >
Signed-off-by: npub1fgdl5qqnh3k3f2xkqrvt7cujalhm623x4s7fdjdj5yrtp5fzjl9qrjpucw <4a1bfa0013bc6d14a8d600d8bf6392efefbd2a26ac3c96c9b2a106b0d12297ca@sprout-oss.stage.blox.sqprod.co >
Co-authored-by: npub1fgdl5qqnh3k3f2xkqrvt7cujalhm623x4s7fdjdj5yrtp5fzjl9qrjpucw <4a1bfa0013bc6d14a8d600d8bf6392efefbd2a26ac3c96c9b2a106b0d12297ca@sprout-oss.stage.blox.sqprod.co >
2026-06-09 19:52:11 -04:00
Will Pfleger
165b9f7a5f
feat(desktop): add nest commit identity guidance with human sign-off ( #929 )
...
Signed-off-by: npub1fgdl5qqnh3k3f2xkqrvt7cujalhm623x4s7fdjdj5yrtp5fzjl9qrjpucw <4a1bfa0013bc6d14a8d600d8bf6392efefbd2a26ac3c96c9b2a106b0d12297ca@sprout-oss.stage.blox.sqprod.co >
Signed-off-by: Will Pfleger <wpfleger@squareup.com >
Signed-off-by: Will Pfleger <pfleger.will@gmail.com >
Co-authored-by: npub1fgdl5qqnh3k3f2xkqrvt7cujalhm623x4s7fdjdj5yrtp5fzjl9qrjpucw <4a1bfa0013bc6d14a8d600d8bf6392efefbd2a26ac3c96c9b2a106b0d12297ca@sprout-oss.stage.blox.sqprod.co >
Co-authored-by: npub1mn7jgtj4w2pd0g0zeuhxsa6jy6p0rewxz4kujt98my82ahfmp72sxjexk7 <dcfd242e557282d7a1e2cf2e6877522682f1e5c6156dc92ca7d90eaedd3b0f95@sprout-oss.stage.blox.sqprod.co >
2026-06-09 18:46:55 -04:00
Will Pfleger
9a98e60fc2
feat: provider/model selection for personas and runtime-aware env injection ( #794 )
2026-06-09 20:42:27 +00:00
Will Pfleger
762a45969a
fix: reconcile agent profile on startup when relay publish was missed ( #921 )
...
Signed-off-by: npub1mn7jgtj4w2pd0g0zeuhxsa6jy6p0rewxz4kujt98my82ahfmp72sxjexk7 <dcfd242e557282d7a1e2cf2e6877522682f1e5c6156dc92ca7d90eaedd3b0f95@sprout-oss.stage.blox.sqprod.co >
Co-authored-by: npub1mn7jgtj4w2pd0g0zeuhxsa6jy6p0rewxz4kujt98my82ahfmp72sxjexk7 <dcfd242e557282d7a1e2cf2e6877522682f1e5c6156dc92ca7d90eaedd3b0f95@sprout-oss.stage.blox.sqprod.co >
2026-06-09 15:05:42 -04:00
Wes
c38301bca5
fix(dm): keep hidden DMs hidden across refetch via relay-signed visibility snapshot (NIP-DV) ( #857 )
...
Signed-off-by: Wes <wesbillman@users.noreply.github.com >
Signed-off-by: npub1qyvc0c5kl4gqv2fd97fsk46tu378sqgy35vc83rvgfwne90sel7s0ed67d <011987e296fd5006292d2f930b574be47c7801048d1983c46c425d3c95f0cffd@sprout-oss.stage.blox.sqprod.co >
Co-authored-by: Brain <21994759fc7a6fa6b965551d35cfd7897d262f2495467f2d78694ddcfa6a5c7e@sprout-oss.stage.blox.sqprod.co >
Co-authored-by: npub1qyvc0c5kl4gqv2fd97fsk46tu378sqgy35vc83rvgfwne90sel7s0ed67d <011987e296fd5006292d2f930b574be47c7801048d1983c46c425d3c95f0cffd@sprout-oss.stage.blox.sqprod.co >
2026-06-09 10:23:57 -07:00
klopez4212
4dfae61f24
Maximize desktop window on launch ( #925 )
2026-06-09 18:08:37 +01:00
Wes
7dd5b34536
Add channel visibility & ephemeral TTL controls to manage sidebar ( #911 )
...
Signed-off-by: Wes <wesbillman@users.noreply.github.com >
Co-authored-by: Brain <21994759fc7a6fa6b965551d35cfd7897d262f2495467f2d78694ddcfa6a5c7e@sprout-oss.stage.blox.sqprod.co >
2026-06-09 09:01:10 -07:00
tlongwell-block
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
Wes
d099866ace
chore(release): release version 0.3.14 ( #916 )
2026-06-09 07:43:02 -07:00
Will Pfleger
bfafdd46b2
fix(sdk): resolve multi-word display names and add NIP-27 nostr:npub mention extraction ( #905 )
...
Signed-off-by: npub1mn7jgtj4w2pd0g0zeuhxsa6jy6p0rewxz4kujt98my82ahfmp72sxjexk7 <dcfd242e557282d7a1e2cf2e6877522682f1e5c6156dc92ca7d90eaedd3b0f95@sprout-oss.stage.blox.sqprod.co >
Co-authored-by: npub1mn7jgtj4w2pd0g0zeuhxsa6jy6p0rewxz4kujt98my82ahfmp72sxjexk7 <dcfd242e557282d7a1e2cf2e6877522682f1e5c6156dc92ca7d90eaedd3b0f95@sprout-oss.stage.blox.sqprod.co >
2026-06-08 19:05:37 -04:00
Wes
15f610dcd5
fix(desktop): re-enable mcp_command reconciliation and harden spawn site ( #909 )
...
Signed-off-by: Wes <wesbillman@users.noreply.github.com >
Co-authored-by: Brain <21994759fc7a6fa6b965551d35cfd7897d262f2495467f2d78694ddcfa6a5c7e@sprout-oss.stage.blox.sqprod.co >
Co-authored-by: Duncan <dcfd242e557282d7a1e2cf2e6877522682f1e5c6156dc92ca7d90eaedd3b0f95@sprout-oss.stage.blox.sqprod.co >
2026-06-08 13:54:42 -07:00
Wes
d8278f7588
chore(release): release version 0.3.13 ( #903 )
2026-06-08 09:36:16 -07:00
Wes
4ec7f8125e
sprout-agent: make Databricks defaults env-only ( #868 )
...
Signed-off-by: Wes <wesbillman@users.noreply.github.com >
Co-authored-by: Pinky <44b8e82baa6e0e254e0208d68f335c283c94e7b78dd1fa10d5a49d3f13dd0435@sprout-oss.stage.blox.sqprod.co >
2026-06-08 09:17:30 -07:00
tlongwell-block
2ebe551741
fix: rename missed known_acp_provider_exact → known_acp_runtime_exact ( #900 )
2026-06-08 09:29:12 -04:00
Will Pfleger
0a6067ca1b
refactor: rename ACP "provider" to "runtime" across the codebase ( #783 )
2026-06-07 14:40:59 -04:00
Wes
9bbb85b439
chore(release): release version 0.3.12 ( #886 )
2026-06-05 21:17:01 +00:00
klopez4212
0a4783c6f8
Refine sidebar behavior and borders ( #869 )
2026-06-05 14:00:37 -07:00
Will Pfleger
5d7c748969
fix(presence): clear on disconnect, fix heartbeat/TTL, drop broken REST path ( #877 )
2026-06-05 13:28:00 -07:00
Will Pfleger
2f50011bdd
docs(sprout-acp): add communication discipline rules to base prompt + deprecate --mention flag ( #883 )
2026-06-05 15:52:05 -04:00
Wes
bc53008676
Improve emoji naming and custom emoji UX ( #878 )
...
Signed-off-by: Wes <wesbillman@users.noreply.github.com >
Co-authored-by: Pinky <44b8e82baa6e0e254e0208d68f335c283c94e7b78dd1fa10d5a49d3f13dd0435@sprout-oss.stage.blox.sqprod.co >
2026-06-05 18:51:46 +00:00
Will Pfleger
f1c672fea5
chore: deprecate sprout-mcp — fill CLI gaps, remove crate and all references ( #850 )
2026-06-05 12:31:52 -04:00
Wes
baf1f7705f
chore(release): release version 0.3.11 ( #865 )
2026-06-04 17:34:15 -07:00
Will Pfleger
36d7dbd7ca
feat: desktop-screenshot skill to stop agents uploading relay media to PRs ( #862 )
2026-06-04 18:35:10 -04:00
Will Pfleger
f748f71268
fix(desktop): handle symlinked persona pack directories ( #859 )
2026-06-04 17:52:36 -04:00
Wes
249bec86cf
chore(release): release version 0.3.10 ( #849 )
2026-06-04 09:04:52 -07:00
tlongwell-block
34ac3ba1d1
fix(desktop): harden relay mesh connect p-tag ( #834 )
2026-06-04 11:50:49 -04:00
Will Pfleger
3b78dc5690
feat(mobile+desktop): two-tier Slack-style app icon badge ( #802 )
2026-06-03 18:16:49 -07:00
Wes
d8b602a359
fix(desktop): robust emoji picker — unify picker + fix custom emoji in editing, status, reactions ( #837 )
...
Signed-off-by: Wes <wesbillman@users.noreply.github.com >
Co-authored-by: Brain <21994759fc7a6fa6b965551d35cfd7897d262f2495467f2d78694ddcfa6a5c7e@sprout-oss.stage.blox.sqprod.co >
2026-06-03 15:13:25 -07:00
tlongwell-block
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
Wes
b4f8f40333
chore(release): release version 0.3.9 ( #832 )
2026-06-03 10:45:22 -07:00
Wes
82ae85f79a
fix: native arbitrary-file download + image context-menu flash ( #830 )
...
Signed-off-by: Wes <wesbillman@users.noreply.github.com >
Co-authored-by: Brain <21994759fc7a6fa6b965551d35cfd7897d262f2495467f2d78694ddcfa6a5c7e@sprout-oss.stage.blox.sqprod.co >
2026-06-03 09:59:57 -07:00
tlongwell-block
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
Wes
7c896d339d
chore(release): release version 0.3.8 ( #829 )
2026-06-02 16:57:08 -07:00
Wes
dc6821667d
chore(release): release version 0.3.7 ( #825 )
...
Signed-off-by: Mesh-LLM CI <ci@mesh-llm.local >
Co-authored-by: Mesh-LLM CI <ci@mesh-llm.local >
2026-06-02 14:56:23 -07:00
Will Pfleger
56c504a4c7
feat: code block rendering, syntax highlighting, and compose fixes ( #803 )
2026-06-02 14:43:08 -07:00
Wes
2349421304
feat: custom emoji — user-owned NIP-30 sets with a client-side union ( #816 )
...
Signed-off-by: Wes <wesbillman@users.noreply.github.com >
Signed-off-by: tlongwell-block <109685178+tlongwell-block@users.noreply.github.com >
Co-authored-by: Brain <21994759fc7a6fa6b965551d35cfd7897d262f2495467f2d78694ddcfa6a5c7e@sprout-oss.stage.blox.sqprod.co >
Co-authored-by: Pinky <44b8e82baa6e0e254e0208d68f335c283c94e7b78dd1fa10d5a49d3f13dd0435@sprout-oss.stage.blox.sqprod.co >
Co-authored-by: tlongwell-block <109685178+tlongwell-block@users.noreply.github.com >
2026-06-02 14:19:07 -07:00
Will Pfleger
7a12e50518
Install sprout-cli skill at repo root + fix desktop clippy ( #818 )
2026-06-02 17:11:30 -04:00
Will Pfleger
2ea3fd88d2
fix(desktop): use public re-export path for ensure_client_node_for_model ( #824 )
2026-06-02 16:59:05 -04:00
Will Pfleger
fb514c8918
refactor(desktop): feature-gate mesh-llm-sdk behind optional Cargo feature ( #823 )
2026-06-02 20:25:01 +00:00
Wes
b72eee365f
fix(desktop): align workflow read/save commands to the frontend contract ( #820 )
...
Signed-off-by: Wes <wesbillman@users.noreply.github.com >
Co-authored-by: Brain <21994759fc7a6fa6b965551d35cfd7897d262f2495467f2d78694ddcfa6a5c7e@sprout-oss.stage.blox.sqprod.co >
2026-06-02 12:52:56 -07:00
Will Pfleger
5b572d6f5e
fix(desktop): disable mesh-llm auto-build to prevent git config corruption ( #819 )
2026-06-02 18:49:41 +00:00
Wes
192388a3cb
fix(desktop): clear clippy lints in agents/mesh_llm commands ( #817 )
...
Signed-off-by: Wes <wesbillman@users.noreply.github.com >
Co-authored-by: Brain <21994759fc7a6fa6b965551d35cfd7897d262f2495467f2d78694ddcfa6a5c7e@sprout-oss.stage.blox.sqprod.co >
2026-06-02 11:01:01 -07:00
tlongwell-block
ede8ddb425
Sprout × mesh-llm: in-process mesh node (serve/consume) + relay admission ( #798 )
2026-06-02 10:28:20 -04:00
Wes
93183cb75d
chore(release): release version 0.3.6 ( #811 )
2026-06-01 20:51:18 +00:00
Wes
2b052eb465
feat(media): support arbitrary file types with download cards ( #810 )
...
Signed-off-by: Wes <wesbillman@users.noreply.github.com >
Co-authored-by: Brain <21994759fc7a6fa6b965551d35cfd7897d262f2495467f2d78694ddcfa6a5c7e@sprout-oss.stage.blox.sqprod.co >
2026-06-01 12:57:04 -07:00
Wes
39911e4285
fix(desktop): scope agent sweep to the owning app instance ( #808 )
...
Signed-off-by: Wes <wesbillman@users.noreply.github.com >
Co-authored-by: Brain <21994759fc7a6fa6b965551d35cfd7897d262f2495467f2d78694ddcfa6a5c7e@sprout-oss.stage.blox.sqprod.co >
2026-06-01 15:49:41 +00:00