From ddd2a259ecce4e57202a68a74a2c1adcb879679b Mon Sep 17 00:00:00 2001 From: JD Davis Date: Thu, 13 Aug 2026 15:05:45 -0500 Subject: [PATCH] fix(install): consolidate Windows fallback and cleanup safety (#2980) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## Description Consolidates two fully reviewed installation-safety fixes whose original PRs can no longer merge under current branch protection: Windows persistent-service deployments need a supported Task Scheduler fallback, and legacy context-tool cleanup must never delete user-owned RTK/lean-ctx artifacts. Closes #2552 Closes #2817 Supersedes #2600 and #2828 while preserving their authors' commits and review-driven corrections. ## Type of Change - [x] Bug fix (non-breaking change that fixes an issue) - [ ] New feature (non-breaking change that adds functionality) - [ ] Breaking change (fix or feature that would cause existing functionality to change) - [x] Documentation update - [ ] Performance improvement - [ ] Code refactoring (no functional changes) ## Changes Made - Convert Windows `persistent-service` plans to the supported `persistent-task` supervisor and make the fallback explicit in CLI output. - Restrict context-tool cleanup to artifacts proven to live under Headroom's managed directory. - Recognize wrapped, relative, and platform-specific managed commands without accepting prefixed/path-boundary lookalikes. - Scope cleanup completion state correctly across projects and alternate agent homes. - Stamp cleanup complete only after all managed remnants are settled. - Preserve the original focused regression suites and behavior-proof artifact. ## Testing - [x] Unit tests pass (`pytest`) - [x] Linting passes (`ruff check .`) - [ ] Type checking passes (`mypy headroom`) - [x] New tests added for new functionality - [x] Manual testing performed ### Test Output ```text $ uv run pytest -q tests/test_install/test_planner.py tests/test_install/test_supervisors.py tests/test_cli/test_install_cli.py tests/test_context_tool_cleanup.py tests/test_cli/test_unwrap_claude.py 135 passed in 0.45s $ uv run ruff check All checks passed! $ uv run ruff format --check 8 files already formatted ``` ## Real Behavior Proof - Environment: macOS arm64 for consolidated current-main validation; the Windows fallback source PR was independently validated on Windows and includes its captured verification artifact. - Exact command / steps: run the planner, supervisor, install CLI, cleanup provenance, and unwrap suites on the rebased combined branch. - Observed result: 135/135 focused tests pass. Windows service requests resolve to `persistent-task`; cleanup rejects user-owned and path-prefix lookalikes while removing managed artifacts. - Not tested: a fresh privileged Windows host deployment in this local pass; #2600's accepted review contains the Windows-specific proof. ## Runtime Rollout Safety - Rollout-managed feature(s): Install supervisor selection and one-time legacy cleanup. - Minimum rollout channel: Stable/default; both prevent currently destructive or nonfunctional install paths. - Stable/default behavior changed: Windows service requests use Task Scheduler; cleanup requires managed provenance. - Kill switch / disable path: Select `persistent-task` explicitly; cleanup remains bounded by its completion stamp and provenance checks. - Unsafe override required: No. - Qualification impact: Windows native install and wrap/unwrap cleanup suites. - Rollback path: Revert this PR, restoring the two pre-fix behaviors. ## Review Readiness - [x] I have performed a self-review - [x] This PR is ready for human review ## Checklist - [x] My code follows the project's style guidelines - [x] I have performed a self-review of my code - [x] I have commented my code, particularly in hard-to-understand areas - [x] I have made corresponding changes to the documentation - [x] My changes generate no new warnings - [x] I have added tests that prove my fix is effective or that my feature works - [x] New and existing unit tests pass locally with my changes - [x] I did **not** edit `CHANGELOG.md` — it is generated by release-please from my Conventional Commit PR title (a CI guard enforces this) ## Screenshots (if applicable) The Windows verification artifact from #2600 is retained at `.github/pr-images/issue-2552-windows-fallback-verification.png`. ## Additional Notes This is intentionally an installation-safety batch rather than two replacement PRs. Original commit authorship is preserved, and the combined diff was applied cleanly to current `main` after #2832 and #1628 landed. --------- Co-authored-by: Inference1 <68734681+Inference1@users.noreply.github.com> Co-authored-by: Dennis Alexis Valin Dittrich --- ...sue-2552-windows-fallback-verification.png | Bin 0 -> 184017 bytes headroom/cli/install.py | 16 + headroom/cli/wrap.py | 8 +- headroom/context_tool_cleanup.py | 414 ++++++++++-- headroom/install/planner.py | 17 +- tests/test_cli/test_install_cli.py | 38 ++ tests/test_cli/test_unwrap_claude.py | 11 +- tests/test_context_tool_cleanup.py | 607 +++++++++++++++++- tests/test_install/test_planner.py | 24 + 9 files changed, 1080 insertions(+), 55 deletions(-) create mode 100644 .github/pr-images/issue-2552-windows-fallback-verification.png diff --git a/.github/pr-images/issue-2552-windows-fallback-verification.png b/.github/pr-images/issue-2552-windows-fallback-verification.png new file mode 100644 index 0000000000000000000000000000000000000000..91a1dc27e18635679e8800216eb2a715a8343923 GIT binary patch literal 184017 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%0ABXN`tpW)LbWd#AO0c->CdKIE56|sUv9Y8N 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 DeploymentManifest: raise _missing_profile_error(profile, installed) +def _is_windows() -> bool: + """Return whether this command is running on Windows.""" + + return sys.platform.startswith("win") + + def _start_deployment(manifest: DeploymentManifest, *, assume_start_lock: bool = False) -> None: if not assume_start_lock: with acquire_runtime_start_lock(manifest.profile) as acquired: @@ -658,6 +664,16 @@ def install_apply( bedrock_profile=bedrock_profile, extra_env=combined_env, ) + if ( + preset == InstallPreset.PERSISTENT_SERVICE.value + and manifest.preset == InstallPreset.PERSISTENT_TASK.value + and _is_windows() + ): + click.echo( + "Warning: persistent-service is not supported on Windows because the " + "Python runner cannot act as a Windows service. Falling back to " + "persistent-task with Task Scheduler." + ) _apply_manifest(manifest) _echo_installed(manifest) diff --git a/headroom/cli/wrap.py b/headroom/cli/wrap.py index 0a240c2d0..8f1971a13 100644 --- a/headroom/cli/wrap.py +++ b/headroom/cli/wrap.py @@ -795,7 +795,7 @@ _RETIRED_CONTEXT_TOOL_MESSAGE = ( "rewrote shell commands through a third-party binary Headroom no longer " "manages. Drop --context-tool / --no-context-tool and unset " f"{_RETIRED_CONTEXT_TOOL_ENV}; `headroom wrap` uninstalls what they left " - "behind on first run." + "behind automatically." ) @@ -855,8 +855,10 @@ def _report_context_tool_purge() -> None: default: the Claude ``PreToolUse`` hook, the vendored binaries and the injected hint-file guidance are all durable on disk. Running this once per ``wrap`` / ``unwrap`` invocation is what actually makes the tools go away. - Silent when there is nothing to do, which is the steady state after the first - run, and never fatal — a cleanup failure must not block launching the tool. + Silent when there is nothing to do — the common case once the machine-global + half is stamped done, though the project- and config-directory-scoped half + still runs every launch — and never fatal: a cleanup failure must not block + launching the tool. Reports on **stderr**: some subcommands (``wrap/unwrap openclaw --prepare-only``) emit machine-readable JSON on stdout as their entire diff --git a/headroom/context_tool_cleanup.py b/headroom/context_tool_cleanup.py index d6860d6ff..6dbeb2f14 100644 --- a/headroom/context_tool_cleanup.py +++ b/headroom/context_tool_cleanup.py @@ -10,26 +10,87 @@ Deleting the code is not enough: everything above is *durable state on the user's disk*. Left alone, the Claude hooks keep rewriting every Bash command through binaries Headroom no longer manages, and the injected guidance keeps telling agents to use tools that may not resolve. So ``headroom wrap`` / -``headroom unwrap`` call :func:`purge_context_tool_artifacts` once per run to -remove what earlier versions installed. +``headroom unwrap`` call :func:`purge_context_tool_artifacts` on every run to +remove what earlier versions installed — machine-global artifacts (hooks, +binaries, Claude Code's MCP registration) are removed once per workspace and +then stamped done (see the stamp below), while project- and config-directory- +scoped guidance (``CODEX_HOME`` / ``OPENCODE_HOME`` hint files, Continue's +config) is inspected on every launch, since a later launch can sit in a +different project or point at a different ``CODEX_HOME`` / ``OPENCODE_HOME``. Everything here is idempotent, best-effort and deliberately conservative: * only files Headroom installed (or caused a context tool to install) are - deleted; + deleted. An MCP entry's ``command`` or a hook script's body counts as + Headroom's only when it names a path inside :func:`paths.bin_dir` + (:func:`_references_managed_bin` — which is where the matching rules and + the reasons behind them live); +* a hook entry is Headroom's when it names such a path directly, or — the + common case, since a hook command names a script rather than the binary — + when it names one of the ``~/.claude/hooks`` scripts already classified as + Headroom's, whose verdict it inherits + (:func:`_references_context_tool`, :func:`_names_a_managed_script`). A + Cursor ``hooks.json`` entry naming a script under ``~/.cursor`` cannot + inherit a verdict this way, since the map covers ``~/.claude/hooks`` only; + it is still caught when its ``command`` names the managed directory; +* ``.rtk-hook.sha256`` is never read for its own provenance (it holds a hex + digest, not a path) and instead inherits ``rtk-rewrite.sh``'s + classification; a ``.lean-ctx.bak`` backup inherits ````'s + (:func:`_classify_hook_scripts`); +* a hook script that exists but cannot be read is classified unknown — + deleted by nothing, and named in the report so the user can remove it by + hand; * ``~/.local/bin/{rtk,lean-ctx}`` is unlinked only when it is a symlink into Headroom's own bin directory — a user's own build is never touched; * a JSON config that does not parse is reported and **skipped**, never overwritten (a hand-edited typo must not cost the user their settings); * the tools' own backups of *config* files (``~/.claude.json.lean-ctx.bak`` and friends) are left in place — they hold the user's real settings history. Only - backups of the hook scripts being deleted are cleaned up. + backups of the hook scripts proven to be Headroom's are cleaned up; +* two cases cannot be decided at all, and are accepted as limits rather than + fixed: + + * ``get_lean_ctx_path`` used to check ``PATH`` before Headroom's own bin + directory, so on a machine that already had ``lean-ctx`` on ``PATH``, + the tool that ran was the user's own, and the config it wrote looks + exactly like config the user wrote by hand. That leftover survives the + purge — it still points at a binary that exists, so nothing dangles; + * an rtk hook written *after* #1698 execs a bare ``rtk`` and never mentions + :func:`paths.bin_dir`, so it reads exactly like a hook a user wrote by + hand, and ``rtk-rewrite.sh``, its ``.rtk-hook.sha256`` and its + ``settings.json`` entry all survive while step 3 removes the managed + binary — leaving a hook that silently no-ops (#487, #1698). Earlier + hooks are decidable: Headroom patched the absolute managed path into + them (``_patch_rtk_hook_absolute_path``, removed by #1698), so the + window this misses is rtk setups run between #1698 and the tools' + removal in #2677; +* the marker-fenced guidance block is the one step with no provenance check + to make — ```` is Headroom's own fence, + and no third party writes it. + +Removing the retired integration's machine-global footprint — hook +registrations, hook scripts, PATH symlinks, managed binaries and Claude +Code's own MCP registration — is a one-time migration: the first completed +run of that half stamps ``.context-tools-purged`` beside the managed bin +directory, and every later run skips that half outright. Without the stamp +this would keep rewriting the same machine-wide files on every ``wrap`` +invocation forever, and a user who installs one of these tools *after* the +migration would have Headroom auditing files at each launch for a leftover +that cannot exist there. + +Project- and config-directory-scoped state is not covered by that stamp: a +later invocation can sit in a different project, or point ``CODEX_HOME`` / +``OPENCODE_HOME`` somewhere the stamped run never inspected, and whatever +guidance an earlier Headroom left behind there is still worth removing — so +those steps run on every invocation instead (:func:`_purge_invocation_scoped`). """ from __future__ import annotations import json import os +import posixpath +import re from pathlib import Path from typing import Any @@ -69,52 +130,138 @@ _HOOK_SCRIPTS = ( "lean-ctx-redirect-native", ) +# rtk's integrity digest never names a path (see ``_classify_hook_scripts``) +# and rtk-rewrite.sh is the script it authenticates. +_RTK_DIGEST_NAME = ".rtk-hook.sha256" +_RTK_SCRIPT_NAME = "rtk-rewrite.sh" + # MCP server entries the tools registered, and the config files holding them. # lean-ctx registers itself as an MCP server during ``lean-ctx init``; rtk never # did, but it is matched too so a stale hand-added entry is cleaned up as well. _MCP_SERVER_NAMES = ("lean-ctx", "lean_ctx", "rtk") +# Report-line prefixes meaning "this one is not settled" — a config that would +# not parse, a script that would not read, a file that would not unlink. Such a +# run leaves a leftover behind, so it must not be stamped as the completed +# migration. Emitted by _purge_hook_config, _purge_mcp_entries, +# _purge_fenced_block, _purge_continue_system_messages and _remove_files. +_DEFERRED_PREFIXES = ("skipped ", "could not remove ") + def purge_context_tool_artifacts() -> list[str]: """Remove every rtk / lean-ctx artifact an earlier Headroom version installed. Returns human-readable descriptions of what was removed — plus a line for - any config that had to be skipped because the user must fix it by hand. An - empty list means there was nothing to do, which is the steady state after - the first run. + any config that had to be skipped because the user must fix it by hand. + Machine-global cleanup (hooks, binaries, Claude Code's MCP registration) + runs once and is then skipped via the stamp below; project- and config- + directory-scoped cleanup (hint files, ``CODEX_HOME`` / ``OPENCODE_HOME``, + Continue's config) runs on every call, so a later call in a different + project or a repointed ``CODEX_HOME`` / ``OPENCODE_HOME`` can still report + something even after the global half is long since stamped done. """ + marker = _purge_marker() home = Path.home() project = Path.cwd() report: list[str] = [] - # 1. Hook registrations (Claude Code's settings.json, Cursor's hooks.json). - for config in (home / ".claude" / "settings.json", home / ".cursor" / "hooks.json"): - report += _purge_hook_config(config) + if not marker.exists(): + # Classify every hook script's provenance once, up front: both step 1 + # (is a settings.json entry pointing at *our* script?) and step 2 (is + # the script itself ours?) need the same answer, and each file is + # read once. + hooks_dir = home / ".claude" / "hooks" + hook_classification = _classify_hook_scripts(hooks_dir) - # 2. The generated hook scripts, their integrity digests and stale backups. - hooks_dir = home / ".claude" / "hooks" - report += _remove_files( - *(hooks_dir / name for name in _HOOK_SCRIPTS), - *(hooks_dir / f"{name}.lean-ctx.bak" for name in _HOOK_SCRIPTS), - ) + # 1. Hook registrations (Claude Code's settings.json, Cursor's hooks.json). + for config in (home / ".claude" / "settings.json", home / ".cursor" / "hooks.json"): + report += _purge_hook_config(config, hooks_dir, hook_classification) - # 3. The PATH symlinks, then the managed binaries they pointed at. - for name in ("rtk", "lean-ctx"): - report += _remove_managed_path_link(home / ".local" / "bin" / name) - report += _remove_files(*(paths.bin_dir() / name for name in _BINARY_NAMES)) + # 2. The generated hook scripts, their integrity digests and stale + # backups — only the ones proven to reference Headroom's managed bin + # directory. + managed_names = [name for name in _HOOK_SCRIPTS if hook_classification.get(name)] + report += _remove_files( + *(hooks_dir / name for name in managed_names), + *(hooks_dir / f"{name}.lean-ctx.bak" for name in managed_names), + ) + for name in _HOOK_SCRIPTS: + if hook_classification.get(name, False) is not None: + continue + if name == _RTK_DIGEST_NAME: + report.append( + f"skipped {hooks_dir / name} (inherits {_RTK_SCRIPT_NAME}'s unreadable verdict)" + " — remove any stale hook script by hand" + ) + else: + report.append( + f"skipped {hooks_dir / name} (could not read to verify it was Headroom's)" + " — remove any stale hook script by hand" + ) - # 4. MCP server registrations (lean-ctx registers itself during init). - report += _purge_mcp_entries(home / ".claude.json", "mcpServers") + # 3. The PATH symlinks, then the managed binaries they pointed at. + for name in ("rtk", "lean-ctx"): + report += _remove_managed_path_link(home / ".local" / "bin" / name) + report += _remove_files(*(paths.bin_dir() / name for name in _BINARY_NAMES)) + + # 4. Claude Code's own MCP server registration (lean-ctx registers + # itself during init). OpenCode's is invocation-scoped — see below. + report += _purge_mcp_entries(home / ".claude.json", "mcpServers") + + # Only a global half that settled everything is the completed + # migration. One that could not read a script or parse a config left + # a leftover behind, and the user needs both the reminder on the next + # launch and the cleanup once the permissions or the typo are fixed. + # A deferral in the invocation-scoped half below must not withhold + # this stamp — that half re-runs every time regardless, so nothing is + # lost by stamping the global half done now. + if not any(line.startswith(_DEFERRED_PREFIXES) for line in report): + try: + # Cleanup must not become the first mutation on a pristine + # machine. In particular, ``wrap `` validates + # the binary after the wrap-group migration hook; creating + # ``~/.headroom`` merely to stamp an empty scan violates that + # command's no-side-effects-on-failure contract. Established + # Headroom installs already have the state directory and get + # the one-time fast path; clean machines cheaply rescan until + # some real Headroom state exists. + if marker.parent.is_dir(): + marker.touch() + except OSError: + pass # Unwritable workspace: the purge simply runs again next time. + + report += _purge_invocation_scoped(home, project) + return report + + +def _purge_invocation_scoped(home: Path, project: Path) -> list[str]: + """Steps the one-time stamp must never withhold. + + ``OPENCODE_HOME``'s config, the hint files in ``project`` / + ``CODEX_HOME`` / ``OPENCODE_HOME``, and Continue's config are all a + function of *this* invocation's cwd and environment, not of the machine — + a later run can sit in a different project or point ``CODEX_HOME`` / + ``OPENCODE_HOME`` somewhere the global-half stamp never inspected. Each + step is cheap and side-effect-free when nothing matches, so re-running + them on every invocation costs a handful of reads in the steady state. + """ + report: list[str] = [] report += _purge_mcp_entries(_opencode_home(home) / "opencode.json", "mcp") - - # 5. Marker-fenced guidance in every hint file the wrap harnesses wrote to. for hint_file in _instruction_files(home, project): report += _purge_fenced_block(hint_file) report += _purge_continue_system_messages(project / ".continue" / "config.json") - return report +def _purge_marker() -> Path: + """Path of the "already migrated" stamp. + + Derived from :func:`paths.bin_dir` rather than ``workspace_dir`` so it + cannot escape a temporary tree through ``HEADROOM_WORKSPACE_DIR``. + """ + return paths.bin_dir().parent / ".context-tools-purged" + + def _instruction_files(home: Path, project: Path) -> list[Path]: """Hint files the wrap subcommands injected the context-tool block into. @@ -151,15 +298,194 @@ def _opencode_home(home: Path) -> Path: # --- hook registrations ------------------------------------------------------- -def _references_context_tool(entry: Any) -> bool: - """Whether a hook entry's command is one a retired context tool registered.""" +# Characters that can never be part of a path: a match ending right before +# one of these (or at end-of-string) sits at a real word boundary. Quotes, +# `=`/`:` (`export PATH=":$PATH"`, `BIN=/x`), `;`/`,`/`|` (command +# joiners) and `()` (subshells) all end a path the same way whitespace does. +_PATH_BOUNDARY_CHARS = frozenset("\"'=:;,()|") + +# Splits a command into path-shaped tokens on whitespace plus the same +# boundary punctuation above — used by _names_a_managed_script, which (unlike +# _references_managed_bin's needle-anchored scan) tokenizes the whole command. +_PATH_TOKEN_SPLIT = re.compile(r"[\s" + re.escape("".join(_PATH_BOUNDARY_CHARS)) + r"]+") + + +def _norm_path_text(value: str) -> str: + """Case-fold ``value`` and give it one separator, so paths compare as text.""" + return os.path.normcase(value).replace("\\", "/") + + +def _references_managed_bin(text: str) -> bool: + """Whether ``text`` names a path inside Headroom's managed bin directory. + + A hook command or script body is free text we don't control, so this + scans ``text`` for raw occurrences of the managed directory — the + unresolved and resolved bin directory, and its ``~``-relative form + (home-relative, since a script may reference it unexpanded) — matched + against the text as given and as ``expanduser``'d, case-folded, with both + path separators. Deliberately *not* tokenized on whitespace first: a + quoted or ``$HOME``-derived path can itself contain a space, and slicing + the text into words before searching would sever it. + + A hit is only a real reference at a path boundary on *both* ends. The + character immediately before the match, if any, must be whitespace or a + :data:`_PATH_BOUNDARY_CHARS` character, or the match is just the tail of + some longer, unrelated path segment (e.g. ``/prefix/lean-ctx``) + and is rejected. The match must then be immediately followed by + end-of-string or a :data:`_PATH_BOUNDARY_CHARS` character (an exact + reference, e.g. a bare ``PATH=`` export), or by ``/`` — in which + case the run of characters up to the next boundary is lexically + normalized (``.``/``..`` collapsed) and re-compared, so neither a sibling + directory like ``bin-backup``/``binfoo`` nor a ``bin/../evil`` traversal + can borrow the managed prefix. + # ponytail: boundary-aware substring scan, not a shell parse — upgrade to + # shlex if a command ever embeds a managed path it does not execute. + """ + try: + bin_dir = paths.bin_dir() + resolved_bin_dir = bin_dir.resolve() + except OSError: + return False + + needles = {_norm_path_text(str(bin_dir)), _norm_path_text(str(resolved_bin_dir))} + home = Path.home() + for base in (bin_dir, resolved_bin_dir): + try: + needles.add(_norm_path_text(f"~/{base.relative_to(home).as_posix()}")) + except ValueError: + pass + + for haystack in (text, os.path.expanduser(text)): + normalized_haystack = _norm_path_text(haystack) + if any(_names_managed_dir(normalized_haystack, needle) for needle in needles): + return True + return False + + +def _names_managed_dir(haystack: str, needle: str) -> bool: + """Whether a normalized ``haystack`` names ``needle`` at a path boundary + on both ends: the character right before the match, if any, must be + whitespace or a :data:`_PATH_BOUNDARY_CHARS` character too, or a + user-owned path that merely has the managed directory as a substring + (e.g. ``/prefix/lean-ctx``) would be misread as naming it. + """ + search_from = 0 + while True: + index = haystack.find(needle, search_from) + if index < 0: + return False + end = index + len(needle) + search_from = index + 1 # keep scanning; occurrences may overlap + if index > 0 and not ( + haystack[index - 1].isspace() or haystack[index - 1] in _PATH_BOUNDARY_CHARS + ): + continue + following = haystack[end : end + 1] + if not following or following.isspace() or following in _PATH_BOUNDARY_CHARS: + return True + if following != "/": + continue + tail_end = end + while tail_end < len(haystack) and not ( + haystack[tail_end].isspace() or haystack[tail_end] in _PATH_BOUNDARY_CHARS + ): + tail_end += 1 + candidate = posixpath.normpath(haystack[index:tail_end]) + if candidate == needle or candidate.startswith(needle + "/"): + return True + + +def _classify_hook_scripts(hooks_dir: Path) -> dict[str, bool | None]: + """Classify each existing ``_HOOK_SCRIPTS`` file by whether it is Headroom's. + + ``True`` — the file exists and its body references the managed bin + directory. ``False`` — it exists and does not. ``None`` — it exists but + could not be read, so its provenance is unprovable. A basename with no + file on disk is simply absent from the map. Each file is read at most once. + + ``.rtk-hook.sha256`` holds a hex digest that can never reference a path, + so it is never read; it inherits ``rtk-rewrite.sh``'s classification. + """ + classification: dict[str, bool | None] = {} + for name in _HOOK_SCRIPTS: + if name == _RTK_DIGEST_NAME: + continue + path = hooks_dir / name + if not path.is_file(): + continue + try: + body = fsutil.read_text(path) + except OSError: + classification[name] = None + continue + classification[name] = _references_managed_bin(body) + + if (hooks_dir / _RTK_DIGEST_NAME).is_file(): + classification[_RTK_DIGEST_NAME] = classification.get(_RTK_SCRIPT_NAME, False) + + return classification + + +def _references_context_tool( + entry: Any, hooks_dir: Path, hook_classification: dict[str, bool | None] +) -> bool: + """Whether a hook entry is one a retired context tool registered. + + A command-marker hit alone is not enough — a user could author a script + with a matching name. It must also either name the managed bin directory + directly, or name — as a path resolving to that exact file, not merely + sharing its basename, so a same-named script of the user's own in a + different directory is never caught — a hook script in ``hooks_dir`` the + classification map marks ``True`` (see :func:`_names_a_managed_script`). + """ if not isinstance(entry, dict): return False - command = str(entry.get("command", "")).lower() - return any(marker in command for marker in _HOOK_COMMAND_MARKERS) + command = str(entry.get("command", "")) + if not any(marker in command.lower() for marker in _HOOK_COMMAND_MARKERS): + return False + if _references_managed_bin(command): + return True + return _names_a_managed_script(command, hooks_dir, hook_classification) -def _prune_hooks(hooks: Any) -> tuple[Any, bool]: +def _names_a_managed_script( + command: str, hooks_dir: Path, hook_classification: dict[str, bool | None] +) -> bool: + """Whether ``command`` names, by absolute path, a hook script the map marks ``True``. + + A real command is rarely the bare script path: ``bash