Commit Graph
760 Commits
Author SHA1 Message Date
ciregenz 52056c1911 [eric] events: universal sources (agent-check any condition, custom push via /api/events/ingest) 2026-07-28 13:12:03 -07:00
ciregenz d1ef12b2c7 [eric] workflows: event-trigger panel in detail view (folder/web watch, predicate, activity feed) 2026-07-28 12:01:22 -07:00
ciregenz e0c6f796ff [eric] patterns: offer toast with evidence-citing copy, accept opens the created workflow 2026-07-28 11:56:52 -07:00
ciregenz 8b9eff4104 [eric] browser: lazy-load background tabs (only the active tab loads; agent/activation wakes deferred tabs) 2026-07-19 17:58:44 -07:00
ciregenz 753f2f63ce [eric] dashboard: highlighted text owns Cmd+C; card-name copy only fires with no live selection 2026-07-19 15:52:54 -07:00
ciregenz 46b67adab7 [eric] browser: agent key presses dispatch via CDP, scoped to the webview not the user's cursor 2026-07-19 15:27:57 -07:00
ciregenz 6652309f42 [eric] dashboard: control/input clicks select card without yanking camera focus 2026-07-19 11:18:58 -07:00
ciregenz 68b079cc5e [eric] ws: slim status frames, cross-socket dedupe, REST-seeded resume cursor, closed-only history 2026-07-17 11:11:35 -07:00
ciregenz dab33d0b2a [eric] chat: stale WS frames can't wipe transcripts (survivor merge); first-msg spawn is 1 round trip 2026-07-17 00:16:11 -07:00
ciregenz 43576e2805 [eric] cleanup: cwd-proof spawn stdio test, de-prefix evict_dead_card (p-private), trim Tools.tsx to cap 2026-07-16 22:39:41 -07:00
ciregenz c908cec55f [eric] workflows: agents can run exposed workflows as a tool (InvokeWorkflow waits + returns the transcript; per-workflow opt-in on the Actions page; /invoke endpoint 403s unexposed) 2026-07-16 20:48:52 -07:00
ciregenz 1ba5f173dc [eric] dashboard: app cards glow + tether while an AppAgent drives them, same treatment as browser cards (glow keys app:<output_id>, set on the child's status event, fades on parent terminal) 2026-07-16 20:38:30 -07:00
ciregenz 1b4501f099 [eric] dashboard: pan/zoom writes the camera imperatively, React commits once per gesture (per-frame setState re-rendered every card at 120Hz = the webview-canvas lag); cards read live camera via getCanvasState 2026-07-16 15:57:03 -07:00
ciregenz 8e904f2141 [eric] browser: evict a wedged agent-spawned card before recovery spawns it (dead-card reuse-skip + safe evict, never deletes a user card, + settle wait); forward-port of eric/browser 3123e9a1/c423517a/02fee098 2026-07-15 23:38:05 -07:00
ciregenz 3652ad567d [eric] browser: unwedge stuck-loading webviews (executeJavaScript queues until load stops; recaptcha/tracker stragglers held isLoading for minutes = every command timed out); guarded eval stops stragglers only after dom-ready
(cherry picked from commit 46c300e4ee)
2026-07-15 23:31:11 -07:00
ciregenz 583b4f6c97 [eric] dashboard: connector/tether lines render behind cards (zIndex 10 cut through the chat + browsers; now tuck under like a node graph) 2026-07-15 22:41:18 -07:00
ciregenz b1e16df668 [eric] models: add Sonnet 5 to the tier map + picker sorts newest-first within a capability tier (was buried under older Opus by alphabetical family) 2026-07-15 22:41:18 -07:00
ciregenz 18232d8911 [eric] dashboard: scroll-focus set on any card press + non-card scrollables (menus/dropdowns) scroll natively; fresh chat scrollable on spawn 2026-07-15 20:08:15 -07:00
ciregenz 7ab187cef1 [eric] dashboard: grab-to-drag selects the card so the next spawn docks beside it (was deselect-all, so spawns flew to viewport-center) 2026-07-15 19:55:30 -07:00
ciregenz b1a343ed78 [eric] dashboard: open chat is interactive again (drop drag overlay when expanded) + browsers/apps own their scroll so Figma/Maps zoom works 2026-07-15 19:35:59 -07:00
ciregenz dd4605c7b3 [eric] dashboard: scroll zooms the canvas over any card (Google Maps); click into a card to scroll its content 2026-07-15 19:17:08 -07:00
ciregenz d405c221ed [eric] dashboard: one click focuses a card (arm webview shield on first drag-move, not pointerdown; arming on down made the click-focus camera fit skip = felt like two clicks) 2026-07-15 18:45:43 -07:00
ciregenz b062666bf1 [eric] dashboard: spawn picks the EUCLIDEAN-nearest open gap, not the first ring-scan cell (3rd card flung to a far corner when a big browser blocked the near cells) 2026-07-15 18:37:50 -07:00
ciregenz 42f69e67d7 [eric] dashboard: drag browser/app cards via compositor transform (webview surface shimmered back-and-forth while edge-panning; left/top relayout desynced from the canvas transform) 2026-07-15 18:25:12 -07:00
ciregenz d4db6e7c9d [eric] dashboard: don't wipe layout mid-drag + never route to a phantom (deleted) dashboard id (dragging cards was silently broken by a spurious layout reset) 2026-07-15 18:07:38 -07:00
ciregenz c50947edad Merge branch 'eric/dev' of https://github.com/openswarm-ai/openswarm into eric/dev 2026-07-15 17:36:42 -07:00
ciregenz 82d4acd6dd [eric] dashboard: agent clicks in its own browser no longer steal selection (browser chased the cursor mid-drag, spawn-beside re-anchored); also block Task, the 2.1.122 name of the builtin sub-agent tool 2026-07-15 17:30:22 -07:00
ciregenz 128869f0e6 [eric] agents: native SpawnAgent tool (prompt + run_in_background only) replaces the CLI's built-in Agent; child runs as a real dashboard session 2026-07-15 17:13:37 -07:00
ciregenz 386300545c [eric] browser: did-fail-load clears the spinner + surfaces the reload UI (failed nav used to spin forever with no recovery) 2026-07-15 16:45:46 -07:00
ciregenz 9305c3f7d7 [eric] dashboard: skip the click-focus camera fit when the press became a drag or marquee (start-of-drag camera nudge) 2026-07-15 16:44:47 -07:00
ciregenz 18be782071 [eric] chat: 5s live-session refetch reuses unchanged message objects (fresh clones broke every bubble memo per tick) 2026-07-15 16:44:47 -07:00
ciregenz d1fd0dd5c4 [eric] dashboard: spawn camera is reveal-only (no zoom-in ever, no move when visible, minimal pan otherwise) 2026-07-15 16:44:47 -07:00
ciregenz a88549cbb3 [eric] browser-feed: memoize rows + per-feed selector w/ result equality; hydrate new mid-run children (per-token full-history re-render = the browser-use lag) 2026-07-15 16:18:23 -07:00
ciregenz cfe338a0e5 [eric] chat: optimistic user bubble on the first message of a draft (was 3 round-trips of nothing) 2026-07-15 16:18:23 -07:00
ciregenz 4e9bd406a7 [eric] dashboard: spawn lands in the closest open gap to viewport center; spawn-framing zoom capped 1.15 -> 0.75 2026-07-15 16:14:14 -07:00
ciregenz 3617ed08cb [eric] dashboard: shield webviews during card drag so a release over a browser page can't strand the edge-pan loop 2026-07-15 16:11:08 -07:00
ciregenz 0190e232ae [eric] share: user-confirmed Export anyway when the file secret heuristic trips (download only; own credential fields stay blocked) 2026-07-15 15:44:10 -07:00
ciregenz e52f4a1b8a [eric] agents: rehydrate browser-agent children the trimmed session-list poll leaves message-less (feed no longer blanks) 2026-07-15 12:58:44 -07:00
ciregenz a7a095a379 Merge branch 'pr-129' into HEAD 2026-07-15 12:51:50 -07:00
ciregenz 131d26c8a7 [eric] merge #130: plain scroll zooms canvas + cmd/ctrl-scroll pans (pierre); anchor zoom at cursor not viewport-center 2026-07-15 11:46:06 -07:00
ciregenz 224bc07a52 [eric] dashboard: snap card-framing camera in 150ms (was a lazy 320ms glide) 2026-07-15 01:05:09 -07:00
ciregenz 910f87f270 [eric] onboarding: v3 connect-first flow, live theme pad, personalized reveal 2026-07-15 00:29:11 -07:00
ciregenz 164f5c6c06 [eric] theme: user accent hex derived into live tokens via ThemeContext 2026-07-15 00:29:11 -07:00
ciregenz 40bbc867f1 Merge branch 'pr-131-fresh' into HEAD 2026-07-15 00:24:00 -07:00
SirKentut 5956f377e8 [pierre] fix: scroll focused card horizontally with Left/Right arrow keys 2026-07-14 16:27:16 -07:00
SirKentut b8cd6fe2b3 pierre/cmd-scroll-vertical-pan: cmd/ctrl+scroll pans vertically
cmd/ctrl + scroll now pans the canvas up/down instead of zooming at the
cursor. The catch: a trackpad pinch reports as a wheel with ctrlKey set,
indistinguishable at the event level from a real Ctrl+wheel. Gate on the
physically-held key (cmdRef, tracked via keydown): a real modifier down
pans; a pinch has ctrlKey without any keydown, so it still zooms at the
cursor. Plain wheel continues to zoom at the viewport center.

The webview-forwarded cmd/ctrl+wheel path (canvas-wheel-zoom) stays
cursor-zoom — that channel can't tell a pinch from a held key, and
keeping it zoom preserves pinch-to-zoom while hovering a browser card.
2026-07-14 16:11:02 -07:00
SirKentut c4704ff27a pierre/clamp-mouse-wheel-zoom: tame discrete wheel notches
A mouse-wheel notch arrives as deltaY 100 where a trackpad sends ~1-10;
piped through the zoom curve at default sensitivity that's a ~24% jump
per notch, and macOS wheel acceleration stacks them. Clamp the per-event
zoom delta to +/-24 so each notch is a small predictable step. No-op for
trackpads (their deltas are already under the cap), so the continuous
pinch/scroll curve is unchanged.
2026-07-14 16:03:02 -07:00
SirKentut 4707439d6c pierre/scroll-to-zoom: plain wheel zooms at viewport center
Plain vertical wheel/two-finger scroll over the canvas now zooms
(anchored at the viewport center, reusing the zoomIn/zoomOut anchor)
instead of panning the y-axis. Horizontal-dominant scroll still pans X,
gated on the dominant axis so a sideways swipe's vertical jitter can't
also zoom. cmd/ctrl+wheel and trackpad pinch still zoom at the cursor.

flushWheel now folds a same-frame pan into the zoom branch, since a
vertical zoom and a horizontal pan can now be accumulated in one RAF
tick; dropping the pan would swallow the gesture.
2026-07-14 16:00:28 -07:00
abccodes a422d4d79e [aidan] fix/chat-history: stop retaining unopened histories 2026-07-13 21:28:09 -07:00
SirKentut fb8745f9a3 [pierre] share: refresh the workflow list after importing a workflow .swarm
Import already handled workflow bundles, but nothing told the UI. Unlike a
dashboard there is no route to navigate to, so the hub -- which only fetches on
mount -- kept showing a stale list and the imported workflow looked like it had
vanished until a remount.

Refetch on a workflow-root import. Import drops dashboard_id and /list keeps
unassigned workflows for every dashboard, so it shows up wherever the user is.
2026-07-13 15:04:47 -07:00