argusqa-os 9.5.9 → 9.6.0
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/README.md +384 -1112
- package/glama.json +5 -1
- package/package.json +3 -3
- package/src/cli/init.js +8 -4
- package/src/mcp-server.js +64 -2
- package/src/orchestration/dispatcher.js +1 -1
- package/src/orchestration/env-comparison.js +0 -1
- package/src/orchestration/orchestrator.js +5 -5
- package/src/orchestration/report-processor.js +1 -1
- package/src/orchestration/slack-notifier.js +1 -1
- package/src/orchestration/watch-mode.js +0 -4
- package/src/server/index.js +24 -2
- package/src/server/slash-command-handler.js +0 -1
- package/src/utils/a11y-deep-analyzer.js +0 -2
- package/src/utils/baseline-manager.js +3 -3
- package/src/utils/codebase-analyzer.js +3 -3
- package/src/utils/content-analyzer.js +1 -1
- package/src/utils/flow-runner.js +4 -4
- package/src/utils/github-reporter.js +1 -2
- package/src/utils/har-recorder.js +19 -14
- package/src/utils/pr-diff-analyzer.js +121 -0
- package/src/utils/route-discoverer.js +1 -1
- package/src/utils/security-analyzer.js +1 -1
- package/src/utils/seo-analyzer.js +1 -1
- package/src/utils/session-persistence.js +1 -1
- package/src/utils/visual-diff-analyzer.js +9 -4
|
@@ -141,13 +141,18 @@ export async function analyzeVisualRegression(browser, url, opts = {}) {
|
|
|
141
141
|
const baselinePath = path.join(baselineDir, `${slug}.png`);
|
|
142
142
|
|
|
143
143
|
// ── 3. First run: save baseline ─────────────────────────────────────────────
|
|
144
|
-
if (
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
144
|
+
// Use flag:'wx' for atomic create — throws EEXIST if baseline was written concurrently (TOCTOU-safe).
|
|
145
|
+
let baselineIsNew = false;
|
|
146
|
+
try {
|
|
147
|
+
fs.writeFileSync(baselinePath, currentBuf, { flag: 'wx' });
|
|
148
|
+
baselineIsNew = true;
|
|
149
|
+
} catch (err) {
|
|
150
|
+
if (err.code !== 'EEXIST') {
|
|
148
151
|
logger.warn(`[ARGUS] visual-diff: could not write baseline ${baselinePath}: ${err.message}`);
|
|
149
152
|
return findings;
|
|
150
153
|
}
|
|
154
|
+
}
|
|
155
|
+
if (baselineIsNew) {
|
|
151
156
|
|
|
152
157
|
findings.push({
|
|
153
158
|
type: 'visual_baseline_created',
|