codex_state/model/
memories.rs1use chrono::DateTime;
2use chrono::Utc;
3use codex_protocol::ThreadId;
4use std::path::PathBuf;
5
6use super::ThreadMetadata;
7
8#[derive(Debug, Clone, PartialEq, Eq)]
10pub struct Stage1Output {
11 pub thread_id: ThreadId,
12 pub rollout_path: PathBuf,
13 pub source_updated_at: DateTime<Utc>,
14 pub raw_memory: String,
15 pub rollout_summary: String,
16 pub rollout_slug: Option<String>,
17 pub cwd: PathBuf,
18 pub git_branch: Option<String>,
19 pub generated_at: DateTime<Utc>,
20}
21
22#[derive(Debug, Clone, PartialEq, Eq)]
24pub enum Stage1JobClaimOutcome {
25 Claimed { ownership_token: String },
27 SkippedUpToDate,
29 SkippedRunning,
31 SkippedRetryBackoff,
33 SkippedRetryExhausted,
35}
36
37#[derive(Debug, Clone, PartialEq, Eq)]
39pub struct Stage1JobClaim {
40 pub thread: ThreadMetadata,
41 pub ownership_token: String,
42}
43
44#[derive(Debug, Clone, Copy)]
45pub struct Stage1StartupClaimParams<'a> {
46 pub scan_limit: usize,
47 pub max_claimed: usize,
48 pub max_age_days: i64,
49 pub min_rollout_idle_hours: i64,
50 pub allowed_sources: &'a [String],
51 pub lease_seconds: i64,
52}
53
54#[derive(Debug, Clone, PartialEq, Eq)]
56pub enum Phase2JobClaimOutcome {
57 Claimed {
59 ownership_token: String,
60 input_watermark: i64,
62 },
63 SkippedRetryUnavailable,
65 SkippedCooldown,
67 SkippedRunning,
69}