ci(link-check): fix the scheduled online link-check lane - #61
Conversation
…ine lane The online advisory lane checks local file links too, so the lychee bad fixture fails every scheduled run and keeps the rolling tracking issue open. Mirror the offline lane's exclusion by overriding the called workflow's args (a single input, so the defaults are restated). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_017K9RRMdUKD7HLExmHwMXAe
|
Claude finished @kyle-sexton's task in 1m 58s —— View job PR Review
SummaryThe change is small, correct, and well-reasoned. The fixture exclusion closes a real gap: No bugs, no security issues. A few observations below. Findings[Intentional] Incomplete fix with current SHA — The SHA [Observation] Because [Observation] Exclusion pattern scope is appropriately broad
[Observation] Single-quoted glob in YAML block scalar —
VerdictThe fixture exclusion is correct and the comment explaining the args-restatement tradeoff is appropriate. Merge sequencing (waiting for ci-workflows#52) is the right call — the fix would regress without the upstream lychee version bump. LGTM once the upstream merges and the SHA is bumped. |
|
Claude finished @kyle-sexton's task in 0s —— View job I'll analyze this and get back to you. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 0295733944
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| --cache | ||
| --max-cache-age 7d | ||
| --no-progress | ||
| --accept-timeouts |
There was a problem hiding this comment.
Pin a lychee version before passing this flag
For scheduled or manual runs while this workflow still calls ci-workflows at 0c5a0654..., the reusable workflow invokes lycheeverse/lychee-action@8646ba.../v2.8.0, whose action.yml defaults lycheeVersion to v0.23.0; that version rejects --accept-timeouts as an unexpected argument, so the job still exits before checking any links or applying the new fixture exclusion. Either bump the reusable workflow SHA to one that sets lychee >=0.24 or avoid restating this flag here until that pin changes.
Useful? React with 👍 / 👎.


Problem
Both scheduled online link-check runs behind the rolling tracking issues did not fail on dead links — every one of this repo's 173 external links resolves (verified with a full-repo online lychee 0.24.2 run against
modules/lychee/lychee.toml). The runs died before checking anything:error: unexpected argument '--accept-timeouts' found. The reusable ci-workflowslink-check.ymlpasses default args that rely on--accept-timeouts(lychee ≥ 0.24) while leaving lychee-action at its default lychee v0.23.0, which also predates theinclude_fragments = "full"config form this repo's ruleset requires (module engine floor 0.24.2+).Change
fixtures/lychee/bad/on every scheduled run and re-open the tracking issue forever. The caller now overrides the called workflow'sargsto add--exclude-path 'fixtures/[^/]+/bad', mirroring the offline lane's exclusion inci.yml(argsis a single input, so the defaults are restated). Verified locally: with the exclusion, a full online run reports 0 errors.lycheeVersion: v0.24.2and moves lychee-action past v2.8.0 for the 0.24.x archive layout). That PR is green/CLEAN but not yet merged. Once it lands, this branch gets the repo-wide ci-workflows pin bump to the new SHA (per the convention from build(deps): bump ci-workflows pin to b6431a1 (PSSA RULE_ERROR retry fix) #44, which also refreshes the stale# b6431a1pin comments left by the Dependabot SHA-only bump) and the PR will be marked ready.Verification plan
After merge:
workflow_dispatchthe link-check workflow and confirm a green end-to-end run.Closes #13
Closes #54
🤖 Generated with Claude Code
https://claude.ai/code/session_017K9RRMdUKD7HLExmHwMXAe
Note
Low Risk
CI-only workflow input change; no application runtime or security-sensitive code paths.
Overview
The scheduled online link-check job now passes an explicit
with.argsto the reusablelink-checkworkflow instead of relying solely on its defaults.Because
argsis one input, the override restates the called workflow’s lychee flags (--cache,--max-cache-age 7d,--no-progress,--accept-timeouts, config path, and'.**/*.md') and adds--exclude-path 'fixtures/[^/]+/bad'so intentionally broken lychee fixtures are skipped—matching the offline lychee lane inci.yml. That prevents the online lane (which also checks local file links) from failing every run and reopening the rolling tracking issue once lychee is on a version that supports those args.Reviewed by Cursor Bugbot for commit 0295733. Bugbot is set up for automated code reviews on this repo. Configure here.