ciregenz
f68001da18
[eric] browser: clean CDP detach before card teardown + drop child-iframe Network (DevTools SIGSEGV)
2026-06-22 04:07:06 -07:00
ciregenz
b468215052
[eric] electron: exempt same-origin navigations in main-window will-navigate so a reload (Restart tour) on the prod 4173 origin isn't re-opened as a recursive browser card
2026-06-19 17:29:13 -07:00
ciregenz
a5d89888d8
[eric] drm: redact Authorization bearer token in [drm-req] license logging
...
(cherry picked from commit 7b32eeea602e436e102fe7578bf50eccace6e0e0)
2026-06-19 00:25:54 -07:00
ciregenz
3f9fde17a8
[eric] electron: hard-reset IPC (kill backend, wipe data dir, relaunch) for factory reset
2026-06-17 23:32:17 -07:00
ciregenz
a18111ac8a
[eric] electron: red traffic-light quits the app instead of hiding; neuter Cmd+W
2026-06-17 20:12:56 -07:00
ciregenz
d9481eb4b6
[eric] macos: native mouse-clamp addon to dodge the off-window mouse-release RootView::UpdateCursor crash
2026-06-13 21:29:03 -07:00
ciregenz
b9d90250b7
[eric] updater: evergreen silent install-on-idle (staged update + idle + no agents)
2026-06-13 16:06:26 -07:00
ciregenz
07e35068dc
[eric] updater: keep-alive no longer swallows quitAndInstall's window-close (the real Restart-button-does-nothing fix)
2026-06-12 23:33:37 -07:00
ciregenz
ce1676436d
[eric] updater: apply a pending Mac update on window-close + restart so the red button actually updates, not just lingers
2026-06-12 22:13:00 -07:00
ciregenz
2c02286823
[eric] electron: clear the frontend HTTP cache every launch, kills the stale-bundle-after-upgrade class for good
2026-06-11 22:47:58 -07:00
ciregenz
8bf044fc60
[eric] electron: clear renderer cache on build change, so an upgrade actually loads the new frontend (unversioned bundle.js was served stale)
2026-06-11 17:08:46 -07:00
ciregenz
cd681861bd
[eric] electron: lift GPU-process crash limit so a GPU hiccup recovers, not kills the app
2026-06-11 15:44:38 -07:00
ciregenz
e07fa73a2d
[eric] mac: close-to-dock hide + window.close stub, the window cannot vanish uninvited
2026-06-11 02:05:01 -07:00
ciregenz
f8afdf6b37
[eric] mac: window close no longer quits the app, dock reopen + quit-cause forensics
2026-06-11 01:40:59 -07:00
ciregenz
7238f86346
[eric] electron: silence the per-CDP-node ipc.handle log spam (hundreds per page read); OPENSWARM_DIAG_IPC=1 restores the firehose
2026-06-08 12:59:13 -07:00
ciregenz
1d4542bbf1
[eric] electron: race CDP sendCommand with 10s timeout, recycle debugger attachment on hang
2026-06-05 11:47:28 -07:00
ciregenz
79492416aa
[eric] electron: disable renderer backgrounding, hidden-window agent webviews stopped executing JS
2026-06-05 00:53:23 -07:00
ciregenz
f79172835e
[eric] browser: block autoplay in agent webviews and reload a hung renderer to fight the wedge
2026-06-04 17:05:54 -07:00
ciregenz
2640930380
[eric] browser: add BrowserGetConsole so a stuck agent can read the page's console errors
2026-06-04 13:20:39 -07:00
ciregenz
ad75228abe
[eric] browser: guard capture-page on churning webviews to dodge the V8 crash
2026-06-04 11:26:50 -07:00
ciregenz
e0359e0752
[eric] browser: passively capture redacted shadow-API routes while browsing (tier 2)
2026-06-02 04:08:10 -07:00
ciregenz
74fbef0bc4
[eric] browser: auto-attach OOPIF child frames and route CDP by sessionId
2026-06-02 03:55:52 -07:00
eric
f6c1f73931
[eric] win: toggle devtools on f12 + ctrl/cmd+shift+i since the windows menu bar is hidden
2026-06-01 11:55:17 -07:00
eric
eb70337b00
[eric] mac: after a crash relaunch user sees a tiny 'we had a hiccup, sessions are still here' chip for 8s instead of nothing
2026-05-31 22:22:13 -07:00
eric
f325bc28c3
[eric] mac: chromium occlusion-feature flag dodge plus a watchdog that quietly relaunches on crash (5 guards so it never false-fires)
2026-05-31 21:52:08 -07:00
eric
3b42f608ad
[eric] fix: pin packaged frontend server to port 4173 so localstorage survives restart and onboarding doesnt retrigger every update
2026-05-31 18:09:36 -07:00
ciregenz
496bea736d
[eric] win: match the legacy NSIS uninstall entry by DisplayName -like 'OpenSwarm*' (NSIS appends the version, exact match found nothing)
2026-05-30 03:03:49 -07:00
ciregenz
78eedf18c4
[eric] win: squirrel firstrun silently removes the legacy NSIS install (NSIS->Squirrel migration cleanup, deferred to quit, best-effort)
2026-05-30 01:17:10 -07:00
ciregenz
abf2daf0da
[eric] win: fold proven squirrel autoUpdater fixes into squirrel (non-throwing check, event-signature normalization, already-running guard)
2026-05-30 01:06:11 -07:00
ciregenz
be8d6fd081
[eric] win: switch product to squirrel target + wire built-in autoUpdater on the RELEASES feed
2026-05-29 22:22:43 -07:00
ciregenz
ac31593eda
[eric] win: handle Squirrel install events so the app makes its Start Menu/Desktop shortcut
2026-05-29 19:41:03 -07:00
Eric
9aaf503b03
[eric] e2e: expose the redux store deterministically via webPreferences.additionalArguments, fix visibility capture (read the chromium trace from tracingComplete, resolve click targets to the control, drop the dead contextBridge ipc wrap), harden onboarding/settings/combinatorial specs and add multi-window-stress
2026-05-28 21:41:01 -07:00
Eric
6353bbddda
[eric] electron+e2e: close the init-script race - main reads OPENSWARM_E2E env on startup and appends an --openswarm-e2e chromium switch, preload reads the switch BEFORE any page script parses and contextBridge-exposes __OPENSWARM_E2E__=true so the production store-on-window gate fires deterministically rather than racing addInitScript against bundle parse
2026-05-28 09:38:29 -07:00
Eric
7fb57cea5e
[eric] electron: defer the preflight cache-write until both preflight finished AND backend-http-ready fired so a kill in the window between cannot leave a verdict=ok token that masks a real boot break on the next launch, plus honor settings.preflight_enabled and a deterministic installation_id-bucket cohort gate
2026-05-28 02:49:11 -07:00
Eric
1396372c8f
[eric] electron: wire the preflight module into main next to logPreflight, honor OPENSWARM_DISABLE_PREFLIGHT=1 kill switch, fire async so it overlaps with backend spawn instead of adding to boot, emit a [preflight2] verdict line and fold the result into the boot beacon payload
2026-05-28 02:13:14 -07:00
Eric
d4aa87a320
[eric] fix: fire the boot beacon only after backend-ready, not just first-paint, so it doesnt post into a dead socket
2026-05-27 19:11:12 -07:00
Eric
9990ab8e09
[eric] feat: add boot preflight diagnostics and a silent opt-out-honored fleet boot beacon
2026-05-27 19:11:12 -07:00
Eric
ac6ae7c7ce
[eric] diagnostics: time the boot + stamp the shipped commit into the log
2026-05-27 10:19:53 -07:00
Eric
9c1940077f
[eric] diagnostics: add backend.log, handle backend spawn failures, force utf-8 in executor sandbox
2026-05-26 20:25:31 -07:00
Eric
440a3e22f6
[eric] windows: fix "backend crashed" by making the app pick a port that is genuinely free so it stops colliding with another program already on port 8324; bump 1.1.68
2026-05-26 14:17:12 -07:00
Eric and Claude Opus 4.7
c0d0e012cc
[eric] outputs/quit: reap app builder child processes before killing the backend on windows so nsis upgrades stop hitting "cannot be closed"; bump 1.1.67
...
- root cause: window-all-closed called killBackend() (windows: taskkill /F) BEFORE before-quit could POST /shutdown-all, so the backend was dead before it could run stop_all(), orphaning the bundled vite node.exe; a running node.exe locks its own image at resources\node\x64\node.exe, so the next nsis upgrade cannot overwrite it and surfaces appCannotBeClosed via the file-lock retry path (extractAppPackage.nsh / installUtil.nsh), not the name-based app-running check
- windows-only because mac's killBackend sends SIGTERM, which lets uvicorn run its lifespan shutdown -> stop_all(); only since 1.1.64 because app builder first started spawning these children on windows in bf6d7a9 (before that they died with WinError 2)
- fix: drop the premature killBackend() in window-all-closed (will-quit still kills the backend, now AFTER the reap) and raise the pre-quit reap budget from 2s to 10s to cover stop_all's parallel taskkill (up to 5s) + 3s SIGTERM grace
- mac unaffected: will-quit already kills the backend; the app reap simply runs explicitly via /shutdown-all now instead of riding on SIGTERM timing
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-26 13:19:11 -07:00
Eric
3509c08057
[eric] workflows: remove scheduled-tasks end-to-end (frontend pages+slice, backend app+routes, electron poller), keep dock chat; bump 1.1.64
2026-05-26 11:12:29 -07:00
Eric
fc8c35e5e0
[eric] windows 1.1.60: revert installer to nsis to test if squirrel was the renderer-crash trigger
2026-05-26 01:20:20 -07:00
Eric
0076909145
[eric] windows 1.1.56 hotfix: webRequest.onHeadersReceived filter uses 'subFrame' (Electron camelCase) not 'sub_frame' (Chrome extension snake_case) — wrong name threw "Invalid type sub_frame" synchronously during app.whenReady, became an unhandledRejection, prevented the app from booting on 1.1.55
2026-05-25 22:51:34 -07:00
Eric
b73f508755
[eric] windows 1.1.55: (a) textarea-aware editor read/write/clear helpers so Enter-to-send works on Windows where EditorSurface uses textarea instead of contentEditable (handleSend was reading .textContent which is empty on textarea); (b) gate BrowserCard webview behind !Windows so dashboard hydration no longer segfaults from webview tag commit (iframe fallback is now usable for most sites since we also strip X-Frame-Options and CSP frame-ancestors on sub_frame loads via session.webRequest.onHeadersReceived, scoped to http/https types:sub_frame so OAuth popups and deep links keep their security headers); (c) gate onboarding video autoPlay on Windows so panel mount does not trigger the autoplay+animation crash; Mac path untouched everywhere
2026-05-25 22:29:17 -07:00
Eric
0bec1ea268
[eric] windows: serve packaged frontend via embedded http://127.0.0.1 server instead of file:// since dev mode (http origin) never crashed while packaged (file://) consistently 0xC0000005 segfaulted on chat/dashboard mount, confirming file:// origin is the actual native-crash trigger on Electron 40 CastLabs Chromium 144; revert disableHardwareAcceleration to keep GPU perf since the fault was never GPU-side; retag v1.1.44
2026-05-25 18:40:06 -07:00
Eric
9a6956477f
[eric] windows: app.disableHardwareAcceleration() since dropping the gpu-blocklist override alone did not stop 0xC0000005 renderer crashes on chat/dashboard mount, so the native segfault is in the GPU process itself not just blocklist-bypass paths; software rasterization is slower but neutralizes the entire GPU-side native-crash class; win32 only, mac is unaffected; retag v1.1.44
2026-05-25 18:15:03 -07:00
Eric
bfe59e52b0
[eric] windows: drop ignore-gpu-blocklist + enable-gpu-rasterization + enable-zero-copy since Crashpad confirms every renderer crash is STATUS_ACCESS_VIOLATION 0xC0000005 with no JS cause, classic blocklisted-driver segfault pattern on Electron 40 CastLabs Chromium 144; respecting the blocklist lets Chromium fall back to software rasterization on affected GPUs; retag v1.1.44
2026-05-25 17:49:12 -07:00
Eric
099a0c69e7
[eric] diag: max-coverage logs (crashReporter for native minidumps, main-process uncaughtException + unhandledRejection + child-process-gone + preload-error, full render-process-gone details, safe sendToRenderer, every ipcMain.handle entry, BrowserCard / WorkflowCard render, AgentChat before-jsx) so the next renderer crash leaves a complete trace; retag v1.1.44
2026-05-25 17:29:40 -07:00
Eric
d27f289cea
[eric] windows: fix UA-spoof leak onto recreated main window + add diag logs across preload, createWindow, recreateMainWindow, resumeSession, launchAndSendFirstMessage, AgentChat, WebSocketManager so packaged-build stderr captures the chat-spawn crash trail
2026-05-25 16:06:58 -07:00