Commit Graph
252 Commits
Author SHA1 Message Date
TheAchiever6823 12e7cb3fe2 [shawn] chore: drop unused _resolve_model from outputs/outputs.py
Removed:
- _resolve_model (L36, 2 lines)
- MODEL_MAP module-level dict (L29) — only consumed by the deleted
  function, so it became orphaned after the cut.

Verified zero callers via:
  grep -rn '_resolve_model' backend electron frontend/src
  grep -rn 'MODEL_MAP'      backend electron frontend/src

The only other MODEL_MAP match (browser_agent.py) is a distinct
module-level dict, not this one. 802 tests pass.
2026-05-19 15:01:57 -07:00
TheAchiever6823 0a4b40878f [shawn] chore: drop unused _is_9router_available from providers/registry.py
Removed:
- _is_9router_available (L307, 15 lines)
- _9router_cache module-level dict (L186) — only consumed by the
  deleted function, so it became orphaned after the cut.

Verified zero callers via:
  grep -rn '_is_9router_available' backend electron frontend/src
  grep -rn '_9router_cache'        backend electron frontend/src

Both showed only intra-module references. 802 tests pass.
2026-05-19 15:00:25 -07:00
TheAchiever6823 0086e2076d [shawn] chore: drop unused private helpers from agent_manager.py
Removed:
- _build_connected_tools_context (L452, 96 lines)
- _approx_tokens (L939, 7 lines)
- _summarize_message_block (L947, 57 lines)

Verified zero callers via:
  grep -rn '_build_connected_tools_context' backend electron frontend/src
  grep -rn '_approx_tokens'                backend electron frontend/src
  grep -rn '_summarize_message_block'      backend electron frontend/src

All three return only the definition line. 802 tests pass.
2026-05-19 14:56:09 -07:00
TheAchiever6823 52487c3e31 [shawn] chore: add triage-deadcode.py to filter false positives from dead-code report 2026-05-19 14:46:05 -07:00
TheAchiever6823 ed6576b0f0 [shawn] chore: gitignore DEAD_CODE_REPORT.md + ship diagnose-spotify.py from earlier 2026-05-18 15:37:13 -07:00
TheAchiever6823 66b395ef61 [shawn] feat: audit-deadcode.py — generic dead-code scanner with decorator awareness 2026-05-18 15:36:27 -07:00
TheAchiever6823 f53146af3e [shawn] fix: refuse Spotify token if scopes missing — show exact missing list inline 2026-05-18 15:04:08 -07:00
TheAchiever6823 3b26971c6c [shawn] fix: log Spotify scopes at MCP startup + clear credentials on disconnect 2026-05-18 14:58:21 -07:00
TheAchiever6823 d712aa408f [shawn] fix: force Spotify consent screen + log granted scopes (catches scope drift) 2026-05-18 14:03:32 -07:00
TheAchiever6823 082f74deb6 [shawn] fix: exempt Spotify OAuth callback from bearer-token auth middleware 2026-05-18 13:55:15 -07:00
TheAchiever6823 35bdc4d6b7 [shawn] feat: add Spotify MCP — vendored, OAuth via OpenSwarm app credentials, 14 tools 2026-05-18 13:44:48 -07:00
TheAchiever6823 21effa80e3 [shawn] perf: per-chat session reuse — drops cold-start tax, agent remembers context 2026-05-18 11:29:44 -07:00
TheAchiever6823 fdbff54cec [shawn] perf: Telegram bot — Sonnet model + 250ms poll interval (saves ~1-15s per task) 2026-05-18 11:26:31 -07:00
TheAchiever6823 09d5f82d8e [shawn] feat: BotFather setup wizard — 4-step guided flow for non-dev Telegram users 2026-05-18 11:05:06 -07:00
TheAchiever6823 1470defbf6 [shawn] feat: Telegram-aware system prompt + post-processor — replies look like texts, not reports 2026-05-18 01:36:59 -07:00
TheAchiever6823 44ca14dc6f [shawn] feat: native typing indicator instead of status banner — feels like real texting 2026-05-18 01:29:15 -07:00
TheAchiever6823 14737d8d38 [shawn] feat: Saved Messages — plain text becomes a task, no slash needed 2026-05-18 01:16:33 -07:00
TheAchiever6823 a30a05f1cd [shawn] feat: official Telegram bot mode — DM your @BotFather bot with plain text, no slash 2026-05-18 01:06:15 -07:00
TheAchiever6823 92801b9156 [shawn] fix: load backend/.env at startup so Telegram listener gets API creds in dev 2026-05-18 00:55:29 -07:00
TheAchiever6823 0829ed8e41 [shawn] fix: Telegram MCP event loop conflict — convert all tools to async 2026-05-17 23:37:34 -07:00
TheAchiever6823 be0e3b7ff4 [shawn] feat: Telegram-as-control-plane — DM yourself /task <prompt> to drive an agent 2026-05-17 23:04:24 -07:00
TheAchiever6823 e0c560c648 [shawn] feat: add Telegram MCP — phone+OTP SSO, rate limits, scheduled-task ready 2026-05-17 22:47:21 -07:00
TheAchiever6823 5077fb2ff0 [shawn] fix: anti-loop guidance for Instagram and LinkedIn rate-limit hits 2026-05-17 19:45:00 -07:00
TheAchiever6823 b1555e1359 [shawn] feat: OpenSwarm-side rate limiting for LinkedIn MCP via pre_tool_hook 2026-05-17 19:40:12 -07:00
TheAchiever6823 b247ed7b7c [shawn] fix: set PYTHONPATH and absolute python for vendored Instagram MCP spawn 2026-05-17 19:30:25 -07:00
TheAchiever6823 a9f6338227 [shawn] refactor: vendor Instagram MCP into backend/apps/instagram_mcp, drop external setup 2026-05-17 18:43:43 -07:00
TheAchiever6823 789fb5e088 [shawn] feat: make Instagram MCP account-agnostic — setup script + portable paths 2026-05-17 18:28:20 -07:00
TheAchiever6823 93e5581436 [shawn] fix: write cookies.json and source-state.json so LinkedIn auth check passes 2026-05-17 17:57:51 -07:00
TheAchiever6823 55516fc4d7 [shawn] feat: add GitHub MCP integration 2026-05-16 23:14:59 -07:00
TheAchiever6823 af63029ebd [shawn] feat: add LinkedIn MCP with in-app sign-in 2026-05-16 22:26:20 -07:00
TheAchiever6823 e50c6afaed [shawn] stable release instagram mcp (dm) 2026-05-16 00:46:22 -07:00
TheAchiever6823 499eb16bad fix(mcp): wildcard allowlist when _tool_descriptions is unset
The agent_manager composer iterated tool_permissions._tool_descriptions
to build the per-tool allowlist passed to the claude CLI. When that map
was empty (an MCP tool added without populating it), zero tool names
were allowlisted, so the CLI rejected every sub-tool the server actually
advertised with "No such tool available". Mirror the unknown-tool
fallback: emit mcp__{name}__* and still honor explicit denies.
2026-05-15 22:15:20 -07:00
TheAchiever6823 b7ada2f3c3 feat(tools): desktop Instagram OAuth via MCP CLI bridge 2026-05-14 16:54:17 -07:00
ciregenz 1455ccef11 [eric] desktop carries a tag now 2026-05-14 11:55:48 -07:00
ciregenz 5d3cfcec2d [eric] Mac publish fixes: NODE_OPTIONS heap + rsync excludes for user-state and template_cache v1.0.33 2026-05-14 01:42:31 -07:00
ciregenz 531e3df28f [eric] retag 1.0.33 2026-05-13 19:41:47 -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 dfdd11a271 [eric] onboarding — auto-detect collapsed sidebar and walk user through expanding it before targeting sidebar items; AC popup/cursor polish + step
3-6 fixes
2026-05-11 15:31:57 -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 3417a2f7fb [eric] runtime: fix missing asyncio import in main.py + right-click Hard Reload on the App Builder reload button 2026-05-11 13:56:08 -07:00