Subconscious: persistent agent state, store activity queries
- Agent state (outputs) persists across runs in subconscious-state.json, loaded on startup, saved after each run completes - Merge semantics: each run's outputs accumulate into persistent_state rather than replacing - Walked keys restored from surface agent state on load - Store::recent_by_provenance() queries nodes by agent provenance for the store activity view - Switch outputs from HashMap to BTreeMap for stable display ordering Co-Authored-By: Proof of Concept <poc@bcachefs.org>
This commit is contained in:
parent
cf1c64f936
commit
edfa1c37f5
3 changed files with 91 additions and 6 deletions
|
|
@ -38,6 +38,17 @@ impl Store {
|
|||
Ok(())
|
||||
}
|
||||
|
||||
/// Recent nodes by provenance, sorted newest-first. Returns (key, timestamp).
|
||||
pub fn recent_by_provenance(&self, provenance: &str, limit: usize) -> Vec<(String, i64)> {
|
||||
let mut nodes: Vec<_> = self.nodes.values()
|
||||
.filter(|n| !n.deleted && n.provenance == provenance)
|
||||
.map(|n| (n.key.clone(), n.timestamp))
|
||||
.collect();
|
||||
nodes.sort_by(|a, b| b.1.cmp(&a.1));
|
||||
nodes.truncate(limit);
|
||||
nodes
|
||||
}
|
||||
|
||||
/// Upsert a node: update if exists (and content changed), create if not.
|
||||
/// Returns: "created", "updated", or "unchanged".
|
||||
///
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue