You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
codex install registers graphify hook-check, which is not a command in 0.9.25 (silent no-op) #2165
graphify codex install registers a PreToolUse hook that invokes graphify hook-check. That subcommand does not exist in 0.9.25. The result is a silent no-op that costs a process spawn on every matching tool call, and gives the user a hook they believe is enforcing graph usage when it is doing nothing.
graphify --help lists the hook-related commands as:
hook install install post-commit/post-checkout git hooks (all platforms)
hook uninstall remove git hooks
hook status check if git hooks are installed
check-update <path> check needs_update flag and notify if semantic re-extraction is pending (cron-safe)
hook-check appears nowhere in --help. Invoking it directly, both outside and inside a repo with a valid graphify-out/graph.json:
$ graphify hook-check
$ echo$?0
No output, exit 0 — indistinguishable from success, so nothing surfaces the misconfiguration.
Expected
Either:
the installer registers whatever the current equivalent is (check-update?), or
the hook entry is dropped if there is no longer a per-tool-call check, or
hook-check is restored as an alias.
In all cases an unrecognized subcommand should exit non-zero rather than 0, so a stale hook fails loudly instead of silently.
Impact
Low severity, but the failure mode is bad: the user is told "Codex will now check the knowledge graph before answering codebase questions" while the mechanism that would enforce it is inert. I only found it by grepping --help after the hook never appeared to do anything.
Additional evidence: the Claude Code installer in the same version registers hook-guard, not hook-check, which looks like the command hook-check was renamed to and the Codex path was never updated.
Behavioural difference, run from a repo with a valid graphify-out/graph.json on 0.9.25:
graphify hook-guard read --strict -> blocks waiting on stdin (killed at 25s)
graphify hook-guard search -> blocks waiting on stdin (killed at 25s)
graphify hook-check -> returns immediately, exit 0, 0 bytes stdout, 0 bytes stderr
hook-guard blocks because it is reading the hook payload from stdin, i.e. it is a real hook entry point doing real work. hook-check returns instantly and writes nothing, consistent with an unrecognized subcommand falling through to a no-op.
So graphify codex install produces a hook that can never fire, while graphify claude install produces a working one. Pointing the Codex installer at hook-guard would likely fix this.
Separately, note that the Codex hook entry is written without a timeout field. Since hook-guard blocks on stdin, an entry with no timeout is worth a second look for any client that might invoke it without providing stdin.
Activity
Second-Summit-marketing commentedon Jul 24, 2026
Additional evidence: the Claude Code installer in the same version registers
hook-guard, nothook-check, which looks like the commandhook-checkwas renamed to and the Codex path was never updated.Behavioural difference, run from a repo with a valid
graphify-out/graph.jsonon 0.9.25:hook-guardblocks because it is reading the hook payload from stdin, i.e. it is a real hook entry point doing real work.hook-checkreturns instantly and writes nothing, consistent with an unrecognized subcommand falling through to a no-op.So
graphify codex installproduces a hook that can never fire, whilegraphify claude installproduces a working one. Pointing the Codex installer athook-guardwould likely fix this.Separately, note that the Codex hook entry is written without a
timeoutfield. Sincehook-guardblocks on stdin, an entry with no timeout is worth a second look for any client that might invoke it without providing stdin.fix: document the Codex PreToolUse hook as an intentional no-op (#2165)
safishamsi commentedon Jul 26, 2026
Resolved in v0.9.27 (#2185, thanks @Souptik96). hook-check is a real, intentional no-op command (Codex Desktop rejects additionalContext on PreToolUse, so graph guidance comes from AGENTS.md); this is now documented. https://github.com/Graphify-Labs/graphify/releases/tag/v0.9.27
Squashed commit of the following:
fix: document the Codex PreToolUse hook as an intentional no-op (Grap…
fix(codex): quote a spaced exe path in the PreToolUse hook command
fix(codex): quote a spaced exe path in the PreToolUse hook command
fix(codex): quote a spaced exe path in the PreToolUse hook command
fix(security): [HIMMEL-7187] sync to upstream 0.9.94 and floor the pa…