cargo fmt
This commit is contained in:
@@ -23,9 +23,7 @@ pub struct ExtractPointerPayload {
|
||||
|
||||
/// `RestoredState.extensions` から最新の Phase 1 pointer を取り出す。
|
||||
/// 未抽出セッションでは `None`。
|
||||
pub fn fold_pointer(
|
||||
extensions: &[(String, serde_json::Value)],
|
||||
) -> Option<ExtractPointerPayload> {
|
||||
pub fn fold_pointer(extensions: &[(String, serde_json::Value)]) -> Option<ExtractPointerPayload> {
|
||||
extensions
|
||||
.iter()
|
||||
.rev()
|
||||
@@ -48,10 +46,7 @@ mod tests {
|
||||
"staging_id": "old"
|
||||
}),
|
||||
),
|
||||
(
|
||||
"other.domain".to_string(),
|
||||
serde_json::json!({ "x": 1 }),
|
||||
),
|
||||
("other.domain".to_string(), serde_json::json!({ "x": 1 })),
|
||||
(
|
||||
EXTRACT_DOMAIN.to_string(),
|
||||
serde_json::json!({
|
||||
@@ -69,21 +64,16 @@ mod tests {
|
||||
|
||||
#[test]
|
||||
fn fold_returns_none_when_absent() {
|
||||
let exts = vec![(
|
||||
"other.domain".to_string(),
|
||||
serde_json::json!({ "x": 1 }),
|
||||
)];
|
||||
let exts = vec![("other.domain".to_string(), serde_json::json!({ "x": 1 }))];
|
||||
assert!(fold_pointer(&exts).is_none());
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn fold_skips_malformed_entries() {
|
||||
let exts = vec![
|
||||
(
|
||||
EXTRACT_DOMAIN.to_string(),
|
||||
serde_json::json!({ "wrong_shape": true }),
|
||||
),
|
||||
];
|
||||
let exts = vec![(
|
||||
EXTRACT_DOMAIN.to_string(),
|
||||
serde_json::json!({ "wrong_shape": true }),
|
||||
)];
|
||||
// 現状は最新を取り出して JSON 不一致なら None。古いものに fallback
|
||||
// しないのは、壊れた最新を黙って無視すると意図しない再抽出を招くため。
|
||||
assert!(fold_pointer(&exts).is_none());
|
||||
|
||||
@@ -84,7 +84,12 @@ mod tests {
|
||||
};
|
||||
let (id, path) = write_staging(&layout, source.clone(), payload).unwrap();
|
||||
assert_eq!(path.parent().unwrap(), layout.staging_dir());
|
||||
assert!(path.file_name().unwrap().to_string_lossy().contains(&id.to_string()));
|
||||
assert!(
|
||||
path.file_name()
|
||||
.unwrap()
|
||||
.to_string_lossy()
|
||||
.contains(&id.to_string())
|
||||
);
|
||||
|
||||
let written: StagingRecord =
|
||||
serde_json::from_str(&fs::read_to_string(&path).unwrap()).unwrap();
|
||||
@@ -101,8 +106,7 @@ mod tests {
|
||||
session_id: "sess".into(),
|
||||
range: [0, 0],
|
||||
};
|
||||
let (_, path) =
|
||||
write_staging(&layout, source, ExtractedPayload::default()).unwrap();
|
||||
let (_, path) = write_staging(&layout, source, ExtractedPayload::default()).unwrap();
|
||||
let written: StagingRecord =
|
||||
serde_json::from_str(&fs::read_to_string(&path).unwrap()).unwrap();
|
||||
assert!(written.payload.is_empty());
|
||||
|
||||
@@ -134,8 +134,9 @@ mod tests {
|
||||
let ctx = Arc::new(ExtractWorkerContext::new());
|
||||
let tool: Arc<dyn Tool> = Arc::new(WriteExtractedTool { ctx: ctx.clone() });
|
||||
|
||||
let first = serde_json::json!({"decisions": [], "discussions": [], "attempts": [], "requests": []})
|
||||
.to_string();
|
||||
let first =
|
||||
serde_json::json!({"decisions": [], "discussions": [], "attempts": [], "requests": []})
|
||||
.to_string();
|
||||
tool.execute(&first).await.unwrap();
|
||||
|
||||
let second = serde_json::json!({
|
||||
|
||||
@@ -548,7 +548,8 @@ mod tests {
|
||||
// `db-pol` (1 deletion), `db-pools` (1 insertion).
|
||||
for slug in ["db-pol", "db-pools"] {
|
||||
write(
|
||||
&dir.path().join(format!(".insomnia/memory/decisions/{slug}.md")),
|
||||
&dir.path()
|
||||
.join(format!(".insomnia/memory/decisions/{slug}.md")),
|
||||
&format!(
|
||||
"---\ncreated_at: {n}\nupdated_at: {n}\nsources: []\nstatus: open\n---\n",
|
||||
n = iso_now()
|
||||
@@ -577,7 +578,8 @@ mod tests {
|
||||
let (dir, linter) = workspace();
|
||||
for slug in ["alpha", "bravo"] {
|
||||
write(
|
||||
&dir.path().join(format!(".insomnia/memory/decisions/{slug}.md")),
|
||||
&dir.path()
|
||||
.join(format!(".insomnia/memory/decisions/{slug}.md")),
|
||||
&format!(
|
||||
"---\ncreated_at: {n}\nupdated_at: {n}\nsources: []\nstatus: open\n---\n",
|
||||
n = iso_now()
|
||||
|
||||
@@ -155,7 +155,11 @@ mod tests {
|
||||
fn non_md_files_ignored() {
|
||||
let (dir, layout) = setup();
|
||||
write_knowledge(dir.path(), "good", "ok", true, "");
|
||||
std::fs::write(dir.path().join(".insomnia/knowledge/note.txt"), "not markdown\n").unwrap();
|
||||
std::fs::write(
|
||||
dir.path().join(".insomnia/knowledge/note.txt"),
|
||||
"not markdown\n",
|
||||
)
|
||||
.unwrap();
|
||||
|
||||
let got = collect_resident_knowledge(&layout);
|
||||
assert_eq!(got.len(), 1);
|
||||
|
||||
@@ -450,7 +450,9 @@ mod tests {
|
||||
}
|
||||
|
||||
fn write_decision(dir: &Path, slug: &str, body: &str) {
|
||||
let path = dir.join(".insomnia/memory/decisions").join(format!("{slug}.md"));
|
||||
let path = dir
|
||||
.join(".insomnia/memory/decisions")
|
||||
.join(format!("{slug}.md"));
|
||||
let content = format!(
|
||||
"---\ncreated_at: {n}\nupdated_at: {n}\nsources: []\nstatus: open\n---\n{body}",
|
||||
n = now()
|
||||
@@ -501,12 +503,14 @@ mod tests {
|
||||
assert_eq!(records.len(), 1);
|
||||
assert_eq!(records[0].slug, "alpha");
|
||||
assert_eq!(records[0].kind, "decision");
|
||||
assert!(records[0]
|
||||
.excerpt
|
||||
.as_deref()
|
||||
.unwrap()
|
||||
.to_lowercase()
|
||||
.contains("ollama"));
|
||||
assert!(
|
||||
records[0]
|
||||
.excerpt
|
||||
.as_deref()
|
||||
.unwrap()
|
||||
.to_lowercase()
|
||||
.contains("ollama")
|
||||
);
|
||||
}
|
||||
|
||||
#[tokio::test]
|
||||
@@ -634,12 +638,14 @@ mod tests {
|
||||
assert_eq!(records[0].kind.as_deref(), Some("policy"));
|
||||
assert_eq!(records[0].description.as_deref(), Some("the policy doc"));
|
||||
assert_eq!(records[0].model_invokation, Some(false));
|
||||
assert!(records[0]
|
||||
.excerpt
|
||||
.as_deref()
|
||||
.unwrap()
|
||||
.to_lowercase()
|
||||
.contains("ollama"));
|
||||
assert!(
|
||||
records[0]
|
||||
.excerpt
|
||||
.as_deref()
|
||||
.unwrap()
|
||||
.to_lowercase()
|
||||
.contains("ollama")
|
||||
);
|
||||
}
|
||||
|
||||
#[tokio::test]
|
||||
|
||||
Reference in New Issue
Block a user