fix(docs): repoint dead iii.dev links, add link-check CI - #655
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
skill-check — worker0 verified, 51 skipped (no docs/).
Four for four. Nicely done. |
|
Warning Review limit reached
Next review available in: 56 minutes Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available. How can I continue?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 reviews. How do review 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 refer docs for additional details. Review details⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (15)
📝 WalkthroughWalkthroughThe PR adds automated repository link checks, updates SDK and engine documentation URLs, changes workers state error links, and adds generated assets and runtime shims for a recorded console demo. ChangesLink validation and URL migration
Console recorded demo
Estimated code review effort: 3 (Moderate) | ~20 minutes Possibly related PRs
Suggested reviewers: Poem
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✨ Finishing Touches 💡 1📝 Generate docstrings 💡
🧪 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 |
There was a problem hiding this comment.
Actionable comments posted: 2
🧹 Nitpick comments (3)
console/web/dist-demo/assets/demo-BOaV_wZh.js (1)
1-152: 📐 Maintainability & Code Quality | 🔵 Trivial | 🏗️ Heavy liftRecommended: do not commit generated/minified bundles to source control.
This file is a bundled and minified build artifact. It includes vendor code (React, Radix UI, Zod, Prism, remark/rehype, TanStack virtual) together with first-party demo logic, compiled into a single unreadable file.
Committing build output has three costs:
- Reviewers cannot meaningfully review or diff this file.
- The repository grows with every rebuild, even for trivial source changes.
- Any future fix to the bundled logic must be re-generated and re-committed, which is easy to get out of sync with the actual source.
Move
dist-demo/(and its generated assets) into a build step that runs in CI or at deploy time, and add the directory to.gitignore. If the demo needs to ship as a static artifact for review or preview purposes, publish it via a build pipeline or a package registry instead of checking it into the repository.🤖 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 `@console/web/dist-demo/assets/demo-BOaV_wZh.js` around lines 1 - 152, Remove the generated dist-demo bundle and its assets from source control, add dist-demo/ to the repository ignore configuration, and ensure the demo build regenerates these artifacts during CI or deployment. Keep the original demo source as the canonical implementation and use the existing build pipeline rather than adding committed generated output.scripts/check-links.sh (2)
22-22: 🩺 Stability & Availability | 🔵 Trivial | 💤 Low valueConsider setting a custom User-Agent to reduce false FAIL reports.
The
curlcall uses the default User-Agent. Some sites block or reduce access for default bot-like user agents, returning a non-retryable status (for example403) even though the page is reachable to a normal browser. The retry logic only accounts for429,5xx, and000; a403from anti-bot filtering would be reported as a hard FAIL, requiring a manual addition to theignorelist rather than fixing the root cause.Do you want me to add a browser-like
-AUser-Agent header to thecurlinvocation?[reliability]
🤖 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 `@scripts/check-links.sh` at line 22, Update the curl invocation in the link-checking flow to include a browser-like custom User-Agent via the -A option, while preserving the existing URL, redirect, timeout, and HTTP-status handling.
21-25: 🚀 Performance & Scalability | 🔵 Trivial | 💤 Low valueAvoid the unneeded sleep after the last retry attempt.
On the third (
attempt=3) iteration, ifcodestill matches the retryable set, the loop still executessleep $((attempt * attempt * 2))(18s) even though theforloop ends immediately afterward with no further retry. This wastes up to 18 seconds per persistently failing URL with no benefit.♻️ Proposed fix to skip the sleep after the final attempt
for attempt in 1 2 3; do code=$(curl -sS -o /dev/null -w '%{http_code}' -L --max-time 20 "$url") [[ "$code" =~ ^(429|5..|000)$ ]] || break - sleep $((attempt * attempt * 2)) # backoff: 2s, 8s + (( attempt < 3 )) && sleep $((attempt * attempt * 2)) # backoff: 2s, 8s done🤖 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 `@scripts/check-links.sh` around lines 21 - 25, Update the retry loop around the curl status check so the backoff sleep runs only when another attempt remains; preserve the existing retryable-code matching and retry counts, but skip the sleep when attempt is 3.
🤖 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 @.github/workflows/link-check.yml:
- Line 20: Update the actions/checkout@v4 step in the workflow to disable
credential persistence by configuring persist-credentials as false, ensuring
pull-request-controlled scripts cannot access checkout credentials.
In `@console/web/dist-demo/assets/demo-BWlqPMEY.css`:
- Line 2: Exclude the generated Tailwind output under dist-demo from Stylelint
by updating the project’s Stylelint ignore configuration to match
console/web/dist-demo/**. Do not modify the generated demo-BWlqPMEY.css file or
add formatting changes to generated assets.
---
Nitpick comments:
In `@console/web/dist-demo/assets/demo-BOaV_wZh.js`:
- Around line 1-152: Remove the generated dist-demo bundle and its assets from
source control, add dist-demo/ to the repository ignore configuration, and
ensure the demo build regenerates these artifacts during CI or deployment. Keep
the original demo source as the canonical implementation and use the existing
build pipeline rather than adding committed generated output.
In `@scripts/check-links.sh`:
- Line 22: Update the curl invocation in the link-checking flow to include a
browser-like custom User-Agent via the -A option, while preserving the existing
URL, redirect, timeout, and HTTP-status handling.
- Around line 21-25: Update the retry loop around the curl status check so the
backoff sleep runs only when another attempt remains; preserve the existing
retryable-code matching and retry counts, but skip the sleep when attempt is 3.
🪄 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: 2ca318c3-a9a1-46cd-8ad3-23f3c54997d9
⛔ Files ignored due to path filters (72)
approval-gate/Cargo.lockis excluded by!**/*.lockconsole/web/dist-demo/assets/chivo-mono-latin-400-normal-BIF4JAKS.woffis excluded by!**/*.woffconsole/web/dist-demo/assets/chivo-mono-latin-400-normal-DZ3T-ph7.woff2is excluded by!**/*.woff2console/web/dist-demo/assets/chivo-mono-latin-500-normal-BJB2L2Ln.woffis excluded by!**/*.woffconsole/web/dist-demo/assets/chivo-mono-latin-500-normal-yaIk6wkS.woff2is excluded by!**/*.woff2console/web/dist-demo/assets/chivo-mono-latin-600-normal-D8ZcYpdM.woffis excluded by!**/*.woffconsole/web/dist-demo/assets/chivo-mono-latin-600-normal-RpBPN2_R.woff2is excluded by!**/*.woff2console/web/dist-demo/assets/chivo-mono-latin-ext-400-normal-D2sLLYA-.woffis excluded by!**/*.woffconsole/web/dist-demo/assets/chivo-mono-latin-ext-400-normal-UHfHOjZK.woff2is excluded by!**/*.woff2console/web/dist-demo/assets/chivo-mono-latin-ext-500-normal-D1z6GQOH.woff2is excluded by!**/*.woff2console/web/dist-demo/assets/chivo-mono-latin-ext-500-normal-WNoP_gXg.woffis excluded by!**/*.woffconsole/web/dist-demo/assets/chivo-mono-latin-ext-600-normal-BdTF6ibp.woff2is excluded by!**/*.woff2console/web/dist-demo/assets/chivo-mono-latin-ext-600-normal-C86iOssW.woffis excluded by!**/*.woffconsole/web/dist-demo/assets/chivo-mono-vietnamese-400-normal-Dm4OwksM.woffis excluded by!**/*.woffconsole/web/dist-demo/assets/chivo-mono-vietnamese-400-normal-Drvd1ekh.woff2is excluded by!**/*.woff2console/web/dist-demo/assets/chivo-mono-vietnamese-500-normal-XrHUrQoZ.woffis excluded by!**/*.woffconsole/web/dist-demo/assets/chivo-mono-vietnamese-500-normal-xwWRnSK6.woff2is excluded by!**/*.woff2console/web/dist-demo/assets/chivo-mono-vietnamese-600-normal-CmYQG3WF.woff2is excluded by!**/*.woff2console/web/dist-demo/assets/chivo-mono-vietnamese-600-normal-DSP6tK2J.woffis excluded by!**/*.woffconsole/web/dist-demo/assets/geist-cyrillic-400-normal-DXusLSnH.woff2is excluded by!**/*.woff2console/web/dist-demo/assets/geist-cyrillic-400-normal-DkrqoNl2.woffis excluded by!**/*.woffconsole/web/dist-demo/assets/geist-cyrillic-500-normal-BboVsk8R.woffis excluded by!**/*.woffconsole/web/dist-demo/assets/geist-cyrillic-500-normal-NWpm63d5.woff2is excluded by!**/*.woff2console/web/dist-demo/assets/geist-cyrillic-600-normal-BeW5VFD_.woff2is excluded by!**/*.woff2console/web/dist-demo/assets/geist-cyrillic-600-normal-CnEeIcMC.woffis excluded by!**/*.woffconsole/web/dist-demo/assets/geist-cyrillic-ext-400-normal-ChfpGzr5.woffis excluded by!**/*.woffconsole/web/dist-demo/assets/geist-cyrillic-ext-500-normal-BXrH8YSv.woffis excluded by!**/*.woffconsole/web/dist-demo/assets/geist-cyrillic-ext-600-normal-PR76dHFV.woffis excluded by!**/*.woffconsole/web/dist-demo/assets/geist-latin-400-normal-B40WzpMT.woff2is excluded by!**/*.woff2console/web/dist-demo/assets/geist-latin-400-normal-akEymXtG.woffis excluded by!**/*.woffconsole/web/dist-demo/assets/geist-latin-500-normal-BDXIbFrL.woffis excluded by!**/*.woffconsole/web/dist-demo/assets/geist-latin-500-normal-CTWBw9NS.woff2is excluded by!**/*.woff2console/web/dist-demo/assets/geist-latin-600-normal-CSETrqM2.woff2is excluded by!**/*.woff2console/web/dist-demo/assets/geist-latin-600-normal-DsPlZH-9.woffis excluded by!**/*.woffconsole/web/dist-demo/assets/geist-latin-ext-400-normal-Bz1pQMyt.woffis excluded by!**/*.woffconsole/web/dist-demo/assets/geist-latin-ext-400-normal-CND6cjiG.woff2is excluded by!**/*.woff2console/web/dist-demo/assets/geist-latin-ext-500-normal-BovoTgeE.woff2is excluded by!**/*.woff2console/web/dist-demo/assets/geist-latin-ext-500-normal-C9fx-R30.woffis excluded by!**/*.woffconsole/web/dist-demo/assets/geist-latin-ext-600-normal-CVFbg5dS.woff2is excluded by!**/*.woff2console/web/dist-demo/assets/geist-latin-ext-600-normal-TmIUreF9.woffis excluded by!**/*.woffconsole/web/dist-demo/assets/geist-mono-cyrillic-400-normal-C51Di1Mf.woff2is excluded by!**/*.woff2console/web/dist-demo/assets/geist-mono-cyrillic-400-normal-CPJFfJgk.woffis excluded by!**/*.woffconsole/web/dist-demo/assets/geist-mono-cyrillic-500-normal-D2cXvDHF.woff2is excluded by!**/*.woff2console/web/dist-demo/assets/geist-mono-cyrillic-500-normal-DfuvdVgn.woffis excluded by!**/*.woffconsole/web/dist-demo/assets/geist-mono-cyrillic-600-normal-Dfv53e6N.woff2is excluded by!**/*.woff2console/web/dist-demo/assets/geist-mono-cyrillic-600-normal-DzvMIgFZ.woffis excluded by!**/*.woffconsole/web/dist-demo/assets/geist-mono-latin-400-normal-B2yvC1Cq.woffis excluded by!**/*.woffconsole/web/dist-demo/assets/geist-mono-latin-400-normal-DTRLJnHl.woff2is excluded by!**/*.woff2console/web/dist-demo/assets/geist-mono-latin-500-normal-D-GG86Jb.woffis excluded by!**/*.woffconsole/web/dist-demo/assets/geist-mono-latin-500-normal-YINYabwD.woff2is excluded by!**/*.woff2console/web/dist-demo/assets/geist-mono-latin-600-normal-V-KvD_pi.woff2is excluded by!**/*.woff2console/web/dist-demo/assets/geist-mono-latin-600-normal-bZn07FKM.woffis excluded by!**/*.woffconsole/web/dist-demo/assets/geist-mono-latin-ext-400-normal-CfzLURNc.woffis excluded by!**/*.woffconsole/web/dist-demo/assets/geist-mono-latin-ext-400-normal-DI-rJ0UV.woff2is excluded by!**/*.woff2console/web/dist-demo/assets/geist-mono-latin-ext-500-normal-Buglb9-a.woff2is excluded by!**/*.woff2console/web/dist-demo/assets/geist-mono-latin-ext-500-normal-CrWEgvU_.woffis excluded by!**/*.woffconsole/web/dist-demo/assets/geist-mono-latin-ext-600-normal-B7ybHiTt.woffis excluded by!**/*.woffconsole/web/dist-demo/assets/geist-mono-latin-ext-600-normal-TphwrhF8.woff2is excluded by!**/*.woff2console/web/dist-demo/assets/geist-mono-symbols2-400-normal-DjbiTEEA.woffis excluded by!**/*.woffconsole/web/dist-demo/assets/geist-mono-symbols2-500-normal-CmnCPGa0.woffis excluded by!**/*.woffconsole/web/dist-demo/assets/geist-mono-symbols2-600-normal-D7I4D0GJ.woffis excluded by!**/*.woffconsole/web/dist-demo/assets/geist-mono-vietnamese-400-normal-CZEPLOgu.woffis excluded by!**/*.woffconsole/web/dist-demo/assets/geist-mono-vietnamese-500-normal-Dx9-epDo.woffis excluded by!**/*.woffconsole/web/dist-demo/assets/geist-mono-vietnamese-600-normal-BLL01lwa.woffis excluded by!**/*.woffconsole/web/dist-demo/assets/geist-vietnamese-400-normal-C8xY9-dI.woffis excluded by!**/*.woffconsole/web/dist-demo/assets/geist-vietnamese-500-normal-_b1ojCbH.woffis excluded by!**/*.woffconsole/web/dist-demo/assets/geist-vietnamese-600-normal-B5MZcNo4.woffis excluded by!**/*.woffconsole/web/dist-demo/assets/geist-vietnamese-600-normal-BFUgqsz8.woff2is excluded by!**/*.woff2eval/Cargo.lockis excluded by!**/*.lockprovider-kimi/Cargo.lockis excluded by!**/*.lockprovider-llamacpp/Cargo.lockis excluded by!**/*.lockprovider-xai/Cargo.lockis excluded by!**/*.lock
📒 Files selected for processing (23)
.github/workflows/link-check.ymlconsole/web/dist-demo/assets/demo-BOaV_wZh.jsconsole/web/dist-demo/assets/demo-BWlqPMEY.cssconsole/web/dist-demo/demo.htmlconsole/web/dist-demo/vendor/console-ui.jsconsole/web/dist-demo/vendor/jsx-runtime.jsconsole/web/dist-demo/vendor/react-dom-client.jsconsole/web/dist-demo/vendor/react-dom.jsconsole/web/dist-demo/vendor/react.jsharness/README.mdharness/prompts/default.txtharness/src/prompt/tests.rsprovider-anthropic/prompts/identity.txtprovider-claude-code/prompts/identity.txtprovider-kimi/prompts/identity.txtprovider-llamacpp/prompts/identity.txtprovider-openai-codex/prompts/identity.txtprovider-openai/prompts/identity.txtprovider-xai/prompts/identity.txtprovider-zai/prompts/identity.txtscripts/check-links.shstate/src/adapters.rsstate/src/update_ops.rs
|
Addressed in a7b2f0e:
Skipped:
|
api-reference -> reference across the harness and provider prompts, sdk-reference/engine-sdk -> reference/engine-protocol (the docs.json redirect only covers /next/), and the iii-state error-code anchor to workers.iii.dev where the worker pages actually live. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
scripts/check-links.sh greps every iii.dev URL in the repo and curls it with backoff on 429/5xx/timeouts; the workflow runs it on PRs, Mondays, and on demand. Checkout runs with persist-credentials: false since the job executes a PR-controlled script. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
a7b2f0e to
50e3274
Compare
Four iii.dev URLs in the repo returned 404. Found them by grepping every
iii.devURL and checking it live; fixed the three that have valid targets withsed.iii.dev/docs/sdk-reference/engine-sdkiii.dev/docs/reference/engine-protocolharness/prompts/default.txt,harness/src/prompt/tests.rs, 8provider-*/prompts/identity.txtiii.dev/docs/sdk-reference/iii.dev/docs/reference/harness/README.mdiii.dev/docs/workers/iii-state#error-codesworkers.iii.dev/workers/iii-state#error-codesstate/src/update_ops.rs,state/src/adapters.rsThe
sdk-referenceredirect indocs.jsononly covers/next/, so the stable paths 404'd.Also adds
scripts/check-links.sh(grep +curl -Lwith backoff on 429/5xx) and aLink Checkworkflow that runs it on PRs, weekly, and on demand. All 41 URLs now return 200.Not fixed:
workers.iii.dev/workers/skills404s while itsbadge.svgreturns 200 — the worker is published but the registry page is missing. It's in the script's ignore list with that note; needs a fix on the registry side.🤖 Generated with Claude Code
Summary by CodeRabbit
New Features
Documentation
Bug Fixes