Skip to content

Conversation

@hiroshihorie
Copy link
Member

@hiroshihorie hiroshihorie commented Jan 20, 2026

Summary by CodeRabbit

  • Documentation
    • Added comprehensive developer documentation describing the LiveKit Flutter SDK structure, architecture, key components (room, engine, signaling, transport, participants, tracks), platform considerations for web/desktop/mobile, WebRTC integration, and testing/layout guidance to help contributors and integrators understand project organization and testing approach.

✏️ Tip: You can customize this high-level summary in your review settings.

@coderabbitai
Copy link

coderabbitai bot commented Jan 20, 2026

📝 Walkthrough

Walkthrough

A new documentation file AGENTS.md is added that describes the LiveKit Flutter SDK structure, supported commands, architecture, WebRTC integration, key components (Room, Engine, SignalClient, Transport, Participant, Track/TrackPublication), file organization, platform specifics, and testing layout.

Changes

Cohort / File(s) Summary
Documentation
AGENTS.md
Added new documentation describing LiveKit Flutter SDK architecture, component responsibilities, file layout, platform (web/desktop/mobile) considerations, and test references.

Estimated code review effort

🎯 1 (Trivial) | ⏱️ ~3 minutes

Poem

🐇 I hopped through code to leave a sign,
A page that maps each track and line.
Rooms and engines, signals and more,
A flutter trail across the floor.
Read it once — then leap to explore!

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title 'Add AGENTS.md' directly describes the main change: adding a new documentation file to the repository.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.


Comment @coderabbitai help to get the list of available commands and usage tips.

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: 2

🤖 Fix all issues with AI agents
In `@AGENTS.md`:
- Line 29: The fenced code block containing the directory entry "lib/" is
missing a language identifier; update that code fence to include a language tag
(e.g., ```text or ```bash) so markdown renderers and accessibility tools
correctly handle it — locate the fenced block that wraps "lib/" in AGENTS.md and
replace the opening ``` with a language-specific fence like ```text.
- Line 63: Update the platform directory name in the AGENTS.md platform list to
use Apple’s official capitalization by replacing the token "macos/" with
"macOS/"; locate the platform-specific implementations list in AGENTS.md (the
line containing "android/, ios/, macos/, windows/, linux/, web/") and change
only the "macos/" entry to "macOS/" so the branding is correct.
🧹 Nitpick comments (1)
AGENTS.md (1)

1-1: Consider renaming the file to better reflect its content.

The filename AGENTS.md is misleading since this document covers general SDK architecture, development commands, and testing—not specifically AI agent functionality. The word "agent" appears only once (line 40) as a minor component.

Consider renaming to ARCHITECTURE.md, DEVELOPMENT.md, or CONTRIBUTING.md to better align with the content.

📜 Review details

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 70d4d1f and d6a6498.

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

[uncategorized] ~63-~63: The operating system from Apple is written “macOS”.
Context: ... implementations in android/, ios/, macos/, windows/, linux/, web/, and sh...

(MAC_OS)

🪛 markdownlint-cli2 (0.18.1)
AGENTS.md

29-29: Fenced code blocks should have a language specified

(MD040, fenced-code-language)

⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (7)
  • GitHub Check: Build for Flutter iOS
  • GitHub Check: Build for Flutter Web WASM
  • GitHub Check: Build for Flutter Linux
  • GitHub Check: Build for Flutter Windows
  • GitHub Check: Build for Flutter Web
  • GitHub Check: Build for Flutter macOS
  • GitHub Check: Build for Flutter Android

✏️ Tip: You can disable this entire section by setting review_details to false in your review settings.


## Architecture

```
Copy link

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor

Add language identifier to fenced code block.

The code block lacks a language identifier, which impacts accessibility and proper rendering in some markdown processors.

📝 Proposed fix
-```
+```text
 lib/
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
```
🧰 Tools
🪛 markdownlint-cli2 (0.18.1)

29-29: Fenced code blocks should have a language specified

(MD040, fenced-code-language)

🤖 Prompt for AI Agents
In `@AGENTS.md` at line 29, The fenced code block containing the directory entry
"lib/" is missing a language identifier; update that code fence to include a
language tag (e.g., ```text or ```bash) so markdown renderers and accessibility
tools correctly handle it — locate the fenced block that wraps "lib/" in
AGENTS.md and replace the opening ``` with a language-specific fence like
```text.

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
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

🤖 Fix all issues with AI agents
In `@AGENTS.md`:
- Around line 60-72: Update the WebRTC platform directory reference from
"macOS/" to the correct lowercase "macos/" in the WebRTC section (replace the
occurrence of "macOS/" found in the block listing platform-specific
implementations), ensuring the line now reads `macos/` to match the actual
repository directory; leave the other listed paths
(`lib/src/core/transport.dart`, `lib/src/core/signal_client.dart`,
`lib/src/track/`, `lib/src/widgets/`) unchanged.
♻️ Duplicate comments (1)
AGENTS.md (1)

29-49: Add language identifier to fenced code block.

The code block displaying the directory structure lacks a language identifier, which impacts accessibility and proper rendering in some markdown processors.

📝 Proposed fix
-```
+```text
 lib/
📜 Review details

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between d6a6498 and b24eebb.

📒 Files selected for processing (1)
  • AGENTS.md
🧰 Additional context used
🪛 markdownlint-cli2 (0.18.1)
AGENTS.md

29-29: Fenced code blocks should have a language specified

(MD040, fenced-code-language)

⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (9)
  • GitHub Check: Build for Flutter Linux
  • GitHub Check: Build for Flutter Web
  • GitHub Check: Build for Flutter Windows
  • GitHub Check: Build for Flutter iOS
  • GitHub Check: Build for Flutter macOS
  • GitHub Check: Build for Flutter Android
  • GitHub Check: Build for Flutter Web WASM
  • GitHub Check: Dart Test Check
  • GitHub Check: Dart Analyze Check
🔇 Additional comments (3)
AGENTS.md (3)

3-25: Clear and helpful command reference.

The supported platforms and command examples are well-documented and provide a useful quick reference for developers working with the SDK.


51-58: Well-defined component overview.

The key components section provides a clear and concise summary of the main architectural elements, making it easy for developers to understand the SDK structure.


74-80: Comprehensive testing documentation.

The testing section clearly outlines the test organization and helpfully notes the requirement for a local LiveKit server for integration tests.

✏️ Tip: You can disable this entire section by setting review_details to false in your review settings.

Comment on lines +60 to +72
## WebRTC

WebRTC provides the underlying media transport. The Flutter SDK wraps native WebRTC via
platform-specific implementations in `android/`, `ios/`, `macOS/`, `windows/`, `linux/`, `web/`,
and shared code in `shared_cpp/` and `shared_swift/`. Dart APIs in `core/` and `track/` shield
consumers from platform differences.

Key files:

- `lib/src/core/transport.dart` - peer connection wrapper and ICE/SDP handling
- `lib/src/core/signal_client.dart` - signaling protocol implementation
- `lib/src/track/` - track bindings and renderers (including `web/`)
- `lib/src/widgets/` - Flutter video rendering widgets
Copy link

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
# Verify that the key files mentioned in the WebRTC section exist

files=(
  "lib/src/core/transport.dart"
  "lib/src/core/signal_client.dart"
  "lib/src/track/"
  "lib/src/widgets/"
)

echo "Checking referenced files:"
for file in "${files[@]}"; do
  if [ -e "$file" ]; then
    echo "$file exists"
  else
    echo "$file does not exist"
  fi
done

# Also check for platform-specific directories mentioned
echo ""
echo "Checking platform directories:"
platform_dirs=(
  "android/"
  "ios/"
  "macOS/"
  "windows/"
  "linux/"
  "web/"
  "shared_cpp/"
  "shared_swift/"
)

for dir in "${platform_dirs[@]}"; do
  if [ -d "$dir" ]; then
    echo "$dir exists"
  else
    echo "$dir does not exist"
  fi
done

Repository: livekit/client-sdk-flutter

Length of output: 404


🏁 Script executed:

#!/bin/bash
# Search for macOS-related directories (case-insensitive)
find . -maxdepth 1 -type d -iname "*mac*" | head -20

Repository: livekit/client-sdk-flutter

Length of output: 77


Correct macOS/ directory name reference to macos/ in line 63.

The WebRTC section references the platform directory as macOS/, but the actual directory in the repository is named macos/ (lowercase). Update line 63 to use the correct directory name. All other file paths (lib/src/core/transport.dart, lib/src/core/signal_client.dart, lib/src/track/, lib/src/widgets/) are correct and exist.

🤖 Prompt for AI Agents
In `@AGENTS.md` around lines 60 - 72, Update the WebRTC platform directory
reference from "macOS/" to the correct lowercase "macos/" in the WebRTC section
(replace the occurrence of "macOS/" found in the block listing platform-specific
implementations), ensuring the line now reads `macos/` to match the actual
repository directory; leave the other listed paths
(`lib/src/core/transport.dart`, `lib/src/core/signal_client.dart`,
`lib/src/track/`, `lib/src/widgets/`) unchanged.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants