loopflow 0.12.18

Run steps and flows with coding agents
Documentation
use time::OffsetDateTime;

use crate::work::project::{Project, ProjectId};

pub(crate) fn automatic_restart_bar(project: &Project) -> Option<String> {
    project.abandon_intent.as_ref().map(|intent| {
        format!(
            "Project {} is being abandoned: {}",
            project.plan.slug, intent.reason
        )
    })
}

#[derive(Debug, Clone, PartialEq, Eq)]
pub(crate) struct State {
    pub project_id: ProjectId,
    pub iteration: u32,
    pub observation_cursor: i64,
    pub last_state_fingerprint: Option<String>,
    pub agent: String,
    pub provider: String,
    pub provider_session_id: Option<String>,
    pub updated_at: OffsetDateTime,
}