Taylor Ho
e3f1208b31
fix(terminal): always render h-7 bar for consistent bottom spacing
...
Reverts the conditional rendering — the h-7 bar must always be present
to match the thread panel's baseline spacing and keep bottom edges aligned.
2026-05-21 23:00:16 -07:00
Taylor Ho
bced80e14e
fix(terminal): move typing indicator below terminal panel
...
Places the typing/bot activity bar after the terminal so the terminal's
bottom edge aligns with the thread composer when the thread panel is open.
2026-05-21 22:56:33 -07:00
Taylor Ho
97ae3c82d4
fix(terminal): hide phantom h-7 typing bar when empty
...
The typing/bot activity bar below the composer was always rendered with
a fixed h-7 height, creating a visible gap even when no indicators were
active. Now conditionally rendered only when there's actual content.
2026-05-21 22:51:12 -07:00
Taylor Ho
452751459a
fix(terminal): pt-0, pb matches px for tighter composer gap
2026-05-21 22:45:48 -07:00
Taylor Ho
3f763c2cd2
fix(terminal): match composer padding, remove header + drag handle, add p-2 interior
...
- Outer padding now px-4 pb-2 pt-1 matching the composer's inset
- Removed 'Terminal' header bar and drag handle for cleaner look
- Added p-2 padding inside the terminal content area
- Resize still works via invisible top-edge hit zone (6px)
- Removed unused onClose prop (toggle via ⌘+J only)
2026-05-21 22:42:34 -07:00
Taylor Ho
f8f42d83ee
fix(terminal): move into composer flow with padding on all sides
...
Terminal now renders inside the composer's pointer-events-auto wrapper,
sitting below the typing indicator. Wrapped with p-4 pt-2 for consistent
inset padding matching the composer's visual alignment. No more z-index
fight — it's in the natural flow.
2026-05-21 22:29:13 -07:00
Taylor Ho
2f6bea52d4
fix(terminal): workspace cleanup, light mode theme, buffer cap verified
...
Addresses Marge's review feedback:
1. Workspace-switch cleanup: Added terminal_close_all_sessions command
that kills all PTY sessions. Called from resetWorkspaceState() so
orphaned shells don't accumulate across workspace switches.
2. Light mode theme: Terminal surface stays dark in both modes (high
contrast "pop" against light app chrome). Added Tokyo Night Moon
variant for light mode with warmer foreground. Panel header/buttons
use consistent light-on-dark colors regardless of app theme.
MutationObserver syncs xterm theme when app theme class changes.
3. Buffer cap: Already implemented (256KB with drain-from-front) —
verified the existing MAX_BUFFER_BYTES guard in spawn_reader_thread.
2026-05-21 20:25:32 -07:00
Taylor Ho
40ebf3598c
feat(terminal): add integrated terminal panel with ⌘+J toggle
...
- PTY backend: portable-pty session registry scoped per channel (max 20)
- Frontend: xterm.js terminal with FitAddon, WebLinksAddon, resize observer
- Panel: draggable resize (150-600px), high-contrast Tokyo Night theme
- Shortcut: ⌘+J / Ctrl+J toggle via TerminalContext + custom DOM event
- Integration: TerminalPanel renders below composer in ChannelPane
- Tauri commands: terminal_open_session, terminal_write, terminal_resize,
terminal_close_session registered in invoke_handler
- Shell: resolves user's $SHELL, scrubs Hermit env, sets TERM=xterm-256color
- Deps: @xterm/xterm, @xterm/addon-fit, @xterm/addon-web-links
2026-05-21 20:08:56 -07:00
thomaspblock
441b6c4b1a
Fix inbox thread navigation highlights ( #720 )
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-05-21 22:17:52 -04:00
Taylor Ho
ee4ee5f850
fix: composer UX improvements (cursor, upload guard, scroll, paste, perf) ( #694 )
2026-05-21 22:53:10 +00:00
Will Pfleger
091e38ff0a
Fix SPROUT_SHARE_IDENTITY worktree dev workflow breaks ( #702 )
2026-05-21 17:53:20 -04:00
tlongwell-block
4373a13fb3
fix(relay): avoid websocket writes in stall watchdog ( #697 )
...
Signed-off-by: Tyler Longwell <109685178+tlongwell-block@users.noreply.github.com >
Co-authored-by: npub1mprnacetjua2xx3p5eddmhxyk6wv929ymm5py8kd2xfxurxahspqqlgyta <d8473ee32b973aa31a21a65adddcc4b69cc2a8a4dee8121ecd51926e0cddbc02@sprout-oss.stage.blox.sqprod.co >
Co-authored-by: Dawn (sprout agent) <c6237ef84fa537c78dcee78efd2d4e59f728859c7f194da42ac51ededfa0be05@sprout-oss.stage.blox.sqprod.co >
2026-05-21 12:56:12 -04:00
tlongwell-block
a96cb487f4
fix(desktop): project home read-state from the shared NIP-RS marker ( #631 )
...
Signed-off-by: tlongwell-block <109685178+tlongwell-block@users.noreply.github.com >
Co-authored-by: Dawn (sprout agent) <c6237ef84fa537c78dcee78efd2d4e59f728859c7f194da42ac51ededfa0be05@sprout-oss.stage.blox.sqprod.co >
2026-05-20 17:13:59 -04:00
Taylor Ho
af08b0f0e8
fix: prevent agent proliferation when adding bots to channels ( #621 )
2026-05-20 12:08:34 -07:00
Will Pfleger
c8f99bbc31
fix: surface swallowed errors across crates and emit turn failures to activity log ( #628 )
2026-05-20 14:55:20 -04:00
thomaspblock
b5e5a39bf0
Refine Pulse composer and post actions ( #629 )
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-05-20 13:04:47 -04:00
Mat Balez
2da3402f10
[codex] Add copy button for rendered code blocks ( #619 )
...
Signed-off-by: Mat Balez <60949391+matbalez@users.noreply.github.com >
2026-05-20 14:25:03 +00:00
tlongwell-block
5370a75ca4
feat(relay): surface connection loss in the workspace header ( #623 )
...
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-20 09:36:52 -04:00
tlongwell-block
2392e6523a
fix(composer): use native ProseMirror inserts for autocomplete (mentions / channels / emoji) ( #618 )
...
Signed-off-by: Tyler Longwell <109685178+tlongwell-block@users.noreply.github.com >
Co-authored-by: Quinn (sprout agent) <96f056ad5f2305c8ddf637dc65d048aa4c12d7daeb8867690e34fca46b0ef64c@sprout-oss.stage.blox.sqprod.co >
2026-05-19 20:28:40 -04:00
thomaspblock
b881d5319c
Refine thread reply alignment ( #620 )
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-05-19 19:11:49 -04:00
tlongwell-block
2fed74bdcd
Show channels in command search ( #617 )
...
Signed-off-by: npub1mprnacetjua2xx3p5eddmhxyk6wv929ymm5py8kd2xfxurxahspqqlgyta <d8473ee32b973aa31a21a65adddcc4b69cc2a8a4dee8121ecd51926e0cddbc02@sprout-oss.stage.blox.sqprod.co >
Co-authored-by: npub1mprnacetjua2xx3p5eddmhxyk6wv929ymm5py8kd2xfxurxahspqqlgyta <d8473ee32b973aa31a21a65adddcc4b69cc2a8a4dee8121ecd51926e0cddbc02@sprout-oss.stage.blox.sqprod.co >
2026-05-19 14:33:53 -04:00
thomaspblock
3973080dce
Refine conversation visual affordances ( #615 )
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-05-19 08:54:41 -04:00
Will Pfleger
50b350dc58
fix(desktop): worktree support — workspace boundary + shared identity ( #610 )
2026-05-18 19:11:34 -04:00
tlongwell-block
6e1418e571
feat(huddle): fix concurrent-speaker mixing + jitter buffer + protocol v2 (up to 10 peers) ( #609 )
...
Signed-off-by: tlongwell-block <109685178+tlongwell-block@users.noreply.github.com >
2026-05-18 16:34:52 -04:00
tlongwell-block
c0eb5affcf
refactor(huddle): switch local TTS to Pocket TTS (Kyutai/sherpa-onnx) ( #607 )
...
Signed-off-by: Tyler Longwell <tlongwell@squareup.com >
Signed-off-by: npub1cc3ha7z055mu0rwwu7806t2wt8mj3pvu0uv5mfp2c50dahaqhczshdalg6 <c6237ef84fa537c78dcee78efd2d4e59f728859c7f194da42ac51ededfa0be05@sprout-oss.stage.blox.sqprod.co >
Co-authored-by: npub1cc3ha7z055mu0rwwu7806t2wt8mj3pvu0uv5mfp2c50dahaqhczshdalg6 <c6237ef84fa537c78dcee78efd2d4e59f728859c7f194da42ac51ededfa0be05@sprout-oss.stage.blox.sqprod.co >
2026-05-18 14:28:27 -04:00
thomaspblock
137a4e268f
Update inbox conversation experience ( #608 )
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-05-18 13:48:47 -04:00
thomaspblock
17eea2d267
Fix full-width message layouts ( #591 )
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-05-17 09:04:09 -04:00
tlongwell-block
3daf8d6ae1
feat(huddle): swap STT default to Parakeet TDT-CTC 110M (EN, int8) ( #562 )
...
Signed-off-by: Tyler Longwell <109685178+tlongwell-block@users.noreply.github.com >
Signed-off-by: Tyler Longwell <tlongwell@squareup.com >
2026-05-15 22:22:05 -04:00
tlongwell-block
7763072ef9
fix(desktop): derive unread state from NIP-RS + relay catch-up only ( #599 )
...
Signed-off-by: Tyler Longwell <109685178+tlongwell-block@users.noreply.github.com >
2026-05-15 14:46:33 -04:00
tlongwell-block
32347d117c
feat(desktop): per-persona and per-agent env var overrides ( #594 )
2026-05-15 10:43:00 -04:00
tlongwell-block
3a3501c77b
fix(desktop): autofocus message composer on channel/thread open ( #572 )
...
Signed-off-by: Tyler Longwell <109685178+tlongwell-block@users.noreply.github.com >
2026-05-14 20:35:44 -04:00
Wes
4425f1f713
feat(desktop): add message more-actions dropdown menu ( #590 )
...
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com >
2026-05-14 15:31:55 -07:00
thomaspblock
8a2d24e4fd
Redesign Home as an inbox ( #582 )
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-05-14 13:35:17 -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 >
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
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
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 >
2026-05-13 15:03:35 -04: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
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
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
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
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
Wes
11778f4250
feat(desktop): image download, drag-drop prevention, and drop zone indicator ( #542 )
...
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com >
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