Harden review workflows and CI coverage - #71
Conversation
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: a747ecf0b4
ℹ️ 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".
| - name: Enable the pinned pnpm version | ||
| run: corepack enable | ||
| - name: Set up Node | ||
| uses: actions/setup-node@v6 |
There was a problem hiding this comment.
Install pnpm before setup-node switches runtimes
On a clean runner where the preinstalled Node differs from the matrix version, this enables Corepack in the old Node installation and then replaces it on PATH; as corepack enable --help states, the shims are installed next to the currently resolved corepack binary. The cache: pnpm setup subsequently needs to invoke pnpm while actions/setup-node is running, so it can fail before the install step, and the same ordering appears in all five jobs in test-lanes.yml. Install pnpm independently before setup-node (for example with pnpm/action-setup), or otherwise ensure the selected Node toolchain exposes the shim before enabling pnpm caching.
AGENTS.md reference: AGENTS.md:L10-L17
Useful? React with 👍 / 👎.
| content.update(String(stat.size)); | ||
| content.update('\0'); | ||
| content.update(String(stat.mtimeNs)); |
There was a problem hiding this comment.
Include regular-file contents in watch fingerprints
When an untracked regular file is rewritten with the same byte length while its mtime is preserved—such as by a timestamp-preserving generator, rsync-like tool, or on a coarse-timestamp filesystem—its kind, size, mtime, path, and Git status all remain unchanged. The watcher therefore never calls refresh(), leaving the displayed patch stale until some unrelated change occurs; the previous implementation detected this by hashing the file bytes. Continue avoiding symlink targets, but hash regular-file content or another reliably content-sensitive value.
Useful? React with 👍 / 👎.
Summary
Why
The watch path could hash transformed or unchecked file contents, stale cache leases could survive on PID reuse, and picker rows repeated the same file scan. Gaps in server coverage, CI cache checks, and provider copy made those faults harder to catch.
Impact
Reviews use safer fingerprints, stale cache leases expire, large picker lists do less work, and tests cover more of the shipped paths.
Checks
corepack pnpm install --frozen-lockfilecorepack pnpm run lintcorepack pnpm testcorepack pnpm run docs:checkcorepack pnpm run fallow:auditgit diff --check 3fba94d..HEAD