[DX-1100] Fix broken links, hardcoded keys, and misguided references across docs#3342
[DX-1100] Fix broken links, hardcoded keys, and misguided references across docs#3342
Conversation
… docs
Fix incorrect internal anchors (e.g. #api-key → #api-keys, #skipping → skip-integrations), convert absolute ably.com URLs to relative paths,
upgrade http:// to https:// for external links,
replace hardcoded API keys with {{API_KEY}} template variable,
add missing hyperlinks for feature references,
remove trailing dots from anchor fragments,
and fix minor copy issues including a localhost URL and stale TODO comment.
|
Important Review skippedAuto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Repository UI Review profile: CHILL Plan: Pro Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
… content
Fix broken internal anchors (e.g. #presence-multiple-client-id → #multiple-client-ids,
#app-limits → #account), correct missing leading slashes in link paths,
replace hardcoded API keys with {{API_KEY}}, standardize "real-time" to
"realtime" and "Ably Realtime SDK" to "Ably Pub/Sub SDK", update past-date
deprecation pages to past tense, fix a missing code block closure in
chat data-extraction, and add cross-references for Chat moderation.
There was a problem hiding this comment.
Pull request overview
Documentation maintenance PR addressing DX-1100 by fixing broken/misleading internal links, normalizing URL formats, and replacing hardcoded API key placeholders across the docs site.
Changes:
- Fix/normalize internal links and anchors across docs (integrations, push, auth, protocols, API refs, etc.).
- Replace hardcoded API key placeholders in code examples with
{{API_KEY}}. - Update various copy/meta descriptions and remove/resolve stale TODOs and localhost URLs.
Reviewed changes
Copilot reviewed 85 out of 85 changed files in this pull request and generated 7 comments.
Show a summary per file
| File | Description |
|---|---|
| src/pages/docs/storage-history/storage.mdx | Fix integrations links (serverless functions URL). |
| src/pages/docs/storage-history/history.mdx | Copy tweak (“realtime”). |
| src/pages/docs/spaces/react.mdx | Replace TODOs with concrete error-handling output in example. |
| src/pages/docs/push/publish.mdx | Fix subscribe section linking/anchors. |
| src/pages/docs/push/index.mdx | Fix “via channels” / recipient links and subscribe bullets. |
| src/pages/docs/push/getting-started/apns.mdx | Fix admin/rules links. |
| src/pages/docs/protocols/sse.mdx | Fix “publishing” link target. |
| src/pages/docs/protocols/pubnub.mdx | Replace hardcoded key; fix continuity-loss link. |
| src/pages/docs/protocols/mqtt.mdx | Update references to Pub/Sub SDK wording. |
| src/pages/docs/protocols/index.mdx | Update SSE description wording. |
| src/pages/docs/platform/tools/cli.mdx | Add missing link for typing indicators. |
| src/pages/docs/platform/support/index.mdx | Improve meta description. |
| src/pages/docs/platform/products/index.mdx | Fix presence link + room reactions link target. |
| src/pages/docs/platform/pricing/limits.mdx | Fix server-side batching link target. |
| src/pages/docs/platform/pricing/faqs.mdx | Normalize ably.com links (terms/network). |
| src/pages/docs/platform/integrations/webhooks/lambda.mdx | Replace hardcoded API key placeholder with {{API_KEY}}. |
| src/pages/docs/platform/integrations/webhooks/index.mdx | Fix limits anchor + example payload values. |
| src/pages/docs/platform/integrations/skip-integrations.mdx | Add Chat-related cross-links. |
| src/pages/docs/platform/integrations/index.mdx | Capitalization consistency for “Pub/Sub”. |
| src/pages/docs/platform/integrations/inbound/webhooks.mdx | Fix limits anchor. |
| src/pages/docs/platform/index.mdx | Convert absolute docs link to relative; add feature cross-links. |
| src/pages/docs/platform/errors/codes.mdx | Fix limits anchors + improve ably-js note wording. |
| src/pages/docs/platform/deprecate/tls-v1-1.mdx | Update copy to reflect completed sunset. |
| src/pages/docs/platform/deprecate/protocol-v1.mdx | Update copy/meta_description post-sunset. |
| src/pages/docs/platform/architecture/message-ordering.mdx | Copy tweak (“Realtime client library”). |
| src/pages/docs/platform/architecture/index.mdx | Copy tweak (“client libraries”). |
| src/pages/docs/platform/ai-llms/llms-txt.mdx | Add missing Spaces feature links. |
| src/pages/docs/platform/account/users.mdx | Convert absolute docs URL to relative. |
| src/pages/docs/platform/account/control-api.mdx | Fix auth anchor (#api-keys). |
| src/pages/docs/metadata-stats/stats.mdx | Fix integrations link path. |
| src/pages/docs/messages/updates-deletes.mdx | Replace localhost URL with relative docs URL. |
| src/pages/docs/livesync/postgres/quickstart.mdx | Replace API key placeholder with {{API_KEY}}. |
| src/pages/docs/livesync/postgres/models.mdx | Replace hardcoded key placeholder with {{API_KEY}}. |
| src/pages/docs/liveobjects/quickstart/java.mdx | Replace hardcoded key placeholder with {{API_KEY}}. |
| src/pages/docs/getting-started/swift.mdx | Fix language query params in links. |
| src/pages/docs/getting-started/ruby.mdx | Convert absolute docs URL to relative. |
| src/pages/docs/getting-started/react.mdx | Convert absolute docs URL to relative. |
| src/pages/docs/getting-started/react-native.mdx | Convert absolute docs URL to relative. |
| src/pages/docs/getting-started/react-hooks.mdx | Replace API key placeholder with {{API_KEY}}. |
| src/pages/docs/getting-started/python.mdx | Convert absolute docs URL to relative. |
| src/pages/docs/getting-started/objective-c.mdx | Convert absolute docs URL to relative. |
| src/pages/docs/getting-started/node.mdx | Convert absolute docs URL to relative. |
| src/pages/docs/getting-started/kotlin.mdx | Convert absolute docs URL to relative. |
| src/pages/docs/getting-started/javascript.mdx | Convert absolute docs URL to relative. |
| src/pages/docs/getting-started/java.mdx | Convert absolute docs URL to relative. |
| src/pages/docs/getting-started/go.mdx | Convert absolute docs URL to relative. |
| src/pages/docs/getting-started/flutter.mdx | Convert absolute docs URL to relative. |
| src/pages/docs/getting-started/dotnet.mdx | Convert absolute docs URL to relative. |
| src/pages/docs/faq/push-faqs.mdx | Remove self-referential link in APNs sandbox FAQ. |
| src/pages/docs/faq/index.mdx | Replace hardcoded API key placeholders with {{API_KEY}}. |
| src/pages/docs/connect/states.mdx | Update meta description; replace key placeholder. |
| src/pages/docs/connect/index.mdx | Fix incorrect constructor syntax; fix anchors to states/channels docs. |
| src/pages/docs/chat/rooms/history.mdx | Copy tweak (“realtime”). |
| src/pages/docs/chat/moderation/direct/hive-dashboard.mdx | Convert absolute docs URL to relative. |
| src/pages/docs/chat/moderation/custom/lambda.mdx | Fix missing leading slash in link. |
| src/pages/docs/chat/getting-started/react-ui-kit.mdx | Update note wording (remove “future update” claim). |
| src/pages/docs/chat/external-storage-and-processing/data-extraction.mdx | Fix missing closing code fence / . |
| src/pages/docs/channels/index.mdx | Capitalization consistency for “Pub/Sub”. |
| src/pages/docs/auth/token/index.mdx | Fix auth anchor (#api-keys); copy tweak (“realtime”). |
| src/pages/docs/auth/capabilities.mdx | Fix auth anchor (#api-keys). |
| src/pages/docs/auth/basic.mdx | Fix auth anchor (#api-keys). |
| src/pages/docs/api/token-request-spec.mdx | Fix namespaces anchor in channels docs. |
| src/pages/docs/api/rest-sdk/types.mdx | Fix privileged/skip-integrations link; update ruby-doc links to https. |
| src/pages/docs/api/rest-sdk/presence.mdx | Fix privileged/skip-integrations link. |
| src/pages/docs/api/rest-sdk/messages.mdx | Fix privileged/skip-integrations link. |
| src/pages/docs/api/rest-sdk/history.mdx | Fix privileged/skip-integrations link. |
| src/pages/docs/api/rest-sdk/channels.mdx | Convert absolute docs URL to relative; fix privileged link. |
| src/pages/docs/api/rest-sdk/authentication.mdx | Fix auth anchor (#api-keys); normalize wording. |
| src/pages/docs/api/rest-sdk.mdx | Update ruby-doc link to https. |
| src/pages/docs/api/rest-api.mdx | Convert absolute docs URL to relative; replace key placeholder; remove stale TODO. |
| src/pages/docs/api/realtime-sdk/types.mdx | Fix privileged/skip-integrations + non-fatal errors link. |
| src/pages/docs/api/realtime-sdk/presence.mdx | Fix broken anchors/trailing dots; update links. |
| src/pages/docs/api/realtime-sdk/messages.mdx | Fix privileged/skip-integrations link. |
| src/pages/docs/api/realtime-sdk/history.mdx | Fix privileged/skip-integrations link. |
| src/pages/docs/api/realtime-sdk/encryption.mdx | Fix missing leading slash in example link. |
| src/pages/docs/api/realtime-sdk/channels.mdx | Fix transient-publish + docs links; update non-fatal errors link. |
| src/pages/docs/api/realtime-sdk/authentication.mdx | Fix auth anchor (#api-keys). |
| src/pages/docs/api/realtime-sdk.mdx | Update ruby-doc links to https. |
| src/pages/docs/api/index.mdx | Update SDK reference versions; add Spaces feature links; update SSE wording. |
| src/pages/docs/ai-transport/index.mdx | Fix “why” link target. |
| src/pages/docs/ai-transport/getting-started/vercel-ai-sdk.mdx | Replace API key placeholder; copy tweak (“realtime”). |
| src/pages/docs/ai-transport/framework-guides/vercel-ai-sdk.mdx | Copy tweak (“realtime”). |
| src/pages/docs/ai-transport/features/optimistic-updates.mdx | Copy tweak (“realtime”). |
| src/pages/docs/ai-transport/features/history.mdx | Copy tweak (“realtime”). |
| src/pages/docs/ai-transport/features/agent-presence.mdx | Fix presence link target; copy tweaks (“realtime”). |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
# Conflicts: # src/pages/docs/ai-transport/features/agent-presence.mdx # src/pages/docs/ai-transport/framework-guides/vercel-ai-sdk.mdx # src/pages/docs/ai-transport/getting-started/vercel-ai-sdk.mdx
|
@claude review |
| const { connectionError, channelError } = useMembers(); | ||
|
|
||
| if (connectionError) { | ||
| // TODO: handle connection errors |
There was a problem hiding this comment.
Maybe better to leave TODO comment here
There was a problem hiding this comment.
Pull request overview
This PR updates Ably documentation pages to resolve broken/internal links and anchors, standardize API key placeholders, and improve wording/metadata across multiple doc sections.
Changes:
- Fixes/updates internal doc links, anchors, and outdated paths across docs.
- Replaces hardcoded API key strings in code examples with
{{API_KEY}}. - Improves doc copy/consistency (e.g., “realtime” wording, meta descriptions, and minor reference corrections).
Reviewed changes
Copilot reviewed 83 out of 83 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
| src/pages/docs/storage-history/storage.mdx | Fix serverless functions link path |
| src/pages/docs/storage-history/history.mdx | Wording consistency (“realtime”) |
| src/pages/docs/spaces/react.mdx | Replace TODOs with error handling |
| src/pages/docs/push/publish.mdx | Add anchors for subscribe examples |
| src/pages/docs/push/index.mdx | Fix links to publish sections |
| src/pages/docs/push/getting-started/apns.mdx | Fix admin/rules links |
| src/pages/docs/protocols/sse.mdx | Fix publishing link target |
| src/pages/docs/protocols/pubnub.mdx | Use {{API_KEY}}, fix continuity link |
| src/pages/docs/protocols/mqtt.mdx | Update product terminology references |
| src/pages/docs/protocols/index.mdx | Update product terminology references |
| src/pages/docs/platform/tools/cli.mdx | Add typing indicators link |
| src/pages/docs/platform/support/index.mdx | Update meta description |
| src/pages/docs/platform/products/index.mdx | Fix presence/reactions links |
| src/pages/docs/platform/pricing/limits.mdx | Fix batching link target |
| src/pages/docs/platform/pricing/faqs.mdx | Update ably.com URLs |
| src/pages/docs/platform/integrations/webhooks/lambda.mdx | Replace key placeholders with {{API_KEY}} |
| src/pages/docs/platform/integrations/webhooks/index.mdx | Fix limits anchor + examples |
| src/pages/docs/platform/integrations/skip-integrations.mdx | Add Chat-related deep links |
| src/pages/docs/platform/integrations/index.mdx | Capitalization consistency (“Pub/Sub”) |
| src/pages/docs/platform/integrations/inbound/webhooks.mdx | Fix limits anchor |
| src/pages/docs/platform/index.mdx | Fix latency link + add feature links |
| src/pages/docs/platform/errors/codes.mdx | Fix limits anchors + clarify note |
| src/pages/docs/platform/deprecate/tls-v1-1.mdx | Update sunset dates to past tense |
| src/pages/docs/platform/deprecate/protocol-v1.mdx | Update sunset copy + meta |
| src/pages/docs/platform/architecture/message-ordering.mdx | Wording: “client library” |
| src/pages/docs/platform/architecture/index.mdx | Wording: “client libraries” |
| src/pages/docs/platform/ai-llms/llms-txt.mdx | Add Spaces feature deep links |
| src/pages/docs/platform/account/users.mdx | Remove duplicate “owner” step |
| src/pages/docs/platform/account/control-api.mdx | Fix API keys anchor |
| src/pages/docs/metadata-stats/stats.mdx | Fix integrations link |
| src/pages/docs/messages/updates-deletes.mdx | Replace localhost link with relative |
| src/pages/docs/livesync/postgres/quickstart.mdx | Use {{API_KEY}} in env example |
| src/pages/docs/livesync/postgres/models.mdx | Use {{API_KEY}} in code |
| src/pages/docs/liveobjects/quickstart/java.mdx | Use {{API_KEY}} in code |
| src/pages/docs/getting-started/swift.mdx | Fix lang query params in links |
| src/pages/docs/getting-started/ruby.mdx | Convert connect link to relative |
| src/pages/docs/getting-started/react.mdx | Convert connect link to relative |
| src/pages/docs/getting-started/react-native.mdx | Convert connect link to relative |
| src/pages/docs/getting-started/react-hooks.mdx | Use {{API_KEY}} in example |
| src/pages/docs/getting-started/python.mdx | Convert connect link to relative |
| src/pages/docs/getting-started/objective-c.mdx | Convert connect link to relative |
| src/pages/docs/getting-started/node.mdx | Convert connect link to relative |
| src/pages/docs/getting-started/kotlin.mdx | Convert connect link to relative |
| src/pages/docs/getting-started/javascript.mdx | Convert connect link to relative |
| src/pages/docs/getting-started/java.mdx | Convert connect link to relative |
| src/pages/docs/getting-started/go.mdx | Convert connect link to relative |
| src/pages/docs/getting-started/flutter.mdx | Convert connect link to relative |
| src/pages/docs/getting-started/dotnet.mdx | Convert connect link to relative |
| src/pages/docs/faq/push-faqs.mdx | Remove self-referential link |
| src/pages/docs/faq/index.mdx | Use {{API_KEY}} placeholders |
| src/pages/docs/connect/states.mdx | Update meta + use {{API_KEY}} |
| src/pages/docs/connect/index.mdx | Fix constructor + link anchors |
| src/pages/docs/chat/rooms/history.mdx | Wording consistency (“realtime”) |
| src/pages/docs/chat/moderation/direct/hive-dashboard.mdx | Fix dedicated cluster link |
| src/pages/docs/chat/moderation/custom/lambda.mdx | Fix lambda auth doc link |
| src/pages/docs/chat/getting-started/react-ui-kit.mdx | Update note wording |
| src/pages/docs/chat/external-storage-and-processing/data-extraction.mdx | Fix missing code block closing |
| src/pages/docs/channels/index.mdx | Capitalization consistency (“Pub/Sub”) |
| src/pages/docs/auth/token/index.mdx | Fix API keys anchor + wording |
| src/pages/docs/auth/capabilities.mdx | Fix API keys anchor |
| src/pages/docs/auth/basic.mdx | Fix API keys anchor |
| src/pages/docs/api/token-request-spec.mdx | Fix channel namespaces anchor |
| src/pages/docs/api/rest-sdk/types.mdx | Update privileged docs link + ruby-doc HTTPS |
| src/pages/docs/api/rest-sdk/presence.mdx | Update privileged docs link |
| src/pages/docs/api/rest-sdk/messages.mdx | Update privileged docs link |
| src/pages/docs/api/rest-sdk/history.mdx | Update privileged docs link |
| src/pages/docs/api/rest-sdk/channels.mdx | Convert docs URL to relative |
| src/pages/docs/api/rest-sdk/authentication.mdx | Fix API keys anchor references |
| src/pages/docs/api/rest-sdk.mdx | Update ruby-doc HTTPS |
| src/pages/docs/api/rest-api.mdx | Convert docs URL to relative + use {{API_KEY}} |
| src/pages/docs/api/realtime-sdk/types.mdx | Update privileged docs link + channel errors link |
| src/pages/docs/api/realtime-sdk/presence.mdx | Fix multiple links/anchors (see comments) |
| src/pages/docs/api/realtime-sdk/messages.mdx | Update privileged docs link |
| src/pages/docs/api/realtime-sdk/history.mdx | Update privileged docs link |
| src/pages/docs/api/realtime-sdk/encryption.mdx | Fix missing leading slash in link |
| src/pages/docs/api/realtime-sdk/channels.mdx | Update transient publish + docs URL |
| src/pages/docs/api/realtime-sdk/authentication.mdx | Fix API keys anchor references |
| src/pages/docs/api/realtime-sdk.mdx | Update ruby-doc HTTPS |
| src/pages/docs/api/index.mdx | Update SDK reference version links |
| src/pages/docs/ai-transport/getting-started/vercel-ai-sdk.mdx | Use {{API_KEY}} + “realtime” wording |
| src/pages/docs/ai-transport/features/optimistic-updates.mdx | Wording consistency (“realtime”) |
| src/pages/docs/ai-transport/features/history.mdx | Wording consistency (“realtime”) |
| src/pages/docs/ai-transport/features/agent-presence.mdx | Fix typos + Presence links |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| ### <If lang="javascript,nodejs,java,objc,swift">enterClient</If><If lang="ruby">enter_client</If><If lang="csharp">EnterClientAsync</If> <a id="enter-client" /> | ||
|
|
||
| Enter this presence channel for the given <If lang="flutter,javascript,nodejs,java,swift,objc">`clientId`</If><If lang="ruby">`client_id`</If><If lang="csharp">`ClientId`</If>. This method is provided to support typically server instances that act on behalf of multiple client IDs. See [Managing multiple client IDs](/docs/presence-occupancy/presence#presence-multiple-client-id) for more info. In order to be able to publish presence changes for arbitrary client IDs, the client library must have been instantiated either with an [API key](/docs/auth#api-keys,) or with a [token bound to a wildcard client ID](https://faqs.ably.com/can-a-client-emulate-any-client-id-i.e.-authenticate-using-a-wildcard-client-id.) | ||
| Enter this presence channel for the given <If lang="flutter,javascript,nodejs,java,swift,objc">`clientId`</If><If lang="ruby">`client_id`</If><If lang="csharp">`ClientId`</If>. This method is provided to support typically server instances that act on behalf of multiple client IDs. See [Managing multiple client IDs](/docs/presence-occupancy/presence#multiple-client-ids) for more info. In order to be able to publish presence changes for arbitrary client IDs, the client library must have been instantiated either with an [API key](/docs/auth#api-keys) or with a [token bound to a wildcard client ID](https://faqs.ably.com/can-a-client-emulate-any-client-id-i.e.-authenticate-using-a-wildcard-client-id.) |
There was a problem hiding this comment.
The external FAQ link has a trailing period inside the URL (...wildcard-client-id.), which will break the link target. Remove the trailing . so the URL resolves correctly.
| Enter this presence channel for the given <If lang="flutter,javascript,nodejs,java,swift,objc">`clientId`</If><If lang="ruby">`client_id`</If><If lang="csharp">`ClientId`</If>. This method is provided to support typically server instances that act on behalf of multiple client IDs. See [Managing multiple client IDs](/docs/presence-occupancy/presence#multiple-client-ids) for more info. In order to be able to publish presence changes for arbitrary client IDs, the client library must have been instantiated either with an [API key](/docs/auth#api-keys) or with a [token bound to a wildcard client ID](https://faqs.ably.com/can-a-client-emulate-any-client-id-i.e.-authenticate-using-a-wildcard-client-id.) | |
| Enter this presence channel for the given <If lang="flutter,javascript,nodejs,java,swift,objc">`clientId`</If><If lang="ruby">`client_id`</If><If lang="csharp">`ClientId`</If>. This method is provided to support typically server instances that act on behalf of multiple client IDs. See [Managing multiple client IDs](/docs/presence-occupancy/presence#multiple-client-ids) for more info. In order to be able to publish presence changes for arbitrary client IDs, the client library must have been instantiated either with an [API key](/docs/auth#api-keys) or with a [token bound to a wildcard client ID](https://faqs.ably.com/can-a-client-emulate-any-client-id-i.e.-authenticate-using-a-wildcard-client-id). |
There was a problem hiding this comment.
I agree with this one, and then the link at the top of this diff should probably get the period (.) added at the end of the line
| ### <If lang="flutter,javascript,nodejs,java,objc,swift">leaveClient</If><If lang="ruby">leave_client</If><If lang="csharp">LeaveClientAsync</If> <a id="leave-client" /> | ||
|
|
||
| Leave this presence channel for the given <If lang="flutter,javascript,nodejs,java,swift,objc">`clientId`</If><If lang="ruby">`client_id`</If><If lang="csharp">`ClientId`</If>. This method is provided to support typically server instances that act on behalf of multiple client IDs. See [Managing multiple client IDs](/docs/presence-occupancy/presence#presence-multiple-client-id) for more info. In order to leave the presence set of a channel, the client must have already [entered and been present](#enter-client.) | ||
| Leave this presence channel for the given <If lang="flutter,javascript,nodejs,java,swift,objc">`clientId`</If><If lang="ruby">`client_id`</If><If lang="csharp">`ClientId`</If>. This method is provided to support typically server instances that act on behalf of multiple client IDs. See [Managing multiple client IDs](/docs/presence-occupancy/presence#multiple-client-ids) for more info. In order to leave the presence set of a channel, the client must have already [entered and been present](#enter-client.) |
There was a problem hiding this comment.
The internal link to the enterClient section includes a trailing period in the fragment (#enter-client.), which will prevent the anchor from resolving. Update it to #enter-client.
| Leave this presence channel for the given <If lang="flutter,javascript,nodejs,java,swift,objc">`clientId`</If><If lang="ruby">`client_id`</If><If lang="csharp">`ClientId`</If>. This method is provided to support typically server instances that act on behalf of multiple client IDs. See [Managing multiple client IDs](/docs/presence-occupancy/presence#multiple-client-ids) for more info. In order to leave the presence set of a channel, the client must have already [entered and been present](#enter-client.) | |
| Leave this presence channel for the given <If lang="flutter,javascript,nodejs,java,swift,objc">`clientId`</If><If lang="ruby">`client_id`</If><If lang="csharp">`ClientId`</If>. This method is provided to support typically server instances that act on behalf of multiple client IDs. See [Managing multiple client IDs](/docs/presence-occupancy/presence#multiple-client-ids) for more info. In order to leave the presence set of a channel, the client must have already [entered and been present](#enter-client) |
kennethkalmer
left a comment
There was a problem hiding this comment.
Nice work @sacOO7! I found a few small things, I hope you can just point Claudius at my comments and it will do the right thing.
I also wonder if you shouldn't ask it to update the AGENTS.md file with some learnings from this session, including things like "Links to /docs should never include ably.com", and "Consistently use {{API_KEY}} in code samples...". Let it do the updates, it will go a long way in helping others going forward.
| ### <If lang="javascript,nodejs,java,objc,swift">enterClient</If><If lang="ruby">enter_client</If><If lang="csharp">EnterClientAsync</If> <a id="enter-client" /> | ||
|
|
||
| Enter this presence channel for the given <If lang="flutter,javascript,nodejs,java,swift,objc">`clientId`</If><If lang="ruby">`client_id`</If><If lang="csharp">`ClientId`</If>. This method is provided to support typically server instances that act on behalf of multiple client IDs. See [Managing multiple client IDs](/docs/presence-occupancy/presence#presence-multiple-client-id) for more info. In order to be able to publish presence changes for arbitrary client IDs, the client library must have been instantiated either with an [API key](/docs/auth#api-keys,) or with a [token bound to a wildcard client ID](https://faqs.ably.com/can-a-client-emulate-any-client-id-i.e.-authenticate-using-a-wildcard-client-id.) | ||
| Enter this presence channel for the given <If lang="flutter,javascript,nodejs,java,swift,objc">`clientId`</If><If lang="ruby">`client_id`</If><If lang="csharp">`ClientId`</If>. This method is provided to support typically server instances that act on behalf of multiple client IDs. See [Managing multiple client IDs](/docs/presence-occupancy/presence#multiple-client-ids) for more info. In order to be able to publish presence changes for arbitrary client IDs, the client library must have been instantiated either with an [API key](/docs/auth#api-keys) or with a [token bound to a wildcard client ID](https://faqs.ably.com/can-a-client-emulate-any-client-id-i.e.-authenticate-using-a-wildcard-client-id.) |
There was a problem hiding this comment.
I agree with this one, and then the link at the top of this diff should probably get the period (.) added at the end of the line
| ### <If lang="flutter,javascript,nodejs,java,objc,swift">leaveClient</If><If lang="ruby">leave_client</If><If lang="csharp">LeaveClientAsync</If> <a id="leave-client" /> | ||
|
|
||
| Leave this presence channel for the given <If lang="flutter,javascript,nodejs,java,swift,objc">`clientId`</If><If lang="ruby">`client_id`</If><If lang="csharp">`ClientId`</If>. This method is provided to support typically server instances that act on behalf of multiple client IDs. See [Managing multiple client IDs](/docs/presence-occupancy/presence#presence-multiple-client-id) for more info. In order to leave the presence set of a channel, the client must have already [entered and been present](#enter-client.) | ||
| Leave this presence channel for the given <If lang="flutter,javascript,nodejs,java,swift,objc">`clientId`</If><If lang="ruby">`client_id`</If><If lang="csharp">`ClientId`</If>. This method is provided to support typically server instances that act on behalf of multiple client IDs. See [Managing multiple client IDs](/docs/presence-occupancy/presence#multiple-client-ids) for more info. In order to leave the presence set of a channel, the client must have already [entered and been present](#enter-client.) |
| <If lang="javascript,nodejs"> | ||
|
|
||
| `Presence` `action` is a String with a value matching any of the [`Realtime Presence` states & events](/docs/presence-occupancy/presence#trigger-events.) | ||
| `Presence` `action` is a String with a value matching any of the [`Realtime Presence` states & events](/docs/presence-occupancy/presence#trigger-events) |
There was a problem hiding this comment.
Think all of these need a spot-check in the browser to see if the missing periods (.) leave the sentences hanging, relative to other content on the page.
| | :log_level | Log level for the standard Logger that outputs to `STDOUT`. Can be set to `:fatal`, `:error`, `:warn`, `:info`, `:debug` or `:none`. Alternatively a [`Logger` severity constant](https://ruby-doc.org/stdlib-2.2.0/libdoc/logger/rdoc/Logger.html#class-Logger-label-Description) can be specified<br />**Default:** `:error` | `Symbol`, [`Logger::SEVERITY`](https://ruby-doc.org/stdlib-2.2.0/libdoc/logger/rdoc/Logger.html#class-Logger-label-Description) | | ||
| | :logger | A [Ruby `Logger`](https://ruby-doc.org/stdlib-1.9.3/libdoc/logger/rdoc/Logger.html) compatible object to handle each line of log output. If `logger` is not specified, `STDOUT` is used<br />**Default:** `STDOUT Logger` | [Ruby `Logger`](https://ruby-doc.org/stdlib-1.9.3/libdoc/logger/rdoc/Logger.html) | |
There was a problem hiding this comment.
Both these links are ancient. We should update them to a newer Ruby version:
| | :log_level | Log level for the standard Logger that outputs to `STDOUT`. Can be set to `:fatal`, `:error`, `:warn`, `:info`, `:debug` or `:none`. Alternatively a [`Logger` severity constant](https://ruby-doc.org/stdlib-2.2.0/libdoc/logger/rdoc/Logger.html#class-Logger-label-Description) can be specified. The default is `:error`. | `Symbol`, [`Logger::SEVERITY`](https://ruby-doc.org/stdlib-2.2.0/libdoc/logger/rdoc/Logger.html#class-Logger-label-Description) | | ||
| | :logger | A [Ruby `Logger`](https://ruby-doc.org/stdlib-1.9.3/libdoc/logger/rdoc/Logger.html) compatible object to handle each line of log output. If `logger` is not specified, `STDOUT` is used. The default is `STDOUT Logger`. | [Ruby `Logger`](https://ruby-doc.org/stdlib-1.9.3/libdoc/logger/rdoc/Logger.html) | |
There was a problem hiding this comment.
Same update to the Ruby links as before
| | :transport_params | Optional. Can be used to pass in arbitrary connection parameters, such as [`heartbeatInterval`](/docs/connect#heartbeats) and [`remainPresentFor`](/docs/presence-occupancy/presence#unstable-connections) | `Hash` | | ||
| | :log_level | A number controlling the verbosity of the log output of the library. Valid values are: 0 (no logs), 1 (errors only), 2 (errors plus connection and channel state changes), 3 (high-level debug output), and 4 (full debug output). | `Integer` | | ||
| | :logger | A Ruby [`Logger`](http://ruby-doc.org/stdlib-1.9.3/libdoc/logger/rdoc/Logger.html) compatible object to handle each line of log output. If `logger` is not specified, `STDOUT` is used. | `STDOUT Logger` | | ||
| | :logger | A Ruby [`Logger`](https://ruby-doc.org/stdlib-1.9.3/libdoc/logger/rdoc/Logger.html) compatible object to handle each line of log output. If `logger` is not specified, `STDOUT` is used. | `STDOUT Logger` | |
There was a problem hiding this comment.
Same Ruby link updates as before
|
|
||
| * Understand [token authentication](/docs/auth/token) before going to production. | ||
| * Understand how to effectively [manage connections](https://ably.com/docs/connect#close?lang=ruby). | ||
| * Understand how to effectively [manage connections](/docs/connect#close?lang=ruby). |
There was a problem hiding this comment.
href should be /docs/connect?lang=ruby#close (anchor following the query param)
| * Understand [token authentication](/docs/auth/token) before going to production. | ||
| * Understand how to effectively [manage connections](https://ably.com/docs/connect#close?lang=ruby). | ||
| * Explore more [advanced](/docs/pub-sub/advanced?lang=ruby) Pub/Sub concepts. | ||
| * Understand how to effectively [manage connections](/docs/connect#close?lang=swift). |
There was a problem hiding this comment.
href should be /docs/connect?lang=swift#close (anchor following the query param)
|
|
||
| #### Conflation <a id="update-conflation"/> | ||
|
|
||
| Ably may opportunistically discard out of date updates to a given message, for example, during a serverside batching step, or within a [rewind](/docs/channels/options/rewind) backlog. This means subscribers are not guaranteed to receive every intermediate update if multiple updates occur in quick succession, but it is guaranteed that the last update that they receive will represent the most recent version of the message (matching the version that will be eventually retrievable by a history or [getMessage()](http://localhost:8000/docs/messages/updates-deletes#get) request). |
| const { connectionError, channelError } = useMembers(); | ||
|
|
||
| if (connectionError) { | ||
| // TODO: handle connection errors |
pages (wrong anchors, outdated paths, trailing dots in fragments)
ably.com/docsandably.ioURLs to relative/docs/paths and updatehttp://tohttps://for external links (ruby-doc.org)
'your-api-key'/'<YOUR_API_KEY>'strings with{{API_KEY}}template variable in codeexamples
improved meta descriptions