Skip to content

fix: Windows codex hook recognition (#261) + graceful setup without claude (#258) — 8.7.1 - #262

Merged
CryptoJones merged 1 commit into
mainfrom
fix/windows-hook-marker
Aug 15, 2026
Merged

fix: Windows codex hook recognition (#261) + graceful setup without claude (#258) — 8.7.1#262
CryptoJones merged 1 commit into
mainfrom
fix/windows-hook-marker

Conversation

@CryptoJones

Copy link
Copy Markdown
Owner

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 form omind.EXE hook ... never contains. Verification false-negatived on a correct install, and — worse — the same marker drives the re-run dedup filter, so every omind setup --agent codex on 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_hook in provision.py); this promotes it to hooks.py as command_is_omind_hook and uses it at every Codex/Hermes site, checking actual command strings instead of substring-matching json.dumps of the group.

#258 — dry-run/real asymmetry on a missing claude CLI. --dry-run warned and previewed the full plan; the real run exited 1 before doing anything. claude is 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 .sh hooks 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 src clean, uv lock refreshed. 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/

…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
@coderabbitai

coderabbitai Bot commented Aug 15, 2026

Copy link
Copy Markdown

Important

Review available on request

  • 🔍 Trigger review

Reviews should be triggered manually for repositories with fewer than 10 stars. Select Trigger review above or comment @coderabbitai review to review the latest changes. For a full review, comment @coderabbitai full review.

⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: 3da5bec1-9831-48fe-b941-a6dfd1fa0352


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.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

Comment thread src/omind/provision.py

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
@CryptoJones
CryptoJones merged commit b6db288 into main Aug 15, 2026
16 checks passed
@CryptoJones
CryptoJones deleted the fix/windows-hook-marker branch August 15, 2026 18:26
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

2 participants