Skip to content

merge(install): install the hook binary on Windows - #2

Merged
LittleCoinCoin merged 3 commits into
mainfrom
task/win-install
Oct 30, 2026
Merged

LittleCoinCoin merged 3 commits into
mainfrom
task/win-install

Conversation

@LittleCoinCoin

Copy link
Copy Markdown
Member

Makes the plugin installable on Windows as far as CI can show. Stacked on the lifecycle PR; merging this one makes CI cut 0.3.0.

What changes

  • hooks.json: the 8 binary rows exec ${CLAUDE_PLUGIN_DATA}/bin/murmuration.exe on every OS (the documented Windows exec form). The 3 Python rows are byte-identical to 0.2.0.
  • install_binary.py: Windows AMD64 target; the binary and its stamp are murmuration.exe and murmuration.exe.verified, so 0.2.0 sessions sharing the data folder are untouched; on Windows a doubtful install removes the binary instead of writing a POSIX launcher; the self-test masks only the random lab folder name, so escaped and non-ASCII Windows paths compare equal; a failed replace no longer leaks its temporary copy.
  • budget.py: self-tests expect the .exe name. Hashed, so CI rebuilds the binaries.
  • guard-binaries.yml job bodies: assemble requires every target, Windows included; install_smoke gains windows-latest and replays the install row and a budget row from hooks.json without a shell, with paths containing spaces; actions pinned by SHA.
  • Docs: "Windows tested in CI only, no live session yet", and the Windows requirement of a real python3 on PATH (the Store stub does not count).

Not proven here: a live Windows session (reminder murmuration-win-live, roadmap leaf live_session).

Roadmap: __roadmap__/windows_install/next/next/next/install.md. Reviewed by an adversarial verifier.

🤖 Generated with Claude Code

Base automatically changed from ci/release-lifecycle to main October 30, 2026 11:00
LittleCoinCoin and others added 3 commits October 30, 2026 20:14
Claude Code's exec form on Windows needs a real executable, so the eight
binary hook rows now exec ${CLAUDE_PLUGIN_DATA}/bin/murmuration.exe on every
OS. The stamp becomes murmuration.exe.verified; version 0.2.0 keeps
bin/murmuration and bin/.verified in the shared data folder, and the two
versions no longer overwrite each other's files. TARGETS gains Windows
AMD64. Windows has no launcher (a POSIX script), so its doubt branch
removes the binary instead of writing one. The three Python rows are
unchanged.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
install_smoke now runs on windows-latest too, with a python3.exe copy of the
runner's Python on PATH (the documented requirement). Every row reads
hooks.json and spawns the SessionStart install row and one PreToolUse Agent
budget row the way Claude Code does: exec form, no shell, placeholders
replaced by native paths, plugin variables set. It asserts empty install
stdout, the murmuration.exe.verified stamp, a murmuration.exe equal to the
CI artefact, and a budget exit of 0; each spawn prints its argv, exit code
and output. assemble now requires the Windows artefact, and the Windows
build row runs check_text_io.py.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Nobody should read the next release as live-tested on Windows. The plugin
description and both banners say Windows is tested in CI only, with no live
session yet, and both Requirements sections name the Windows requirement of
a real python3 on PATH. version is untouched.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@LittleCoinCoin
LittleCoinCoin merged commit e0fc40c into main Oct 30, 2026
15 checks passed
@LittleCoinCoin
LittleCoinCoin deleted the task/win-install branch October 30, 2026 15:04
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