mirror of
https://github.com/NousResearch/hermes-agent.git
synced 2026-07-01 12:02:05 +00:00
The docker-exec privilege-drop shim tests started a sleep container and released the fixture as soon as `docker exec <c> true` returned 0. On s6-overlay that succeeds almost immediately — ~0.05s in measurement — long before the `01-hermes-setup` cont-init hook (docker/stage2-hook.sh) has finished seeding + `chown hermes:hermes` config.yaml and running the Python config migration (cont-init only fully settles at ~9.8s under arm64 QEMU emulation). `test_shim_opt_out_keeps_root` wipes config.yaml, writes it as root with HERMES_DOCKER_EXEC_AS_ROOT=1, and asserts root:root ownership. When the fixture released the test inside that ~10s window, stage2-hook's boot-time `chown hermes:hermes config.yaml` raced the root-written file and reset it to hermes:hermes — failing the assertion. The window is invisible on native amd64 (stage2-hook completes in a blink) but wide open under the arm64 build's QEMU emulation, which is why only build-arm64 flaked while build-amd64 stayed green. Replace the responsiveness poll with a wait on the canonical 'cont-init finished' signal: $HERMES_HOME/logs/container-boot.log gaining a `profile=default` line, written by 02-reconcile-profiles which s6 runs strictly after 01-hermes-setup. Mirrors the readiness pattern already used in test_container_restart.py. Also bumps the readiness timeout 20s->60s to cover slow emulation. No production code change — test-only hardening of a timing race. |
||
|---|---|---|
| .. | ||
| __init__.py | ||
| conftest.py | ||
| test_config_migration.py | ||
| test_container_restart.py | ||
| test_dashboard.py | ||
| test_docker_exec_privilege_drop.py | ||
| test_dump_build_sha.py | ||
| test_gateway_bootstrap_state.py | ||
| test_gateway_run_supervised.py | ||
| test_home_override_scripts.py | ||
| test_immutable_install.py | ||
| test_immutable_install_permissions.py | ||
| test_license_file_present.py | ||
| test_log_dir_seed.py | ||
| test_main_invocation.py | ||
| test_profile_gateway.py | ||
| test_puid_pgid_remap.py | ||
| test_s6_profile_gateway_integration.py | ||
| test_smoke.py | ||
| test_stage2_browser_discovery.py | ||
| test_tini_compat_shim.py | ||
| test_toplevel_chown.py | ||
| test_tui_passthrough.py | ||
| test_tui_prebuilt_bundle.py | ||
| test_user_flag_guard.py | ||
| test_zombie_reaping.py | ||