ralph-agent-loop 0.4.0

A Rust CLI for managing AI agent loops with a structured JSON task queue
Documentation
//! Aging report unit tests grouped by concern.
//!
//! Responsibilities:
//! - Provide focused regression coverage for threshold validation and aging computation.
//! - Keep the production aging modules free of large inline scenario blocks.

use std::collections::HashMap;

use time::{Duration, OffsetDateTime};

use crate::contracts::{QueueConfig, QueueFile, Task, TaskStatus};
use crate::timeutil;

fn task_with_status(id: &str, status: TaskStatus) -> Task {
    Task {
        id: id.to_string(),
        status,
        title: "Test task".to_string(),
        description: None,
        priority: crate::contracts::TaskPriority::Medium,
        tags: vec![],
        scope: vec![],
        evidence: vec![],
        plan: vec![],
        notes: vec![],
        request: None,
        agent: None,
        created_at: None,
        updated_at: None,
        completed_at: None,
        started_at: None,
        scheduled_start: None,
        estimated_minutes: None,
        actual_minutes: None,
        depends_on: vec![],
        blocks: vec![],
        relates_to: vec![],
        duplicates: None,
        custom_fields: HashMap::new(),
        parent_id: None,
    }
}

fn fixed_now() -> OffsetDateTime {
    OffsetDateTime::from_unix_timestamp(1_704_153_600).unwrap()
}

mod report_tests;
mod threshold_tests;