Skip to content

Release 1.1.1 - #724

Merged
MongLong0214 merged 2 commits into
mainfrom
release-1.1.1
Aug 17, 2026
Merged

Release 1.1.1#724
MongLong0214 merged 2 commits into
mainfrom
release-1.1.1

Conversation

@MongLong0214

Copy link
Copy Markdown
Owner

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:

The note leads with what is still broken, as 1.1.0's did.

The fix

hasCommand joined each PATH entry with the bare command name and never consulted PATHEXT, so a .cmd shim was invisible; spawnSync ran with shell: 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:

  • A trailing backslash reached the cmd.exe argument vector unescaped, where the closing quote consumes it and the following argument is absorbed. A --verify swallowed that way would let a step report verified for a verification that never ran — the exact failure this project exists to remove, arriving through its fix.
  • X_OK on resolution. Without it a non-executable file of the same name earlier on PATH is 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:

4   manifests   package.json, two plugin.json, package-lock.json (two fields)
20  README      5 install pins × 4 READMEs
6   installers  3 header examples × install.sh, install.ps1

package-lock.json is 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.mjs is unchanged — the bundle comes from src/, which this release does not touch. installer/canonical-artifact.json does move, because package.json is one of its four source inputs.

Verification

104 cases across manifest, readme, check-release-version and release-publish-prerequisites. build:canonical then artifact:verify14ff61683da747382e03b026db252dd06d4f20820c3ab6f6a75282837458429d.

Note on the merge that preceded this

#720 was squash-merged from a fork, and its four records were discarded — preserve cannot push notes with a fork PR's read-only token, and it is not a required check. Recovered with commitlore squash-preserve and republished; the structural gap is #723.

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
@github-actions

github-actions Bot commented Aug 17, 2026

Copy link
Copy Markdown

CommitLore — record lint

Trailers: clean — 2 commits in origin/main..b9c515ed3de0fdef944ca0c3b2501e286f93e566
Active constraints: not read — commitlore: git log --follow accepts exactly one pathspec, so renames are not followed for 12 paths; query one path at a time to follow its rename chain (12 changed paths)

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
@MongLong0214
MongLong0214 merged commit 8c29f5d into main Aug 17, 2026
22 checks passed
@MongLong0214
MongLong0214 deleted the release-1.1.1 branch August 17, 2026 06:01
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant