Skip to main content

Module agent_result

Module agent_result 

Source
Expand description

Agent completion detection — parses DEVFLOW_RESULT markers and evaluates exit codes to determine whether a coding agent succeeded or failed.

Four-layer decision engine: 0. Run operator-authored external post-condition probes (authoritative failure)

  1. Parse DEVFLOW_RESULT from agent stdout (authoritative for ordinary plans)
  2. Exit code + commit count gate (reliable fallback)
  3. Process gone + commits exist (last resort warning)

Structs§

AgentResult
Parsed agent completion result.
SequentagentSlot
A sequentagent slot record: which slot (A/B) is currently running, and which crate::state::AgentKind occupies it. Path-free by construction (WR-02) — only the slot letter and agent kind are ever written, never a filesystem path or OS username.

Enums§

AgentStatus
Agent completion status determined by DevFlow.
ResultError
Errors produced by agent result evaluation.
SequentagentSlotKind
Which slot of sequentagent’s two-agent handoff is currently running.
Verdict
The Validate stage’s self-reported verdict (13b verdict-vs-ran split).

Functions§

agent_pid_path
Path to the file where the monitor records the launched agent’s PID.
archive_phase_files
Archive the prior stage’s stdout/exit captures into bounded per-phase history instead of wiping them outright, so a false-positive self-report can be diagnosed after the fact (16b). Replaces the old cleanup_phase_files, which deleted these files unconditionally.
clear_sequentagent_slot
Best-effort removal of the sequentagent slot record for phase. A missing file is not an error — this is called unconditionally by SequentagentSlotGuard’s Drop impl in parallel.rs, on every sequentagent exit path.
detect_rate_limit
Detect agent-specific rate-limit output and return the retry description.
evaluate_agent_result
Full four-layer evaluation: returns the best available AgentResult.
evaluate_layer1
Layer 1: Try to detect agent result from the native per-adapter envelope or the DEVFLOW_RESULT marker in stdout.
evaluate_layer2
Layer 2: Use exit code + commit count to determine result.
evaluate_layer3
Layer 3: Last resort — agent process is gone.
exit_code_path
Path to the exit code file for a given phase.
history_dir
Path to the archived-capture-history directory for a phase (16b).
parse_devflow_result
Search stdout for a DEVFLOW_RESULT marker.
read_sequentagent_slot
Read the sequentagent slot record for phase, if present.
sequentagent_slot_path
Path to the sequentagent slot record for a given phase — mirrors agent_pid_path’s naming convention.
stderr_path
Path where the agent’s stderr is captured for a given phase. Lives alongside stdout_path under .devflow/.
stdout_path
Path to the stdout file for a given phase.
write_sequentagent_slot
Write the sequentagent slot record for phase, naming the currently running agent slot (A/B) and its crate::state::AgentKind.