Skip to content

Heartbeat skip paths record phantom COMPLETED + bump last_heartbeat_at — add SKIPPED status (PR #9948 follow-up) #9951

Closed

Description

@mrveiss

From PR #9948 review (A4)

When the heartbeat scheduler skips dispatch (CLI absent — new gate from #9793 — or the pre-existing "no LLC adapter registered" path), _dispatch_adapter returns normally, so _run_adapter records the run as COMPLETED and advances agent_org_nodes.last_heartbeat_at (llc/scheduler/heartbeat_scheduler.py ~501/525-535/688-697).

Effect

A CLI-less or adapter-less agent looks healthy in monitoring — phantom success. The skip is only visible as an INFO log line.

Fix direction

Introduce a SKIPPED run status (distinct from COMPLETED/FAILED) for non-dispatched heartbeats and do NOT bump last_heartbeat_at on skip, so monitoring reflects the degraded state. Applies to both skip paths (pre-existing semantics — not a regression from #9793).

Activity

  1. mrveiss commented on Jun 15, 2026

    @mrveiss
    OwnerAuthor

    Merged to Dev_new_gui via PR #10146 (squash c105f76). Phantom-healthy heartbeats fixed: the three non-dispatch paths now raise HeartbeatDispatchSkipped, so the run is recorded as SKIPPED with no last_heartbeat_at bump. Tests green; part of #9923.

  2. mrveiss commented on Jun 15, 2026

    @mrveiss
    OwnerAuthor

    ✅ Closed — merged via PR #10146 (c105f7614). Added LLCRunStatus.SKIPPED (terminal; status col is String(32), no migration) + HeartbeatDispatchSkipped raised from all 3 non-dispatch paths (no adapter / CLI absent / no agent_class). _run_adapter records SKIPPED, does NOT bump last_heartbeat_at, skips replay. Tests: 4 dispatch-skip tests + new _run_adapter no-bump test.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions