{"record":{"id":"94cb046fcf0c2c6e","repo":"affaan-m/ECC","slug":"cli-evidence-evaluator-must-be-recorded-v1","errorCode":null,"errorMessage":"CLI evidence evaluator must be recorded-v1","messagePattern":"CLI evidence evaluator must be recorded-v1","errorType":"validation","errorClass":"anyhow::Error","httpStatus":null,"severity":"error","filePath":"ecc2/src/harness_eval.rs","lineNumber":376,"sourceCode":"    health_candidate: Option<String>,\n    calls: Vec<(String, u64)>,\n}\n\nimpl RecordedEvaluator {\n    #[cfg(test)]\n    pub fn new(scores: BTreeMap<(String, u64), f64>, health_ok: bool) -> Self {\n        Self {\n            name: \"recorded-v1\".into(),\n            scores,\n            health_ok,\n            health_candidate: None,\n            calls: Vec::new(),\n        }\n    }\n\n    pub fn from_evidence(evidence: RecordedEvidence) -> Result<Self> {\n        if evidence.evaluator != \"recorded-v1\" {\n            bail!(\"CLI evidence evaluator must be recorded-v1\");\n        }\n        let score_count = evidence.scores.values().map(BTreeMap::len).sum::<usize>();\n        if score_count > 20_000 || evidence.scores.keys().any(|id| id.len() != 64) {\n            bail!(\"recorded evidence exceeds bounded score or candidate limits\");\n        }\n        if evidence.health.len() != 1 {\n            bail!(\"exactly one candidate-keyed health assertion is required\");\n        }\n        let (health_candidate, health_ok) = evidence\n            .health\n            .into_iter()\n            .next()\n            .context(\"candidate-keyed health evidence is required\")?;\n        let scores = evidence\n            .scores\n            .into_iter()\n            .flat_map(|(id, values)| {\n                values","sourceCodeStart":358,"sourceCodeEnd":394,"githubUrl":"https://github.com/affaan-m/ECC/blob/06c5e118c4d3e6c3b7f9445f973a2194c82de193/ecc2/src/harness_eval.rs#L358-L394","documentation":"RecordedEvaluator::from_evidence only accepts evidence files produced by the recorded-v1 evaluator; any other `evaluator` string in the loaded RecordedEvidence is rejected. It fires when a CLI passes evidence recorded by an incompatible or unknown evaluator version.","triggerScenarios":"Thrown at ecc2/src/harness_eval.rs:376 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Set the CLI evidence evaluator field to `recorded-v1`; other evaluator kinds are not accepted here.","Regenerate the evidence with a recorder that stamps evaluator as recorded-v1."],"exampleFix":null,"handlingStrategy":"validation","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"06c5e118c4d3e6c3b7f9445f973a2194c82de193","analyzedAt":"2026-08-18T11:27:13.915Z","contentChangedAt":null,"schemaVersion":2},"datasetVersion":"2026-09-14T00:17:10.932Z"}