@hamp10/agentforge 0.2.24 → 0.2.25
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json
CHANGED
|
@@ -648,8 +648,8 @@ try {
|
|
|
648
648
|
));
|
|
649
649
|
assert.match(
|
|
650
650
|
cli._detectScreenshotVisualDiscontinuities(seamPng).join('\n'),
|
|
651
|
-
/
|
|
652
|
-
'screenshot discontinuity scan should catch large
|
|
651
|
+
/screenshot continuity break/i,
|
|
652
|
+
'screenshot discontinuity scan should catch large rectangular visual discontinuities'
|
|
653
653
|
);
|
|
654
654
|
const subtlePartialSurfacePng = path.join(fixture.repo, 'subtle-partial-surface.png');
|
|
655
655
|
writeRgbPng(subtlePartialSurfacePng, 1000, 700, (x, y) => {
|
|
@@ -658,8 +658,8 @@ try {
|
|
|
658
658
|
});
|
|
659
659
|
assert.match(
|
|
660
660
|
cli._detectScreenshotVisualDiscontinuities(subtlePartialSurfacePng).join('\n'),
|
|
661
|
-
/partial-surface
|
|
662
|
-
'screenshot discontinuity scan should catch large subtle partial-surface
|
|
661
|
+
/partial-surface screenshot continuity break/i,
|
|
662
|
+
'screenshot discontinuity scan should catch large subtle partial-surface visual discontinuities'
|
|
663
663
|
);
|
|
664
664
|
} finally {
|
|
665
665
|
rmSync(fixture.repo, { recursive: true, force: true });
|
|
@@ -690,13 +690,13 @@ assert.match(
|
|
|
690
690
|
);
|
|
691
691
|
assert.match(
|
|
692
692
|
openClawSource,
|
|
693
|
-
/
|
|
694
|
-
'screenshot discontinuity detection should fail large
|
|
693
|
+
/visible screenshot continuity break across a dominant UI surface/i,
|
|
694
|
+
'screenshot discontinuity detection should fail large visual continuity breaks'
|
|
695
695
|
);
|
|
696
696
|
assert.match(
|
|
697
697
|
openClawSource,
|
|
698
|
-
/partial-surface
|
|
699
|
-
'screenshot discontinuity detection should fail subtle partial-surface
|
|
698
|
+
/partial-surface screenshot continuity break/i,
|
|
699
|
+
'screenshot discontinuity detection should fail subtle partial-surface visual continuity breaks'
|
|
700
700
|
);
|
|
701
701
|
assert.match(
|
|
702
702
|
openClawSource,
|
|
@@ -958,6 +958,16 @@ assert.match(
|
|
|
958
958
|
/const minRatio = isLargeText \? 3 : 4\.5;/,
|
|
959
959
|
'control/link contrast checks should use text-size-aware WCAG thresholds'
|
|
960
960
|
);
|
|
961
|
+
assert.match(
|
|
962
|
+
dashboardSource,
|
|
963
|
+
/typingEl\.dataset\.startedAt\s*=\s*startedAt/,
|
|
964
|
+
'live guide insertion should preserve the active feed start time for chronological reload ordering'
|
|
965
|
+
);
|
|
966
|
+
assert.match(
|
|
967
|
+
dashboardSource,
|
|
968
|
+
/time:\s*startedAt/,
|
|
969
|
+
'completed live feeds should save with their start time so guide bubbles appear after the feed they interrupted'
|
|
970
|
+
);
|
|
961
971
|
assert.match(
|
|
962
972
|
defaultGuidesSource,
|
|
963
973
|
/anything that reads as rendering damage rather than deliberate design/i,
|
package/src/OpenClawCLI.js
CHANGED
|
@@ -3128,7 +3128,7 @@ export class OpenClawCLI extends EventEmitter {
|
|
|
3128
3128
|
horizontal.y < height * 0.94;
|
|
3129
3129
|
if (!awayFromViewportEdge) continue;
|
|
3130
3130
|
warnings.push([
|
|
3131
|
-
`
|
|
3131
|
+
`visible screenshot continuity break across a dominant UI surface near x=${vertical.x}, y=${horizontal.y}`,
|
|
3132
3132
|
`(vertical span y=${vertical.minY}-${vertical.maxY}, horizontal span x=${horizontal.minX}-${horizontal.maxX})`,
|
|
3133
3133
|
].join(' '));
|
|
3134
3134
|
break;
|
|
@@ -3144,7 +3144,7 @@ export class OpenClawCLI extends EventEmitter {
|
|
|
3144
3144
|
edge.average >= 38
|
|
3145
3145
|
);
|
|
3146
3146
|
if (dominantVertical) {
|
|
3147
|
-
warnings.push(`
|
|
3147
|
+
warnings.push(`visible vertical screenshot continuity break across a dominant UI surface near x=${dominantVertical.x} spanning y=${dominantVertical.minY}-${dominantVertical.maxY}`);
|
|
3148
3148
|
}
|
|
3149
3149
|
}
|
|
3150
3150
|
|
|
@@ -3197,7 +3197,7 @@ export class OpenClawCLI extends EventEmitter {
|
|
|
3197
3197
|
}
|
|
3198
3198
|
|
|
3199
3199
|
if (partialHorizontal) {
|
|
3200
|
-
warnings.push(`
|
|
3200
|
+
warnings.push(`visible partial-surface screenshot continuity break near y=${partialHorizontal.y}, running from x=${partialHorizontal.start} to x=${partialHorizontal.end}`);
|
|
3201
3201
|
}
|
|
3202
3202
|
}
|
|
3203
3203
|
|
|
@@ -3249,7 +3249,7 @@ export class OpenClawCLI extends EventEmitter {
|
|
|
3249
3249
|
}
|
|
3250
3250
|
|
|
3251
3251
|
if (partialVertical) {
|
|
3252
|
-
warnings.push(`
|
|
3252
|
+
warnings.push(`visible partial-surface screenshot continuity break near x=${partialVertical.x}, running from y=${partialVertical.start} to y=${partialVertical.end}`);
|
|
3253
3253
|
}
|
|
3254
3254
|
}
|
|
3255
3255
|
return warnings;
|
|
@@ -3850,7 +3850,7 @@ export class OpenClawCLI extends EventEmitter {
|
|
|
3850
3850
|
? `${visualWarningPrefix}: ${summary.brokenImages.length} visible image(s) failed to load: ${summary.brokenImages.map(img => img.alt || img.src || '(unlabeled image)').join(', ')}. ${visualWarningTail}`
|
|
3851
3851
|
: '';
|
|
3852
3852
|
const screenshotDiscontinuityWarning = screenshotDiscontinuityWarnings.length > 0
|
|
3853
|
-
? `${visualWarningPrefix}: screenshot
|
|
3853
|
+
? `${visualWarningPrefix}: screenshot pixel scan flagged visible continuity issue(s): ${screenshotDiscontinuityWarnings.slice(0, 2).join('; ')}. Inspect the screenshot and source to identify the actual rendering cause, then rework the affected layout/background/layering so the changed screen reads as intentional. Verify the page again. ${visualWarningTail}`
|
|
3854
3854
|
: '';
|
|
3855
3855
|
const reportLowContrastControls = options?.afterMutation && isScopedBrowserTarget && explicitScopeSlugs.length > 0
|
|
3856
3856
|
? (summary.lowContrastControls || []).filter(c => !c.chrome)
|