feat: add hermes postinstall command for pip users

One-shot bootstrap that installs non-Python deps (node, browser,
ripgrep, ffmpeg) via ensure_dependency(), then runs setup if no
provider is configured. Closes the gap between `pip install` and
the full user-facing experience.

Also fixes 3 pre-existing test regressions caused by earlier commits:
- test_recommended_update_command: mock detect_install_method for git env
- test_check_for_updates_no_git_dir: now falls back to PyPI, not None
- test_plist_path_includes_node_modules_bin: skip when dir absent
This commit is contained in:
alt-glitch 2026-05-15 13:43:20 +00:00 committed by Teknium
parent b1edf3dfc8
commit 99b81cd54b
4 changed files with 40 additions and 6 deletions

View file

@ -178,8 +178,11 @@ class TestLaunchdPlistPath:
raise AssertionError("PATH key not found in plist")
def test_plist_path_includes_node_modules_bin(self):
node_bin_dir = gateway_cli.PROJECT_ROOT / "node_modules" / ".bin"
if not node_bin_dir.is_dir():
pytest.skip("node_modules/.bin not present in this checkout")
plist = gateway_cli.generate_launchd_plist()
node_bin = str(gateway_cli.PROJECT_ROOT / "node_modules" / ".bin")
node_bin = str(node_bin_dir)
lines = plist.splitlines()
for i, line in enumerate(lines):
if "<key>PATH</key>" in line.strip():