Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[ECO-5102] Updated README #166

Merged
merged 1 commit into from
Dec 11, 2024
Merged

[ECO-5102] Updated README #166

merged 1 commit into from
Dec 11, 2024

Conversation

maratal
Copy link
Collaborator

@maratal maratal commented Nov 29, 2024

Summary by CodeRabbit

  • Documentation
    • Updated the README.md for improved content and structure.
    • Expanded description of the Ably Chat SDK with use cases and capabilities.
    • Revised SDK readiness warning and invited early adopters for private beta feedback.
    • Clarified installation instructions with a Swift package example.
    • Added detailed sections on supported chat features, usage instructions, and more, with code snippets.
    • Introduced a section on channels behind chat features and updated contributing guidelines.
    • Added a support and troubleshooting section with additional resources.

Copy link

coderabbitai bot commented Nov 29, 2024

Walkthrough

The pull request involves extensive updates to the README.md file for the Ably Chat SDK. Enhancements include improved formatting with HTML elements, expanded descriptions of the SDK's purpose and features, clarified installation instructions, and new sections detailing chat functionalities. The document now includes code snippets for better usability, a section on underlying Pub/Sub channels, and rephrased contributing guidelines. Additionally, a support section has been added. These changes aim to improve the clarity and comprehensiveness of the documentation.

Changes

File Change Summary
README.md Updated content and structure, added HTML elements, expanded SDK description, clarified installation, added sections on supported features, usage, connection management, and contributing guidelines.

Assessment against linked issues

Objective Addressed Explanation
Create docs + update readme for chat-swift beta release (ECO-5102)

Possibly related PRs

  • Removed dedicated mocking block #162: The changes in ContentView.swift may relate to the chat features discussed in the README.md, particularly regarding the handling of room status and reactions, which are part of the chat functionality.
  • Updated to minimum version supporting chat v2. #164: The updates to the Package.swift and Package.resolved files ensure compatibility with the chat features outlined in the README.md, indicating a direct connection to the SDK's functionality.
  • Add an initial release process and CHANGELOG #181: The introduction of a CHANGELOG and release process may relate to the overall documentation improvements in the README.md, as both aim to enhance the clarity and usability of the project documentation.

Suggested reviewers

  • lawrence-forooghian

Poem

🐰 In the meadow, we hop and play,
With docs updated, bright as day.
Chat features clear, like morning dew,
Join the beta, there's much to do!
With snippets and guides, we leap with glee,
Come join the fun, it's all for free! 🌼


Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media?

❤️ Share
🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>, please review it.
    • Generate unit testing code for this file.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    • @coderabbitai generate unit testing code for this file.
    • @coderabbitai modularize this function.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read src/utils.ts and generate unit testing code.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.
    • @coderabbitai help me debug CodeRabbit configuration file.

Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments.

CodeRabbit Commands (Invoked using PR comments)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai full review to do a full review from scratch and review all the files again.
  • @coderabbitai summary to regenerate the summary of the PR.
  • @coderabbitai generate docstrings to generate docstrings for this PR. (Experiment)
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai configuration to show the current CodeRabbit configuration for the repository.
  • @coderabbitai help to get help.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

CodeRabbit Configuration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • Please see the configuration documentation for more information.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Documentation and Community

  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🧹 Outside diff range and nitpick comments (4)
README.md (4)

44-44: Add missing comma

Add a comma after "chat features" for better readability.

-This project is under development so we will be incrementally adding new features.
+This project is under development, so we will be incrementally adding new features.
🧰 Tools
🪛 LanguageTool

[uncategorized] ~44-~44: Possible missing comma found.
Context: ...ed chat features This project is under development so we will be incrementally adding new ...

(AI_HYDRA_LEO_MISSING_COMMA)


50-50: Fix abbreviation formatting

Add a period after "i.e." as it's an abbreviation.

-Chat room occupancy, i.e total number of connections and presence members.
+Chat room occupancy, i.e., total number of connections and presence members.
🧰 Tools
🪛 LanguageTool

[uncategorized] ~50-~50: The abbreviation “i.e.” (= that is) requires two periods.
Context: ...at participants. - Chat room occupancy, i.e total number of connections and presenc...

(I_E)


72-78: Add Swift syntax highlighting to code blocks

Add the Swift language identifier to code blocks for better syntax highlighting.

Example:

-```
+```swift
let realtimeOptions = ARTClientOptions()

Also applies to: 96-99, 105-110


513-513: Format bare URL as a proper link

Convert the bare URL to a proper markdown link for better formatting and accessibility.

-Please visit http://support.ably.com/ for access to our knowledge base
+Please visit [our support site](https://support.ably.com/) for access to our knowledge base
🧰 Tools
🪛 Markdownlint (0.35.0)

513-513: null
Bare URL used

(MD034, no-bare-urls)

📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL

📥 Commits

Reviewing files that changed from the base of the PR and between 5676cac and 3146aa9.

📒 Files selected for processing (1)
  • README.md (3 hunks)
🧰 Additional context used
🪛 LanguageTool
README.md

[uncategorized] ~44-~44: Possible missing comma found.
Context: ...ed chat features This project is under development so we will be incrementally adding new ...

(AI_HYDRA_LEO_MISSING_COMMA)


[grammar] ~47-~47: Possible agreement error. The noun participation seems to be uncountable; consider using: “much participation”, “a good deal of participation”.
Context: ... rooms for 1:1, 1:many, many:1 and many:many participation. - Sending and receiving chat messages....

(MANY_NN_U)


[uncategorized] ~50-~50: The abbreviation “i.e.” (= that is) requires two periods.
Context: ...at participants. - Chat room occupancy, i.e total number of connections and presenc...

(I_E)


[grammar] ~60-~60: You used an adverb (‘Ably’) instead of an adjective, or a noun (‘account’) instead of another adjective.
Context: ...need the following prerequisites: - An Ably account - You can [sign up](https://ably.co...

(A_RB_NN)


[grammar] ~63-~63: You used an adverb (‘Ably’) instead of an adjective, or a noun (‘API’) instead of another adjective.
Context: ...ignup) to the generous free tier. - An Ably API key - Use the default or create a n...

(A_RB_NN)


[typographical] ~80-~80: The word “however” is an adverb that can’t be used like a conjunction, and therefore needs to be separated from the sentence.
Context: ...he API Key directly for testing purposes, however it is strongly recommended that you use...

(HOWEVER_SENTENCE)


[style] ~144-~144: Consider a shorter alternative to avoid wordiness.
Context: ...ing: TypingOptions(timeout: 3.0))) ``` In order to use the same room but with different op...

(IN_ORDER_TO_PREMIUM)


[uncategorized] ~170-~170: Use a comma before ‘and’ if it connects two independent clauses (unless they are closely connected and short).
Context: ... any event listeners you have registered and they will begin to receive events again...

(COMMA_COMPOUND_SENTENCE)


[style] ~170-~170: ‘in the event that’ might be wordy. Consider a shorter alternative.
Context: ...they will begin to receive events again in the event that the room is re-attached. ### Releasing...

(EN_WORDINESS_PREMIUM_IN_THE_EVENT_THAT)


[style] ~176-~176: ‘completely finished’ might be wordy. Consider a shorter alternative.
Context: ...running 1:1 support chat). When you are completely finished with a room, you may release it which...

(EN_WORDINESS_PREMIUM_COMPLETELY_FINISHED)


[uncategorized] ~182-~182: Use a comma before ‘and’ if it connects two independent clauses (unless they are closely connected and short).
Context: ...is called, the room will become unusable and you will need to get a new instance usi...

(COMMA_COMPOUND_SENTENCE)


[uncategorized] ~223-~223: Use a comma before ‘and’ if it connects two independent clauses (unless they are closely connected and short).
Context: ...nection, continuity cannot be guaranteed and you'll need to take steps to recover me...

(COMMA_COMPOUND_SENTENCE)


[uncategorized] ~243-~243: Possible missing comma found.
Context: ...ming messages To subscribe to incoming messages you create a subscription for the room ...

(AI_HYDRA_LEO_MISSING_COMMA)


[uncategorized] ~264-~264: Possible missing comma found.
Context: ... messages object also exposes the get method which can be used to request historical...

(AI_HYDRA_LEO_MISSING_COMMA)


[style] ~327-~327: Consider shortening or rephrasing this to strengthen your wording.
Context: ...the presence data Updates allow you to make changes to the custom data associated with a prese...

(MAKE_CHANGES)


[misspelling] ~491-~491: Did you mean “side effects” (=adverse effect, unintended consequence)? Open compounds are not hyphenated.
Context: ...directly. Doing so may cause unintended side-effects in the Chat SDK. ### Channels Used Fo...

(AFFECT_EFFECT)

🪛 Markdownlint (0.35.0)
README.md

61-61: Expected: 2; Actual: 4
Unordered list indentation

(MD007, ul-indent)


64-64: Expected: 2; Actual: 4
Unordered list indentation

(MD007, ul-indent)


66-66: Expected: 2; Actual: 4
Unordered list indentation

(MD007, ul-indent)


513-513: null
Bare URL used

(MD034, no-bare-urls)

🔇 Additional comments (2)
README.md (2)

36-40: LGTM!

The installation instructions are clear and accurate.


Line range hint 1-521: Overall documentation quality is excellent!

The README is comprehensive, well-structured, and provides clear guidance for users. The code examples are helpful and cover all major features. The minor formatting and grammar issues identified above don't impact the overall quality of the documentation.

🧰 Tools
🪛 LanguageTool

[uncategorized] ~44-~44: Possible missing comma found.
Context: ...ed chat features This project is under development so we will be incrementally adding new ...

(AI_HYDRA_LEO_MISSING_COMMA)


[grammar] ~47-~47: Possible agreement error. The noun participation seems to be uncountable; consider using: “much participation”, “a good deal of participation”.
Context: ... rooms for 1:1, 1:many, many:1 and many:many participation. - Sending and receiving chat messages....

(MANY_NN_U)


[uncategorized] ~50-~50: The abbreviation “i.e.” (= that is) requires two periods.
Context: ...at participants. - Chat room occupancy, i.e total number of connections and presenc...

(I_E)


[grammar] ~60-~60: You used an adverb (‘Ably’) instead of an adjective, or a noun (‘account’) instead of another adjective.
Context: ...need the following prerequisites: - An Ably account - You can [sign up](https://ably.co...

(A_RB_NN)


[grammar] ~63-~63: You used an adverb (‘Ably’) instead of an adjective, or a noun (‘API’) instead of another adjective.
Context: ...ignup) to the generous free tier. - An Ably API key - Use the default or create a n...

(A_RB_NN)


[typographical] ~80-~80: The word “however” is an adverb that can’t be used like a conjunction, and therefore needs to be separated from the sentence.
Context: ...he API Key directly for testing purposes, however it is strongly recommended that you use...

(HOWEVER_SENTENCE)


[style] ~144-~144: Consider a shorter alternative to avoid wordiness.
Context: ...ing: TypingOptions(timeout: 3.0))) ``` In order to use the same room but with different op...

(IN_ORDER_TO_PREMIUM)


[uncategorized] ~170-~170: Use a comma before ‘and’ if it connects two independent clauses (unless they are closely connected and short).
Context: ... any event listeners you have registered and they will begin to receive events again...

(COMMA_COMPOUND_SENTENCE)


[style] ~170-~170: ‘in the event that’ might be wordy. Consider a shorter alternative.
Context: ...they will begin to receive events again in the event that the room is re-attached. ### Releasing...

(EN_WORDINESS_PREMIUM_IN_THE_EVENT_THAT)


[style] ~176-~176: ‘completely finished’ might be wordy. Consider a shorter alternative.
Context: ...running 1:1 support chat). When you are completely finished with a room, you may release it which...

(EN_WORDINESS_PREMIUM_COMPLETELY_FINISHED)


[uncategorized] ~182-~182: Use a comma before ‘and’ if it connects two independent clauses (unless they are closely connected and short).
Context: ...is called, the room will become unusable and you will need to get a new instance usi...

(COMMA_COMPOUND_SENTENCE)


[uncategorized] ~223-~223: Use a comma before ‘and’ if it connects two independent clauses (unless they are closely connected and short).
Context: ...nection, continuity cannot be guaranteed and you'll need to take steps to recover me...

(COMMA_COMPOUND_SENTENCE)


[uncategorized] ~243-~243: Possible missing comma found.
Context: ...ming messages To subscribe to incoming messages you create a subscription for the room ...

(AI_HYDRA_LEO_MISSING_COMMA)


[uncategorized] ~264-~264: Possible missing comma found.
Context: ... messages object also exposes the get method which can be used to request historical...

(AI_HYDRA_LEO_MISSING_COMMA)


[style] ~327-~327: Consider shortening or rephrasing this to strengthen your wording.
Context: ...the presence data Updates allow you to make changes to the custom data associated with a prese...

(MAKE_CHANGES)

🪛 Markdownlint (0.35.0)

61-61: Expected: 2; Actual: 4
Unordered list indentation

(MD007, ul-indent)


64-64: Expected: 2; Actual: 4
Unordered list indentation

(MD007, ul-indent)


66-66: Expected: 2; Actual: 4
Unordered list indentation

(MD007, ul-indent)

README.md Outdated Show resolved Hide resolved
Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🧹 Outside diff range and nitpick comments (2)
README.md (2)

47-52: Fix grammatical issues in features list

The abbreviation "i.e." requires two periods. Also, consider using bullet points consistently.

- Chat room occupancy, i.e total number of connections and presence members.
+ Chat room occupancy, i.e., total number of connections and presence members.
🧰 Tools
🪛 LanguageTool

[grammar] ~47-~47: Possible agreement error. The noun participation seems to be uncountable; consider using: “much participation”, “a good deal of participation”.
Context: ... rooms for 1:1, 1:many, many:1 and many:many participation. - Sending and receiving chat messages....

(MANY_NN_U)


[uncategorized] ~50-~50: The abbreviation “i.e.” (= that is) requires two periods.
Context: ...at participants. - Chat room occupancy, i.e total number of connections and presenc...

(I_E)


492-492: Fix hyphenation in warning message

"Side-effects" should not be hyphenated when used as a noun.

- Doing so may cause unintended side-effects in the Chat SDK.
+ Doing so may cause unintended side effects in the Chat SDK.
🧰 Tools
🪛 LanguageTool

[misspelling] ~492-~492: Did you mean “side effects” (=adverse effect, unintended consequence)? Open compounds are not hyphenated.
Context: ...directly. Doing so may cause unintended side-effects in the Chat SDK. ### Channels Used Fo...

(AFFECT_EFFECT)

📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL

📥 Commits

Reviewing files that changed from the base of the PR and between 3146aa9 and e3907cf.

📒 Files selected for processing (1)
  • README.md (3 hunks)
🧰 Additional context used
🪛 LanguageTool
README.md

[grammar] ~47-~47: Possible agreement error. The noun participation seems to be uncountable; consider using: “much participation”, “a good deal of participation”.
Context: ... rooms for 1:1, 1:many, many:1 and many:many participation. - Sending and receiving chat messages....

(MANY_NN_U)


[uncategorized] ~50-~50: The abbreviation “i.e.” (= that is) requires two periods.
Context: ...at participants. - Chat room occupancy, i.e total number of connections and presenc...

(I_E)


[grammar] ~60-~60: You used an adverb (‘Ably’) instead of an adjective, or a noun (‘account’) instead of another adjective.
Context: ...need the following prerequisites: - An Ably account - You can [sign up](https://ably.co...

(A_RB_NN)


[grammar] ~63-~63: You used an adverb (‘Ably’) instead of an adjective, or a noun (‘API’) instead of another adjective.
Context: ...ignup) to the generous free tier. - An Ably API key - Use the default or create a n...

(A_RB_NN)


[typographical] ~80-~80: The word “however” is an adverb that can’t be used like a conjunction, and therefore needs to be separated from the sentence.
Context: ...he API Key directly for testing purposes, however it is strongly recommended that you use...

(HOWEVER_SENTENCE)


[style] ~145-~145: Consider a shorter alternative to avoid wordiness.
Context: ...ing: TypingOptions(timeout: 3.0))) ``` In order to use the same room but with different op...

(IN_ORDER_TO_PREMIUM)


[uncategorized] ~171-~171: Use a comma before ‘and’ if it connects two independent clauses (unless they are closely connected and short).
Context: ... any event listeners you have registered and they will begin to receive events again...

(COMMA_COMPOUND_SENTENCE)


[style] ~171-~171: ‘in the event that’ might be wordy. Consider a shorter alternative.
Context: ...they will begin to receive events again in the event that the room is re-attached. ### Releasing...

(EN_WORDINESS_PREMIUM_IN_THE_EVENT_THAT)


[style] ~177-~177: ‘completely finished’ might be wordy. Consider a shorter alternative.
Context: ...running 1:1 support chat). When you are completely finished with a room, you may release it which...

(EN_WORDINESS_PREMIUM_COMPLETELY_FINISHED)


[uncategorized] ~183-~183: Use a comma before ‘and’ if it connects two independent clauses (unless they are closely connected and short).
Context: ...is called, the room will become unusable and you will need to get a new instance usi...

(COMMA_COMPOUND_SENTENCE)


[uncategorized] ~224-~224: Use a comma before ‘and’ if it connects two independent clauses (unless they are closely connected and short).
Context: ...nection, continuity cannot be guaranteed and you'll need to take steps to recover me...

(COMMA_COMPOUND_SENTENCE)


[style] ~328-~328: Consider shortening or rephrasing this to strengthen your wording.
Context: ...the presence data Updates allow you to make changes to the custom data associated with a prese...

(MAKE_CHANGES)


[misspelling] ~492-~492: Did you mean “side effects” (=adverse effect, unintended consequence)? Open compounds are not hyphenated.
Context: ...directly. Doing so may cause unintended side-effects in the Chat SDK. ### Channels Used Fo...

(AFFECT_EFFECT)

🪛 Markdownlint (0.35.0)
README.md

61-61: Expected: 2; Actual: 4
Unordered list indentation

(MD007, ul-indent)


64-64: Expected: 2; Actual: 4
Unordered list indentation

(MD007, ul-indent)


66-66: Expected: 2; Actual: 4
Unordered list indentation

(MD007, ul-indent)


514-514: null
Bare URL used

(MD034, no-bare-urls)

🔇 Additional comments (3)
README.md (3)

3-8: Fix incorrect badge URLs

The badge URLs still need to be updated as previously noted:

  1. The coverage badge URL points to the Kotlin repository instead of Swift
  2. The license badge uses an unrelated repository's URL
-    <a href="https://github.com/ably/ably-chat-kotlin/actions/workflows/coverage.yml"><img src="https://img.shields.io/static/v1?label=coverage&message=80%2B%25&color=2ea44f" alt="coverage - 80+%"></a>
+    <a href="https://github.com/ably/ably-chat-swift/actions/workflows/coverage.yml"><img src="https://img.shields.io/static/v1?label=coverage&message=80%2B%25&color=2ea44f" alt="coverage - 80+%"></a>
-    <img src="https://badgen.net/github/license/3scale/saas-operator" alt="License" />
+    <img src="https://badgen.net/github/license/ably/ably-chat-swift" alt="License" />

Line range hint 467-477: LGTM!

The example app section is well-structured and clearly distinguishes between SDK and example app requirements.

🧰 Tools
🪛 LanguageTool

[grammar] ~47-~47: Possible agreement error. The noun participation seems to be uncountable; consider using: “much participation”, “a good deal of participation”.
Context: ... rooms for 1:1, 1:many, many:1 and many:many participation. - Sending and receiving chat messages....

(MANY_NN_U)


[uncategorized] ~50-~50: The abbreviation “i.e.” (= that is) requires two periods.
Context: ...at participants. - Chat room occupancy, i.e total number of connections and presenc...

(I_E)


[grammar] ~60-~60: You used an adverb (‘Ably’) instead of an adjective, or a noun (‘account’) instead of another adjective.
Context: ...need the following prerequisites: - An Ably account - You can [sign up](https://ably.co...

(A_RB_NN)


[grammar] ~63-~63: You used an adverb (‘Ably’) instead of an adjective, or a noun (‘API’) instead of another adjective.
Context: ...ignup) to the generous free tier. - An Ably API key - Use the default or create a n...

(A_RB_NN)


[typographical] ~80-~80: The word “however” is an adverb that can’t be used like a conjunction, and therefore needs to be separated from the sentence.
Context: ...he API Key directly for testing purposes, however it is strongly recommended that you use...

(HOWEVER_SENTENCE)


[style] ~145-~145: Consider a shorter alternative to avoid wordiness.
Context: ...ing: TypingOptions(timeout: 3.0))) ``` In order to use the same room but with different op...

(IN_ORDER_TO_PREMIUM)


[uncategorized] ~171-~171: Use a comma before ‘and’ if it connects two independent clauses (unless they are closely connected and short).
Context: ... any event listeners you have registered and they will begin to receive events again...

(COMMA_COMPOUND_SENTENCE)


[style] ~171-~171: ‘in the event that’ might be wordy. Consider a shorter alternative.
Context: ...they will begin to receive events again in the event that the room is re-attached. ### Releasing...

(EN_WORDINESS_PREMIUM_IN_THE_EVENT_THAT)


[style] ~177-~177: ‘completely finished’ might be wordy. Consider a shorter alternative.
Context: ...running 1:1 support chat). When you are completely finished with a room, you may release it which...

(EN_WORDINESS_PREMIUM_COMPLETELY_FINISHED)


[uncategorized] ~183-~183: Use a comma before ‘and’ if it connects two independent clauses (unless they are closely connected and short).
Context: ...is called, the room will become unusable and you will need to get a new instance usi...

(COMMA_COMPOUND_SENTENCE)


[uncategorized] ~224-~224: Use a comma before ‘and’ if it connects two independent clauses (unless they are closely connected and short).
Context: ...nection, continuity cannot be guaranteed and you'll need to take steps to recover me...

(COMMA_COMPOUND_SENTENCE)


[style] ~328-~328: Consider shortening or rephrasing this to strengthen your wording.
Context: ...the presence data Updates allow you to make changes to the custom data associated with a prese...

(MAKE_CHANGES)


[style] ~468-~468: Consider a shorter alternative to avoid wordiness.
Context: ...in the Example directory. In order to allow the app to use modern SwiftUI fea...

(IN_ORDER_TO_PREMIUM)

🪛 Markdownlint (0.35.0)

61-61: Expected: 2; Actual: 4
Unordered list indentation

(MD007, ul-indent)


64-64: Expected: 2; Actual: 4
Unordered list indentation

(MD007, ul-indent)


66-66: Expected: 2; Actual: 4
Unordered list indentation

(MD007, ul-indent)


Line range hint 1-522: Verify documentation completeness

Let's verify that all public APIs are documented:

✅ Verification successful

Let me analyze the documentation completeness by comparing the public APIs found in the codebase with what's documented in the README.

The scan shows that all major public APIs and their usage are well documented in the README:

  1. Connection management:

    • Public APIs: current, previous, error, retryIn
    • Documented: "Current connection status", "Subscribing to connection status changes"
  2. Room operations:

    • Public APIs: attach(), detach(), status properties
    • Documented: "Attaching to a room", "Detaching from a room", "Current status of a room"
  3. Messages:

    • Public APIs: Message properties and methods
    • Documented: "Subscribing to incoming messages", "Sending messages", "Retrieving message history"
  4. Presence:

    • Public APIs: Presence properties and methods
    • Documented: "Retrieving online members", "Entering the presence set", "Updating presence data"
  5. Typing indicators:

    • Public APIs: Typing properties and methods
    • Documented: "Start typing", "Stop typing", "Subscribing to typing updates"
  6. Occupancy:

    • Public APIs: Occupancy properties
    • Documented: "Subscribing to occupancy updates", "Retrieving occupancy"
  7. Reactions:

    • Public APIs: Reaction properties and methods
    • Documented: "Sending a reaction", "Subscribing to room reactions"

The documentation in README.md comprehensively covers all the public APIs found in the codebase, with clear examples and explanations for each feature. The structure follows a logical flow from basic setup to advanced features.

🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Find all public methods in Swift files and compare with documented APIs
echo "Searching for public APIs..."
rg "public (func|var|let)" -g "*.swift" -A 1

echo "Searching for documented APIs in README..."
rg "^### \w+" README.md

Length of output: 8319

🧰 Tools
🪛 LanguageTool

[grammar] ~47-~47: Possible agreement error. The noun participation seems to be uncountable; consider using: “much participation”, “a good deal of participation”.
Context: ... rooms for 1:1, 1:many, many:1 and many:many participation. - Sending and receiving chat messages....

(MANY_NN_U)


[uncategorized] ~50-~50: The abbreviation “i.e.” (= that is) requires two periods.
Context: ...at participants. - Chat room occupancy, i.e total number of connections and presenc...

(I_E)


[grammar] ~60-~60: You used an adverb (‘Ably’) instead of an adjective, or a noun (‘account’) instead of another adjective.
Context: ...need the following prerequisites: - An Ably account - You can [sign up](https://ably.co...

(A_RB_NN)


[grammar] ~63-~63: You used an adverb (‘Ably’) instead of an adjective, or a noun (‘API’) instead of another adjective.
Context: ...ignup) to the generous free tier. - An Ably API key - Use the default or create a n...

(A_RB_NN)


[typographical] ~80-~80: The word “however” is an adverb that can’t be used like a conjunction, and therefore needs to be separated from the sentence.
Context: ...he API Key directly for testing purposes, however it is strongly recommended that you use...

(HOWEVER_SENTENCE)


[style] ~145-~145: Consider a shorter alternative to avoid wordiness.
Context: ...ing: TypingOptions(timeout: 3.0))) ``` In order to use the same room but with different op...

(IN_ORDER_TO_PREMIUM)


[uncategorized] ~171-~171: Use a comma before ‘and’ if it connects two independent clauses (unless they are closely connected and short).
Context: ... any event listeners you have registered and they will begin to receive events again...

(COMMA_COMPOUND_SENTENCE)


[style] ~171-~171: ‘in the event that’ might be wordy. Consider a shorter alternative.
Context: ...they will begin to receive events again in the event that the room is re-attached. ### Releasing...

(EN_WORDINESS_PREMIUM_IN_THE_EVENT_THAT)


[style] ~177-~177: ‘completely finished’ might be wordy. Consider a shorter alternative.
Context: ...running 1:1 support chat). When you are completely finished with a room, you may release it which...

(EN_WORDINESS_PREMIUM_COMPLETELY_FINISHED)


[uncategorized] ~183-~183: Use a comma before ‘and’ if it connects two independent clauses (unless they are closely connected and short).
Context: ...is called, the room will become unusable and you will need to get a new instance usi...

(COMMA_COMPOUND_SENTENCE)


[uncategorized] ~224-~224: Use a comma before ‘and’ if it connects two independent clauses (unless they are closely connected and short).
Context: ...nection, continuity cannot be guaranteed and you'll need to take steps to recover me...

(COMMA_COMPOUND_SENTENCE)


[style] ~328-~328: Consider shortening or rephrasing this to strengthen your wording.
Context: ...the presence data Updates allow you to make changes to the custom data associated with a prese...

(MAKE_CHANGES)


[style] ~468-~468: Consider a shorter alternative to avoid wordiness.
Context: ...in the Example directory. In order to allow the app to use modern SwiftUI fea...

(IN_ORDER_TO_PREMIUM)

🪛 Markdownlint (0.35.0)

61-61: Expected: 2; Actual: 4
Unordered list indentation

(MD007, ul-indent)


64-64: Expected: 2; Actual: 4
Unordered list indentation

(MD007, ul-indent)


66-66: Expected: 2; Actual: 4
Unordered list indentation

(MD007, ul-indent)

README.md Outdated Show resolved Hide resolved
Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 0

🧹 Outside diff range and nitpick comments (3)
README.md (3)

46-49: Fix formatting in features list

  1. Add missing period after "i.e." in the occupancy description
  2. Consider rephrasing "participation" to improve readability
- Chat room occupancy, i.e total number of connections and presence members.
+ Chat room occupancy, i.e., total number of connections and presence members.
🧰 Tools
🪛 LanguageTool

[grammar] ~46-~46: Possible agreement error. The noun participation seems to be uncountable; consider using: “much participation”, “a good deal of participation”.
Context: ... rooms for 1:1, 1:many, many:1 and many:many participation. - Sending and receiving chat messages....

(MANY_NN_U)


[uncategorized] ~49-~49: The abbreviation “i.e.” (= that is) requires two periods.
Context: ...at participants. - Chat room occupancy, i.e total number of connections and presenc...

(I_E)


59-67: Fix list indentation in prerequisites section

The nested list items should use consistent 2-space indentation for better readability.

🧰 Tools
🪛 LanguageTool

[grammar] ~59-~59: You used an adverb (‘Ably’) instead of an adjective, or a noun (‘account’) instead of another adjective.
Context: ...need the following prerequisites: - An Ably account - You can [sign up](https://ably.co...

(A_RB_NN)


[grammar] ~62-~62: You used an adverb (‘Ably’) instead of an adjective, or a noun (‘API’) instead of another adjective.
Context: ...ignup) to the generous free tier. - An Ably API key - Use the default or create a n...

(A_RB_NN)

🪛 Markdownlint (0.35.0)

60-60: Expected: 2; Actual: 4
Unordered list indentation

(MD007, ul-indent)


63-63: Expected: 2; Actual: 4
Unordered list indentation

(MD007, ul-indent)


65-65: Expected: 2; Actual: 4
Unordered list indentation

(MD007, ul-indent)


491-491: Fix hyphenation in "side effects"

Remove the hyphen from "side-effects" as it should be written as "side effects".

- **Warning**: You should not attempt to change the state of a channel directly. Doing so may cause unintended side-effects in the Chat SDK.
+ **Warning**: You should not attempt to change the state of a channel directly. Doing so may cause unintended side effects in the Chat SDK.
🧰 Tools
🪛 LanguageTool

[misspelling] ~491-~491: Did you mean “side effects” (=adverse effect, unintended consequence)? Open compounds are not hyphenated.
Context: ...directly. Doing so may cause unintended side-effects in the Chat SDK. ### Channels Used Fo...

(AFFECT_EFFECT)

📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL

📥 Commits

Reviewing files that changed from the base of the PR and between e3907cf and 08ce80d.

📒 Files selected for processing (2)
  • .prettierignore (1 hunks)
  • README.md (3 hunks)
✅ Files skipped from review due to trivial changes (1)
  • .prettierignore
🧰 Additional context used
🪛 LanguageTool
README.md

[grammar] ~46-~46: Possible agreement error. The noun participation seems to be uncountable; consider using: “much participation”, “a good deal of participation”.
Context: ... rooms for 1:1, 1:many, many:1 and many:many participation. - Sending and receiving chat messages....

(MANY_NN_U)


[uncategorized] ~49-~49: The abbreviation “i.e.” (= that is) requires two periods.
Context: ...at participants. - Chat room occupancy, i.e total number of connections and presenc...

(I_E)


[grammar] ~59-~59: You used an adverb (‘Ably’) instead of an adjective, or a noun (‘account’) instead of another adjective.
Context: ...need the following prerequisites: - An Ably account - You can [sign up](https://ably.co...

(A_RB_NN)


[grammar] ~62-~62: You used an adverb (‘Ably’) instead of an adjective, or a noun (‘API’) instead of another adjective.
Context: ...ignup) to the generous free tier. - An Ably API key - Use the default or create a n...

(A_RB_NN)


[typographical] ~79-~79: The word “however” is an adverb that can’t be used like a conjunction, and therefore needs to be separated from the sentence.
Context: ...he API Key directly for testing purposes, however it is strongly recommended that you use...

(HOWEVER_SENTENCE)


[style] ~144-~144: Consider a shorter alternative to avoid wordiness.
Context: ...ing: TypingOptions(timeout: 3.0))) ``` In order to use the same room but with different op...

(IN_ORDER_TO_PREMIUM)


[uncategorized] ~170-~170: Use a comma before ‘and’ if it connects two independent clauses (unless they are closely connected and short).
Context: ... any event listeners you have registered and they will begin to receive events again...

(COMMA_COMPOUND_SENTENCE)


[style] ~170-~170: ‘in the event that’ might be wordy. Consider a shorter alternative.
Context: ...they will begin to receive events again in the event that the room is re-attached. ### Releasing...

(EN_WORDINESS_PREMIUM_IN_THE_EVENT_THAT)


[style] ~176-~176: ‘completely finished’ might be wordy. Consider a shorter alternative.
Context: ...running 1:1 support chat). When you are completely finished with a room, you may release it which...

(EN_WORDINESS_PREMIUM_COMPLETELY_FINISHED)


[uncategorized] ~182-~182: Use a comma before ‘and’ if it connects two independent clauses (unless they are closely connected and short).
Context: ...is called, the room will become unusable and you will need to get a new instance usi...

(COMMA_COMPOUND_SENTENCE)


[uncategorized] ~223-~223: Use a comma before ‘and’ if it connects two independent clauses (unless they are closely connected and short).
Context: ...nection, continuity cannot be guaranteed and you'll need to take steps to recover me...

(COMMA_COMPOUND_SENTENCE)


[style] ~327-~327: Consider shortening or rephrasing this to strengthen your wording.
Context: ...the presence data Updates allow you to make changes to the custom data associated with a prese...

(MAKE_CHANGES)


[misspelling] ~491-~491: Did you mean “side effects” (=adverse effect, unintended consequence)? Open compounds are not hyphenated.
Context: ...directly. Doing so may cause unintended side-effects in the Chat SDK. ### Channels Used Fo...

(AFFECT_EFFECT)

🪛 Markdownlint (0.35.0)
README.md

60-60: Expected: 2; Actual: 4
Unordered list indentation

(MD007, ul-indent)


63-63: Expected: 2; Actual: 4
Unordered list indentation

(MD007, ul-indent)


65-65: Expected: 2; Actual: 4
Unordered list indentation

(MD007, ul-indent)


513-513: null
Bare URL used

(MD034, no-bare-urls)

🔇 Additional comments (3)
README.md (3)

4-6: Fix incorrect badge URLs

The license badge URL still points to an unrelated repository (3scale/saas-operator).

-    <img src="https://badgen.net/github/license/3scale/saas-operator" alt="License" />
+    <img src="https://badgen.net/github/license/ably/ably-chat-swift" alt="License" />

513-514: Fix support links formatting

The bare URL should be properly formatted as a Markdown link.

- Please visit http://support.ably.com/ for access to our knowledge base and to ask for any assistance. You can also view
- the community reported [Github issues](https://github.com/ably/ably-chat-swift/issues) or raise one yourself.
+ Please visit [our support site](http://support.ably.com/) for access to our knowledge base and to ask for any assistance. You can also view
+ the community reported [GitHub issues](https://github.com/ably/ably-chat-swift/issues) or raise one yourself.
🧰 Tools
🪛 Markdownlint (0.35.0)

513-513: null
Bare URL used

(MD034, no-bare-urls)


Line range hint 1-522: Documentation is comprehensive and well-structured

The README provides clear instructions, good examples, and covers all major features of the SDK. The minor formatting issues don't impact the overall quality and usefulness of the documentation.

🧰 Tools
🪛 LanguageTool

[grammar] ~46-~46: Possible agreement error. The noun participation seems to be uncountable; consider using: “much participation”, “a good deal of participation”.
Context: ... rooms for 1:1, 1:many, many:1 and many:many participation. - Sending and receiving chat messages....

(MANY_NN_U)


[uncategorized] ~49-~49: The abbreviation “i.e.” (= that is) requires two periods.
Context: ...at participants. - Chat room occupancy, i.e total number of connections and presenc...

(I_E)


[grammar] ~59-~59: You used an adverb (‘Ably’) instead of an adjective, or a noun (‘account’) instead of another adjective.
Context: ...need the following prerequisites: - An Ably account - You can [sign up](https://ably.co...

(A_RB_NN)


[grammar] ~62-~62: You used an adverb (‘Ably’) instead of an adjective, or a noun (‘API’) instead of another adjective.
Context: ...ignup) to the generous free tier. - An Ably API key - Use the default or create a n...

(A_RB_NN)


[typographical] ~79-~79: The word “however” is an adverb that can’t be used like a conjunction, and therefore needs to be separated from the sentence.
Context: ...he API Key directly for testing purposes, however it is strongly recommended that you use...

(HOWEVER_SENTENCE)


[style] ~144-~144: Consider a shorter alternative to avoid wordiness.
Context: ...ing: TypingOptions(timeout: 3.0))) ``` In order to use the same room but with different op...

(IN_ORDER_TO_PREMIUM)


[uncategorized] ~170-~170: Use a comma before ‘and’ if it connects two independent clauses (unless they are closely connected and short).
Context: ... any event listeners you have registered and they will begin to receive events again...

(COMMA_COMPOUND_SENTENCE)


[style] ~170-~170: ‘in the event that’ might be wordy. Consider a shorter alternative.
Context: ...they will begin to receive events again in the event that the room is re-attached. ### Releasing...

(EN_WORDINESS_PREMIUM_IN_THE_EVENT_THAT)


[style] ~176-~176: ‘completely finished’ might be wordy. Consider a shorter alternative.
Context: ...running 1:1 support chat). When you are completely finished with a room, you may release it which...

(EN_WORDINESS_PREMIUM_COMPLETELY_FINISHED)


[uncategorized] ~182-~182: Use a comma before ‘and’ if it connects two independent clauses (unless they are closely connected and short).
Context: ...is called, the room will become unusable and you will need to get a new instance usi...

(COMMA_COMPOUND_SENTENCE)


[uncategorized] ~223-~223: Use a comma before ‘and’ if it connects two independent clauses (unless they are closely connected and short).
Context: ...nection, continuity cannot be guaranteed and you'll need to take steps to recover me...

(COMMA_COMPOUND_SENTENCE)


[style] ~327-~327: Consider shortening or rephrasing this to strengthen your wording.
Context: ...the presence data Updates allow you to make changes to the custom data associated with a prese...

(MAKE_CHANGES)


[style] ~467-~467: Consider a shorter alternative to avoid wordiness.
Context: ...in the Example directory. In order to allow the app to use modern SwiftUI fea...

(IN_ORDER_TO_PREMIUM)

🪛 Markdownlint (0.35.0)

60-60: Expected: 2; Actual: 4
Unordered list indentation

(MD007, ul-indent)


63-63: Expected: 2; Actual: 4
Unordered list indentation

(MD007, ul-indent)


65-65: Expected: 2; Actual: 4
Unordered list indentation

(MD007, ul-indent)

.prettierignore Outdated Show resolved Hide resolved
README.md Show resolved Hide resolved
README.md Show resolved Hide resolved
README.md Outdated Show resolved Hide resolved
README.md Outdated Show resolved Hide resolved
Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 0

🧹 Outside diff range and nitpick comments (2)
README.md (2)

46-49: Fix grammatical issues

  1. Consider rephrasing "participation" to improve readability
  2. Add missing period in the abbreviation "i.e."
-rooms for 1:1, 1:many, many:1 and many:many participation.
+rooms supporting 1:1, 1:many, many:1 and many:many communication.
-Chat room occupancy, i.e total number
+Chat room occupancy, i.e. total number
🧰 Tools
🪛 LanguageTool

[grammar] ~46-~46: Possible agreement error. The noun participation seems to be uncountable; consider using: “much participation”, “a good deal of participation”.
Context: ... rooms for 1:1, 1:many, many:1 and many:many participation. - Sending and receiving chat messages....

(MANY_NN_U)


[uncategorized] ~49-~49: The abbreviation “i.e.” (= that is) requires two periods.
Context: ...at participants. - Chat room occupancy, i.e total number of connections and presenc...

(I_E)


491-491: Fix hyphenation in compound word

The term "side-effects" should not be hyphenated.

-**Warning**: You should not attempt to change the state of a channel directly. Doing so may cause unintended side-effects in the Chat SDK.
+**Warning**: You should not attempt to change the state of a channel directly. Doing so may cause unintended side effects in the Chat SDK.
🧰 Tools
🪛 LanguageTool

[misspelling] ~491-~491: Did you mean “side effects” (=adverse effect, unintended consequence)? Open compounds are not hyphenated.
Context: ...directly. Doing so may cause unintended side-effects in the Chat SDK. ### Channels Used Fo...

(AFFECT_EFFECT)

📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL

📥 Commits

Reviewing files that changed from the base of the PR and between 08ce80d and 83ee75e.

⛔ Files ignored due to path filters (1)
  • images/ably-chat-github-header.png is excluded by !**/*.png
📒 Files selected for processing (1)
  • README.md (3 hunks)
🧰 Additional context used
🪛 LanguageTool
README.md

[grammar] ~46-~46: Possible agreement error. The noun participation seems to be uncountable; consider using: “much participation”, “a good deal of participation”.
Context: ... rooms for 1:1, 1:many, many:1 and many:many participation. - Sending and receiving chat messages....

(MANY_NN_U)


[uncategorized] ~49-~49: The abbreviation “i.e.” (= that is) requires two periods.
Context: ...at participants. - Chat room occupancy, i.e total number of connections and presenc...

(I_E)


[grammar] ~59-~59: You used an adverb (‘Ably’) instead of an adjective, or a noun (‘account’) instead of another adjective.
Context: ...need the following prerequisites: - An Ably account - You can [sign up](https://ably.co...

(A_RB_NN)


[grammar] ~62-~62: You used an adverb (‘Ably’) instead of an adjective, or a noun (‘API’) instead of another adjective.
Context: ...ignup) to the generous free tier. - An Ably API key - Use the default or create a n...

(A_RB_NN)


[typographical] ~79-~79: The word “however” is an adverb that can’t be used like a conjunction, and therefore needs to be separated from the sentence.
Context: ...he API Key directly for testing purposes, however it is strongly recommended that you use...

(HOWEVER_SENTENCE)


[style] ~144-~144: Consider a shorter alternative to avoid wordiness.
Context: ...ing: TypingOptions(timeout: 3.0))) ``` In order to use the same room but with different op...

(IN_ORDER_TO_PREMIUM)


[uncategorized] ~170-~170: Use a comma before ‘and’ if it connects two independent clauses (unless they are closely connected and short).
Context: ... any event listeners you have registered and they will begin to receive events again...

(COMMA_COMPOUND_SENTENCE)


[style] ~170-~170: ‘in the event that’ might be wordy. Consider a shorter alternative.
Context: ...they will begin to receive events again in the event that the room is re-attached. ### Releasing...

(EN_WORDINESS_PREMIUM_IN_THE_EVENT_THAT)


[style] ~176-~176: ‘completely finished’ might be wordy. Consider a shorter alternative.
Context: ...running 1:1 support chat). When you are completely finished with a room, you may release it which...

(EN_WORDINESS_PREMIUM_COMPLETELY_FINISHED)


[uncategorized] ~182-~182: Use a comma before ‘and’ if it connects two independent clauses (unless they are closely connected and short).
Context: ...is called, the room will become unusable and you will need to get a new instance usi...

(COMMA_COMPOUND_SENTENCE)


[uncategorized] ~223-~223: Use a comma before ‘and’ if it connects two independent clauses (unless they are closely connected and short).
Context: ...nection, continuity cannot be guaranteed and you'll need to take steps to recover me...

(COMMA_COMPOUND_SENTENCE)


[style] ~327-~327: Consider shortening or rephrasing this to strengthen your wording.
Context: ...the presence data Updates allow you to make changes to the custom data associated with a prese...

(MAKE_CHANGES)


[misspelling] ~491-~491: Did you mean “side effects” (=adverse effect, unintended consequence)? Open compounds are not hyphenated.
Context: ...directly. Doing so may cause unintended side-effects in the Chat SDK. ### Channels Used Fo...

(AFFECT_EFFECT)

🪛 Markdownlint (0.35.0)
README.md

60-60: Expected: 2; Actual: 4
Unordered list indentation

(MD007, ul-indent)


63-63: Expected: 2; Actual: 4
Unordered list indentation

(MD007, ul-indent)


65-65: Expected: 2; Actual: 4
Unordered list indentation

(MD007, ul-indent)


513-513: null
Bare URL used

(MD034, no-bare-urls)

🔇 Additional comments (4)
README.md (4)

4-6: Fix incorrect badge URLs

The license badge URL still points to an unrelated repository (3scale/saas-operator).

-    <img src="https://badgen.net/github/license/3scale/saas-operator" alt="License" />
+    <img src="https://badgen.net/github/license/ably/ably-chat-swift" alt="License" />

71-77: Add missing import statements

The code example should show the required imports for better clarity.

+import Ably
+import AblyChat
+
 let realtimeOptions = ARTClientOptions()

150-152: Use Swift-appropriate terminology

Replace JavaScript Promise terminology with Swift-appropriate terms.

-If a `get` call is currently in progress for the room and `release` is called, the `get` call will reject.
+If a `get` call is currently in progress for the room and `release` is called, the `get` call will fail.

513-514: Fix support links formatting

The support URL should be properly formatted as a Markdown link.

-Please visit http://support.ably.com/ for access to our knowledge base and to ask for any assistance. You can also view
-the community reported [Github issues](https://github.com/ably/ably-chat-kotlin/issues) or raise one yourself.
+Please visit [our support site](http://support.ably.com/) for access to our knowledge base and to ask for any assistance. You can also view
+the community reported [Github issues](https://github.com/ably/ably-chat-swift/issues) or raise one yourself.
🧰 Tools
🪛 Markdownlint (0.35.0)

513-513: null
Bare URL used

(MD034, no-bare-urls)

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 0

🧹 Outside diff range and nitpick comments (2)
README.md (2)

497-503: Clarify shared channel usage

The table shows that Messages, Presence, and Occupancy share the same channel. Consider adding a note explaining why these features share a channel for better understanding.


43-43: Fix grammatical and typographical issues

A few minor issues need attention:

  1. Missing comma after "features" (line 43)
  2. Missing period in "i.e." abbreviation (line 49)
  3. "side-effects" should be "side effects" (line 491)
-This project is under development so we will be incrementally adding new features
+This project is under development, so we will be incrementally adding new features

-Chat room occupancy, i.e total number
+Chat room occupancy, i.e., total number

-unintended side-effects
+unintended side effects

Also applies to: 49-49, 491-491

🧰 Tools
🪛 LanguageTool

[uncategorized] ~43-~43: Possible missing comma found.
Context: ...ed chat features This project is under development so we will be incrementally adding new ...

(AI_HYDRA_LEO_MISSING_COMMA)

📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL

📥 Commits

Reviewing files that changed from the base of the PR and between 83ee75e and 3b557c3.

📒 Files selected for processing (1)
  • README.md (3 hunks)
🧰 Additional context used
🪛 LanguageTool
README.md

[uncategorized] ~43-~43: Possible missing comma found.
Context: ...ed chat features This project is under development so we will be incrementally adding new ...

(AI_HYDRA_LEO_MISSING_COMMA)


[grammar] ~46-~46: Possible agreement error. The noun participation seems to be uncountable; consider using: “much participation”, “a good deal of participation”.
Context: ... rooms for 1:1, 1:many, many:1 and many:many participation. - Sending and receiving chat messages....

(MANY_NN_U)


[uncategorized] ~49-~49: The abbreviation “i.e.” (= that is) requires two periods.
Context: ...at participants. - Chat room occupancy, i.e total number of connections and presenc...

(I_E)


[grammar] ~59-~59: You used an adverb (‘Ably’) instead of an adjective, or a noun (‘account’) instead of another adjective.
Context: ...need the following prerequisites: - An Ably account - You can [sign up](https://ably.co...

(A_RB_NN)


[grammar] ~62-~62: You used an adverb (‘Ably’) instead of an adjective, or a noun (‘API’) instead of another adjective.
Context: ...ignup) to the generous free tier. - An Ably API key - Use the default or create a n...

(A_RB_NN)


[typographical] ~79-~79: The word “however” is an adverb that can’t be used like a conjunction, and therefore needs to be separated from the sentence.
Context: ...he API Key directly for testing purposes, however it is strongly recommended that you use...

(HOWEVER_SENTENCE)


[uncategorized] ~83-~83: Possible missing comma found.
Context: ...en) in production environments. To use Chat you must also set a [clientId](https:...

(AI_HYDRA_LEO_MISSING_COMMA)


[style] ~144-~144: Consider a shorter alternative to avoid wordiness.
Context: ...ing: TypingOptions(timeout: 3.0))) ``` In order to use the same room but with different op...

(IN_ORDER_TO_PREMIUM)


[uncategorized] ~170-~170: Use a comma before ‘and’ if it connects two independent clauses (unless they are closely connected and short).
Context: ... any event listeners you have registered and they will begin to receive events again...

(COMMA_COMPOUND_SENTENCE)


[style] ~170-~170: ‘in the event that’ might be wordy. Consider a shorter alternative.
Context: ...they will begin to receive events again in the event that the room is re-attached. ### Releasing...

(EN_WORDINESS_PREMIUM_IN_THE_EVENT_THAT)


[style] ~176-~176: ‘completely finished’ might be wordy. Consider a shorter alternative.
Context: ...running 1:1 support chat). When you are completely finished with a room, you may release it which...

(EN_WORDINESS_PREMIUM_COMPLETELY_FINISHED)


[uncategorized] ~176-~176: Possible missing comma found.
Context: ...finished with a room, you may release it which allows the underlying resources t...

(AI_HYDRA_LEO_MISSING_COMMA)


[uncategorized] ~182-~182: Use a comma before ‘and’ if it connects two independent clauses (unless they are closely connected and short).
Context: ...is called, the room will become unusable and you will need to get a new instance usi...

(COMMA_COMPOUND_SENTENCE)


[uncategorized] ~223-~223: Use a comma before ‘and’ if it connects two independent clauses (unless they are closely connected and short).
Context: ...nection, continuity cannot be guaranteed and you'll need to take steps to recover me...

(COMMA_COMPOUND_SENTENCE)


[uncategorized] ~243-~243: Possible missing comma found.
Context: ...ming messages To subscribe to incoming messages you create a subscription for the room ...

(AI_HYDRA_LEO_MISSING_COMMA)


[style] ~327-~327: Consider shortening or rephrasing this to strengthen your wording.
Context: ...the presence data Updates allow you to make changes to the custom data associated with a prese...

(MAKE_CHANGES)


[uncategorized] ~381-~381: It seems likely that a singular genitive (’s) apostrophe is missing.
Context: ...s to start will reset the timer, so the clients typing status will remain active. ### ...

(AI_HYDRA_LEO_APOSTROPHE_S_XS)


[misspelling] ~491-~491: Did you mean “side effects” (=adverse effect, unintended consequence)? Open compounds are not hyphenated.
Context: ...directly. Doing so may cause unintended side-effects in the Chat SDK. ### Channels Used Fo...

(AFFECT_EFFECT)

🪛 Markdownlint (0.35.0)
README.md

60-60: Expected: 2; Actual: 4
Unordered list indentation

(MD007, ul-indent)


63-63: Expected: 2; Actual: 4
Unordered list indentation

(MD007, ul-indent)


65-65: Expected: 2; Actual: 4
Unordered list indentation

(MD007, ul-indent)


513-513: null
Bare URL used

(MD034, no-bare-urls)

🔇 Additional comments (3)
README.md (3)

4-6: Fix incorrect badge URLs

The license badge URL still points to an unrelated repository (3scale/saas-operator).

-    <img src="https://badgen.net/github/license/3scale/saas-operator" alt="License" />
+    <img src="https://badgen.net/github/license/ably/ably-chat-swift" alt="License" />

513-514: Fix support links formatting

The support URL should be properly formatted as a Markdown link.

-Please visit http://support.ably.com/ for access to our knowledge base and to ask for any assistance. You can also view
-the community reported [Github issues](https://github.com/ably/ably-chat-swift/issues) or raise one yourself.
+Please visit [our support site](http://support.ably.com/) for access to our knowledge base and to ask for any assistance. You can also view
+the community reported [GitHub issues](https://github.com/ably/ably-chat-swift/issues) or raise one yourself.
🧰 Tools
🪛 Markdownlint (0.35.0)

513-513: null
Bare URL used

(MD034, no-bare-urls)


71-77: 🛠️ Refactor suggestion

Add import statements to the code example

The initialization example should show the required imports for better clarity.

+import Ably
+import AblyChat
+
 let realtimeOptions = ARTClientOptions()
 realtimeOptions.key = "<API_KEY>"
 realtimeOptions.clientId = "<clientId>"
 let realtime = ARTRealtime(options: realtimeOptions)
 let chatClient = DefaultChatClient(realtime: realtime, clientOptions: nil)

Likely invalid or redundant comment.

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 0

🧹 Outside diff range and nitpick comments (3)
README.md (3)

46-49: Fix grammatical issues in the features list

There are a few grammatical issues in the features list:

  1. The phrase "many:many participation" would read better as "many-to-many participation"
  2. The abbreviation "i.e" should be "i.e." (with a period) and followed by a comma
-rooms for 1:1, 1:many, many:1 and many:many participation.
+rooms for 1:1, 1:many, many:1 and many-to-many participation.
-Chat room occupancy, i.e total number
+Chat room occupancy, i.e., total number
🧰 Tools
🪛 LanguageTool

[grammar] ~46-~46: Possible agreement error. The noun participation seems to be uncountable; consider using: “much participation”, “a good deal of participation”.
Context: ... rooms for 1:1, 1:many, many:1 and many:many participation. - Sending and receiving chat messages....

(MANY_NN_U)


[uncategorized] ~49-~49: The abbreviation “i.e.” (= that is) requires two periods.
Context: ...at participants. - Chat room occupancy, i.e total number of connections and presenc...

(I_E)


82-84: Improve sentence structure

The sentence using "however" should be restructured for better readability.

-You can use [basic authentication](https://ably.com/docs/auth/basic) i.e. the API Key directly for testing purposes, however it is strongly recommended that you use [token authentication](https://ably.com/docs/auth/token) in production environments.
+You can use [basic authentication](https://ably.com/docs/auth/basic) i.e., the API Key directly for testing purposes. However, it is strongly recommended that you use [token authentication](https://ably.com/docs/auth/token) in production environments.
🧰 Tools
🪛 LanguageTool

[typographical] ~82-~82: The word “however” is an adverb that can’t be used like a conjunction, and therefore needs to be separated from the sentence.
Context: ...he API Key directly for testing purposes, however it is strongly recommended that you use...

(HOWEVER_SENTENCE)


469-469: Consider adding example app features overview

Consider adding a brief overview of what features the example app demonstrates, to help users understand what they can learn from it.

📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL

📥 Commits

Reviewing files that changed from the base of the PR and between 3b557c3 and 82c0f54.

📒 Files selected for processing (1)
  • README.md (3 hunks)
🧰 Additional context used
🪛 LanguageTool
README.md

[grammar] ~46-~46: Possible agreement error. The noun participation seems to be uncountable; consider using: “much participation”, “a good deal of participation”.
Context: ... rooms for 1:1, 1:many, many:1 and many:many participation. - Sending and receiving chat messages....

(MANY_NN_U)


[uncategorized] ~49-~49: The abbreviation “i.e.” (= that is) requires two periods.
Context: ...at participants. - Chat room occupancy, i.e total number of connections and presenc...

(I_E)


[grammar] ~59-~59: You used an adverb (‘Ably’) instead of an adjective, or a noun (‘account’) instead of another adjective.
Context: ...need the following prerequisites: - An Ably account - You can [sign up](https://ably.co...

(A_RB_NN)


[grammar] ~62-~62: You used an adverb (‘Ably’) instead of an adjective, or a noun (‘API’) instead of another adjective.
Context: ...ignup) to the generous free tier. - An Ably API key - Use the default or create a n...

(A_RB_NN)


[typographical] ~82-~82: The word “however” is an adverb that can’t be used like a conjunction, and therefore needs to be separated from the sentence.
Context: ...he API Key directly for testing purposes, however it is strongly recommended that you use...

(HOWEVER_SENTENCE)


[style] ~147-~147: Consider a shorter alternative to avoid wordiness.
Context: ...ing: TypingOptions(timeout: 3.0))) ``` In order to use the same room but with different op...

(IN_ORDER_TO_PREMIUM)


[uncategorized] ~173-~173: Use a comma before ‘and’ if it connects two independent clauses (unless they are closely connected and short).
Context: ... any event listeners you have registered and they will begin to receive events again...

(COMMA_COMPOUND_SENTENCE)


[style] ~173-~173: ‘in the event that’ might be wordy. Consider a shorter alternative.
Context: ...they will begin to receive events again in the event that the room is re-attached. ### Releasing...

(EN_WORDINESS_PREMIUM_IN_THE_EVENT_THAT)


[style] ~179-~179: ‘completely finished’ might be wordy. Consider a shorter alternative.
Context: ...running 1:1 support chat). When you are completely finished with a room, you may release it which...

(EN_WORDINESS_PREMIUM_COMPLETELY_FINISHED)


[uncategorized] ~185-~185: Use a comma before ‘and’ if it connects two independent clauses (unless they are closely connected and short).
Context: ...is called, the room will become unusable and you will need to get a new instance usi...

(COMMA_COMPOUND_SENTENCE)


[uncategorized] ~226-~226: Use a comma before ‘and’ if it connects two independent clauses (unless they are closely connected and short).
Context: ...nection, continuity cannot be guaranteed and you'll need to take steps to recover me...

(COMMA_COMPOUND_SENTENCE)


[style] ~330-~330: Consider shortening or rephrasing this to strengthen your wording.
Context: ...the presence data Updates allow you to make changes to the custom data associated with a prese...

(MAKE_CHANGES)


[misspelling] ~494-~494: Did you mean “side effects” (=adverse effect, unintended consequence)? Open compounds are not hyphenated.
Context: ...directly. Doing so may cause unintended side-effects in the Chat SDK. ### Channels Used Fo...

(AFFECT_EFFECT)

🪛 Markdownlint (0.35.0)
README.md

60-60: Expected: 2; Actual: 4
Unordered list indentation

(MD007, ul-indent)


63-63: Expected: 2; Actual: 4
Unordered list indentation

(MD007, ul-indent)


65-65: Expected: 2; Actual: 4
Unordered list indentation

(MD007, ul-indent)


516-516: null
Bare URL used

(MD034, no-bare-urls)

🔇 Additional comments (4)
README.md (4)

4-6: Fix incorrect badge URLs

The license badge URL still points to an unrelated repository (3scale/saas-operator). Update it to point to this repository.

-    <img src="https://badgen.net/github/license/3scale/saas-operator" alt="License" />
+    <img src="https://badgen.net/github/license/ably/ably-chat-swift" alt="License" />

516-517: Fix support links

The support URL should be properly formatted as a Markdown link.

-Please visit http://support.ably.com/ for access to our knowledge base and to ask for any assistance. You can also view
-the community reported [Github issues](https://github.com/ably/ably-chat-swift/issues) or raise one yourself.
+Please visit [our support site](http://support.ably.com/) for access to our knowledge base and to ask for any assistance. You can also view
+the community reported [GitHub issues](https://github.com/ably/ably-chat-swift/issues) or raise one yourself.
🧰 Tools
🪛 Markdownlint (0.35.0)

516-516: null
Bare URL used

(MD034, no-bare-urls)


Line range hint 1-524: Overall documentation looks great!

The README is comprehensive, well-structured, and provides clear guidance for users. The identified issues are minor and once addressed, this will be an excellent documentation resource for the SDK.

🧰 Tools
🪛 LanguageTool

[grammar] ~46-~46: Possible agreement error. The noun participation seems to be uncountable; consider using: “much participation”, “a good deal of participation”.
Context: ... rooms for 1:1, 1:many, many:1 and many:many participation. - Sending and receiving chat messages....

(MANY_NN_U)


[uncategorized] ~49-~49: The abbreviation “i.e.” (= that is) requires two periods.
Context: ...at participants. - Chat room occupancy, i.e total number of connections and presenc...

(I_E)


[grammar] ~59-~59: You used an adverb (‘Ably’) instead of an adjective, or a noun (‘account’) instead of another adjective.
Context: ...need the following prerequisites: - An Ably account - You can [sign up](https://ably.co...

(A_RB_NN)


[grammar] ~62-~62: You used an adverb (‘Ably’) instead of an adjective, or a noun (‘API’) instead of another adjective.
Context: ...ignup) to the generous free tier. - An Ably API key - Use the default or create a n...

(A_RB_NN)


[typographical] ~82-~82: The word “however” is an adverb that can’t be used like a conjunction, and therefore needs to be separated from the sentence.
Context: ...he API Key directly for testing purposes, however it is strongly recommended that you use...

(HOWEVER_SENTENCE)


[style] ~147-~147: Consider a shorter alternative to avoid wordiness.
Context: ...ing: TypingOptions(timeout: 3.0))) ``` In order to use the same room but with different op...

(IN_ORDER_TO_PREMIUM)


[uncategorized] ~173-~173: Use a comma before ‘and’ if it connects two independent clauses (unless they are closely connected and short).
Context: ... any event listeners you have registered and they will begin to receive events again...

(COMMA_COMPOUND_SENTENCE)


[style] ~173-~173: ‘in the event that’ might be wordy. Consider a shorter alternative.
Context: ...they will begin to receive events again in the event that the room is re-attached. ### Releasing...

(EN_WORDINESS_PREMIUM_IN_THE_EVENT_THAT)


[style] ~179-~179: ‘completely finished’ might be wordy. Consider a shorter alternative.
Context: ...running 1:1 support chat). When you are completely finished with a room, you may release it which...

(EN_WORDINESS_PREMIUM_COMPLETELY_FINISHED)


[uncategorized] ~185-~185: Use a comma before ‘and’ if it connects two independent clauses (unless they are closely connected and short).
Context: ...is called, the room will become unusable and you will need to get a new instance usi...

(COMMA_COMPOUND_SENTENCE)


[uncategorized] ~226-~226: Use a comma before ‘and’ if it connects two independent clauses (unless they are closely connected and short).
Context: ...nection, continuity cannot be guaranteed and you'll need to take steps to recover me...

(COMMA_COMPOUND_SENTENCE)


[style] ~330-~330: Consider shortening or rephrasing this to strengthen your wording.
Context: ...the presence data Updates allow you to make changes to the custom data associated with a prese...

(MAKE_CHANGES)


[style] ~470-~470: Consider a shorter alternative to avoid wordiness.
Context: ...in the Example directory. In order to allow the app to use modern SwiftUI fea...

(IN_ORDER_TO_PREMIUM)

🪛 Markdownlint (0.35.0)

60-60: Expected: 2; Actual: 4
Unordered list indentation

(MD007, ul-indent)


63-63: Expected: 2; Actual: 4
Unordered list indentation

(MD007, ul-indent)


65-65: Expected: 2; Actual: 4
Unordered list indentation

(MD007, ul-indent)


38-38: Verify version number consistency

The package version in the installation example should match the version badge shown at the top of the README (which shows 0.1.0-SNAPSHOT).

Copy link
Collaborator

@lawrence-forooghian lawrence-forooghian left a comment

Choose a reason for hiding this comment

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

Looks good, just need to sort out the linting issue and then I'll resolve that conversation

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 0

🧹 Outside diff range and nitpick comments (3)
README.md (3)

46-51: Fix grammatical issues in features list

Please address the following:

  1. Add period after "i.e." in "i.e total number"
  2. Consider consistent formatting for list items (all items should end with periods)
-Chat room occupancy, i.e total number of connections and presence members.
+Chat room occupancy, i.e., total number of connections and presence members.
🧰 Tools
🪛 LanguageTool

[grammar] ~46-~46: Possible agreement error. The noun participation seems to be uncountable; consider using: “much participation”, “a good deal of participation”.
Context: ... rooms for 1:1, 1:many, many:1 and many:many participation. - Sending and receiving chat messages....

(MANY_NN_U)


[uncategorized] ~49-~49: The abbreviation “i.e.” (= that is) requires two periods.
Context: ...at participants. - Chat room occupancy, i.e total number of connections and presenc...

(I_E)


498-498: Fix hyphenation in warning message

"side-effects" should be "side effects" as it's an open compound.

-**Warning**: You should not attempt to change the state of a channel directly. Doing so may cause unintended side-effects in the Chat SDK.
+**Warning**: You should not attempt to change the state of a channel directly. Doing so may cause unintended side effects in the Chat SDK.
🧰 Tools
🪛 LanguageTool

[misspelling] ~498-~498: Did you mean “side effects” (=adverse effect, unintended consequence)? Open compounds are not hyphenated.
Context: ...directly. Doing so may cause unintended side-effects in the Chat SDK. ### Channels Used Fo...

(AFFECT_EFFECT)


504-510: Consider enhancing the channels table

The table shows that Messages, Presence, and Occupancy all use the same channel. Consider adding a note explaining why these features share the same channel and how they interact.

📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL

📥 Commits

Reviewing files that changed from the base of the PR and between 82c0f54 and 0b0fc36.

📒 Files selected for processing (1)
  • README.md (3 hunks)
🧰 Additional context used
🪛 LanguageTool
README.md

[grammar] ~46-~46: Possible agreement error. The noun participation seems to be uncountable; consider using: “much participation”, “a good deal of participation”.
Context: ... rooms for 1:1, 1:many, many:1 and many:many participation. - Sending and receiving chat messages....

(MANY_NN_U)


[uncategorized] ~49-~49: The abbreviation “i.e.” (= that is) requires two periods.
Context: ...at participants. - Chat room occupancy, i.e total number of connections and presenc...

(I_E)


[grammar] ~59-~59: You used an adverb (‘Ably’) instead of an adjective, or a noun (‘account’) instead of another adjective.
Context: ...need the following prerequisites: - An Ably account - You can [sign up](https://ably.com...

(A_RB_NN)


[grammar] ~63-~63: You used an adverb (‘Ably’) instead of an adjective, or a noun (‘API’) instead of another adjective.
Context: ...ignup) to the generous free tier. - An Ably API key - Use the default or create a new...

(A_RB_NN)


[typographical] ~83-~83: The word “however” is an adverb that can’t be used like a conjunction, and therefore needs to be separated from the sentence.
Context: ...he API Key directly for testing purposes, however it is strongly recommended that you use...

(HOWEVER_SENTENCE)


[uncategorized] ~87-~87: Possible missing comma found.
Context: ...en) in production environments. To use Chat you must also set a [clientId](https:...

(AI_HYDRA_LEO_MISSING_COMMA)


[style] ~148-~148: Consider a shorter alternative to avoid wordiness.
Context: ...ing: TypingOptions(timeout: 3.0))) ``` In order to use the same room but with different op...

(IN_ORDER_TO_PREMIUM)


[uncategorized] ~174-~174: Use a comma before ‘and’ if it connects two independent clauses (unless they are closely connected and short).
Context: ... any event listeners you have registered and they will begin to receive events again...

(COMMA_COMPOUND_SENTENCE)


[style] ~174-~174: ‘in the event that’ might be wordy. Consider a shorter alternative.
Context: ...they will begin to receive events again in the event that the room is re-attached. ### Releasing...

(EN_WORDINESS_PREMIUM_IN_THE_EVENT_THAT)


[style] ~180-~180: ‘completely finished’ might be wordy. Consider a shorter alternative.
Context: ...running 1:1 support chat). When you are completely finished with a room, you may release it which...

(EN_WORDINESS_PREMIUM_COMPLETELY_FINISHED)


[uncategorized] ~180-~180: Possible missing comma found.
Context: ...finished with a room, you may release it which allows the underlying resources t...

(AI_HYDRA_LEO_MISSING_COMMA)


[uncategorized] ~186-~186: Use a comma before ‘and’ if it connects two independent clauses (unless they are closely connected and short).
Context: ...is called, the room will become unusable and you will need to get a new instance usi...

(COMMA_COMPOUND_SENTENCE)


[uncategorized] ~227-~227: Use a comma before ‘and’ if it connects two independent clauses (unless they are closely connected and short).
Context: ...nection, continuity cannot be guaranteed and you'll need to take steps to recover me...

(COMMA_COMPOUND_SENTENCE)


[uncategorized] ~229-~229: Possible missing comma found.
Context: ...an subscribeToDiscontinuities method. Here you can register a listener that will b...

(AI_HYDRA_LEO_MISSING_COMMA)


[uncategorized] ~247-~247: Possible missing comma found.
Context: ...ming messages To subscribe to incoming messages you create a subscription for the room ...

(AI_HYDRA_LEO_MISSING_COMMA)


[uncategorized] ~268-~268: Possible missing comma found.
Context: ... messages object also exposes the get method which can be used to request historical...

(AI_HYDRA_LEO_MISSING_COMMA)


[style] ~331-~331: Consider shortening or rephrasing this to strengthen your wording.
Context: ...the presence data Updates allow you to make changes to the custom data associated with a prese...

(MAKE_CHANGES)


[uncategorized] ~385-~385: It seems likely that a singular genitive (’s) apostrophe is missing.
Context: ...s to start will reset the timer, so the clients typing status will remain active. ### ...

(AI_HYDRA_LEO_APOSTROPHE_S_XS)


[misspelling] ~498-~498: Did you mean “side effects” (=adverse effect, unintended consequence)? Open compounds are not hyphenated.
Context: ...directly. Doing so may cause unintended side-effects in the Chat SDK. ### Channels Used Fo...

(AFFECT_EFFECT)

🪛 Markdownlint (0.35.0)
README.md

520-520: null
Bare URL used

(MD034, no-bare-urls)

🔇 Additional comments (3)
README.md (3)

3-7: Fix incorrect badge URLs

The badge URLs need to be updated:

  1. The license badge URL points to an unrelated repository (3scale/saas-operator)
  2. Consider adding a coverage badge that points to the correct workflow
-    <img src="https://badgen.net/github/license/3scale/saas-operator" alt="License" />
+    <img src="https://badgen.net/github/license/ably/ably-chat-swift" alt="License" />

72-81: Enhance code example with additional context

Consider adding:

  1. A note about importing both Ably and AblyChat packages
  2. Clarification about whether users need to explicitly add ably-cocoa to their Package.swift

520-521: Fix support links

  1. The bare URL should be properly formatted as a Markdown link
  2. Consider making the GitHub issues link more descriptive
-Please visit http://support.ably.com/ for access to our knowledge base and to ask for any assistance.
+Please visit [our support site](http://support.ably.com/) for access to our knowledge base and to ask for any assistance.
🧰 Tools
🪛 Markdownlint (0.35.0)

520-520: null
Bare URL used

(MD034, no-bare-urls)

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 0

🧹 Outside diff range and nitpick comments (2)
README.md (2)

43-44: Fix grammatical issues in features list

  1. Add a period after "chat features"
  2. Fix the abbreviation "i.e." to include both periods
-This project is under development so we will be incrementally adding new chat features
+This project is under development so we will be incrementally adding new chat features.
-Chat room occupancy, i.e total number of connections
+Chat room occupancy, i.e., total number of connections

Also applies to: 49-49

🧰 Tools
🪛 LanguageTool

[uncategorized] ~43-~43: Possible missing comma found.
Context: ...ed chat features This project is under development so we will be incrementally adding new ...

(AI_HYDRA_LEO_MISSING_COMMA)


180-180: Improve readability with proper punctuation

Add missing commas in the following sentences:

  1. "When you are completely finished with a room, you may release it, which allows..."
  2. "To subscribe to incoming messages, you create..."
  3. "The messages object also exposes the get method, which can..."

Also applies to: 247-247, 268-268

🧰 Tools
🪛 LanguageTool

[style] ~180-~180: ‘completely finished’ might be wordy. Consider a shorter alternative.
Context: ...running 1:1 support chat). When you are completely finished with a room, you may release it which...

(EN_WORDINESS_PREMIUM_COMPLETELY_FINISHED)


[uncategorized] ~180-~180: Possible missing comma found.
Context: ...finished with a room, you may release it which allows the underlying resources t...

(AI_HYDRA_LEO_MISSING_COMMA)

📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL

📥 Commits

Reviewing files that changed from the base of the PR and between 0b0fc36 and f955260.

⛔ Files ignored due to path filters (1)
  • images/ably-chat-github-header.png is excluded by !**/*.png
📒 Files selected for processing (1)
  • README.md (3 hunks)
🧰 Additional context used
🪛 LanguageTool
README.md

[uncategorized] ~43-~43: Possible missing comma found.
Context: ...ed chat features This project is under development so we will be incrementally adding new ...

(AI_HYDRA_LEO_MISSING_COMMA)


[grammar] ~46-~46: Possible agreement error. The noun participation seems to be uncountable; consider using: “much participation”, “a good deal of participation”.
Context: ... rooms for 1:1, 1:many, many:1 and many:many participation. - Sending and receiving chat messages....

(MANY_NN_U)


[uncategorized] ~49-~49: The abbreviation “i.e.” (= that is) requires two periods.
Context: ...at participants. - Chat room occupancy, i.e total number of connections and presenc...

(I_E)


[grammar] ~59-~59: You used an adverb (‘Ably’) instead of an adjective, or a noun (‘account’) instead of another adjective.
Context: ...need the following prerequisites: - An Ably account - You can [sign up](https://ably.com...

(A_RB_NN)


[grammar] ~63-~63: You used an adverb (‘Ably’) instead of an adjective, or a noun (‘API’) instead of another adjective.
Context: ...ignup) to the generous free tier. - An Ably API key - Use the default or create a new...

(A_RB_NN)


[typographical] ~83-~83: The word “however” is an adverb that can’t be used like a conjunction, and therefore needs to be separated from the sentence.
Context: ...he API Key directly for testing purposes, however it is strongly recommended that you use...

(HOWEVER_SENTENCE)


[style] ~148-~148: Consider a shorter alternative to avoid wordiness.
Context: ...ing: TypingOptions(timeout: 3.0))) ``` In order to use the same room but with different op...

(IN_ORDER_TO_PREMIUM)


[uncategorized] ~174-~174: Use a comma before ‘and’ if it connects two independent clauses (unless they are closely connected and short).
Context: ... any event listeners you have registered and they will begin to receive events again...

(COMMA_COMPOUND_SENTENCE)


[style] ~174-~174: ‘in the event that’ might be wordy. Consider a shorter alternative.
Context: ...they will begin to receive events again in the event that the room is re-attached. ### Releasing...

(EN_WORDINESS_PREMIUM_IN_THE_EVENT_THAT)


[style] ~180-~180: ‘completely finished’ might be wordy. Consider a shorter alternative.
Context: ...running 1:1 support chat). When you are completely finished with a room, you may release it which...

(EN_WORDINESS_PREMIUM_COMPLETELY_FINISHED)


[uncategorized] ~180-~180: Possible missing comma found.
Context: ...finished with a room, you may release it which allows the underlying resources t...

(AI_HYDRA_LEO_MISSING_COMMA)


[uncategorized] ~186-~186: Use a comma before ‘and’ if it connects two independent clauses (unless they are closely connected and short).
Context: ...is called, the room will become unusable and you will need to get a new instance usi...

(COMMA_COMPOUND_SENTENCE)


[uncategorized] ~227-~227: Use a comma before ‘and’ if it connects two independent clauses (unless they are closely connected and short).
Context: ...nection, continuity cannot be guaranteed and you'll need to take steps to recover me...

(COMMA_COMPOUND_SENTENCE)


[uncategorized] ~247-~247: Possible missing comma found.
Context: ...ming messages To subscribe to incoming messages you create a subscription for the room ...

(AI_HYDRA_LEO_MISSING_COMMA)


[uncategorized] ~268-~268: Possible missing comma found.
Context: ... messages object also exposes the get method which can be used to request historical...

(AI_HYDRA_LEO_MISSING_COMMA)


[style] ~331-~331: Consider shortening or rephrasing this to strengthen your wording.
Context: ...the presence data Updates allow you to make changes to the custom data associated with a prese...

(MAKE_CHANGES)


[uncategorized] ~385-~385: It seems likely that a singular genitive (’s) apostrophe is missing.
Context: ...s to start will reset the timer, so the clients typing status will remain active. ### ...

(AI_HYDRA_LEO_APOSTROPHE_S_XS)


[misspelling] ~498-~498: Did you mean “side effects” (=adverse effect, unintended consequence)? Open compounds are not hyphenated.
Context: ...directly. Doing so may cause unintended side-effects in the Chat SDK. ### Channels Used Fo...

(AFFECT_EFFECT)

🪛 Markdownlint (0.35.0)
README.md

520-520: null
Bare URL used

(MD034, no-bare-urls)

🔇 Additional comments (3)
README.md (3)

4-6: Fix incorrect badge URLs

The badge URLs need to be updated:

  1. The license badge URL points to an unrelated repository (3scale/saas-operator)
-    <img src="https://badgen.net/github/license/3scale/saas-operator" alt="License" />
+    <img src="https://badgen.net/github/license/ably/ably-chat-swift" alt="License" />

520-521: Fix support links

  1. The bare URL should be properly formatted as a Markdown link
-Please visit http://support.ably.com/ for access to our knowledge base and to ask for any assistance. You can also view
-the community reported [Github issues](https://github.com/ably/ably-chat-kotlin/issues) or raise one yourself.
+Please visit [our support site](http://support.ably.com/) for access to our knowledge base and to ask for any assistance. You can also view
+the community reported [Github issues](https://github.com/ably/ably-chat-swift/issues) or raise one yourself.
🧰 Tools
🪛 Markdownlint (0.35.0)

520-520: null
Bare URL used

(MD034, no-bare-urls)


Line range hint 1-528: Overall documentation quality is excellent

The README is comprehensive, well-structured, and provides clear guidance on using the SDK. The examples are clear and the technical details are accurate.

🧰 Tools
🪛 LanguageTool

[uncategorized] ~43-~43: Possible missing comma found.
Context: ...ed chat features This project is under development so we will be incrementally adding new ...

(AI_HYDRA_LEO_MISSING_COMMA)


[grammar] ~46-~46: Possible agreement error. The noun participation seems to be uncountable; consider using: “much participation”, “a good deal of participation”.
Context: ... rooms for 1:1, 1:many, many:1 and many:many participation. - Sending and receiving chat messages....

(MANY_NN_U)


[uncategorized] ~49-~49: The abbreviation “i.e.” (= that is) requires two periods.
Context: ...at participants. - Chat room occupancy, i.e total number of connections and presenc...

(I_E)


[grammar] ~59-~59: You used an adverb (‘Ably’) instead of an adjective, or a noun (‘account’) instead of another adjective.
Context: ...need the following prerequisites: - An Ably account - You can [sign up](https://ably.com...

(A_RB_NN)


[grammar] ~63-~63: You used an adverb (‘Ably’) instead of an adjective, or a noun (‘API’) instead of another adjective.
Context: ...ignup) to the generous free tier. - An Ably API key - Use the default or create a new...

(A_RB_NN)


[typographical] ~83-~83: The word “however” is an adverb that can’t be used like a conjunction, and therefore needs to be separated from the sentence.
Context: ...he API Key directly for testing purposes, however it is strongly recommended that you use...

(HOWEVER_SENTENCE)


[style] ~148-~148: Consider a shorter alternative to avoid wordiness.
Context: ...ing: TypingOptions(timeout: 3.0))) ``` In order to use the same room but with different op...

(IN_ORDER_TO_PREMIUM)


[uncategorized] ~174-~174: Use a comma before ‘and’ if it connects two independent clauses (unless they are closely connected and short).
Context: ... any event listeners you have registered and they will begin to receive events again...

(COMMA_COMPOUND_SENTENCE)


[style] ~174-~174: ‘in the event that’ might be wordy. Consider a shorter alternative.
Context: ...they will begin to receive events again in the event that the room is re-attached. ### Releasing...

(EN_WORDINESS_PREMIUM_IN_THE_EVENT_THAT)


[style] ~180-~180: ‘completely finished’ might be wordy. Consider a shorter alternative.
Context: ...running 1:1 support chat). When you are completely finished with a room, you may release it which...

(EN_WORDINESS_PREMIUM_COMPLETELY_FINISHED)


[uncategorized] ~180-~180: Possible missing comma found.
Context: ...finished with a room, you may release it which allows the underlying resources t...

(AI_HYDRA_LEO_MISSING_COMMA)


[uncategorized] ~186-~186: Use a comma before ‘and’ if it connects two independent clauses (unless they are closely connected and short).
Context: ...is called, the room will become unusable and you will need to get a new instance usi...

(COMMA_COMPOUND_SENTENCE)


[uncategorized] ~227-~227: Use a comma before ‘and’ if it connects two independent clauses (unless they are closely connected and short).
Context: ...nection, continuity cannot be guaranteed and you'll need to take steps to recover me...

(COMMA_COMPOUND_SENTENCE)


[uncategorized] ~247-~247: Possible missing comma found.
Context: ...ming messages To subscribe to incoming messages you create a subscription for the room ...

(AI_HYDRA_LEO_MISSING_COMMA)


[uncategorized] ~268-~268: Possible missing comma found.
Context: ... messages object also exposes the get method which can be used to request historical...

(AI_HYDRA_LEO_MISSING_COMMA)


[style] ~331-~331: Consider shortening or rephrasing this to strengthen your wording.
Context: ...the presence data Updates allow you to make changes to the custom data associated with a prese...

(MAKE_CHANGES)


[uncategorized] ~385-~385: It seems likely that a singular genitive (’s) apostrophe is missing.
Context: ...s to start will reset the timer, so the clients typing status will remain active. ### ...

(AI_HYDRA_LEO_APOSTROPHE_S_XS)


[style] ~474-~474: Consider a shorter alternative to avoid wordiness.
Context: ...in the Example directory. In order to allow the app to use modern SwiftUI fea...

(IN_ORDER_TO_PREMIUM)

@lawrence-forooghian
Copy link
Collaborator

👍

@maratal
Copy link
Collaborator Author

maratal commented Dec 10, 2024

@lawrence-forooghian I've updated this PR (removed reference to status.error).

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 0

🧹 Outside diff range and nitpick comments (3)
README.md (3)

43-51: Improve readability with consistent punctuation

The features list has inconsistent punctuation. Some items end with periods while others don't.

-  This project is under development so we will be incrementally adding new features. At this stage, you'll find APIs for the following chat
+  This project is under development, so we will be incrementally adding new features. At this stage, you'll find APIs for the following chat
   features:

-  - Chat rooms for 1:1, 1:many, many:1 and many:many participation.
-  - Sending and receiving chat messages.
-  - Online status aka presence of chat participants.
-  - Chat room occupancy, i.e total number of connections and presence members.
-  - Typing indicators
-  - Room-level reactions (ephemeral at this stage)
+  - Chat rooms for 1:1, 1:many, many:1 and many:many participation
+  - Sending and receiving chat messages
+  - Online status (aka presence of chat participants)
+  - Chat room occupancy (i.e., total number of connections and presence members)
+  - Typing indicators
+  - Room-level reactions (ephemeral at this stage)
🧰 Tools
🪛 LanguageTool

[uncategorized] ~43-~43: Possible missing comma found.
Context: ...ed chat features This project is under development so we will be incrementally adding new ...

(AI_HYDRA_LEO_MISSING_COMMA)


[grammar] ~46-~46: Possible agreement error. The noun participation seems to be uncountable; consider using: “much participation”, “a good deal of participation”.
Context: ... rooms for 1:1, 1:many, many:1 and many:many participation. - Sending and receiving chat messages....

(MANY_NN_U)


[uncategorized] ~49-~49: The abbreviation “i.e.” (= that is) requires two periods.
Context: ...at participants. - Chat room occupancy, i.e total number of connections and presenc...

(I_E)


72-81: Enhance code example with error handling

The initialization example would benefit from error handling to demonstrate best practices.

 import Ably
 import AblyChat

 let realtimeOptions = ARTClientOptions()
 realtimeOptions.key = "<API_KEY>"
 realtimeOptions.clientId = "<clientId>"
-let realtime = ARTRealtime(options: realtimeOptions)
-let chatClient = DefaultChatClient(realtime: realtime, clientOptions: nil)
+do {
+    let realtime = ARTRealtime(options: realtimeOptions)
+    let chatClient = DefaultChatClient(realtime: realtime, clientOptions: nil)
+    // Additional setup...
+} catch {
+    print("Failed to initialize chat client: \(error)")
+}

508-515: Consider adding explanation for shared channels

The table shows that Messages, Presence, and Occupancy features share the same channel (<roomId>::$chat::$chatMessages). It would be helpful to explain why these features are grouped together and any implications this might have.

📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL

📥 Commits

Reviewing files that changed from the base of the PR and between f955260 and 49360b6.

⛔ Files ignored due to path filters (1)
  • images/ably-chat-github-header.png is excluded by !**/*.png
📒 Files selected for processing (1)
  • README.md (3 hunks)
🧰 Additional context used
🪛 LanguageTool
README.md

[uncategorized] ~43-~43: Possible missing comma found.
Context: ...ed chat features This project is under development so we will be incrementally adding new ...

(AI_HYDRA_LEO_MISSING_COMMA)


[grammar] ~46-~46: Possible agreement error. The noun participation seems to be uncountable; consider using: “much participation”, “a good deal of participation”.
Context: ... rooms for 1:1, 1:many, many:1 and many:many participation. - Sending and receiving chat messages....

(MANY_NN_U)


[uncategorized] ~49-~49: The abbreviation “i.e.” (= that is) requires two periods.
Context: ...at participants. - Chat room occupancy, i.e total number of connections and presenc...

(I_E)


[grammar] ~59-~59: You used an adverb (‘Ably’) instead of an adjective, or a noun (‘account’) instead of another adjective.
Context: ...need the following prerequisites: - An Ably account - You can [sign up](https://ably.com...

(A_RB_NN)


[grammar] ~63-~63: You used an adverb (‘Ably’) instead of an adjective, or a noun (‘API’) instead of another adjective.
Context: ...ignup) to the generous free tier. - An Ably API key - Use the default or create a new...

(A_RB_NN)


[typographical] ~83-~83: The word “however” is an adverb that can’t be used like a conjunction, and therefore needs to be separated from the sentence.
Context: ...he API Key directly for testing purposes, however it is strongly recommended that you use...

(HOWEVER_SENTENCE)


[uncategorized] ~87-~87: Possible missing comma found.
Context: ...en) in production environments. To use Chat you must also set a [clientId](https:...

(AI_HYDRA_LEO_MISSING_COMMA)


[style] ~148-~148: Consider a shorter alternative to avoid wordiness.
Context: ...ing: TypingOptions(timeout: 3.0))) ``` In order to use the same room but with different op...

(IN_ORDER_TO_PREMIUM)


[uncategorized] ~174-~174: Use a comma before ‘and’ if it connects two independent clauses (unless they are closely connected and short).
Context: ... any event listeners you have registered and they will begin to receive events again...

(COMMA_COMPOUND_SENTENCE)


[style] ~174-~174: ‘in the event that’ might be wordy. Consider a shorter alternative.
Context: ...they will begin to receive events again in the event that the room is re-attached. ### Releasing...

(EN_WORDINESS_PREMIUM_IN_THE_EVENT_THAT)


[style] ~180-~180: ‘completely finished’ might be wordy. Consider a shorter alternative.
Context: ...running 1:1 support chat). When you are completely finished with a room, you may release it which...

(EN_WORDINESS_PREMIUM_COMPLETELY_FINISHED)


[uncategorized] ~180-~180: Possible missing comma found.
Context: ...finished with a room, you may release it which allows the underlying resources t...

(AI_HYDRA_LEO_MISSING_COMMA)


[uncategorized] ~186-~186: Use a comma before ‘and’ if it connects two independent clauses (unless they are closely connected and short).
Context: ...is called, the room will become unusable and you will need to get a new instance usi...

(COMMA_COMPOUND_SENTENCE)


[uncategorized] ~231-~231: Use a comma before ‘and’ if it connects two independent clauses (unless they are closely connected and short).
Context: ...nection, continuity cannot be guaranteed and you'll need to take steps to recover me...

(COMMA_COMPOUND_SENTENCE)


[uncategorized] ~233-~233: Possible missing comma found.
Context: ...an subscribeToDiscontinuities method. Here you can register a listener that will b...

(AI_HYDRA_LEO_MISSING_COMMA)


[uncategorized] ~251-~251: Possible missing comma found.
Context: ...ming messages To subscribe to incoming messages you create a subscription for the room ...

(AI_HYDRA_LEO_MISSING_COMMA)


[uncategorized] ~272-~272: Possible missing comma found.
Context: ... messages object also exposes the get method which can be used to request historical...

(AI_HYDRA_LEO_MISSING_COMMA)


[style] ~335-~335: Consider shortening or rephrasing this to strengthen your wording.
Context: ...the presence data Updates allow you to make changes to the custom data associated with a prese...

(MAKE_CHANGES)


[uncategorized] ~389-~389: It seems likely that a singular genitive (’s) apostrophe is missing.
Context: ...s to start will reset the timer, so the clients typing status will remain active. ### ...

(AI_HYDRA_LEO_APOSTROPHE_S_XS)


[misspelling] ~502-~502: Did you mean “side effects” (=adverse effect, unintended consequence)? Open compounds are not hyphenated.
Context: ...directly. Doing so may cause unintended side-effects in the Chat SDK. ### Channels Used Fo...

(AFFECT_EFFECT)

🪛 Markdownlint (0.35.0)
README.md

524-524: null
Bare URL used

(MD034, no-bare-urls)

🔇 Additional comments (3)
README.md (3)

4-6: Fix incorrect badge URLs

The license badge URL still points to an unrelated repository (3scale/saas-operator).

-    <img src="https://badgen.net/github/license/3scale/saas-operator" alt="License" />
+    <img src="https://badgen.net/github/license/ably/ably-chat-swift" alt="License" />

524-525: Fix support links formatting

The support URL should be properly formatted as a markdown link.

-Please visit http://support.ably.com/ for access to our knowledge base and to ask for any assistance. You can also view
-the community reported [Github issues](https://github.com/ably/ably-chat-swift/issues) or raise one yourself.
+Please visit [our support site](http://support.ably.com/) for access to our knowledge base and to ask for any assistance. You can also view
+the community reported [GitHub issues](https://github.com/ably/ably-chat-swift/issues) or raise one yourself.
🧰 Tools
🪛 Markdownlint (0.35.0)

524-524: null
Bare URL used

(MD034, no-bare-urls)


Line range hint 1-532: Overall documentation quality is good

The README is comprehensive and well-structured, providing clear guidance on using the SDK. The code examples are helpful and the feature documentation is thorough.

🧰 Tools
🪛 LanguageTool

[uncategorized] ~43-~43: Possible missing comma found.
Context: ...ed chat features This project is under development so we will be incrementally adding new ...

(AI_HYDRA_LEO_MISSING_COMMA)


[grammar] ~46-~46: Possible agreement error. The noun participation seems to be uncountable; consider using: “much participation”, “a good deal of participation”.
Context: ... rooms for 1:1, 1:many, many:1 and many:many participation. - Sending and receiving chat messages....

(MANY_NN_U)


[uncategorized] ~49-~49: The abbreviation “i.e.” (= that is) requires two periods.
Context: ...at participants. - Chat room occupancy, i.e total number of connections and presenc...

(I_E)


[grammar] ~59-~59: You used an adverb (‘Ably’) instead of an adjective, or a noun (‘account’) instead of another adjective.
Context: ...need the following prerequisites: - An Ably account - You can [sign up](https://ably.com...

(A_RB_NN)


[grammar] ~63-~63: You used an adverb (‘Ably’) instead of an adjective, or a noun (‘API’) instead of another adjective.
Context: ...ignup) to the generous free tier. - An Ably API key - Use the default or create a new...

(A_RB_NN)


[typographical] ~83-~83: The word “however” is an adverb that can’t be used like a conjunction, and therefore needs to be separated from the sentence.
Context: ...he API Key directly for testing purposes, however it is strongly recommended that you use...

(HOWEVER_SENTENCE)


[uncategorized] ~87-~87: Possible missing comma found.
Context: ...en) in production environments. To use Chat you must also set a [clientId](https:...

(AI_HYDRA_LEO_MISSING_COMMA)


[style] ~148-~148: Consider a shorter alternative to avoid wordiness.
Context: ...ing: TypingOptions(timeout: 3.0))) ``` In order to use the same room but with different op...

(IN_ORDER_TO_PREMIUM)


[uncategorized] ~174-~174: Use a comma before ‘and’ if it connects two independent clauses (unless they are closely connected and short).
Context: ... any event listeners you have registered and they will begin to receive events again...

(COMMA_COMPOUND_SENTENCE)


[style] ~174-~174: ‘in the event that’ might be wordy. Consider a shorter alternative.
Context: ...they will begin to receive events again in the event that the room is re-attached. ### Releasing...

(EN_WORDINESS_PREMIUM_IN_THE_EVENT_THAT)


[style] ~180-~180: ‘completely finished’ might be wordy. Consider a shorter alternative.
Context: ...running 1:1 support chat). When you are completely finished with a room, you may release it which...

(EN_WORDINESS_PREMIUM_COMPLETELY_FINISHED)


[uncategorized] ~180-~180: Possible missing comma found.
Context: ...finished with a room, you may release it which allows the underlying resources t...

(AI_HYDRA_LEO_MISSING_COMMA)


[uncategorized] ~186-~186: Use a comma before ‘and’ if it connects two independent clauses (unless they are closely connected and short).
Context: ...is called, the room will become unusable and you will need to get a new instance usi...

(COMMA_COMPOUND_SENTENCE)


[uncategorized] ~231-~231: Use a comma before ‘and’ if it connects two independent clauses (unless they are closely connected and short).
Context: ...nection, continuity cannot be guaranteed and you'll need to take steps to recover me...

(COMMA_COMPOUND_SENTENCE)


[uncategorized] ~233-~233: Possible missing comma found.
Context: ...an subscribeToDiscontinuities method. Here you can register a listener that will b...

(AI_HYDRA_LEO_MISSING_COMMA)


[uncategorized] ~251-~251: Possible missing comma found.
Context: ...ming messages To subscribe to incoming messages you create a subscription for the room ...

(AI_HYDRA_LEO_MISSING_COMMA)


[uncategorized] ~272-~272: Possible missing comma found.
Context: ... messages object also exposes the get method which can be used to request historical...

(AI_HYDRA_LEO_MISSING_COMMA)


[style] ~335-~335: Consider shortening or rephrasing this to strengthen your wording.
Context: ...the presence data Updates allow you to make changes to the custom data associated with a prese...

(MAKE_CHANGES)


[uncategorized] ~389-~389: It seems likely that a singular genitive (’s) apostrophe is missing.
Context: ...s to start will reset the timer, so the clients typing status will remain active. ### ...

(AI_HYDRA_LEO_APOSTROPHE_S_XS)


[style] ~478-~478: Consider a shorter alternative to avoid wordiness.
Context: ...in the Example directory. In order to allow the app to use modern SwiftUI fea...

(IN_ORDER_TO_PREMIUM)

README.md Outdated Show resolved Hide resolved
README.md Outdated Show resolved Hide resolved
Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 0

🧹 Outside diff range and nitpick comments (2)
README.md (2)

9-10: Improve readability of chat room types

Consider using consistent formatting for chat room types.

-Ably Chat is a set of purpose-built APIs for a host of chat features enabling you to create 1:1, 1:Many, Many:1 and Many:Many chat rooms for
-any scale.
+Ably Chat is a set of purpose-built APIs for a host of chat features enabling you to create 1:1, 1:many, many:1, and many:many chat rooms for
+any scale.

524-525: Format support URL as a proper Markdown link

The support URL should be formatted as a Markdown link for consistency and better accessibility.

-Please visit http://support.ably.com/ for access to our knowledge base and to ask for any assistance. You can also view
+Please visit [our support site](http://support.ably.com/) for access to our knowledge base and to ask for any assistance. You can also view
🧰 Tools
🪛 Markdownlint (0.35.0)

524-524: null
Bare URL used

(MD034, no-bare-urls)

📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL

📥 Commits

Reviewing files that changed from the base of the PR and between 49360b6 and 6472e96.

⛔ Files ignored due to path filters (1)
  • images/ably-chat-github-header.png is excluded by !**/*.png
📒 Files selected for processing (1)
  • README.md (3 hunks)
🧰 Additional context used
🪛 LanguageTool
README.md

[grammar] ~46-~46: Possible agreement error. The noun participation seems to be uncountable; consider using: “much participation”, “a good deal of participation”.
Context: ... rooms for 1:1, 1:many, many:1 and many:many participation. - Sending and receiving chat messages....

(MANY_NN_U)


[uncategorized] ~49-~49: The abbreviation “i.e.” (= that is) requires two periods.
Context: ...at participants. - Chat room occupancy, i.e total number of connections and presenc...

(I_E)


[grammar] ~59-~59: You used an adverb (‘Ably’) instead of an adjective, or a noun (‘account’) instead of another adjective.
Context: ...need the following prerequisites: - An Ably account - You can [sign up](https://ably.com...

(A_RB_NN)


[grammar] ~63-~63: You used an adverb (‘Ably’) instead of an adjective, or a noun (‘API’) instead of another adjective.
Context: ...ignup) to the generous free tier. - An Ably API key - Use the default or create a new...

(A_RB_NN)


[typographical] ~83-~83: The word “however” is an adverb that can’t be used like a conjunction, and therefore needs to be separated from the sentence.
Context: ...he API Key directly for testing purposes, however it is strongly recommended that you use...

(HOWEVER_SENTENCE)


[style] ~148-~148: Consider a shorter alternative to avoid wordiness.
Context: ...ing: TypingOptions(timeout: 3.0))) ``` In order to use the same room but with different op...

(IN_ORDER_TO_PREMIUM)


[uncategorized] ~174-~174: Use a comma before ‘and’ if it connects two independent clauses (unless they are closely connected and short).
Context: ... any event listeners you have registered and they will begin to receive events again...

(COMMA_COMPOUND_SENTENCE)


[style] ~174-~174: ‘in the event that’ might be wordy. Consider a shorter alternative.
Context: ...they will begin to receive events again in the event that the room is re-attached. ### Releasing...

(EN_WORDINESS_PREMIUM_IN_THE_EVENT_THAT)


[style] ~180-~180: ‘completely finished’ might be wordy. Consider a shorter alternative.
Context: ...running 1:1 support chat). When you are completely finished with a room, you may release it which...

(EN_WORDINESS_PREMIUM_COMPLETELY_FINISHED)


[uncategorized] ~186-~186: Use a comma before ‘and’ if it connects two independent clauses (unless they are closely connected and short).
Context: ...is called, the room will become unusable and you will need to get a new instance usi...

(COMMA_COMPOUND_SENTENCE)


[uncategorized] ~231-~231: Use a comma before ‘and’ if it connects two independent clauses (unless they are closely connected and short).
Context: ...nection, continuity cannot be guaranteed and you'll need to take steps to recover me...

(COMMA_COMPOUND_SENTENCE)


[style] ~335-~335: Consider shortening or rephrasing this to strengthen your wording.
Context: ...the presence data Updates allow you to make changes to the custom data associated with a prese...

(MAKE_CHANGES)


[misspelling] ~502-~502: Did you mean “side effects” (=adverse effect, unintended consequence)? Open compounds are not hyphenated.
Context: ...directly. Doing so may cause unintended side-effects in the Chat SDK. ### Channels Used Fo...

(AFFECT_EFFECT)

🪛 Markdownlint (0.35.0)
README.md

524-524: null
Bare URL used

(MD034, no-bare-urls)

🔇 Additional comments (4)
README.md (4)

35-39: LGTM!

The installation instructions are clear and well-formatted.


202-207: Clarify error handling in the status check example

The try keyword suggests potential errors, but there's no explanation of what errors might occur or how to handle them.

Consider either:

  1. Adding error handling example, or
  2. Explaining what errors might occur

Line range hint 477-486: LGTM!

The example app section provides clear instructions and platform requirements.

🧰 Tools
🪛 LanguageTool

[grammar] ~46-~46: Possible agreement error. The noun participation seems to be uncountable; consider using: “much participation”, “a good deal of participation”.
Context: ... rooms for 1:1, 1:many, many:1 and many:many participation. - Sending and receiving chat messages....

(MANY_NN_U)


[uncategorized] ~49-~49: The abbreviation “i.e.” (= that is) requires two periods.
Context: ...at participants. - Chat room occupancy, i.e total number of connections and presenc...

(I_E)


[grammar] ~59-~59: You used an adverb (‘Ably’) instead of an adjective, or a noun (‘account’) instead of another adjective.
Context: ...need the following prerequisites: - An Ably account - You can [sign up](https://ably.com...

(A_RB_NN)


[grammar] ~63-~63: You used an adverb (‘Ably’) instead of an adjective, or a noun (‘API’) instead of another adjective.
Context: ...ignup) to the generous free tier. - An Ably API key - Use the default or create a new...

(A_RB_NN)


[typographical] ~83-~83: The word “however” is an adverb that can’t be used like a conjunction, and therefore needs to be separated from the sentence.
Context: ...he API Key directly for testing purposes, however it is strongly recommended that you use...

(HOWEVER_SENTENCE)


[style] ~148-~148: Consider a shorter alternative to avoid wordiness.
Context: ...ing: TypingOptions(timeout: 3.0))) ``` In order to use the same room but with different op...

(IN_ORDER_TO_PREMIUM)


[uncategorized] ~174-~174: Use a comma before ‘and’ if it connects two independent clauses (unless they are closely connected and short).
Context: ... any event listeners you have registered and they will begin to receive events again...

(COMMA_COMPOUND_SENTENCE)


[style] ~174-~174: ‘in the event that’ might be wordy. Consider a shorter alternative.
Context: ...they will begin to receive events again in the event that the room is re-attached. ### Releasing...

(EN_WORDINESS_PREMIUM_IN_THE_EVENT_THAT)


[style] ~180-~180: ‘completely finished’ might be wordy. Consider a shorter alternative.
Context: ...running 1:1 support chat). When you are completely finished with a room, you may release it which...

(EN_WORDINESS_PREMIUM_COMPLETELY_FINISHED)


[uncategorized] ~186-~186: Use a comma before ‘and’ if it connects two independent clauses (unless they are closely connected and short).
Context: ...is called, the room will become unusable and you will need to get a new instance usi...

(COMMA_COMPOUND_SENTENCE)


[uncategorized] ~231-~231: Use a comma before ‘and’ if it connects two independent clauses (unless they are closely connected and short).
Context: ...nection, continuity cannot be guaranteed and you'll need to take steps to recover me...

(COMMA_COMPOUND_SENTENCE)


[style] ~335-~335: Consider shortening or rephrasing this to strengthen your wording.
Context: ...the presence data Updates allow you to make changes to the custom data associated with a prese...

(MAKE_CHANGES)


[style] ~478-~478: Consider a shorter alternative to avoid wordiness.
Context: ...in the Example directory. In order to allow the app to use modern SwiftUI fea...

(IN_ORDER_TO_PREMIUM)


5-5: ⚠️ Potential issue

Fix incorrect license badge URL

The license badge URL is pointing to an unrelated repository (3scale/saas-operator).

-    <img src="https://badgen.net/github/license/3scale/saas-operator" alt="License" />
+    <img src="https://badgen.net/github/license/ably/ably-chat-swift" alt="License" />

Likely invalid or redundant comment.

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 0

🧹 Outside diff range and nitpick comments (3)
README.md (3)

49-49: Fix abbreviation formatting

The abbreviation "i.e" should include periods: "i.e."

🧰 Tools
🪛 LanguageTool

[uncategorized] ~49-~49: The abbreviation “i.e.” (= that is) requires two periods.
Context: ...at participants. - Chat room occupancy, i.e total number of connections and presenc...

(I_E)


35-39: Consider adding Swift version requirement

While Xcode version requirement is mentioned, it would be helpful to specify the minimum Swift version required for the package.


267-268: Consider adding error handling examples

The message sending example could benefit from error handling patterns to demonstrate how to handle common failure scenarios.

Example:

do {
    let message = try await room.messages.send(params: .init(text: "hello"))
    // Handle success
} catch let error as ChatError {
    // Handle specific chat errors
} catch {
    // Handle other errors
}
📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL

📥 Commits

Reviewing files that changed from the base of the PR and between 6472e96 and 189d5d7.

⛔ Files ignored due to path filters (1)
  • images/ably-chat-github-header.png is excluded by !**/*.png
📒 Files selected for processing (1)
  • README.md (3 hunks)
🧰 Additional context used
🪛 LanguageTool
README.md

[grammar] ~46-~46: Possible agreement error. The noun participation seems to be uncountable; consider using: “much participation”, “a good deal of participation”.
Context: ... rooms for 1:1, 1:many, many:1 and many:many participation. - Sending and receiving chat messages....

(MANY_NN_U)


[uncategorized] ~49-~49: The abbreviation “i.e.” (= that is) requires two periods.
Context: ...at participants. - Chat room occupancy, i.e total number of connections and presenc...

(I_E)


[grammar] ~59-~59: You used an adverb (‘Ably’) instead of an adjective, or a noun (‘account’) instead of another adjective.
Context: ...need the following prerequisites: - An Ably account - You can [sign up](https://ably.com...

(A_RB_NN)


[grammar] ~63-~63: You used an adverb (‘Ably’) instead of an adjective, or a noun (‘API’) instead of another adjective.
Context: ...ignup) to the generous free tier. - An Ably API key - Use the default or create a new...

(A_RB_NN)


[typographical] ~83-~83: The word “however” is an adverb that can’t be used like a conjunction, and therefore needs to be separated from the sentence.
Context: ...he API Key directly for testing purposes, however it is strongly recommended that you use...

(HOWEVER_SENTENCE)


[style] ~148-~148: Consider a shorter alternative to avoid wordiness.
Context: ...ing: TypingOptions(timeout: 3.0))) ``` In order to use the same room but with different op...

(IN_ORDER_TO_PREMIUM)


[uncategorized] ~174-~174: Use a comma before ‘and’ if it connects two independent clauses (unless they are closely connected and short).
Context: ... any event listeners you have registered and they will begin to receive events again...

(COMMA_COMPOUND_SENTENCE)


[style] ~174-~174: ‘in the event that’ might be wordy. Consider a shorter alternative.
Context: ...they will begin to receive events again in the event that the room is re-attached. ### Releasing...

(EN_WORDINESS_PREMIUM_IN_THE_EVENT_THAT)


[style] ~180-~180: ‘completely finished’ might be wordy. Consider a shorter alternative.
Context: ...running 1:1 support chat). When you are completely finished with a room, you may release it which...

(EN_WORDINESS_PREMIUM_COMPLETELY_FINISHED)


[uncategorized] ~186-~186: Use a comma before ‘and’ if it connects two independent clauses (unless they are closely connected and short).
Context: ...is called, the room will become unusable and you will need to get a new instance usi...

(COMMA_COMPOUND_SENTENCE)


[uncategorized] ~231-~231: Use a comma before ‘and’ if it connects two independent clauses (unless they are closely connected and short).
Context: ...nection, continuity cannot be guaranteed and you'll need to take steps to recover me...

(COMMA_COMPOUND_SENTENCE)


[uncategorized] ~233-~233: Possible missing comma found.
Context: ...an subscribeToDiscontinuities method. Here you can register a listener that will b...

(AI_HYDRA_LEO_MISSING_COMMA)


[uncategorized] ~251-~251: Possible missing comma found.
Context: ...ming messages To subscribe to incoming messages you create a subscription for the room ...

(AI_HYDRA_LEO_MISSING_COMMA)


[style] ~335-~335: Consider shortening or rephrasing this to strengthen your wording.
Context: ...the presence data Updates allow you to make changes to the custom data associated with a prese...

(MAKE_CHANGES)


[uncategorized] ~389-~389: It seems likely that a singular genitive (’s) apostrophe is missing.
Context: ...s to start will reset the timer, so the clients typing status will remain active. ### ...

(AI_HYDRA_LEO_APOSTROPHE_S_XS)


[misspelling] ~502-~502: Did you mean “side effects” (=adverse effect, unintended consequence)? Open compounds are not hyphenated.
Context: ...directly. Doing so may cause unintended side-effects in the Chat SDK. ### Channels Used Fo...

(AFFECT_EFFECT)

🪛 Markdownlint (0.35.0)
README.md

524-524: null
Bare URL used

(MD034, no-bare-urls)

🔇 Additional comments (2)
README.md (2)

4-6: Fix incorrect badge URLs

The badge URLs need to be updated to point to the correct repository.


524-525: Fix support links formatting

The bare URL should be properly formatted as a Markdown link.

🧰 Tools
🪛 Markdownlint (0.35.0)

524-524: null
Bare URL used

(MD034, no-bare-urls)

Copy link
Collaborator

@umair-ably umair-ably left a comment

Choose a reason for hiding this comment

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

looks great

@maratal maratal merged commit cdd61d1 into main Dec 11, 2024
16 checks passed
@maratal maratal deleted the readme-update branch December 11, 2024 14:04
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