Skip to content

docs: document per-channel file support#538

Merged
SmittieC merged 3 commits into
mainfrom
cs/file_support
Jul 3, 2026
Merged

docs: document per-channel file support#538
SmittieC merged 3 commits into
mainfrom
cs/file_support

Conversation

@SmittieC

@SmittieC SmittieC commented Jul 3, 2026

Copy link
Copy Markdown
Contributor

Summary

Adds a File support section to the channels concept page comparing, for each channel, whether users can send files to the bot and whether the bot can send files back, along with the applicable file type and size limits.

Rather than a standalone page, the matrix lives on the existing concepts/channels.md page and links out to the detailed per-channel docs that already exist (widget file attachments reference, email file attachments how-to). Also adds a back-link from the email section of the deploy how-to.

Details

  • Covers Web/widget, API, Telegram, WhatsApp, Facebook Messenger, Slack, Email, and SureAdhere.
  • Notes the download-link fallback OCS uses when a channel can't natively deliver a bot-produced file.
  • Adds an info callout clarifying that voice notes are transcribed and handled separately from file attachments.
  • zensical build --clean --strict passes (no broken links).

🤖 Generated with Claude Code

Add a comparison table to the channels concept page covering whether each
channel can send/receive files, and the applicable type and size limits.
Comment thread docs/concepts/channels.md Outdated
@claude

claude Bot commented Jul 3, 2026

Copy link
Copy Markdown
Contributor

Docs review

Nice addition — the per-channel file-support matrix is genuinely useful, cross-references resolve, and the numeric limits I could check (Web/widget 50 MB, Email 20 MB) match the pages they link to. One factual issue and a few style suggestions:

Should fix

  • Facebook Messenger row contradicts the voice-notes callout (inline comment on line 25). The row implies Facebook accepts voice messages, but the callout scopes voice to Telegram/WhatsApp only. Reconcile the two.

Suggestions (non-blocking)

  • "Bot can send files" column mixes value types — plain Yes alongside As download links / As attachment metadata. This hurts scannability since the column can't be pattern-matched. Since the intro paragraph already explains the download-link fallback, consider a strict Yes/No column and move the "how" into the Types and limits cell (or a footnote marker).
  • Direction ambiguity — the Facebook (Text and voice messages only) and SureAdhere (Text messages only) cells omit the Incoming:/Outgoing: qualifiers used by the Telegram/WhatsApp/Slack rows, so it's unclear which direction they describe.
  • Placement vs. page-type contract — per AGENTS.md, concepts/ pages should stay at the what/why level and avoid reference-grade detail. The exact MB thresholds and provider names read as reference material. Consider trimming Types and limits to a qualitative note on the concept page and letting the linked how-to/reference pages carry the exact figures — keeping this page focused on the Yes/No comparison.
  • Unverified caps — the Slack (50 MB) and SureAdhere/Facebook (no numeric limit) entries aren't corroborated elsewhere in the docs. Worth a quick confirm against the OCS backend since these look like OCS-imposed caps.
  • Minor: Web / Chat widget (line 21) lowercases "widget"; the widget docs use Title Case "Chat Widget".

@SmittieC

SmittieC commented Jul 3, 2026

Copy link
Copy Markdown
Contributor Author

Thanks for the thorough review. I focused on the high-value items:

Fixed

  • Facebook/voice contradiction — resolved in f1ca9b7: Facebook Messenger was added to the voice-notes callout (it does support voice both ways — inbound audio → VOICE and send_voice_to_user in apps/chat/channels.py).
  • Direction ambiguity — fixed in e04d1f7: the Facebook and SureAdhere cells now read "No files in either direction; …" to match the Incoming/Outgoing framing used elsewhere.
  • Unverified caps — verified against the OCS backend (apps/service_providers/file_limits.py): Slack's 50 MB cap is can_send_on_slack; Facebook has no native file-send path (links only); SureAdhere is text-only. All correct as written, no change needed.

Deliberately not changing (design decisions)

  • "Bot can send files" column mixing Yes / As download links / As attachment metadata — the distinction is load-bearing (native send vs. link fallback vs. API metadata), and a strict Yes/No would lose it. Keeping the nuance in the column.
  • Exact figures on a concept page — I weighed the AGENTS.md page-type contract here. The MB thresholds and provider names aren't documented anywhere else, and the matrix's usefulness depends on them, so I'm keeping them rather than dropping the detail with no other home to move it to.
  • "widget" capitalization — minor nit, deferring.

@SmittieC SmittieC merged commit 13b37e8 into main Jul 3, 2026
@SmittieC SmittieC deleted the cs/file_support branch July 3, 2026 08:13
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