diff --git a/docs-site/concepts/connectors.mdx b/docs-site/concepts/connectors.mdx index 606bfd9707..7c1963cde1 100644 --- a/docs-site/concepts/connectors.mdx +++ b/docs-site/concepts/connectors.mdx @@ -3,17 +3,14 @@ title: Connectors description: Channels and tools for your pods --- -Open **Connectors** in Commonly. Channels carry messages between a pod and an -outside chat. Tools let an agent read or act in another service after the -connection owner grants access. +Open **Connectors** in Commonly. Tools let an agent read another service +after the connection owner grants access. -Slack and Telegram are channels; GitHub and Linear are tools. +Slack and Telegram are channels. Linear is a tool you can grant today. | Connector | Current path | |---|---| -| [Telegram](/integrations/telegram) | Bind a private chat and choose which pods reach it. | -| [Slack](/integrations/slack) | Authorize a workspace. | -| [GitHub App](/integrations/github) | An instance administrator installs the app; the connection owner grants tools. | +| GitHub App | An instance administrator installs the app. | | [Linear](/integrations/linear) | Connect your account and grant read access to an eligible pod. | The [grants guide](/concepts/grants) explains how a connection owner limits tool access and revokes it. diff --git a/docs/audits/claim-table.md b/docs/audits/claim-table.md index 8dd8cb49d1..cc9bfac9d4 100644 --- a/docs/audits/claim-table.md +++ b/docs/audits/claim-table.md @@ -106,23 +106,25 @@ The connectors page is a first-touch page. A row marked `first-touch` in the Pag | Page | Claim | Verdict | Evidence | Date | |---|---|---|---|---| -| connectors (first-touch) | Open Connectors in Commonly | TRUE | `frontend/src/v2/components/V2NavRail.tsx:38` | 2026-10-26 | -| connectors (first-touch) | Channels carry messages between a pod and an outside chat | TRUE | `backend/services/slackApi.ts:69, :82`; `backend/routes/webhooks/telegram.ts:173–177` | 2026-10-26 | -| connectors (first-touch) | Tools let an agent read or act in another service after the connection owner grants access | TRUE | `backend/routes/grants.ts:320, :430` | 2026-10-27 | -| connectors (first-touch) | Slack and Telegram are channels; GitHub and Linear are tools | TRUE | `frontend/src/v2/components/V2ConnectorsPage.tsx:175` | 2026-10-26 | -| connectors (first-touch) | Telegram: bind a private chat and choose which pods reach it | TRUE | `backend/routes/webhooks/telegram.ts:173–177`; `frontend/src/v2/components/V2ConnectorsPage.tsx:616–641` | 2026-10-26 | -| connectors (first-touch) | Slack: authorize a workspace | TRUE | `backend/services/slackOAuthService.ts:53, :66` | 2026-10-26 | -| connectors | Slack: "then confirm the connection" | CUT | Not walked in time. This PR removes the sentence. | 2026-10-26 | -| connectors (first-touch) | GitHub App: an instance administrator installs the app | TRUE | `backend/routes/integrations.ts:239–262` | 2026-10-26 | -| connectors (first-touch) | GitHub App: the connection owner grants tools | TRUE | `backend/routes/grants.ts:320, :346` | 2026-10-26 | -| connectors | GitHub App on commonly.me: "limited to the instance's own repository" | CUT | Not walked in time. This PR removes the sentence. | 2026-10-26 | -| connectors (first-touch) | Linear: connect your account | TRUE | `backend/routes/hostedMcpConnect.ts:351, :697` | 2026-10-26 | -| connectors (first-touch) | Linear: grant read access to an eligible pod | TRUE | `backend/integrations/hostedMcp/linear.ts:28–31, :64, :92–93`; `backend/services/outsiderGrantPodEligibility.ts:46–54` | 2026-10-26 | -| connectors | Live page shows a free account before any connection or tool grant | CUT | Not walked in time. This PR removes the sentence. | 2026-10-26 | -| connectors | "Other tools visible in the list" | CUT | Not walked in time. This PR removes the sentence. | 2026-10-26 | +| connectors (first-touch) | Open Connectors in Commonly | WALKED | Prod, build 4fd217a, 2026-10-27, non-author, signed-in account. 390 and 1440 screenshots. File:line `frontend/src/v2/components/V2NavRail.tsx:38` | 2026-10-27 | +| connectors (first-touch) | Channels carry messages between a pod and an outside chat | CUT | Not walked: needs a live Slack or Telegram connection, which is a write. Cut 10-27 (TASK-014); restore on walk. | 2026-10-27 | +| connectors (first-touch) | Tools let an agent read another service after the connection owner grants access | TRUE | Read walked. Prod, 2026-10-27, non-author: a read-only Linear grant, and the granted agent listed the teams. No write grant was walked. Walked on prod 10-27, no screenshots; WALKED when the 390/1440 land. File:line `backend/routes/grants.ts:320, :430` | 2026-10-27 | +| connectors (first-touch) | Tools let an agent act in another service after the connection owner grants access | CUT | Not walked: the only grant walked was read-mode (a read-only Linear grant). Cut 10-27 (TASK-014); restore on a write-mode walk. | 2026-10-27 | +| connectors (first-touch) | Slack and Telegram are channels | TRUE | Prod, build 4fd217a, 2026-10-27, non-author: "Connect a channel" lists Slack and Telegram. Airtable also appears under Tools on prod; no docs page names it. Walked on prod 10-27, no screenshots; WALKED when the 390/1440 land. File:line `frontend/src/v2/components/V2ConnectorsPage.tsx:193–194`, `:1684` | 2026-10-27 | +| connectors (first-touch) | Linear is a tool you can grant today | TRUE | Prod, 2026-10-27, non-author: a read-mode Linear grant made from the Connectors UI; the granted agent listed the Linear teams. Walked on prod 10-27, no screenshots; WALKED when the 390/1440 land. File:line `backend/routes/hostedMcpConnect.ts:351, :697`; `backend/integrations/hostedMcp/linear.ts:28–31` | 2026-10-27 | +| connectors (first-touch) | Telegram: bind a private chat and choose which pods reach it | CUT | Partial walk: the channel list and pod picker were seen; the private-chat bind was not run. Cut 10-27 (TASK-014); the table row is removed. Restore on walk. | 2026-10-27 | +| connectors (first-touch) | Slack: authorize a workspace | CUT | Partial walk: "Add · one click in your workspace" was seen; OAuth was not started. Cut 10-27 (TASK-014); the table row is removed. Restore on walk. | 2026-10-27 | +| connectors | Slack: "then confirm the connection" | CUT | Removed from main by #2817 (e00b5c887). | 2026-10-26 | +| connectors (first-touch) | GitHub App: an instance administrator installs the app | TRUE | Prod, build 4fd217a, 2026-10-27, non-author: the page says the app is installed first, once, by an admin. Walked on prod 10-27, no screenshots; WALKED when the 390/1440 land. File:line `backend/routes/integrations.ts:239–262` | 2026-10-27 | +| connectors (first-touch) | GitHub App: the connection owner grants tools | CUT | Not walked: the GitHub App is not installed for the walk account. Cut 10-27 (TASK-014): the grant sentence is removed from the intro and the GitHub row. The page makes no claim that GitHub grants are unavailable, because the grant path exists at `backend/routes/grants.ts:346`. Restore on walk. | 2026-10-27 | +| connectors | GitHub App on commonly.me: "limited to the instance's own repository" | CUT | Removed from main by #2817 (e00b5c887). | 2026-10-26 | +| connectors (first-touch) | Linear: connect your account | TRUE | Prod, 2026-10-27, non-author: a Linear grant made from the Connectors UI on a signed-in account. Walked on prod 10-27, no screenshots; WALKED when the 390/1440 land. File:line `backend/routes/hostedMcpConnect.ts:351, :697` | 2026-10-27 | +| connectors (first-touch) | Linear: grant read access to an eligible pod | TRUE | Prod, 2026-10-27, non-author: a read-mode grant to an invite-only pod; the granted agent listed the Linear teams. Walked on prod 10-27, no screenshots; WALKED when the 390/1440 land. File:line `backend/integrations/hostedMcp/linear.ts:28–31, :64, :92–93`; `backend/services/outsiderGrantPodEligibility.ts:46–54` | 2026-10-27 | +| connectors | Live page shows a free account before any connection or tool grant | CUT | Removed from main by #2817 (e00b5c887). | 2026-10-26 | +| connectors | "Other tools visible in the list" | CUT | Removed from main by #2817 (e00b5c887). | 2026-10-26 | | connectors | Two screenshots and captions | CUT | Not walked in time. The images stay in `docs-site/images` and are no longer referenced. | 2026-10-26 | -| connectors | The page lists unavailable connectors; a listed row is not a working connection | CUT | Not walked in time. This PR removes the paragraph. | 2026-10-26 | -| connectors (first-touch) | The grants guide explains how a connection owner limits tool access and revokes it | TRUE | `backend/services/roomGrantService.ts:324–373`; `backend/routes/grants.ts:480–501` | 2026-10-27 | +| connectors | The page lists unavailable connectors; a listed row is not a working connection | CUT | Removed from main by #2817 (e00b5c887). | 2026-10-26 | +| connectors (first-touch) | The grants guide explains how a connection owner limits tool access and revokes it | TRUE | Prod, build 4fd217a, 2026-10-27, non-author: the guide is live and covers audience, expiry and revoke. Walked on prod 10-27, 1440 screenshot only; WALKED when the 390 lands. File:line `backend/services/roomGrantService.ts:324–373`; `backend/routes/grants.ts:480–501` | 2026-10-27 | | grants | A grant is scoped to a pod and the members allowed to use it, and can expire or be revoked | TRUE | `backend/models/RoomGrant.ts:28, :32–34` (target, audience snapshot, expiry); `backend/routes/grants.ts:371–379` (audience defaults to current members; each listed id must be one of them); `backend/services/roomGrantService.ts:233–239` (effective audience is the snapshot ∩ current members), `:242–243, :255–257` (expiry required and future), `:431` (expiry enforced on use); revoke `backend/routes/grants.ts:480–501`, `backend/services/roomGrantService.ts:390–396`, `backend/models/RoomGrant.ts:106–136` | 2026-10-27 | | grants | A grant is a server-enforced capability record | TRUE | `backend/models/RoomGrant.ts:11–36` | 2026-10-26 | | grants | It is not a credential, and revoking it does not replace the connector's credentials | TRUE | `backend/models/RoomGrant.ts:24–45` (no credential field); `:128–134` (revoke writes only `revokedAt` and `revokedBy`); `backend/models/AgentCredential.ts:41–58` | 2026-10-27 |