Eric
7ce71cb29c
[eric] build: bump electron from castlabs v40.7.0 to v42.0.0 wvcus so chromium goes from 144 to 146 and the windows tsf/webview segfaults the team has been ablating become unneeded
2026-05-27 20:31:33 -07:00
Eric
30914ae40c
[eric] build: pin electron-builder + deps to exact versions so the packager cant drift
2026-05-27 10:19:52 -07:00
Eric
8c5b3bdf64
[eric] ui: fix the windows guide cursor jumping instead of gliding (it was being rebuilt from scratch every frame) and remove the new chat / history pills above the composer; bump 1.1.69
2026-05-26 15:41:13 -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 and Claude Opus 4.7
cf74ada3c2
[eric] auth: generate installation_id at backend startup so first-launch sign-in always has a non-empty install_id; bump 1.1.66
...
- installation_id was created lazily on the first analytics submission; 1.1.64 removed the workflows startup poller, which was the early backend ping that used to generate it, so on a clean install the sign-in window built its google/email oauth url with an empty install_id and the cloud rejected the start
- now generated in main.py at the same pre-bind moment as the auth token, so GET /api/settings carries it from the very first fetch (no dependency on analytics timing)
- idempotent uuid4 hex, only written when missing; lazy path kept as fallback; platform-agnostic so mac is unchanged except the id exists slightly earlier
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-26 12:25:31 -07:00
Eric
40b7c19b75
[eric] onboarding cursor: restore writePos-after-spring order so mac stays byte-identical (windows still eases via no-op controls + css transition); bump 1.1.65
2026-05-26 11:17:01 -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
529d350cae
[eric] windows 1.1.63: drop the textarea + file-input squirrel-era ablations, restore contentEditable @-mention UI and the attach
...
paperclip on windows, plus a cubic-bezier cursor transition
2026-05-26 02:42:56 -07:00
Eric
da61377d8c
[eric] windows 1.1.62: cursor and popups follow target on windows via store-driven style.transform
2026-05-26 02:10:56 -07:00
Eric
31a90502c7
[eric] windows 1.1.61: restore AgenticCursor render on Windows now that the framer-motion shim makes motion.div safe
2026-05-26 01:42:05 -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
bb2de72f6f
[eric] windows 1.1.59: production webpack and framer-motion shim
2026-05-26 00:29:17 -07:00
Eric
7407e6cb37
[eric] windows 1.1.58: three fixes — (a) revert file-input restore: <input type="file"> is ALSO a Windows commit-phase crasher just like the contentEditable was, both must stay ablated, drag-and-drop still works; (b) nuclear-disable OnboardingRoot on Windows since the AgenticCursor visual ablation alone was insufficient (Onboarding panel/director/popups have additional Framer Motion + portal subtrees that segfault on commit) — user loses the guided tour on Windows but the rest of the app works; (c) remove iframe sandbox from BrowserCard so sites that need full-document access can render (Google specifically still appears grey because they run JavaScript anti-iframe detection that blanks document.body when window.top !== window.self, which header stripping cannot defeat; most non-Google sites should render fine now); Mac path untouched
2026-05-25 23:47:14 -07:00
Eric
3903766e96
[eric] windows 1.1.57: (a) relax CSP frame-src to allow http: and https: so BrowserCard iframe can render external sites (our own app-level CSP was the second-layer blocker after the upstream XFO/CSP frame-ancestors we already strip in main.js — together they let the iframe load Google et al); (b) gate AgenticCursor's portaled Framer Motion infinite-loop scale + drop-shadow node on Windows so the onboarding panel commit phase no longer segfaults from that subtree (visual cursor disabled on Windows, imperative handle still works for AC runtime); Mac path untouched
2026-05-25 23:16:14 -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
518d0574dd
[eric] windows 1.1.54 ablate (fix): correctly platform-gate the file-input/attach-button ablation (1.1.53 mistakenly disabled them on both Mac and Windows because the file was already wrapped in {false && ...} from a prior diagnostic — Mac now renders the full attach UI again, Windows still skips it); textarea-instead-of-contentEditable already correctly platform-gated since 1.1.53
2026-05-25 21:59:19 -07:00
Eric
d85d9c2c10
[eric] windows 1.1.52 ablate: swap contentEditable div for textarea + hide <input type="file"> on Windows so the commit-phase 0xC0000005 (Chromium 144 + Electron 40 native crashers) cannot mount; Mac path untouched so @-mention rich-UI and full attach button stay working there; UA-gated at module load via navigator.userAgent.includes('Windows') so zero runtime branch cost; if Windows chat opens without crash one of these was the trigger and we narrow in v1.1.53 by re-enabling each
2026-05-25 21:53:04 -07:00
Eric
e2ea5e03cf
[eric] windows 1.1.51 diag: render logs on every ChatInputToolbar child (ModeControl, ModelPickerMenu, ThinkingLevelControl, ToolbarActions) so the next 0xC0000005 crash narrows from "ChatInputToolbar last" to the exact toolbar child that commits before the segfault
2026-05-25 21:27:14 -07:00
Eric
06e7c54f57
[eric] windows 1.1.50 diag: render logs on every ChatInputView child (ChatInputToolbar, AttachmentChips, ChatInputOverlays, SendBlockBanner) so the next 0xC0000005 crash trace shows which sibling commits after EditorSurface — spellCheck=false on the contentEditable did not stop the crash so the trigger is either later in ChatInputView's child render order or in the JSX after EditorSurface's render log; bump for Squirrel fresh-fetch
2026-05-25 21:04:46 -07:00
Eric
664faa1033
[eric] windows 1.1.49: spellCheck={false} on contentEditable div + ChatInputView and EditorSurface render logs + version bump so Squirrel actually fetches a fresh signed binary (force-retagging v1.1.44 was reusing the cached install on every iteration); tag v1.1.49
2026-05-25 20:04:37 -07:00
Eric
aa644d2d2a
[eric] fix: WebSocketManager.connect diag log read this.options.sessionId on a class that stores the field as this.sessionId directly, so every WS connect threw TypeError and triggered the Windows native renderer crash on every chat / dashboard hydration; retag as v1.1.44 since the chat-spawn root cause was already closed by the v1.1.44 preload race fix and my v1.1.45 instrumentation regressed it
2026-05-25 16:49:01 -07:00
Eric
be3808fa5c
[eric] diag: add global window.onerror + unhandledrejection handlers in Main.tsx so packaged-build stderr captures the stack trace of the "Cannot read properties of undefined (reading 'sessionId')" throw firing inside AgentChat's render path (bundle.js:2 alone is uninformative without source maps)
2026-05-25 16:27:39 -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
8ee037d770
[eric] release: bump version to 1.1.42
2026-05-24 16:35:38 -07:00
ciregenz
fc18519c19
[eric] 1.1.41 production push
2026-05-22 19:21:19 -07:00
ciregenz
80cd3de66d
[eric] windows: add author field for Squirrel NuGet manifest validation
2026-05-21 15:48:57 -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
0b32266be7
[eric] 1.1.40 production push
2026-05-21 01:32:04 -07:00
ciregenz
cce668a1e8
bump version to 1.1.39
2026-05-20 20:48:52 -07:00
ciregenz
5db8eeb2ee
bump version to 1.1.38
2026-05-20 02:11:28 -07:00
ciregenz
9001cb8e38
[eric] DMG/EXE slim ~445 MB: drop legacy onboarding videos, per-arch node + lipo-thin uv, electronLanguages=[en], exclude backend/data + uv-bin
...
from bundle rsync (closes dev auth.token / install_id leak), strip pip + Tcl/Tk + pydoc_data + _pyrepl, both platforms
2026-05-20 01:52:47 -07:00
ciregenz
fa6a8f0f1d
bump version to 1.1.37
2026-05-19 22:10:55 -07:00
ciregenz
03e995b6f0
[eric] 1.0.37 hotfix: roll back to 1.0.35 codebase
2026-05-19 16:10:17 -07:00
ciregenz
490a3047cf
[eric] production push 1.0.35
2026-05-15 22:13:20 -07:00
ciregenz
abf4f9ba0b
[eric] production push 1.0.34
2026-05-14 18:37:45 -07:00
ciregenz
1455ccef11
[eric] desktop carries a tag now
2026-05-14 11:55:48 -07:00
ciregenz
531e3df28f
[eric] retag 1.0.33
2026-05-13 19:41:47 -07:00
ciregenz
e840b1b7f0
[eric] sub bug fix
2026-05-13 19:05:04 -07:00
ciregenz
2cc7e0f080
[eric] 1.0.32 — fix blank onboarding videos (./ instead of / under file://)
2026-05-11 00:03:08 -07:00
ciregenz
54be1e8ba1
[eric] onboarding 1.0.31 + Settings draft persistence + LM Studio fix
2026-05-10 17:57:01 -07:00
ciregenz
c539bf8115
[eric] 1.0.30 production push
2026-05-08 00:15:03 -07:00
ciregenz
947b8f9155
[eric] v1.0.29 production push
2026-05-07 16:49:23 -07:00
ciregenz
3e0e4f680c
[eric] 1.0.28 production push
2026-05-04 12:31:21 -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