Skip to content

docs(m106): Slack-resident channel bot — changelog, error codes, trigger sources#116

Merged
indykish merged 3 commits into
mainfrom
chore/m106-slack-resident-changelog
Jul 2, 2026
Merged

docs(m106): Slack-resident channel bot — changelog, error codes, trigger sources#116
indykish merged 3 commits into
mainfrom
chore/m106-slack-resident-changelog

Conversation

@indykish

@indykish indykish commented Jul 2, 2026

Copy link
Copy Markdown
Contributor

What

The Jul 02, 2026 changelog entry for the Slack-resident channel bot, plus the reference updates the feature touches:

  • changelog.mdx — new <Update>: dashboard OAuth connect (no token paste), one resident fleet per channel, in-thread answers, channel-scoped memory, best-effort recent-thread re-read (20 messages), the four /v1/…connectors/slack… routes with scopes, and the new error codes.
  • api-reference/error-codes.mdx — five new UZ-SLK-* rows (statuses taken from the server error registry: 401/401/200/502/502); UZ-CONN-001 generalized beyond GitHub now that two providers share the connect flow.
  • concepts.mdx — trigger sources go three → four with the Slack mention.

Why

Ships with agentsfleet/agentsfleet#468 (M106). The API reference itself is generated from the product repo's public/openapi.json; connector routes are deliberately not in it (matching the GitHub-connector precedent — dashboard OAuth + signature-authed ingress, not Bearer surfaces), so the changelog + error codes carry the public story.

🤖 Generated with Claude Code

Greptile Summary

Adds the M106 Slack-resident channel bot documentation across four files: a Jul 02, 2026 changelog entry, five new UZ-SLK-* error codes (split across an OAuth section and a new "Slack event handling" subsection), a fourth trigger source in concepts, and a sidebar rename from "Fleet bundles" to "Fleet templates" in the navigation config. All three issues raised in the previous review round were addressed in eb76810 before this revision landed.

  • changelog.mdx introduces the full feature narrative (dashboard OAuth connect, one fleet per channel, in-thread replies, channel-scoped memory, 20-message re-read), the four new /v1/…connectors/slack… routes with their scopes, and a summary of the new error codes.
  • api-reference/error-codes.mdx adds UZ-SLK-022 to the connect/mint table, a new "Slack event handling" subsection for the four runtime codes, a numbering-gap explanation for UZ-SLK-021, and a generalized UZ-CONN-001 description that now covers both GitHub and Slack.
  • concepts.mdx bumps the trigger-source count to four and adds the Slack mention bullet with a note that it does not share the generic webhook path.

Confidence Score: 5/5

Documentation-only change with no runtime logic; safe to merge.

All four changed files are purely documentation — changelog prose, error-code reference rows, a concepts accordion update, and a sidebar navigation config. No code paths, schemas, or executable logic are touched, and all three issues from the previous review round were addressed before this revision arrived.

docs.json retains GET /v1/fleets/bundles under the renamed Fleet templates group — worth confirming whether that endpoint path was preserved or also renamed server-side.

Important Files Changed

Filename Overview
changelog.mdx New Jul 02, 2026 Update block documenting the Slack channel bot — feature narrative, four API routes with scopes, and error-code summary; consistent with existing changelog structure.
api-reference/error-codes.mdx Five new UZ-SLK-* codes added across two logical sections (OAuth connect and runtime event handling); gap explanation and sub-header from prior review are present; generalized UZ-CONN-001 description looks correct.
concepts.mdx Trigger count bumped to four; Slack mention bullet added with disambiguation note; Webhook bullet no longer cites Slack as an example (fixing the previous ambiguity).
docs.json Fleet bundles group renamed to Fleet templates and snapshot endpoints replaced with fleet-template routes; GET /v1/fleets/bundles is retained under the renamed group despite the path still using the old "bundles" terminology.

Sequence Diagram

%%{init: {'theme': 'neutral'}}%%
sequenceDiagram
    participant U as User (Dashboard)
    participant API as agentsfleet API
    participant Slack as Slack OAuth / Events API

    Note over U,Slack: Connect flow (UZ-SLK-022 / UZ-CONN-001 / UZ-CONN-002)
    U->>API: "POST /v1/workspaces/{workspace_id}/connectors/slack/connect"
    API-->>U: "{ authorizeUrl, state (signed, single-use) }"
    U->>Slack: Browser redirect to authorize page
    Slack-->>API: "GET /v1/connectors/slack/callback?code=...&state=..."
    API->>Slack: Token exchange (code to bot token)
    Slack-->>API: bot token
    API-->>API: Vault bot token in workspace
    U->>API: "GET /v1/workspaces/{workspace_id}/connectors/slack"
    API-->>U: "{ status, team }"

    Note over U,Slack: Event ingestion (UZ-SLK-010 / -011 / -020 / -030)
    Slack->>API: POST /v1/connectors/slack/events (HMAC signed)
    API->>API: Verify signature and timestamp (5-min window)
    alt Signature invalid - UZ-SLK-010
        API-->>Slack: 401
    else Timestamp stale - UZ-SLK-011
        API-->>Slack: 401
    else Team not installed - UZ-SLK-020
        API-->>Slack: 200 acknowledged and ignored
    else Valid event
        API-->>Slack: 200 acknowledged
        API->>API: Wake or create channel-resident fleet
        API->>Slack: Post answer to thread via chat:write
        alt Delivery fails - UZ-SLK-030
            API->>API: Log and retry with backoff
        end
    end
Loading
%%{init: {'theme': 'base', 'themeVariables': {"darkMode": true, "background": "#0d1117", "primaryColor": "#21262d", "primaryTextColor": "#e6edf3", "primaryBorderColor": "#8b949e", "lineColor": "#8b949e", "textColor": "#e6edf3", "edgeLabelBackground": "#161b22", "actorBkg": "#21262d", "actorBorder": "#8b949e", "actorTextColor": "#e6edf3", "actorLineColor": "#8b949e", "signalColor": "#8b949e", "signalTextColor": "#e6edf3", "noteBkgColor": "#373320", "noteBorderColor": "#d4a72c", "noteTextColor": "#f0e6c0", "labelBoxBkgColor": "#21262d", "labelBoxBorderColor": "#8b949e", "labelTextColor": "#e6edf3", "loopTextColor": "#e6edf3", "activationBkgColor": "#30363d", "activationBorderColor": "#8b949e"}}}%%
sequenceDiagram
    participant U as User (Dashboard)
    participant API as agentsfleet API
    participant Slack as Slack OAuth / Events API

    Note over U,Slack: Connect flow (UZ-SLK-022 / UZ-CONN-001 / UZ-CONN-002)
    U->>API: "POST /v1/workspaces/{workspace_id}/connectors/slack/connect"
    API-->>U: "{ authorizeUrl, state (signed, single-use) }"
    U->>Slack: Browser redirect to authorize page
    Slack-->>API: "GET /v1/connectors/slack/callback?code=...&state=..."
    API->>Slack: Token exchange (code to bot token)
    Slack-->>API: bot token
    API-->>API: Vault bot token in workspace
    U->>API: "GET /v1/workspaces/{workspace_id}/connectors/slack"
    API-->>U: "{ status, team }"

    Note over U,Slack: Event ingestion (UZ-SLK-010 / -011 / -020 / -030)
    Slack->>API: POST /v1/connectors/slack/events (HMAC signed)
    API->>API: Verify signature and timestamp (5-min window)
    alt Signature invalid - UZ-SLK-010
        API-->>Slack: 401
    else Timestamp stale - UZ-SLK-011
        API-->>Slack: 401
    else Team not installed - UZ-SLK-020
        API-->>Slack: 200 acknowledged and ignored
    else Valid event
        API-->>Slack: 200 acknowledged
        API->>API: Wake or create channel-resident fleet
        API->>Slack: Post answer to thread via chat:write
        alt Delivery fails - UZ-SLK-030
            API->>API: Log and retry with backoff
        end
    end
Loading

Reviews (3): Last reviewed commit: "docs: align fleet template API navigatio..." | Re-trigger Greptile

…ger sources

New Jul 02, 2026 changelog entry for the Slack connector: dashboard OAuth
connect, one resident fleet per channel, in-thread answers, channel-scoped
memory, and the recent-thread re-read. Error-code reference gains the five
UZ-SLK rows (statuses from the server registry) and UZ-CONN-001 is
generalized beyond GitHub now that two providers share the connect flow.
concepts.mdx trigger sources go three → four with the Slack mention.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
indykish added a commit to agentsfleet/agentsfleet that referenced this pull request Jul 2, 2026
Feature milestone → minor bump per the release matrix; make sync-version
propagated build.zig.zon + cli/package.json, make check-version green.
The user-facing story ships in the docs changelog (agentsfleet/docs#116).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Comment thread concepts.mdx Outdated
Comment thread api-reference/error-codes.mdx
Comment thread api-reference/error-codes.mdx
@mintlify

mintlify Bot commented Jul 2, 2026

Copy link
Copy Markdown

Preview deployment for your docs. Learn more about Mintlify Previews.

Project Status Preview Updated (UTC)
agentsfleet 🔴 Failed Jul 2, 2026, 1:51 AM

💡 Tip: Enable Workflows to automatically generate PRs for you.

indykish and others added 2 commits July 2, 2026 10:42
…ap note, Slack event sub-section

- concepts.mdx: drop Slack from the Webhook trigger examples (it has its
  own dedicated trigger) and say explicitly that a Slack mention does not
  use the webhook path.
- error-codes.mdx: explain the UZ-SLK-021 numbering gap (superseded by
  the generic UZ-CONN-002 before release); split the four Slack runtime
  event-handling codes (010/011/020/030) into their own sub-section so
  operators diagnosing a live channel-bot failure don't scan past them in
  the OAuth connect & mint table.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@indykish indykish merged commit 6a0fc9e into main Jul 2, 2026
4 checks passed
@indykish indykish deleted the chore/m106-slack-resident-changelog branch July 2, 2026 13:34
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant