use oxicode::foundation::brain::{BrainMemoryBackend, default_socket_path};
use oxicode_agent::tools::MemoryBackend;
const SPACE: &str = "oxicode-live-selftest";
#[tokio::test]
#[ignore = "requires a running oxibrain daemon"]
async fn put_search_delete_round_trip() {
let backend = BrainMemoryBackend::new(default_socket_path()).with_scope(SPACE);
backend.ping().await.expect("daemon reachable");
let id = backend
.put(
"live round-trip marker: oxicode selftest zqx-42",
"selftest",
"brain_live",
)
.await
.expect("put succeeds");
assert!(
id.chars().all(|c| c.is_ascii_hexdigit()),
"put must return the episode id, got {id:?}"
);
let hits = backend.search("zqx-42", 5).await.expect("search succeeds");
let found = hits
.iter()
.find(|m| m.content.contains("zqx-42"))
.expect("recall must surface the freshly ingested note");
assert_eq!(found.kind, "recent_episodes");
backend.delete(&id).await.expect("delete succeeds");
let after = backend
.search("zqx-42", 5)
.await
.expect("search after delete");
assert!(
!after.iter().any(|m| m.content.contains("zqx-42")),
"redacted episode must not surface again"
);
}