Files
clawmates/crates/cm-runtime/src/lib.rs
T
Omar SobhandClaude Opus 5 13f7fb3aff feat(memory): missions remember their verdicts, per repository
Until now missions wrote no memory. The chat path records every turn into
the claw's .brain, but a mission's crew is minted per mission, so a brain
keyed by agent would be written once and never read. What persists across
missions is the repository: mission_memory keeps one .brain per repo_id,
writes each judge verdict into it (reason when met, sanitized guidance when
not — the operator reason may quote the acceptance text), and recalls
against the next phase's task text into the brief, under a heading all
three executors carry because it rides on the task.

Recall is BM25 over the keyword index, no embedder; the harness asserts the
brief carries the section once the repo has one judged mission behind it,
and says 'first mission' rather than failing before that. OpenClaw's
flush-before-compaction was the other half of this item and is moot here:
the chat loop has no compaction and already remembers both halves of
every turn.

Co-Authored-By: Claude Opus 5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01WZb5A2kfVfjpdwSochkuHz
2026-09-20 22:11:55 -05:00

23 lines
770 B
Rust

//! The agent run loop: takes a user message, drives the LLM provider,
//! executes tools, and journals every event before any observer sees it
//! (the gateway streams exactly this journal, live or replayed).
pub mod brain;
mod events;
pub mod outbox;
mod runtime;
mod sandboxes;
pub mod scheduling;
mod terminals;
mod tools;
pub use events::{RunEventBody, RunEventEnvelope};
pub use outbox::{drain_once, spawn_drainer, EmailSender, LettreSender, SmtpConfig};
pub use runtime::{
governor_allows, judge_model, ProviderRegistry, Runtime, RuntimeConfig, RuntimeError,
StartedRun,
};
pub use sandboxes::{NodeDriverProvider, SandboxManager};
pub use terminals::{DriveConfig, TerminalManager};
pub use tools::{ClockNow, EmailSend, Tool, ToolContext, ToolRegistry};