Followup to 7bb1eb6 (npm install -> npm ci for the oxc-validator
runtime install in studio/setup.sh, studio/setup.ps1). That commit
worked locally because the lockfile already existed there from an
earlier `npm install`, but `npm ci` failed in CI because the
lockfile was never committed:
npm error EUSAGE
npm error The `npm ci` command can only install with an existing
npm error package-lock.json or npm-shrinkwrap.json with lockfileVersion >= 1.
Root cause: the project-root .gitignore has a bare `package-lock.json`
entry left over from a Python-template gitignore. The frontend
lockfile was force-added past it; the oxc-validator lockfile never
was. So a fresh actions/checkout did not have it.
Fix:
Force-commit studio/backend/core/data_recipe/oxc-validator/package-lock.json
(5 packages, lockfileVersion 3, integrity-pinned).
Replace the bare gitignore rule with explicit `!` exceptions for
the two committed npm-project lockfiles, with a comment explaining
why stray lockfiles in random Python subtrees are still ignored.
The pyproject.toml package-data glob `backend/core/data_recipe/oxc-validator/*.json`
already pulls the lockfile into the pip-installed wheel; the only
gap was that fresh git checkouts (CI) didn't have it.