Merge branch 'worktree-agent-a1e5c8cb565255f5b' into master

# Conflicts:
#	docs/traceability.md
This commit is contained in:
2026-08-27 19:21:10 +02:00
29 changed files with 3530 additions and 1768 deletions
+12 -12
View File
@@ -1213,7 +1213,7 @@ fn curve_runs(op: &OpCapability, presentation: &Presentation) -> Option<Vec<Curv
}
let mut runs: Vec<CurveRun> = Vec::new();
for id in presentation.params {
for id in &presentation.params {
// The widget addresses points by offset from the first of its run, so
// a run has to be contiguous in the capability list.
let at = op.params.iter().position(|p| p.id == *id)?;
@@ -4538,15 +4538,15 @@ mod tests {
presentation: Some(Presentation {
// Prefers a gradient handle; this frontend has none, so it
// falls back to the next entry, which the canvas does host.
widgets: &[WidgetKind::GradientHandle, WidgetKind::CropOverlay],
widgets: vec![WidgetKind::GradientHandle, WidgetKind::CropOverlay],
demand: WidgetDemand {
two_dimensional: true,
precise_pointing: false,
},
params: &[ParamId("a"), ParamId("b")],
params: vec![ParamId("a"), ParamId("b")],
}),
params: vec![param("a"), param("b")],
attributes: &[dr_pipeline::Attribute::Tone],
attributes: vec![dr_pipeline::Attribute::Tone],
};
assert!(rows_from(&[on_canvas]).is_empty());
@@ -4670,7 +4670,7 @@ mod tests {
id: ParamId("method"),
label: LocalizedKey("param.invented.method"),
kind: ParamKind::Enum {
variants: &[
variants: vec![
LocalizedKey("param.invented.method.fast"),
LocalizedKey("param.invented.method.exact"),
],
@@ -4680,7 +4680,7 @@ mod tests {
facet: None,
},
],
attributes: &[dr_pipeline::Attribute::Tone],
attributes: vec![dr_pipeline::Attribute::Tone],
};
let rows = rows_from(&[invented]);
@@ -4718,12 +4718,12 @@ mod tests {
label: LocalizedKey("op.grading"),
active: false,
presentation: Some(Presentation {
widgets: &[WidgetKind::ColourWheel],
widgets: vec![WidgetKind::ColourWheel],
demand: WidgetDemand {
two_dimensional: true,
precise_pointing: false,
},
params: &[ParamId("hue"), ParamId("strength")],
params: vec![ParamId("hue"), ParamId("strength")],
}),
params: vec![
ParamCapability {
@@ -4755,7 +4755,7 @@ mod tests {
facet: None,
},
],
attributes: &[dr_pipeline::Attribute::Tone],
attributes: vec![dr_pipeline::Attribute::Tone],
};
assert!(!supported(WidgetKind::ColourWheel), "precondition");
@@ -5204,15 +5204,15 @@ mod tests {
label: LocalizedKey("op.invented_curve"),
active: false,
presentation: Some(Presentation {
widgets: &[WidgetKind::ToneCurve],
widgets: vec![WidgetKind::ToneCurve],
demand: WidgetDemand {
two_dimensional: true,
precise_pointing: true,
},
params: &IDS,
params: IDS.to_vec(),
}),
params: IDS.iter().map(|id| param(*id)).collect(),
attributes: &[dr_pipeline::Attribute::Tone],
attributes: vec![dr_pipeline::Attribute::Tone],
};
let presentation = plain.presentation.as_ref().expect("declares a widget");