All docs · North OS2026-09-10

Organization-managed Outlook mailboxes — implementation plan

Approved 2026-09-10; in progress, uncommitted and unverified. Implement the canonical design. The cutover plan remains historical; its dead scheduler grants stay removed.

Ownership and integration order

LaneAuthorized ownerDeliverable
CoreAstra @write high, w88:pSSchema, generated migration/provisioning, credential/OAuth lifecycle, service authorization and public DTOs.
WebFable 5.1 high, local Devin, w88:pTAdmin Mailboxes page, member grants and lifecycle controls, authenticated API and registered callback dispatch.
ToolsFable 5.1 high, local Devin, w88:pVNative/MCP discovery and optional selector across existing mail operations; selected attachment source with own-Drive destination.

Workers run in parallel against the observed core DTO, not invented function names. Core authority is the shared boundary; web derives actor/org from session, MCP/native from authenticated context. The user's explicit Devin/Fable route supersedes the prior Astra-only preference; the existing lane plan/dual-review waiver remains recorded, not a claim that reviews passed. No merge/deploy authorization.

1. Core identity, storage and OAuth

2. Web administration

Add the admin Mailboxes surface within apps/web/app/(settings)/ and existing settings navigation/API patterns. Reuse apps/web/lib/connections/outlook-oauth.ts; extend apps/web/app/api/connectors/outlook/callback/route.ts to dispatch verified signed purpose on the same registered URL while preserving personal OAuth. Do not resurrect /delegation or account classification. Show multiple accounts, safe connection/error states, existing-member read/read+send grants, revoke/reconnect/disconnect; never serialize credential DTOs to the browser.

3. Native and MCP capability

Integrate discovery and selectors in packages/agent-runtime/src/tools/ (existing list-recent-mail.ts, search-mail.ts, read-email-thread.ts, read-email-attachment.ts, mail-send.ts, draft-email.ts, send-newsletter.ts) and apps/mcp-server/src/tools.ts / src/tools/. Cover registrations, schemas, capability admission and execution on both surfaces. Reuse the core authority boundary, not a second grant system.

For attachment-to-Drive, preserve destination ownership in apps/connectors-api/src/lib/personal-drive.ts and src/routes/personal-drive.ts; only source selection changes. Preserve personal defaults, explicit immediate sends, disconnected-feeder knowledge gates and scheduler removal.

Acceptance — check only after attached evidence

Verification and evidence boundary

Implementers attach exact commands, results and isolation limits for affected package tests, root bun run lint / bun run typecheck, Next build and native/MCP behavior smokes. Use fresh DB fixtures and synthetic provider behavior; no live sends, Drive writes, account changes or shared services to claim verification. UI checks follow the repository ui-test workflow when a suitable authorized surface exists; do not start a dev server in this lane.

Documentation verification separately parses HTML, checks pair/status/index links, preserves unrelated pages byte-for-byte and runs bun --no-env-file test docs/superpowers/convert-docs-to-html.test.ts (three existing tests). It is not feature verification. Set this pair with bun docs/superpowers/status.ts set managed-outlook-mailboxes in-progress; regenerate STATUS/index without retaining unrelated theme normalization.

User-reported PR #415 / cutover head 2a20299b11 has historical green Actions only. No new-capability gates, live acceptance, completed review or release are claimed. Keep acceptance unchecked until evidence exists; status remains in progress. No automatic Tips & Tricks migration/deletion, no scheduler/ingestion/subscriptions/shared discovery or application-wide Exchange permissions.