Aidan and GitHub
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
Aidan and GitHub
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
Aidan and GitHub
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
Aidan and GitHub
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
Aidan and GitHub
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
Aidan and ciregenz
5a26b26c34
[aidan] chat: auto-compact inside send, surface as chat activity ( #63 )
2026-06-09 22:29:31 -07:00
Aidan and ciregenz
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