Commit Graph
42 Commits
Author SHA1 Message Date
EricandClaude 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 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
ciregenz 083d70def5 [eric] workflows: merge scheduled-tasks onto dev, re-home dashboard + fix backend imports 2026-05-24 23:41:53 -07:00
ciregenz 782811daac [eric] tree: group browser sub-agent modules under agents/browser 2026-05-23 13:06:55 -07:00
ciregenz efa240126f [eric] tree: group anthropic proxy modules under agents/proxy 2026-05-23 13:05:53 -07:00
ciregenz fa57be6bbb [eric] tree: group foundational agent modules under agents/core 2026-05-23 13:05:15 -07:00
ciregenz 26b9239c8a [eric] cycles: move OAuth flow state into a leaf module 2026-05-23 07:05:25 -07:00
ciregenz 81fea443fd [eric] cleanup: drop dead code, dedup 9router prefix, strip em-dashes (backend) 2026-05-23 02:29:22 -07:00
ciregenz 245269c0ac [eric] workflows: port backend scheduler + executor + schedule MCP server from dev 2026-05-21 22:29:07 -07:00
ciregenz ac99b0090b fixes: MCP auto-continue lists tool names + history doesn't eat chats + WS strip replayed closes
(1) After MCPActivate, the continuation prompt now enumerates the
activated server's callable tool names so the next turn calls them
directly instead of burning a turn on tool-discovery guesses.
(2) Resume no longer deletes the session file from disk; previously
every click on a past chat permanently removed it from history.
(3) WS replay skips agent:closed events; replaying them on a fresh
client destructively deleted the session being opened.
2026-05-20 02:10:12 -07:00
ciregenz a1fefa0ae8 [eric] approvals: trust patterns for action approvals + smarter sensitive-file gating 2026-05-20 01:56:38 -07:00
ciregenz 91508c87b1 [eric] onboarding bug fix and ux op 2026-05-12 22:36:22 -07:00
ciregenz 2e2e8c7728 [eric] webapp-template standardization (React + Vite + FastAPI new-app starter) + swarm-debug built-in skill + stale-session recovery 2026-05-11 18:40:27 -07:00
ciregenz 1988435466 [eric] fix runtime-logs WS — missing top-level asyncio import in main.py 2026-05-11 13:51:41 -07:00
ciregenz b4b7042af2 [eric] persistent app-backend runtime + Terminal tab (replaces one-shot execute + Console panel) 2026-05-11 13:47:55 -07:00
ciregenz d20ff7d16c [eric] app builder cleanup — remove Auto Run, Test Input, RenderOutput tool + Outputs activation gate 2026-05-11 09:05:45 -07:00
ciregenz 54be1e8ba1 [eric] onboarding 1.0.31 + Settings draft persistence + LM Studio fix 2026-05-10 17:57:01 -07:00
ciregenz 7a6a49655c [eric] account flow + settings tweaks 2026-05-07 09:57:49 -07:00
ciregenz 49c649e3d9 [eric] single sync function for all state syncing 2026-05-05 12:11:07 -07:00
ciregenz 4cc1a3c7bd [eric] restore subscription activation CORS origins 2026-05-04 20:32:34 -07:00
ciregenz 3c42d8738f [eric] refactor internal service layer 2026-05-04 19:39:19 -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 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 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 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
ciregenz 7eb85a7127 [eric] subscription UI fixes: cards no longer flicker to the Starting-subscription-service spinner mid-task (is_running TTL cache + retry/poll on mount), show
Anthropic as its own picker group alongside OpenSwarm Pro when both are connected so users can pick per-request
2026-04-16 11:12:27 -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 4f50fc2236 [eric] delete unused Prompts feature, force AskUserQuestion for clarifying questions, clean up dead refs and TS errors 2026-04-07 22:54:18 -07:00
ciregenz e04eb2fb74 [eric] fix browser agent for 9Router, subscription-first priority, uvx fallback for non-dev users
- browser_agent.py: use get_anthropic_client instead of raw api_key, fix model map for 9Router
  - credentials.py + agent_manager.py: subscription (9Router) checked before API key everywhere
  - main.py: clean browser-agent endpoint, no credential params
  - tools_lib.py: when uvx not found, fall back to pip-installed binary from venv
  - requirements.txt: add google-workspace-mcp so it works without uvx
2026-03-26 12:17:37 -07:00
ciregenz ebea25f0c2 [eric] [eric] add PostHog analytics, 9Router subscription proxy, unified usage tracking
- PostHog integration: collector, analytics subapp, opt-in UI, Analytics page
  - 9Router: auto-start, OAuth subscription flow, /v1/messages Anthropic format support
  - Settings overhaul: multi-provider API keys, subscription connect UI, onboarding modal
  - Unified usage: merge 9Router cost/token data into Settings Usage tab
  - Provider system: providers/, agent_loop, tools/ (unused, for future non-Anthropic support)
  - Agent SDK: restored as primary with 9Router ANTHROPIC_BASE_URL fallback
  - Updated system prompt, credential resolution, dashboard analytics
2026-03-24 14:02:58 -07:00
ciregenz 8d09e46df5 [eric] add PostHog analytics integration 2026-03-24 11:48:50 -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 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 b90e5c6353 [Haik]: (Practically all forms of dashboard interaction glitches) (made dashboard selection process much more intuitive and seamless - and high level) (added BrowserAgent so the outer agent can delegate more complex tasks) (added tool to parallelize across multiple browser agents since the abstraction keeps the tool calls so high level) (Added a temporary agent insight ui over each browser as it does stuff - human in the loop is still needed) 2026-03-16 05:01:56 -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 87ef21919f [Haik]: Browser control 2026-03-15 19:54:23 -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
haikdc 23621306a1 [Haik]: and so it begins 2026-03-13 12:09:25 -07:00