fix(composio): preload connected account state - #445
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (7)
Included review availability: Your plan provides up to 10 included reviews per hour; 8 remain after this review. 📝 WalkthroughWalkthroughThe PR restricts toolkit discovery to connected services, exposes no-auth toolkit metadata, and adds cached connected-app inventory handling. The plugins panel now tracks loading states, retries failed inventory requests, handles account-alias errors, and preloads status after server connection. ChangesConnected toolkit inventory
Estimated code review effort: 3 (Moderate) | ~25 minutes Merge Risk: ⚪ Minimal · up to The change preloads and revalidates connected-app state, improves loading and error handling, and narrows toolkit queries without any actionable merge-blocking risk remaining beyond normal checks and review. Suggested reviewers: Sequence Diagram(s)sequenceDiagram
participant App
participant PluginsPanel
participant Server
participant ComposioAPI
App->>PluginsPanel: preload connected apps
PluginsPanel->>Server: request connected-app status
Server->>ComposioAPI: request toolkits with is_connected=true
ComposioAPI-->>Server: return connected toolkit data
Server-->>PluginsPanel: return connector inventory
PluginsPanel-->>App: cache inventory and update UI
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✨ Finishing Touches 💡 1📝 Generate docstrings 💡
🧪 Generate unit tests (beta)
Comment |
…#442) * feat(ui): composer attach button and per-bot permission mode selector Adds a paperclip button that opens a file picker feeding the shared attachment pipeline, and an Approve-for-me / Ask-for-approval pill that toggles autoApprove per bot without opening settings. The composer is restructured into two rows — text on top, controls below — matching common chat-app layouts. * feat(ui): remove the Always allow button from approval cards The per-bot permission mode selector in the composer (Ask for approval / Approve for me) is the single mechanism for reducing approval prompts; the per-program Always-allow grant duplicated it with a worse model. Allow-once and Deny remain. * Paint the resting face when a mascot mounts paused (#444) #425 made sidebar mascots mount paused — and exposed that the parked loop never draws: the SVG layers hold no expression until the first draw() positions them, so an idle bot's avatar rendered blank. The paused branch now paints the still face once, re-painting only when what it shows changes (state, pinned expression, gradient), then parks on the same 4Hz wake-poll. Animation stays opt-in; the resting pose is simply visible again. Co-authored-by: Claude Fable 5 <noreply@anthropic.com> * fix(composio): preload connected account state (#445) * chore(release): bump version to 0.1.33 (#446) * Add portable BotMRR Markdown playbooks (#426) * Add portable BotMRR package installs * Keep package link tests out of Vitest discovery * Add universal BotMRR Markdown imports * Document portable team playbooks * fix(composio): accept empty authorization bodies (#451) * ci: stop retaining disposable Linux packages (#452) * fix(linux): harden Ubuntu upgrades and Xorg local control (#346) * fix(linux): fail closed on unsafe local control startup * fix(desktop): keep optional connected apps off startup path * fix(linux): repair inherited DEB upgrade permissions * docs(linux): document the local-control safety hold * fix(ci): configure dependencies in DEB upgrade smoke * fix(linux): configure DEB Chromium sandbox * fix(linux): restore safe Xorg local control * fix(desktop): close review security and refresh races * fix(linux): isolate local control safety opt-in * docs(linux): explain private CUA cursor behavior * fix(linux): clean CUA runtime on termination signals * fix(linux): reap stale AppImage CUA stages * docs(linux): clarify release CUA coverage * test(linux): preserve packaged smoke diagnostics * ci(linux): normalize runner package parent * fix(linux): close final Ubuntu review gaps * fix(ci): fail closed before Ubuntu package install * fix(composio): enforce broker URL parity * Let Antigravity models control computers (mount the computer MCP) (#447) * Let Antigravity models control computers (mount the computer MCP) agy has no per-turn MCP flag and provably no project-level MCP config (1.1.19: embedded docs list only the global ~/.gemini/config/mcp_config.json and per-plugin files; agy mcp list ignores .gemini/{settings,mcp_config}.json in the cwd). So each turn upserts one key — openmausbot-computer — into the global file right before the spawn, preserving every other byte of the user's config and tolerating malformed JSON, and removes that key on the next computer-less turn so tools and box/control tokens cannot leak into later turns or the user's own agy sessions. Cloud boxes mount OpenMausBot's REST-to-MCP computer proxy (resolved via SPAWNED_PROXIES — never relative to the module, the 0.1.24 lesson); Local VM and VPS connections pass through as the stdio Cua command they already are. computerMcp is advertised only by full-auto instances: print mode has no interactive approval channel, and outside --dangerously-skip-permissions agy auto-denies tools that would prompt, so a non-fullAuto mount could never fire. localComputerMcp stays unset — the host desktop requires per-action human approval, which print mode cannot deliver in any mode. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> * fix: isolate Antigravity computer mounts * fix: reap settled Antigravity children * fix: keep MCP lease until child exit * fix: preserve Antigravity MCP ownership * fix: clear failed Antigravity turns --------- Co-authored-by: Claude Fable 5 <noreply@anthropic.com> --------- Co-authored-by: Milind Soni <46266943+milind-soni@users.noreply.github.com> Co-authored-by: Claude Fable 5 <noreply@anthropic.com> Co-authored-by: Kesley David <39314443+KesleyDavid@users.noreply.github.com> Co-authored-by: milind-soni <milindsoni201@gmail.com>
What changed
Why
The Connected tab was rendering an empty state while Composio scanned 1,372 toolkits across 28 pages. During that window Gmail incorrectly showed Connect, and clicking it produced the account-alias guard error.
Measured locally:
/api/connectors/connecteddropped from about 18–19 seconds to about 1.3 seconds.Verification
pnpm typecheckpnpm test: 1,782 passed, 12 skippedSummary by CodeRabbit
New Features
Bug Fixes