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
Eric
e7a09c9568
[eric] windows: fix preload race that crashed renderer on chat spawn
...
preload.js awaited two ipcRenderer.invoke calls before exposing
window.openswarm. Renderer code running in the gap saw the global
undefined: BrowserCard fell back to iframe mode (grey panel on sites
with X-Frame-Options), and chat-spawn calls to getAuthToken threw at
mount, crashing the renderer on Electron 40 + Windows.
Only bit Windows post-lazy-boot (ddd82ef ): startBackend now loads main
while preload runs. Mac lacks the downstream native crash trigger;
pre-lazy Windows had idle IPC at preload time.
Replace awaits with sendSync against new ipcMain.on mirrors.
backendPort is assigned before any window exists, so sendSync at
preload time always finds a real value.
2026-05-25 15:45:37 -07:00
Eric
6777d45d1c
windows: stop killing app on renderer crash; recreate window instead of reload
...
The render-process-gone handler called mainWindow.reload() to recover from
renderer crashes (e.g. WebGL / native / OOM in chat-spawn flows). On the
Electron 40 CastLabs build the reload re-registers a session/webview observer
that Chromium base/observer_list.h:318 refuses to add twice. The DCHECK
aborts the entire main process with exit 3, taking the app down whenever the
renderer dies.
Recreate the BrowserWindow instead: a fresh webContents has no duplicate
observers to add. The closed handler is identity-checked so the old window
teardown does not null out the new mainWindow reference.
When the 3-in-60s crash cap trips we now surface a native dialog (Reload /
Quit) instead of leaving a stuck dead window. Native dialog runs outside the
render-process-gone call stack, so its Reload button cannot itself reproduce
the DCHECK.
Bumps to 1.1.43 (re-cutting the deleted release draft).
2026-05-25 15:14:29 -07:00
ciregenz
846ee3bb01
[eric] workflows: auto-fit card height, drop stray step bands, fix active-poll 401 + view dead-ends
2026-05-25 12:22:25 -07:00
ciregenz
083d70def5
[eric] workflows: merge scheduled-tasks onto dev, re-home dashboard + fix backend imports
2026-05-24 23:41:53 -07:00
ciregenz
4c5457c751
[eric] onboarding: crash can't blank app; isolate boundary + dismiss + renderer reload
2026-05-23 19:16:04 -07:00
ciregenz
ea35db7b55
[eric] workflows: port electron lifecycle from dev (drain on quit + updater veto)
2026-05-21 22:29:18 -07:00
ciregenz
08986dfb6d
[eric] windows: switch installer to squirrel target + split auto-updater (exp.2)
2026-05-21 15:19:52 -07:00
ciregenz
ddd82ef239
[eric] windows: lazy backend boot, render in parallel with python cold-start (exp.2)
2026-05-21 13:52:54 -07:00
ciregenz
47c8f8f2a9
[eric] windows: prewarm Defender on install (exp.1)
2026-05-21 11:57:36 -07:00
ciregenz
a2495f5899
[eric] updater + custom providers: allowDowngrade for rollback + Ollama bare-host URL /v1 normalization
2026-05-21 01:11:32 -07:00
ciregenz
a1fefa0ae8
[eric] approvals: trust patterns for action approvals + smarter sensitive-file gating
2026-05-20 01:56:38 -07:00
ciregenz
49e0ed3d2f
experimental updates: opt-in prerelease channel via settings toggle + semver-suffix auto-detect in publish
2026-05-19 22:10:22 -07:00
ciregenz
1455ccef11
[eric] desktop carries a tag now
2026-05-14 11:55:48 -07:00
ciregenz
89cbfe9749
[eric] onboarding polish + perf — humanized AC popups, batched /submit (1 POST/sec vs 100s), group-meta dedup,
...
sidebar auto-expand, cursor offset fixes
2026-05-09 23:34:40 -07:00
ciregenz
0c841bdad4
[eric] onboarding revamp — agentic cursor walks users through 8 setup steps, WIP fixes: Gemini schema scrub, OpenAI GPT-5 routing, websearch cascade, gpt-5 is still a bit flaky...
2026-05-09 01:40:37 -07:00
ciregenz
415ab70b53
[eric] unify telemetry surface, install_method, frontend trackEvent
2026-05-05 14:35:43 -07:00
ciregenz
6f1ee49f1f
[eric] silent auto-update — new versions download in the background and apply when the user next quits OpenSwarm; 4h re-check
...
covers always-on sessions. Banner now reads 'will install when you quit' so users know what's happening.
2026-05-03 23:17:36 -07:00
ciregenz and Claude Opus 4.7
f0ea0fd1bc
[eric] 1.0.27 production push: fixes the weird "exec" icon next to OpenSwarm on fresh Macs, faster startup (~10s less from shipping a real Node binary instead of running Electron as Node), and Google Workspace + other uvx-based MCPs work again on machines without uv installed.
...
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-04-27 22:37:17 -07:00
ciregenz
c501b6340c
[eric] OAuth + MCP polish: more reliable connect flow, Discord shim,
...
connected MCPs sort to top, Haiku-overflow warning, misc fixes, security risks fixes
2026-04-26 15:14:16 -07:00