7 Commits
Author SHA1 Message Date
Teknium 9c9c7af5b6 test(install-e2e): the rollback-copy test also pins the executable filter
Delete only the live Hermes.exe while the rollback copies keep theirs: the
verifier must still refuse with "desktop executable is missing or empty"
(red when the executable lookup globs release/* unfiltered). Review finding.
2026-11-02 02:49:07 -08:00
Teknium 53fa07bd03 test(install-e2e): judge only the live desktop app, not rollback copies beside it
The Windows `installer-script+desktop -> hermes-desktop-app-update` leg from
v2026.7.30 failed every attempt with "desktop output is missing, stale, or
damaged: ...\release\win-unpacked.bak\...\dist". The old release's in-place
Windows pack (before-pack.mjs, #69179) kept the previous tree as
release\win-unpacked.bak; HEAD's update builds in a staging dir and swaps
release\win-unpacked via `.previous`, and by design never touches that `.bak`.
The product only ever launches the fixed appOutDir names, so the new app was
correct; verify_products globbed release/* and ran the freshness check on the
old rollback copy.

Restrict the verifier's output and executable discovery to electron-builder
appOutDir names, which never contain a dot (`.bak`, `.previous` copies do).
2026-11-02 02:49:07 -08:00
Maciej Lisiewski 0006a5e229 ci: fix PLW1509, PLW1510, PLW2101 linter errors 2026-10-10 15:20:13 +02:00
ethernet f43c38affc test(install-e2e): accept the current checker's countless update offer and the macOS installer marker
The current source checker reports updateAvailable with behind null when GitHub
compare cannot count staged commits; the app-update predicate demanded an integer
behind and refused every HEAD->NEXT leg. Require behind > 0 only for the historical
shape without updateAvailable.

v2026.6.19's DMG bootstrap runs the same install.sh that writes .install_method,
so its macOS leg saw a dirty tree. Share the Linux driver's guarded exclude through
source-driver.sh and apply it before every app-driven macOS update.
2026-09-24 10:42:43 -04:00
ethernet bbec973514 refactor(pm): pm owns the dependency-environment layout and interpreter paths
hermes_cli.runtime_paths (venv generations, selection, activation) moves to
pm.environments, and gains venv_bin_dir / venv_python / project_python. Every
in-tree caller asks pm for an interpreter now; pm no longer reaches back into
hermes_cli for its own environment layout (pm.packages, pm.extras, pm.ensure,
pm.paths imported hermes_cli.runtime_paths). The three open-coded
"Scripts/python.exe or bin/python" ladders in pm collapse onto venv_python.

hermes_constants.venv_python_path / venv_bin_dir and hermes_cli.runtime_paths
stay as frozen-updater-surface shims only (tests/compat/old_updater_surface.json).

To keep the boot path light, pm/__init__ resolves its facade lazily (PEP 562)
and pm.registry loads the built-in package definitions on first read instead of
at import: `import hermes_bootstrap` now loads pm + pm.environments only (25ms,
was 37ms with the eager facade dragging in the downloader). The stripped-payload
fixtures that ship only pre-import files keep working for the same reason.

Also restores two frozen-surface re-exports the F401 sweep dropped
(banner._github_compare_behind, cua_backend.resolve_cua_driver_cmd).
2026-09-18 20:02:36 -04:00
ethernet bd694198c9 test: consolidate build contracts around executed artifacts 2026-09-13 15:10:31 -04:00
ethernet 53e6f001c7 refactor(pm): consolidate runtime ownership and updater completion
Run historical updater completion in a fresh interpreter so cached imports
cannot revive retired dependency installers. Share Git and ZIP completion,
carry receipt and recovery state, and preserve child exit status.

Route plugin admission, binary acquisition, desktop launch and build paths
through PM. Replace redundant helpers and tests with real worker, package,
publication and launch checks. Keep the shipped compatibility surface fixed.

Targeted Python and desktop checks pass. Native update journeys and fresh
production image qualification remain pending. This is a checkpoint before
those acceptance runs.
2026-09-12 16:30:35 -04:00