Commit Graph
94 Commits
Author SHA1 Message Date
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
EricandClaude 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