---
tags: [foundry, architecture, onboarding, support]
---
# Connection setup and pilot checks

Decision recorded September 27, 2026. The checks below must pass before broad rollout.

## What Foundry connects

Foundry gives an agent portable identity, memory and working instructions. Composio is the default service connection layer across Claude, ChatGPT desktop/Codex, OpenCode, Cursor and Antigravity. Begin with email, calendar and files; add other services when the user needs them. Native connectors remain deliberate alternatives for gaps and device-specific messaging. Show users their accounts, permission requests, results and recovery steps. The agent handles technical setup.

## Pilot integration (revised September 28, 2026)

Use **consumer Composio connections** with either Desktop app or Terminal. Claude Code and Codex use the official Composio agent plugin/CLI where supported in that exact mode; configure only the selected target and verify sign-in. OpenCode, Cursor and Antigravity use consumer Connect MCP at `https://connect.composio.dev/mcp` with supported OAuth. Antigravity uses `serverUrl` in `.agents/mcp_config.json`; its connection and runtime path is an assisted preview. The agent configures the selected tool. No developer-project API-key instructions belong in this flow.

Reuse existing connections only after checking the actual identity and route. The CLI/plugin shares its connections with CLI usage; cross-client equivalence with consumer MCP must be tested, not assumed. If the selected plugin is unavailable, explain and verify the consumer MCP fallback. If any route requires manual secrets without a supported secure setup, keep it assisted/pending.

Consumer and developer connections are separate. Do not direct users to developer projects, reuse operator credentials, or use `user_id=default` across customers. Consumer identity is the individual authorizing member; test that different members cannot access each other's connections. Keep secrets in the client's supported credential store, outside tracked config, generated starter files, and chat. Discover only relevant tools and request only required scopes; where vendor bundles force broader scopes, explain them before authorization and record the actual grants.

The website provides the guide and records milestones the user marks complete. It does not provision Composio identities, enforce tool routing server-side, or receive private account receipts. The agent displays verified identity/permission/health results inside the chosen app and stores them locally. Do not present these instructions as deployed backend isolation or automatic health monitoring.

## Multiple inboxes

Required behavior: clearly labelled accounts, verified actual addresses, explicit account/connection-ID selection for every action. No implicit most-recent inbox. In developer SDK sessions, the documented target is `multi_account={enable:true,max_accounts_per_toolkit:5,require_explicit_selection:true}` (TypeScript uses camelCase); limits may be configured 2–10. This is a **developer-session configuration contract, not an active consumer setting**.

Before offering multiple inboxes, test that each selected client can list consumer Connect accounts, authorize two Gmail accounts, and select the intended account for every read and write. If equivalent behavior is unavailable, stop multi-inbox actions and make an explicit product decision: supported native alternative, narrowed one-account pilot with the user's consent, or a separate developer-session integration. Do not silently change the architecture or pretend enabling an SDK flag changes consumer Connect. A developer integration would need stable authenticated Foundry user IDs, server-side per-user sessions, scoped tool exposure, isolated credentials and new acceptance tests.

## Health and recovery

The local account table contains service, friendly label, actual provider identity, connection route, granted permissions (unknown if not returned), last successful check, health and next action. Distinguish needs-sign-in, wrong-account, expired/revoked, permissions-blocked, unavailable and verified. A read check does not prove writes. Use the recovery instructions in [the user guide](9ton-setup.md).

Require review of the chosen sender/account, recipients, body, formatting, attachments and destructive changes before executing. If a send or create request times out with an unclear result, check the remote result or provider receipt before retrying or switching connectors. Otherwise the action could run twice. Preserve successful imports and checkpoints during reconnection.

## Ownership

- **Eitan, Foundry owner:** accountable for release approval, provider relationship, pricing, migrations and escalations.
- **9ton, Foundry enablement:** maintains setup instructions, source checks, test matrix and triage queue; gathers evidence and proposes repairs. This assignment does not claim an always-running health service exists.
- **Session facilitator:** records newcomer timing, support interventions, tested app/OS/version and evidence. Eitan owns this until another facilitator is explicitly assigned.

Before each workshop and vendor migration, inspect connection health and current documentation/changelog, re-run affected tests, and record version/date. Stop the affected route when behavior or account selection becomes ambiguous; retain an assisted recovery path. No new background monitoring schedule was created by this decision.

## Required tests

Run with representative newcomers in Claude, ChatGPT Work/Codex and OpenCode; run Cursor and Antigravity separately before advertising those routes as verified. Test Desktop app and Terminal independently; desktop success does not certify CLI behavior. Include Mac and supported Windows combinations. Use consenting pilot accounts and harmless fixtures.

| Test | Required evidence |
| --- | --- |
| Fresh onboarding | Time from start to first useful result; time spent authorizing; number and type of support interventions |
| Identity isolation | Two people cannot enumerate or invoke each other's connections; no shared default identity |
| Multiple Gmail inboxes | Two verified addresses in one client session; explicit selection consistently routes each read/write; newly connected account does not change sender |
| Mail search and drafts | Correct account, query, source links, saved draft readback |
| Approved sends | Correct sender/recipient, paragraph formatting, actual attachment name/content and sent-folder/provider receipt; review before send |
| Calendar | Correct calendar/timezone, harmless create/change/readback and approved cleanup |
| Documents/files | Correct account and file permissions; open/create/edit and readback, preserving unrelated content |
| Restarts | New conversation and full app restart retain intended connections, account routing and tools |
| Revoke/reconnect | Useful expired/blocked/wrong-account state, targeted reauthorization, correct identity afterward |
| Ambiguous write | Reconciliation avoids duplicate sends/events/documents |
| History | Agreed date coverage across all sources, exhausted pagination or explicit scope revision, resumable caps, meaningful linked notes |
| Runtime | Real capture, recall in a fresh session, actual scheduled execution, next run and pause instructions |
| First workflow | User's actual first task delivered with sources, not a badge |

Earlier checks reported by Eitan established some Composio reads for Gmail, Outlook, Calendar and SharePoint. They do **not** prove complete writes, multiple accounts, long-term reliability, or a completed separate ChatGPT web connection. This revision's automated checks exercise prompt/package/navigation logic, not the external services. The tests in this table must pass before broad rollout.

## Sources and review cadence

- [Multiple connected accounts](https://docs.composio.dev/docs/authentication/managing-multiple-connected-accounts)
- [Consumer/developer boundaries](https://docs.composio.dev/kb/guide/consumer-project-boundaries-and-auth-selection)
- [Composio agent plugins](https://docs.composio.dev/docs/agent-plugins)
- [Composio Connect](https://docs.composio.dev/docs/composio-connect)
- [Vendor changes](https://docs.composio.dev/reference/changelog)
- [Current pricing](https://composio.dev/pricing)

Docs and pricing inspected September 27, 2026; the changelog fetch exceeded the retrieval tool's size limit, so no migration-specific conclusion was drawn. Recheck before release. Verify the applicable plan before putting a price or entitlement into onboarding.
