Files
hermes-agent/tests
Halldrix 3dc3186873 fix(main): lazy-import secrets_cli to prevent cryptography._rust self-lock on Windows
The secrets_cli import in main() was eager, which loaded
agent.secret_sources.bitwarden and its cryptography.* dependencies
before cmd_update() ran. On Windows, the updater process itself
then mapped cryptography._rust.pyd into its own address space,
triggering the self-lock detector (_detect_self_loaded_native_modules)
and causing a defer/exit-2 loop that blocked updates entirely.

Move the secrets_cli import inside the _dispatch_secrets function so
it only pays for itself when the user actually runs a secrets
subcommand. This keeps hermes update (and all other commands) free
of the cryptography._rust.pyd eager load.

Refs #83569, #83590, #86687

Test: 3 new regression tests verify cryptography._rust stays out of
sys.modules during main() and the update path.
2026-08-15 01:55:22 -07:00
..
…