Commit Graph

600 Commits

Author SHA1 Message Date
Taylor Ho
de2ae68e45 fix(terminal): bump interior padding p-2 → p-3 2026-05-22 00:00:46 -07:00
Taylor Ho
d9e4a4f7f4 fix(terminal): add bg-terminal to outer container, not just inner 2026-05-21 23:56:41 -07:00
Taylor Ho
9d136d4e93 fix(terminal): use sidebar chrome color for terminal background token
The --terminal-background CSS var now maps to chromeColor (same as
--sidebar-background) instead of raw syntaxBg. Consumers still use
bg-terminal — they don't need to know the underlying source.
2026-05-21 23:54:10 -07:00
Taylor Ho
4c52f550bb feat(terminal): animate panel open/close with motion/react
Panel fades in and grows in height using AnimatePresence + motion.div.
Pushes the composer up smoothly as it expands. Reverse on close.
2026-05-21 23:52:08 -07:00
Taylor Ho
4a55c892ba revert(terminal): remove status pill UI
The pill indicator below the composer is removed per feedback.
Backend commands (terminal_has_session, terminal_get_last_line) remain
available for future use. Focus management stays.
2026-05-21 23:50:49 -07:00
Taylor Ho
8d5987cdd4 feat(terminal): focus management — terminal on open, composer on close
- Opening terminal: xterm.focus() called after fit in the visibility effect
- Closing terminal: ProseMirror editor focused via querySelector after rAF
- Works for all paths: pill click, ⌘+J toggle, trash icon kill
2026-05-21 23:48:10 -07:00
Taylor Ho
49eb06756e feat(terminal): add status pill — proof-of-life indicator when closed
When the terminal panel is closed but a PTY session exists for the
current channel, a tiny pill appears in the bottom-right of the h-7 bar.

- Green dot = idle (shell alive, no recent output)
- White pulsing dot = active (data in last 2s)
- Red dot = process exited
- Shows last line of output (aggressively truncated, monospace)
- Click pill → opens terminal panel
- Hover → trash icon to kill the session

Backend: added terminal_has_session and terminal_get_last_line commands.
Frontend: TerminalStatusPill component with motion/react animations.
Positioned via ml-auto in the h-7 activity bar, right of bot indicators.
2026-05-21 23:46:01 -07:00
Taylor Ho
fa72e013cb fix(terminal): pt-1 for a tad more gap between composer and terminal 2026-05-21 23:24:09 -07:00
Taylor Ho
fde8351a01 feat(terminal): add semantic --terminal-background/foreground CSS vars
Adds terminal color tokens to the adaptive theme system, derived from
the Shiki syntax theme's raw bg/fg colors. Registered in Tailwind as
bg-terminal / text-terminal-foreground. Terminal panel and xterm instance
now adapt automatically to whatever syntax theme the user picks.

- adaptive-theme.ts: emit --terminal-background, --terminal-foreground
- tailwind.config.js: register terminal.DEFAULT + terminal.foreground
- TerminalInstance already reads these vars with Tokyo Night fallbacks
2026-05-21 23:18:05 -07:00
Taylor Ho
91f7ea9a10 fix(terminal): pb-2 to align with composer bottom gap 2026-05-21 23:09:53 -07:00
Taylor Ho
2af37b1446 fix(terminal): add -mt-1 to h-7 bar matching thread panel layout 2026-05-21 23:06:02 -07:00
Taylor Ho
42665d893a fix(terminal): remove pb-4 to align bottom edge with thread composer 2026-05-21 23:04:40 -07:00
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
Will Pfleger
4e060bfec2 fix(deps): upgrade Vite v8 and @vitejs/plugin-react v6 (#710) 2026-05-21 19:03:59 -04:00
Will Pfleger
5b75ce4755 fix(deps): upgrade pnpm to v11 with versioned patch keys (#709) 2026-05-21 18:53:26 -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
cfd5a82c7b fix(infra): pin PGDATA path for forward-compatible Postgres upgrades (#707) 2026-05-21 17:57:03 -04:00
Will Pfleger
d0d2670fe2 fix(deps): upgrade redis 1.0 and deadpool-redis 0.23 together (#703) 2026-05-21 17:55:44 -04:00
Will Pfleger
091e38ff0a Fix SPROUT_SHARE_IDENTITY worktree dev workflow breaks (#702) 2026-05-21 17:53:20 -04:00
Will Pfleger
4404162f0e fix(mobile): rename IOSOptions/MacOsOptions to AppleOptions (#706) 2026-05-21 17:41:16 -04:00
Will Pfleger
6fe557852c fix(frontend): remove deprecated baseUrl for TypeScript 6 compatibility (#705) 2026-05-21 17:40:54 -04:00
Will Pfleger
d4f55cee3c fix(deps): upgrade getrandom to 0.4 with fill() rename (#704) 2026-05-21 17:40:18 -04:00
tlongwell-block
962dd7dced feat(sprout-agent): auto-fallback to Databricks OAuth (#699)
Signed-off-by: tlongwell-block <109685178+tlongwell-block@users.noreply.github.com>
2026-05-21 13:05:58 -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
fa9e26fa5c feat(sprout-agent): Databricks provider with OAuth 2.0 PKCE auth (#698)
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-21 12:08:24 -04:00
benthecarman
300b51b02a Add Ubuntu desktop release artifacts (#693)
Signed-off-by: benthecarman <benthecarman@live.com>
v0.0.17
2026-05-21 10:09:28 -04:00
renovate[bot]
26a2107523 chore(deps): update rust crate tokio to v1.52.3 (#658)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-05-21 01:27:18 +00:00
renovate[bot]
1220e9938a chore(deps): update all non-major dependencies (#650)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-05-21 01:26:47 +00:00
renovate[bot]
aff627d901 chore(deps): update rust crate sherpa-onnx to v1.13.2 (#657)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-05-21 01:26:24 +00:00
renovate[bot]
f7eae0a6cf chore(deps): update dependency nostr-tools to v2.23.5 (#681)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-05-21 01:24:40 +00:00
renovate[bot]
740d2545ea chore(deps): update tanstack-router monorepo (#659)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-05-20 23:10:05 +00:00
renovate[bot]
e08a971abf chore(deps): update rust crate dashmap to v6.2.1 (#652)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-05-20 23:09:12 +00:00
renovate[bot]
9df214d43a chore(deps): update rust crate tower-http to v0.6.11 (#647)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-05-20 23:08:56 +00:00
renovate[bot]
109c7d9a8a chore(deps): update rust crate reqwest to v0.13.3 (#639)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-05-20 23:08:09 +00:00
renovate[bot]
7d4c129002 chore(deps): update rust crate sherpa-onnx to v1.12.40 (#640)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-05-20 23:07:37 +00:00
renovate[bot]
97eacb86f4 chore(deps): update dependency @tanstack/react-query to v5.100.11 (#635)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-05-20 23:06:59 +00:00
renovate[bot]
0dd9a05948 fix(deps): update rust crate sha2 to 0.11 (#665)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-05-20 22:54:25 +00:00
renovate[bot]
55abbfdec6 fix(deps): update rust crate bzip2 to 0.6 (#661)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-05-20 22:52:18 +00:00
renovate[bot]
f55dc46c4c chore(deps): update rust crate uuid to v1.23.1 (#648)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-05-20 22:50:02 +00:00
renovate[bot]
3935885bb9 chore(deps): update rust crate tauri-plugin-dialog to v2.7.1 (#644)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-05-20 22:49:41 +00:00
renovate[bot]
8082019cb6 chore(deps): update tanstack-router monorepo (#649)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-05-20 22:49:22 +00:00
renovate[bot]
42d9eafabd chore(deps): update rust crate tokio to v1.51.3 (#646)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-05-20 22:49:13 +00:00