Commit Graph
276 Commits
Author SHA1 Message Date
TheAchiever6823 fe0c3af0f2 [shawn] chore: merge origin/dev into mcp-integrations, resolve conflicts
Brings the branch current with dev (was 18 behind) so the PR
squash-merges into dev with zero conflicts. Resolved 6 conflicts:

- backend/main.py: keep both workflows and telegram_bot SubApps
- backend/auth.py: keep the Spotify OAuth callback path exemptions
- backend/apps/agents/agent_manager.py: take the deletions of
  _build_connected_tools_context, _approx_tokens, and
  _summarize_message_block (confirmed dead, zero callers on dev)
- backend/apps/tools_lib/tools_lib.py: keep both dev's
  google_oauth_token_proxy and the MCP credential endpoints
- electron/main.js: keep both the Instagram MCP CLI helpers and
  dev's one-line waitForBackend comment
- frontend/src/app/pages/Tools/Tools.tsx: keep the credential dialogs

Also widens the Tools.tsx snackbar severity union to include
'warning', a value its own code already passes (a pre-existing type
error surfaced once dev was merged and tsc was run).

Verified: 832 backend tests pass, webpack build succeeds, tsc clean
except one pre-existing allowpopups error in dev's BrowserCard.tsx.
2026-05-20 03:15:04 -07:00
ciregenz 4eab66fc66 [eric] mcp: list activated server's tools in auto-continue prompt 2026-05-20 00:11:09 -07:00
ciregenz 7dc1cf45ad [eric] apps + approvals: canvas seed + meta sync + stale replay + schedule nav 2026-05-19 22:50:33 -07:00
ciregenz c8b637c6c9 [eric] approvals: trust patterns for action approvals + smarter sensitive-file gating 2026-05-19 15:52:13 -07:00
TheAchiever6823 49130d9351 [shawn] chore: drop unused _connected_phone from telegram_bot/listener.py
Removed:
- _connected_phone (L143, 6 lines) — docstring said 'backwards-compat
  helper used by the user-account path' but nothing in the repo still
  calls it.

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

Returned only the definition line. 802 tests pass; listener module
imports clean.
2026-05-19 15:03:35 -07:00
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
ciregenz 618d2d82a0 [eric] experimental updates: opt-in prerelease channel via settings toggle + semver-suffix auto-detect in publish 2026-05-19 13:56:39 -07:00
ciregenz fdf80816e2 [eric] ci: skip gitleaks scan when new-branch push has no commits ahead of main
Workflow's new-branch fallback fell through to a full repo scan whenever
merge-base with main equaled HEAD (empty range). That re-flagged every
historical secret a prior PR had already cleared. Now: empty range means
nothing new to scan, log + exit clean. Genuine no-shared-history case
still falls through to full scan.
2026-05-19 12:50:37 -07:00
ciregenz e19846fc5f [eric] workflow card: fix can't-type-in-edit-view + edit button + ai descriptions v1.0.36 2026-05-19 01:40:33 -07:00
ciregenz 20a3ae8506 [eric] 1.0.36 production push 2026-05-18 17:35:36 -07:00
ciregenz 177a585eaf [eric] test schedule suite 2026-05-18 17:27:19 -07:00
ciregenz 1f1fa220fe [eric] small bug fixes 2026-05-18 17:18:44 -07:00
ciregenz 13218b9c24 [eric] scheduled tasks: target-image visual pass, inline-edit in preview, AI descriptions, agent blocks claude.ai MCP shims, fixes hooks-order
crash and ghost-card on relaunch
2026-05-18 15:46:32 -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
ciregenz d51ff66552 [eric] DMG/EXE slim ~445 MB: drop legacy onboarding videos, per-arch node + lipo-thin uv, electronLanguages=[en], exclude backend/data + uv-bin
from bundle rsync (closes dev auth.token / install_id leak), strip pip + Tcl/Tk + pydoc_data + _pyrepl, both platforms
2026-05-18 04:28:13 -07:00
ciregenz 05f6897b40 [eric] scheduled tasks: agent can now manage workflows itself + tons of safety, cross-platform polish, and edge-case fixes 2026-05-18 03:14:24 -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
ciregenz eb561d7187 [eric] workflows: fix mid-run PATCH/DELETE clobber, optimistic-concurrency PATCH, X-out ghost confirm, custom-draft no-orphan, skipped-run toast,
dup-schedule guard, honest on_missed + Q/R warnings + clearer pause-all + Killed-by-restart copy
2026-05-18 00:04:07 -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
ciregenz f97af593cc [eric] scheduled tasks: tz-safe scheduler, tray + updater veto, schedule UX 2026-05-17 22:55:00 -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
ciregenz e189ee98e1 [eric] workflows as canvas-resident cards + hub + schedule UX pass, unstable version 2026-05-17 11:54:19 -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
ciregenz 490a3047cf [eric] production push 1.0.35 v1.0.35 2026-05-15 22:13:20 -07:00