Commit Graph
360 Commits
Author SHA1 Message Date
WesandClaude Opus 4.6 c0af36ec7e feat: replace polling with WS subscriptions + wire workflow approvals (WF-08)
Replace REST polling with WebSocket subscriptions across the desktop app
for real-time reactivity. Wire the workflow approval infrastructure so
runs suspend at approval gates instead of failing.

Desktop subscriptions:
- Forum posts/threads: subscribeLive for kinds 45001/45003 (was 15s/10s poll)
- Workflows: subscribeLive for kind 46010 (was 1s/10s poll)
- Pulse timeline: subscribeLive for contact note events (was 30s poll)
- Channels list: reduced backstop to 5min (live updates already wired)
- Agents/personas/teams: removed polling, CRUD mutations invalidate cache
- Home feed: kept at 30s poll (relay scoping prevents global subscriptions)

Shared useReactiveSubscription hook extracts common subscribe/reconnect/
cleanup lifecycle across forum, workflow, and pulse hooks.

WF-08 workflow approvals:
- executor.rs: create_approval() called with token, expiry, approver spec
- lib.rs: finalize_run sets WaitingApproval instead of Failed stub
- Trace entry pushed for suspended steps (UI can render approval card)
- Approver spec validated at creation (rejects unresolvable role specs)
- e2e test: full round-trip trigger → waiting_approval → grant → completed

Docs: added "Subscriptions, Not Polling" principle to AGENTS.md.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-30 09:19:16 -07:00
fcec10547d Route ACP observer traffic over relay (#421)
Signed-off-by: Tyler Longwell <tlongwell@squareup.com>
Co-authored-by: tlongwell-block <109685178+tlongwell-block@users.noreply.github.com>
Co-authored-by: Tyler Longwell <tlongwell@squareup.com>
2026-04-30 09:34:37 -04:00
0e9c02da2d feat: add reaction support to system events on desktop and mobile (#432)
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-29 22:20:08 -07:00
28a4658ac2 feat: view open channels without joining (#430)
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-29 22:06:16 -07:00
WesandGitHub 127829e0f2 [codex] Fix bot activity and mobile latest messages (#431) 2026-04-29 18:25:09 -07:00
WesandGitHub 028f53194e Check for desktop updates periodically (#429) 2026-04-30 00:53:52 +00:00
tlongwell-blockandGitHub 121737f93f NIP-34 git transport: Smart HTTP hosting with NIP-98 auth (#419)
Signed-off-by: Tyler Longwell <tlongwell@squareup.com>
2026-04-29 18:04:59 -04:00
8d5949dcc4 Fix responsive layout breakpoints for small window sizes (#426)
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-29 13:20:01 -07:00
d38c55a120 fix: offset pull-to-refresh indicator below frosted app bar (#427)
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-29 13:17:54 -07:00
1d926355b2 feat: show app version in mobile settings (#425)
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-29 13:15:47 -07:00
c83cec3ce0 Update README logo to match app icon (#424)
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-29 15:45:45 +00:00
WesandGitHub ddb242749f Fix mobile unread badges and read state sync (#422) 2026-04-29 07:44:44 -07:00
tlongwell-blockandGitHub 9ab4799766 schema: add partial index on channel_members.pubkey (#359) 2026-04-29 09:41:57 -04:00
Bradley AxenandGitHub 7c2c556d72 feat: Add local ACP session observer (#412) 2026-04-29 04:21:58 +00:00
2a01ca590d Implement NIP-RS unread state sync (#420)
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-28 20:54:09 -07:00
8a2562dfd5 Emoji reaction detail views (desktop popover + mobile bottom sheet) (#416)
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-28 11:17:08 -07:00
00a4aaba3d fix(desktop): key-based React remount for workspace switching (#415)
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-28 18:13:12 +00:00
tlongwell-blockandGitHub 1ba01965c0 NIP-RS: Cross-Device Read State Sync (#413) 2026-04-28 13:14:28 -04:00
tlongwell-blockandGitHub 0df883c490 Sovereign Sprout (#403) 2026-04-28 11:09:39 -04:00
tlongwell-blockandGitHub d1c84a621c feat(nip-oa): Owner Attestation — cryptographic proof of agent authorization (#406) 2026-04-28 09:29:15 -04:00
a9024c2c78 Add multi-workspace support to desktop app (#409)
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-28 04:47:11 +00:00
f1cef90376 feat(mobile): add #channel autocomplete to compose bar (#411)
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-27 21:42:46 -07:00
ed5dad788f fix: close race window that dropped active channel messages (#410)
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-27 16:49:08 -07:00
5a93403858 feat(pulse): rich text editor with @mentions, media uploads, and formatting (#407)
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-27 13:57:46 -07:00
57186963e3 feat(mobile): multi-workspace support (#408)
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-27 13:47:06 -07:00
8abeb3d3ca feat: always notify on DM messages like Slack/Discord (#405)
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-27 13:10:11 -07:00
tlongwell-blockandGitHub 16214cfa29 NIP-OA: Owner Attestation for agent key provenance (#398) 2026-04-27 11:19:00 -04:00
4fc720cc0d feat(mobile): frosted glass navbar + channel detail polish (#404)
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-26 19:09:14 -07:00
a05565e687 feat: improve desktop app update UX (#401)
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-26 16:51:28 -07:00
3c0295331d feat(mobile): full-screen search with messages, channels, and people (#402)
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-26 11:38:15 -07:00
480d78cb91 feat: CMD+F find-in-channel search (#400)
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-24 19:15:07 +00:00
WesandGitHub fa9f3f136d fix: remove container border/bg from image previews in chat (#399) 2026-04-24 18:16:24 +00:00
ee76396d00 Fix profile settings first launch parse failure (#383)
Signed-off-by: luthen-seas <229396760+luthen-seas@users.noreply.github.com>
Co-authored-by: luthen-seas <229396760+luthen-seas@users.noreply.github.com>
2026-04-24 10:35:19 -07:00
353729a56d fix(mobile): 6 bug fixes — QR, resume, bots, typing, errors, keyboard (#397)
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-24 10:16:34 -07:00
30adbad810 feat(mobile): day dividers, video upload, emoji picker & UX polish (#396)
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-24 09:32:36 -07:00
Luis PadronandGitHub 4cc8c1df71 feat: add emoji auto-complete via :name: (#395) 2026-04-24 16:14:57 +00:00
da0506f4ea feat(desktop): improve auto-updater UX and add global update indicator (#394)
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-23 14:13:31 -07:00
c1a33e3ff1 feat(desktop): restore Tauri auto-updater support (#393)
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-23 11:55:35 -07:00
1863411b1e fix(desktop): only proxy relay-origin Blossom URLs in media rewriter (#392)
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-23 11:11:07 -07:00
8599a4d2a0 feat(mobile): port desktop color schemes + video viewer overlay (#390)
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-23 10:00:00 -07:00
686db1294e feat(desktop): streaming video proxy + player UX improvements (#389)
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-23 09:42:44 -07:00
bc6de693f8 fix(desktop): sidebar button z-index, remember runtime, show agent ACP info (#388)
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-22 19:09:37 -07:00
f5b2e4f8b1 feat(desktop): keyboard shortcuts registry + settings panel (#387)
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-22 15:45:56 -07:00
36c97a6e2e feat(desktop): first-run onboarding flow + Lilac accent (#386)
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-22 14:06:35 -07:00
e2c94a8538 feat(mobile): image upload + media viewer parity with desktop (#384)
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-22 11:54:29 -07:00
3df7e7107f Fix zombie agent detection and surface stopped agent cleanup (#380)
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-21 14:56:00 -07:00
4079e483a4 fix(desktop): persist chat drafts across section navigation (#381)
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-21 14:29:15 -07:00
d26fda9e4d refactor(desktop): standardize UI with shadcn components (#379)
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-21 13:03:48 -07:00
725dc351d7 Desktop UX polish: chat input, agent bulk actions, starting badge (#378)
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-21 10:42:11 -07:00
818b4885e2 fix(desktop): plug memory leaks from log reads, stale caches, and unbounded maps (#377)
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-21 07:44:58 -07:00