Repository navigation
Docs: Offline Support for JavaScript SDK - #588
Conversation
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
|
Preview deployment for your docs. Learn more about Mintlify Previews.
💡 Tip: Enable Automations to automatically generate PRs for you. |
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
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
…ages 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
left a comment
There was a problem hiding this comment.
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
- 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.
- Error-code naming differs by platform: iOS uses
ERROR_INTERNET_UNAVAILABLE, JS and RN useFAILED_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. llms-*-v4is orphaned from navigation in each SDK scope. Pre-existing onmain, 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.
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.0and the offline conformance spec.New "Offline Support" group (8 pages): overview, enable, cached-data, send, sync, media-caching, encryption, reference — plus the
docs.jsonnav 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