Conversation
web/package.json has had a 'lint' script since the app moved here, but no CI job ever ran it, so eslint has never gated anything. It also could not have run: eslint.config.mjs imports typescript-eslint and eslint-plugin-react-hooks, and neither was in devDependencies. Invoking it locally failed at config load: Error [ERR_MODULE_NOT_FOUND]: Cannot find package 'eslint-plugin-react-hooks' imported from web/eslint.config.mjs With those two added, 'eslint .' reported 3151 problems (2588 errors). All 2588 errors were in .vercel/ — four minified 'vercel build' bundles linted as no-unused-expressions noise. The ignores list already carried dist/, .next/, .turbo/ and coverage/ but not .vercel/, which is why the script could never pass and, presumably, why it was never wired up. Source is clean: across 173 files under web/src the run is 0 errors and 1 warning (an exhaustive-deps hint in ListsPage.tsx). With .vercel/ ignored, 'pnpm --filter ntask lint' exits 0. Adds the step as blocking in web-test — no continue-on-error, nothing ignored, no rule downgraded. Lockfile updated because CI installs with --frozen-lockfile. Closes the eslint-never-runs finding in P6-E11-W2-S4-T25.
|
The latest updates on your projects. Learn more about Vercel for GitHub. |
|
Closing — superseded. I branched from a local main that was 5 commits stale and did Two small residual findings from this branch, neither urgent, recorded here rather
Neither blocks anything. Worth folding into the next change that touches that config. |
The gap
web/package.jsonhas carried alintscript (eslint .) since the app moved intothis repo, but no CI job has ever run it.
grep lint .github/workflows/ci.ymlreturns nothing. So eslint has never gated anything here.
It also could not have run if someone had tried.
eslint.config.mjsimportstypescript-eslintandeslint-plugin-react-hooks; neither was indevDependencies. Invoking it fails at config load, before linting a single file:Why just adding the CI step would have turned main red
With the two packages installed,
eslint .reports 3151 problems (2588 errors).All 2588 errors are in
.vercel/— four minifiedvercel buildbundles, linting asno-unused-expressionsnoise at column offsets like1:22188. Theignoreslistalready had
node_modules/,dist/,.next/,.turbo/andcoverage/, but not.vercel/. That omission is almost certainly why the script was never wired up:anyone who tried it got a wall of errors from build output and moved on.
The source itself is clean. Across 173 files under
web/src: 0 errors, 1warning (an
exhaustive-depshint inListsPage.tsx).Changes
web/package.jsontypescript-eslint@^8.70.0,eslint-plugin-react-hooks@^7.1.1web/eslint.config.mjs.vercel/toignores, alongsidedist/.github/workflows/ci.ymlLintstep toweb-testpnpm-lock.yaml--frozen-lockfileNo gate weakened
No
continue-on-error, no rule turned off or downgraded, nothing added to an ignorelist except build output that sits next to
dist/. The onesrcwarning is leftas a warning because that is how
react-hooks/exhaustive-depsis already configuredin this repo — this PR does not change severity levels.
Verification
Exit 0. The CI run on this PR is the real check that it holds on a clean runner
checkout, where
.vercel/will not even exist.Context
Closes the
eslint-never-runsfinding inP6-E11-W2-S4-T25, whose acceptancerequires
pnpm --filter ntask lintas a blocking step on every push/PR — hence thatexact invocation rather than the
working-directory: webform the neighbouring stepsuse. The
namefield inweb/package.jsonis literallyntask, so the filterresolves.