Skip to content

Lifecycle stagnation health check triggered due to silent successful heartbeats #216

@liyishuai

Description

@liyishuai

The lifecycle.js health check restarts the evolver daemon if evolver_loop.log hasn't been written to for over 30 minutes (stagnation).

However, the loop remains completely silent during normal operation when it is not actively processing tasks, because sendHeartbeat() in src/gep/a2aProtocol.js does not log anything on a routine successful heartbeat.

If no tasks are processed for 30 minutes, the log file's mtime does not update, and the lifecycle manager incorrectly flags the service as "stagnant" and kills/restarts it.

Suggested fix:
Either update sendHeartbeat() to print a periodic message (e.g., heartbeat succeeded), touch the log file on success, or update lifecycle.js to rely on an alternative health metric.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions