klopez4212
7d7babbc2f
Chat sidebar and stream polish
...
- Sidebar chat titles shimmer while the agent works, replacing the
spinner (the archive affordance keeps its hover slot).
- Chat projects use the Notebook icon family instead of folders
(sidebar groups, project picker, new/none rows).
- Right-click on any chat offers Rename (dialog writing owner
metadata — hidden on shared chats), Pin/Unpin (persisted per
workspace; pinned chats sort to the top of their section), and
Archive.
- Solo chats (you plus one agent) hide the agent's avatar and name so
replies read as a plain stream; identities return automatically the
moment another agent or person participates.
The switching e2e now covers the context menu, pinning order, and
rename round-trip.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-07-07 07:46:12 +01:00
klopez4212
1fe8695c69
Track live turns per turn id; distinct agent-authored PR cards
...
Three chat fixes:
- "Working" no longer renders once per turn block: the active-turn store
now exposes the live turn ids per channel, so only the actually-live
turn shows the marker and completed turns collapse even while a new
turn runs (previously a channel-wide boolean re-expanded every old
turn and gave each its own Working row).
- Agent-authored PR links render a distinct, prominent card (banner
layout with repo, status pill, title, and diff stats) instead of the
compact chip a pasted link gets. Threaded through a Markdown
agentAuthored flag set on agent message rows.
- New chats resolve their default agent immediately: quick-start
refreshes the managed-agents cache after ensuring Fizz, so the first
chat's agent replies render as agent rows instead of member bubbles.
The chats e2e now covers the agent card and pins mock message ordering
with explicit timestamps (same-second events sorted unstably).
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-07-07 07:46:12 +01:00
klopez4212
d24d56f809
Restore the last-viewed chat when returning to the Chats tab
...
The Chats tab always landed on the new-chat screen. Remember the
last-viewed chat per workspace (localStorage) and redirect plain
/chats navigations back to it when it still exists. Explicit new-chat
navigations carry a projectId in the route search and are never
redirected.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-07-07 07:45:34 +01:00
klopez4212
8f38eddcad
Polish chats mode: live feedback, auto-titles, and turn readability
...
A batch of chat-mode UX improvements:
- Per-element shimmer on loading markers (label and elapsed time each
get an aligned overlay instead of one misaligned combined pass).
- Slide-up entrance animation for newly arrived rows (messages and
activity markers), recency-gated so opening a chat never cascades.
- Consecutive completed shell commands fold into "Ran N commands"; the
in-flight command stays visible as its own live row until it lands.
- Chats auto-title once the conversation takes shape: agent-generated
chat_title frames are preferred, with a lead-in-stripping heuristic
as fallback. Titles swap in with the search-placeholder character
animation, never override a manual rename, and the sidebar list now
follows the metadata title.
- The "Working" row gets a dropdown showing the turn's recent raw
observer events (reusing RawEventRail).
- The agent activation card holds a 20s grace window after activation
so it doesn't flash back while the agent boots.
- Message scroller: bottom fade as an overlay (masks repaint per frame
in WKWebView), removed content-visibility sizing that broke
stick-to-bottom, simplified the scroll anchor.
- Fix duplicate sibling key that leaked a stacked header per chat
switch, and circular sizing that collapsed the animated title.
Adds e2e coverage for the first-message flow (send, entrance
animation, retitle) and a header-stacking regression test.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-07-07 07:45:33 +01:00
Taylor Ho
1f5ba5bb27
fix(desktop): sync derived active-turn liveness in channel activity path ( #1492 )
...
Signed-off-by: Taylor Ho <taylorkmho@gmail.com >
Co-authored-by: npub1223z34hd7vtwc6qj4s7flsxkj644nlre2nthu7lrrmkumhu3xddsrx9r6w <52a228d6edf316ec6812ac3c9fc0d696ab59fc7954d77e7be31eedcddf91335b@sprout-oss.stage.blox.sqprod.co >
2026-07-07 03:59:23 +00:00
Taylor Ho
1aa87bb26b
feat(composer): compose spoiler, annotation, and tooltip controls ( #1491 )
...
Signed-off-by: Taylor Ho <taylorkmho@gmail.com >
Co-authored-by: npub1223z34hd7vtwc6qj4s7flsxkj644nlre2nthu7lrrmkumhu3xddsrx9r6w <52a228d6edf316ec6812ac3c9fc0d696ab59fc7954d77e7be31eedcddf91335b@sprout-oss.stage.blox.sqprod.co >
2026-07-06 16:36:01 -07:00
Taylor Ho
36ac5243ff
feat(channel list): add persistent channel sort toggle ( #1505 )
...
Signed-off-by: Taylor Ho <taylorkmho@gmail.com >
Co-authored-by: npub1223z34hd7vtwc6qj4s7flsxkj644nlre2nthu7lrrmkumhu3xddsrx9r6w <52a228d6edf316ec6812ac3c9fc0d696ab59fc7954d77e7be31eedcddf91335b@sprout-oss.stage.blox.sqprod.co >
2026-07-06 16:31:22 -07:00
Will Pfleger
d8355d3188
feat(desktop,buzz-acp): add harness-agnostic config bridge and setup-listener mode ( #1411 )
...
Signed-off-by: Will Pfleger <pfleger.will@gmail.com >
Co-authored-by: npub1mn7jgtj4w2pd0g0zeuhxsa6jy6p0rewxz4kujt98my82ahfmp72sxjexk7 <dcfd242e557282d7a1e2cf2e6877522682f1e5c6156dc92ca7d90eaedd3b0f95@sprout-oss.stage.blox.sqprod.co >
2026-07-06 18:23:38 -04:00
Will Pfleger
7110788077
feat(archive): add local-save archive with observer-feed default-on option ( #1442 )
...
Signed-off-by: Will Pfleger <pfleger.will@gmail.com >
Co-authored-by: npub1mn7jgtj4w2pd0g0zeuhxsa6jy6p0rewxz4kujt98my82ahfmp72sxjexk7 <dcfd242e557282d7a1e2cf2e6877522682f1e5c6156dc92ca7d90eaedd3b0f95@sprout-oss.stage.blox.sqprod.co >
2026-07-06 17:41:56 -04:00
Will Pfleger
4c598dcef5
feat(desktop): add Slack-like Drafts inbox with persistence and image fix ( #1539 )
...
Signed-off-by: Will Pfleger <pfleger.will@gmail.com >
Co-authored-by: npub1mn7jgtj4w2pd0g0zeuhxsa6jy6p0rewxz4kujt98my82ahfmp72sxjexk7 <dcfd242e557282d7a1e2cf2e6877522682f1e5c6156dc92ca7d90eaedd3b0f95@sprout-oss.stage.blox.sqprod.co >
2026-07-06 17:40:57 -04:00
Will Pfleger
3b43743e1f
feat(desktop): add typeahead search to persona model dropdown ( #1542 )
...
Co-authored-by: npub1mn7jgtj4w2pd0g0zeuhxsa6jy6p0rewxz4kujt98my82ahfmp72sxjexk7 <dcfd242e557282d7a1e2cf2e6877522682f1e5c6156dc92ca7d90eaedd3b0f95@sprout-oss.stage.blox.sqprod.co >
2026-07-06 15:01:09 -04:00
Will Pfleger
ccfdf45bc5
chore(desktop): use dot access for host header assignment ( #1548 )
2026-07-06 13:58:15 -04:00
Will Pfleger
c2ee4d1627
fix(onboarding): guard against webkit2gtk WAL race with explicit profile-event signal ( #1508 )
...
Signed-off-by: Will Pfleger <pfleger.will@gmail.com >
Co-authored-by: npub1mn7jgtj4w2pd0g0zeuhxsa6jy6p0rewxz4kujt98my82ahfmp72sxjexk7 <dcfd242e557282d7a1e2cf2e6877522682f1e5c6156dc92ca7d90eaedd3b0f95@sprout-oss.stage.blox.sqprod.co >
2026-07-06 13:57:05 -04:00
Tyler
6abf614fd4
fix(desktop): keep thread-summary badges mounted through scrollback prepends ( #1533 )
...
Signed-off-by: Tyler Longwell <tlongwell@block.xyz >
Co-authored-by: npub1qyvc0c5kl4gqv2fd97fsk46tu378sqgy35vc83rvgfwne90sel7s0ed67d <011987e296fd5006292d2f930b574be47c7801048d1983c46c425d3c95f0cffd@sprout-oss.stage.blox.sqprod.co >
Co-authored-by: Tyler Longwell <tlongwell@block.xyz >
2026-07-06 12:59:37 -04:00
Will Pfleger
4d38f1cba1
fix(desktop): guard Linux .deb installs against auto-updater crash ( #1535 )
...
Signed-off-by: Will Pfleger <pfleger.will@gmail.com >
Co-authored-by: npub1mn7jgtj4w2pd0g0zeuhxsa6jy6p0rewxz4kujt98my82ahfmp72sxjexk7 <dcfd242e557282d7a1e2cf2e6877522682f1e5c6156dc92ca7d90eaedd3b0f95@sprout-oss.stage.blox.sqprod.co >
2026-07-06 12:04:27 -04:00
klopez4212
9e773f103a
feat(desktop): redesign appearance settings with mode-first theme picker ( #1528 )
2026-07-06 16:22:27 +01:00
Mat Balez
668d30b0cf
fix(desktop): stop Leave-channel dialog from freezing the app ( #1482 )
...
Signed-off-by: Mathieu Balez <mbalez@squareup.com >
2026-07-06 14:29:31 +00:00
klopez4212
5b88e59565
feat(desktop): replace placeholder icon with actual app icon on welcome screen ( #1527 )
...
Signed-off-by: klopez4212 <klopez4212@gmail.com >
2026-07-06 06:55:58 -07:00
Taylor Ho
ee4c9ef139
fix(zoom) desktop chrome clearance under text zoom ( #1490 )
...
Signed-off-by: Taylor Ho <taylorkmho@gmail.com >
Co-authored-by: npub1223z34hd7vtwc6qj4s7flsxkj644nlre2nthu7lrrmkumhu3xddsrx9r6w <52a228d6edf316ec6812ac3c9fc0d696ab59fc7954d77e7be31eedcddf91335b@sprout-oss.stage.blox.sqprod.co >
2026-07-05 09:37:16 -07:00
Taylor Ho
caf644eda7
fix(activity panel): handle back navigation ( #1487 )
...
Signed-off-by: Taylor Ho <taylorkmho@gmail.com >
Co-authored-by: npub1223z34hd7vtwc6qj4s7flsxkj644nlre2nthu7lrrmkumhu3xddsrx9r6w <52a228d6edf316ec6812ac3c9fc0d696ab59fc7954d77e7be31eedcddf91335b@sprout-oss.stage.blox.sqprod.co >
2026-07-05 09:24:14 -07:00
Tyler
33886e3dec
perf: GIN index for e-tag containment + delta profile fetch (scroll-back ~2.1s/page) ( #1514 )
...
Signed-off-by: Tyler Longwell <tlongwell@block.xyz >
Co-authored-by: npub1qyvc0c5kl4gqv2fd97fsk46tu378sqgy35vc83rvgfwne90sel7s0ed67d <011987e296fd5006292d2f930b574be47c7801048d1983c46c425d3c95f0cffd@sprout-oss.stage.blox.sqprod.co >
Co-authored-by: Tyler Longwell <tlongwell@block.xyz >
2026-07-04 22:20:51 -04:00
Tyler
62bb9fe8c8
GUI read-model overhaul: server-assembled channel windows (Correct™ pagination + relay-signed bounds) ( #1500 )
...
Signed-off-by: Tyler Longwell <tlongwell@block.xyz >
Signed-off-by: npub12gtutshhh76rx0jx697f32f9tffd4hhp3hx58fp4x6u4uemkm7sqf8f757 <5217c5c2f7bfb4333e46d17c98a9255a52dadee18dcd43a43536b95e6776dfa0@sprout-oss.stage.blox.sqprod.co >
Co-authored-by: npub1cc3ha7z055mu0rwwu7806t2wt8mj3pvu0uv5mfp2c50dahaqhczshdalg6 <c6237ef84fa537c78dcee78efd2d4e59f728859c7f194da42ac51ededfa0be05@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 >
Co-authored-by: npub12gtutshhh76rx0jx697f32f9tffd4hhp3hx58fp4x6u4uemkm7sqf8f757 <5217c5c2f7bfb4333e46d17c98a9255a52dadee18dcd43a43536b95e6776dfa0@sprout-oss.stage.blox.sqprod.co >
2026-07-04 11:51:58 -04:00
klopez4212
f35aeb7986
feat(reconnect): replace top banner with animated sidebar overlay ( #1510 )
2026-07-04 08:37:34 -07:00
Taylor Ho
654b6c374b
feat(profile): embed live activity feed in profile aux panel ( #1380 )
...
Signed-off-by: Taylor Ho <taylorkmho@gmail.com >
Co-authored-by: npub1223z34hd7vtwc6qj4s7flsxkj644nlre2nthu7lrrmkumhu3xddsrx9r6w <52a228d6edf316ec6812ac3c9fc0d696ab59fc7954d77e7be31eedcddf91335b@sprout-oss.stage.blox.sqprod.co >
2026-07-03 15:40:29 +00:00
thomaspblock
5d4edf1535
fix(desktop): lock horizontal webview pan (Magic Mouse side-scroll) ( #1480 )
...
Signed-off-by: Thomas Petersen <thomasp@squareup.com >
2026-07-02 22:31:40 -04:00
klopez4212
228122fddc
Add agent catalog modal ( #1302 )
...
Signed-off-by: Taylor Ho <taylorkmho@gmail.com >
Co-authored-by: npub1223z34hd7vtwc6qj4s7flsxkj644nlre2nthu7lrrmkumhu3xddsrx9r6w <52a228d6edf316ec6812ac3c9fc0d696ab59fc7954d77e7be31eedcddf91335b@sprout-oss.stage.blox.sqprod.co >
Co-authored-by: Taylor Ho <taylorkmho@gmail.com >
2026-07-02 16:26:31 -07:00
Wes
e70dd1a1e7
fix(desktop): actually close relay sockets — plugin:websocket|disconnect does not exist ( #1481 )
...
Signed-off-by: Wes <wesbillman@users.noreply.github.com >
Co-authored-by: Brain <21994759fc7a6fa6b965551d35cfd7897d262f2495467f2d78694ddcfa6a5c7e@sprout-oss.stage.blox.sqprod.co >
2026-07-02 22:55:53 +00:00
Will Pfleger
d369ca9df1
fix(desktop): bind channel and thread context at compose time to prevent wrong-channel send ( #1472 )
...
Signed-off-by: Will Pfleger <pfleger.will@gmail.com >
Co-authored-by: npub1mn7jgtj4w2pd0g0zeuhxsa6jy6p0rewxz4kujt98my82ahfmp72sxjexk7 <dcfd242e557282d7a1e2cf2e6877522682f1e5c6156dc92ca7d90eaedd3b0f95@sprout-oss.stage.blox.sqprod.co >
2026-07-02 20:15:44 +00:00
Will Pfleger
02ff06cac2
fix(relay-reconnect): resilient reconnect with fast-path, escalation, and polling ( #1456 )
...
Signed-off-by: Will Pfleger <pfleger.will@gmail.com >
Co-authored-by: npub1mn7jgtj4w2pd0g0zeuhxsa6jy6p0rewxz4kujt98my82ahfmp72sxjexk7 <dcfd242e557282d7a1e2cf2e6877522682f1e5c6156dc92ca7d90eaedd3b0f95@sprout-oss.stage.blox.sqprod.co >
2026-07-02 19:30:24 +00:00
Taylor Ho
c48006fc3e
fix(profile): consolidate agent profile runtime metadata ( #1451 )
...
Signed-off-by: Taylor Ho <taylorkmho@gmail.com >
Co-authored-by: npub1223z34hd7vtwc6qj4s7flsxkj644nlre2nthu7lrrmkumhu3xddsrx9r6w <52a228d6edf316ec6812ac3c9fc0d696ab59fc7954d77e7be31eedcddf91335b@sprout-oss.stage.blox.sqprod.co >
Co-authored-by: npub14vtk7pvazqrq9639qu7e560wnqtl0d53ca4gjuvq6jzf3k2el23qqlwa7f <ab176f059d100602ea25073d9a69ee9817f7b691c76a897180d48498d959faa2@sprout-oss.stage.blox.sqprod.co >
2026-07-02 10:13:15 -07:00
Wes
deb3e6adca
perf(desktop): instant channel switching — non-blocking first paint, persisted snapshots ( #1452 )
...
Signed-off-by: Wes <wesbillman@users.noreply.github.com >
Co-authored-by: Brain <21994759fc7a6fa6b965551d35cfd7897d262f2495467f2d78694ddcfa6a5c7e@sprout-oss.stage.blox.sqprod.co >
2026-07-02 08:45:38 -07:00
Wes
b779a3ee2f
fix(desktop): quiet gate for workspace switches instead of boot splash ( #1449 )
...
Signed-off-by: Wes <wesbillman@users.noreply.github.com >
Co-authored-by: Brain <21994759fc7a6fa6b965551d35cfd7897d262f2495467f2d78694ddcfa6a5c7e@sprout-oss.stage.blox.sqprod.co >
2026-07-02 07:46:20 -07:00
Tyler
7da936fff8
fix(read-path): reach complete threads, dense-second timelines, and all people in the GUI ( #1418 )
...
Signed-off-by: Tyler Longwell <tlongwell@block.xyz >
Co-authored-by: npub12gtutshhh76rx0jx697f32f9tffd4hhp3hx58fp4x6u4uemkm7sqf8f757 <5217c5c2f7bfb4333e46d17c98a9255a52dadee18dcd43a43536b95e6776dfa0@sprout-oss.stage.blox.sqprod.co >
Co-authored-by: Tyler Longwell <tlongwell@block.xyz >
Co-authored-by: npub1qyvc0c5kl4gqv2fd97fsk46tu378sqgy35vc83rvgfwne90sel7s0ed67d <011987e296fd5006292d2f930b574be47c7801048d1983c46c425d3c95f0cffd@sprout-oss.stage.blox.sqprod.co >
2026-07-02 10:36:11 -04:00
Wes
15ad7ae87e
fix(desktop): stop search shortcut from hijacking the sidebar ( #1447 )
...
Signed-off-by: Wes <wesbillman@users.noreply.github.com >
Co-authored-by: Brain <21994759fc7a6fa6b965551d35cfd7897d262f2495467f2d78694ddcfa6a5c7e@sprout-oss.stage.blox.sqprod.co >
2026-07-01 15:53:25 -07:00
Will Pfleger
fec7684366
feat(desktop): restore observer-feed regressions from #1381 and classify 4 new session/update types ( #1412 )
...
Signed-off-by: Will Pfleger <pfleger.will@gmail.com >
Co-authored-by: npub1mn7jgtj4w2pd0g0zeuhxsa6jy6p0rewxz4kujt98my82ahfmp72sxjexk7 <dcfd242e557282d7a1e2cf2e6877522682f1e5c6156dc92ca7d90eaedd3b0f95@sprout-oss.stage.blox.sqprod.co >
2026-07-01 16:33:26 -04:00
Will Pfleger
bdeab23b59
fix(desktop): disable spellcheck/autocorrect/autocapitalize on emoji picker search ( #1438 )
...
Signed-off-by: Will Pfleger <pfleger.will@gmail.com >
Co-authored-by: npub1mn7jgtj4w2pd0g0zeuhxsa6jy6p0rewxz4kujt98my82ahfmp72sxjexk7 <dcfd242e557282d7a1e2cf2e6877522682f1e5c6156dc92ca7d90eaedd3b0f95@sprout-oss.stage.blox.sqprod.co >
2026-07-01 16:23:55 -04:00
Will Pfleger
323a86ade8
fix(desktop): sort reaction pills by earliest created_at ascending ( #1434 )
...
Signed-off-by: Will Pfleger <pfleger.will@gmail.com >
Co-authored-by: npub1mn7jgtj4w2pd0g0zeuhxsa6jy6p0rewxz4kujt98my82ahfmp72sxjexk7 <dcfd242e557282d7a1e2cf2e6877522682f1e5c6156dc92ca7d90eaedd3b0f95@sprout-oss.stage.blox.sqprod.co >
2026-07-01 14:28:58 -04:00
klopez4212
3d08c3b02b
Group consecutive desktop messages ( #1429 )
2026-07-01 18:13:22 +00:00
Wes
ce1f13e8f7
feat(desktop): add workspace rail unread observer ( #1428 )
...
Signed-off-by: Wes <wesbillman@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 >
2026-07-01 10:55:30 -07:00
Wes
8fb33bdbca
Prioritize channel members in mention autocomplete ( #1431 )
...
Signed-off-by: Wes <wesbillman@users.noreply.github.com >
Co-authored-by: Pinky <44b8e82baa6e0e254e0208d68f335c283c94e7b78dd1fa10d5a49d3f13dd0435@sprout-oss.stage.blox.sqprod.co >
2026-07-01 10:54:32 -07:00
klopez4212
6a08a3f4c8
Tighten message density ( #1426 )
2026-07-01 16:50:50 +01:00
klopez4212
c0e10d67e0
Tighten sidebar section actions ( #1424 )
2026-07-01 15:22:09 +00:00
klopez4212
177fe5a3bf
Limit agent profile quick actions ( #1425 )
2026-07-01 07:54:30 -07:00
klopez4212
3e4e9dda94
Fade sidebar pinned chrome edges ( #1423 )
2026-07-01 07:51:05 -07:00
klopez4212
2fc8b9cf5f
Apply smooth corners to inline media ( #1422 )
2026-07-01 07:50:26 -07:00
klopez4212
4ae5a0d5e3
Align thread summary rows ( #1421 )
2026-07-01 07:48:58 -07:00
klopez4212
8c38847913
Keep channel day dividers sticky ( #1420 )
2026-07-01 07:46:12 -07:00
Wes
4fdc68f156
fix(desktop): stabilize channel-timeline scrollback with per-row height reserves ( #1413 )
...
Signed-off-by: Wes <wesbillman@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 >
2026-06-30 16:53:18 -07:00
Tyler
f86f97bbde
feat(desktop): let thread pane expand on ultrawide monitors ( #1407 )
...
Signed-off-by: Tyler Longwell <tlongwell@block.xyz >
Co-authored-by: npub1qyvc0c5kl4gqv2fd97fsk46tu378sqgy35vc83rvgfwne90sel7s0ed67d <011987e296fd5006292d2f930b574be47c7801048d1983c46c425d3c95f0cffd@sprout-oss.stage.blox.sqprod.co >
Co-authored-by: Tyler Longwell <tlongwell@block.xyz >
2026-06-30 18:55:08 -04:00
Will Pfleger
0042c8e106
feat(relay): allow agent owners to edit/manage agent-owned content ( #1403 )
...
Signed-off-by: Will Pfleger <pfleger.will@gmail.com >
Co-authored-by: npub1mn7jgtj4w2pd0g0zeuhxsa6jy6p0rewxz4kujt98my82ahfmp72sxjexk7 <dcfd242e557282d7a1e2cf2e6877522682f1e5c6156dc92ca7d90eaedd3b0f95@sprout-oss.stage.blox.sqprod.co >
2026-06-30 18:31:47 -04:00