fix(compare): sweep per-job bookkeeping (wf_fingerprint, wf_sweep_id, wf_job_index, poster) no longer counts as a setting

Matched and one-axis pairing on a sweep session found zero pairs because every item differed in these per-image fields (same class as the wave-2 config_fp bug).

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
Jason Hoku
2026-11-04 03:10:44 -08:00
co-authored by Claude Fable 5.1
parent c231303179
commit c6e1b94234
2 changed files with 8 additions and 1 deletions
+3 -1
View File
@@ -23,7 +23,9 @@ var CMP_EXCLUDED_KEYS = new Set([
'image_path', 'preview_path', 'video_path', 'hash', 'hires_denoise',
// per-image outcomes / bookkeeping, not settings
'config_fp', 'base_fp', 'metrics', 'preview_of', 'source_relpath',
'florence2_bbox', 'florence2_detection_count', 'florence2_no_detection'
'florence2_bbox', 'florence2_detection_count', 'florence2_no_detection',
// workflow-sweep per-job bookkeeping (wf_params are the settings and stay in)
'wf_fingerprint', 'wf_sweep_id', 'wf_job_index', 'poster'
]);
var CMP_EXCLUDED_RE = /^upscale_|^hires_prompt_|_hash$|^worker|^_/;
+5
View File
@@ -296,3 +296,8 @@ test('cmpSwipeSide decisions', () => {
assert.strictEqual(R.cmpSwipeSide(-200, 0, 200, 1600), null); // width 1600 needs 240 px
assert.strictEqual(R.cmpSwipeSide(-250, 0, 200, 1600), 'a');
});
test('sweep per-job bookkeeping is excluded from the compare ctx (wf_params stay in)', () => {
for (const k of ['wf_fingerprint', 'wf_sweep_id', 'wf_job_index', 'poster']) assert.ok(R.CMP_EXCLUDED_KEYS.has(k), k);
assert.ok(!R.CMP_EXCLUDED_KEYS.has('wf_params'));
});