Commit Graph
92 Commits
Author SHA1 Message Date
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-blockandGitHub 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 PflegerandGitHub ccecf7e362 Add edit dialog for managed agents with relay profile sync (#277) 2026-04-13 18:15:43 +00:00
tlongwell-blockandGitHub 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-blockandGitHub fc4f2f1351 Update nest_agents.md tagging info (#292) 2026-04-10 19:27:49 +00:00
tlongwell-blockandGitHub ff86e0cf49 feat: add Sprout nest — persistent agent workspace at ~/.sprout (#290) 2026-04-10 15:01:26 -04:00
Jordan MecomandGitHub 489d69ffde Fix auth and SSRF vulns (#261) 2026-04-10 18:37:10 +00:00
Will PflegerandGitHub d0970d64e6 Add per-agent MCP toolset configuration to agent setup (#279) 2026-04-10 13:42:04 -04:00
tlongwell-blockandGitHub 61efb883a1 feat: Phase 1 video upload support (Blossom-compliant-ish) (#285) 2026-04-10 12:23:29 -04:00
WesandGitHub 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
WesandGitHub 7a1eb31492 [codex] Show recent notes in user popovers (#270) 2026-04-08 12:24:10 -07:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>Wes
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
WesandGitHub 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
WesandGitHub 35588a0594 Add desktop badge and notification ground work (#257) 2026-04-07 10:26:13 -07:00
tlongwell-blockandGitHub 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
WesandGitHub c0421a50ed [codex] Add workflow UI parity (#250) 2026-04-06 11:41:52 -07:00
WesandGitHub 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-blockandGitHub e33c6bc0f2 feat(acp,desktop): bump idle timeout default from 300s to 320s (#195) 2026-03-27 22:57:08 -04:00
WesandGitHub 83a49f862d fix: enable double-click-to-maximize on custom title bar regions (#197) 2026-03-26 17:19:54 -07:00
WesandGitHub 19d8b520bc Support old and new Claude ACP runtimes (#193) 2026-03-26 12:50:44 -07:00
Luis PadronandGitHub 70a77e308c fix(desktop): add missing updater plugin config (#192) 2026-03-26 12:19:43 -07:00
tlongwell-blockandGitHub 39ecb6a442 feat(acp): idle-based timeout with dual-deadline architecture (#188) 2026-03-26 14:54:59 -04:00
WesandGitHub 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-blockandGitHub 400937db17 feat(desktop): default agent CWD to user home directory, increase turn timeout (#180) 2026-03-25 15:28:44 -04:00
WesandGitHub 84fbf61d96 feat(desktop): add Cmd++ zoom shortcut (#174) 2026-03-25 10:28:23 -07:00
WesandGitHub a302aadb34 feat(desktop): migrate legacy data dir and support dev/prod side-by-side (#168) 2026-03-24 16:28:48 -07:00
WesandGitHub 491a5160e5 fix(desktop): avoid updater panic in dev and enforce tauri rustfmt (#167) 2026-03-24 14:30:10 -07:00
WesandGitHub 52bd65a759 Feat/app release setup (#164) 2026-03-24 13:33:45 -07:00
WesandGitHub bf6de08906 feat: add provider and model fields to persona configuration (#166) 2026-03-24 13:02:20 -07:00
tlongwell-blockandGitHub 25ed2dcc23 feat: event-first refactor — unified ingest pipeline, SDK, client migrations (#162) 2026-03-24 13:38:36 -04:00
WesandGitHub 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 AxenandGitHub 266d9c6b64 fix(desktop): add admin prereq check to doctor panel (#148) 2026-03-21 09:25:37 -07:00