docs(calls): add transcription and closed captions across all platforms - #487

Merged
ketanyekale merged 12 commits into
mainfrom
docs/calls-transcription
Sep 2, 2026
Merged

docs(calls): add transcription and closed captions across all platforms#487
ketanyekale merged 12 commits into
mainfrom
docs/calls-transcription

Conversation

@honey-cometchat

@honey-cometchathoney-cometchat commented Aug 31, 2026

Copy link
Copy Markdown
Contributor

Documents call transcription and closed captions for CometChat Calls SDK v5 across all five platforms — JavaScript, React Native, iOS, Android and Flutter.

New pagescalls/{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 with TranscriptRequestBuilder, and the relevant UI/settings toggles. Each page is added to the platform's Calls sidebar in docs.json.

Updated pages

  • actions.mdx (all 5) — added the Start/Stop Transcription actions.
  • session-settings.mdx (all 5) — added autoStartTranscription, captionLanguage, hideTranscriptionButton and hideClosedCaptionButton, 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 Native 5.0.5, Flutter 5.0.6.

Also correctedcalls/ios/call-logs.mdx documented a CallLogsRequestBuilder API that does not exist in the SDK. Rewritten against the real CallLogsBuilder API (Swift set(limit:)-style setters, typed SessionType/CallStatus/CallCategory/CallDirection enums, and the correct Objective-C setWithLimit: spellings and initializer).

Related Issue(s)

None.

Type of Change

  • Documentation correction/update
  • New documentation
  • Improvement to existing documentation
  • Typo fix
  • Other (please specify)

Checklist

  • I have read the CONTRIBUTING document
  • My branch name follows the naming convention
  • My changes follow the documentation style guide
  • I have checked for spelling and grammar errors
  • All links in my changes are valid and working
  • My changes are accurately described in this pull request

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 hideClosedCaptionButton setting, 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:

honey-cometchatand others added 9 commits August 30, 2026 13:31
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>
@mintlify

mintlifyBot commented Aug 31, 2026

Copy link
Copy Markdown

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

ProjectStatusPreviewUpdated (UTC)
cometchat🟢 ReadyView PreviewAug 31, 2026, 7:20 AM

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

@honey-cometchathoney-cometchat changed the title docs(calls/javascript): add transcription and closed captionsdocs(calls): add transcription and closed captions across all platformsAug 31, 2026
jitvarpatil
jitvarpatil previously approved these changes Aug 31, 2026

@jitvarpatiljitvarpatil left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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 +0 delta). No 404 risk.
  • Chained 404s: 0.
  • Nav integrity: the 5 new docs.json entries (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 (all sdk_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)

  1. Property-vs-getter split within a page.TranscriptRequestBuilder.fetchNext() results are documented as plain properties (tid, transcriptUrl, metaData…), while callLog.getTranscriptions() results use getters (getTid(), getTranscriptURL()…) — including a casing flip (transcriptUrl vs getTranscriptURL()). Consistent across JS/Android/RN and plausibly real (raw JSON vs model instances), but worth a one-line confirm it matches the shipped SDK.
  2. iOS call-logs builder signatures changed. The rewrite renamed the documented builder methods from v4-style setLimit(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
@jitvarpatil

Copy link
Copy Markdown
Contributor

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:

DocumentedIn 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}/transcription pages are wired into docs.json nav; 0 nav breaks, redirects +0. (The calls/ionic/overview orphan 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
jitvarpatil previously approved these changes Sep 2, 2026

@jitvarpatiljitvarpatil left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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:

DocumentedIn 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}/transcription pages are wired into docs.json nav; 0 nav breaks, redirects +0. (The calls/ionic/overview orphan 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).

@ashfaqcometchatashfaqcometchat left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reviewed the Android and Flutter pages against calls-coremaster-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.

Comment threadcalls/android/session-settings.mdx Outdated
Comment threadcalls/android/session-settings.mdx Outdated
Comment threadcalls/android/transcription.mdx Outdated
Comment threadcalls/android/transcription.mdx Outdated
Comment threadcalls/android/transcription.mdx
Comment threadcalls/flutter/transcription.mdx
Comment threadcalls/flutter/transcription.mdx
Comment threadcalls/flutter/transcription.mdx
Comment threadcalls/flutter/actions.mdx
Comment threadcalls/flutter/session-settings.mdx
- Document transcription and caption controls as hidden by default
- Show how to enable both controls
@jitvarpatil

Copy link
Copy Markdown
Contributor

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 hide default columns updated to true
  • 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 tarball dist/index.d.ts): startTranscription(), stopTranscription(), TranscriptRequestBuilder, autoStartTranscription, hideTranscriptionButton, hideClosedCaptionButton, setHasTranscriptions(), getTranscriptions(), getTranscriptURL / transcriptUrl — all ship today.
  • All 5 calls/{platform}/transcription pages 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.

@jitvarpatiljitvarpatil left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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 hide default columns updated to true
  • 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 tarball dist/index.d.ts): startTranscription(), stopTranscription(), TranscriptRequestBuilder, autoStartTranscription, hideTranscriptionButton, hideClosedCaptionButton, setHasTranscriptions(), getTranscriptions(), getTranscriptURL / transcriptUrl — all ship today.
  • All 5 calls/{platform}/transcription pages 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.

@ketanyekale
ketanyekale merged commit 0cefdba into mainSep 2, 2026
5 checks passed
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

4 participants

@honey-cometchat@jitvarpatil@ashfaqcometchat@ketanyekale
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

docs(calls): add transcription and closed captions across all platforms - #487

Merged
ketanyekale merged 12 commits into
mainfrom
docs/calls-transcription
Sep 2, 2026
Merged

docs(calls): add transcription and closed captions across all platforms#487
ketanyekale merged 12 commits into
mainfrom
docs/calls-transcription

Conversation

@honey-cometchat

@honey-cometchathoney-cometchat commented Aug 31, 2026

Copy link
Copy Markdown
Contributor

Documents call transcription and closed captions for CometChat Calls SDK v5 across all five platforms — JavaScript, React Native, iOS, Android and Flutter.

New pagescalls/{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 with TranscriptRequestBuilder, and the relevant UI/settings toggles. Each page is added to the platform's Calls sidebar in docs.json.

Updated pages

  • actions.mdx (all 5) — added the Start/Stop Transcription actions.
  • session-settings.mdx (all 5) — added autoStartTranscription, captionLanguage, hideTranscriptionButton and hideClosedCaptionButton, 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 Native 5.0.5, Flutter 5.0.6.

Also correctedcalls/ios/call-logs.mdx documented a CallLogsRequestBuilder API that does not exist in the SDK. Rewritten against the real CallLogsBuilder API (Swift set(limit:)-style setters, typed SessionType/CallStatus/CallCategory/CallDirection enums, and the correct Objective-C setWithLimit: spellings and initializer).

Related Issue(s)

None.

Type of Change

  • Documentation correction/update
  • New documentation
  • Improvement to existing documentation
  • Typo fix
  • Other (please specify)

Checklist

  • I have read the CONTRIBUTING document
  • My branch name follows the naming convention
  • My changes follow the documentation style guide
  • I have checked for spelling and grammar errors
  • All links in my changes are valid and working
  • My changes are accurately described in this pull request

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 hideClosedCaptionButton setting, 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:

honey-cometchatand others added 9 commits August 30, 2026 13:31
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>
@mintlify

mintlifyBot commented Aug 31, 2026

Copy link
Copy Markdown

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

ProjectStatusPreviewUpdated (UTC)
cometchat🟢 ReadyView PreviewAug 31, 2026, 7:20 AM

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

@honey-cometchathoney-cometchat changed the title docs(calls/javascript): add transcription and closed captionsdocs(calls): add transcription and closed captions across all platformsAug 31, 2026
jitvarpatil
jitvarpatil previously approved these changes Aug 31, 2026

@jitvarpatiljitvarpatil left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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 +0 delta). No 404 risk.
  • Chained 404s: 0.
  • Nav integrity: the 5 new docs.json entries (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 (all sdk_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)

  1. Property-vs-getter split within a page.TranscriptRequestBuilder.fetchNext() results are documented as plain properties (tid, transcriptUrl, metaData…), while callLog.getTranscriptions() results use getters (getTid(), getTranscriptURL()…) — including a casing flip (transcriptUrl vs getTranscriptURL()). Consistent across JS/Android/RN and plausibly real (raw JSON vs model instances), but worth a one-line confirm it matches the shipped SDK.
  2. iOS call-logs builder signatures changed. The rewrite renamed the documented builder methods from v4-style setLimit(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
@jitvarpatil

Copy link
Copy Markdown
Contributor

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:

DocumentedIn 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}/transcription pages are wired into docs.json nav; 0 nav breaks, redirects +0. (The calls/ionic/overview orphan 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
jitvarpatil previously approved these changes Sep 2, 2026

@jitvarpatiljitvarpatil left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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:

DocumentedIn 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}/transcription pages are wired into docs.json nav; 0 nav breaks, redirects +0. (The calls/ionic/overview orphan 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).

@ashfaqcometchatashfaqcometchat left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reviewed the Android and Flutter pages against calls-coremaster-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.

Comment threadcalls/android/session-settings.mdx Outdated
Comment threadcalls/android/session-settings.mdx Outdated
Comment threadcalls/android/transcription.mdx Outdated
Comment threadcalls/android/transcription.mdx Outdated
Comment threadcalls/android/transcription.mdx
Comment threadcalls/flutter/transcription.mdx
Comment threadcalls/flutter/transcription.mdx
Comment threadcalls/flutter/transcription.mdx
Comment threadcalls/flutter/actions.mdx
Comment threadcalls/flutter/session-settings.mdx
- Document transcription and caption controls as hidden by default
- Show how to enable both controls
@jitvarpatil

Copy link
Copy Markdown
Contributor

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 hide default columns updated to true
  • 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 tarball dist/index.d.ts): startTranscription(), stopTranscription(), TranscriptRequestBuilder, autoStartTranscription, hideTranscriptionButton, hideClosedCaptionButton, setHasTranscriptions(), getTranscriptions(), getTranscriptURL / transcriptUrl — all ship today.
  • All 5 calls/{platform}/transcription pages 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.

@jitvarpatiljitvarpatil left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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 hide default columns updated to true
  • 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 tarball dist/index.d.ts): startTranscription(), stopTranscription(), TranscriptRequestBuilder, autoStartTranscription, hideTranscriptionButton, hideClosedCaptionButton, setHasTranscriptions(), getTranscriptions(), getTranscriptURL / transcriptUrl — all ship today.
  • All 5 calls/{platform}/transcription pages 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.

@ketanyekale
ketanyekale merged commit 0cefdba into mainSep 2, 2026
5 checks passed
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

4 participants

@honey-cometchat@jitvarpatil@ashfaqcometchat@ketanyekale
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

docs(calls): add transcription and closed captions across all platforms - #487

Merged
ketanyekale merged 12 commits into
mainfrom
docs/calls-transcription
Sep 2, 2026
Merged

docs(calls): add transcription and closed captions across all platforms#487
ketanyekale merged 12 commits into
mainfrom
docs/calls-transcription

Conversation

@honey-cometchat

@honey-cometchathoney-cometchat commented Aug 31, 2026

Copy link
Copy Markdown
Contributor

Documents call transcription and closed captions for CometChat Calls SDK v5 across all five platforms — JavaScript, React Native, iOS, Android and Flutter.

New pagescalls/{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 with TranscriptRequestBuilder, and the relevant UI/settings toggles. Each page is added to the platform's Calls sidebar in docs.json.

Updated pages

  • actions.mdx (all 5) — added the Start/Stop Transcription actions.
  • session-settings.mdx (all 5) — added autoStartTranscription, captionLanguage, hideTranscriptionButton and hideClosedCaptionButton, 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 Native 5.0.5, Flutter 5.0.6.

Also correctedcalls/ios/call-logs.mdx documented a CallLogsRequestBuilder API that does not exist in the SDK. Rewritten against the real CallLogsBuilder API (Swift set(limit:)-style setters, typed SessionType/CallStatus/CallCategory/CallDirection enums, and the correct Objective-C setWithLimit: spellings and initializer).

Related Issue(s)

None.

Type of Change

  • Documentation correction/update
  • New documentation
  • Improvement to existing documentation
  • Typo fix
  • Other (please specify)

Checklist

  • I have read the CONTRIBUTING document
  • My branch name follows the naming convention
  • My changes follow the documentation style guide
  • I have checked for spelling and grammar errors
  • All links in my changes are valid and working
  • My changes are accurately described in this pull request

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 hideClosedCaptionButton setting, 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:

honey-cometchatand others added 9 commits August 30, 2026 13:31
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>
@mintlify

mintlifyBot commented Aug 31, 2026

Copy link
Copy Markdown

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

ProjectStatusPreviewUpdated (UTC)
cometchat🟢 ReadyView PreviewAug 31, 2026, 7:20 AM

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

@honey-cometchathoney-cometchat changed the title docs(calls/javascript): add transcription and closed captionsdocs(calls): add transcription and closed captions across all platformsAug 31, 2026
jitvarpatil
jitvarpatil previously approved these changes Aug 31, 2026

@jitvarpatiljitvarpatil left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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 +0 delta). No 404 risk.
  • Chained 404s: 0.
  • Nav integrity: the 5 new docs.json entries (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 (all sdk_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)

  1. Property-vs-getter split within a page.TranscriptRequestBuilder.fetchNext() results are documented as plain properties (tid, transcriptUrl, metaData…), while callLog.getTranscriptions() results use getters (getTid(), getTranscriptURL()…) — including a casing flip (transcriptUrl vs getTranscriptURL()). Consistent across JS/Android/RN and plausibly real (raw JSON vs model instances), but worth a one-line confirm it matches the shipped SDK.
  2. iOS call-logs builder signatures changed. The rewrite renamed the documented builder methods from v4-style setLimit(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
@jitvarpatil

Copy link
Copy Markdown
Contributor

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:

DocumentedIn 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}/transcription pages are wired into docs.json nav; 0 nav breaks, redirects +0. (The calls/ionic/overview orphan 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
jitvarpatil previously approved these changes Sep 2, 2026

@jitvarpatiljitvarpatil left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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:

DocumentedIn 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}/transcription pages are wired into docs.json nav; 0 nav breaks, redirects +0. (The calls/ionic/overview orphan 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).

@ashfaqcometchatashfaqcometchat left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reviewed the Android and Flutter pages against calls-coremaster-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.

Comment threadcalls/android/session-settings.mdx Outdated
Comment threadcalls/android/session-settings.mdx Outdated
Comment threadcalls/android/transcription.mdx Outdated
Comment threadcalls/android/transcription.mdx Outdated
Comment threadcalls/android/transcription.mdx
Comment threadcalls/flutter/transcription.mdx
Comment threadcalls/flutter/transcription.mdx
Comment threadcalls/flutter/transcription.mdx
Comment threadcalls/flutter/actions.mdx
Comment threadcalls/flutter/session-settings.mdx
- Document transcription and caption controls as hidden by default
- Show how to enable both controls
@jitvarpatil

Copy link
Copy Markdown
Contributor

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 hide default columns updated to true
  • 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 tarball dist/index.d.ts): startTranscription(), stopTranscription(), TranscriptRequestBuilder, autoStartTranscription, hideTranscriptionButton, hideClosedCaptionButton, setHasTranscriptions(), getTranscriptions(), getTranscriptURL / transcriptUrl — all ship today.
  • All 5 calls/{platform}/transcription pages 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.

@jitvarpatiljitvarpatil left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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 hide default columns updated to true
  • 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 tarball dist/index.d.ts): startTranscription(), stopTranscription(), TranscriptRequestBuilder, autoStartTranscription, hideTranscriptionButton, hideClosedCaptionButton, setHasTranscriptions(), getTranscriptions(), getTranscriptURL / transcriptUrl — all ship today.
  • All 5 calls/{platform}/transcription pages 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.

@ketanyekale
ketanyekale merged commit 0cefdba into mainSep 2, 2026
5 checks passed
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

4 participants

@honey-cometchat@jitvarpatil@ashfaqcometchat@ketanyekale
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

docs(calls): add transcription and closed captions across all platforms - #487

Merged
ketanyekale merged 12 commits into
mainfrom
docs/calls-transcription
Sep 2, 2026
Merged

docs(calls): add transcription and closed captions across all platforms#487
ketanyekale merged 12 commits into
mainfrom
docs/calls-transcription

Conversation

@honey-cometchat

@honey-cometchathoney-cometchat commented Aug 31, 2026

Copy link
Copy Markdown
Contributor

Documents call transcription and closed captions for CometChat Calls SDK v5 across all five platforms — JavaScript, React Native, iOS, Android and Flutter.

New pagescalls/{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 with TranscriptRequestBuilder, and the relevant UI/settings toggles. Each page is added to the platform's Calls sidebar in docs.json.

Updated pages

  • actions.mdx (all 5) — added the Start/Stop Transcription actions.
  • session-settings.mdx (all 5) — added autoStartTranscription, captionLanguage, hideTranscriptionButton and hideClosedCaptionButton, 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 Native 5.0.5, Flutter 5.0.6.

Also correctedcalls/ios/call-logs.mdx documented a CallLogsRequestBuilder API that does not exist in the SDK. Rewritten against the real CallLogsBuilder API (Swift set(limit:)-style setters, typed SessionType/CallStatus/CallCategory/CallDirection enums, and the correct Objective-C setWithLimit: spellings and initializer).

Related Issue(s)

None.

Type of Change

  • Documentation correction/update
  • New documentation
  • Improvement to existing documentation
  • Typo fix
  • Other (please specify)

Checklist

  • I have read the CONTRIBUTING document
  • My branch name follows the naming convention
  • My changes follow the documentation style guide
  • I have checked for spelling and grammar errors
  • All links in my changes are valid and working
  • My changes are accurately described in this pull request

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 hideClosedCaptionButton setting, 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:

honey-cometchatand others added 9 commits August 30, 2026 13:31
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>
@mintlify

mintlifyBot commented Aug 31, 2026

Copy link
Copy Markdown

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

ProjectStatusPreviewUpdated (UTC)
cometchat🟢 ReadyView PreviewAug 31, 2026, 7:20 AM

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

@honey-cometchathoney-cometchat changed the title docs(calls/javascript): add transcription and closed captionsdocs(calls): add transcription and closed captions across all platformsAug 31, 2026
jitvarpatil
jitvarpatil previously approved these changes Aug 31, 2026

@jitvarpatiljitvarpatil left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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 +0 delta). No 404 risk.
  • Chained 404s: 0.
  • Nav integrity: the 5 new docs.json entries (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 (all sdk_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)

  1. Property-vs-getter split within a page.TranscriptRequestBuilder.fetchNext() results are documented as plain properties (tid, transcriptUrl, metaData…), while callLog.getTranscriptions() results use getters (getTid(), getTranscriptURL()…) — including a casing flip (transcriptUrl vs getTranscriptURL()). Consistent across JS/Android/RN and plausibly real (raw JSON vs model instances), but worth a one-line confirm it matches the shipped SDK.
  2. iOS call-logs builder signatures changed. The rewrite renamed the documented builder methods from v4-style setLimit(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
@jitvarpatil

Copy link
Copy Markdown
Contributor

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:

DocumentedIn 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}/transcription pages are wired into docs.json nav; 0 nav breaks, redirects +0. (The calls/ionic/overview orphan 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
jitvarpatil previously approved these changes Sep 2, 2026

@jitvarpatiljitvarpatil left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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:

DocumentedIn 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}/transcription pages are wired into docs.json nav; 0 nav breaks, redirects +0. (The calls/ionic/overview orphan 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).

@ashfaqcometchatashfaqcometchat left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reviewed the Android and Flutter pages against calls-coremaster-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.

Comment threadcalls/android/session-settings.mdx Outdated
Comment threadcalls/android/session-settings.mdx Outdated
Comment threadcalls/android/transcription.mdx Outdated
Comment threadcalls/android/transcription.mdx Outdated
Comment threadcalls/android/transcription.mdx
Comment threadcalls/flutter/transcription.mdx
Comment threadcalls/flutter/transcription.mdx
Comment threadcalls/flutter/transcription.mdx
Comment threadcalls/flutter/actions.mdx
Comment threadcalls/flutter/session-settings.mdx
- Document transcription and caption controls as hidden by default
- Show how to enable both controls
@jitvarpatil

Copy link
Copy Markdown
Contributor

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 hide default columns updated to true
  • 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 tarball dist/index.d.ts): startTranscription(), stopTranscription(), TranscriptRequestBuilder, autoStartTranscription, hideTranscriptionButton, hideClosedCaptionButton, setHasTranscriptions(), getTranscriptions(), getTranscriptURL / transcriptUrl — all ship today.
  • All 5 calls/{platform}/transcription pages 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.

@jitvarpatiljitvarpatil left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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 hide default columns updated to true
  • 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 tarball dist/index.d.ts): startTranscription(), stopTranscription(), TranscriptRequestBuilder, autoStartTranscription, hideTranscriptionButton, hideClosedCaptionButton, setHasTranscriptions(), getTranscriptions(), getTranscriptURL / transcriptUrl — all ship today.
  • All 5 calls/{platform}/transcription pages 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.

@ketanyekale
ketanyekale merged commit 0cefdba into mainSep 2, 2026
5 checks passed
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

4 participants

@honey-cometchat@jitvarpatil@ashfaqcometchat@ketanyekale
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

docs(calls): add transcription and closed captions across all platforms - #487

Merged
ketanyekale merged 12 commits into
mainfrom
docs/calls-transcription
Sep 2, 2026
Merged

docs(calls): add transcription and closed captions across all platforms#487
ketanyekale merged 12 commits into
mainfrom
docs/calls-transcription

Conversation

@honey-cometchat

@honey-cometchathoney-cometchat commented Aug 31, 2026

Copy link
Copy Markdown
Contributor

Documents call transcription and closed captions for CometChat Calls SDK v5 across all five platforms — JavaScript, React Native, iOS, Android and Flutter.

New pagescalls/{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 with TranscriptRequestBuilder, and the relevant UI/settings toggles. Each page is added to the platform's Calls sidebar in docs.json.

Updated pages

  • actions.mdx (all 5) — added the Start/Stop Transcription actions.
  • session-settings.mdx (all 5) — added autoStartTranscription, captionLanguage, hideTranscriptionButton and hideClosedCaptionButton, 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 Native 5.0.5, Flutter 5.0.6.

Also correctedcalls/ios/call-logs.mdx documented a CallLogsRequestBuilder API that does not exist in the SDK. Rewritten against the real CallLogsBuilder API (Swift set(limit:)-style setters, typed SessionType/CallStatus/CallCategory/CallDirection enums, and the correct Objective-C setWithLimit: spellings and initializer).

Related Issue(s)

None.

Type of Change

  • Documentation correction/update
  • New documentation
  • Improvement to existing documentation
  • Typo fix
  • Other (please specify)

Checklist

  • I have read the CONTRIBUTING document
  • My branch name follows the naming convention
  • My changes follow the documentation style guide
  • I have checked for spelling and grammar errors
  • All links in my changes are valid and working
  • My changes are accurately described in this pull request

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 hideClosedCaptionButton setting, 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:

honey-cometchatand others added 9 commits August 30, 2026 13:31
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>
@mintlify

mintlifyBot commented Aug 31, 2026

Copy link
Copy Markdown

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

ProjectStatusPreviewUpdated (UTC)
cometchat🟢 ReadyView PreviewAug 31, 2026, 7:20 AM

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

@honey-cometchathoney-cometchat changed the title docs(calls/javascript): add transcription and closed captionsdocs(calls): add transcription and closed captions across all platformsAug 31, 2026
jitvarpatil
jitvarpatil previously approved these changes Aug 31, 2026

@jitvarpatiljitvarpatil left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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 +0 delta). No 404 risk.
  • Chained 404s: 0.
  • Nav integrity: the 5 new docs.json entries (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 (all sdk_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)

  1. Property-vs-getter split within a page.TranscriptRequestBuilder.fetchNext() results are documented as plain properties (tid, transcriptUrl, metaData…), while callLog.getTranscriptions() results use getters (getTid(), getTranscriptURL()…) — including a casing flip (transcriptUrl vs getTranscriptURL()). Consistent across JS/Android/RN and plausibly real (raw JSON vs model instances), but worth a one-line confirm it matches the shipped SDK.
  2. iOS call-logs builder signatures changed. The rewrite renamed the documented builder methods from v4-style setLimit(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
@jitvarpatil

Copy link
Copy Markdown
Contributor

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:

DocumentedIn 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}/transcription pages are wired into docs.json nav; 0 nav breaks, redirects +0. (The calls/ionic/overview orphan 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
jitvarpatil previously approved these changes Sep 2, 2026

@jitvarpatiljitvarpatil left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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:

DocumentedIn 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}/transcription pages are wired into docs.json nav; 0 nav breaks, redirects +0. (The calls/ionic/overview orphan 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).

@ashfaqcometchatashfaqcometchat left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reviewed the Android and Flutter pages against calls-coremaster-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.

Comment threadcalls/android/session-settings.mdx Outdated
Comment threadcalls/android/session-settings.mdx Outdated
Comment threadcalls/android/transcription.mdx Outdated
Comment threadcalls/android/transcription.mdx Outdated
Comment threadcalls/android/transcription.mdx
Comment threadcalls/flutter/transcription.mdx
Comment threadcalls/flutter/transcription.mdx
Comment threadcalls/flutter/transcription.mdx
Comment threadcalls/flutter/actions.mdx
Comment threadcalls/flutter/session-settings.mdx
- Document transcription and caption controls as hidden by default
- Show how to enable both controls
@jitvarpatil

Copy link
Copy Markdown
Contributor

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 hide default columns updated to true
  • 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 tarball dist/index.d.ts): startTranscription(), stopTranscription(), TranscriptRequestBuilder, autoStartTranscription, hideTranscriptionButton, hideClosedCaptionButton, setHasTranscriptions(), getTranscriptions(), getTranscriptURL / transcriptUrl — all ship today.
  • All 5 calls/{platform}/transcription pages 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.

@jitvarpatiljitvarpatil left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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 hide default columns updated to true
  • 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 tarball dist/index.d.ts): startTranscription(), stopTranscription(), TranscriptRequestBuilder, autoStartTranscription, hideTranscriptionButton, hideClosedCaptionButton, setHasTranscriptions(), getTranscriptions(), getTranscriptURL / transcriptUrl — all ship today.
  • All 5 calls/{platform}/transcription pages 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.

@ketanyekale
ketanyekale merged commit 0cefdba into mainSep 2, 2026
5 checks passed
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

4 participants

@honey-cometchat@jitvarpatil@ashfaqcometchat@ketanyekale
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

docs(calls): add transcription and closed captions across all platforms - #487

Merged
ketanyekale merged 12 commits into
mainfrom
docs/calls-transcription
Sep 2, 2026
Merged

docs(calls): add transcription and closed captions across all platforms#487
ketanyekale merged 12 commits into
mainfrom
docs/calls-transcription

Conversation

@honey-cometchat

@honey-cometchathoney-cometchat commented Aug 31, 2026

Copy link
Copy Markdown
Contributor

Documents call transcription and closed captions for CometChat Calls SDK v5 across all five platforms — JavaScript, React Native, iOS, Android and Flutter.

New pagescalls/{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 with TranscriptRequestBuilder, and the relevant UI/settings toggles. Each page is added to the platform's Calls sidebar in docs.json.

Updated pages

  • actions.mdx (all 5) — added the Start/Stop Transcription actions.
  • session-settings.mdx (all 5) — added autoStartTranscription, captionLanguage, hideTranscriptionButton and hideClosedCaptionButton, 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 Native 5.0.5, Flutter 5.0.6.

Also correctedcalls/ios/call-logs.mdx documented a CallLogsRequestBuilder API that does not exist in the SDK. Rewritten against the real CallLogsBuilder API (Swift set(limit:)-style setters, typed SessionType/CallStatus/CallCategory/CallDirection enums, and the correct Objective-C setWithLimit: spellings and initializer).

Related Issue(s)

None.

Type of Change

  • Documentation correction/update
  • New documentation
  • Improvement to existing documentation
  • Typo fix
  • Other (please specify)

Checklist

  • I have read the CONTRIBUTING document
  • My branch name follows the naming convention
  • My changes follow the documentation style guide
  • I have checked for spelling and grammar errors
  • All links in my changes are valid and working
  • My changes are accurately described in this pull request

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 hideClosedCaptionButton setting, 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:

honey-cometchatand others added 9 commits August 30, 2026 13:31
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>
@mintlify

mintlifyBot commented Aug 31, 2026

Copy link
Copy Markdown

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

ProjectStatusPreviewUpdated (UTC)
cometchat🟢 ReadyView PreviewAug 31, 2026, 7:20 AM

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

@honey-cometchathoney-cometchat changed the title docs(calls/javascript): add transcription and closed captionsdocs(calls): add transcription and closed captions across all platformsAug 31, 2026
jitvarpatil
jitvarpatil previously approved these changes Aug 31, 2026

@jitvarpatiljitvarpatil left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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 +0 delta). No 404 risk.
  • Chained 404s: 0.
  • Nav integrity: the 5 new docs.json entries (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 (all sdk_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)

  1. Property-vs-getter split within a page.TranscriptRequestBuilder.fetchNext() results are documented as plain properties (tid, transcriptUrl, metaData…), while callLog.getTranscriptions() results use getters (getTid(), getTranscriptURL()…) — including a casing flip (transcriptUrl vs getTranscriptURL()). Consistent across JS/Android/RN and plausibly real (raw JSON vs model instances), but worth a one-line confirm it matches the shipped SDK.
  2. iOS call-logs builder signatures changed. The rewrite renamed the documented builder methods from v4-style setLimit(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
@jitvarpatil

Copy link
Copy Markdown
Contributor

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:

DocumentedIn 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}/transcription pages are wired into docs.json nav; 0 nav breaks, redirects +0. (The calls/ionic/overview orphan 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
jitvarpatil previously approved these changes Sep 2, 2026

@jitvarpatiljitvarpatil left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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:

DocumentedIn 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}/transcription pages are wired into docs.json nav; 0 nav breaks, redirects +0. (The calls/ionic/overview orphan 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).

@ashfaqcometchatashfaqcometchat left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reviewed the Android and Flutter pages against calls-coremaster-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.

Comment threadcalls/android/session-settings.mdx Outdated
Comment threadcalls/android/session-settings.mdx Outdated
Comment threadcalls/android/transcription.mdx Outdated
Comment threadcalls/android/transcription.mdx Outdated
Comment threadcalls/android/transcription.mdx
Comment threadcalls/flutter/transcription.mdx
Comment threadcalls/flutter/transcription.mdx
Comment threadcalls/flutter/transcription.mdx
Comment threadcalls/flutter/actions.mdx
Comment threadcalls/flutter/session-settings.mdx
- Document transcription and caption controls as hidden by default
- Show how to enable both controls
@jitvarpatil

Copy link
Copy Markdown
Contributor

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 hide default columns updated to true
  • 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 tarball dist/index.d.ts): startTranscription(), stopTranscription(), TranscriptRequestBuilder, autoStartTranscription, hideTranscriptionButton, hideClosedCaptionButton, setHasTranscriptions(), getTranscriptions(), getTranscriptURL / transcriptUrl — all ship today.
  • All 5 calls/{platform}/transcription pages 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.

@jitvarpatiljitvarpatil left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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 hide default columns updated to true
  • 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 tarball dist/index.d.ts): startTranscription(), stopTranscription(), TranscriptRequestBuilder, autoStartTranscription, hideTranscriptionButton, hideClosedCaptionButton, setHasTranscriptions(), getTranscriptions(), getTranscriptURL / transcriptUrl — all ship today.
  • All 5 calls/{platform}/transcription pages 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.

@ketanyekale
ketanyekale merged commit 0cefdba into mainSep 2, 2026
5 checks passed
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

4 participants

@honey-cometchat@jitvarpatil@ashfaqcometchat@ketanyekale
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

docs(calls): add transcription and closed captions across all platforms - #487

Merged
ketanyekale merged 12 commits into
mainfrom
docs/calls-transcription
Sep 2, 2026
Merged

docs(calls): add transcription and closed captions across all platforms#487
ketanyekale merged 12 commits into
mainfrom
docs/calls-transcription

Conversation

@honey-cometchat

@honey-cometchathoney-cometchat commented Aug 31, 2026

Copy link
Copy Markdown
Contributor

Documents call transcription and closed captions for CometChat Calls SDK v5 across all five platforms — JavaScript, React Native, iOS, Android and Flutter.

New pagescalls/{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 with TranscriptRequestBuilder, and the relevant UI/settings toggles. Each page is added to the platform's Calls sidebar in docs.json.

Updated pages

  • actions.mdx (all 5) — added the Start/Stop Transcription actions.
  • session-settings.mdx (all 5) — added autoStartTranscription, captionLanguage, hideTranscriptionButton and hideClosedCaptionButton, 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 Native 5.0.5, Flutter 5.0.6.

Also correctedcalls/ios/call-logs.mdx documented a CallLogsRequestBuilder API that does not exist in the SDK. Rewritten against the real CallLogsBuilder API (Swift set(limit:)-style setters, typed SessionType/CallStatus/CallCategory/CallDirection enums, and the correct Objective-C setWithLimit: spellings and initializer).

Related Issue(s)

None.

Type of Change

  • Documentation correction/update
  • New documentation
  • Improvement to existing documentation
  • Typo fix
  • Other (please specify)

Checklist

  • I have read the CONTRIBUTING document
  • My branch name follows the naming convention
  • My changes follow the documentation style guide
  • I have checked for spelling and grammar errors
  • All links in my changes are valid and working
  • My changes are accurately described in this pull request

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 hideClosedCaptionButton setting, 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:

honey-cometchatand others added 9 commits August 30, 2026 13:31
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>
@mintlify

mintlifyBot commented Aug 31, 2026

Copy link
Copy Markdown

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

ProjectStatusPreviewUpdated (UTC)
cometchat🟢 ReadyView PreviewAug 31, 2026, 7:20 AM

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

@honey-cometchathoney-cometchat changed the title docs(calls/javascript): add transcription and closed captionsdocs(calls): add transcription and closed captions across all platformsAug 31, 2026
jitvarpatil
jitvarpatil previously approved these changes Aug 31, 2026

@jitvarpatiljitvarpatil left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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 +0 delta). No 404 risk.
  • Chained 404s: 0.
  • Nav integrity: the 5 new docs.json entries (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 (all sdk_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)

  1. Property-vs-getter split within a page.TranscriptRequestBuilder.fetchNext() results are documented as plain properties (tid, transcriptUrl, metaData…), while callLog.getTranscriptions() results use getters (getTid(), getTranscriptURL()…) — including a casing flip (transcriptUrl vs getTranscriptURL()). Consistent across JS/Android/RN and plausibly real (raw JSON vs model instances), but worth a one-line confirm it matches the shipped SDK.
  2. iOS call-logs builder signatures changed. The rewrite renamed the documented builder methods from v4-style setLimit(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
@jitvarpatil

Copy link
Copy Markdown
Contributor

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:

DocumentedIn 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}/transcription pages are wired into docs.json nav; 0 nav breaks, redirects +0. (The calls/ionic/overview orphan 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
jitvarpatil previously approved these changes Sep 2, 2026

@jitvarpatiljitvarpatil left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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:

DocumentedIn 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}/transcription pages are wired into docs.json nav; 0 nav breaks, redirects +0. (The calls/ionic/overview orphan 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).

@ashfaqcometchatashfaqcometchat left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reviewed the Android and Flutter pages against calls-coremaster-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.

Comment threadcalls/android/session-settings.mdx Outdated
Comment threadcalls/android/session-settings.mdx Outdated
Comment threadcalls/android/transcription.mdx Outdated
Comment threadcalls/android/transcription.mdx Outdated
Comment threadcalls/android/transcription.mdx
Comment threadcalls/flutter/transcription.mdx
Comment threadcalls/flutter/transcription.mdx
Comment threadcalls/flutter/transcription.mdx
Comment threadcalls/flutter/actions.mdx
Comment threadcalls/flutter/session-settings.mdx
- Document transcription and caption controls as hidden by default
- Show how to enable both controls
@jitvarpatil

Copy link
Copy Markdown
Contributor

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 hide default columns updated to true
  • 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 tarball dist/index.d.ts): startTranscription(), stopTranscription(), TranscriptRequestBuilder, autoStartTranscription, hideTranscriptionButton, hideClosedCaptionButton, setHasTranscriptions(), getTranscriptions(), getTranscriptURL / transcriptUrl — all ship today.
  • All 5 calls/{platform}/transcription pages 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.

@jitvarpatiljitvarpatil left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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 hide default columns updated to true
  • 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 tarball dist/index.d.ts): startTranscription(), stopTranscription(), TranscriptRequestBuilder, autoStartTranscription, hideTranscriptionButton, hideClosedCaptionButton, setHasTranscriptions(), getTranscriptions(), getTranscriptURL / transcriptUrl — all ship today.
  • All 5 calls/{platform}/transcription pages 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.

@ketanyekale
ketanyekale merged commit 0cefdba into mainSep 2, 2026
5 checks passed
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

4 participants

@honey-cometchat@jitvarpatil@ashfaqcometchat@ketanyekale
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

docs(calls): add transcription and closed captions across all platforms - #487

Merged
ketanyekale merged 12 commits into
mainfrom
docs/calls-transcription
Sep 2, 2026
Merged

docs(calls): add transcription and closed captions across all platforms#487
ketanyekale merged 12 commits into
mainfrom
docs/calls-transcription

Conversation

@honey-cometchat

@honey-cometchathoney-cometchat commented Aug 31, 2026

Copy link
Copy Markdown
Contributor

Documents call transcription and closed captions for CometChat Calls SDK v5 across all five platforms — JavaScript, React Native, iOS, Android and Flutter.

New pagescalls/{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 with TranscriptRequestBuilder, and the relevant UI/settings toggles. Each page is added to the platform's Calls sidebar in docs.json.

Updated pages

  • actions.mdx (all 5) — added the Start/Stop Transcription actions.
  • session-settings.mdx (all 5) — added autoStartTranscription, captionLanguage, hideTranscriptionButton and hideClosedCaptionButton, 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 Native 5.0.5, Flutter 5.0.6.

Also correctedcalls/ios/call-logs.mdx documented a CallLogsRequestBuilder API that does not exist in the SDK. Rewritten against the real CallLogsBuilder API (Swift set(limit:)-style setters, typed SessionType/CallStatus/CallCategory/CallDirection enums, and the correct Objective-C setWithLimit: spellings and initializer).

Related Issue(s)

None.

Type of Change

  • Documentation correction/update
  • New documentation
  • Improvement to existing documentation
  • Typo fix
  • Other (please specify)

Checklist

  • I have read the CONTRIBUTING document
  • My branch name follows the naming convention
  • My changes follow the documentation style guide
  • I have checked for spelling and grammar errors
  • All links in my changes are valid and working
  • My changes are accurately described in this pull request

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 hideClosedCaptionButton setting, 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:

honey-cometchatand others added 9 commits August 30, 2026 13:31
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>
@mintlify

mintlifyBot commented Aug 31, 2026

Copy link
Copy Markdown

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

ProjectStatusPreviewUpdated (UTC)
cometchat🟢 ReadyView PreviewAug 31, 2026, 7:20 AM

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

@honey-cometchathoney-cometchat changed the title docs(calls/javascript): add transcription and closed captionsdocs(calls): add transcription and closed captions across all platformsAug 31, 2026
jitvarpatil
jitvarpatil previously approved these changes Aug 31, 2026

@jitvarpatiljitvarpatil left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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 +0 delta). No 404 risk.
  • Chained 404s: 0.
  • Nav integrity: the 5 new docs.json entries (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 (all sdk_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)

  1. Property-vs-getter split within a page.TranscriptRequestBuilder.fetchNext() results are documented as plain properties (tid, transcriptUrl, metaData…), while callLog.getTranscriptions() results use getters (getTid(), getTranscriptURL()…) — including a casing flip (transcriptUrl vs getTranscriptURL()). Consistent across JS/Android/RN and plausibly real (raw JSON vs model instances), but worth a one-line confirm it matches the shipped SDK.
  2. iOS call-logs builder signatures changed. The rewrite renamed the documented builder methods from v4-style setLimit(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
@jitvarpatil

Copy link
Copy Markdown
Contributor

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:

DocumentedIn 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}/transcription pages are wired into docs.json nav; 0 nav breaks, redirects +0. (The calls/ionic/overview orphan 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
jitvarpatil previously approved these changes Sep 2, 2026

@jitvarpatiljitvarpatil left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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:

DocumentedIn 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}/transcription pages are wired into docs.json nav; 0 nav breaks, redirects +0. (The calls/ionic/overview orphan 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).

@ashfaqcometchatashfaqcometchat left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reviewed the Android and Flutter pages against calls-coremaster-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.

Comment threadcalls/android/session-settings.mdx Outdated
Comment threadcalls/android/session-settings.mdx Outdated
Comment threadcalls/android/transcription.mdx Outdated
Comment threadcalls/android/transcription.mdx Outdated
Comment threadcalls/android/transcription.mdx
Comment threadcalls/flutter/transcription.mdx
Comment threadcalls/flutter/transcription.mdx
Comment threadcalls/flutter/transcription.mdx
Comment threadcalls/flutter/actions.mdx
Comment threadcalls/flutter/session-settings.mdx
- Document transcription and caption controls as hidden by default
- Show how to enable both controls
@jitvarpatil

Copy link
Copy Markdown
Contributor

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 hide default columns updated to true
  • 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 tarball dist/index.d.ts): startTranscription(), stopTranscription(), TranscriptRequestBuilder, autoStartTranscription, hideTranscriptionButton, hideClosedCaptionButton, setHasTranscriptions(), getTranscriptions(), getTranscriptURL / transcriptUrl — all ship today.
  • All 5 calls/{platform}/transcription pages 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.

@jitvarpatiljitvarpatil left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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 hide default columns updated to true
  • 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 tarball dist/index.d.ts): startTranscription(), stopTranscription(), TranscriptRequestBuilder, autoStartTranscription, hideTranscriptionButton, hideClosedCaptionButton, setHasTranscriptions(), getTranscriptions(), getTranscriptURL / transcriptUrl — all ship today.
  • All 5 calls/{platform}/transcription pages 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.

@ketanyekale
ketanyekale merged commit 0cefdba into mainSep 2, 2026
5 checks passed
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

4 participants

@honey-cometchat@jitvarpatil@ashfaqcometchat@ketanyekale