Task · PND-0005

CI hygiene: drop the duplicate node_modules cache

Description

.github/workflows/ci.yml job install caches the same dependencies twice: actions/setup-node with cache: pnpm AND a manual actions/cache step ‘Cache node_modules’ (key node-modules-<os>-<pnpm-lock hash>). Remove the manual step and keep pnpm’s own cache. The repo sits at the 10 GB cache ceiling; the rest of its usage is the shared buildx cache (fixed centrally).

Context: fleet CI hygiene, tracked centrally as GHC-0006 in rknightion/.github. The container-publish.yml buildx cache move to a GHCR registry cache happens there and arrives here through the normal Renovate bump; orphaned PR and tag caches are deleted by the n8n repo-settings aligner. Neither needs work in this repo.

Acceptance Criteria

Definition of Done

Final Summary

Removed the manual ‘Cache node_modules’ actions/cache step from the install job in .github/workflows/ci.yml; kept only setup-node’s cache: pnpm. Confirmed no other job restores that cache: every downstream job (quality, unit-tests, e2e-tests, source-maps) uses the .github/actions/setup-node-pnpm composite action, which already runs its own just setup (pnpm install) independently and never restored the cross-job node_modules cache — its own inline comment documents why (pnpm rewrites the lockfile during install, so the install job’s post-install hash never matched a fresh-checkout key). No job needed changing to pnpm install –frozen-lockfile since none depended on the removed cache.

Verified: just typecheck and just build pass clean. just fmt-check, just lint and just test fail, but on pre-existing, unrelated issues already broken on main before this change (design/ui-v2 mockup HTML/JS files with lint/prettier errors, and 4 flaky backup-lease-recovery tests) — confirmed via gh run list that CI on main has been failing on the same quality/docker-build-verify jobs since at least 2026-09-25. docker-build-verify also still hits failed to reserve cache (the cache-limit issue called out in the task context) — reporting per instructions rather than working around it.

actionlint and zizmor clean on the changed file. CodeRabbit review (–agent –base main): 0 findings.

Commit 852aaf9, pushed to main. CI run: https://github.com/rknightion/paperless-ngx-dedupe/actions (see run for commit 852aaf9 in final report).

View the source file on GitHub