Files
hermes-agent/tests/hermes_cli/test_windows_native_docs.py
ethernet 47f4ab3a17 feat(desktop): bundle, publish, and update the desktop app as MSIX
Wire the desktop app onto the pm store for real distribution:
- MSIX bundle: electron-builder config, appx assets, manifest, copilot
  key + deep-link routing, App Installer + Windows Store variant
  (sign only the msix; inner binaries covered by the package block map)
- Rust CLI shim (apps/desktop/shim) — bundled builds run from the store
  python + shim, never the venv; payload symlinks relativized so the
  relocatable venv survives relocation
- Cloudflare R2 release pipeline: publish binaries + update feeds,
  nightly channels/tags, stamp-first version resolution
- Update system: gate, uninstall steward, boot bootstrap, release
  channels, update receipts
- install.ps1 reduced to a 361-line stage-protocol bootstrapper (heavy
  deps are pm's job); darwin updater + update-channel mirror ripped
- doctor: main's re-landed TCC anchor kept, termux branches removed

Rebuilt from ethie/pm onto the pm-store stack. 22 hot files hand-merged;
uv.lock + package-lock.json keep main's newer dep tree; test_engines
reads the pm/lock.json pin; lazy_deps.py deleted (all 222 importers
migrated to pm in the foundation commit).
2026-08-31 18:00:48 -04:00

23 lines
1.1 KiB
Python

from pathlib import Path
def test_windows_native_install_path_docs_match_installer() -> None:
doc = Path("website/docs/user-guide/windows-native.md").read_text()
install = Path("scripts/install.ps1").read_text()
# The launchers live in the managed binary dir OUTSIDE the git checkout
# (HERMES_HOME\bin, next to the managed uv) — NOT the whole venv\Scripts
# (which would shadow the user's python, #83797) and NOT a dir inside
# the checkout (which `hermes update`'s autostash swept off disk).
assert "%LOCALAPPDATA%\\hermes\\bin" in doc
assert (
"Get-Command hermes # should print "
"C:\\Users\\<you>\\AppData\\Local\\hermes\\bin\\hermes.exe"
) in doc
# Installer exposes $HermesHome\bin, and must copy the launchers into it.
assert 'Join-Path $HermesHome "bin"' in install
assert "hermes.exe" in install and "hermes-acp.exe" in install
# Guard against regressions to either legacy layout.
assert '$hermesBin = "$InstallDir\\venv\\Scripts"' not in install
assert '$hermesBin = "$InstallDir\\bin"' not in install