Let installer fixtures express executable modes (#716) - #725
Conversation
The POSIX resolver regression was locked with a hand-built pair while the shared installer wrapper always chmodded every fixture 0755. That left the main fixture API unable to construct the state the regression depends on, so a future test using the helper could still produce a misleading green. Move the shadow assertion beside the shared wrapper and let the wrapper take an explicit mode. Its default remains 0755, while the regression now asks the ordinary fixture path for 0644 and 0755 files. Limit: test fixtures only; production resolution and spawning are unchanged Ruled-out: keep the hand-built shadow pair | it preserves the helper blind spot the owner identified Blast: local Undo: easy Certainty: firm Record-Id: r-fixture716 Provenance: authored Verified: tsc --noEmit clean; Windows installer suites 29 passed with the one POSIX-only executable-mode case skipped CommitLore-Version: 2.0.0
|
@MongLong0214 the post-merge fixture cleanup from |
|
All required checks are green now. The Linux/Node 24 run reports |
v1.1.1 is tagged. Your Windows fix is released.https://github.com/MongLong0214/commitlore/releases/tag/v1.1.1 The notes lead with what is not fixed, as 1.1.0's did: This PRMerged The change itself is the right shape. What only your machine can do nowInstall from the & ([scriptblock]::Create((irm https://github.com/ghraw/MongLong0214/commitlore/v1.1.1/install.ps1))) v1.1.1Both URLs return 200; I checked after tagging. Then paste, verbatim:
Run against the tag rather than |
Correction, and three things left that need your machineFirst, I was wrong about Hermes and it reached a published release. I read the early run in #720 reporting So the trailing-backslash repair was Hermes's cause. #716 and #714 are closed on your readback. Three hosts wire, verified through a live What is left, and why each needs the machine1. Install from the released tag, not a staging buildEvery run so far reports & ([scriptblock]::Create((irm https://github.com/ghraw/MongLong0214/commitlore/v1.1.1/install.ps1))) v1.1.1Paste the enumeration and the 2. #729 — gemini-cli's first-run timeoutYour fresh install reported Does it reproduce on a fresh install? If yes, 3. #728 — does
|
|
@MongLong0214 the three machine-only follow-ups from your latest comment are now recorded against the released
#728 is also updated honestly: this machine has After your |
|
@MongLong0214 one final release-record mismatch found while re-reading the published v1.1.1 body against the now-closed issues: under What is still reported failed, the Claude detection sentence says the asymmetry is open |
Everything left that needs your machine, in one placeYour fixture change is green and merges once #730 lands ahead of it — #730 is the fork-preserve repair, and merging this one first would discard its records the way #720's were. Nothing for you to do about that. Two issues are waiting on that machine and nothing else. I have put the exact commands on each rather than describing them:
Both start from the same install, and that install is itself the third thing: & ([scriptblock]::Create((irm https://github.com/ghraw/MongLong0214/commitlore/v1.1.1/install.ps1))) v1.1.1Nobody has installed v1.1.1 through its own install path on any Windows machine. Every observation so far — including the ones that closed #714 and #716 — came from a staging build in What CI can now do without you#731 plants a That is the first time host wiring has executed in this repository's CI. It does not replace your machine — a planted shim is a file the job wrote — but it means the next If you want the durable version of #728, the same fixture can plant a |
|
One command needed from your side — I am blocked by a token scope, not by anything in the branch. #730 merged, so That is GitHub protecting workflow files from a token that was not granted the scope, and it is working correctly. Not something to route around. Nothing else is needed; the branch is otherwise green and I already verified Your PR is also the first test of what #730 fixed. It is a fork PR with two commits, and until an hour ago squashing one discarded its records — that is how #720 lost four of them. The three machine items are unchanged and independent of this: #729, #728, and a v1.1.1 install through its own install path. |
|
Relayed to #733 so this can land without waiting on the fork. Not a takeover — the change and its authorship stay yours; The reason: after #730,
Your machine work is all in and settled, so nothing here is waiting on you:
One thing worth having from you when convenient, and it is not blocking: whether the |
|
Landed through #733 ( Your authorship is on the commit that landed. The relay existed only because this branch lives on a fork and, after #730 changed What your change did
Everything you were asked for is in and settled
What is still worth having from you, and is not blocking#731 planted a Thank you — the Windows evidence is what turned #714 and #716 from a standing record into two closed issues. |
Follow-up to #720 and the owner's final non-blocking review note.
The POSIX X_OK regression was correct, but it constructed its non-executable shadow by hand in
installer-windows-command.test.tswhile the sharedwrapper()fixture ininstaller-hosts.test.tsstill forced every POSIX fixture to mode0o755. That meant the main fixture API could not express the state the regression protects.This PR:
wrapper(root, name, mode)accept an explicit mode with the existing0o755default;No product source changes.
dist/andinstaller/canonical-artifact.jsonare deliberately unchanged because the canonical source inputs are unchanged.Verified on Windows before rebasing onto the squash merge:
tsc --noEmit: cleanexamined:1,violations:[], reference checkokThe POSIX case still needs the approved fork workflow to execute it on Linux.