Repository navigation
chore(release): prepare stable 0.24.0 - #1205
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub. |
[Low impact] The changes stay within release preparation and its website preview. The release preparation has no established behavioral blocker, but the explicit environment-access requirement must be satisfied before merging. Findings
Fix with agent prompt### Issue 1
packages/hunk/src/ui/hooks/useTerminalReview.test.tsx:519
The new test wrapper reads `process.env` here and spreads it into the child environment on line 528. The repository guide says “Never access `process.env` directly” and requires an approved accessor or values passed as arguments. Route these settings through that boundary before merging to satisfy the repository requirement.
Note: If this suggestion doesn't match your team's coding style, reply to this and let me know. I'll remember it for next time!
---
For each issue above, determine whether it is valid and should be fixed. If so, fix it directly.SummaryPrepares stable
Acknowledged intent: Review checks were read-only. Tests were not rerun. The social-card image could not be visually inspected because image input is unavailable. Reviews (1) · Last reviewed commit: "test(ui): isolate reload retention asser..." · Reviewed by Greptile |
|
|
||
| test("releases files from earlier reloads once later reloads replace them", async () => { | ||
| // Isolate GC reachability from the shared runner's accumulated JIT and renderer state. | ||
| if (process.env.HUNK_TEST_RELOAD_RETENTION_CHILD !== "1") { |
There was a problem hiding this comment.
Environment reads bypass the guide
The new test wrapper reads process.env here and spreads it into the child environment on line 528. The repository guide says “Never access process.env directly” and requires an approved accessor or values passed as arguments. Route these settings through that boundary before merging to satisfy the repository requirement.
Context Used: guidelines.mdc Cursor rule (source)
Prompt To Fix With AI
This is a comment left during a code review.
Path: packages/hunk/src/ui/hooks/useTerminalReview.test.tsx
Line: 519
Comment:
**Environment reads bypass the guide**
The new test wrapper reads `process.env` here and spreads it into the child environment on line 528. The repository guide says “Never access `process.env` directly” and requires an approved accessor or values passed as arguments. Route these settings through that boundary before merging to satisfy the repository requirement.
**Context Used:** guidelines.mdc Cursor rule ([source](https://github.com/modem-dev/modem/blob/main/.cursor/rules/guidelines.mdc))
---
For each issue above, determine whether it is valid and should be fixed. If so, fix it directly.Note: If this suggestion doesn't match your team's coding style, reply to this and let me know. I'll remember it for next time!
squad-robert
left a comment
There was a problem hiding this comment.
The scoped GC-regression and pre-tag metadata checks hold up at 0ade2843bdaf20a2d3e0cfbd1f2df6d09eebfbd6 against base 5fb9926470a70981aff8a9229d1db60f8602f067. This is corroboration of those parts, not full release certification or authorization to tag/publish.
Subprocess regression: I ran the exact head test on isolated base/head archives with the same Bun 1.4.2/Linux x64 environment and dependencies. The head test was copied into the base archive without changing production code. Both pass, as expected: the release base already contains #1201's fix. The head also passes 20 additional fresh parent-process repetitions and the full hook file (64 pass).
For a negative control, I kept the release-head archive/test unchanged except for replacing useTerminalReview.ts with its pre-#1201 version from 4b1594692ff67e5680ab7cfe72573d39177ff031. That file differs only by #1201's ref/callback fix. The child then fails the original assertion with 8 early files retained, expected 0, and the parent fails on its nonzero exit. The wrapper therefore still detects this known leak; it doesn't turn that failure into a pass.
Command on each archive:
bun test packages/hunk/src/ui/hooks/useTerminalReview.test.tsx \
-t 'releases files from earlier reloads once later reloads replace them'I did not reproduce the intermittent shared-runner failure or run the complete default suite, so these results don't establish that every source of GC-test nondeterminism is resolved.
Pre-tag checks actually performed:
bun run check:changelogpasses; the 0.24.0 section isUnreleased, has no stable install command, and has no recorded stable date. The committed latest marker remains 0.23.0.- Prerelease state is removed. Only the public
hunkdiffworkspace version changes; private workspace versions remain unchanged. The lockfile change is only that version field; I reused the existing identical locked dependency installation, rather than performing a new install. - The read-only release-version validator accepts
v0.24.0. - The committed benchmark snapshot comparison passes against stable 0.23.0 (58 gated metrics) and explicit beta.1 (62). This checks the supplied snapshot with the real comparator, not independently rerun benchmark measurements. The snapshot retains the documented beta.0 navigation exception; I haven't independently established its approval history.
No actionable defect found within this scope. Packaging, VM evidence/source identity, remote CI, Windows/macOS, full integration, and published npm/GitHub channel state were not independently validated here. No release or other remote mutation was performed apart from this review comment.
This comment was generated by Pi using GPT-6.1 Sol
Summary
Prepare stable
0.24.0from main5fb99264. Do not tag or publish without the maintainer's explicit approval. This promotes the whole 0.24 series rather than releasing another beta.Performance
Fresh five-sample snapshot: Bun 1.4.2, Linux x64.
Validation status
Passed locally: frozen install, release-note gate, typecheck, lint, formatting, dependency boundaries, generated docs/changelog checks, focused memory diagnostics, PTY integration (266 pass, 1 skip), TTY smoke (11 pass), real-Node broker conformance, review conformance, prebuilt npm build, source/prebuilt pack checks, prebuilt install smoke, and compiled extension-install/import tests.
The first default-suite runs and Linux CI exposed a GC-sensitive reload-retention assertion. Additional collection turns were not reliable, so the final test runs its unchanged reachability assertion in a fresh subprocess, isolating it from the shared runner's accumulated JIT/renderer state. It still requires zero earlier files retained. Both full default-suite runs now pass (2,427 pass, 3 skip each), and 20 focused isolated repetitions pass. A negative-control run against the pre-#1201 leaking hook still fails with all eight earlier files retained. No application runtime code changed after the benchmark snapshot.
Final-tip Firecracker validation passed all 16 scenarios at
0ade2843bdaf20a2d3e0cfbd1f2df6d09eebfbd6; the strict validator confirmed source identity26849a527e3340c7dd67c51e3fd4bcdfc39118c01c87b03aa7a95a780c8b1df5. Evidence:tmp/install-vm/runs/release-stable-validated-5cxUH3Fl/result.json.All final-tip remote CI passed: Linux/Windows/PTY validation, packaging, and website check/build. The branch is ready for review, but is deliberately unmerged pending the maintainer's go-ahead; tagging and publication are not authorized.
The editorial GitHub release draft covers the full v0.23.0 comparison, with compatibility notes, all 19 external contributor credits, and the complete merged-PR inventory (including this release-prep PR once merged). No tag, npm publication, GitHub release, or public release-body edit has been triggered. npm
latestremains 0.23.0 andbetaremains 0.24.0-beta.1; GitHub Latest remains v0.23.0.This PR description was generated by Pi using GPT-6.1 (gpt-6.1-sol)