Repository navigation
fix: commit package-lock.json for setup-node npm cache - #5
Conversation
Fixes #4. actions/setup-node@v4 with cache: 'npm' requires a committed lockfile to compute the cache key; none existed, so the Setup Node.js step failed before install/typecheck/lint/build ever ran. Generated via 'npm install --package-lock-only' against the current package.json and verified 'npm ci' succeeds against it. Does not change any dependency versions or touch ci.yml.
|
Note Gemini is unable to generate a review for this pull request due to the file types involved not being currently supported. |
|
CI update: this PR's fix worked mechanically — Generated by Claude Code |
|
CI verification result (run 28921885622): Good news / bad news:
So: this PR does exactly what it claims (fixes the lockfile/cache root cause of #4) and CI is demonstrably further along than it has ever been, but the pipeline is not fully green — it's blocked on #7 now. Leaving this as a draft, Generated by Claude Code |
|
Correction: the hero.tsx JSX bug is tracked at #7, not #6 (#6 was a concurrent duplicate filed by a separate process during this same maintenance pass and has been closed in favor of #7). No other change to the analysis above. Generated by Claude Code |
The background-pattern div embedded an SVG data URI with raw double quotes (width="60", viewBox="0 0 60 60", etc.) inside a double-quoted className, prematurely terminating the attribute string. tsc --noEmit reported 7 JSX syntax errors (TS2657/TS1003/TS1382/TS17002/...) and CI's type-check step failed. Percent-encode the inner quotes (%22) and spaces (%20) so the data URI is a single valid token — no behavior change to the decorative pattern, purely fixes the parse.
|
Nice — saw your Generated by Claude Code |
|
Babysit sweep update: the lockfile did unblock
These are all untyped Generated by Claude Code |
npm ci now succeeds (lockfile committed in this PR), so the CI type-check step runs and surfaces pre-existing tsc errors: useState([]) inferred never[] and useState(null) inferred null in three page components, making every property access on the state fail under --noEmit. Add explicit interfaces matching the existing mock-data shapes (mirroring the Service interfaces the child components already declare) and normalize the dynamic route id to a string so it stays assignable to the child component props. No runtime behavior change. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Td4LAqitAAacmG7iWjn7Fu
|
Maintainer loop (babysit pass): committing the lockfile let CI will still be red at the next step (
Leaving the ESLint config + entity cleanup for a separate owner-reviewed change rather than expanding this lockfile PR into auth-adjacent territory. Generated by Claude Code |
|
Update: the useState-typing fix for #8 landed and type-check now passes. Generated by Claude Code |
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. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 01dcd00347
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
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".
| "engines": { | ||
| "node": ">=22.0.0" |
There was a problem hiding this comment.
Pin Supabase to a CI-compatible release
The lockfile pins @supabase/supabase-js and all of its subpackages to 2.110.1, which declares Node >=22, while .github/workflows/ci.yml runs only Node 18.x and 20.x. Consequently, both CI jobs install an unsupported runtime combination, and any environment enforcing package engines will fail during npm ci before type-checking or building; pin a Node-18/20-compatible Supabase release or update the CI/runtime matrix to Node 22.
Useful? React with 👍 / 👎.


Description
Commits
package-lock.json, generated vianpm install --package-lock-onlyagainst the currentpackage.json. Fixes #4.Why
.github/workflows/ci.ymlsetscache: 'npm'onactions/setup-node@v4, but no lockfile was committed to the repo — the cache-key step fails before install/typecheck/lint/build/deploy ever run. This has been the case since the very first CI run (2025-09-28, run #18078790069) and again on the latest push (2026-06-16, commitfebaae1, run #27598295781).This matches the workflow's existing
npm cistep, which also requires a lockfile to run correctly, and is one of the two options laid out in #4 (commit a lockfile vs. dropcache: 'npm') — chosen because it doesn't touch the protected CI config file itself.Type of Change
Testing
npm install --package-lock-onlygenerates the lockfile without touchingnode_modules(gitignored), thennpm ciagainst the generated lockfile succeeds (452 packages installed, no lockfile errors). No dependency versions changed — the lockfile just pins whatpackage.jsonalready specifies.actions/setup-node@v4's cache mode; watching the run after opening.Checklist
npm audit/deprecation warnings unrelated to this change)Scope note
Deliberately narrow: only the lockfile is added. Does not touch
ci.yml, does not bump any dependency versions, and does not address the pre-existingnpm auditfindings (1 critical, 3 high, 3 moderate) surfaced bynpm ci— those are a separate, larger decision (see similar precedent in exit-zero#4) and out of scope for unblocking CI.Status
Left as draft and labeled
needs-ownerper maintainer-loop policy — this repo is still in its break-in period (no auto-merge), and generating a fresh lockfile is a decision (npm vs. pnpm/yarn, willingness to pin current transitive versions) that should get an explicit owner look before merge, even though the mechanics are low-risk.Ref #4.
Generated by the maintainer-orchestrator loop.
Generated by Claude Code