0723cb6c06
`uv pip install -e .` never audits an editable target. It reinstalls on every invocation and rewrites the console-script shims each time, which is the only reason `hermes update` has to quarantine the running `hermes.exe` on Windows — and a quarantine that loses its race is the whole `os error 32` family. Gate the reinstall on whether the pull actually touched a file that defines the install. It's safe to skip because the editable finder is pinned to a static module list (`py-modules` + `packages.find.include`), so the one source-only change that could stale it — a new top-level module or package — cannot land without a `pyproject.toml` diff. Dependencies and `[project.scripts]` live there too, and new submodules inside an already-mapped package resolve through the real directory. The predicate fails closed: no pre-pull SHA, an unresolvable one, or a failed `git diff` all reinstall as before. On the skip path the two verifiers that normally run inside the install run directly, so a wrong skip self-heals into a real install rather than leaving an unchecked venv. This is the pattern the file already uses everywhere else — `_tui_need_npm_install` diffs node_modules against package-lock.json, and the desktop build is gated on a content hash so `hermes update` "will skip if nothing actually changed". The Python editable install was the one path with no such gate.