hermes-agent/hermes_cli
teyrebaz33 f10e26f731 fix: auto-enable systemd linger during gateway install on headless servers
Fixes #1005

Without linger, user-level systemd services stop when the SSH session
ends — even though systemctl --user status shows active (running).

Changes to systemd_install():
- Try loginctl enable-linger automatically (succeeds when the process
  has the required privileges)
- If loginctl fails (no privileges), print a clear, copy-pasteable
  warning with the exact command the user must run

New helper: _ensure_linger_enabled()
- Fast path: checks /var/lib/systemd/linger/<user> (no subprocess)
- Auto-enable: loginctl enable-linger <user>
- Fallback: actionable warning with sudo command + restart instructions

Tests: 4 new tests in TestEnsureLingerEnabled, 205 passed total
2026-03-14 11:46:59 -07:00
..
__init__.py chore: bump version to v0.2.0 + add curated first-release changelog 2026-03-12 01:52:53 -07:00
auth.py fix: prevent model/provider mismatch when switching providers during active gateway (#1183) 2026-03-13 09:03:48 -07:00
banner.py feat: add versioning infrastructure and release script 2026-03-12 01:35:47 -07:00
callbacks.py refactor(cli): implement approval locking mechanism to serialize concurrent requests 2026-03-13 23:59:18 -07:00
checklist.py fix: skip hanging tests + add global test timeout 2026-03-12 01:23:28 -07:00
claw.py feat: add 'hermes claw migrate' command + migration docs 2026-03-12 08:20:12 -07:00
clipboard.py fix: clean up empty file after failed wl-paste clipboard extraction 2026-03-11 02:56:19 -07:00
codex_models.py fix: add codex forward-compat model listing 2026-03-13 21:34:01 -07:00
colors.py Cleanup time! 2026-02-20 23:23:32 -08:00
commands.py feat: add voice mode with push-to-talk and TTS output for CLI 2026-03-14 14:25:28 +03:00
config.py fix: cover remaining config placeholder help text 2026-03-14 10:35:14 -07:00
cron.py refactor: streamline cron job handling and update CLI commands 2026-02-21 16:21:19 -08:00
curses_ui.py refactor: extract shared curses checklist, fix skill discovery perf 2026-03-11 03:06:15 -07:00
default_soul.py feat: seed a default global SOUL.md 2026-03-14 08:05:30 -07:00
doctor.py fix(gateway): surface missing linger in status and doctor (#1296) 2026-03-14 06:11:33 -07:00
gateway.py fix: auto-enable systemd linger during gateway install on headless servers 2026-03-14 11:46:59 -07:00
main.py fix(cli): add --yes alias for skills install 2026-03-14 11:27:23 -07:00
models.py Show configured model and provider in status output 2026-03-14 03:35:37 -07:00
pairing.py Cleanup time! 2026-02-20 23:23:32 -08:00
runtime_provider.py fix: avoid custom provider shadowing built-in providers 2026-03-14 11:24:29 -07:00
setup.py Merge pull request #1323 from NousResearch/hermes/hermes-1fc28d17 2026-03-14 10:40:57 -07:00
skills_config.py fix: wire email platform into toolset mappings + add documentation 2026-03-11 06:34:32 -07:00
skills_hub.py fix(skills): honor policy table for dangerous verdicts 2026-03-14 11:27:02 -07:00
skin_engine.py fix(cli): make TUI prompt and accent output skin-aware 2026-03-14 03:12:52 -07:00
status.py Show configured model and provider in status output 2026-03-14 03:35:37 -07:00
tools_config.py fix: wire email platform into toolset mappings + add documentation 2026-03-11 06:34:32 -07:00
uninstall.py Cleanup time! 2026-02-20 23:23:32 -08:00