PR Checks / Frontend Typecheck + Tests (pull_request) Successful in 1m34s
PR Checks / Backend Smoke (pull_request) Successful in 7s
PR Checks / Build Backend (no push) (pull_request) Successful in 10s
PR Checks / Build Frontend (no push) (pull_request) Successful in 46s
PR Checks / Build Pipeline (no push) (pull_request) Successful in 9s
PR Checks / AI Code Review (Claude) (pull_request) Successful in 9s
The job does ~3s of real work (typecheck 1.4s + jest 1.3s) but installs 452 MB / 460 packages every run. Two changes: - Cache nextjs-app/node_modules keyed on the lockfile hash (OS + node major pinned) and skip npm ci entirely on a hit — deps change rarely, so most PR pushes now do zero install. On miss, npm ci runs with --prefer-offline --no-audit --no-fund. - Workflow-level concurrency with cancel-in-progress: a new commit (or an empty re-trigger) aborts the previous run instead of stacking a second full matrix. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0146VHeLAWjDVE2B5uU67jCB