Files
hermes-agent/tests
kshitijk4poor e4e16a54ae test(gateway): bound and reap the live strict-identity lock holders
The live lock-holder tests could hang or leak:

- the handshake readline had no deadline and stderr went to DEVNULL,
  so a child stuck on import blocked the worker with no diagnostics;
- the holder slept 120s, outliving a killed pytest while holding
  gateway.lock;
- `assert acquire_gateway_runtime_lock()` vanishes under -O;
- kill() hit only the Windows venv launcher, never the self-reported
  interpreter, and pipes were never closed (ResourceWarning per test);
- the discovery test relied on list_profiles() resolving to the temp
  HERMES_HOME and compared unresolved paths (/var vs /private/var on
  macOS, 8.3 names on Windows).

The holder now blocks on stdin, reports failure via exit + captured
stderr, and teardown kills the launcher tree plus the reported PID and
reaps via communicate(). The four class tests share one class-scoped
holder with per-test restore of gateway.pid / gateway.lock (5 spawns ->
2), and discovery pins the profile roots like the named-pipe live test.

Also read gateway.pid with utf-8-sig (windows-footguns lane).
2026-09-29 17:15:05 +05:30
..
…