fix: Windows codex hook recognition (#261) + graceful setup without claude (#258) — 8.7.1 - #262
Merged
Merged
Conversation
…laude (#258) Two fixes from the 2026-08-15 Windows fresh-install test, cut as 8.7.1: #261 — the Codex/Hermes marker checks substring-matched the literal "omind hook", which Windows's launcher form "omind.EXE hook ..." never contains: verification false-negatived and the dedup filter appended a duplicate SessionStart/PostToolUse pair on every re-run. All sites now share the Windows-tolerant command_is_omind_hook predicate, promoted to hooks.py from the Claude provisioner's private copy. #258 — --dry-run warned about a missing claude CLI while the real run exited 1 before doing anything. claude is now a SOFT prerequisite: vault, seeds and hooks still provision; MCP registration/verification skip with a clear warning; doctor flags the gap. Hard tools still abort. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01QwU16vtyhZwcHf1BevWGSw
|
Important Review available on request
Reviews should be triggered manually for repositories with fewer than 10 stars. Select Trigger review above or comment ⚙️ Run configurationConfiguration used: Organization UI Review profile: ASSERTIVE Plan: Pro Plus Run ID: Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
|
|
||
| from omind import __version__, guard, paths, policy, seeds | ||
| from omind.hooks import HANDLED_EVENTS, HOOK_MARKER, JOURNAL_DIRNAME | ||
| from omind.hooks import HANDLED_EVENTS, JOURNAL_DIRNAME, command_is_omind_hook |
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.
Fixes two of the three findings from the first fully-cold Windows install test (win11-libation guest). Closes #261, closes #258.
#261 — Windows codex hook false-negative + duplicate-append. The Codex and Hermes marker checks substring-matched the literal
omind hook, which the Windows launcher formomind.EXE hook ...never contains. Verification false-negatived on a correct install, and — worse — the same marker drives the re-run dedup filter, so everyomind setup --agent codexon Windows appended a duplicate SessionStart/PostToolUse pair (verified 2× in the guest after two runs). The Claude provisioner already had a Windows-tolerant predicate (_command_is_omind_hookin provision.py); this promotes it tohooks.pyascommand_is_omind_hookand uses it at every Codex/Hermes site, checking actual command strings instead of substring-matchingjson.dumpsof the group.#258 — dry-run/real asymmetry on a missing claude CLI.
--dry-runwarned and previewed the full plan; the real run exited 1 before doing anything.claudeis now a soft prerequisite on the base provisioner: vault/seeds/hooks all provision, MCP registration and verification skip with an explicit warning, doctor flags the gap. Hard tools (git; the agent CLIs for agent provisioners) still abort as before.Not addressed here: #259 (POSIX
.shhooks unverified on Windows / PowerShell equivalents) — larger design change, stays open.Tests: 3 new (Windows-form hook recognition + re-run idempotency; predicate forms; missing-claude graceful degrade), full suite 976 passed, ruff clean,
mypy srcclean,uv lockrefreshed. Version 8.7.0 → 8.7.1 (patch, bug fixes only) + CHANGELOG entry.Empirical matrix behind the fix: Linux control test on telesto was correct+idempotent on the same versions; Windows reproduced both failure modes (details on #261).
🤖 Generated with Claude Code
https://claude.ai/code/session_01QwU16vtyhZwcHf1BevWGSw
Proudly Made in Nebraska. Go Big Red! 🌽 https://xkcd.com/2347/