docs(calls): add transcription and closed captions across all platforms - #487
Conversation
Document the call transcription and live closed captions feature added to the JavaScript Calls SDK in v5.0.5. - Add calls/javascript/transcription.mdx covering in-call transcription, the closed captions overlay and its UI controls, the caption language codes, post-call transcript retrieval via TranscriptRequestBuilder, and transcripts attached to call logs - Register the new page under the Features nav group in docs.json - session-settings: document autoStartTranscription, captionLanguage, hideTranscriptionButton and hideClosedCaptionButton - actions: document startTranscription() and stopTranscription() - call-logs: document setHasTranscriptions() and getTranscriptions() Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
- Add transcription setup, controls, captions, and transcript retrieval - Document related session settings and navigation
- Add transcription controls, settings, captions, and transcript retrieval - Update call logs for current APIs and transcript access
- Add transcription, caption controls, retrieval, and call-log docs - Add transcription page to the Flutter documentation navigation Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
|
Preview deployment for your docs. Learn more about Mintlify Previews.
💡 Tip: Enable Workflows to automatically generate PRs for you. |
jitvarpatil
left a comment
There was a problem hiding this comment.
Review: transcription & closed captions (Calls SDK v5, all 5 platforms) — LGTM ✅
Clean, purely additive, build-safe, and genuinely high-quality docs. Approving with two small "confirm against SDK source" notes.
Mechanical checks — all green
- Redirects: 0 removed, 0 renamed → 0 missing redirects (correct
+0delta). No 404 risk. - Chained 404s: 0.
- Nav integrity: the 5 new
docs.jsonentries (calls/{javascript,react-native,ios,android,flutter}/transcription) map 1:1 to the 5 new files → build-safe. - In-content links: every relative link in the new pages (
setup,session-settings,actions,call-logs,flutter/recording) resolves. - Placeholders / version drift / images: none — no
TODO/"coming soon", no v4/v6 leakage (allsdk_version: 5.x, "Available since v5.0.5"), no image refs.
Content quality — strong
Precise and internally consistent: real defaults called out (autoStartTranscription: false, hideTranscriptionButton: true, captionLanguage: en-US), a full error-code table, pagination semantics (REQUEST_IN_PROGRESS, [] at end), epoch-seconds flagged, and the transcription-vs-captions distinction explained up front.
Notes (confirm against SDK source — non-blocking)
- Property-vs-getter split within a page.
TranscriptRequestBuilder.fetchNext()results are documented as plain properties (tid,transcriptUrl,metaData…), whilecallLog.getTranscriptions()results use getters (getTid(),getTranscriptURL()…) — including a casing flip (transcriptUrlvsgetTranscriptURL()). Consistent across JS/Android/RN and plausibly real (raw JSON vs model instances), but worth a one-line confirm it matches the shipped SDK. - iOS
call-logsbuilder signatures changed. The rewrite renamed the documented builder methods from v4-stylesetLimit(30)→ v5 Swift-idiomatic.set(limit:)/.set(hasTranscriptions:), with an Obj-C bridging note (setWithLimit:). Looks deliberate and correct, but since it changes previously-published API names, please verify against the actual iOS Calls SDK v5 builder.
Both are "verify," not "wrong."
Approving — model additive-docs PR.
- Update setup examples to current SDK versions - Mark transcription and caption APIs with minimum versions
f89d7ec to
cebb5e3
Compare
Docs review — ✅ ApproveA large new-feature docs set: 5 new ✅ API verified against published
|
| Documented | In 5.0.5 |
|---|---|
CometChatCalls.startTranscription() |
✅ static startTranscription(): void |
CometChatCalls.stopTranscription() |
✅ static stopTranscription(): void |
CometChatCalls.TranscriptRequestBuilder |
✅ static member + Transcript interface |
autoStartTranscription |
✅ session setting |
hideTranscriptionButton / hideClosedCaptionButton |
✅ |
CallLogRequestBuilder.setHasTranscriptions(bool) |
✅ |
CallLog.getTranscriptions(): Transcription[] |
✅ |
getTranscriptURL / transcriptUrl |
✅ (Transcription class) |
Current published Calls SDK versions: JS 5.0.5, RN 5.0.5, Android 5.0.4, iOS 5.0.4, Flutter 5.0.7.
✅ Structure & content
- All 5
calls/{platform}/transcriptionpages are wired intodocs.jsonnav; 0 nav breaks, redirects +0. (Thecalls/ionic/overvieworphan is pre-existing.) - 0 new broken links — cross-checked every flagged target against this PR's added lines; none introduced (the 8 the analyzer reports are pre-existing in unchanged files).
- Consistent title (
"Transcription & Closed Captions") and structure across all 5 platforms; all internal links in the new pages resolve; no placeholders/TODOs across 2,000+ new lines.
Thorough, accurate, cross-platform-consistent feature documentation. Ready to merge. 🚀
🤖 Automated docs review (Mintlify link/redirect/nav/content checks + API verification against the published calls-sdk 5.0.5 type definitions).
jitvarpatil
left a comment
There was a problem hiding this comment.
Docs review — ✅ Approve
A large new-feature docs set: 5 new transcription.mdx pages (~300–500 lines each) plus supporting additions to actions / session-settings / call-logs across all 5 platforms (28 files, +2,765/−61). Structurally clean, consistent across platforms, and every documented symbol verifies against the published SDK.
✅ API verified against published @cometchat/calls-sdk-javascript@5.0.5
Checked the actual published tarball's dist/index.d.ts — all documented symbols ship today:
| Documented | In 5.0.5 |
|---|---|
CometChatCalls.startTranscription() |
✅ static startTranscription(): void |
CometChatCalls.stopTranscription() |
✅ static stopTranscription(): void |
CometChatCalls.TranscriptRequestBuilder |
✅ static member + Transcript interface |
autoStartTranscription |
✅ session setting |
hideTranscriptionButton / hideClosedCaptionButton |
✅ |
CallLogRequestBuilder.setHasTranscriptions(bool) |
✅ |
CallLog.getTranscriptions(): Transcription[] |
✅ |
getTranscriptURL / transcriptUrl |
✅ (Transcription class) |
Current published Calls SDK versions: JS 5.0.5, RN 5.0.5, Android 5.0.4, iOS 5.0.4, Flutter 5.0.7.
✅ Structure & content
- All 5
calls/{platform}/transcriptionpages are wired intodocs.jsonnav; 0 nav breaks, redirects +0. (Thecalls/ionic/overvieworphan is pre-existing.) - 0 new broken links — cross-checked every flagged target against this PR's added lines; none introduced (the 8 the analyzer reports are pre-existing in unchanged files).
- Consistent title (
"Transcription & Closed Captions") and structure across all 5 platforms; all internal links in the new pages resolve; no placeholders/TODOs across 2,000+ new lines.
Thorough, accurate, cross-platform-consistent feature documentation. Ready to merge. 🚀
🤖 Automated docs review (Mintlify link/redirect/nav/content checks + API verification against the published calls-sdk 5.0.5 type definitions).
ashfaqcometchat
left a comment
There was a problem hiding this comment.
Reviewed the Android and Flutter pages against calls-core master-v5 (bc71ebea, the flutter-v5.0.7 tag). Inline comments below; two items have no diff line to anchor to:
Android — calls/android/call-logs.mdx was not updated. The Android SDK has CallLogRequestBuilder.setHasTranscriptions(boolean) and CallLog.getTranscriptions() (CallLogRequest.java:229, CallLog.java:199), and the PR updated call-logs for the other four platforms. Please add the same "filter by transcript availability / read transcripts off a log" section for Android. It is also the only Android transcription API that actually requires 5.0.4 (see the version note inline).
PR description says Flutter 5.0.6; the diff says 5.0.7. 5.0.7 is correct — TranscriptRequest and startTranscription() landed only in flutter-v5.0.7 (pub.dev latest is 5.0.7). Please fix the description since it doubles as the changelog.
Everything else on both platforms checks out against the code: builder methods, TranscriptRequest limits/pagination/concurrency guard, error codes, Transcript fields, the 19-code language list, and the "captions item only appears while transcription is running" gating.
- Document transcription and caption controls as hidden by default - Show how to enable both controls
Re-review — ✅ ApproveMy previous approvals were auto-dismissed by the new commits, so re-reviewing on head ✅ The new commit is a correctness fix, and it's consistent
Cross-platform consistency confirmed — all 5 platforms now agree that the controls are hidden by default (iOS / React Native / Flutter state it explicitly; JavaScript says it in prose: "By default, the transcription button … is hidden"). That's exactly the kind of default-value contradiction that's worth catching, and it's now aligned. ✅ Still holding from the earlier review
Ready to merge. 🚀 🤖 Automated docs review — re-check after new commits. |
jitvarpatil
left a comment
There was a problem hiding this comment.
Re-review — ✅ Approve
My previous approvals were auto-dismissed by the new commits, so re-reviewing on head 07824e8.
✅ The new commit is a correctness fix, and it's consistent
docs(android): update transcription control defaults flips the Android story from "shown by default" → "hidden by default", and it's applied coherently everywhere:
- Prose: "both transcription controls live in the control panel's More menu and are hidden by default"
- All examples updated
hideTranscriptionButton(true)→(false)/hideClosedCaptionButton(true)→(false), now framed as "to show it" rather than "to hide it" - The
hidedefault columns updated totrue - The nuance is preserved: even with
hideClosedCaptionButton(false), the captions item only appears once transcription is running.
Cross-platform consistency confirmed — all 5 platforms now agree that the controls are hidden by default (iOS / React Native / Flutter state it explicitly; JavaScript says it in prose: "By default, the transcription button … is hidden"). That's exactly the kind of default-value contradiction that's worth catching, and it's now aligned.
✅ Still holding from the earlier review
- API verified against the published
@cometchat/calls-sdk-javascript@5.0.5(actual tarballdist/index.d.ts):startTranscription(),stopTranscription(),TranscriptRequestBuilder,autoStartTranscription,hideTranscriptionButton,hideClosedCaptionButton,setHasTranscriptions(),getTranscriptions(),getTranscriptURL/transcriptUrl— all ship today. - All 5
calls/{platform}/transcriptionpages wired into nav; 0 nav breaks, 0 new broken links, redirects +0; no placeholders across 2,700+ lines.
Ready to merge. 🚀
🤖 Automated docs review — re-check after new commits.
Documents call transcription and closed captions for CometChat Calls SDK v5 across all five platforms — JavaScript, React Native, iOS, Android and Flutter.
New pages —
calls/{javascript,react-native,ios,android,flutter}/transcription.mdx, each covering how transcription and closed captions relate, starting/stopping transcription (auto-start and manual), the caption listeners and events, supported caption languages, retrieving stored transcripts withTranscriptRequestBuilder, and the relevant UI/settings toggles. Each page is added to the platform's Calls sidebar indocs.json.Updated pages
actions.mdx(all 5) — added the Start/Stop Transcription actions.session-settings.mdx(all 5) — addedautoStartTranscription,captionLanguage,hideTranscriptionButtonandhideClosedCaptionButton, including the complete-settings examples.call-logs.mdx(JS, React Native, iOS, Flutter) — documented filtering call logs by transcript availability and reading transcripts off a call log.overview.mdx(Android, React Native) — added a Transcription feature card.setup.mdx(all 5) +flutter/migration-guide-v5.mdx— bumped the install snippets to the SDK versions that ship transcription.SDK version availability — the feature landed in a different patch per platform, so every transcription page, action and setting is annotated with the version it requires: iOS/Android
5.0.4, JavaScript/React Native5.0.5, Flutter5.0.6.Also corrected —
calls/ios/call-logs.mdxdocumented aCallLogsRequestBuilderAPI that does not exist in the SDK. Rewritten against the realCallLogsBuilderAPI (Swiftset(limit:)-style setters, typedSessionType/CallStatus/CallCategory/CallDirectionenums, and the correct Objective-CsetWithLimit:spellings and initializer).Related Issue(s)
None.
Type of Change
Checklist
Additional Information
Transcription is a gated feature, so every page carries a callout that it must be enabled for the app before the APIs do anything.
Captions are derived from a running transcription: toggling captions on without an active transcription renders nothing. That dependency is called out on each transcription page and in the
hideClosedCaptionButtonsetting, since it is the most likely source of "captions do nothing" reports.The 27 internal doc links added by this PR were verified to resolve to existing pages.
Screenshots (if applicable)
Rendered on the Mintlify preview deployment: