Commit Graph
174 Commits
Author SHA1 Message Date
ciregenz d2d6816d8a [eric] deadcode: remove unused DISCOVERY_SCAFFOLDING 2026-05-23 10:28:13 -07:00
ciregenz dd3efa866d [eric] deadcode: remove unused _is_9router_available 2026-05-23 10:27:36 -07:00
ciregenz b9ce323c5f [eric] deadcode: remove unused _summarize_message_block 2026-05-23 10:26:42 -07:00
ciregenz 8b646b0223 [eric] deadcode: remove unused _approx_tokens 2026-05-23 10:25:47 -07:00
ciregenz 33aa485a12 [eric] cycles: extract settings persistence into store leaf 2026-05-23 07:12:19 -07:00
ciregenz 3b97c23592 [eric] cycles: point outputs/dashboards at aux_llm for resp-text 2026-05-23 07:07:31 -07:00
ciregenz 8d76f39c67 [eric] cycles: pull APP_VERSION into its own leaf 2026-05-23 07:06:42 -07:00
ciregenz 26b9239c8a [eric] cycles: move OAuth flow state into a leaf module 2026-05-23 07:05:25 -07:00
ciregenz 65465aceec [eric] split: extract attachment resolution 2026-05-23 03:18:22 -07:00
ciregenz e5427ee492 [eric] split: extract prompt/context builders 2026-05-23 03:16:05 -07:00
ciregenz ef7c523f1a [eric] split: extract history compaction helpers 2026-05-23 03:11:58 -07:00
ciregenz f26f4985a9 [eric] split: move aux LLM helpers out of agent_manager 2026-05-23 03:09:35 -07:00
ciregenz b7ef925b03 [eric] split: extract tool catalog helpers 2026-05-23 03:08:53 -07:00
ciregenz 0e4e6ce371 [eric] split: carve out workspace git helpers 2026-05-23 03:08:09 -07:00
ciregenz 937d1bdf17 [eric] split: extract cloud session-close sync 2026-05-23 03:06:50 -07:00
ciregenz 6e0f8ecdb4 [eric] split: move session persistence into session_store 2026-05-23 03:05:39 -07:00
ciregenz 5f79a88f6e [eric] split: pull error classifiers out of agent_manager 2026-05-23 03:02:33 -07:00
ciregenz 60414566ac [eric] split: extract outputs html/workspace + runtime process helpers 2026-05-23 02:56:44 -07:00
ciregenz 4f016a0f9e [eric] split: nine_router into process/sync/oauth package 2026-05-23 02:56:31 -07:00
ciregenz a6f1cc73c7 [eric] split: extract registry pricing/openrouter/thinking, gate stays 2026-05-23 02:56:18 -07:00
ciregenz 567ed5236c [eric] split: carve browser_agent schema/history/loop into modules 2026-05-23 02:48:05 -07:00
ciregenz a8843d58c8 [eric] split: extract tools_lib mcp-config/discovery/oauth helpers 2026-05-23 02:47:36 -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 cbe5372471 [eric] attach: 9router bypass + Anthropic SSE translator for OpenAI/OR PDFs + 2-req OOM guard 2026-05-23 00:50:28 -07:00
ciregenz a30229bbda [eric] attach: native PDFs on Claude/Gemini/OR, cost calc, meter fix, 9router bypass for image blocks 2026-05-22 23:43:54 -07:00
ciregenz 94f045a9f9 [eric] tools: rip out dead Apps action group + permission field (UI was never wired to agent dispatch) 2026-05-22 19:15:51 -07:00
ciregenz d8f803b54d [eric] tools: fix Google Workspace pill showing 'Google Workspace account' instead of email 2026-05-22 19:05:14 -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 1628e09305 fix: seed builtin_permissions.json on startup so Settings toggles persist
Without this the file was missing on first run, load_builtin_permissions()
returned {}, and the agent fell through to _DEFAULTS={Bash:'ask'} even
though the Settings UI showed green 'always_allow' checkmarks (because the
UI defaulted missing entries to always_allow for DISPLAY but the agent
defaults to ask for SAFETY). The mismatch meant users got prompted on
every ls/cd/pwd despite having flipped Bash to always_allow in the UI.

Lifespan now seeds the file with Bash=ask and everything else=always_allow,
matching agent_manager._DEFAULTS. Idempotent: only writes if a tool is
missing; never clobbers a policy the user already set.
2026-05-20 19:37:42 -07:00
ciregenz f59bf0db9b defluff (frontend + backend): strip em-dashes + shorten docstrings + drop dead UI files (cosmetic only, no schedule code) 2026-05-20 05:36:17 -07:00
ciregenz 5b0c6e1df3 defluff: strip em-dashes + shorten docstrings across backend (cosmetic only, no logic change) 2026-05-20 05:25:23 -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 6092fc0966 apps: canvas-chat App Builder seeds + sync meta.json + stale-approval filter
App Builder launched from canvas chat now seeds the React template and
registers an Output row tied to the session id, so the Apps sidebar
lights up immediately. Adds a post-session-complete sync that reads
meta.json from the workspace folder and updates the Output row's name
and description, ending the 'Untitled App' problem. Also adds a stale-
approval filter to the WS replay: resolved approvals no longer
resurrect as dead cards when the user navigates back to a chat.
2026-05-20 02:09:03 -07:00
ciregenz 0ba7d86fef agent: block claude.ai partner MCPs in prompt + at SDK layer
claude_code preset auto-attaches the user's claude.ai-connected partner
MCPs (mcp__claude_ai_*). They bypass MCPActivate, don't share OAuth
state with OpenSwarm's Gmail/Drive/Calendar connectors, and confuse
the model into picking the partner shim instead of our vetted server.
Hard-block via disallowed_tools + add a system-prompt rule.
2026-05-20 02:03:22 -07:00
ciregenz 178a6060eb gmail: route OAuth refresh through cloud rotation-pool proxy
google-workspace-mcp's gauth.py hardcodes token_uri to oauth2.googleapis.com
and uses local CLIENT_ID/SECRET on every refresh. OAuth runs through a
rotation pool on the cloud side, so the refresh_token is bound to the
pool slot that minted it, not the single client baked into the DMG, and
direct refreshes return unauthorized_client. Redirect spawn through a
shim that monkey-patches get_credentials to point token_uri at a local
proxy (/api/tools/google-oauth-token), which forwards the refresh to
api.openswarm.com/api/oauth/google/refresh (pool-aware). Unblocks every
Gmail/Drive/Calendar query for users on the cloud OAuth pool.
2026-05-20 01:58:59 -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 e840b1b7f0 [eric] sub bug fix 2026-05-13 19:05:04 -07:00
ciregenz ae54680635 [eric] WIP polish — app builder runtime + react-vite template tweaks, dashboard toolbar/card refinements, PixelBlast accent, runtime-preview hook,
sign-in gate + settings updates
2026-05-13 18:30:55 -07:00
ciregenz ea55dbe53a [eric] App Builder skill: duplicate-React crash fix recipe 2026-05-13 14:12:51 -07:00
ciregenz db38311a8d [eric] fix prod regressions: __import__ scrub broke imports + Windows path gate 2026-05-13 13:20:19 -07:00
ciregenz ccec204bc7 [eric] security: gate Write/Edit on sensitive paths + restore HOME/PATH for force-mode Outputs 2026-05-13 11:49:33 -07:00
ciregenz afe11b6f37 [eric] outputs: HITL preview for risky backend.py + workspace path-traversal hardening 2026-05-13 10:50:15 -07:00
ciregenz 1b0e6c35eb [eric] App Builder polish + onboarding fix 2026-05-13 00:24:51 -07:00
ciregenz 91508c87b1 [eric] onboarding bug fix and ux op 2026-05-12 22:36:22 -07:00
ciregenz c0c52e33d6 [eric] App Builder saves to sidebar on seed + onboarding fallbacks (auto-skip rules, fallback prompts, retry popup) 2026-05-12 13:11:56 -07:00
ciregenz a84aec257b [eric] App Builder uses real React/Vite scaffold + onboarding polish (auto sidebar expand, bigger pill, video crop), onboarding bugs / edgecases 2026-05-11 23:23:59 -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 573f4a1ed4 [eric] App Builder skill as editable built-in (Skills page, undeletable) + onboarding step 1 unsticks after Claude Max / ChatGPT Pro / Gemini /
custom-provider connect (subscription state moved to Redux)
2026-05-11 14:54:07 -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