Taylor Ho
daeadbf912
fix: patch 3 file-watcher bugs blocking merge
...
1. Task leak: add watch::channel shutdown signal to WatcherRuntime so
the debounce loop exits when stop_file_watcher drops the runtime.
Adds tokio 'macros' feature for select!.
2. ID collision: use crypto.randomUUID() for synthetic diff message IDs
instead of seconds-precision timestamps that collide on rapid writes.
3. Channel switch cleanup: call stopFileWatcher in the useEffect cleanup
so navigating away stops the backend watcher. Also converts the
pointless dynamic import to a static import.
2026-04-15 06:55:49 -10:00
Taylor Ho
22e251991a
Merge branch 'main' into feat/file-diffs
...
# By Wes (12) and others
# Via GitHub
* main: (26 commits)
feat(mobile): websocket streaming with real-time messaging (#323 )
feat(markdown): add image/video preview, lightbox, and multi-image gallery (#316 )
feat(composer): add rich text editor with formatting and mentions (#310 )
feat(mobile): align design language with desktop and polish UI (#321 )
fix: lock file registry (#318 )
feat(mobile): QR/code pairing flow with security hardening (#317 )
feat: Sprout Huddles — voice conversations with AI agents (#299 )
feat(mobile): add channel list with relay integration (#315 )
feat: add change member role in channel sidebar (#313 )
feat(desktop): deterministic nested thread panels (#308 )
fix: show private channels in channel browser when user is a member (#311 )
Replace inline channel creation with dialog (#312 )
chore: improve chat message layout to left-aligned design (#309 )
Add edit dialog for managed agents with relay profile sync (#277 )
fix(ci): build relay with optimized profile to fix flaky e2e tests (#307 )
Update actions/checkout action to v6 (#305 )
Update dependency @tanstack/react-query to v5.98.0 (#304 )
Update dependency @playwright/test to v1.59.1 (#303 )
Update react monorepo to v19.2.5 (#302 )
feat(mobile): scaffold Flutter app with Riverpod & Catppuccin theme (#306 )
...
# Conflicts:
# desktop/src-tauri/Cargo.lock
# desktop/src-tauri/Cargo.toml
# desktop/src-tauri/src/lib.rs
# desktop/src/features/channels/ui/ChannelScreen.tsx
2026-04-14 20:39:15 -10:00
94d4e16461
feat(mobile): websocket streaming with real-time messaging ( #323 )
...
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-14 20:20:35 -07:00
tlongwell-block and GitHub
dd6107d0d0
feat: Sprout Huddles — voice conversations with AI agents ( #299 )
2026-04-14 13:11:09 -04:00
be83699559
feat: add change member role in channel sidebar ( #313 )
...
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-14 08:14:36 -07:00
423ed01ed8
Replace inline channel creation with dialog ( #312 )
...
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-13 15:58:56 -07:00
Will Pfleger and GitHub
ccecf7e362
Add edit dialog for managed agents with relay profile sync ( #277 )
2026-04-13 18:15:43 +00:00
tlongwell-block and GitHub
d07385fe02
feat: Markdown-based persona packs (crate + ACP + desktop) ( #297 )
2026-04-11 13:32:14 -04:00
Taylor Ho
5d9ce58dd3
feat: local file watcher with inline diffs below agent turns
...
Backend (Rust):
- file_watcher.rs: notify crate watches per-channel project dirs
- Debounced 500ms, ignores .git/node_modules/binaries/large files
- similar crate computes unified diffs against snapshots
- Tauri event emission (file-diff) to frontend
- Per-channel project dir config persisted to project-dirs.json
- Commands: get/set_project_dir, start/stop_file_watcher, resnapshot
Frontend (React):
- useLocalFileDiffs hook listens for Tauri file-diff events
- Synthetic TimelineMessage (kind:40008) merges into timeline
- Renders through existing DiffMessage -> DiffViewer pipeline
- Project directory UI in channel management sheet
- Auto-starts watcher when opening channel with configured dir
Local-only for v1 — no relay events emitted.
2026-04-10 22:54:55 -10:00
1211b0edc6
feat(desktop): add Pulse social notes surface ( #296 )
...
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-10 17:09:38 -07:00
e333371988
Add agent lifecycle controls to channel members sidebar ( #291 )
...
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-10 16:08:20 -07:00
tlongwell-block and GitHub
fc4f2f1351
Update nest_agents.md tagging info ( #292 )
2026-04-10 19:27:49 +00:00
tlongwell-block and GitHub
ff86e0cf49
feat: add Sprout nest — persistent agent workspace at ~/.sprout ( #290 )
2026-04-10 15:01:26 -04:00
Jordan Mecom and GitHub
489d69ffde
Fix auth and SSRF vulns ( #261 )
2026-04-10 18:37:10 +00:00
Will Pfleger and GitHub
d0970d64e6
Add per-agent MCP toolset configuration to agent setup ( #279 )
2026-04-10 13:42:04 -04:00
tlongwell-block and GitHub
61efb883a1
feat: Phase 1 video upload support (Blossom-compliant-ish) ( #285 )
2026-04-10 12:23:29 -04:00
Wes and GitHub
4d44f4741f
Restore chooser-based persona catalog flow ( #275 )
2026-04-08 21:04:09 -07:00
68a3d16d9e
Fun bot names from persona name pools ( #273 )
...
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-08 16:41:08 -07:00
Wes and GitHub
7a1eb31492
[codex] Show recent notes in user popovers ( #270 )
2026-04-08 12:24:10 -07:00
7a9218ba54
Update all non-major dependencies ( #248 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Wes <wesb@block.xyz >
2026-04-08 11:55:11 -07:00
Wes and GitHub
7e4bcfb8c2
[codex] Reduce desktop release startup work ( #269 )
2026-04-08 11:13:14 -07:00
c07b14bd9f
feat: ephemeral channels with TTL-based auto-archiving ( #232 )
...
Co-authored-by: Wes <wesbillman@users.noreply.github.com >
2026-04-07 11:37:51 -07:00
Wes and GitHub
35588a0594
Add desktop badge and notification ground work ( #257 )
2026-04-07 10:26:13 -07:00
tlongwell-block and GitHub
d5bd78377e
feat: accept kind:1 text notes and kind:3 follow lists (NIP-01/NIP-02) ( #245 )
2026-04-06 20:59:11 -04:00
335a426982
Polish members sidebar UX and clean up orphaned agents ( #252 )
...
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-06 15:43:51 -07:00
Wes and GitHub
c0421a50ed
[codex] Add workflow UI parity ( #250 )
2026-04-06 11:41:52 -07:00
Wes and GitHub
53c2223ba5
[codex] Improve desktop startup shell loading ( #241 )
2026-04-06 09:19:47 -07:00
26155003bd
Fix Linux proc name truncation and non-Unix stop path ( #228 )
...
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-03 17:16:55 -07:00
b8ee474302
Fix shutdown: kill all agent processes reliably ( #227 )
...
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com >
2026-04-03 14:32:24 -07:00
ddd54a6e84
feat: add Workflows UI surface ( #217 )
...
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-03 11:54:29 -07:00
e1f1557ffb
Update app icon with new pixel-art sprout design ( #209 )
...
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-02 09:45:23 -07:00
6df9c73518
feat: replace generic personas with Solo, Ralph, Scout, and Reviewer ( #203 )
...
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-29 10:40:34 -07:00
tlongwell-block and GitHub
e33c6bc0f2
feat(acp,desktop): bump idle timeout default from 300s to 320s ( #195 )
2026-03-27 22:57:08 -04:00
Wes and GitHub
83a49f862d
fix: enable double-click-to-maximize on custom title bar regions ( #197 )
2026-03-26 17:19:54 -07:00
Wes and GitHub
19d8b520bc
Support old and new Claude ACP runtimes ( #193 )
2026-03-26 12:50:44 -07:00
Luis Padron and GitHub
70a77e308c
fix(desktop): add missing updater plugin config ( #192 )
2026-03-26 12:19:43 -07:00
tlongwell-block and GitHub
39ecb6a442
feat(acp): idle-based timeout with dual-deadline architecture ( #188 )
2026-03-26 14:54:59 -04:00
Wes and GitHub
b4b30cc03d
Set the desktop release relay default ( #186 )
2026-03-25 15:43:20 -07:00
3d61fd60e8
feat(desktop): add message editing support ( #182 )
...
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-25 14:04:57 -07:00
tlongwell-block and GitHub
400937db17
feat(desktop): default agent CWD to user home directory, increase turn timeout ( #180 )
2026-03-25 15:28:44 -04:00
Wes and GitHub
84fbf61d96
feat(desktop): add Cmd++ zoom shortcut ( #174 )
2026-03-25 10:28:23 -07:00
Wes and GitHub
a302aadb34
feat(desktop): migrate legacy data dir and support dev/prod side-by-side ( #168 )
2026-03-24 16:28:48 -07:00
Wes and GitHub
491a5160e5
fix(desktop): avoid updater panic in dev and enforce tauri rustfmt ( #167 )
2026-03-24 14:30:10 -07:00
Wes and GitHub
52bd65a759
Feat/app release setup ( #164 )
2026-03-24 13:33:45 -07:00
Wes and GitHub
bf6de08906
feat: add provider and model fields to persona configuration ( #166 )
2026-03-24 13:02:20 -07:00
tlongwell-block and GitHub
25ed2dcc23
feat: event-first refactor — unified ingest pipeline, SDK, client migrations ( #162 )
2026-03-24 13:38:36 -04:00
Wes and GitHub
0de6487388
feat(desktop): persona & team improvements — channel indicators, async imports, team export/import ( #156 )
2026-03-22 10:30:16 -07:00
dfe32bfb2c
feat: add hide/close DM support (Slack-style DM management) ( #157 )
...
Co-authored-by: Tyler Longwell <tlongwell@squareup.com >
2026-03-22 09:00:45 -07:00
4a2243d358
fix: eliminate unused_assignments warning in backend ( #151 )
...
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-21 09:53:43 -07:00
Bradley Axen and GitHub
266d9c6b64
fix(desktop): add admin prereq check to doctor panel ( #148 )
2026-03-21 09:25:37 -07:00