Commit Graph
1414 Commits
Author SHA1 Message Date
Eric da61377d8c [eric] windows 1.1.62: cursor and popups follow target on windows via store-driven style.transform v1.1.62 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 v1.1.61 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 v1.1.60 2026-05-26 01:20:20 -07:00
Eric bb2de72f6f [eric] windows 1.1.59: production webpack and framer-motion shim v1.1.59 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 v1.1.58 2026-05-25 23:47:14 -07:00
Eric aff9ccf98a [eric] windows 1.1.57: four fixes — (a) textarea Enter-to-send now actually clears the input (missed editor.innerHTML='' at ChatInput.tsx:181 in the post-send path); (b) textarea draft restore (useDraftLoad) routes through .value instead of innerHTML on Windows so a saved draft repopulates the input on remount; (c) restore the <input type="file"> + attach button on Windows since the original 1.1.54 crash root cause was the contentEditable TSF init not the file input — replacing contentEditable with textarea was the actual fix, file input was over-ablated; (d) relax CSP frame-src to allow http:/https: so BrowserCard iframe can render external sites; (e) gate AgenticCursor's portaled Framer Motion infinite-loop animation on Windows so onboarding panel commit no longer 0xC0000005 segfaults; Mac path untouched v1.1.57 2026-05-25 23:22:06 -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 v1.1.56 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 v1.1.55 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 v1.1.54 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 v1.1.53 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 v1.1.51 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 v1.1.50 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 v1.1.49 2026-05-25 20:04:37 -07:00
Eric 83a042d662 [eric] windows: drop invalid autoCorrect + autoCapitalize attrs from contentEditable div in EditorSurface — diag logs pinpointed ChatInput as the last child rendered before every 0xC0000005 segfault, and these attributes are spec-defined for input/textarea only so React forwarded them onto a div where Chromium 144 + Windows IME / spellchecker engages a native code path that segfaults during commit; spellCheck stays for spelling underlines; retag v1.1.44 v1.1.44 2026-05-25 19:47:55 -07:00
Eric 294d1a91ed [eric] diag: add targeted logs for each top crash-suspect (boot env snapshot for React-prod-mode + tree-shaking checks, wrapped lazy() loader with requested/loaded/failed logs for chunk-split race, [diag][ErrorBoundary] prefix on componentDidCatch so in-tree throws surface in stderr alongside window.onerror); retag v1.1.44 2026-05-25 19:26:40 -07:00
Eric 1ec3d473f3 [eric] diag: webpack --mode=development for packaged frontend + render logs on every AgentChat child (ContextDrawer / MessageBubble / StreamingBubble / CompactionMarker / ToolCallBubble / ToolGroupBubble / ApprovalBar / ChatInput / MessageActionBar / ErrorSlime) so the next 0xC0000005 crash trace shows the exact last component that committed before the segfault since http origin already disproved file://; retag v1.1.44 2026-05-25 19:20:16 -07:00
Eric 0c2cf3fc20 [eric] diag: build packaged frontend with webpack --mode=development since http://127.0.0.1 origin did not stop the 0xC0000005 crash (file:// theory disproved), and the only remaining variable between crash-free dev mode and crash-on-every-chat packaged mode is the production-vs-development webpack bundle (minification, terser, React prod mode, removed dev safety checks); larger bundle for one release to confirm minification/prod-bundle is the trigger, will revert and engineer a surgical webpack config once isolated; retag v1.1.44 2026-05-25 19:16:44 -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 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).
v1.1.43
2026-05-25 15:14:29 -07:00
ciregenz e9a2aac1ef [eric] win: alias step now finds installer in squirrel-windows subdir (-Recurse) 2026-05-25 14:24:31 -07:00
ciregenz e4396d65dc [eric] release: bump version to 1.1.43 2026-05-25 14:10:01 -07:00
ciregenz 20ff15e6a0 [eric] win: upload stable-named OpenSwarm-Setup-x64.exe alias so site link stops 404ing 2026-05-25 14:01:01 -07:00
ciregenz 43d0a50c1d [eric] win: create app shortcut on Squirrel install (was only Setup.exe visible) 2026-05-25 14:01:01 -07:00
ciregenz bcabcca407 [eric] workflows: scheduling is a chat view (bounded height, composer docked) so it stops collapsing tiny 2026-05-25 12:51:47 -07:00
ciregenz c5d2fe512f [eric] workflows+dashboard: card width matches chat, Cmd/Ctrl+A select-all, compact scheduling + consistent cancel/title 2026-05-25 12:45:59 -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 85646bc556 [eric] workflows: ignore saves card, scheduling chat typeable + default model, accent color, drop step box 2026-05-25 11:50:12 -07:00
ciregenz a137eba7c0 [eric] workflows: preview header divider, HITL-gold schedule button, model/mode/secs subtitle, slicker calendar 2026-05-25 11:16:30 -07:00
ciregenz db4b944b0c [eric] workflows: compact expandable steps in preview so schedule prompt + buttons stay visible 2026-05-25 10:32:12 -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 8ee037d770 [eric] release: bump version to 1.1.42 v1.1.42 2026-05-24 16:35:38 -07:00
ciregenz 6cf2606666 [eric] merge: fold eric/cleanup abstraction refactor into dev (resolve 9, re-home edits) 2026-05-24 16:24:59 -07:00
ciregenz 5fb4d02648 [eric] ui: docked tour collapses to a minimal right-edge tab; restore serif font 2026-05-24 12:33:22 -07:00
ciregenz edec6e0f9c [eric] ui: onboarding skip-to-sidebar + global count; sans fallback; memoize hot selectors 2026-05-24 11:03:30 -07:00
ciregenz 6e2d4e94aa [eric] actions: scope MCP service rules per integration; fixes mislabeled @ commands 2026-05-24 02:40:35 -07:00
ciregenz cd694ce6f1 [eric] usage: accurate tool calls + run time, drop empty-draft skew, quirky savings line 2026-05-24 02:15:19 -07:00
ciregenz 45fdfff3b7 [eric] actions: sort MCPs by connected+on, then on, then off (stable, no more jumping) 2026-05-24 01:55:50 -07:00
ciregenz c58708e3fd [eric] agents: unlock chat input when a send/edit fails (clear stuck 'running') 2026-05-24 01:50:27 -07:00
ciregenz 0bc2e1524e [eric] agentchat: plain-language memory/tools meter, hidden until it matters 2026-05-24 01:48:26 -07:00
ciregenz 1818375967 [eric] models: label Anthropic (API key) + subscription variants, fix billing bucket 2026-05-24 01:48:26 -07:00
ciregenz 9a93b81a1c [eric] picker: drop Fits/Tight/Too small badges, show only context length 2026-05-24 01:48:26 -07:00
ciregenz 4a30a1318b [eric] previews: real app+dashboard screenshots + order by last shot, not every save 2026-05-24 01:48:26 -07:00