pub struct ProgressLedger {
pub session_id: String,
pub goal: String,
pub milestones: Vec<Milestone>,
pub confidence: f32,
pub stalled_since: Option<String>,
pub updated_at: String,
pub previous_session_id: Option<String>,
pub handoff_summary: Option<String>,
pub known_issues: Vec<String>,
pub git_checkpoint: Option<String>,
}Expand description
Compact, durable progress signal for one session.
This is the harness’s externalized memory of “are we getting closer to done?” It is intentionally small so it can be loaded every turn without touching the event log. Includes handoff metadata so cross-session continuity is explicit in the ledger itself.
Fields§
§session_id: StringOwning session id.
goal: StringThe objective the agent is pursuing.
milestones: Vec<Milestone>Tracked milestones; empty when the agent has no explicit tracker.
confidence: f32Agent’s confidence in eventual completion, 0.0..=1.0.
stalled_since: Option<String>RFC3339 timestamp of the first turn where no forward progress was
detected, or None if progress is currently being made.
updated_at: StringRFC3339 timestamp of the last ledger update.
previous_session_id: Option<String>The session id of the predecessor session that handed off to this one.
None for the first session in a chain.
handoff_summary: Option<String>Summary communicated by the previous session at handoff time.
known_issues: Vec<String>Issues carried forward from the previous session.
git_checkpoint: Option<String>Git commit hash at the time of handoff (the “checkpoint”).
Implementations§
Source§impl ProgressLedger
impl ProgressLedger
Sourcepub fn new(session_id: &str, goal: &str) -> Self
pub fn new(session_id: &str, goal: &str) -> Self
Create a fresh ledger for a session with an initial goal.
Sourcepub fn completion_ratio(&self) -> f32
pub fn completion_ratio(&self) -> f32
Fraction of milestones in a terminal (Done) state, 0.0..=1.0.
Returns 1.0 when there are no milestones (nothing tracked yet).
Sourcepub fn is_complete(&self) -> bool
pub fn is_complete(&self) -> bool
Whether every tracked milestone is complete (or none are tracked).
Sourcepub fn is_stalled(&self) -> bool
pub fn is_stalled(&self) -> bool
Whether the ledger currently reports a stall.
Sourcepub fn note_advance(&mut self)
pub fn note_advance(&mut self)
Record forward progress: clears any stall marker and refreshes the timestamp. Confidence is nudged upward (bounded at 1.0).
Sourcepub fn note_stall(&mut self)
pub fn note_stall(&mut self)
Record a stall: sets stalled_since on first occurrence and refreshes
the timestamp. Confidence is nudged downward (bounded at 0.0).
Sourcepub fn set_milestones(&mut self, milestones: Vec<Milestone>)
pub fn set_milestones(&mut self, milestones: Vec<Milestone>)
Replace the milestone set and refresh the timestamp.
Sourcepub fn set_handoff(
&mut self,
previous_session_id: &str,
summary: &str,
git_checkpoint: Option<String>,
)
pub fn set_handoff( &mut self, previous_session_id: &str, summary: &str, git_checkpoint: Option<String>, )
Record handoff metadata from a previous session.
Sourcepub fn add_known_issue(&mut self, issue: &str)
pub fn add_known_issue(&mut self, issue: &str)
Add a known issue carried forward from a previous session.
Sourcepub fn to_markdown(&self) -> String
pub fn to_markdown(&self) -> String
Render a compact, human-readable progress summary for durable memory
(e.g. <workspace>/memories/progress.md). Survives compaction and gives
a resumed session an accurate picture of what is done. Includes handoff
metadata when present so the next session can orient from this alone.
Trait Implementations§
Source§impl Clone for ProgressLedger
impl Clone for ProgressLedger
Source§fn clone(&self) -> ProgressLedger
fn clone(&self) -> ProgressLedger
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more