764 Commits

Author SHA1 Message Date
Will Pfleger
7b3a192102 style: apply cargo fmt to e2e_env_flow.rs 2026-06-08 11:31:51 -04:00
Will Pfleger
8a236dffea style: apply cargo fmt to persona_card.rs 2026-06-08 11:31:51 -04:00
Will Pfleger
1872e406f5 fix: round-trip provider field through persona dialog state
- Add provider field to ParsedPersonaPreview Rust struct and thread it
  through parse_png_persona, parse_json_persona, parse_md_persona, and
  parse_zip_pack (md and pack set it to None; JSON reads llmProvider key)
- Add llmProvider key support in extract_sprout_fields and encode_persona_json
  so exported persona cards carry the LLM inference provider
- Update export_persona_to_json to include provider in the serialized card
- Update all encode_persona_json call sites (tests + commands) for new param

TypeScript side was already correct in this branch:
- RawParsedPersonaPreview and ParsedPersonaPreview already had provider field
- parsePersonaFiles mapping already passed provider through
- personaDialogState.ts already threaded provider in edit/duplicate/import
- personaDialogState.test.mjs already had provider round-trip tests

All 573 JS tests pass. Rust build clean (no new warnings).
2026-06-08 11:31:51 -04:00
Will Pfleger
7cf61d55f9 feat: normalized config schema with PersonaRecord.provider and SPROUT_AGENT_MODEL
sprout-agent personas all failed because the desktop never injected
SPROUT_AGENT_PROVIDER or model env vars at spawn time, and the goose
config fallback only understood the old flat format. Extract goose
config compat into an isolated submodule, add support for the newer
active_provider + nested providers format, and wire a normalized
config schema so Sprout injects the right env vars for any runtime.

Key changes:
- PersonaRecord.provider captures the LLM provider independently
- SPROUT_AGENT_MODEL works as a universal model fallback
- provider_env_var and model_env_var always injected at spawn time
- Pack import now stores resolved env vars (was always empty)
- runtime_env_vars() emits runtime-appropriate vars (SPROUT_AGENT_*
  vs GOOSE_*)
2026-06-08 11:31:51 -04:00
Will Pfleger
953f0902dc feat: consume runtime metadata for env injection and overhaul runtime dropdown UX
Replace hardcoded GOOSE_MODE injection with a metadata-driven
default_env loop on KnownAcpRuntime, and inject GOOSE_MODEL via
model_env_var for runtimes that don't support ACP model switching.
This ensures goose agents respect PersonaRecord.model even without
a persona pack.

Redesign the AddChannelBotDialog runtime dropdown: defaults to "Use
persona defaults" (unset) instead of auto-selecting the first runtime.
Explicit selection overrides all personas. Per-persona runtime badges
on chips show the effective runtime with warning styling when overridden
or when a stored preference is unavailable.
2026-06-08 11:31:51 -04:00
Will Pfleger
d8ee71e040 fix: suppress dead_code warnings on Phase 3 capability fields and remove stale conflict marker 2026-06-08 11:31:50 -04:00
Will Pfleger
05a9dc9110 fix: address code review findings from provider→runtime rename
localStorage key migration: useLastRuntime now reads the legacy
"sprout:last-runtime-provider" key as a fallback and clears it on
first write, preventing silent loss of saved runtime preference on
upgrade. Remaining stale local variable names (selectedProviderId,
acpProvidersQuery, etc.) renamed for consistency across 12 TS files.
Migration and template serde alias backward-compat tests added.
2026-06-08 11:31:50 -04:00
klopez4212
b384354e2b Restyle settings sections (#894) 2026-06-08 14:59:26 +00:00
klopez4212
fdcbb696fe Add emoji reaction particles (#890) 2026-06-08 07:37:47 -07:00
klopez4212
32039b9a25 Move settings into the app shell (#893) 2026-06-08 07:23:11 -07:00
klopez4212
45f3dfe5ba Tune chat text sizing (#891) 2026-06-08 07:13:22 -07:00
klopez4212
29f6ccf9e9 Style channel header navigation (#889) 2026-06-08 07:03:06 -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
renovate[bot]
97bdb79ded chore(deps): update radix-ui-primitives monorepo (#898)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-06-07 22:32:11 -04:00
renovate[bot]
4a93100e19 chore(deps): update actions/checkout digest to df4cb1c (#897)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-06-07 22:31:08 -04:00
Will Pfleger
0a6067ca1b refactor: rename ACP "provider" to "runtime" across the codebase (#783) 2026-06-07 14:40:59 -04:00
klopez4212
056b87d3da Unify avatar radius (#892) 2026-06-07 09:41:15 -04:00
Wes
9bbb85b439 chore(release): release version 0.3.12 (#886) v0.3.12 2026-06-05 21:17:01 +00:00
Wes
1b7b6978fc Show hover cards for inline message emoji (#885)
Signed-off-by: Wes <wesbillman@users.noreply.github.com>
Co-authored-by: Pinky <44b8e82baa6e0e254e0208d68f335c283c94e7b78dd1fa10d5a49d3f13dd0435@sprout-oss.stage.blox.sqprod.co>
2026-06-05 14:01:06 -07:00
Wes
5268fac2d8 Fix monotonic read-state merges (#884)
Signed-off-by: Wes <wesbillman@users.noreply.github.com>
Co-authored-by: Pinky <44b8e82baa6e0e254e0208d68f335c283c94e7b78dd1fa10d5a49d3f13dd0435@sprout-oss.stage.blox.sqprod.co>
2026-06-05 14:00:50 -07: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
ef98ae942a fix(cli): publish ephemeral events over WebSocket via sprout-ws-client (#876) 2026-06-05 16:26:30 -04: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
klopez4212
5c2476a71e Polish thread summaries and reactions (#881) 2026-06-05 20:50:19 +01:00
Will Pfleger
7129cd6f23 feat(cli): add emoji export and import subcommands (#882) 2026-06-05 15:33:31 -04:00
klopez4212
b84f8e6a01 Polish message row hover states (#880) 2026-06-05 20:32:35 +01: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
581c7e95a9 docs: add ecosystem section to CONTRIBUTING.md, fix stale release info (#873) 2026-06-05 12:47:31 -04:00
Will Pfleger
031152221b fix(relay): wire custom filter fields through HTTP bridge (#864) 2026-06-05 12:36:22 -04: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
5bdac0566f Fix custom emoji status in profile popover (#874)
Signed-off-by: Wes <wesbillman@users.noreply.github.com>
Co-authored-by: Pinky <44b8e82baa6e0e254e0208d68f335c283c94e7b78dd1fa10d5a49d3f13dd0435@sprout-oss.stage.blox.sqprod.co>
2026-06-05 09:26:13 -07:00
tlongwell-block
b295f51c90 fix(agent): gate handoff on provider token usage, not byte estimate (#821)
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-05 11:52:50 -04:00
tlongwell-block
cdb7bc27e1 docs: add VISION_MESH.md — the compute-commons vision (#867)
Signed-off-by: npub1qyvc0c5kl4gqv2fd97fsk46tu378sqgy35vc83rvgfwne90sel7s0ed67d <011987e296fd5006292d2f930b574be47c7801048d1983c46c425d3c95f0cffd@sprout-oss.stage.blox.sqprod.co>
Co-authored-by: npub1qyvc0c5kl4gqv2fd97fsk46tu378sqgy35vc83rvgfwne90sel7s0ed67d <011987e296fd5006292d2f930b574be47c7801048d1983c46c425d3c95f0cffd@sprout-oss.stage.blox.sqprod.co>
2026-06-05 10:41:13 -04:00
thomaspblock
d4bb7f66e0 fix(desktop): simplify profile popover header (#853)
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-05 07:07:12 -07:00
thomaspblock
ccff5464a4 fix(desktop): remove thread comment hover outline (#861)
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-05 07:04:59 -07:00
tlongwell-block
ad7ab482eb feat(desktop): always show channel section search/add buttons (#856)
Signed-off-by: Tyler Longwell <tlongwell@squareup.com>
2026-06-05 09:32:49 -04:00
Wes
baf1f7705f chore(release): release version 0.3.11 (#865) v0.3.11 2026-06-04 17:34:15 -07:00
Will Pfleger
269b35e8de fix(mobile+desktop): cross-device read state sync + diagnostic logging (#843) 2026-06-04 18:55:40 -04:00
Wes
3ddfe5fcc2 feat(mobile): star channels (Slack-style favorites) (#863)
Signed-off-by: Wes <wesbillman@users.noreply.github.com>
Co-authored-by: Brain <21994759fc7a6fa6b965551d35cfd7897d262f2495467f2d78694ddcfa6a5c7e@sprout-oss.stage.blox.sqprod.co>
2026-06-04 15:48:59 -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
Wes
c10b4f8f5c feat(desktop): star channels (Slack-style favorites) (#860)
Signed-off-by: Wes <wesbillman@users.noreply.github.com>
Co-authored-by: Brain <21994759fc7a6fa6b965551d35cfd7897d262f2495467f2d78694ddcfa6a5c7e@sprout-oss.stage.blox.sqprod.co>
2026-06-04 15:32:28 -07:00
Will Pfleger
f748f71268 fix(desktop): handle symlinked persona pack directories (#859) 2026-06-04 17:52:36 -04:00
Will Pfleger
1fe7bf2872 feat: channel muting for desktop and mobile (#838) 2026-06-04 15:53:53 -04:00
tlongwell-block
4ead7de463 feat(acp): default SPROUT_ACP_MEMORY to on (#854)
Signed-off-by: Tyler Longwell <tlongwell@squareup.com>
2026-06-04 15:17:28 -04:00
thomaspblock
759e5cd923 fix(desktop): eliminate image-hover layout jump in messages (#813)
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-04 09:55:02 -07:00
Wes
249bec86cf chore(release): release version 0.3.10 (#849) v0.3.10 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
Wes
b3aefae152 fix(desktop): scroll activity panel to bottom on open (#848)
Signed-off-by: Wes <wesbillman@users.noreply.github.com>
Co-authored-by: Brain <21994759fc7a6fa6b965551d35cfd7897d262f2495467f2d78694ddcfa6a5c7e@sprout-oss.stage.blox.sqprod.co>
2026-06-04 08:49:15 -07:00
thomaspblock
a13691b620 Polish desktop profile menu interactions (#836)
Signed-off-by: Wes <wesbillman@users.noreply.github.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Wes <wesbillman@users.noreply.github.com>
Co-authored-by: Brain <21994759fc7a6fa6b965551d35cfd7897d262f2495467f2d78694ddcfa6a5c7e@sprout-oss.stage.blox.sqprod.co>
2026-06-04 08:48:57 -07:00