@ia-qa/self-healing 1.6.7 → 1.6.8

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.
Files changed (61) hide show
  1. package/README.md +94 -0
  2. package/TUTORIAL.md +112 -2
  3. package/assets/logoKawaiiGreenTiny.png +0 -0
  4. package/dist/cli/args.js +4 -2
  5. package/dist/cli/args.js.map +1 -1
  6. package/dist/cli/diff.d.ts +6 -1
  7. package/dist/cli/diff.js +114 -4
  8. package/dist/cli/diff.js.map +1 -1
  9. package/dist/cli/emit.d.ts +71 -0
  10. package/dist/cli/emit.js +150 -0
  11. package/dist/cli/emit.js.map +1 -0
  12. package/dist/cli/fix.js +36 -0
  13. package/dist/cli/fix.js.map +1 -1
  14. package/dist/cli/history.d.ts +12 -0
  15. package/dist/cli/history.js +95 -0
  16. package/dist/cli/history.js.map +1 -0
  17. package/dist/cli/index.js +53 -1
  18. package/dist/cli/index.js.map +1 -1
  19. package/dist/cli/init.js +32 -0
  20. package/dist/cli/init.js.map +1 -1
  21. package/dist/cli/map.js +60 -0
  22. package/dist/cli/map.js.map +1 -1
  23. package/dist/cli/run.js +77 -7
  24. package/dist/cli/run.js.map +1 -1
  25. package/dist/cli/ui.d.ts +16 -0
  26. package/dist/cli/ui.js +275 -0
  27. package/dist/cli/ui.js.map +1 -0
  28. package/dist/evidence.d.ts +130 -0
  29. package/dist/evidence.js +232 -0
  30. package/dist/evidence.js.map +1 -0
  31. package/dist/history.d.ts +145 -0
  32. package/dist/history.js +230 -0
  33. package/dist/history.js.map +1 -0
  34. package/dist/htmlReport.d.ts +47 -0
  35. package/dist/htmlReport.js +76 -1
  36. package/dist/htmlReport.js.map +1 -1
  37. package/dist/junit.d.ts +53 -0
  38. package/dist/junit.js +150 -0
  39. package/dist/junit.js.map +1 -0
  40. package/dist/mcp/server.js +41 -0
  41. package/dist/mcp/server.js.map +1 -1
  42. package/dist/ui/icon.d.ts +41 -0
  43. package/dist/ui/icon.js +115 -0
  44. package/dist/ui/icon.js.map +1 -0
  45. package/dist/ui/lock.d.ts +40 -0
  46. package/dist/ui/lock.js +138 -0
  47. package/dist/ui/lock.js.map +1 -0
  48. package/dist/ui/page.d.ts +1 -0
  49. package/dist/ui/page.js +584 -0
  50. package/dist/ui/page.js.map +1 -0
  51. package/dist/ui/registry.d.ts +62 -0
  52. package/dist/ui/registry.js +139 -0
  53. package/dist/ui/registry.js.map +1 -0
  54. package/dist/ui/server.d.ts +67 -0
  55. package/dist/ui/server.js +604 -0
  56. package/dist/ui/server.js.map +1 -0
  57. package/dist/ui/shortcut.d.ts +90 -0
  58. package/dist/ui/shortcut.js +176 -0
  59. package/dist/ui/shortcut.js.map +1 -0
  60. package/package.json +2 -1
  61. package/skills/ia-qa-heal/SKILL.md +27 -0
@@ -0,0 +1,145 @@
1
+ /**
2
+ * Append-only run history — `.ia-qa/history.jsonl`.
3
+ *
4
+ * Every other verb in this package is *stateless*: `diff` compares two moments
5
+ * and forgets. That is the right shape for a gate, and it is also why the tool
6
+ * can never answer the question a QA lead actually asks — "is this getting
7
+ * better or worse?". A trend is not derivable from any single invocation, so it
8
+ * has to be recorded as it happens; unlike a verdict, it cannot be recomputed
9
+ * after the fact. Every run not written down is a data point that will never
10
+ * exist.
11
+ *
12
+ * Three rules keep this from becoming a dashboard that lies:
13
+ *
14
+ * 1. **It never influences a verdict.** Nothing reads history back into a diff.
15
+ * It is written after the exit code is decided, and a failure to write is
16
+ * swallowed — a full disk must not turn a PASS into a crash.
17
+ * 2. **Every entry carries what makes it comparable** — `source` (`map` vs a
18
+ * live `run` capture) and `coverage` (pages measured / pages mapped). Two
19
+ * entries that disagree on either are not two points on one curve, and
20
+ * `trendable()` below is what refuses to draw them as one.
21
+ * 3. **It is small and deterministic.** Verdicts and counters, no pixels, no
22
+ * element contents. Unlike `_shots/`, committing this file is defensible —
23
+ * it is a few kB of text that changes by one line per run.
24
+ */
25
+ export declare const HISTORY_FILENAME = "history.jsonl";
26
+ /** Entries kept on disk. Older ones are dropped on write — a trend does not need a year. */
27
+ export declare const HISTORY_LIMIT = 500;
28
+ export interface HistoryCounts {
29
+ total: number;
30
+ ok: number;
31
+ renamed: number;
32
+ healable: number;
33
+ ambiguous: number;
34
+ lost: number;
35
+ rebound: number;
36
+ added: number;
37
+ }
38
+ export interface HistoryEntry {
39
+ /** ISO-8601, stamped at write time. */
40
+ ts: string;
41
+ verb: 'diff' | 'run' | 'fix' | 'audit' | 'check';
42
+ /** The verb's own verdict word — PASS/FIX/BLOCK for the drift verbs, OK/WARN/FAIL for `check`. */
43
+ verdict: string;
44
+ /** Element-level counters. Absent for verbs that do not diff (`audit`, `check`, bare `fix`). */
45
+ counts?: HistoryCounts;
46
+ /**
47
+ * How the *current* side was captured. `mixed` means the pages did not agree —
48
+ * the same source mismatch `run` warns about, recorded rather than inferred.
49
+ */
50
+ source?: 'map' | 'run' | 'mixed';
51
+ /** Pages that produced a verdict / pages mapped. A green run over 1 of 40 pages is not a green app. */
52
+ coverage?: {
53
+ measured: number;
54
+ total: number;
55
+ };
56
+ nameDrift?: {
57
+ total: number;
58
+ manual: number;
59
+ };
60
+ /** Only pages that actually drifted, so a 200-page app still writes a short line. */
61
+ pages?: Array<{
62
+ name: string;
63
+ drift: number;
64
+ }>;
65
+ baseUrl?: string;
66
+ commit?: string;
67
+ branch?: string;
68
+ /** What `fix`/`run` wrote to the test files. */
69
+ applied?: {
70
+ replacements: number;
71
+ files: number;
72
+ };
73
+ /** The post-fix re-run of the user's suite, when `run` performed one. */
74
+ verify?: 'PASS' | 'FAIL' | 'SKIPPED';
75
+ /** Findings, for the verbs that produce findings rather than diff rows. */
76
+ findings?: number;
77
+ }
78
+ export declare function historyPath(cwd?: string): string;
79
+ /**
80
+ * Append one entry. Best-effort by design: history is an observation of the run,
81
+ * never part of it, so every failure mode here (read-only checkout, missing
82
+ * directory, full disk, concurrent writer) costs the data point and nothing else.
83
+ */
84
+ export declare function appendHistory(entry: Omit<HistoryEntry, 'ts'> & {
85
+ ts?: string;
86
+ }): void;
87
+ /**
88
+ * Read the history, oldest first. A malformed line is skipped rather than fatal:
89
+ * this file is appended to by every run and may be truncated mid-write by a
90
+ * killed process, and one bad line must not cost the other 499.
91
+ */
92
+ export declare function readHistory(limit?: number, cwd?: string): HistoryEntry[];
93
+ /**
94
+ * Which entries may be drawn as one curve.
95
+ *
96
+ * This is the whole reason the store carries `source`. A `map` baseline and a
97
+ * live `run` capture read the same page differently — the CLI already warns
98
+ * about diffing one against the other — so plotting both on one axis manufactures
99
+ * a trend out of a capture artifact. The same applies to coverage: a run that
100
+ * measured 1 of 40 pages and one that measured 40 are not comparable magnitudes,
101
+ * so entries below `minCoverage` of the largest observed coverage are held out.
102
+ *
103
+ * The excluded entries are returned, not discarded, so the caller can *say* what
104
+ * it left out. A chart that silently drops half its data is the dashboard-that-
105
+ * lies failure mode this function exists to prevent.
106
+ */
107
+ export interface Trend {
108
+ series: HistoryEntry[];
109
+ excluded: HistoryEntry[];
110
+ /** Present when anything was held out — render it next to the chart, never swallow it. */
111
+ reason?: string;
112
+ /** The capture source the series is drawn from. */
113
+ source?: 'map' | 'run' | 'mixed';
114
+ }
115
+ export declare function trendable(entries: HistoryEntry[], minCoverage?: number): Trend;
116
+ export interface HistorySummary {
117
+ runs: number;
118
+ first?: string;
119
+ last?: string;
120
+ lastVerdict?: string;
121
+ /** Share of comparable runs that were not PASS. */
122
+ driftRate: number;
123
+ /** Mean measured/total across the comparable series, or 1 when nothing recorded coverage. */
124
+ coverage: number;
125
+ /** Pages ranked by how many runs they drifted in — where the churn actually lives. */
126
+ hotspots: Array<{
127
+ name: string;
128
+ runs: number;
129
+ drift: number;
130
+ }>;
131
+ /** Rewrites the tool applied across the whole history. */
132
+ healed: number;
133
+ trend: Trend;
134
+ }
135
+ export declare function summarize(entries: HistoryEntry[]): HistorySummary;
136
+ /**
137
+ * Best-effort git stamp. A trend of verdicts is far more useful when a spike can
138
+ * be tied to a commit, and every alternative (asking the user to pass it, reading
139
+ * CI env vars per provider) is worse than shelling out once. Never throws, never
140
+ * blocks: no git, no repo, detached HEAD — the entry is written without it.
141
+ */
142
+ export declare function gitStamp(): {
143
+ commit?: string;
144
+ branch?: string;
145
+ };
@@ -0,0 +1,230 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.HISTORY_LIMIT = exports.HISTORY_FILENAME = void 0;
37
+ exports.historyPath = historyPath;
38
+ exports.appendHistory = appendHistory;
39
+ exports.readHistory = readHistory;
40
+ exports.trendable = trendable;
41
+ exports.summarize = summarize;
42
+ exports.gitStamp = gitStamp;
43
+ const fs = __importStar(require("fs"));
44
+ const path = __importStar(require("path"));
45
+ const config_1 = require("./config");
46
+ /**
47
+ * Append-only run history — `.ia-qa/history.jsonl`.
48
+ *
49
+ * Every other verb in this package is *stateless*: `diff` compares two moments
50
+ * and forgets. That is the right shape for a gate, and it is also why the tool
51
+ * can never answer the question a QA lead actually asks — "is this getting
52
+ * better or worse?". A trend is not derivable from any single invocation, so it
53
+ * has to be recorded as it happens; unlike a verdict, it cannot be recomputed
54
+ * after the fact. Every run not written down is a data point that will never
55
+ * exist.
56
+ *
57
+ * Three rules keep this from becoming a dashboard that lies:
58
+ *
59
+ * 1. **It never influences a verdict.** Nothing reads history back into a diff.
60
+ * It is written after the exit code is decided, and a failure to write is
61
+ * swallowed — a full disk must not turn a PASS into a crash.
62
+ * 2. **Every entry carries what makes it comparable** — `source` (`map` vs a
63
+ * live `run` capture) and `coverage` (pages measured / pages mapped). Two
64
+ * entries that disagree on either are not two points on one curve, and
65
+ * `trendable()` below is what refuses to draw them as one.
66
+ * 3. **It is small and deterministic.** Verdicts and counters, no pixels, no
67
+ * element contents. Unlike `_shots/`, committing this file is defensible —
68
+ * it is a few kB of text that changes by one line per run.
69
+ */
70
+ exports.HISTORY_FILENAME = 'history.jsonl';
71
+ /** Entries kept on disk. Older ones are dropped on write — a trend does not need a year. */
72
+ exports.HISTORY_LIMIT = 500;
73
+ function historyPath(cwd = (0, config_1.baseDir)()) {
74
+ return path.join(cwd, config_1.CONFIG_DIR, exports.HISTORY_FILENAME);
75
+ }
76
+ /**
77
+ * Append one entry. Best-effort by design: history is an observation of the run,
78
+ * never part of it, so every failure mode here (read-only checkout, missing
79
+ * directory, full disk, concurrent writer) costs the data point and nothing else.
80
+ */
81
+ function appendHistory(entry) {
82
+ const file = historyPath();
83
+ const full = { ts: entry.ts ?? new Date().toISOString(), ...entry };
84
+ try {
85
+ fs.mkdirSync(path.dirname(file), { recursive: true });
86
+ fs.appendFileSync(file, JSON.stringify(full) + '\n', 'utf8');
87
+ truncate(file);
88
+ }
89
+ catch {
90
+ /* history is a courtesy, never a gate */
91
+ }
92
+ }
93
+ /** Keep the file bounded without a second config knob nobody would ever tune. */
94
+ function truncate(file) {
95
+ try {
96
+ const lines = fs.readFileSync(file, 'utf8').split('\n').filter(Boolean);
97
+ if (lines.length <= exports.HISTORY_LIMIT + 100)
98
+ return;
99
+ fs.writeFileSync(file, lines.slice(-exports.HISTORY_LIMIT).join('\n') + '\n', 'utf8');
100
+ }
101
+ catch {
102
+ /* as above */
103
+ }
104
+ }
105
+ /**
106
+ * Read the history, oldest first. A malformed line is skipped rather than fatal:
107
+ * this file is appended to by every run and may be truncated mid-write by a
108
+ * killed process, and one bad line must not cost the other 499.
109
+ */
110
+ function readHistory(limit = exports.HISTORY_LIMIT, cwd) {
111
+ const file = cwd ? path.join(cwd, config_1.CONFIG_DIR, exports.HISTORY_FILENAME) : historyPath();
112
+ let raw;
113
+ try {
114
+ raw = fs.readFileSync(file, 'utf8');
115
+ }
116
+ catch {
117
+ return [];
118
+ }
119
+ const out = [];
120
+ for (const line of raw.split('\n')) {
121
+ if (!line.trim())
122
+ continue;
123
+ try {
124
+ const parsed = JSON.parse(line);
125
+ if (parsed && typeof parsed.ts === 'string' && typeof parsed.verb === 'string')
126
+ out.push(parsed);
127
+ }
128
+ catch {
129
+ /* skip */
130
+ }
131
+ }
132
+ return out.slice(-limit);
133
+ }
134
+ function trendable(entries, minCoverage = 0.5) {
135
+ const drift = entries.filter((e) => e.counts && (e.verb === 'diff' || e.verb === 'run'));
136
+ if (drift.length === 0)
137
+ return { series: [], excluded: [] };
138
+ // Dominant capture source wins the axis; the minority is held out rather than
139
+ // averaged in. Ties go to the most recent, which is what the user is looking at.
140
+ const bySource = new Map();
141
+ for (const e of drift)
142
+ bySource.set(e.source ?? 'map', (bySource.get(e.source ?? 'map') ?? 0) + 1);
143
+ let source = 'map';
144
+ let best = -1;
145
+ for (const [s, n] of bySource) {
146
+ if (n > best) {
147
+ best = n;
148
+ source = s;
149
+ }
150
+ }
151
+ const sourceKept = drift.filter((e) => (e.source ?? 'map') === source);
152
+ const sourceDropped = drift.filter((e) => (e.source ?? 'map') !== source);
153
+ const maxCov = Math.max(...sourceKept.map((e) => (e.coverage ? e.coverage.measured / Math.max(1, e.coverage.total) : 1)));
154
+ const series = sourceKept.filter((e) => {
155
+ if (!e.coverage)
156
+ return true;
157
+ return e.coverage.measured / Math.max(1, e.coverage.total) >= maxCov * minCoverage;
158
+ });
159
+ const covDropped = sourceKept.filter((e) => !series.includes(e));
160
+ const excluded = [...sourceDropped, ...covDropped];
161
+ const parts = [];
162
+ if (sourceDropped.length > 0) {
163
+ parts.push(`${sourceDropped.length} run${sourceDropped.length === 1 ? '' : 's'} captured a different way ` +
164
+ `(a \`map\` capture and a live suite capture read a page differently)`);
165
+ }
166
+ if (covDropped.length > 0) {
167
+ parts.push(`${covDropped.length} run${covDropped.length === 1 ? '' : 's'} covered too few pages to compare`);
168
+ }
169
+ return {
170
+ series,
171
+ excluded,
172
+ source,
173
+ reason: parts.length > 0 ? `Left out of the trend: ${parts.join('; ')}.` : undefined,
174
+ };
175
+ }
176
+ function summarize(entries) {
177
+ const trend = trendable(entries);
178
+ const s = trend.series;
179
+ const notPass = s.filter((e) => e.verdict !== 'PASS').length;
180
+ const withCov = s.filter((e) => e.coverage);
181
+ const coverage = withCov.length === 0
182
+ ? 1
183
+ : withCov.reduce((n, e) => n + e.coverage.measured / Math.max(1, e.coverage.total), 0) / withCov.length;
184
+ const pageStats = new Map();
185
+ for (const e of s) {
186
+ for (const p of e.pages ?? []) {
187
+ const cur = pageStats.get(p.name) ?? { runs: 0, drift: 0 };
188
+ cur.runs += 1;
189
+ cur.drift += p.drift;
190
+ pageStats.set(p.name, cur);
191
+ }
192
+ }
193
+ const hotspots = [...pageStats.entries()]
194
+ .map(([name, v]) => ({ name, ...v }))
195
+ .sort((a, b) => b.drift - a.drift || b.runs - a.runs)
196
+ .slice(0, 5);
197
+ return {
198
+ runs: entries.length,
199
+ first: entries[0]?.ts,
200
+ last: entries[entries.length - 1]?.ts,
201
+ lastVerdict: entries[entries.length - 1]?.verdict,
202
+ driftRate: s.length === 0 ? 0 : notPass / s.length,
203
+ coverage,
204
+ hotspots,
205
+ healed: entries.reduce((n, e) => n + (e.applied?.replacements ?? 0), 0),
206
+ trend,
207
+ };
208
+ }
209
+ /**
210
+ * Best-effort git stamp. A trend of verdicts is far more useful when a spike can
211
+ * be tied to a commit, and every alternative (asking the user to pass it, reading
212
+ * CI env vars per provider) is worse than shelling out once. Never throws, never
213
+ * blocks: no git, no repo, detached HEAD — the entry is written without it.
214
+ */
215
+ function gitStamp() {
216
+ // eslint-disable-next-line @typescript-eslint/no-var-requires
217
+ const { execFileSync } = require('child_process');
218
+ const run = (args) => {
219
+ try {
220
+ const out = execFileSync('git', args, { encoding: 'utf8', stdio: ['ignore', 'pipe', 'ignore'], timeout: 2000 });
221
+ const v = out.trim();
222
+ return v === '' ? undefined : v;
223
+ }
224
+ catch {
225
+ return undefined;
226
+ }
227
+ };
228
+ return { commit: run(['rev-parse', '--short', 'HEAD']), branch: run(['rev-parse', '--abbrev-ref', 'HEAD']) };
229
+ }
230
+ //# sourceMappingURL=history.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"history.js","sourceRoot":"","sources":["../src/history.ts"],"names":[],"mappings":"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"}
@@ -26,6 +26,47 @@ export interface FixOutcome {
26
26
  edits: AppliedEdit[];
27
27
  verify?: VerifyResult;
28
28
  }
29
+ /**
30
+ * Highlighted crops for the rows a human must decide, precomputed by the caller.
31
+ *
32
+ * Passed in as *data* rather than looked up here for the same reason everything
33
+ * else is: this module renders, it does not touch the filesystem. `css` carries
34
+ * one `background-image` rule per page, so a page's JPEG is embedded once no
35
+ * matter how many thumbnails point into it.
36
+ */
37
+ export interface ReportEvidence {
38
+ /** Page-image CSS rules, emitted once into the report's stylesheet. */
39
+ css: string;
40
+ /** page name → (row selector → the crops to show for it). */
41
+ rows: Record<string, Record<string, RowEvidenceView>>;
42
+ }
43
+ export interface CropView {
44
+ cls: string;
45
+ width: number;
46
+ height: number;
47
+ scale: number;
48
+ offsetX: number;
49
+ offsetY: number;
50
+ hi: {
51
+ left: number;
52
+ top: number;
53
+ width: number;
54
+ height: number;
55
+ };
56
+ }
57
+ export interface RowEvidenceView {
58
+ nowAt?: {
59
+ selector: string;
60
+ label: string;
61
+ crop: CropView;
62
+ };
63
+ candidates: Array<{
64
+ selector: string;
65
+ label: string;
66
+ crop: CropView;
67
+ }>;
68
+ note?: string;
69
+ }
29
70
  export interface DriftReportMeta {
30
71
  baselineName: string;
31
72
  currentName: string;
@@ -53,6 +94,12 @@ export interface DriftReportMeta {
53
94
  currentCapturedAt?: string;
54
95
  /** Present only for a post-fix report (`run`): the rewrites applied and whether the re-run passed. */
55
96
  outcome?: FixOutcome;
97
+ /**
98
+ * Highlighted crops for `ambiguous` / `rebound` rows, when the mapping was
99
+ * captured with `map --screenshots`. Illustration is what the page thumbnails
100
+ * above are; this is the part a decision is actually taken on.
101
+ */
102
+ evidence?: ReportEvidence;
56
103
  }
57
104
  export declare function renderDriftReportHtml(agg: DirReport, reports: Array<{
58
105
  name: string;
@@ -73,6 +73,27 @@ function usageNote(usage, selector) {
73
73
  const files = new Set(sites.map((s) => s.file)).size;
74
74
  return `<span class="use use-hit">used ${sites.length}× · ${files} file${files === 1 ? '' : 's'}</span>`;
75
75
  }
76
+ /**
77
+ * The call sites that will break, as `file:line`.
78
+ *
79
+ * The badge above says *how many*; a count is one more thing to eyeball, and the
80
+ * inventory has held the exact lines all along — `usage.json` records them and
81
+ * the terminal already prints them for name drift. Not printing them here made
82
+ * the report the one surface that knew where the breakage was and would not say.
83
+ * Capped, because a selector used sixty times is a list nobody reads.
84
+ */
85
+ const MAX_SITES_SHOWN = 6;
86
+ function usageSites(usage, selector) {
87
+ if (!usage)
88
+ return '';
89
+ const sites = usage.selectors[selector];
90
+ if (!sites || sites.length === 0)
91
+ return '';
92
+ const shown = sites.slice(0, MAX_SITES_SHOWN);
93
+ const more = sites.length - shown.length;
94
+ const list = shown.map((s) => `<code>${esc(s.file)}:${s.line}</code>`).join(' ');
95
+ return `<div class="sites">📇 ${list}${more > 0 ? ` <span>+${more} more</span>` : ''}</div>`;
96
+ }
76
97
  const COUNT_FIELDS = [
77
98
  { key: 'ok', label: 'OK', tone: 'pass' },
78
99
  { key: 'renamed', label: 'Renamed', tone: 'info' },
@@ -82,6 +103,41 @@ const COUNT_FIELDS = [
82
103
  { key: 'rebound', label: 'Rebound', tone: 'fail' },
83
104
  { key: 'added', label: 'New', tone: 'info' },
84
105
  ];
106
+ function cropHtml(c) {
107
+ return (`<div class="crop" style="width:${c.width}px;height:${c.height}px">` +
108
+ `<div class="crop-inner ${esc(c.cls)}" style="width:${Math.round(c.width / c.scale)}px;height:${Math.round(c.height / c.scale)}px;` +
109
+ `transform:scale(${c.scale.toFixed(4)});background-position:-${c.offsetX}px -${c.offsetY}px">` +
110
+ `<div class="crop-hi" style="left:${c.hi.left}px;top:${c.hi.top}px;width:${c.hi.width}px;height:${c.hi.height}px"></div>` +
111
+ `</div></div>`);
112
+ }
113
+ function figure(item) {
114
+ return (`<figure class="evid-fig">${cropHtml(item.crop)}` +
115
+ `<figcaption class="evid-cap"><b>${esc(item.label)}</b><code>${esc(item.selector)}</code></figcaption></figure>`);
116
+ }
117
+ /**
118
+ * The evidence block under a drifted row. Absent evidence renders nothing at
119
+ * all — no empty frame, no broken-image icon — so a report from a project that
120
+ * never ran `map --screenshots` is identical to one from before this existed.
121
+ */
122
+ function evidenceHtml(ev) {
123
+ if (!ev)
124
+ return '';
125
+ if (ev.note)
126
+ return `<div class="evid"><div class="evid-note">${esc(ev.note)}</div></div>`;
127
+ const blocks = [];
128
+ if (ev.nowAt) {
129
+ blocks.push(`<div class="evid-title">⚠️ What that selector points at today</div>` +
130
+ `<div class="evid-row">${figure(ev.nowAt)}</div>`);
131
+ }
132
+ if (ev.candidates.length > 0) {
133
+ const n = ev.candidates.length;
134
+ blocks.push(`<div class="evid-title">Which one did the test mean? ${n} candidate${n === 1 ? '' : 's'} on the page now</div>` +
135
+ `<div class="evid-row">${ev.candidates.map(figure).join('')}</div>`);
136
+ }
137
+ if (blocks.length === 0)
138
+ return '';
139
+ return `<div class="evid">${blocks.join('')}</div>`;
140
+ }
85
141
  function plural(n, one) {
86
142
  return `${n} ${one}${n === 1 ? '' : 's'}`;
87
143
  }
@@ -332,6 +388,22 @@ const REPORT_CSS = `
332
388
  .use{margin-left:auto;font-size:11px;padding:1px 8px;border-radius:99px;white-space:nowrap}
333
389
  .use-hit{background:#8b5cf618;color:#c4b5fd;border:1px solid #8b5cf633}
334
390
  .use-none{background:#3f3f4633;color:var(--muted);border:1px solid var(--border)}
391
+ .evid{margin-top:10px;border-top:1px dashed var(--border);padding-top:10px}
392
+ .evid-title{font-size:12px;color:var(--orange2);font-weight:700;margin-bottom:8px}
393
+ .evid-row{display:flex;flex-wrap:wrap;gap:14px}
394
+ .evid-fig{margin:0;max-width:100%}
395
+ .crop{position:relative;overflow:hidden;border:1px solid var(--border);border-radius:8px;background:var(--bg)}
396
+ .crop-inner{position:absolute;top:0;left:0;transform-origin:0 0;background-repeat:no-repeat}
397
+ /* The 9999px shadow is the dimming veil: everything outside the target is
398
+ darkened by the same element that outlines it, so a repeated control can
399
+ never be shown without saying which one is meant. */
400
+ .crop-hi{position:absolute;outline:2px solid var(--orange2);box-shadow:0 0 0 9999px rgba(0,0,0,.55);border-radius:2px}
401
+ .evid-cap{margin-top:6px;font-size:11.5px;color:var(--muted);max-width:360px}
402
+ .evid-cap b{color:var(--text);font-weight:600}
403
+ .evid-cap code{display:block;margin-top:2px;font-size:10.5px;color:var(--orange2);word-break:break-all}
404
+ .evid-note{font-size:12px;color:var(--muted);font-style:italic}
405
+ .sites{margin-top:6px;font-size:11.5px;color:var(--muted)}
406
+ .sites code{background:var(--bg);border:1px solid var(--border);border-radius:5px;padding:0 5px;color:#c4b5fd}
335
407
  .hint{color:var(--muted);font-size:12.5px;margin-top:10px}
336
408
  .note p{color:var(--muted);font-size:13px}
337
409
  .disclaimer{background:#f59e0b14;border:1px solid #f59e0b40;border-radius:10px;padding:11px 14px;color:#fcd34d;font-size:12.5px;line-height:1.55}
@@ -474,11 +546,14 @@ function renderDriftReportHtml(agg, reports, meta) {
474
546
  ? `<div class="rebound">⚠️ that selector now resolves to ${esc(r.role)} "${esc(r.reboundTo)}" — green today, clicking the wrong element.</div>`
475
547
  : '';
476
548
  const plain = statusPlain(r.status);
549
+ const ev = evidenceHtml(meta.evidence?.rows[name]?.[r.selector]);
477
550
  return `<div class="drift-row">
478
551
  <div class="drift-head"><span class="badge badge-${m.tone}">${m.icon} ${esc(m.label)}</span><span class="drift-label">${esc(rowLabel(r))}</span>${usageNote(meta.usage, r.selector)}</div>
479
552
  <div class="drift-body">${rowTransition(r)}</div>
553
+ ${usageSites(meta.usage, r.selector)}
480
554
  ${plain ? `<div class="plain">${plain}</div>` : ''}
481
555
  ${rebound}
556
+ ${ev}
482
557
  </div>`;
483
558
  })
484
559
  .join('');
@@ -500,7 +575,7 @@ function renderDriftReportHtml(agg, reports, meta) {
500
575
  <meta charset="UTF-8">
501
576
  <meta name="viewport" content="width=device-width,initial-scale=1">
502
577
  <title>IA-QA — Selector drift report</title>
503
- <style>${REPORT_CSS}</style>
578
+ <style>${REPORT_CSS}${meta.evidence?.css ?? ''}</style>
504
579
  </head>
505
580
  <body>
506
581
  ${reportHeader('Selector drift report', headerMeta(meta, generated))}
@@ -1 +1 @@
1
- {"version":3,"file":"htmlReport.js","sourceRoot":"","sources":["../src/htmlReport.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"htmlReport.js","sourceRoot":"","sources":["../src/htmlReport.ts"],"names":[],"mappings":"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"}