- Docker mode runners now check container status via docker inspect
instead of systemctl is-active, avoiding false unknown when systemd
service is missing or stderr output is discarded
- Binary mode still uses systemctl is-active with stderr suppressed
- Both modes now show a translated context message before the check so
users know which host/user each BECOME password prompt belongs to
- Better ansible output filtering: strip CHANGED/FAILED/UNREACHABLE
header lines and separator noise
- Map Docker container states (running/exited/dead) to systemd vocabulary
- All new user-facing messages fully translated (en/bg/de/ru/zh)
- 125 tests, 100% coverage, pyright clean, ruff clean
- run_ad_hoc() now accepts ask_become_pass and check parameters
- list_runners() passes ask_become_pass=True so --ask-become-pass is
added when running in a TTY, matching playbook behavior
- list_runners() passes check=False so systemctl is-active non-zero
exit codes (inactive=3, unknown=4) don't raise exceptions; the
actual status string is parsed from stdout instead
- TTY guard prevents --ask-become-pass from hanging in non-interactive
environments (CI, scripts)
- 123 tests, 100% coverage, pyright clean, ruff clean
- run_ad_hoc() now raises AnsibleError on non-zero exit, surfacing
stderr instead of silently returning empty stdout
- list_runners() passes become=True to run_ad_hoc since systemctl
is-active requires root privileges
- Add i18n translations for ad-hoc failure messages
- Add unit test for run_ad_hoc failure case
- Update list_runners test to expect become=True
- 119 tests, 100% coverage, pyright clean, ruff clean
- Add force parameter to RunnerManager.remove() — skips remote Ansible
playbook and only removes the local registry entry
- Add --force/-f CLI flag to grm remove command
- Add translations for --force help text across all 5 languages
- Add unit tests for force skip and CLI flag propagation
- 118 tests, 100% coverage, pyright clean, ruff clean
- Add start, stop, enable, disable, status, remove methods to RunnerManager
- Add corresponding CLI subcommands: grm start/stop/enable/disable/status/remove
- Add i18n translations for lifecycle commands across all supported languages
- Add comprehensive unit tests for lifecycle methods and CLI commands
- Fix environment variable leakage in CLI tests for GITEA_URL