Commit Graph
889 Commits
Author SHA1 Message Date
AidanandGitHub d69854520b fix: carry agent chats over when duplicating a dashboard (#73)
duplicate_dashboard cloned the layout but left every browser_card pointing at
the source's browser_id and never copied the sessions, so the new dashboard
showed the browser but no chat. Now we mint fresh browser_ids, duplicate every
session attached to the source dashboard (in-memory + on-disk), remap
browser_id / parent_session_id / spawned_by / cards / expanded_session_ids onto
the new ids, and persist via _save_session. Also restores top-level agent cards
(layout.cards), which were silently dropped on duplicate.
2026-06-11 01:16:00 -07:00
AidanandGitHub b6db089c21 [aidan] fix: scope browser cards to their origin dashboard so they stop leaking across dashboards (#72)
The backend already broadcasts the originating dashboard_id with every browser_card_added, but the frontend was throwing it away. Browser cards live in a single global Redux dict and the canvas rendered all of them unfiltered, so a browser spawned by an agent on dashboard A would appear in whatever dashboard the user was currently viewing.

Tag every card with its dashboard_id (at WS arrival and at fetchLayout hydration) and filter by it in useDashboardSelectors so render, bounds, layout save, and keyboard nav all see only the local dashboard's cards.
2026-06-11 00:29:08 -07:00
AidanandGitHub b3f91408fc [aidan] browser-card: top edge / corners now resize the card, the tab bar was eating the inside 3px of the n/nw/ne handles (zIndex 16 vs 10), so a top grab started a card drag and focused the webview (#71) 2026-06-10 23:27:26 -07:00
abccodes 4caceab927 [aidan] fix: selector doesnt go outside of chat box 2026-06-10 19:11:22 -07:00
AidanandGitHub ded951b8a0 fix: clip selection overlay to the chat scroller for tall messages
SelectionOverlay portals to document.body and drew highlights at the raw getBoundingClientRect() of the selected element, so a tall message bubble let the blue overlay bleed past the chat panel onto the rest of the UI. Walk up every overflow-clipping ancestor, intersect the rect with each, and skip rendering when fully out of view. Applied to hover, persistent, and drag-preview rects, with labels clamped to the clip top/left so they never paint above the chat container.
2026-06-10 17:37:04 -07:00
AidanandGitHub ea2f1c36c5 fix: stop dashboard select-mode from leaking onto other pages
Dashboard stays mounted (visibility-hidden) behind every other route, so its ElementSelectionProvider and portal-rendered SelectionOverlay kept firing on top of the App Builder. Gate both the overlay render and the global mouse listeners in useDomElementSelector on useDashboardActive, leaving selection state untouched so it restores on return.
2026-06-10 17:14:37 -07:00
abccodes ee0cf13b71 [aidan] fix: back/foward buttons interaction ui fix 2026-06-10 16:35:08 -07:00
ciregenz f38f478486 [eric] release: bump version to 1.2.77 v1.2.77 2026-06-10 01:53:53 -07:00
ciregenz 893f016461 [eric] outputs: idle-paused (SIGSTOP) runtimes stop advertising their frozen port, the real fix for the app-switch ERR_FAILED 2026-06-10 01:44:53 -07:00
ciregenz b13cc5c2b9 [eric] outputs: gate preview URL on a live runtime, a crashed vite no longer hands the webview a dead port (ERR_FAILED on reopen) 2026-06-10 01:35:12 -07:00
ciregenz 3c76d1eea7 [eric] apps: skip capturePage on a detaching/crashed/loading webview, stops the main-process quit on fast app-switching 2026-06-10 01:16:29 -07:00
ciregenz e8692159a3 [eric] outputs: PUT clears session_id on explicit null (exclude_unset), Apps stale-link self-heal finally sticks 2026-06-10 01:16:28 -07:00
ciregenz aaa72e9169 [eric] release: bump version to 1.2.76 2026-06-09 22:44:56 -07:00
Aidanandciregenz 5a26b26c34 [aidan] chat: auto-compact inside send, surface as chat activity (#63) 2026-06-09 22:29:31 -07:00
Aidanandciregenz 0a704d4690 [aidan] chat: isolate branch history, fresh session on edit/switch (#62) 2026-06-09 22:29:31 -07:00
ciregenz 67c639a76c [eric] strip the ux-trace debug logging from the chat-reopen investigation 2026-06-09 22:00:16 -07:00
ciregenz 2fd7fc0e91 [eric] frontend: keep an active agent's WS alive across a hop, reopening a still-responding chat skips the reconnect handshake that caused the lag 2026-06-09 21:57:55 -07:00
ciregenz aaf5170cae [eric] frontend: order surviving messages by timestamp in the snapshot merge, a just-sent bubble was rendering below the agent reply 2026-06-09 20:38:26 -07:00
ciregenz d0b9a4ef41 [eric] frontend: warm-store chats connect the live stream immediately and hydrate in background, reopen no longer waits a round trip 2026-06-09 20:06:48 -07:00
ciregenz ae3019640a [eric] frontend: optimistic messages survive the snapshot merge even when both sides read settled, fixes the 2nd-send bubble flicker 2026-06-09 18:31:18 -07:00
ciregenz d3ecd92051 [eric] frontend: restore the fetchSession on app reopen, instant-mount removed the only hydrator and cold opens hung forever 2026-06-09 18:31:17 -07:00
ciregenz 213048a2dc [eric] frontend: trust local live status in the session-snapshot merge, a racing stale snapshot hid the just-sent user bubble until run end 2026-06-09 18:13:13 -07:00
ciregenz cd1454f851 [eric] frontend: app reopen renders the cached chat instantly, stale-session verification moved to the background 2026-06-09 18:03:15 -07:00
ciregenz ad081f1a93 [eric] frontend: parked cards must not arm the Windows webview crash marker, a phantom strike locked Windows into iframes 2026-06-09 17:43:09 -07:00
ciregenz 1815ab18ae Revert "[eric] frontend: cap live webviews at 8, farthest-from-center non-agent cards park first so heavy pages degrade instead of OOM"
This reverts commit fb3e3e702a.
2026-06-09 17:36:00 -07:00
ciregenz 6481fd999d [eric] frontend: orphaned app cards show a friendly missing-files state instead of raw 404 JSON 2026-06-09 17:20:11 -07:00
ciregenz 89ac24da5b [eric] frontend: scope the session-list strip to the fetched dashboard, hopping dashboards ate finished chats 2026-06-09 17:20:10 -07:00
ciregenz fb3e3e702a [eric] frontend: cap live webviews at 8, farthest-from-center non-agent cards park first so heavy pages degrade instead of OOM 2026-06-09 16:59:32 -07:00
ciregenz 662468a755 [eric] frontend: boot browser cards parked (title placeholder, no guest process), wake on zoom-in or agent dispatch 2026-06-09 16:33:50 -07:00
ciregenz ab30b4c515 [eric] frontend: restore the original empty-state shimmer, gated on dashboard-active so it never burns unwatched 2026-06-09 16:21:30 -07:00
ciregenz 9e30040186 [eric] frontend: empty-state glint as per-letter opacity wave, original dim look back at compositor cost 2026-06-09 16:10:36 -07:00
ciregenz cd1db491b2 [eric] frontend: bring back the empty-state shimmer as a transform-only sheen, composited instead of repainting 60fps 2026-06-09 16:00:03 -07:00
ciregenz 1fd32b7bc3 [eric] backend: add Fable 5 subscription (cc/) row, verified live 200 on the Claude sub 2026-06-09 15:58:19 -07:00
ciregenz 35bef3b63a [eric] frontend: keepalive flush + pagehide drain so window close stops eating queued events 2026-06-09 15:50:40 -07:00
ciregenz f728a1e485 [eric] service: spool 429/timeout/5xx instead of dropping, warn on 4xx rejects + spool evictions 2026-06-09 15:50:40 -07:00
ciregenz bb654fca62 [eric] frontend: re-evaluate webview suspension on window resize, a shrunken window never suspended 2026-06-09 15:20:52 -07:00
ciregenz 68af9c1b2b [eric] frontend: activation_failed telemetry logged [object Object], surface err.message 2026-06-09 15:10:55 -07:00
ciregenz ed2aa322ca [eric] backend: PUT settings preserves server-owned fields, stale drafts wiped pro bearers 2026-06-09 15:10:55 -07:00
ciregenz d0b23ea616 [eric] frontend: polish subscription + pro cards (hover lift, hover-reveal disconnect) 2026-06-09 14:55:08 -07:00
ciregenz 8389db0c21 [eric] frontend: keep model descriptions version-free so new releases don't make them stale 2026-06-09 14:55:08 -07:00
ciregenz 7ab61057df [eric] backend: surface Fable 5 in the model picker on the api-key route + price it $10/$50 2026-06-09 14:55:07 -07:00
ciregenz b8a0c0814c [eric] dashboard: suspend offscreen browser webviews to a snapshot, cuts RAM/CPU at scale 2026-06-09 14:06:18 -07:00
ciregenz 1be1ce581d [eric] providers: Fable 5 turns thinking off by omitting the param, not thinking:disabled (which 400s) 2026-06-09 14:06:18 -07:00
ciregenz a774f68b96 [eric] providers: add Claude Fable 5 on the API-key route (sub route held on pinned 9router) 2026-06-09 13:27:45 -07:00
ciregenz c035c3377a [eric] frontend: clear pong timeout before the rAF coalescer, a frameless window buffered pongs and suicided healthy sockets 2026-06-09 12:59:00 -07:00
ciregenz 49bd292746 [eric] backend: answer client:ping on /ws/dashboard, the missing pong let the client heartbeat kill the socket every 35s 2026-06-09 12:59:00 -07:00
ciregenz e2873e0fbd [eric] frontend: drop the infinite empty-state shimmer, idle dashboard burned ~20% CPU repainting it 2026-06-09 12:28:48 -07:00
ciregenz e13f282050 [eric] frontend: reconnect layout refetch merges (keeps live card positions) instead of blind-replacing 2026-06-09 04:52:49 -07:00
ciregenz 09fc33beaf [eric] release: bump version to 1.2.75 v1.2.75 2026-06-09 03:02:16 -07:00
ciregenz 8159d79c4a [eric] frontend: stop the session-list poll from clobbering live chat messages, fixes the user bubble vanishing on click-out/in 2026-06-09 02:51:40 -07:00