{"record":{"id":"8f9a843ad8379dcf","repo":"affaan-m/ECC","slug":"seeds-must-be-unique","errorCode":null,"errorMessage":"seeds must be unique","messagePattern":"seeds must be unique","errorType":"validation","errorClass":"anyhow::Error","httpStatus":null,"severity":"error","filePath":"ecc2/src/harness_eval.rs","lineNumber":473,"sourceCode":"    pub seed: u64,\n    pub candidate_score: f64,\n    pub baseline_score: f64,\n}\n\npub fn evaluate_paired(\n    evaluator: &mut dyn Evaluator,\n    candidate_id: &str,\n    baseline_id: &str,\n    seeds: &[u64],\n) -> Result<Vec<PairedSample>> {\n    if seeds.is_empty() {\n        bail!(\"at least one explicit seed is required\");\n    }\n    if seeds.len() > 10_000 {\n        bail!(\"seed count exceeds 10000\");\n    }\n    if seeds.iter().copied().collect::<BTreeSet<_>>().len() != seeds.len() {\n        bail!(\"seeds must be unique\");\n    }\n    seeds\n        .iter()\n        .map(|seed| {\n            Ok(PairedSample {\n                seed: *seed,\n                candidate_score: evaluator.evaluate(candidate_id, *seed)?,\n                baseline_score: evaluator.evaluate(baseline_id, *seed)?,\n            })\n        })\n        .collect()\n}\n\n#[derive(Debug, Clone, Copy, PartialEq, Serialize, Deserialize)]\npub struct PromotionPolicy {\n    pub min_samples: usize,\n    pub min_mean_delta: f64,\n    pub min_win_rate: f64,","sourceCodeStart":455,"sourceCodeEnd":491,"githubUrl":"https://github.com/affaan-m/ECC/blob/06c5e118c4d3e6c3b7f9445f973a2194c82de193/ecc2/src/harness_eval.rs#L455-L491","documentation":"evaluate_paired requires all seeds to be distinct, verified by comparing the BTreeSet size to the slice length. Duplicated seeds would bias paired-sample statistics, so they are rejected before evaluation begins.","triggerScenarios":"Thrown at ecc2/src/harness_eval.rs:473 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Deduplicate the seed list before submitting the evaluation.","Check seed generation for collisions (e.g. a broken RNG or repeated literal)."],"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-14T05:17:10.506Z"}