fix(root): the scheduled metadata check loads nothing an install would provide - #1879
Conversation
…d provide scripts/check-repo-metadata.mjs runs in repo-metadata.yml, a scheduled job that installs nothing. It imported the retired-category patterns from check-docs-claims.mjs, which imports @mdx-js/mdx and, through check-docs-compile.mjs, js-yaml. Every scheduled run since 2026-09-11 has died with ERR_MODULE_NOT_FOUND before checking anything. The patterns and their classifier move verbatim into scripts/retired-category.mjs, which imports nothing. check-repo-metadata.mjs imports it directly; check-docs-claims.mjs imports and re-exports it, so there is still one definition and every existing importer keeps its path.
|
@codex review |
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
|
Warning Review limit reachedNext included review available in 5 minutes. View limit detailsLimit details: You’ve used the included review currently available. You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository. Review configuration: ⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Advanced Run ID: 📒 Files selected for processing (3)
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 |
|
Codex Review: Didn't find any major issues. Delightful! Reviewed commit: ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
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". |
@nextlyhq/adapter-drizzle
@nextlyhq/adapter-mysql
@nextlyhq/adapter-postgres
@nextlyhq/adapter-sqlite
@nextlyhq/admin
@nextlyhq/admin-css
@nextlyhq/blocks-engine
@nextlyhq/blocks-react
@nextlyhq/builder
create-nextly-app
@nextlyhq/eslint-plugin
nextly
@nextlyhq/plugin-form-builder
@nextlyhq/plugin-mcp
@nextlyhq/plugin-page-builder
@nextlyhq/plugin-sdk
@nextlyhq/plugin-seo
@nextlyhq/storage-s3
@nextlyhq/storage-uploadthing
@nextlyhq/storage-vercel-blob
@nextlyhq/ui
commit: |
mainhas shown a red About line and topics check on every scheduled run since 2026-09-11 (tracking issue #1799). The About line and the topics were never wrong. The job crashes before it examines either.Root cause
repo-metadata.ymlruns straight after checkout with no install, on purpose — its own comment says both scripts import only Node builtins.check-repo-metadata.mjsimported the retired-category patterns fromcheck-docs-claims.mjs. #1767 gave that module animport { compile } from "@mdx-js/mdx", and its own import ofcheck-docs-compile.mjsbringsjs-yamlas well. ES imports evaluate eagerly, so importing two regexes loaded an MDX compiler the job cannot resolve:git log -S'@mdx-js/mdx'ERR_MODULE_NOT_FOUNDfrompackageResolvescripts/, nonode_modulesin the directory or any ancestor,GITHUB_EVENT_NAME=schedulemain, exit 0 on this branchWhy #1767 merged green: this job runs on a schedule only, never on a pull request, and pull-request CI installs dependencies first. The invariant lived in a YAML comment nothing enforced, in a different file from the code that broke it.
Fix
The patterns and their classifier move verbatim into
scripts/retired-category.mjs, which imports nothing. The metadata check imports it directly.check-docs-claims.mjsimports and re-exports it, so there is still exactly one definition — the metadata script's docblock explicitly forbids restating it — and every existing importer keeps its path.Rejected: adding an install to the job (reintroduces the fragility its author removed on purpose, and #1391 owns that workflow file); a lazy
import()of the compiler (leaves the coupling, and the next top-level import silently re-breaks it).Verification
main: the job'sscripts/and the one file it reads, copied where no package resolves (a control confirmed nothing resolves), run withGITHUB_EVENT_NAME=scheduletest:scriptslint:scripts·check:comments·check:docs-claims·check:docs-compileWhy this is its own pull request
#1864 carried this fix together with a pull-request guard that keeps every job without an install to builtin imports. That guard is still in review. This fix has not drawn a finding in any round, and
main's scheduled job keeps failing every day until it lands, so it ships on its own. #1864 keeps the guard.No changeset: root tooling only, no published package changes.
Addresses #1799. I'll close that issue once a scheduled or dispatched run passes after merge, not on merge.