Add top-level CLI tab and intro page feature section - #49
Conversation
Move CLI docs from a nested group inside the Documentation tab to its own top-level navigation tab with cleaner sidebar groups (Getting Started, Commands, Guides). Add a CLI feature section to the introduction page highlighting automated setup, diagnostics, AI analysis, code generation, CI/CD support, and deep link configuration. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
Note Reviews pausedIt looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the Use the following commands to manage reviews:
Use the checkboxes below for quick actions:
📝 WalkthroughWalkthroughAdds a new CLI section to the docs (navigation tab + many CLI pages), replaces the API Reference card in the intro with a CLI Tool card, and inserts CLI shortcut tips across SDK and feature docs. All changes are documentation content additions and reorganizations. Changes
Sequence Diagram(s)(omitted) Estimated code review effort🎯 3 (Moderate) | ⏱️ ~20 minutes Possibly related PRs
Suggested reviewers
Poem
🚥 Pre-merge checks | ✅ 3✅ Passed checks (3 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
⚔️ Resolve merge conflicts
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Actionable comments posted: 1
🧹 Nitpick comments (1)
introduction.mdx (1)
30-52: Consider linking feature cards to their respective command pages.The six CLI feature cards describe specific commands (
lr init,lr doctor,lr analyze,lr events add,lr deeplink setup) but carry nohref. Since these commands now have dedicated pages in the CLI tab, adding links would let readers jump directly from the overview to the relevant reference.🔗 Proposed hrefs for CLI feature cards
- <Card title="Automated Setup" icon="wand-magic-sparkles"> + <Card title="Automated Setup" icon="wand-magic-sparkles" href="/cli/commands/init"> Detects your platform, installs the SDK, configures native files, and generates initialization code — all from `lr init` </Card> - <Card title="Built-in Diagnostics" icon="stethoscope"> + <Card title="Built-in Diagnostics" icon="stethoscope" href="/cli/commands/doctor"> `lr doctor` validates your configuration, source code patterns, and deep link setup with actionable fix suggestions before you ship </Card> - <Card title="AI-Powered Analysis" icon="robot"> + <Card title="AI-Powered Analysis" icon="robot" href="/cli/commands/analyze"> `lr analyze` uses AI to inspect your codebase for subtle integration issues that manual reviews miss </Card>- <Card title="Code Generation" icon="code"> + <Card title="Code Generation" icon="code" href="/cli/commands/events"> Generate event tracking, payment, and signup code with `lr events add` — auto-inserted into your source files </Card> <Card title="CI/CD Ready" icon="rotate"> JSON output and exit codes let you catch integration regressions automatically in every build </Card> - <Card title="Deep Link Config" icon="link"> + <Card title="Deep Link Config" icon="link" href="/cli/commands/deeplink"> Set up Android App Links and iOS Universal Links with `lr deeplink setup` — no manual file editing </Card>🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@introduction.mdx` around lines 30 - 52, Add href props to the CLI feature Card components so each card links to its command reference page: update the Card elements titled "Automated Setup" ("lr init"), "Built-in Diagnostics" ("lr doctor"), "AI-Powered Analysis" ("lr analyze"), "Code Generation" ("lr events add"), and "Deep Link Config" ("lr deeplink setup") to include appropriate hrefs pointing to their CLI tab pages; locate the Card components inside the CardGroup blocks (symbols: CardGroup and Card) and set href values matching the existing CLI routes for each command so readers can jump from the overview to the respective command docs.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In `@docs.json`:
- Around line 99-131: The docs.json "CLI" tab references 13 missing pages (e.g.,
"cli/overview", "cli/installation", "cli/commands/login", "cli/commands/init",
"cli/commands/doctor", "cli/commands/test", "cli/commands/analyze",
"cli/commands/events", "cli/commands/deeplink", "cli/commands/suggest",
"cli/commands/status", "cli/ci-cd", "cli/troubleshooting"); either create
corresponding .mdx files with basic frontmatter and placeholder content at those
paths (cli/overview.mdx, cli/installation.mdx, cli/commands/*.mdx,
cli/ci-cd.mdx, cli/troubleshooting.mdx) so the CLI tab can render, or remove the
entire "CLI" tab object from docs.json to prevent broken navigation—update the
repo accordingly and ensure filenames exactly match the referenced strings.
---
Nitpick comments:
In `@introduction.mdx`:
- Around line 30-52: Add href props to the CLI feature Card components so each
card links to its command reference page: update the Card elements titled
"Automated Setup" ("lr init"), "Built-in Diagnostics" ("lr doctor"), "AI-Powered
Analysis" ("lr analyze"), "Code Generation" ("lr events add"), and "Deep Link
Config" ("lr deeplink setup") to include appropriate hrefs pointing to their CLI
tab pages; locate the Card components inside the CardGroup blocks (symbols:
CardGroup and Card) and set href values matching the existing CLI routes for
each command so readers can jump from the overview to the respective command
docs.
| { | ||
| "tab": "CLI", | ||
| "groups": [ | ||
| { | ||
| "group": "Getting Started", | ||
| "pages": [ | ||
| "cli/overview", | ||
| "cli/installation" | ||
| ] | ||
| }, | ||
| { | ||
| "group": "Commands", | ||
| "pages": [ | ||
| "cli/commands/login", | ||
| "cli/commands/init", | ||
| "cli/commands/doctor", | ||
| "cli/commands/test", | ||
| "cli/commands/analyze", | ||
| "cli/commands/events", | ||
| "cli/commands/deeplink", | ||
| "cli/commands/suggest", | ||
| "cli/commands/status" | ||
| ] | ||
| }, | ||
| { | ||
| "group": "Guides", | ||
| "pages": [ | ||
| "cli/ci-cd", | ||
| "cli/troubleshooting" | ||
| ] | ||
| } | ||
| ] | ||
| } |
There was a problem hiding this comment.
🧩 Analysis chain
🏁 Script executed:
#!/bin/bash
# Verify all CLI page files referenced in docs.json exist as MDX files
pages=(
"cli/overview.mdx"
"cli/installation.mdx"
"cli/commands/login.mdx"
"cli/commands/init.mdx"
"cli/commands/doctor.mdx"
"cli/commands/test.mdx"
"cli/commands/analyze.mdx"
"cli/commands/events.mdx"
"cli/commands/deeplink.mdx"
"cli/commands/suggest.mdx"
"cli/commands/status.mdx"
"cli/ci-cd.mdx"
"cli/troubleshooting.mdx"
)
echo "Verifying CLI page files..."
missing_count=0
found_count=0
for page in "${pages[@]}"; do
if [ -f "$page" ]; then
echo "OK: $page"
((found_count++))
else
echo "MISSING: $page"
((missing_count++))
fi
done
echo ""
echo "Summary: $found_count found, $missing_count missing"Repository: linkrunner-labs/docs
Length of output: 529
All 13 referenced CLI page files are missing.
The docs.json references 13 CLI page files that do not exist in the repository:
- cli/overview.mdx
- cli/installation.mdx
- cli/commands/login.mdx, init.mdx, doctor.mdx, test.mdx, analyze.mdx, events.mdx, deeplink.mdx, suggest.mdx, status.mdx
- cli/ci-cd.mdx
- cli/troubleshooting.mdx
The CLI tab will not render navigation for any of these pages. Create these files or remove the CLI tab from docs.json.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@docs.json` around lines 99 - 131, The docs.json "CLI" tab references 13
missing pages (e.g., "cli/overview", "cli/installation", "cli/commands/login",
"cli/commands/init", "cli/commands/doctor", "cli/commands/test",
"cli/commands/analyze", "cli/commands/events", "cli/commands/deeplink",
"cli/commands/suggest", "cli/commands/status", "cli/ci-cd",
"cli/troubleshooting"); either create corresponding .mdx files with basic
frontmatter and placeholder content at those paths (cli/overview.mdx,
cli/installation.mdx, cli/commands/*.mdx, cli/ci-cd.mdx,
cli/troubleshooting.mdx) so the CLI tab can render, or remove the entire "CLI"
tab object from docs.json to prevent broken navigation—update the repo
accordingly and ensure filenames exactly match the referenced strings.
…oting, and command usage - Introduced new documentation files for CLI installation, CI/CD integration, troubleshooting common issues, and detailed command usage for `lr analyze`, `lr doctor`, `lr events add`, `lr init`, `lr login`, `lr status`, `lr suggest`, and `lr test`. - Enhanced user guidance on setting up the Linkrunner SDK, validating configurations, and utilizing AI-powered features for deeper analysis and event tracking. - Included examples and JSON output formats for better clarity and usability in CI environments.
There was a problem hiding this comment.
Actionable comments posted: 1
🧹 Nitpick comments (2)
cli/troubleshooting.mdx (1)
29-31: Prefer a shared support contact over a personal mailbox.Line 31 and Line 169 use an individual email address; consider switching to a team-owned support alias or contact channel to avoid a single point of failure and reduce personal data exposure in public docs.
Also applies to: 167-169
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@cli/troubleshooting.mdx` around lines 29 - 31, Replace the personal email literal "darshil@linkrunner.io" used as the contact in the troubleshooting docs with a team-owned support alias or centralized contact (e.g., support@linkrunner.io or a /support URL) wherever that exact email appears; update both instances of the Markdown mailto link so they point to the team address or support page and adjust the link text if needed to reflect the shared channel.cli/commands/events.mdx (1)
85-94: Optional: add a brief “review the diff” safety note.A short reminder to review auto-inserted changes can prevent accidental edits.
✏️ Suggested doc tweak
This uses AI to analyze your project and find the appropriate insertion point. If auto-insertion is unavailable or you decline, you can copy the snippet to your clipboard instead. +Review any auto-inserted changes before committing to ensure they match your intent.🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@cli/commands/events.mdx` around lines 85 - 94, Add a short safety reminder under the "## Auto-insertion" section to prompt users to review the diff before accepting changes; update the paragraph that shows the prompt string ("? Would you like me to insert this into your code? Yes") to include one sentence like "Please review the proposed diff before confirming auto-insertion to avoid unintended edits." so readers see the guidance next to the example and the auto-insert flow.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In `@cli/commands/analyze.mdx`:
- Around line 62-67: The example Deep Analysis block is contradictory because it
lists specific findings and then prints the sentence "No additional issues found
by AI analysis."; update the example output in analyze.mdx so the "No additional
issues found by AI analysis." line is removed from this findings example (or
moved to a separate "no-findings" example). Locate the block starting with "──
Deep Analysis (AI-powered) ──" and the specific phrase "No additional issues
found by AI analysis." and either delete that sentence or create a separate
example section that demonstrates the no-findings case.
---
Nitpick comments:
In `@cli/commands/events.mdx`:
- Around line 85-94: Add a short safety reminder under the "## Auto-insertion"
section to prompt users to review the diff before accepting changes; update the
paragraph that shows the prompt string ("? Would you like me to insert this into
your code? Yes") to include one sentence like "Please review the proposed diff
before confirming auto-insertion to avoid unintended edits." so readers see the
guidance next to the example and the auto-insert flow.
In `@cli/troubleshooting.mdx`:
- Around line 29-31: Replace the personal email literal "darshil@linkrunner.io"
used as the contact in the troubleshooting docs with a team-owned support alias
or centralized contact (e.g., support@linkrunner.io or a /support URL) wherever
that exact email appears; update both instances of the Markdown mailto link so
they point to the team address or support page and adjust the link text if
needed to reflect the shared channel.
ℹ️ Review info
Configuration used: defaults
Review profile: CHILL
Plan: Lite
📒 Files selected for processing (13)
cli/ci-cd.mdxcli/commands/analyze.mdxcli/commands/deeplink.mdxcli/commands/doctor.mdxcli/commands/events.mdxcli/commands/init.mdxcli/commands/login.mdxcli/commands/status.mdxcli/commands/suggest.mdxcli/commands/test.mdxcli/installation.mdxcli/overview.mdxcli/troubleshooting.mdx
✅ Files skipped from review due to trivial changes (9)
- cli/commands/test.mdx
- cli/ci-cd.mdx
- cli/installation.mdx
- cli/commands/init.mdx
- cli/commands/deeplink.mdx
- cli/commands/status.mdx
- cli/commands/doctor.mdx
- cli/commands/suggest.mdx
- cli/overview.mdx
| ── Deep Analysis (AI-powered) ── | ||
| ✘ [src/App.tsx:15] init() called outside useEffect - may run on every render | ||
| Fix: Move init() inside a useEffect with an empty dependency array | ||
| ⚠ [src/screens/Payment.tsx:42] capturePayment amount is hardcoded | ||
| Fix: Use the actual transaction amount from your payment provider | ||
| ✔ No additional issues found by AI analysis. |
There was a problem hiding this comment.
Example output contradicts itself.
Line 63–67 lists AI findings and then says “No additional issues found,” which is confusing. Remove that line or move it to a no‑findings example.
✂️ Suggested fix
- ✔ No additional issues found by AI analysis.📝 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.
| ── Deep Analysis (AI-powered) ── | |
| ✘ [src/App.tsx:15] init() called outside useEffect - may run on every render | |
| Fix: Move init() inside a useEffect with an empty dependency array | |
| ⚠ [src/screens/Payment.tsx:42] capturePayment amount is hardcoded | |
| Fix: Use the actual transaction amount from your payment provider | |
| ✔ No additional issues found by AI analysis. | |
| ── Deep Analysis (AI-powered) ── | |
| ✘ [src/App.tsx:15] init() called outside useEffect - may run on every render | |
| Fix: Move init() inside a useEffect with an empty dependency array | |
| ⚠ [src/screens/Payment.tsx:42] capturePayment amount is hardcoded | |
| Fix: Use the actual transaction amount from your payment provider |
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@cli/commands/analyze.mdx` around lines 62 - 67, The example Deep Analysis
block is contradictory because it lists specific findings and then prints the
sentence "No additional issues found by AI analysis."; update the example output
in analyze.mdx so the "No additional issues found by AI analysis." line is
removed from this findings example (or moved to a separate "no-findings"
example). Locate the block starting with "── Deep Analysis (AI-powered) ──" and
the specific phrase "No additional issues found by AI analysis." and either
delete that sentence or create a separate example section that demonstrates the
no-findings case.
…egration - Added CLI shortcut tips across various documentation files, including deep linking setup, verification, deferred deep linking, and SDK integration for Android, iOS, Capacitor, Flutter, React Native, and web. - Improved user guidance by providing quick command references to streamline the setup and validation processes for developers. - Consolidated information to enhance clarity and usability in the integration of Linkrunner features.
There was a problem hiding this comment.
🧹 Nitpick comments (2)
sdk/react-native.mdx (1)
100-102: Consider consolidating duplicatelr inittips.This tip duplicates the guidance from line 20. Since both reference the same
lr initcommand, consider keeping only the first occurrence (after installation) to avoid redundancy. The initialization code section could instead focus on a different aspect or be removed.🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@sdk/react-native.mdx` around lines 100 - 102, The Tip block containing the CLI shortcut "lr init" is duplicated; remove the later Tip (the one shown in the provided diff) and keep only the first occurrence after installation, or replace this second Tip with a different, non-redundant note (e.g., focusing on initialization caveats or platform-specific setup). Locate the Tip element that contains the text "CLI shortcut: Use `lr init`" and either delete it or swap its content for an alternative guidance to avoid repeating the same "lr init" instruction.sdk/capacitor.mdx (1)
123-125: Consider consolidating duplicatelr inittips.Similar to the React Native SDK doc, this tip duplicates the guidance from line 20. Consider keeping only the first occurrence after installation to reduce redundancy.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@sdk/capacitor.mdx` around lines 123 - 125, Remove the duplicate Tip block that reads "CLI shortcut: Use `lr init` to generate this initialization code automatically. [Learn more →](/cli/commands/init)" and keep only the original tip placed near the installation/setup section; locate the duplicate Tip block by searching for the exact string "CLI shortcut: Use `lr init`" in the capacitor.mdx content and delete that redundant block so the guidance appears only once.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Nitpick comments:
In `@sdk/capacitor.mdx`:
- Around line 123-125: Remove the duplicate Tip block that reads "CLI shortcut:
Use `lr init` to generate this initialization code automatically. [Learn more
→](/cli/commands/init)" and keep only the original tip placed near the
installation/setup section; locate the duplicate Tip block by searching for the
exact string "CLI shortcut: Use `lr init`" in the capacitor.mdx content and
delete that redundant block so the guidance appears only once.
In `@sdk/react-native.mdx`:
- Around line 100-102: The Tip block containing the CLI shortcut "lr init" is
duplicated; remove the later Tip (the one shown in the provided diff) and keep
only the first occurrence after installation, or replace this second Tip with a
different, non-redundant note (e.g., focusing on initialization caveats or
platform-specific setup). Locate the Tip element that contains the text "CLI
shortcut: Use `lr init`" and either delete it or swap its content for an
alternative guidance to avoid repeating the same "lr init" instruction.
ℹ️ Review info
⚙️ Run configuration
Configuration used: defaults
Review profile: CHILL
Plan: Lite
Run ID: 2332517a-4c8e-4670-ad81-4686f0c6be62
📒 Files selected for processing (12)
docs.jsonfeatures/deep-linking-setup.mdxfeatures/deep-linking-verification.mdxfeatures/deferred-deep-linking.mdxfeatures/skadnetwork-integration.mdxsdk/android.mdxsdk/capacitor.mdxsdk/expo.mdxsdk/flutter.mdxsdk/ios.mdxsdk/react-native.mdxsdk/web.mdx
✅ Files skipped from review due to trivial changes (6)
- features/deep-linking-setup.mdx
- sdk/ios.mdx
- sdk/android.mdx
- features/deep-linking-verification.mdx
- features/deferred-deep-linking.mdx
- sdk/flutter.mdx
🚧 Files skipped from review as they are similar to previous changes (1)
- docs.json
- Added a new "Quickstart" guide to help users set up and validate their Linkrunner integration in under 5 minutes. - Expanded the CLI overview section to include detailed descriptions of key features and commands, improving clarity and user guidance. - Updated the documentation structure to include the new quickstart page in the navigation, enhancing accessibility for new users.
…ep linking, environment management, event suggestions, and referral setup - Introduced new documentation files covering authentication methods, including device login and API key management. - Added detailed guides for using the CLI with AI agents, including non-interactive commands and JSON output. - Documented the `lr deeplink push` command for managing deep link verification files. - Included instructions for switching and managing CLI environments. - Provided AI-driven event suggestion capabilities for ad campaign optimization. - Established referral code tracking setup with code generation for various platforms. - Enhanced overall user guidance and examples for improved clarity and usability.
There was a problem hiding this comment.
Actionable comments posted: 2
🧹 Nitpick comments (2)
cli/authentication.mdx (2)
83-91: Important security clarification - consider adding to login.mdx.The distinction that
lr logoutonly clears local credentials but does not revoke the server-side key is a critical security detail. This is well-documented here.However,
cli/commands/login.mdxmentions logout but omits this security consideration. Users reading only that page won't know that logged-out credentials can still be used if the key is compromised.Consider adding a similar note to
cli/commands/login.mdxin its logout section, or add a cross-reference link to this authentication guide.🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@cli/authentication.mdx` around lines 83 - 91, Add the same security clarification that's in the "Logout" section of cli/authentication.mdx to the logout mention in cli/commands/login.mdx: state that `lr logout` only removes local credentials and does not revoke the server-side API key, and advise users to revoke the key via Settings > CLI Keys if they need to fully disable access; alternatively add a short cross-reference link from the logout text in cli/commands/login.mdx to the authentication guide's Logout section so readers see the full security note (reference command `lr logout` and the "Logout" section heading to locate where to add the note).
1-98: Consider adding cross-reference from quickstart.mdx.The new authentication guide provides comprehensive details about authentication flows, API key management, and security. However,
cli/quickstart.mdx(lines 7-13) only provides a brief inline explanation of authentication and links to/cli/commands/login.Users following the quickstart path may not discover this dedicated authentication guide.
Consider adding a reference in
cli/quickstart.mdxafter the authentication step, for example:This sends a magic link to your email. Paste the token or URL from the email to complete authentication. <Note> For detailed information about authentication flows, API key management, and CI/CD setup, see the [Authentication guide](/cli/authentication). </Note>This would improve discoverability of the comprehensive authentication documentation.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@cli/authentication.mdx` around lines 1 - 98, Add a short cross-reference Note in cli/quickstart.mdx immediately after the authentication step (the paragraph that currently links to /cli/commands/login) pointing readers to the new Authentication guide at /cli/authentication; insert a brief sentence like “For detailed information about authentication flows, API key management, and CI/CD setup, see the Authentication guide” so users following the quickstart can discover the full auth docs.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In `@cli/authentication.mdx`:
- Around line 9-33: The Device Login Flow doc is incorrect and must be changed
to the magic-link email flow used by the actual implementation: update the
content under "Device Login Flow" (and any example output for the `lr login`
command) to describe the CLI prompting for an email, sending a magic link/token
(15-minute expiration) to the user's inbox, and instructing the user to paste
the token or open the link in their browser to complete login; ensure the text
and example match the behavior and phrasing used in cli/commands/login.mdx,
cli/quickstart.mdx, cli/installation.mdx, and cli/troubleshooting.mdx, or else
mark this file explicitly as documenting a legacy/alternate flow if that is
intended.
- Around line 75-81: The "Credential Storage" section uses "Your API key" which
conflicts with other docs that call the stored data "your auth token and email"
(see cli/commands/login.mdx, cli/quickstart.mdx, cli/troubleshooting.mdx);
update cli/authentication.mdx to use the same terminology—either replace "Your
API key" with "Your auth token and email" or explicitly state that "API key" is
synonymous with "auth token" and include the same config file paths; ensure the
phrasing matches the other CLI docs so all references to the stored credential
are consistent.
---
Nitpick comments:
In `@cli/authentication.mdx`:
- Around line 83-91: Add the same security clarification that's in the "Logout"
section of cli/authentication.mdx to the logout mention in
cli/commands/login.mdx: state that `lr logout` only removes local credentials
and does not revoke the server-side API key, and advise users to revoke the key
via Settings > CLI Keys if they need to fully disable access; alternatively add
a short cross-reference link from the logout text in cli/commands/login.mdx to
the authentication guide's Logout section so readers see the full security note
(reference command `lr logout` and the "Logout" section heading to locate where
to add the note).
- Around line 1-98: Add a short cross-reference Note in cli/quickstart.mdx
immediately after the authentication step (the paragraph that currently links to
/cli/commands/login) pointing readers to the new Authentication guide at
/cli/authentication; insert a brief sentence like “For detailed information
about authentication flows, API key management, and CI/CD setup, see the
Authentication guide” so users following the quickstart can discover the full
auth docs.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: defaults
Review profile: CHILL
Plan: Pro
Run ID: 9a37491e-0636-4481-8329-ee7a0080b34f
📒 Files selected for processing (6)
cli/authentication.mdxcli/commands/deeplink-push.mdxcli/commands/env.mdxcli/commands/events-suggest.mdxcli/commands/referral.mdxcli/llm-usage.mdx
✅ Files skipped from review due to trivial changes (5)
- cli/commands/referral.mdx
- cli/commands/env.mdx
- cli/llm-usage.mdx
- cli/commands/events-suggest.mdx
- cli/commands/deeplink-push.mdx
| ## Device Login Flow | ||
|
|
||
| When you run `lr login`, the CLI uses an OAuth2 Device Authorization flow: | ||
|
|
||
| 1. The CLI requests a **user code** from the Linkrunner API | ||
| 2. You are shown a code (e.g. `BVKD-3NH7`) and a URL to open in your browser | ||
| 3. You open the URL, log into the Linkrunner dashboard, and authorize the code | ||
| 4. The CLI polls for approval and receives an API key automatically | ||
|
|
||
| ``` | ||
| $ lr login | ||
|
|
||
| Your device code: BVKD-3NH7 | ||
|
|
||
| Open this URL to authorize: | ||
| https://dashboard.linkrunner.io/cli/auth?code=BVKD-3NH7 | ||
|
|
||
| Waiting for authorization... | ||
|
|
||
| ✔ Logged in successfully! | ||
| ``` | ||
|
|
||
| <Note> | ||
| The device code expires after **10 minutes**. If it expires, run `lr login` again to get a new code. | ||
| </Note> |
There was a problem hiding this comment.
🧩 Analysis chain
🏁 Script executed:
#!/bin/bash
# Check login.mdx for magic link documentation
echo "=== Current login.mdx authentication flow documentation ==="
rg -n -A 10 "## Authentication Flow" cli/commands/login.mdx
echo -e "\n=== Check for any other references to magic link ==="
rg -n "magic link" cli/
echo -e "\n=== Check for any other references to device code/OAuth2 ==="
rg -n -i "device code|device authorization|oauth" cli/Repository: linkrunner-labs/docs
Length of output: 1971
Authentication flow in this section is incorrect—contradicts actual implementation documented in cli/commands/login.mdx and other files.
This section documents an OAuth2 Device Authorization flow where users receive a device code in the CLI and authorize it in the browser. However, cli/commands/login.mdx, cli/quickstart.mdx, cli/installation.mdx, and cli/troubleshooting.mdx all consistently document a magic link email flow:
- CLI prompts for email
- Magic link sent to inbox (15-minute expiration)
- User pastes token/URL from email into terminal or opens link in browser
These flows are incompatible. The device code approach here appears outdated or incorrect. Update this section to match the actual magic link authentication flow, or clarify if this file documents a different/legacy flow.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@cli/authentication.mdx` around lines 9 - 33, The Device Login Flow doc is
incorrect and must be changed to the magic-link email flow used by the actual
implementation: update the content under "Device Login Flow" (and any example
output for the `lr login` command) to describe the CLI prompting for an email,
sending a magic link/token (15-minute expiration) to the user's inbox, and
instructing the user to paste the token or open the link in their browser to
complete login; ensure the text and example match the behavior and phrasing used
in cli/commands/login.mdx, cli/quickstart.mdx, cli/installation.mdx, and
cli/troubleshooting.mdx, or else mark this file explicitly as documenting a
legacy/alternate flow if that is intended.
| ## Credential Storage | ||
|
|
||
| Your API key is stored in a local config file managed by [conf](https://github.com/sindresorhus/conf): | ||
|
|
||
| - **macOS:** `~/Library/Preferences/linkrunner-nodejs/config.json` | ||
| - **Linux:** `~/.config/linkrunner-nodejs/config.json` | ||
| - **Windows:** `%APPDATA%/linkrunner-nodejs/config.json` |
There was a problem hiding this comment.
🧩 Analysis chain
🏁 Script executed:
#!/bin/bash
# Check what login.mdx says is stored
echo "=== login.mdx credential storage documentation ==="
rg -n -A 5 "## Credential Storage" cli/commands/login.mdx
# Check for any other references to what's stored
echo -e "\n=== References to 'auth token' in CLI docs ==="
rg -n "auth token" cli/
echo -e "\n=== References to 'API key' storage ==="
rg -n "API key.*stored|stored.*API key" cli/Repository: linkrunner-labs/docs
Length of output: 1599
Inconsistent credential terminology across documentation.
This section refers to the stored credential as "Your API key", but cli/commands/login.mdx (lines 59-62) and other CLI docs (cli/quickstart.mdx, cli/troubleshooting.mdx) consistently refer to the same stored credential as "Your auth token and email".
Both reference the same config file with identical paths. Clarify whether "API key" and "auth token" refer to the same credential, or if this documentation is incorrect. Align terminology across all files.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@cli/authentication.mdx` around lines 75 - 81, The "Credential Storage"
section uses "Your API key" which conflicts with other docs that call the stored
data "your auth token and email" (see cli/commands/login.mdx,
cli/quickstart.mdx, cli/troubleshooting.mdx); update cli/authentication.mdx to
use the same terminology—either replace "Your API key" with "Your auth token and
email" or explicitly state that "API key" is synonymous with "auth token" and
include the same config file paths; ensure the phrasing matches the other CLI
docs so all references to the stored credential are consistent.
Summary
Test plan
🤖 Generated with Claude Code
Summary by CodeRabbit