Summary
The gated Qdrant integration scenarios return early and count as passed (not ignored) when their env gate is unset. The default cargo test -p ardur-e2e-tests prints a green N passed; 0 ignored while the durable-memory and hybrid-full-pipeline scenarios never ran — masking a real panic in the durable path.
Evidence
crates/e2e-tests/tests/scenario_qdrant_memory_persistence.rs:33-36 and crates/e2e-tests/tests/scenario_hybrid_memory_full_pipeline.rs:36-38:
if std::env::var("QDRANT_INTEGRATION_TEST").as_deref() != Ok("1") {
eprintln!("skipping …");
return None; // test body then does `let Some(cfg) = gate() else { return; }`
}
- Neither test carries
#[ignore].
Impact
False confidence: a green suite implies durable memory is exercised; it is not, and it in fact panics when actually run.
Suggested fix
Mark these #[ignore = "requires QDRANT_INTEGRATION_TEST=1"] (so the summary shows ignored), and add a CI job that boots Qdrant and runs --ignored.
Summary
The gated Qdrant integration scenarios return early and count as
passed(notignored) when their env gate is unset. The defaultcargo test -p ardur-e2e-testsprints a greenN passed; 0 ignoredwhile the durable-memory and hybrid-full-pipeline scenarios never ran — masking a real panic in the durable path.Evidence
crates/e2e-tests/tests/scenario_qdrant_memory_persistence.rs:33-36andcrates/e2e-tests/tests/scenario_hybrid_memory_full_pipeline.rs:36-38:#[ignore].Impact
False confidence: a green suite implies durable memory is exercised; it is not, and it in fact panics when actually run.
Suggested fix
Mark these
#[ignore = "requires QDRANT_INTEGRATION_TEST=1"](so the summary showsignored), and add a CI job that boots Qdrant and runs--ignored.