Skip to content

feat(review): add heartbeat, timeout, cleanup, and structured verdict metadata #137

Description

@BaseInfinity

Feedback type

Feature request from repeated cross-model review runs in BaseInfinity/m180-jumpseat.

Problem

A non-interactive cross-model review can remain completely silent for several minutes and then return only VERDICT: CLEAN. During the #92#98 delivery sequence and its lifecycle reconciliation, the reviewer process was healthy and eventually completed, but the driver could not distinguish among:

  • active reasoning;
  • provider/network wait;
  • a stalled child process;
  • authentication/input wait;
  • a lost output stream;
  • a completed review whose final output was not propagated.

The only available diagnostic was external process inspection. That is not a reusable consumer workflow, especially on Windows.

This is separate from concise review output (#123) and retained failed-proof summaries (#124). It concerns runner lifecycle and durable review metadata.

Desired behavior

Provide an installed, cross-platform review runner that owns the child process and emits bounded operational state without exposing chain-of-thought or flooding the console.

Minimum state:

  • review started, exact base/candidate identity, and reviewer command class;
  • periodic liveness heartbeat with elapsed time and last observable child/output activity;
  • explicit distinction among running, input/auth blocked, timed out, failed, findings, and clean;
  • bounded stall and wall-clock timeouts;
  • process-tree cleanup on timeout/cancel;
  • one policy-controlled retry only for transport/provider failure before a valid verdict, never as a way to reroll findings;
  • structured terminal metadata containing candidate SHA/tree, start/end time, exit code, timeout/retry state, verdict, and sanitized log location.

Acceptance criteria

  • A synthetic silent-but-healthy child produces heartbeats and completes successfully.
  • A hung child times out and its complete process tree is reaped on Windows and POSIX.
  • A child waiting for interactive input/auth is classified instead of hanging indefinitely where detectable.
  • A valid CLEAN or FINDINGS verdict is bound to the exact reviewed candidate.
  • Retry occurs only for a configured infrastructure failure and records the original attempt; findings are never retried away.
  • Full output is retained in ignored/local metadata while the terminal remains concise.
  • Structured metadata is machine-readable and cannot be authored by the implementation under review.
  • No chain-of-thought, credentials, raw private prompt data, or repository secrets are added to heartbeat or metadata output.
  • Cancellation and host shutdown leave no stale reviewer processes.
  • Consumer guidance explains the difference between liveness, successful process exit, and a valid review verdict.

Related

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions