Skip to content

Docs: Offline Support for JavaScript SDK - #588

Merged
ketanyekale merged 12 commits into
mainfrom
docs/offline-support-javascript-sdk
Nov 2, 2026
Merged

ketanyekale merged 12 commits into
mainfrom
docs/offline-support-javascript-sdk

Conversation

@raj-dubey1

Copy link
Copy Markdown
Contributor

Public docs for offline support in the JavaScript Chat SDK, documented as a GA release (SDK only). Companion to the Android PR #584; same 8-page structure, grounded in the JavaScript SDK's real public offline API (not an Android port) and cross-checked against Android release-v5-v5.1.0 and the offline conformance spec.

New "Offline Support" group (8 pages): overview, enable, cached-data, send, sync, media-caching, encryption, reference — plus the docs.json nav entry.

Scope is the new offline pages + nav; existing-page two-phase-listener updates are a separate follow-up. Link/snippet/JSON integrity validated; not yet rendered in Mintlify.

🤖 Generated with Claude Code

https://claude.ai/code/session_01XbguTw81eW7rnAGv6AksM8

New Offline Support group (8 pages) under JavaScript (after Messaging): enable,
cached-then-server reads, durable send outbox, reconnect sync, media caching,
cache encryption, and config/API reference. Documented as GA, grounded in the
JavaScript SDK's real public offline API and cross-checked against Android
release-v5-v5.1.0 and the conformance spec.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01XbguTw81eW7rnAGv6AksM8
@mintlify

mintlify Bot commented Oct 30, 2026 •

Copy link
Copy Markdown

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

Project Status Preview Updated
cometchat 🟢 Ready View Preview Nov 2, 2026, 10:48 AM

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

raj-dubey1 and others added 2 commits October 31, 2026 23:23
The SDK declares no minimum Electron or better-sqlite3-multiple-ciphers version and does not check that the main and renderer package versions match. Also drop the setStatus note from the reference.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01XbguTshd7eq8N2XxFabgLN
… a refused send

A refused or evicted send has no stored row, so retryMessage and discardLocalMessage reject with ERROR_OFFLINE_MESSAGE_NOT_FOUND.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01XbguTshd7eq8N2XxFabgLN
raj-dubey1 and others added 8 commits November 1, 2026 20:06
Single-item reads, listener-less calls, outbox loss on logout, isOfflineEnabled conditions. Remove the settings-object and server-switch sections as internal.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01XbguTshd7eq8N2XxFabgLN
Overlapping fetches, blocked users, one direction per reactions request, server-only filters, queued-not-failed wording, auto-send conditions, failure reasons, queue limits.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01XbguTshd7eq8N2XxFabgLN
…droid changes

Sync triggers and conversation removal, media budget, random key and reset counts, clamp rules, forceSyncNow, error codes. Drop debugTracing from the reference.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01XbguTshd7eq8N2XxFabgLN
…nd AI moderation pages

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01XbguTshd7eq8N2XxFabgLN
…real-time listeners page

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01XbguTshd7eq8N2XxFabgLN
…nd reactions pages

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01XbguTshd7eq8N2XxFabgLN
… banned members, blocked users and campaigns pages

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01XbguTshd7eq8N2XxFabgLN
- Replace the removed SingleMessageFetchListener with MessageDetailsListener
  and drop the SingleConversationFetchListener alias claim.
- Document that a cold-start sync fires no onMessageSync* callbacks.
- The 10-second forceSyncNow cooldown follows any sync, not only forced ones.
- A blocked-users keyword search does not fire onCachedUsers.
- The thread subscription flag is cached with the message when offline is on.
- List every snapshot type under maxSnapshotQueries.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01XbguTwdQxd6Vh7nDdURGwM

@ketanyekale ketanyekale left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Docs review: approve (hold merge until SDK 4.3.0 ships)

Reviewed the 8 new Offline Support pages plus the 24 modified JavaScript SDK pages (33 files, +2172/-6). No blocking issues: the build is safe, there is nothing to redirect, and no link or anchor is broken.

What passed (checked, not assumed)

Check Result
Navigation refs resolve (Mintlify build safety) 0 dangling — build is safe
Removed/renamed URLs needing redirects 0 (pure additions + modifications, so no 404 risk)
Chained 404s in existing redirects 0
Broken internal links in changed files 0
Broken in-page anchors into the new pages 0
Unresolved placeholders (TODO/FIXME/TBD/"coming soon") 0
Images / screenshots that could go stale none added
Version pins inside the new pages internally consistent
Default values (100 conversations, 500 msgs/conv, 250 MB, 500 MB media, 50 pending, 7-day snapshot TTL) consistent between the overview and the reference

The 8-page group is inserted into docs.json in the same order the overview's "Next steps" cards use, which reads well.

On the setMaxSnapshotQueries difference you flagged

Not a defect — the docs already handle it correctly and explicitly. iOS lists six snapshot types and omits participatedByMe = false threads, and thread-subscription.mdx states outright that with set(participatedByMe: false) the cached page is always empty. The reference table and the prose agree, and no iOS page promises a thread snapshot that the SDK doesn't keep. JS and RN list seven and both include the threads entry. Consistent on all three.

Non-blocking notes

  1. PR descriptions — as you said, they don't mention the modified existing pages, which is the larger half of the change. Worth updating before merge so the diff is reviewable and the changelog is honest.
  2. Error-code naming differs by platform: iOS uses ERROR_INTERNET_UNAVAILABLE, JS and RN use FAILED_TO_FETCH. Each is used consistently within its own PR, so this looks like a real SDK difference rather than a docs slip — just worth a second look against the source.
  3. llms-*-v4 is orphaned from navigation in each SDK scope. Pre-existing on main, not introduced here.

Scope of this review: docs integrity and internal consistency. I did not build the site or verify the documented API surface against SDK source — that rests on your source read, and the merge is gated on the SDK release anyway.

Not merging — per your and Aditya's agreement, this stays held until the SDK version is published.

@ketanyekale
ketanyekale merged commit cf9c626 into main Nov 2, 2026
5 checks passed

This branch was successfully deployed

1 active deployment
staging — 6e435ac1 Deployed Nov 2, 2026 by mintlify[bot]
Sign up for free to 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.

3 participants