HERMES-GIELIE/api
carryzuo00 2881fcec89 fix(agent_health): detect profile-scoped gateway.pid for correct status
_gateway_root_pid_path() unconditionally returned <hermes_root>/gateway.pid.
Profile-scoped gateways (started with --profile <name> or via active_profile)
write their runtime files under <hermes_root>/profiles/<name>/ instead of the
root, so the root-level path never existed.

build_agent_health_payload() therefore always received a non-existent pid_path,
fell through to the stale root-level gateway_state.json, and returned alive=None.
This caused the cron/scheduled-jobs page to display "Gateway not configured" even
when a gateway was actively running.

Fix: after failing to find a root-level gateway.pid, fall back to the active
profile directory via get_active_hermes_home(). Root-level wins when it exists,
so deployments that do write there are unaffected. Errors from profile lookup are
swallowed and the root path is returned, preserving the previous safe default.

Adds five focused unit tests covering the new fallback, the priority rule, and
the error-handling path.
2026-05-25 10:35:37 +00:00
..
__init__.py
agent_health.py fix(agent_health): detect profile-scoped gateway.pid for correct status 2026-05-25 10:35:37 +00:00
agent_sessions.py fix: keep resumed CLI sessions in sidebar cap 2026-05-20 15:54:44 -07:00
auth.py Stage-batch14: add HERMES_WEBUI_PASSKEY feature flag for #2859 passkey support 2026-05-25 00:16:12 +00:00
background.py feat(commands): /background, /btw slash commands + undo button + reasoning chip 2026-04-24 01:24:51 +00:00
clarify.py chore: address review notes — dedup comment and 409-path clarification 2026-05-20 19:57:20 +00:00
commands.py fix(security): drop unsafe-eval + add jsdelivr to CSP, sanitize plugin error 2026-05-11 17:53:02 +00:00
compression_anchor.py fix(compression): ignore tool output for compaction cards 2026-05-24 03:55:42 +00:00
config.py test: avoid global env-coupled defaults regression 2026-05-25 01:58:32 +00:00
dashboard_probe.py fix: preserve IPv6 dashboard link brackets 2026-05-19 21:35:10 -04:00
extensions.py Opus pre-release follow-ups for PR #1445 2026-05-02 03:49:40 +00:00
gateway_watcher.py release: v0.50.241 (#1293) 2026-04-29 19:54:07 -07:00
goals.py fix(i18n): localize /goal runtime status strings 2026-05-10 15:21:24 +08:00
helpers.py stage-348: apply Opus SHOULD-FIX-pre-merge — add '://' to _SENSITIVE_LOWER_MARKERS 2026-05-13 16:54:36 +00:00
kanban_bridge.py perf(http): enable HTTP/1.1 keep-alive 2026-05-24 18:26:56 +00:00
metering.py fix: show TPS in assistant message headers 2026-05-04 21:26:43 +00:00
models.py fix: preserve repeated state rows in replay delta 2026-05-25 00:10:27 +00:00
oauth.py fix(oauth): serialize Anthropic env fallback reads 2026-05-07 02:47:19 +00:00
onboarding.py Classify onboarding DNS probe failures consistently 2026-05-15 08:51:30 +08:00
passkeys.py feat: support passkey-only auth 2026-05-25 00:14:38 +00:00
profiles.py fix(windows): align WebUI defaults with Hermes Agent home path 2026-05-25 01:58:32 +00:00
providers.py feat: sort configured/custom providers to top in model picker and settings 2026-05-22 16:13:46 +00:00
request_diagnostics.py fix: add request wedge diagnostics 2026-05-08 15:37:08 +00:00
rollback.py v0.50.255: Opus follow-ups (4 fixes) + CHANGELOG 2026-05-01 17:19:53 +00:00
routes.py fix: send joplin token in auth header 2026-05-25 08:51:44 +08:00
run_journal.py fix(chat): classify interrupted response causes 2026-05-25 02:06:42 +02:00
runtime_adapter.py Stage 398: PR #2696 — feat(runtime): add runner-local adapter selection (RuntimeAdapter slice 4c, feature-flagged) 2026-05-21 17:43:54 +00:00
session_events.py sync session list from server events 2026-05-20 08:18:56 -06:00
session_lifecycle.py fix: align WebUI memory commits with CLI boundaries 2026-05-17 05:04:57 -06:00
session_ops.py Show profile home in /status command (refs #463) (#1380) 2026-05-01 04:46:37 +00:00
session_recovery.py fix(session): rebuild missing startup index 2026-05-20 23:43:30 +08:00
startup.py fix: P0 hotfixes — API regression, code block parser, chmod override 2026-05-01 12:10:48 +00:00
state_sync.py Stage 406: PR #2827 — fix(state-sync): pass profile explicitly so background-thread DB writes hit the right state.db (#2762) by @Koraji95-coder 2026-05-24 18:57:40 +00:00
streaming.py fix: preserve cached agent prefill context 2026-05-25 08:51:44 +08:00
system_health.py feat: add VPS resource health panel 2026-05-05 17:30:56 +00:00
terminal.py fix(terminal): drop PR_SET_PDEATHSIG preexec_fn that killed every Linux shell 2026-05-24 17:13:31 +00:00
turn_journal.py fix: lock turn journal appends 2026-05-15 16:39:45 -07:00
updates.py Stage 403: Opus pre-release fixes (1 MUST-FIX + 3 SHOULD-FIX) 2026-05-24 17:42:06 +00:00
upload.py fix(upload): scope archive extraction to per-session attachment dir 2026-05-18 21:22:02 +03:00
usage.py fix: display canonical cache hit percentage 2026-05-19 02:27:12 -06:00
workspace.py feat(workspace): add backend Git operations 2026-05-20 04:51:41 +00:00
workspace_git.py fix(workspace): tighten git subprocess trust boundary 2026-05-20 11:02:45 +00:00
worktrees.py Harden worktree removal safeguards 2026-05-13 09:49:15 +08:00