Commit Graph
1414 Commits
Author SHA1 Message Date
ciregenz 5df979a59a analytics: fix completion-rate, mock-cost, and tool-count accuracy bugs 2026-05-04 17:50:11 -07:00
ciregenz 3e0e4f680c [eric] 1.0.28 production push v1.0.28 2026-05-04 12:31:21 -07:00
ciregenz 4ba7ed583e [eric] perceived-speed pass — skeleton placeholders replace spinners on Tools/Modes/Views/DiffViewer/DashboardSelection, dashboard rename
updates instantly (rollback if server rejects), dashboard cards no longer shake neighbors during streaming, plus shared motion/loading
  primitives for future consistency. Toolbar model/mode/thinking pick now writes through to the global default so it sticks across reopens.
2026-05-04 01:00:43 -07:00
ciregenz b0515ac3c5 [eric] dashboard minimap and thumbnail no longer lie when an underlying output gets deleted from the Views page — orphan view cards now get
pruned from layout state on the next render (gated on outputs loaded so the fix can't wipe valid cards during the load race), and clearing
  all cards from a dashboard now actually clears its thumbnail on exit instead of leaving the last 'alive' image stuck forever.
2026-05-04 00:12:12 -07:00
ciregenz 616e2e0be9 [eric] make the app open faster and stop crashing on small errors — split the JS so first paint is ~40% smaller (Settings/Tools/Views etc.
only load when you click into them, Settings pre-loads in the background so opening it stays instant), added a safety net that shows a
  friendly error card instead of blacking out the whole app, and stopped a few dashboard lists from needlessly rebuilding on every chat
  update.
2026-05-03 23:43:37 -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 d0b8df0329 [eric] 117 new invariant tests (777/777 total) covering MCP gate, soft-restart, label logic, aux-LLM routing. fastapi[standard] →
[standard-no-fastapi-cloud-cli] skips ~6MB sentry_sdk + cloud-cli we never use. gitignore catches python/editor/test cache noise.
2026-05-03 23:03:15 -07:00
ciregenz 8286cc1a5c [eric] delete ~3.6k lines of dead code (old unused agent runtime, ghost fields, orphan scripts). all 660 tests still pass, no functional
change.
2026-05-03 22:39:17 -07:00
ciregenz 5f5b932c53 [eric] tiny dead-code sweep — drop unused langchain pins from requirements.txt (saves ~5MB on packaged build) plus a few orphan exports left
over from past iterations (temp_state slice fields, clipboard timestamp getter, three never-imported lastSeq helpers).
2026-05-03 21:31:13 -07:00
ciregenz d14cc89300 [eric] tool labels read like a person — Plugged into Gmail, Saved a snapshot, varied phrasings per call; session/turn labels
in sentence case; activating an MCP mid-chat now actually works instead of the model guessing at made-up tool names. Also a bunch miscelaneous ui/ux tweaks, I cant be bothered :)
2026-05-03 20:44:32 -07:00
ciregenz ade79315a9 [eric] thinking pill shows full turn cost (input + output + subagent + tool work) with click-to-see input/output breakdown; reopening
completed chats no longer replays the typewriter (per-session lastSeq survives AgentChat remount so resume protocol stays at the high-water
  mark instead of last_seq=0)
2026-05-03 11:21:02 -07:00
ciregenz d310f9e031 [eric] thinking pill works on GPT/Gemini (clickable bubble with duration + token count + honest "provider does not expose
reasoning text" note instead of vanishing); friendlier MCP tool names (Gmail/Slack/etc with verb-derived actions); auto-collapse Anthropic
  thinking pill on turn end so the answer comes first; header timer matches per-turn pill (sums in ms, rounds once); thinking pill rolls 251s
  to 4m 11s; parallel tool count chips do not jitter as N grows; drop Gemini 2.5 from picker (Gemini 3 family only); aux-LLM calls route
  per-model so cheap-tier auxiliary calls do not 401 on cc/ subscription routes
2026-05-02 23:46:13 -07:00
ciregenz 691a92c2a1 [eric] dynamic turn labels in the thinking pill via cheap-tier aux LLM + cache pre-warm on dashboard mount for faster turn-1
TTFT
2026-04-30 12:31:48 -04:00
ciregenz 98349df9f1 [eric] faster replies + smarter chat: optimistic message bubbles, live thinking... pill, friendlier tool-call labels (Reading → Read),
compaction chip, native completion notifications, prompt-cache flip for ~70% cheaper/faster
2026-04-29 14:07:18 -04:00
ciregenz b7c93e2251 [eric] global ⌘K search + ⌘L clear chat + sticky notes on canvas + merge Chat into Ask + chat composer/dock sizing + spellcheck 2026-04-29 02:41:01 -04:00
ciregenz f755548b93 [eric] drop (Pro/Max) suffix from cc/ model labels — group header already disambiguates from OpenSwarm Pro proxy;
.gitattributes: split mcp-bundles vendored pattern into two
2026-04-29 00:46:17 -04:00
ciregenz 9be2d87f73 [eric] WS resilience: per-session seq + ring buffer + resume protocol so agent runs survive transient disconnects (wifi flap, sleep, NAT
drop) instead of flipping to completed. Adds heartbeat (25s ping/10s pong), reconnect with infinite jittered backoff, outbound queue gated
   on resume_ack, gap_detected fallback for long offlines, on-disk persistence of terminal events for post-restart recovery, and a
  reconnecting connection state decoupled from session.status. 1089 backend tests covering 500 randomized disconnect scenarios + concurrent
  broadcast races. Backend/WS handler does not cancel agent task on disconnect
2026-04-28 23:47:59 -04:00
ciregenz 5d69215739 [eric] phase 2+3: outputs gate, smart compaction, slash commands, preflight + auto-continue, bumped Anthropic SDK 2026-04-28 19:55:06 -04:00
ciregenz 30d581e9ec [eric] phase 1: MCP activation gate, context pill, friendly 429s, -api routes so API keys actually work 2026-04-28 19:01:07 -04:00
ciregenz 24dbd999ac [eric] bump M365 MCP server to 0.90.0: adds OneDrive share links, async copy, file previews 2026-04-27 23:56:14 -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>
v1.0.27
2026-04-27 22:37:17 -07:00
ciregenz f4cded781b [eric] App Builder fixes: preview loads (auth-token threaded into iframe URL + sub-resource paths), agent keeps running when you switch tabs
(session+workspace persisted on the app), Settings default model/thinking now flow into App + Skill Builder drafts
2026-04-27 15:09:25 -07:00
ciregenz 356b185f30 [eric] 1.0.26: ship Discord shim default + auto-migrate legacy + clean Google
reconnect
v1.0.26
2026-04-26 18:12:52 -07:00
ciregenz f8557e378f [eric] 1.0.26: ship Discord shim default + auto-migrate legacy + clean Google
reconnect
2026-04-26 18:12:45 -07:00
ciregenz 1a12db5d78 [eric] 1.0.26: OAuth/MCP reliability + chat UX polish 2026-04-26 15:29:36 -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
Eric bb97438b66 [eric] windows install reliability: NSIS recovery layers + PS5.1 build-script ASCII fix
Three changes that make Windows installs/upgrades stop stalling on the
  'OpenSwarm cannot be closed' modal -- independent of the cloud OAuth
  work happening on the Mac side.
2026-04-26 11:35:50 -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 d8f69bb23d [eric] shrink prod payload another ~125MB: drop unused binary (-97MB), trim babel non-en locale data (-30MB), strip pip-only dist-info
noise (-2MB), move pytest to dev-requirements (-4MB)
2026-04-25 04:35:20 -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 801268d6b7 [eric] fix: exempt /api/health/* (prefix) so packaged boot doesn't deadlock on 401, onboarding: mirror Settings' provider connect flow so Gemini works, fix packaged-mode boot + sync onboarding Gemini connect flow 2026-04-25 02:27:23 -07:00
ciregenz e14c3c57cc [eric] chat error UX: drop the "servers maxed / join waitlist" card on transient
503
2026-04-25 02:26:17 -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 744a14dc47 [eric] 1.0.26 windows-only: fix subscription OAuth + perf pass
Connecting→Connect mid-flow on Windows: 9router callback hardcoded
  localhost:8324 (dies when backend lands on 8325+)
2026-04-22 16:33:00 -07:00
Eric ca9bb06b23 [eric] 9router: switch production build from webpack to turbopack — webpack's glob scan walks into runneradmin's Application Data junction (XP-era loop) on
GitHub Actions Windows runners and EPERM cascades into FlightClientEntryPlugin TypeError. Turbopack is Next 16's native bundler with no user-profile scan; produces same
  standalone output for electron-builder packaging
v1.0.25
2026-04-22 01:12:24 -07:00
Eric 21a923caed [eric] 9router windows CI fix v2: webpack ignore must be single regex (not array mixing regex+globs which fails validation) — combine logs/.next/Application
Data/Local Settings into one regex; snapshot.managedPaths still empty for the actual EPERM mitigation
2026-04-22 01:02:42 -07:00
Eric b286439e55 [eric] 9router windows CI fix: ignore XP-era junction points (Application Data) in webpack snapshot+watch — caused EPERM scandir cascading into
FlightClientEntryPlugin TypeError on GitHub Actions runneradmin user
2026-04-22 00:09:02 -07:00
ciregenz a53731ccbb [eric] merge origin/eric/v2 — keep local ^0.85.0 bump of @softeria/ms-365-mcp-server over the incoming ^0.79.6 downgrade 2026-04-21 22:17:08 -07:00
Eric 4ce4dec33c [eric] windows polish + bump 1.0.25: publish-win.ps1 mirror of publish.sh + run.ps1 windows dev launcher, build-app-win.ps1 warns 8s if Mac latest-mac.yml missing in
v<version> release before -Publish, python-env cache skip via OPENSWARM_REBUILD_PYTHON, pip stderr wrapped to suppress PS5.1 NativeCommandError; analytics APP_VERSION
  auto-derived from electron/package.json (single source of truth); OnboardingModal renders Connected state for already-active providers; gitignore fix for backend/.venv.
  Bumps 1.0.25 - first version that ships Mac and Windows together.
2026-04-21 21:53:48 -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 c8360cc921 [eric] fix dead annual subscribe buttons: desktop was sending billing_interval="annual" but cloud zod enum only accepted
"monthly"|"yearly" so the POST returned 400 and the click silently no-opped — now map annual→yearly at the fetch boundary,
  UI/types/analytics stay on "annual"
2026-04-21 16:48:05 -07:00
Eric 87e42d0a3a [eric] initial push for windows compatibility openswarm one click download 2026-04-21 15:50:32 -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 b9f7698b0c [eric] default-model + thinking-mode settings overhaul: Settings dropdown mirrors the in-session picker (provider-grouped from
state.models.byProvider, disambiguates same-named models by · Provider), toolbar now honors the stored default_model instead of snapping to
  stale Redux initial 'sonnet' and re-syncs on every reopen so last-used picks don't leak, smart fallback per priority Anthropic > OpenAI >
  Gemini > OpenSwarm Pro > OpenSwarm with Snackbar warning when the user's default becomes unreachable, new Default thinking mode setting
  (Auto/Off/Low/Medium/High) added to AppSettings and threaded into AgentSession on launch, onboarding flow for user intuitive-ness slight tweaks
2026-04-20 14:56:09 -07:00
ciregenz 301b0f7707 [eric] auto-heal corrupt npx cache in MCP stdio discovery: on ERR_MODULE_NOT_FOUND pointing into ~/.npm/_npx/<hash>/, wipe
that dir and retry once — fixes Discord/YouTube failing with "MCP stdio process exited unexpectedly" after partial npx installs,
  per-browser auto-close: spawned browser cards now disappear on their own sub-agent's completion instead of lingering until the parent agent
  finishes, WebSocketManager agent:status matches by session.browser_id (spawned_by is the parent, so it never matched the finishing
  sub-agent), user-created/pre-selected browsers untouched
2026-04-20 01:20:20 -07:00
ciregenz dfc2f63488 [eric] onboarding walkthrough videos: replace pastel placeholder with autoplay/muted/loop step videos for all 5 steps,
uniform 8x8 progress dots no longer resize active step, body minHeight 130 to 200 keeps modal at the same height across all steps
2026-04-18 23:27:44 -07:00
ciregenz 6a1dfae934 [eric] OpenSwarm Pro 3-tier picker: Pro/Pro+/Ultra cards with monthly/annual toggle across Settings, Onboarding, and 429 error card, dynamic
Subscribe/Resubscribe/Upgrade/Downgrade CTA per tier, Anthropic-style layout and copy, bigger onboarding text
2026-04-17 15:28:26 -07:00
ciregenz b469648e05 [eric] production push 1.0.23 2026-04-17 02:58:12 -07:00