Commit Graph
96 Commits
Author SHA1 Message Date
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
ciregenzandClaude 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
ciregenz ee91092284 [eric] fix packaged Mac boot: splash icon path, ship OAuth-only .env, exempt tools oauth callback from auth 2026-04-26 01:17:01 -07:00
ciregenz c67d27976b [eric] splash for start up ux improvements 2026-04-25 03:46:59 -07:00
ciregenz 94ea07dd0c [eric] make Windows install + boot way faster: splash window so it's not frozen on startup, swap MCP node_modules for tiny esbuild bundles
(138MB → 7MB), pre-compile python bytecode, parallelize Widevine, never silently quit
2026-04-25 03:05:08 -07:00
ciregenz 2379dd92be [eric] security: lock down the local websocket + http api with a per-install auth token 2026-04-25 02:26:13 -07:00
ciregenz f5cc3a36fb [eric] remove vendored 9router (now fetched from npm at build), remove Copilot, and fix subs + tools 2026-04-25 02:26:08 -07:00
Eric 9ff07443db [eric] windows shipping: electron-builder win+nsis + Azure Trusted Signing hook, build-app-win.ps1 / build-python-env-win.ps1 mirroring mac, release-windows.yml tag-triggered CI, icon.ico + .env.windows.example, .claude/ + .env.* gitignored. Runtime fixes: PYTHONUTF8=1 (cp1252 UnicodeDecode), python.exe / Lib\site-packages paths, PYTHONPATH path.delimiter, taskkill /T /F process tree, OAuth UA platform branch, sign-vmp postinstall via node wrapper. Backend: _resolve_command PATHEXT probing (fixes uvx not found), UV_PYTHON Windows path. Cross-env added to 9router+electron for NODE_ENV prefix on cmd. Onboarding: poll subscriptions/status while connect step is open, render Connected for active providers (was stuck on "Connect" after 30s OAuth poll timeout). 2026-04-21 18:15:49 -07:00
ciregenz 11b07bde28 [eric] production push 1.0.24: removed non-Claude MCP upfront-load warning (context-cost only, zero functionality impact), fixed fullscreen
+ webview popup dark-screen via new-window → exitFullscreen so parent stays interactive, ErrorSlime extracted to shared component and
  rendered on all chat error cards (Network / Servers maxed / Plan limit / Subscription), Network issue classifier tightened to real errno
  codes + retry CTA removed since edit_message-based replay was truncating successful tool history — copy now directs user to send-new-message
   once WS auto-reconnects
2026-04-21 15:11:56 -07:00
ciregenz bb57a2aa51 [eric] passkey-not-supported dialog: intercept WebAuthn in agent browsers and surface a modal instead of letting the page hang on the passkey verifying spinner,
shim injected from main via contents.executeJavaScript (bypasses Trusted Types CSP), webview preload force-attached in will-attach-webview
2026-04-16 15:20:29 -07:00
ciregenz 1a68ccfc7b [eric] OpenSwarm Pro: new managed plan alongside BYO — deep-link activation from billing checkout, onboarding + Settings card with live usage, gradient OpenSwarm Pro group in
the model picker, inline error cards for rate-limit/connection failures, debugger startup fix
2026-04-15 23:05:02 -07:00
ciregenz 4778cea80e [eric] multi-model subscription support: connect ChatGPT Plus, Gemini Advanced, and GitHub Copilot subscriptions via 9Router
- Add BUILTIN_MODELS for OpenAI (GPT-5.4/Mini/5.3-Codex), Google (Gemini 3 Pro/Flash, 2.5 Pro/Flash), and GitHub Copilot
  - Add resolve_model_id_for_sdk() and resolve_aux_model() to route prefixed model IDs (cx/, gc/, gh/) through 9Router translator
  - Add GET /agents/models endpoint returning available models based on live 9Router connection state
  - Enable ENABLE_TOOL_SEARCH=auto for all providers so non-Claude models get full tool access (23 built-in + all MCPs)
  - Add thinking block streaming support (ThinkingBlock in stream handler + AssistantMessage) for reasoning models
  - Fix Gemini 3 thought-signature errors: use skip_thought_signature_validator per Google docs
  - Fix WebSearch blocked_domains/allowed_domains empty-list rejection on Anthropic API
  - Fix browser_agent text_parts UnboundLocalError on non-Claude models
  - Fix auxiliary LLM calls (title gen, group meta, dashboard naming, view builder, browser agent) via resolve_aux_model
  - Add Codex OAuth callback listener on port 1455 for ChatGPT Plus subscription connect
  - Route Gemini OAuth through system browser since Google blocks embedded webviews
  - Override Electron popup user-agent for OAuth
  - Fix duplicate OAuth callback with idempotent completed_oauth tracking
  - Fix Settings modal tab routing and stale warning banner
  - Add API key inputs for OpenAI, Google, and OpenRouter
  - Add MCP warning banner when selecting non-Claude model with many tools
  - Force session fork on cross-provider model switch to prevent transcript corruption
  - Disable GitHub Copilot subscription card (9Router poll issue, marked preview)
  - Delete dead CopilotProvider import and unused CopilotAuthButton component
2026-04-12 12:06:36 -07:00
ciregenz 8f28efd668 [eric] fix empty ghost window after update: single-instance lock loser now calls app.exit(0) instead of app.quit() so whenReady can't still
fire and spawn a second backend + window
2026-04-10 22:15:10 -07:00
ciregenz bee3f48bb3 [eric] rewrite system prompt to prioritize action over narration, add adaptability directive, remove hardcoded service names, guide
ToolSearch discovery
2026-04-10 14:19:26 -07:00
ciregenz 1dad8a57fc [eric] browser sub-agent: loop detection, ReportProgress, CDP ax tree, batching, compaction, hide-don't-unmount Dashboard so browser cards survive route navigation 2026-04-07 20:00:32 -07:00
ciregenz 28b2a110ce [eric] add Slack MCP integration with Electron-based auto token capture 2026-04-06 18:14:00 -07:00
ciregenz dcd20eed39 [eric] [eric] fix 9Router startup for users without Node.js, fix onboarding modal
- nine_router.py: use Electron binary as Node.js fallback (ELECTRON_RUN_AS_NODE=1)
  - electron/main.js: pass OPENSWARM_ELECTRON_PATH to backend
  - OnboardingModal: show once for users without subscription (persisted via localStorage)
  - settingsSlice: sync frontend default system prompt with backend
2026-03-25 17:23:13 -07:00
haikdc 9943ccafd5 [Haik]: (Agent browser render size matches that of user browser spawn) (queing messages) (chat loading bubble fix) (tethers to sub agents and branches are now permament and inputs are swapped to a continue chat button) (auto focus for everything) (history card position fix when redeployed) (dashboard persistance fixed) (non browser link clicks open in the in app browser now) (chat message tooltips for copy, branching, and editing / swapping between edited messages) 2026-03-18 23:45:54 -07:00
haikdc a1138a1782 [Haik]: (ability to resume chats if force end early) (agent selection actually works as advertised) (browser control/creation tool isolation) (in dev mode can see the action input schema) 2026-03-18 14:19:42 -07:00
haikdc b937003a24 [Haik]: ckpt (builtin tool call permissions are now functional) (when card is selected in dash hover scroll still works) (notification ui now shows actively running agents too - with the ability to stop them too) (agent card with is persistent post auto layout) (gworkspace discovery func works in prod now - to be tested in prod) (stable release naming for files so most recent version has fixed release link - to be tested in prod) 2026-03-18 01:48:53 -07:00
haikdc 6f02daff2d [Haik]: (Browser actions shown in agent card output) (User can have item selection turned on by default in settings) (most browser related functionality works - altho spotify is tricky) (mcp discovery in prod shld worke now?) 2026-03-17 01:48:50 -07:00
haikdc e6f1e18054 [Haik]: ckpt, this is a big one babayyy (dashboards now show screenshot previews of their contents like Apps) (Views are now called Apps) (Tools are called Actions) (Auto layout now preserves sizing and just works much better) (Browsers and Apps have larger spawn in size) (Tutorial info for how to get an anthropic key to help users - in the settings) (Added Descriptions to all 3 Main Pages in Navbar) (Also reorganized navbar and made it resizable) (Browsers now support multiple tabs) (Move the Commands page to settings - also beefed up settings a bit to encapsulate more) (Added inner glow on browser) (Added inputs in header of browser to act like normal google search) 2026-03-16 03:08:58 -07:00
haikdc 08cab727a1 [Haik]: ckpt (shld have fixed tool mcp discovery in prod - but untested) (Added browser control animations) (Made browser top input function as search) (swapped run.sh to not open up site locally in addition to the electron app) 2026-03-16 00:27:34 -07:00
haikdc 383f62c852 [Haik]: minor style tweaks and auto update functionality added (yet to be tested) 2026-03-15 23:12:29 -07:00
haikdc 1b06780079 [Haik]: notarized app done and working. 2026-03-15 05:12:05 -07:00
haikdc c728b462d6 [Haik]: Functional Browser 2026-03-15 02:15:59 -07:00
haikdc 1632b5c9e5 [Haik]: ckpt, (Fixed view create duplication bug) (Views auto save) (MCP is star sorted by default) (reload issues in dash fixed) (electron app made) 2026-03-15 00:09:04 -07:00