Skip to content

Mattermost Feature Map

This map compares Mattermost with the user-facing capabilities of CCCC's native IM connectors, originally inspected at 2a38ad78700a4a188b45f515434b74cc315b91ec on September 7, 2026. It does not claim support for every platform SDK API or every Web/TUI capability.

The specification defines current behavior. The acceptance record separates historical live checks from current integration tests. F01–F34 and T01–T20 retain their original identifiers for traceability; the original review history remains available.

All directly supported or equivalent capabilities below are included. A platform difference must be explicit; it is not grounds for silently omitting the underlying capability. Guide text alone is not implementation evidence.

Functional mapping

IDCapability and implementation referencesMattermost mapping and limitsAcceptance
F01Configuration, validation, startup and status; C1, C2, C3, C4Site URL and Bot Token; REST identity plus WS handshake; inline URL and management errorsT02, T03
F02Group lifecycle and enabled restore; C1, C5Group workers, generation/revision guards, stale-result rejection and installed-worker cleanup; stop does not stop ActorsT04; lifecycle regressions
F03Channels, DMs and threads; C6, C7, C8channel_id plus root_id; private channels and group DMs require actual Bot membershipT06
F04Explicit channel addressing and implicit DM input; C6, C8, C9Actual Bot username; prefix commands with @Bot to avoid native slash interceptionT07, T08
F05Default and explicit recipients; C10Reuse daemon addressing; mentions inside the body do not add recipientsT07
F06@all and @peers; C10CCCC aliases, without requiring corresponding Mattermost accountsT07
F07Subscribe aliases and 10-minute pairing keys; C9Request access to the exact chat/thread and show the target GroupT05, T08
F08Pending approvals, bind, reject and revoke; C2, C3, C4Existing Web/CLI authorization workflow and storageT05
F09Unsubscribe aliases; C9Remove the target subscription without deleting the GroupT05, T08
F10Per-target pause/resume; C9, C10Control that chat/thread, without cancelling the model or replaying a backlogT08, T09
F11Help and status; C9Existing Group/Actor counts and subscription status, without model callsT08, T09
F12Verbose off by default; C9, C10Per-target flag; no argument enables it; on/off, true/false and 1/0 supportedT08–T10
F13Public notification filtering; C1Only eligible public, non-Actor-directed system output; no private terminal contentT10
F14Sender titles; C11Markdown sender label, falling back to Actor ID; no Bot per ActorT10
F15Progressive streams and throttling; C12, C13, C14Create and patch per-target posts; no inference from TUI activityT11
F16Final fallback and Unicode chunks; C12, C13, C15Suppress matching final text only after every terminal chunk succeeds; partial failure retains full fallbackT11, T12
F17Inbound files and Blob metadata; C16, C17Authenticated download, ownership/size checks, stage all files before saving; clean temporary files on failureT13, T14; staging regressions
F18Outbound files; C12, C13, C18Prepare files from this Group, upload, then post file IDs with channel/thread routingT13, T14
F19Source and reply correlation; C10, C19Real user/post/thread IDs, stable client ID and corresponding CCCC event; no nickname identityT06, T15
F20Submission and event deduplication; C10, C20Stable daemon request identity plus bounded source-post cache; control decisions and attempted failure notices are rememberedT15; replay regressions
F21Loop prevention; C1, C6, C8Filter human/IM inbound from outbound, and self/Bot/system/unrelated inputT10, T15
F22Processing reactions; C19, C21Modify only this Bot's reactions; correlate completion; cleanup is not cancellationT16
F23Runtime ledger lag recovery; C1Reuse shared outbound catch-up without another SSE/SDK routeT17
F24Connection failures and recovery; C6, C8Native connection ID/sequence replay, cache-loss warning, heartbeat deadlines, terminal auth rejection and bounded retriesT03, T17
F25Logs and latest error; C1, C3, C4Group log plus stderr, redaction and existing status/CLI accessT03, T14, T17
F26Persistent IM state and shared locks; C22Existing config, authorized, pending and subscribers shape; no separate databaseT04, T05
F27Credential aliases, environment references and file policy; C2, C22Existing normalization plus site URL; draft/status guards and management ordering, including Weixin transitionsT02, T14; management regressions
F28Multiple targets per Group; C10, C12Separate authorization/pause/verbose/stream handles; shared Group context and eligible outputT09, T11, T18
F29Image/audio/video/file transport; C17, C23, C24Native file IDs; preserve inbound MIME and outgoing names/bytes; server classifies outgoing MIME; no transcriptionT13
F30Attachment-only and mixed input; C10, C12, C17Authorized DMs support files alone; channels still require explicit addressingT13
F31Markdown, links, code and authors; C11, C12, C13Mattermost text formatting; no extra card protocol to imitate another platformT10, T12
F32Existing CLI operations; C4, C22, C25Config/set/unset/start/stop/status/logs/pending/authorized/bind/reject/revoke; no deprecated backlog or context commandsT04, T17
F33Existing Web settings; C2, C26Platform form, drafts, validation, status, approvals, themes and locale stringsT02
F34HTTP/WS network configuration; C6, C27Reuse existing client's TLS/proxy policy for both transports; no dedicated proxy serviceT03

Platform-specific equivalents

IDSource-platform mechanismMattermost equivalent
N01Weixin QR login, verification and account cleanup; C28Bot Token plus explicit chat pairing; no personal-account QR login (F01/F07/F08/F27)
N02DingTalk AI cards and WeCom callback-bound streams; C14, C29Progressive post edits without card templates or callback windows (F15/F16)
N03WeCom encrypted media and WS chunk uploads; C24, C29Authenticated native file REST endpoints, without another encryption protocol (F17/F18/F29)

Boundaries to verify

  • Dedicated Bot identity per Group is a deployment requirement, not enforced cross-Group/instance uniqueness.
  • Channel and thread authorization remain distinct. DMs share Group context with its other approved subscriptions.
  • Server permissions determine private-channel and group-DM support. Do not elevate the Bot to work around restrictions.
  • Real-client command checks must use the @Bot prefix; a slash command swallowed by the client is not successful CCCC delivery.
  • Outgoing file MIME is classified by Mattermost. A refs entry is not an uploaded attachment.
  • Full read receipts, Actor TUI state, meeting control, custom slash-command registration and interactive control consoles are outside the native IM contract.
  • Inbound server-cache replay and outbound ledger catch-up do not promise cross-restart replay, a durable outbox or exactly-once delivery.
  • Media transport does not implement OCR, document parsing, webpage extraction or speech transcription.
  • The legacy-only management-continuation concern remains explicitly deferred in the specification; Mattermost test results do not certify it as fixed.

Implementation references

Platform references

The original API comparison was checked on September 7, 2026. These sources explain feasibility; they do not prove acceptance on a particular deployment.

Released under the Apache-2.0 License.