Will Pfleger
4a60c5ed55
fix(desktop): address review findings D1–D5 for MCP servers UI
...
D1 CRITICAL: default each field in get_global_agent_config bridge handler
so partial seeds don't crash McpServersEditor; add defense-in-depth
coercion at the McpServersEditor value boundary.
D2 IMPORTANT: split buzzAgentSurface into empty/populated fixtures so
test 06 ("empty MCP servers") doesn't collide with the filesystem row;
add test 06b covering populated WYSIWYG read-only display.
D3 IMPORTANT: count effective enabled servers (local + inherited not
overridden) for the cap, gating both Add button and Enabled switch;
extract effectiveEnabledCount helper with 6 unit tests.
D4 IMPORTANT: add validateMcpServerEnvEntry mirroring Rust's
validate_user_env_keys boundary (POSIX key format, reserved keys,
NUL-free values, per-value byte cap); render inline subrow errors;
12 unit tests covering all rejection paths.
D5 MINOR: replace localeCompare with ASCII byte-order comparator in
mergeMcpServersByName to match Rust BTreeMap ordering; add mixed-case
/symbol test.
2026-07-14 17:34:04 -04:00
Will Pfleger
26a4637c08
test(desktop): add MCP servers E2E and bridge seeding support (P4)
...
Adds invoke-layer round-trip tests + UI interaction tests for the
editable MCP servers feature (P3), covering all three dialog layers.
Round-trip tests (invokeTauri, behavior not impl):
- persona create+update mcp_servers with add/change/drop
- update_persona absent-preserves contract (omit → keeps, []→ clears)
- agent create+update mcp_servers round-trip + absent-preserves
UI tests with screenshots:
- McpServersEditor in PersonaDialog (buzz-agent auto-expands Advanced)
- McpServersEditor in global config card with pre-seeded servers
- McpServersEditor in agent-instance edit dialog with pre-seeded servers
Bridge changes:
- MockManagedAgentSeed: add agentCommand (default "goose" preserved) and
mcpServers seeding, wired into buildSeededManagedAgent
- bridge.ts helper: add agentCommand/mcpServers to mock seed type;
add mcp_servers to globalAgentConfig mock shape
2026-07-14 17:34:04 -04:00
Will Pfleger
448baeef77
feat(teams): unify team model, snapshot sharing, and PNG memory parity ( #1846 )
...
Signed-off-by: Will Pfleger <pfleger.will@gmail.com >
Co-authored-by: npub1mn7jgtj4w2pd0g0zeuhxsa6jy6p0rewxz4kujt98my82ahfmp72sxjexk7 <dcfd242e557282d7a1e2cf2e6877522682f1e5c6156dc92ca7d90eaedd3b0f95@sprout-oss.stage.blox.sqprod.co >
2026-07-14 17:10:51 -04:00
Will Pfleger
37bc962cb8
fix(desktop): always start agents and hide unavailable mesh ( #1860 )
...
Signed-off-by: Will Pfleger <pfleger.will@gmail.com >
Co-authored-by: npub1mn7jgtj4w2pd0g0zeuhxsa6jy6p0rewxz4kujt98my82ahfmp72sxjexk7 <dcfd242e557282d7a1e2cf2e6877522682f1e5c6156dc92ca7d90eaedd3b0f95@sprout-oss.stage.blox.sqprod.co >
2026-07-14 17:08:47 -04:00
Will Pfleger
cf97237965
feat(desktop): add Sign Out to Settings to reset and relaunch ( #1842 )
...
Signed-off-by: Will Pfleger <pfleger.will@gmail.com >
Co-authored-by: npub1mn7jgtj4w2pd0g0zeuhxsa6jy6p0rewxz4kujt98my82ahfmp72sxjexk7 <dcfd242e557282d7a1e2cf2e6877522682f1e5c6156dc92ca7d90eaedd3b0f95@sprout-oss.stage.blox.sqprod.co >
2026-07-14 16:52:57 -04:00
Wes
916de4e4db
Stabilize persona and stream end-to-end tests ( #1865 )
...
Signed-off-by: Wes <wesbillman@users.noreply.github.com >
Co-authored-by: Pinky <44b8e82baa6e0e254e0208d68f335c283c94e7b78dd1fa10d5a49d3f13dd0435@sprout-oss.stage.blox.sqprod.co >
2026-07-14 12:14:41 -07:00
Wes
3e76481a14
refactor(clients): standardize product naming on community ( #1858 )
...
Signed-off-by: Wes <wesbillman@users.noreply.github.com >
Co-authored-by: Pinky <44b8e82baa6e0e254e0208d68f335c283c94e7b78dd1fa10d5a49d3f13dd0435@sprout-oss.stage.blox.sqprod.co >
2026-07-14 11:11:02 -07:00
Matt Toohey
ff11f26bcd
fix(desktop): navigate to channel from inbox thread header ( #1847 )
...
Signed-off-by: Matt Toohey <contact@matttoohey.com >
Co-authored-by: Claude Fable 5 <noreply@anthropic.com >
2026-07-14 09:26:57 -07:00
Will Pfleger
b1d323c4e7
feat(desktop): surface needsRestart badge on live UI surfaces ( #1853 )
2026-07-14 12:15:02 -04:00
Wes
7f81d93eb1
fix(desktop): prevent menu-to-dialog UI lockups ( #1839 )
...
Signed-off-by: Wes <wesbillman@users.noreply.github.com >
Co-authored-by: Pinky <44b8e82baa6e0e254e0208d68f335c283c94e7b78dd1fa10d5a49d3f13dd0435@sprout-oss.stage.blox.sqprod.co >
2026-07-14 09:03:39 -07:00
klopez4212
bb9d9b0c04
feat(desktop): add conversation-style DM composer ( #1768 )
...
Signed-off-by: npub13fn4ahfnvaa2qwylvegdgeajqs0mph6v4qsw4jcqnw4mjh3hzh2quuucm5 <8a675edd33677aa0389f6650d467b2041fb0df4ca820eacb009babb95e3715d4@sprout-oss.stage.blox.sqprod.co >
Signed-off-by: Fizz <8a675edd33677aa0389f6650d467b2041fb0df4ca820eacb009babb95e3715d4@sprout-oss.stage.blox.sqprod.co >
Co-authored-by: npub13fn4ahfnvaa2qwylvegdgeajqs0mph6v4qsw4jcqnw4mjh3hzh2quuucm5 <8a675edd33677aa0389f6650d467b2041fb0df4ca820eacb009babb95e3715d4@sprout-oss.stage.blox.sqprod.co >
2026-07-14 16:50:22 +01:00
Mat Balez
458c7f9154
[codex] Add view activity label to agent popover ( #1748 )
...
Signed-off-by: Mat Balez <60949391+matbalez@users.noreply.github.com >
2026-07-13 22:58:56 -04:00
Will Pfleger
b63a2e4231
fix(desktop): sync sidebar update card copy with global installing state ( #1827 )
...
Signed-off-by: Will Pfleger <pfleger.will@gmail.com >
Co-authored-by: npub1mn7jgtj4w2pd0g0zeuhxsa6jy6p0rewxz4kujt98my82ahfmp72sxjexk7 <dcfd242e557282d7a1e2cf2e6877522682f1e5c6156dc92ca7d90eaedd3b0f95@sprout-oss.stage.blox.sqprod.co >
2026-07-13 17:38:32 -04:00
Will Pfleger
51ee1c473d
feat(desktop): show read-only MCP server config ( #1780 )
...
Signed-off-by: Will Pfleger <pfleger.will@gmail.com >
Co-authored-by: npub1mn7jgtj4w2pd0g0zeuhxsa6jy6p0rewxz4kujt98my82ahfmp72sxjexk7 <dcfd242e557282d7a1e2cf2e6877522682f1e5c6156dc92ca7d90eaedd3b0f95@sprout-oss.stage.blox.sqprod.co >
2026-07-13 16:29:21 -04:00
Will Pfleger
deed64a14f
fix(desktop): require user action before applying updates ( #1820 )
...
Signed-off-by: Will Pfleger <pfleger.will@gmail.com >
Co-authored-by: npub1mn7jgtj4w2pd0g0zeuhxsa6jy6p0rewxz4kujt98my82ahfmp72sxjexk7 <dcfd242e557282d7a1e2cf2e6877522682f1e5c6156dc92ca7d90eaedd3b0f95@sprout-oss.stage.blox.sqprod.co >
2026-07-13 16:13:20 -04:00
Will Pfleger
a6cfd65511
fix(snapshot): send Buzz shares as PNG avatar cards ( #1811 )
...
Signed-off-by: Will Pfleger <pfleger.will@gmail.com >
Co-authored-by: npub1mn7jgtj4w2pd0g0zeuhxsa6jy6p0rewxz4kujt98my82ahfmp72sxjexk7 <dcfd242e557282d7a1e2cf2e6877522682f1e5c6156dc92ca7d90eaedd3b0f95@sprout-oss.stage.blox.sqprod.co >
2026-07-13 13:58:24 -04:00
Wes
d41b4c3905
test(desktop): consolidate and stabilize scroll coverage ( #1815 )
...
Signed-off-by: Wes <wesbillman@users.noreply.github.com >
Co-authored-by: Pinky <44b8e82baa6e0e254e0208d68f335c283c94e7b78dd1fa10d5a49d3f13dd0435@sprout-oss.stage.blox.sqprod.co >
2026-07-13 10:11:27 -07:00
Will Pfleger
e09e94ab88
fix(desktop): preserve live events and window order across channel refreshes ( #1802 )
...
Signed-off-by: Will Pfleger <pfleger.will@gmail.com >
Co-authored-by: npub1mn7jgtj4w2pd0g0zeuhxsa6jy6p0rewxz4kujt98my82ahfmp72sxjexk7 <dcfd242e557282d7a1e2cf2e6877522682f1e5c6156dc92ca7d90eaedd3b0f95@sprout-oss.stage.blox.sqprod.co >
2026-07-13 11:20:02 -04:00
klopez4212
109800fe5a
fix(desktop): restore macOS navigation chrome alignment ( #1797 )
...
Signed-off-by: npub13fn4ahfnvaa2qwylvegdgeajqs0mph6v4qsw4jcqnw4mjh3hzh2quuucm5 <8a675edd33677aa0389f6650d467b2041fb0df4ca820eacb009babb95e3715d4@sprout-oss.stage.blox.sqprod.co >
Co-authored-by: npub13fn4ahfnvaa2qwylvegdgeajqs0mph6v4qsw4jcqnw4mjh3hzh2quuucm5 <8a675edd33677aa0389f6650d467b2041fb0df4ca820eacb009babb95e3715d4@sprout-oss.stage.blox.sqprod.co >
2026-07-13 08:15:59 -07:00
Tyler
b0ad2b66dd
Retain a stable message window in channel timelines ( #1698 )
...
Signed-off-by: npub12gtutshhh76rx0jx697f32f9tffd4hhp3hx58fp4x6u4uemkm7sqf8f757 <5217c5c2f7bfb4333e46d17c98a9255a52dadee18dcd43a43536b95e6776dfa0@sprout-oss.stage.blox.sqprod.co >
Signed-off-by: Tyler Longwell <tlongwell@block.xyz >
Signed-off-by: npub1qyvc0c5kl4gqv2fd97fsk46tu378sqgy35vc83rvgfwne90sel7s0ed67d <011987e296fd5006292d2f930b574be47c7801048d1983c46c425d3c95f0cffd@sprout-oss.stage.blox.sqprod.co >
Co-authored-by: npub12gtutshhh76rx0jx697f32f9tffd4hhp3hx58fp4x6u4uemkm7sqf8f757 <5217c5c2f7bfb4333e46d17c98a9255a52dadee18dcd43a43536b95e6776dfa0@sprout-oss.stage.blox.sqprod.co >
Co-authored-by: npub1qyvc0c5kl4gqv2fd97fsk46tu378sqgy35vc83rvgfwne90sel7s0ed67d <011987e296fd5006292d2f930b574be47c7801048d1983c46c425d3c95f0cffd@sprout-oss.stage.blox.sqprod.co >
Co-authored-by: Tyler Longwell <tlongwell@block.xyz >
2026-07-12 21:41:38 -04:00
Will Pfleger
7e3252ea3e
fix(desktop): stable inbox selection and scroll/draft preservation ( #1760 )
...
Signed-off-by: Will Pfleger <pfleger.will@gmail.com >
Co-authored-by: npub1mn7jgtj4w2pd0g0zeuhxsa6jy6p0rewxz4kujt98my82ahfmp72sxjexk7 <dcfd242e557282d7a1e2cf2e6877522682f1e5c6156dc92ca7d90eaedd3b0f95@sprout-oss.stage.blox.sqprod.co >
2026-07-12 19:44:49 -04:00
Will Pfleger
1580046b3c
feat(desktop): add buzz-agent-snapshot v1 export, import, sender-native send, and recipient card/import ( #1753 )
...
Signed-off-by: Will Pfleger <pfleger.will@gmail.com >
Co-authored-by: npub1mn7jgtj4w2pd0g0zeuhxsa6jy6p0rewxz4kujt98my82ahfmp72sxjexk7 <dcfd242e557282d7a1e2cf2e6877522682f1e5c6156dc92ca7d90eaedd3b0f95@sprout-oss.stage.blox.sqprod.co >
2026-07-12 19:30:21 -04:00
Will Pfleger
d2e87e1ca7
feat(desktop): add key backup and agent defaults to onboarding, make avatar optional ( #1767 )
2026-07-12 18:46:02 -04:00
Will Pfleger
f3319dd111
fix(desktop): correct provider and model handling in agent config dialogs ( #1764 )
2026-07-12 18:23:27 -04:00
Will Pfleger
7c346d7f85
fix(desktop): cascade persona deletes and restart agents on global config save ( #1766 )
2026-07-12 18:03:36 -04:00
Will Pfleger
25bb714752
fix(desktop): make doctor installs retryable with per-runtime progress and auth status ( #1765 )
2026-07-12 17:42:35 -04:00
klopez4212
2c41e9e6b8
fix(desktop): restore multi-image mosaic galleries ( #1769 )
...
Signed-off-by: npub13fn4ahfnvaa2qwylvegdgeajqs0mph6v4qsw4jcqnw4mjh3hzh2quuucm5 <8a675edd33677aa0389f6650d467b2041fb0df4ca820eacb009babb95e3715d4@sprout-oss.stage.blox.sqprod.co >
Signed-off-by: Fizz <8a675edd33677aa0389f6650d467b2041fb0df4ca820eacb009babb95e3715d4@sprout-oss.stage.blox.sqprod.co >
Co-authored-by: npub13fn4ahfnvaa2qwylvegdgeajqs0mph6v4qsw4jcqnw4mjh3hzh2quuucm5 <8a675edd33677aa0389f6650d467b2041fb0df4ca820eacb009babb95e3715d4@sprout-oss.stage.blox.sqprod.co >
2026-07-12 09:14:59 -07:00
klopez4212
5dc70bd0b8
Group channel membership events ( #1713 )
...
Co-authored-by: Wes <wesbillman@users.noreply.github.com >
2026-07-12 16:02:15 +00:00
klopez4212
89e2e2e4ad
Fix desktop launch motion and reaction spacing ( #1717 )
...
Co-authored-by: Fizz <8a675edd33677aa0389f6650d467b2041fb0df4ca820eacb009babb95e3715d4@sprout-oss.stage.blox.sqprod.co >
2026-07-12 08:42:31 -07:00
klopez4212
53c177e341
fix(desktop): align sidebar search across themes ( #1712 )
...
Co-authored-by: Wes <wesbillman@users.noreply.github.com >
2026-07-12 15:36:20 +00:00
klopez4212
5e15a588e0
fix(desktop): Buzz theme flicker, white bar & accent-picker motion ( #1681 )
...
Signed-off-by: npub13fn4ahfnvaa2qwylvegdgeajqs0mph6v4qsw4jcqnw4mjh3hzh2quuucm5 <8a675edd33677aa0389f6650d467b2041fb0df4ca820eacb009babb95e3715d4@sprout-oss.stage.blox.sqprod.co >
Co-authored-by: npub13fn4ahfnvaa2qwylvegdgeajqs0mph6v4qsw4jcqnw4mjh3hzh2quuucm5 <8a675edd33677aa0389f6650d467b2041fb0df4ca820eacb009babb95e3715d4@sprout-oss.stage.blox.sqprod.co >
2026-07-12 16:35:35 +01:00
Will Pfleger
56d822dc2c
feat(desktop): surface Team Instructions as distinct observer section ( #1759 )
...
Signed-off-by: Will Pfleger <pfleger.will@gmail.com >
Co-authored-by: npub1mn7jgtj4w2pd0g0zeuhxsa6jy6p0rewxz4kujt98my82ahfmp72sxjexk7 <dcfd242e557282d7a1e2cf2e6877522682f1e5c6156dc92ca7d90eaedd3b0f95@sprout-oss.stage.blox.sqprod.co >
2026-07-11 17:19:30 -04:00
Will Pfleger
84ec63aa24
fix(desktop): separate system prompt from turn context ( #1754 )
...
Signed-off-by: Will Pfleger <pfleger.will@gmail.com >
Co-authored-by: npub1mn7jgtj4w2pd0g0zeuhxsa6jy6p0rewxz4kujt98my82ahfmp72sxjexk7 <dcfd242e557282d7a1e2cf2e6877522682f1e5c6156dc92ca7d90eaedd3b0f95@sprout-oss.stage.blox.sqprod.co >
2026-07-11 13:40:16 -04:00
Will Pfleger
77c08365e4
feat(desktop): global agent config defaults with readiness/spawn parity ( #1448 )
...
Signed-off-by: Will Pfleger <pfleger.will@gmail.com >
Co-authored-by: npub1mn7jgtj4w2pd0g0zeuhxsa6jy6p0rewxz4kujt98my82ahfmp72sxjexk7 <dcfd242e557282d7a1e2cf2e6877522682f1e5c6156dc92ca7d90eaedd3b0f95@sprout-oss.stage.blox.sqprod.co >
2026-07-10 13:38:33 -04:00
Noah
9b2f0c8cb5
perf(desktop): thread panel rebuilt on every render — fix memo + add typing-latency benchmark ( #1652 )
...
Co-authored-by: Claude Fable 5 <noreply@anthropic.com >
2026-07-10 12:29:00 -04:00
Will Pfleger
e2d104f669
fix(drafts): stop clearing drafts on workspace switch and hide sent section ( #1708 )
...
Signed-off-by: Will Pfleger <pfleger.will@gmail.com >
Co-authored-by: npub1mn7jgtj4w2pd0g0zeuhxsa6jy6p0rewxz4kujt98my82ahfmp72sxjexk7 <dcfd242e557282d7a1e2cf2e6877522682f1e5c6156dc92ca7d90eaedd3b0f95@sprout-oss.stage.blox.sqprod.co >
2026-07-10 12:23:45 -04:00
Matt Toohey
5f0d8309d2
fix(desktop): make @mention clicks reliably open the profile panel ( #1705 )
...
Signed-off-by: Matt Toohey <contact@matttoohey.com >
Co-authored-by: Claude Fable 5 <noreply@anthropic.com >
2026-07-10 09:15:33 -07:00
Cameron Hotchkies
20c40d1769
test(desktop): stabilize custom emoji e2e ( #1685 )
...
Signed-off-by: npub1x4hk035p3p9q39a3fcrd2fe30lpkrhr5dwe0cqzzjphxyyh8m0gsq4vqap <356f67c681884a0897b14e06d527317fc361dc746bb2fc0042906e6212e7dbd1@sprout-oss.stage.blox.sqprod.co >
Co-authored-by: npub1x4hk035p3p9q39a3fcrd2fe30lpkrhr5dwe0cqzzjphxyyh8m0gsq4vqap <356f67c681884a0897b14e06d527317fc361dc746bb2fc0042906e6212e7dbd1@sprout-oss.stage.blox.sqprod.co >
2026-07-10 11:18:25 -04:00
Will Pfleger
95bc640a53
fix(observer): use lifecycle item title as verb instead of hardcoded "Status" ( #1709 )
2026-07-10 10:52:59 -04:00
Will Pfleger
e15f068571
fix(desktop): stop losing imported identity on every launch ( #1568 )
...
Signed-off-by: Will Pfleger <pfleger.will@gmail.com >
Co-authored-by: npub1mn7jgtj4w2pd0g0zeuhxsa6jy6p0rewxz4kujt98my82ahfmp72sxjexk7 <dcfd242e557282d7a1e2cf2e6877522682f1e5c6156dc92ca7d90eaedd3b0f95@sprout-oss.stage.blox.sqprod.co >
2026-07-09 17:58:36 -04:00
Will Pfleger
e5d215e3c2
fix(desktop): isolate dev keyring from production and make BUZZ_SHARE_IDENTITY keyring-aware ( #1680 )
...
Signed-off-by: Will Pfleger <pfleger.will@gmail.com >
Co-authored-by: npub1mn7jgtj4w2pd0g0zeuhxsa6jy6p0rewxz4kujt98my82ahfmp72sxjexk7 <dcfd242e557282d7a1e2cf2e6877522682f1e5c6156dc92ca7d90eaedd3b0f95@sprout-oss.stage.blox.sqprod.co >
2026-07-09 17:33:52 -04:00
Tyler
b41cf3ffc6
fix(desktop): paginate complete channel directory ( #1690 )
...
Signed-off-by: npub12gtutshhh76rx0jx697f32f9tffd4hhp3hx58fp4x6u4uemkm7sqf8f757 <5217c5c2f7bfb4333e46d17c98a9255a52dadee18dcd43a43536b95e6776dfa0@sprout-oss.stage.blox.sqprod.co >
Co-authored-by: npub12gtutshhh76rx0jx697f32f9tffd4hhp3hx58fp4x6u4uemkm7sqf8f757 <5217c5c2f7bfb4333e46d17c98a9255a52dadee18dcd43a43536b95e6776dfa0@sprout-oss.stage.blox.sqprod.co >
2026-07-09 17:07:17 -04:00
thomaspblock
58fe9388c8
feat(desktop): projects overview v2 — aggregate rail, PR review flow, commit detail, and straighter layout ( #1677 )
2026-07-09 18:24:19 +02:00
Wes
3a7e400278
B5: one create path — behavioral quad activation, backfill, menu collapse, legacy dialog deletion ( #1667 )
...
Signed-off-by: Wes <wesbillman@users.noreply.github.com >
Co-authored-by: Brain <21994759fc7a6fa6b965551d35cfd7897d262f2495467f2d78694ddcfa6a5c7e@sprout-oss.stage.blox.sqprod.co >
2026-07-09 09:10:22 -07:00
Will Pfleger
fc8a17445a
fix(agents): harden structured error-code classification edge cases ( #1663 )
2026-07-08 18:18:44 -04:00
Noah
2b32469340
perf(desktop): cache parsed markdown across channel-switch remounts ( #1635 )
...
Co-authored-by: Claude Fable 5 <noreply@anthropic.com >
2026-07-08 14:38:52 -07:00
Will Pfleger
9b244ff22b
fix(agents): surface provider errors structurally instead of raw dumps ( #1653 )
2026-07-08 17:32:48 -04:00
Will Pfleger
4f1a487ab4
feat(config-nudge): distinguish install/auth state in cli_login nudge cards ( #1633 )
...
Signed-off-by: Will Pfleger <pfleger.will@gmail.com >
Co-authored-by: npub1mn7jgtj4w2pd0g0zeuhxsa6jy6p0rewxz4kujt98my82ahfmp72sxjexk7 <dcfd242e557282d7a1e2cf2e6877522682f1e5c6156dc92ca7d90eaedd3b0f95@sprout-oss.stage.blox.sqprod.co >
2026-07-08 16:00:03 -04:00
Wes
41b187f936
copy(desktop): the word "persona" leaves the UI (Phase 1B.4) ( #1646 )
...
Signed-off-by: Wes <wesbillman@users.noreply.github.com >
Co-authored-by: Brain <21994759fc7a6fa6b965551d35cfd7897d262f2495467f2d78694ddcfa6a5c7e@sprout-oss.stage.blox.sqprod.co >
2026-07-08 17:33:26 +00:00
klopez4212
c145037aad
feat(desktop): flapping bee on the setup loading screen ( #1631 )
...
Signed-off-by: Fizz <8a675edd33677aa0389f6650d467b2041fb0df4ca820eacb009babb95e3715d4@sprout-oss.stage.blox.sqprod.co >
Signed-off-by: npub13fn4ahfnvaa2qwylvegdgeajqs0mph6v4qsw4jcqnw4mjh3hzh2quuucm5 <8a675edd33677aa0389f6650d467b2041fb0df4ca820eacb009babb95e3715d4@sprout-oss.stage.blox.sqprod.co >
Signed-off-by: klopez4212 <klopez4212@gmail.com >
Co-authored-by: npub13fn4ahfnvaa2qwylvegdgeajqs0mph6v4qsw4jcqnw4mjh3hzh2quuucm5 <8a675edd33677aa0389f6650d467b2041fb0df4ca820eacb009babb95e3715d4@sprout-oss.stage.blox.sqprod.co >
Co-authored-by: Claude Fable 5 <noreply@anthropic.com >
2026-07-08 10:25:03 -07:00