docs: product version badges, section-aware GitHub stars, OG cards, Python SDK#7
Conversation
…hon SDK - Sidebar version badge per product section: Relayfile v0.10.12, Relayloop v0.3.6 (from the latest ai-hist release) - GitHub stars badge follows the active docs section: relayfile under /docs/file, relayhistory under /docs/loop, relay elsewhere - Product docs get their own OG cards (Relayfile/Relayloop eyebrow) instead of inheriting the "Headless Slack for Agents" default - Add Relayfile Python SDK page (relayfile-sdk, RelayFileClient + on_write) Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
Warning You have reached your daily quota limit. Please wait up to 24 hours and I will start processing your requests again! |
|
Warning Review limit reached
More reviews will be available in 54 minutes and 12 seconds. Learn how PR review limits work. Your organization has used up its prepaid credits, and credit purchases are no longer available. Enable the review add-on in the billing tab to keep reviews running — you're only billed for reviews past your plan's rate limits ($0.25/file). ⌛ How to resolve this issue?After more reviews become available, a review can be triggered using the To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based credits. 🚦 How do rate limits work?CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability. For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window. Please see our Fair Usage Limits Policy for further information. ℹ️ Review info⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (1)
📝 WalkthroughWalkthroughThis PR adds statically generated Open Graph image routes and metadata for file and loop doc pages, introduces a section-aware GitHub Stars badge that replaces the single-repo badge in the docs layout, adds version pill badges in the sidebar and table of contents, registers a Python SDK nav entry with icon, and publishes the Python SDK documentation page. ChangesDocs Enhancements: OG images, stars badge, version badges, Python SDK
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~25 minutes Poem
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
|
Preview deployed!
This is a Cloudflare Workers preview version of this PR's build. |
|
pr-reviewer could not complete review for #7 in AgentWorkforce/agentrelay.com. |
|
ℹ️ pr-reviewer: review only — no file changes were applied to the PR (nothing to commit after review). The notes below are advisory and were not pushed. Review of PR #7 —
|
The right-hand TOC panel rendered the Agent Relay version switcher (v8.0.0 ↔ v7.1.1) on every docs page, including Relayfile/Relayloop where it is meaningless. Hide it on product sections and show the section's own version (Relayfile v0.10.12, Relayloop v0.3.6) instead. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
The Connect-a-provider block mixed CLI + SDK tabs, so the global Language selector (which only drives language-labeled tabs) did nothing. Split the CLI command into its own block and make the SDK example a language-only CodeGroup (TypeScript + Python) that follows the selector. The Python tab reflects the data-plane-only Python SDK. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
There was a problem hiding this comment.
Actionable comments posted: 1
🧹 Nitpick comments (2)
web/content/docs/file/python-sdk.mdx (1)
63-68: 📐 Maintainability & Code Quality | 🔵 Trivial | 💤 Low value
tokenis undefined in the async example.The async snippet passes
tokenwithout showing where it comes from, unlike the sync example which constructs the callable inline. Consider mirroring the sync example (or a brieftoken = os.environ[...]) so it stands alone.🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@web/content/docs/file/python-sdk.mdx` around lines 63 - 68, The async example in AsyncRelayFileClient currently uses an undefined token, so update the snippet to make the token source explicit and self-contained. Mirror the sync example pattern in python-sdk.mdx by constructing the token inline or add a brief token assignment before the async with block, and keep the example aligned with AsyncRelayFileClient and read_file so readers can run it without extra context.web/components/GitHubStars.tsx (1)
23-40: 🩺 Stability & Availability | 🔵 Trivial | ⚡ Quick winAdd a request timeout to the GitHub fetch.
getGitHubStarsruns during the docs layout render (server component) andDocsGitHubStarsBadgeServernow awaitsPromise.allover multiple repos. Without a timeout, a slow/hanging GitHub response blocks rendering of the entire docs layout until the platform default kicks in. AnAbortSignal.timeoutbounds the worst case while preserving the existingnull-on-failure behavior via thecatch.♻️ Proposed change
const response = await fetch(`https://api.github.com/repos/${repo}`, { headers: { Accept: 'application/vnd.github+json', 'User-Agent': 'agentrelay-web', }, next: { revalidate: 3600 }, + signal: AbortSignal.timeout(5000), });🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@web/components/GitHubStars.tsx` around lines 23 - 40, Add a timeout to the GitHub request in getGitHubStars so a slow or hanging fetch doesn’t block docs rendering. Update the fetch options in getGitHubStars to use an AbortSignal timeout, and keep the existing null-on-failure behavior by letting the timeout fall into the current catch path. Use the getGitHubStars function and its fetch call as the place to apply the change.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@web/content/docs/file/python-sdk.mdx`:
- Around line 18-25: Add the missing os import in the Python SDK example so the
RelayFileClient snippet can be run as-is without a NameError. Update the example
near RelayFileClient and the lambda using os.environ["RELAYFILE_TOKEN"] to
include the required import before the client initialization.
---
Nitpick comments:
In `@web/components/GitHubStars.tsx`:
- Around line 23-40: Add a timeout to the GitHub request in getGitHubStars so a
slow or hanging fetch doesn’t block docs rendering. Update the fetch options in
getGitHubStars to use an AbortSignal timeout, and keep the existing
null-on-failure behavior by letting the timeout fall into the current catch
path. Use the getGitHubStars function and its fetch call as the place to apply
the change.
In `@web/content/docs/file/python-sdk.mdx`:
- Around line 63-68: The async example in AsyncRelayFileClient currently uses an
undefined token, so update the snippet to make the token source explicit and
self-contained. Mirror the sync example pattern in python-sdk.mdx by
constructing the token inline or add a brief token assignment before the async
with block, and keep the example aligned with AsyncRelayFileClient and read_file
so readers can run it without extra context.
🪄 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: Organization UI
Review profile: CHILL
Plan: Pro Plus
Run ID: 628d73bf-f781-4acc-9af3-5729665b5d77
📒 Files selected for processing (12)
web/app/docs/file/[slug]/og.png/route.tsxweb/app/docs/file/[slug]/page.tsxweb/app/docs/layout.tsxweb/app/docs/loop/[slug]/og.png/route.tsxweb/app/docs/loop/[slug]/page.tsxweb/components/DocsGitHubStarsBadge.tsxweb/components/GitHubStars.tsxweb/components/docs/DocsNav.tsxweb/components/docs/TableOfContents.tsxweb/components/docs/docs.module.cssweb/content/docs/file/python-sdk.mdxweb/lib/product-docs-nav.ts
| ```python | ||
| from relayfile import RelayFileClient | ||
|
|
||
| client = RelayFileClient( | ||
| "https://api.relayfile.dev", | ||
| lambda: os.environ["RELAYFILE_TOKEN"], | ||
| ) | ||
| ``` |
There was a problem hiding this comment.
🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win
Add the missing import os to the example.
The snippet references os.environ["RELAYFILE_TOKEN"] but never imports os, so a copy-paste run raises NameError.
📝 Proposed fix
+import os
from relayfile import RelayFileClient
client = RelayFileClient(
"https://api.relayfile.dev",
lambda: os.environ["RELAYFILE_TOKEN"],
)📝 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.
| ```python | |
| from relayfile import RelayFileClient | |
| client = RelayFileClient( | |
| "https://api.relayfile.dev", | |
| lambda: os.environ["RELAYFILE_TOKEN"], | |
| ) | |
| ``` |
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@web/content/docs/file/python-sdk.mdx` around lines 18 - 25, Add the missing
os import in the Python SDK example so the RelayFileClient snippet can be run
as-is without a NameError. Update the example near RelayFileClient and the
lambda using os.environ["RELAYFILE_TOKEN"] to include the required import before
the client initialization.
|
ℹ️ pr-reviewer: review only — no file changes were applied to the PR (nothing to commit after review). The notes below are advisory and were not pushed. Working tree is clean (only the pre-existing untracked Review of PR #7 —
|
Follows up the Relayfile/Relayloop docs with versioning, header/OG accuracy, and the Python SDK.
Changes
ai-histrelease). Sourced from the actual repos.AgentWorkforce/relayfileunder/docs/file,AgentWorkforce/relayhistoryunder/docs/loop,agentworkforce/relayeverywhere else. Counts fetched server-side (1h revalidate); a client component picks by path. The ~17 marketing pages keep the default badge./docs/file/*and/docs/loop/*now render their own Open Graph cards (Relayfile/Relayloop eyebrow + doc title) instead of inheriting the site-wide "Headless Slack for Agents" default.relayfile-sdk(v0.2.1 on PyPI):RelayFileClient/AsyncRelayFileClientreads & writes and theon_writesubscription helper.Notes
relayfile-sdk0.2.1 (via the repo'sPublish Python SDKworkflow) — this PR documents it.🤖 Generated with Claude Code
Summary by cubic
Adds per-product version badges, section-aware GitHub stars, and product OG cards, plus a new Python SDK page for
relayfile-sdk. The TOC shows product versions and hides the Agent Relay switcher; the Relayfile intro connect example now follows the Language toggle with a Python tab./docs/file/*and/docs/loop/*.AgentWorkforce/relayfileunder/docs/file,AgentWorkforce/relayhistoryunder/docs/loop,agentworkforce/relayelsewhere (server-fetched, 1h cache)./docs/file/*and/docs/loop/*with a section eyebrow and doc title.relayfile-sdk(v0.2.1) coveringRelayFileClient,AsyncRelayFileClient, andon_write; the Relayfile intro connect example now follows the Language toggle (TypeScript/Python).Written for commit e8605ba. Summary will update on new commits.