Release 1.1.1 - #724
Merged
Merged
Conversation
Host wiring works on Windows, for what was actually observed there. 1.1.0 said plainly that it did not, so this is the release that gets to say otherwise -- and it says it with the same care: Codex and Gemini CLI wire and verify through a live MCP Initialize on a real machine, `ok` is still false on that machine, and the hosts that failed are still reported failed. The remaining cause was that a command could not be found or run. `hasCommand` joined each PATH entry with the bare name and never consulted PATHEXT, so a `.cmd` shim was invisible; `spawnSync` ran with `shell: false`, which cannot execute one. Resolution now finds one concrete executable and both detection and execution use it, so the two can no longer disagree about what "present" means -- which is what the original defect was. Two repairs came out of reviewing that work rather than from the machine. A trailing backslash reached the cmd.exe argument vector unescaped, where the closing quote consumes it and the next argument is absorbed; a `--verify` swallowed that way would have let a step report `verified` for a verification that never ran. And resolution checks X_OK, without which a non-executable file of the same name earlier on PATH would be selected and spawned, breaking macOS and Linux where this already works. All twenty-one version surfaces move together this time, known in advance rather than discovered by CI: four manifests including package-lock.json's two fields, five install pins in each of four READMEs, and three header examples in each installer. The lockfile is edited structurally -- a text replacement of the version string also matches dependencies genuinely at that version, and no test reads them. Limit: Hermes still fails on that machine for a cause that is not this one and is not yet named (#716) Limit: a zero-byte .cursor/mcp.json on the tester's machine is a user file; the installer read the file it says it reads and reported the true reason Ruled-out: claim Windows host wiring works | two of the four detected hosts wire, and a release note that rounds that up is the false green this release exists to remove Blast: system Undo: easy Certainty: firm Record-Id: r-rel111 Provenance: authored Verified: 104 cases pass across manifest, readme, check-release-version and release-publish-prerequisites -- every surface asserted before CI saw it, unlike 1.1.0 where three were found by the gate; build:canonical then artifact:verify -> 14ff61683da747382e03b026db252dd06d4f20820c3ab6f6a75282837458429d, unchanged from the merged branch because the bundle comes from src and src did not move CommitLore-Version: 2.0.0
CommitLore — record lintTrailers: clean — 2 commits in Trailer violations fail this check. Active constraints are informational — they are what the repository already decided, not a verdict on this PR. |
The 1.1.1 entry described the Windows fixes and left out a user-visible change that shipped with them: the Hermes step ran with `stdio: 'ignore'`, so whatever it printed about its own failure was discarded and the summary read `Hermes setup failed` with nothing after it. The reason now reaches the summary. That omission mattered more than a missing line usually does, because the same entry says Hermes still fails for an unnamed cause. Stated alone that reads as an open question with no route to an answer. It is unnamed *because* the output was thrown away, and this release is what makes the next run on a machine with Hermes installed print it -- so the note now carries the next step instead of only the gap. Limit: this changes the note, not the behaviour -- the behaviour shipped in the merged branch and is already covered by artifact:verify Blast: local Undo: easy Certainty: firm Record-Id: r-rel111why Provenance: authored Verified: `commandStatus` returns a detail and the Hermes site passes it through `failureMessage`, read from the merged source rather than from the pull request summary; dist and the canonical manifest are untouched by this commit CommitLore-Version: 2.0.0
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Cuts 1.1.1.
What it says about Windows, and what it does not
1.1.0 stated plainly that host wiring did not work on Windows. This is the release that gets to say otherwise — for exactly what was observed on a real machine, and no more:
Initialize, and appear in their configs on disk.okis still false on that machine, and the hosts that failed are still reported failed..cursor/mcp.jsonwas zero bytes on the tester's machine — a user file. The installer read the file it says it reads and reported the true reason.The note leads with what is still broken, as 1.1.0's did.
The fix
hasCommandjoined eachPATHentry with the bare command name and never consultedPATHEXT, so a.cmdshim was invisible;spawnSyncran withshell: false, which cannot execute one. Resolution now finds a single concrete executable and both detection and execution use it — the original defect was those two disagreeing about what "present" means.Two more came out of the review rather than the machine:
cmd.exeargument vector unescaped, where the closing quote consumes it and the following argument is absorbed. A--verifyswallowed that way would let a step reportverifiedfor a verification that never ran — the exact failure this project exists to remove, arriving through its fix.X_OKon resolution. Without it a non-executable file of the same name earlier onPATHis selected and spawned, breaking macOS and Linux, where this already works. Guarded by a POSIX-only test that puts a mode-0644 shadow ahead of a mode-0755 CLI — the fixtures were all executable before, so nothing could have failed on it.Version surfaces: twenty-one, known in advance
1.1.0 found three of them with CI instead of the checklist. This time all twenty-one were asserted before pushing:
package-lock.jsonis edited structurally, not textually: a"version": "1.1.0"replacement also matches dependencies genuinely at that version, and no test in the suite reads them, so that corruption would be silent.dist/commitlore.mjsis unchanged — the bundle comes fromsrc/, which this release does not touch.installer/canonical-artifact.jsondoes move, becausepackage.jsonis one of its four source inputs.Verification
104 cases across
manifest,readme,check-release-versionandrelease-publish-prerequisites.build:canonicalthenartifact:verify→14ff61683da747382e03b026db252dd06d4f20820c3ab6f6a75282837458429d.Note on the merge that preceded this
#720 was squash-merged from a fork, and its four records were discarded —
preservecannot push notes with a fork PR's read-only token, and it is not a required check. Recovered withcommitlore squash-preserveand republished; the structural gap is #723.