@ia-qa/pal 0.3.0 → 0.4.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 CHANGED
@@ -60,6 +60,17 @@ ia-qa-pal tour — https://app.example · level 1 (with a login)
60
60
 
61
61
  The time estimate only appears once a batch has been explored on your app: it is the pace measured there, never a constant.
62
62
 
63
+ ## What fails a tour, and what does not
64
+
65
+ - **Drift on what a page shows when it loads** — a control lost, ambiguous, or a selector now reaching another element — fails the tour.
66
+ - **Drift on what is reached only by clicking** — a profile opened from a ranking, a button that exists in one state of the app — is listed under *To decide* with the clicks that reached it, and does **not** fail the tour: on an app with live data it may simply depend on what the click landed on. `--strict` makes it fail too.
67
+ - **A label that differs only by a number** (`Cart (3)` → `Cart (5)`, `Activity60` → `Activity30`) comes with the `nameMask` to paste into `.ia-qa/config.json`; the element stays under contract, only its label stops being compared.
68
+ - **A change you intended**: review it, then make it the reference for those pages only —
69
+
70
+ ```bash
71
+ npx ia-qa-pal accept settings checkout # or --all: every page the last tour reported
72
+ ```
73
+
63
74
  ## With your test suite
64
75
 
65
76
  Declare it at setup (`--tests tests/`, or answer yes when the tour finds it) and every tour also reads it:
@@ -96,6 +107,7 @@ One tour runs per project; a second is refused while the first is alive, and a t
96
107
  | `--more` | explore the next batch in depth instead of a regression tour |
97
108
  | `--suite` | also run your test command once, with the capture hook |
98
109
  | `--background` | start detached and return at once |
110
+ | `--strict` | also fail on drift reached only by clicking |
99
111
  | `--batch <n>` | pages per depth batch (default 10) |
100
112
  | `--json` | the whole report as one JSON document on stdout; progress stays on stderr |
101
113
  | `--session <file>` | a Playwright `storageState` to reuse |
@@ -106,7 +118,7 @@ One tour runs per project; a second is refused while the first is alive, and a t
106
118
  | code | meaning |
107
119
  |---|---|
108
120
  | `0` | nothing needs a decision (warnings and proposed repairs never fail a tour) |
109
- | `1` | a dead link, drift that blocks (an element lost, ambiguous, or a selector now pointing at another element), or your suite failed when run with `--suite` |
121
+ | `1` | a dead link, drift on what pages show on load (an element lost, ambiguous, or a selector now pointing at another element), a test about to act on the wrong element, or your suite failed when run with `--suite` |
110
122
  | `2` | could not answer: not set up, nothing could be mapped, the tour refused to run, or one is already running |
111
123
 
112
124
  Read `2` as "no answer", never as "the app is broken".
package/TUTORIAL.md CHANGED
@@ -96,10 +96,10 @@ The report has at most four sections, and each one appears only when it holds so
96
96
 
97
97
  | section | what it holds | what you do |
98
98
  |---|---|---|
99
- | 🔴 **Broken in the app** | links your app itself answers with an error | fix the link |
100
- | ⛔ **To decide** | drift that blocks, and findings seen for the first time | a person looks |
101
- | 🔧 **Ready to repair** | *(coming with test-suite support)* | |
102
- | 🔍 **Not seen** | pages not explored, not mapped, only partly explored, links it could not verify | decide whether it matters |
99
+ | 🔴 **Broken** | links your app itself answers with an error; your suite failing under `--suite` | fix it |
100
+ | ⛔ **To decide** | drift, and findings seen for the first time | a person looks — then fixes, or `accept`s |
101
+ | 🔧 **Ready to repair** | with your test suite declared: selector rewrites for your tests (section 7) | review, then apply with `ia-qa-heal fix` |
102
+ | 🔍 **Not seen** | pages not explored, not mapped, not compared, only partly explored, links it could not verify, pages your suite never visits | decide whether it matters |
103
103
 
104
104
  Three things are worth knowing about this first report:
105
105
 
@@ -128,14 +128,46 @@ ia-qa-pal tour — https://www.nodemented.com · level 1 (with a login)
128
128
 
129
129
  Each page is captured again **the way its baseline was captured** — on the surface, or opened in depth — and compared with it. A finding already reported is counted, not listed again: a list that never shrinks stops being read by the third tour.
130
130
 
131
- When something moved (illustrative):
131
+ When something moved — a real tour of a browser game with live data, five minutes after its baseline:
132
132
 
133
133
  ```
134
- ⛔ BLOCK · 1937 ok · 0 renamed · 1 lost · 0 ambiguous · 0 rebound
134
+ ia-qa-pal tour — https://project-1jpdv.vercel.app · level 2 (with your test suite)
135
+ ⛔ BLOCK · 1471 ok · 0 renamed · 2 lost · 0 ambiguous · 1 rebound
136
+ 17 of 17 pages under contract · 10 explored in depth of 16 pages with closed controls
135
137
 
136
138
  ⛔ To decide
137
- drift settings: 1 lost · 0 ambiguous · 0 rebound
139
+ drift jeu-journal: button "📡Activité60" rebound
140
+ behind 2 elements reached only by clicking changed — they may depend on the data the click lands on:
141
+ jeu-chantier: button "👽 Intercepter" lost, after "🌌Galaxie"
142
+ jeu-chantier: button "Reset" lost, after "🌌Galaxie"
143
+ If these changes are intended: ia-qa-pal accept jeu-journal jeu-chantier
144
+ 61 warnings already reported — not listed again.
145
+
146
+ 💡 1 label differs only by a number — a counter or a clock that changes on its own, and it is holding the verdict.
147
+ e.g. "📡Activité60" → "📡Activité30". To stop comparing those labels (the element stays under contract), add to .ia-qa/config.json:
148
+ "nameMask": ["📡Activité*"]
149
+ ```
150
+
151
+ Two kinds of drift, and they do not weigh the same:
152
+
153
+ - **What a page shows when it loads** fails the tour. Here, `📡Activité60` is a counter that moved on its own — the 💡 line gives the `nameMask` to paste once.
154
+ - **What is reached only by clicking** is listed with the clicks that reached it and does **not** fail the tour. "Intercepter" exists only while the game has something to intercept: the tour did nothing wrong, the data changed. `--strict` makes these fail too.
155
+
156
+ With the `nameMask` added, the next tour of the same game:
157
+
138
158
  ```
159
+ ⚠️ Drift only behind interaction — not failing the tour (--strict would) · 1472 ok · 0 renamed · 2 lost · 0 ambiguous · 0 rebound
160
+ ```
161
+
162
+ and it exits `0`, still listing the two buttons under *To decide*.
163
+
164
+ When a change **is** intended — you renamed a button, removed a page section — review it and make it the reference for those pages only:
165
+
166
+ ```bash
167
+ npx ia-qa-pal accept jeu-chantier # or --all: every page the last tour reported
168
+ ```
169
+
170
+ Nothing else in the baseline moves. An agent never runs this for you: accepting drift is the decision the report hands to a person.
139
171
 
140
172
  What the words mean:
141
173
 
@@ -158,9 +190,9 @@ The control stays under contract; only its label is no longer compared.
158
190
 
159
191
  | code | meaning |
160
192
  |---|---|
161
- | `0` | nothing needs a decision — warnings never fail a tour |
162
- | `1` | a dead link, or drift that blocks |
163
- | `2` | no answer: not set up, nothing could be mapped, or the tour refused to run |
193
+ | `0` | nothing needs a decision — warnings, proposed repairs and drift behind interaction never fail a tour |
194
+ | `1` | a dead link, drift on what pages show on load, a test about to act on the wrong element, or your suite failed under `--suite` |
195
+ | `2` | no answer: not set up, nothing could be mapped, the tour refused to run, or one is already running |
164
196
 
165
197
  Read `2` as "could not answer", never as "the app is broken".
166
198
 
@@ -179,7 +211,7 @@ npx ia-qa-pal tour --more
179
211
 
180
212
  `--more` explores the next batch and adds those pages to the baseline. Run it when you have the time — the estimate told you how much. `--batch <n>` changes the batch size.
181
213
 
182
- It **refuses** when the last tour ended on BLOCK:
214
+ It **refuses** when the last tour ended on drift that fails (accept or fix it first — `ia-qa-pal accept` clears it):
183
215
 
184
216
  ```
185
217
  ⏸ Did not run — The last tour ended on BLOCK. Exploring now would promote those pages as they are today and accept that drift unseen — resolve it, then run `ia-qa-pal tour` again.
@@ -360,9 +392,13 @@ Asked to tour a project that is not set up, `ia-qa-pal tour --json` answers with
360
392
 
361
393
  **A page is "not mapped" with a timeout.** One slow page costs that page, not the tour. It stays in **Not seen**; if its drift is shown, the report marks it as an older capture.
362
394
 
363
- **Every page behind the login is "not mapped".** The session expired, or never worked. Log in again with `ia-qa-heal login`, then run the tour.
395
+ **"N pages landed on a login page instead".** The session expired, or never worked. Log in again with `ia-qa-heal login`, then run the tour. Drift on those pages is from an older capture: it is not counted, and `accept` refuses them until a tour captures them again.
396
+
397
+ **"not compared — its contract file cannot be read".** A file under `.ia-qa/baseline/` or `.ia-qa/mapping/` is corrupt. Restore it from git, or run the tour again to re-capture it.
398
+
399
+ **`renamed` or `rebound` on a label you did not touch.** A counter, a date or generated content. The report gives the `nameMask` to paste (section 4).
364
400
 
365
- **`renamed` on a label you did not touch.** A counter, a date or generated content. Add a `nameMask` for it (section 4).
401
+ **Drift behind interaction on every tour.** Those elements depend on the app's data. They never fail the tour unless you pass `--strict`; if they are noise you never want to read, `ia-qa-pal accept` the page after the data settles, or keep the page on the surface.
366
402
 
367
403
  **"only partly explored (click budget reached)".** The page has more closed controls than one exploration opens (150 clicks). Its contract covers part of the page, and the report says so.
368
404
 
@@ -0,0 +1,20 @@
1
+ /**
2
+ * A person looked at the drift and it is what they wanted: a new label, a removed button, data
3
+ * that moved. Only those pages' latest captures become the reference — nothing else in `mapping/`
4
+ * is promoted, and nothing is accepted that the last tour did not capture.
5
+ *
6
+ * Deliberately not an MCP tool: accepting drift is the decision the whole report hands to a person.
7
+ */
8
+ export interface AcceptOutcome {
9
+ accepted: string[];
10
+ skipped: Array<{
11
+ page: string;
12
+ reason: string;
13
+ }>;
14
+ refused?: string;
15
+ }
16
+ /** The pages whose drift the last finished tour reported. */
17
+ export declare function driftedPages(dir: string): string[];
18
+ export declare function acceptPages(dirGiven: string, pagesGiven: string[], opts?: {
19
+ all?: boolean;
20
+ }): Promise<AcceptOutcome>;
package/dist/accept.js ADDED
@@ -0,0 +1,119 @@
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.driftedPages = driftedPages;
37
+ exports.acceptPages = acceptPages;
38
+ const fs = __importStar(require("fs"));
39
+ const path = __importStar(require("path"));
40
+ const self_healing_1 = require("@ia-qa/self-healing");
41
+ const run_1 = require("./run");
42
+ const state_1 = require("./state");
43
+ /** The pages whose drift the last finished tour reported. */
44
+ function driftedPages(dir) {
45
+ const drift = (0, run_1.readRun)(dir)?.report?.drift;
46
+ if (!drift)
47
+ return [];
48
+ return [...new Set([...drift.onLoad, ...drift.behindInteraction].map((f) => f.page).concat(drift.suitePages))];
49
+ }
50
+ async function acceptPages(dirGiven, pagesGiven, opts = {}) {
51
+ const dir = path.resolve(dirGiven);
52
+ if (!fs.existsSync(path.join(dir, '.ia-qa', 'config.json'))) {
53
+ return { accepted: [], skipped: [], refused: 'This project is not set up yet — there is no .ia-qa/config.json.' };
54
+ }
55
+ if ((0, run_1.activeRun)(dir))
56
+ return { accepted: [], skipped: [], refused: 'A tour is running on this project — accept after it finishes (ia-qa-pal status).' };
57
+ (0, self_healing_1.setBaseDir)(dir);
58
+ const configured = new Set((0, self_healing_1.loadConfig)().pages.map((p) => p.name));
59
+ const wanted = opts.all ? driftedPages(dir) : pagesGiven;
60
+ if (wanted.length === 0) {
61
+ return { accepted: [], skipped: [], refused: opts.all ? 'The last tour reported no drift to accept.' : 'Name the pages to accept, or --all for every page the last tour reported.' };
62
+ }
63
+ const ready = [];
64
+ const skipped = [];
65
+ const notRecaptured = new Set(((0, run_1.readRun)(dir)?.report?.pages.notMapped ?? []).map((m) => m.page));
66
+ for (const page of wanted) {
67
+ if (!configured.has(page)) {
68
+ skipped.push({ page, reason: 'not a configured page' });
69
+ continue;
70
+ }
71
+ if (notRecaptured.has(page)) {
72
+ skipped.push({ page, reason: 'the last tour could not re-capture it — accepting would promote an older capture; run a tour first' });
73
+ continue;
74
+ }
75
+ let current;
76
+ try {
77
+ current = (0, self_healing_1.loadMapping)(page, (0, self_healing_1.mappingDir)());
78
+ }
79
+ catch {
80
+ skipped.push({ page, reason: 'no capture yet — run a tour first' });
81
+ continue;
82
+ }
83
+ try {
84
+ if ((0, self_healing_1.loadMapping)(page, (0, self_healing_1.baselineDir)()).capturedAt === current.capturedAt) {
85
+ skipped.push({ page, reason: 'the baseline already is its latest capture' });
86
+ continue;
87
+ }
88
+ }
89
+ catch {
90
+ /* not in the baseline yet: accepting it adds it */
91
+ }
92
+ ready.push(page);
93
+ }
94
+ if (ready.length > 0) {
95
+ const { log, info, warn } = console;
96
+ console.log = console.info = console.warn = (...a) => console.error(...a);
97
+ const before = process.exitCode;
98
+ process.exitCode = undefined;
99
+ try {
100
+ await (0, self_healing_1.runBaseline)([], { pages: ready });
101
+ if (process.exitCode)
102
+ return { accepted: [], skipped, refused: `baseline refused to promote ${ready.join(', ')}` };
103
+ }
104
+ finally {
105
+ process.exitCode = before;
106
+ console.log = log;
107
+ console.info = info;
108
+ console.warn = warn;
109
+ }
110
+ const remaining = driftedPages(dir).filter((p) => !ready.includes(p));
111
+ const state = (0, state_1.loadState)();
112
+ if (state.lastVerdict === 'BLOCK' && remaining.length === 0) {
113
+ delete state.lastVerdict;
114
+ (0, state_1.saveState)(state);
115
+ }
116
+ }
117
+ return { accepted: ready, skipped };
118
+ }
119
+ //# sourceMappingURL=accept.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"accept.js","sourceRoot":"","sources":["../src/accept.ts"],"names":[],"mappings":"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"}
package/dist/cli/index.js CHANGED
@@ -39,6 +39,7 @@ const path = __importStar(require("path"));
39
39
  const report_1 = require("../report");
40
40
  const setup_1 = require("../setup");
41
41
  const run_1 = require("../run");
42
+ const accept_1 = require("../accept");
42
43
  const VERSION = require('../../package.json').version;
43
44
  const HELP = `ia-qa-pal — a QA pal next to your team
44
45
 
@@ -68,11 +69,20 @@ Usage:
68
69
  the suite never visits
69
70
  --background start the tour detached and return at once;
70
71
  follow it with \`ia-qa-pal status\`
72
+ --strict also fail on drift behind interaction (elements
73
+ reached only by clicking, which may depend on
74
+ the data the click lands on)
71
75
  --batch <n> pages per depth batch (default 10)
72
76
  --json the report as one JSON document on stdout
73
77
  --session <file> a Playwright storageState to reuse
74
78
  --config <dir> project holding .ia-qa/ (default: here)
75
79
 
80
+ ia-qa-pal accept <page>… A person reviewed the drift and it is intended:
81
+ make those pages' latest captures the reference.
82
+ --all every page the last tour reported drift on
83
+ --config <dir> project folder (default: here)
84
+ [FOR AI AGENTS] only on the human's decision.
85
+
76
86
  ia-qa-pal status The tour running now (phase, progress) or the
77
87
  last one (its report).
78
88
  --json as one JSON document
@@ -189,6 +199,22 @@ async function main() {
189
199
  process.exitCode = outcome.written ? 0 : 2;
190
200
  return;
191
201
  }
202
+ if (command === 'accept') {
203
+ const pages = args.slice(1).filter((a, i, all) => !a.startsWith('--') && all[i - 1] !== '--config');
204
+ const outcome = await (0, accept_1.acceptPages)(dir, pages, { all: args.includes('--all') });
205
+ if (json)
206
+ process.stdout.write(`${JSON.stringify({ schema: 'ia-qa-pal/accept@1', ...outcome }, null, 2)}\n`);
207
+ else {
208
+ if (outcome.refused)
209
+ process.stderr.write(`❌ ${outcome.refused}\n`);
210
+ if (outcome.accepted.length > 0)
211
+ process.stderr.write(`✅ Accepted as the new reference: ${outcome.accepted.join(', ')}\n Commit .ia-qa/baseline — a reference that is not in git cannot be reviewed.\n`);
212
+ for (const s of outcome.skipped)
213
+ process.stderr.write(` skipped ${s.page} — ${s.reason}\n`);
214
+ }
215
+ process.exitCode = outcome.refused ? 2 : 0;
216
+ return;
217
+ }
192
218
  if (command === 'status') {
193
219
  const run = (0, run_1.readRun)(dir);
194
220
  process.stdout.write(json ? `${JSON.stringify({ schema: 'ia-qa-pal/status@1', run }, null, 2)}\n` : renderStatus(run, dir));
@@ -204,7 +230,7 @@ async function main() {
204
230
  const batch = batchRaw === undefined ? undefined : Number(batchRaw);
205
231
  if (batch !== undefined && (!Number.isInteger(batch) || batch < 1))
206
232
  throw new Error('--batch needs a positive whole number.');
207
- const tourOptions = { more: args.includes('--more'), suite: args.includes('--suite'), batch, session: valueOf(args, '--session') };
233
+ const tourOptions = { more: args.includes('--more'), suite: args.includes('--suite'), strict: args.includes('--strict'), batch, session: valueOf(args, '--session') };
208
234
  if (args.includes('--background')) {
209
235
  const started = (0, run_1.startBackground)(dir, tourOptions);
210
236
  if (json)
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
@@ -15,6 +15,7 @@ export declare const TOOLS: ({
15
15
  tests?: undefined;
16
16
  more?: undefined;
17
17
  suite?: undefined;
18
+ strict?: undefined;
18
19
  batch?: undefined;
19
20
  };
20
21
  required?: undefined;
@@ -51,6 +52,7 @@ export declare const TOOLS: ({
51
52
  };
52
53
  more?: undefined;
53
54
  suite?: undefined;
55
+ strict?: undefined;
54
56
  batch?: undefined;
55
57
  };
56
58
  required: string[];
@@ -69,6 +71,10 @@ export declare const TOOLS: ({
69
71
  type: string;
70
72
  description: string;
71
73
  };
74
+ strict: {
75
+ type: string;
76
+ description: string;
77
+ };
72
78
  batch: {
73
79
  type: string;
74
80
  description: string;
@@ -96,6 +96,7 @@ exports.TOOLS = [
96
96
  properties: {
97
97
  more: { type: 'boolean', description: 'Explore the next batch in depth instead of a regression tour. Refused after a BLOCK.' },
98
98
  suite: { type: 'boolean', description: 'Also run the test command from config.json once, with the capture hook, to learn which pages the suite never visits. It runs the human’s own suite on this machine — ask before setting it.' },
99
+ strict: { type: 'boolean', description: 'Also fail on drift behind interaction — elements reached only by clicking, which may depend on the data the click lands on.' },
99
100
  batch: { type: 'integer', description: 'Pages per depth batch (default 10).' },
100
101
  project_dir: PROJECT_DIR,
101
102
  },
@@ -103,7 +104,7 @@ exports.TOOLS = [
103
104
  },
104
105
  {
105
106
  name: 'pal_status',
106
- description: 'The tour running now — phase and progress — or the last one: its full report once done, as JSON and as the text a human reads. A tour whose process died before finishing is reported as interrupted, never as running. Read-only.',
107
+ description: 'The tour running now — phase and progress — or the last one: its full report once done, as JSON and as the text a human reads. A tour whose process died before finishing is reported as interrupted, never as running. Read-only. When the report lists drift a human judges intended, the human accepts it with `ia-qa-pal accept <page>` — there is no tool for that on purpose.',
107
108
  inputSchema: { type: 'object', properties: { project_dir: PROJECT_DIR } },
108
109
  },
109
110
  ];
@@ -157,7 +158,7 @@ async function callTool(name, args, root = process.cwd()) {
157
158
  }
158
159
  if (name === 'pal_tour') {
159
160
  const batch = Number.isInteger(args.batch) && args.batch > 0 ? args.batch : undefined;
160
- const started = (0, run_1.startBackground)(dir, { more: !!args.more, suite: !!args.suite, batch }, CLI_ENTRY);
161
+ const started = (0, run_1.startBackground)(dir, { more: !!args.more, suite: !!args.suite, strict: !!args.strict, batch }, CLI_ENTRY);
161
162
  return started.started
162
163
  ? { ...started, next: 'Call pal_status to follow it. A tour takes minutes.' }
163
164
  : { ...started, ...(!config ? { next: 'Not set up: ask the human where the app lives and how it logs in, then call pal_setup.' } : {}) };
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"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"}
package/dist/plan.d.ts CHANGED
@@ -47,6 +47,60 @@ export interface CheckSplit {
47
47
  * broken link is still broken the second time — and only their "already reported" count moves.
48
48
  */
49
49
  export declare function splitFindings(report: CheckReport, known: ReadonlySet<string>): CheckSplit;
50
+ /**
51
+ * The findings the next tour treats as already reported. A source that gave no answer this tour
52
+ * (null) keeps what it had reported before: "no answer" is not "nothing found", and dropping them
53
+ * would re-announce every known warning as new on the tour after.
54
+ */
55
+ export declare function carryKnown(previous: string[], checkKeys: string[] | null, deadNameKeys: string[] | null): string[];
56
+ export interface DriftRowLike {
57
+ status: string;
58
+ role: string;
59
+ name: string;
60
+ selector: string;
61
+ rebound?: boolean;
62
+ }
63
+ export interface DriftFinding {
64
+ page: string;
65
+ role: string;
66
+ name: string;
67
+ status: 'lost' | 'ambiguous' | 'rebound';
68
+ /** The clicks that reached it in the baseline. Absent: visible on load. */
69
+ via?: string[];
70
+ }
71
+ export interface DriftClass {
72
+ /** Whether this drift fails the tour. */
73
+ gating: boolean;
74
+ onLoad: DriftFinding[];
75
+ behindInteraction: DriftFinding[];
76
+ /** Drift on pages this tour could not re-capture: it describes an older moment, so it never fails the tour. */
77
+ olderCapture: DriftFinding[];
78
+ /** Pages held at BLOCK by the suite (a renamed label it locates by name, a selector now reaching another element) with no blocking row of their own. */
79
+ suitePages: string[];
80
+ }
81
+ /**
82
+ * Which drift fails the tour. The statuses are the ones `ia-qa-heal diff` gave; this only decides
83
+ * what a person must act on today.
84
+ *
85
+ * An element visible on load that is lost, ambiguous or now reached by another selector is a fact
86
+ * about the page, and fails. One reached only by clicking — a profile opened from a ranking, a
87
+ * button present in one state of a game — may be there or not depending on the data the click
88
+ * lands on: measured on a live app, two tours five minutes apart disagreed about exactly those.
89
+ * They are reported, and fail only under `strict`. A page the suite holds at BLOCK always fails:
90
+ * that is a test about to act on the wrong thing.
91
+ *
92
+ * A page this tour could not re-capture keeps its previous contract, so its "drift" compares the
93
+ * baseline with an older moment — possibly a change already reported and fixed since. It is
94
+ * listed apart and never fails the tour, whatever its status: the page is in "Not seen" already.
95
+ */
96
+ export declare function classifyDrift(reports: Array<{
97
+ name: string;
98
+ isLayout: boolean;
99
+ report: {
100
+ verdict: string;
101
+ rows: DriftRowLike[];
102
+ };
103
+ }>, viaOf: (page: string, row: DriftRowLike) => string[] | undefined, strict?: boolean, notRecaptured?: ReadonlySet<string>): DriftClass;
50
104
  /**
51
105
  * 0 nothing to decide · 1 something broke or needs a decision · 2 could not answer.
52
106
  * The same contract as `ia-qa-heal`: a warning never fails a build, and "could not answer" is
@@ -54,7 +108,10 @@ export declare function splitFindings(report: CheckReport, known: ReadonlySet<st
54
108
  */
55
109
  export declare function exitCodeFor(input: {
56
110
  measured: number;
57
- drift?: Pick<DirReport, 'verdict'> | null;
111
+ /** `gating` from `classifyDrift`; without it, a BLOCK verdict gates. */
112
+ drift?: (Pick<DirReport, 'verdict'> & {
113
+ gating?: boolean;
114
+ }) | null;
58
115
  deadLinks: number;
59
116
  /** The suite ran during this tour and exited non-zero. */
60
117
  suiteFailed?: boolean;
package/dist/plan.js CHANGED
@@ -5,6 +5,8 @@ exports.selectBatch = selectBatch;
5
5
  exports.needingDepth = needingDepth;
6
6
  exports.estimate = estimate;
7
7
  exports.splitFindings = splitFindings;
8
+ exports.carryKnown = carryKnown;
9
+ exports.classifyDrift = classifyDrift;
8
10
  exports.exitCodeFor = exitCodeFor;
9
11
  /**
10
12
  * The decisions a tour makes, kept free of I/O so each one is tested without a browser.
@@ -66,6 +68,59 @@ function splitFindings(report, known) {
66
68
  keys: [...dead, ...warnings].map((x) => x.key),
67
69
  };
68
70
  }
71
+ /**
72
+ * The findings the next tour treats as already reported. A source that gave no answer this tour
73
+ * (null) keeps what it had reported before: "no answer" is not "nothing found", and dropping them
74
+ * would re-announce every known warning as new on the tour after.
75
+ */
76
+ function carryKnown(previous, checkKeys, deadNameKeys) {
77
+ const isDeadName = (k) => k.startsWith('deadname ');
78
+ return [...(checkKeys ?? previous.filter((k) => !isDeadName(k))), ...(deadNameKeys ?? previous.filter(isDeadName))];
79
+ }
80
+ const blockingStatus = (row) => row.rebound ? 'rebound' : row.status === 'lost' || row.status === 'ambiguous' ? row.status : null;
81
+ /**
82
+ * Which drift fails the tour. The statuses are the ones `ia-qa-heal diff` gave; this only decides
83
+ * what a person must act on today.
84
+ *
85
+ * An element visible on load that is lost, ambiguous or now reached by another selector is a fact
86
+ * about the page, and fails. One reached only by clicking — a profile opened from a ranking, a
87
+ * button present in one state of a game — may be there or not depending on the data the click
88
+ * lands on: measured on a live app, two tours five minutes apart disagreed about exactly those.
89
+ * They are reported, and fail only under `strict`. A page the suite holds at BLOCK always fails:
90
+ * that is a test about to act on the wrong thing.
91
+ *
92
+ * A page this tour could not re-capture keeps its previous contract, so its "drift" compares the
93
+ * baseline with an older moment — possibly a change already reported and fixed since. It is
94
+ * listed apart and never fails the tour, whatever its status: the page is in "Not seen" already.
95
+ */
96
+ function classifyDrift(reports, viaOf, strict = false, notRecaptured = new Set()) {
97
+ const onLoad = [];
98
+ const behindInteraction = [];
99
+ const olderCapture = [];
100
+ const suitePages = [];
101
+ for (const { name, isLayout, report } of reports) {
102
+ const stale = notRecaptured.has(name);
103
+ let blockingHere = 0;
104
+ for (const row of report.rows) {
105
+ const status = blockingStatus(row);
106
+ if (!status)
107
+ continue;
108
+ blockingHere++;
109
+ const via = isLayout ? undefined : viaOf(name, row);
110
+ const finding = { page: name, role: row.role, name: row.name, status, ...(via && via.length > 0 ? { via } : {}) };
111
+ (stale ? olderCapture : finding.via ? behindInteraction : onLoad).push(finding);
112
+ }
113
+ if (report.verdict === 'BLOCK' && blockingHere === 0 && !stale)
114
+ suitePages.push(name);
115
+ }
116
+ return {
117
+ gating: onLoad.length > 0 || suitePages.length > 0 || (strict && behindInteraction.length > 0),
118
+ onLoad,
119
+ behindInteraction,
120
+ olderCapture,
121
+ suitePages,
122
+ };
123
+ }
69
124
  /**
70
125
  * 0 nothing to decide · 1 something broke or needs a decision · 2 could not answer.
71
126
  * The same contract as `ia-qa-heal`: a warning never fails a build, and "could not answer" is
@@ -78,7 +133,8 @@ function exitCodeFor(input) {
78
133
  return 1;
79
134
  if (input.suiteFailed)
80
135
  return 1;
81
- if (input.drift?.verdict === 'BLOCK')
136
+ const drift = input.drift;
137
+ if (drift && (drift.gating ?? drift.verdict === 'BLOCK'))
82
138
  return 1;
83
139
  return 0;
84
140
  }
package/dist/plan.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"plan.js","sourceRoot":"","sources":["../src/plan.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"plan.js","sourceRoot":"","sources":["../src/plan.ts"],"names":[],"mappings":"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"}
package/dist/report.js CHANGED
@@ -33,8 +33,12 @@ function headline(r) {
33
33
  if (!r.drift)
34
34
  return '⏸ No page could be compared with the baseline this tour.';
35
35
  const t = r.drift.totals;
36
+ const counts = `${t.ok} ok · ${t.renamed} renamed · ${t.lost} lost · ${t.ambiguous} ambiguous · ${t.rebound} rebound`;
37
+ if (r.drift.verdict === 'BLOCK' && !r.drift.gating) {
38
+ return `⚠️ Drift only behind interaction — not failing the tour (--strict would) · ${counts}`;
39
+ }
36
40
  const word = r.drift.verdict === 'PASS' ? '✅ PASS' : r.drift.verdict === 'FIX' ? '🔧 FIX' : '⛔ BLOCK';
37
- return `${word} · ${t.ok} ok · ${t.renamed} renamed · ${t.lost} lost · ${t.ambiguous} ambiguous · ${t.rebound} rebound`;
41
+ return `${word} · ${counts}`;
38
42
  }
39
43
  function renderReport(r) {
40
44
  const out = [];
@@ -64,10 +68,25 @@ function renderReport(r) {
64
68
  if (broken.length > 0)
65
69
  out.push('', `🔴 Broken`, ...broken);
66
70
  const decide = [];
67
- const notMapped = new Set(p.notMapped.map((m) => m.page));
68
- for (const b of r.drift?.blocking ?? []) {
69
- const stale = notMapped.has(b.page) ? ' (not re-captured this tour — this is an older capture)' : '';
70
- decide.push(` drift ${b.page}: ${b.lost} lost · ${b.ambiguous} ambiguous · ${b.rebound} rebound${stale}`);
71
+ const d = r.drift;
72
+ if (d) {
73
+ const onLoad = d.onLoad.slice(0, 8);
74
+ for (const f of onLoad)
75
+ decide.push(` drift ${f.page}: ${f.role} "${f.name}" ${f.status}`);
76
+ if (d.onLoad.length > onLoad.length)
77
+ decide.push(` …and ${d.onLoad.length - onLoad.length} more on load`);
78
+ for (const page of d.suitePages)
79
+ decide.push(` drift ${page}: your tests would act on the wrong element — details: ia-qa-heal diff`);
80
+ if (d.behindInteraction.length > 0) {
81
+ decide.push(` behind ${plural(d.behindInteraction.length, 'element')} reached only by clicking changed — they may depend on the data the click lands on${d.gating ? '' : ' (not failing the tour)'}:`);
82
+ for (const f of d.behindInteraction.slice(0, 6))
83
+ decide.push(` ${f.page}: ${f.role} "${f.name}" ${f.status}, after ${f.via.map((v) => `"${v}"`).join(' → ')}`);
84
+ if (d.behindInteraction.length > 6)
85
+ decide.push(` …and ${d.behindInteraction.length - 6} more`);
86
+ }
87
+ const pages = [...new Set([...d.onLoad, ...d.behindInteraction].map((f) => f.page).concat(d.suitePages))];
88
+ if (pages.length > 0)
89
+ decide.push(` If these changes are intended: ia-qa-pal accept ${pages.slice(0, 4).join(' ')}${pages.length > 4 ? ' …' : ''}`);
71
90
  }
72
91
  const sf = r.drift?.suiteFindings;
73
92
  if (sf && sf.names + sf.bindings > 0) {
@@ -102,6 +121,11 @@ function renderReport(r) {
102
121
  const knownWarnings = (r.check?.knownWarnings ?? 0) + (s?.knownDeadNames ?? 0);
103
122
  if (knownWarnings > 0)
104
123
  out.push(` ${plural(knownWarnings, 'warning')} already reported — not listed again.`);
124
+ const masks = (d?.maskSuggestions ?? []).filter((m) => m.pattern);
125
+ if (masks.length > 0) {
126
+ const n = masks.reduce((sum, m) => sum + m.count, 0);
127
+ out.push('', `💡 ${n === 1 ? '1 label differs' : `${n} labels differ`} only by a number — a counter or a clock that changes on its own${masks.some((m) => m.blocking > 0) ? ', and it is holding the verdict' : ''}.`, ` e.g. "${masks[0].example.from}" → "${masks[0].example.to}". To stop comparing those labels (the element stays under contract), add to .ia-qa/config.json:`, ` "nameMask": ${JSON.stringify(masks.map((m) => m.pattern))}`);
128
+ }
105
129
  const repairs = s?.repairs;
106
130
  if (repairs && repairs.total > 0) {
107
131
  out.push('', `🔧 Ready to repair (${plural(repairs.total, 'replacement')} in ${plural(repairs.files.length, 'file')})`);
@@ -127,10 +151,21 @@ function renderReport(r) {
127
151
  (e ? ` — about ${duration(e.seconds)} (${e.clicks} controls × ${e.secondsPerClick} s, pace measured on ${e.measuredClicks} clicks)` : ''));
128
152
  unseen.push(' ia-qa-pal tour --more explores the next batch');
129
153
  }
130
- for (const m of p.notMapped.slice(0, 10))
154
+ const walled = p.notMapped.filter((m) => m.loginWall);
155
+ if (walled.length > 0) {
156
+ unseen.push(` ${plural(walled.length, 'page')} landed on a login page instead — the session expired or never took: ${walled.slice(0, 5).map((m) => m.page).join(', ')}${walled.length > 5 ? ', …' : ''}`, ` log in again (a person, at a browser): npx -p @ia-qa/self-healing ia-qa-heal login — then run the tour again`);
157
+ }
158
+ const otherFailures = p.notMapped.filter((m) => !m.loginWall);
159
+ for (const m of otherFailures.slice(0, 10))
131
160
  unseen.push(` not mapped ${m.page} — ${m.reason}`);
132
- if (p.notMapped.length > 10)
133
- unseen.push(` …and ${p.notMapped.length - 10} more pages not mapped`);
161
+ if (otherFailures.length > 10)
162
+ unseen.push(` …and ${otherFailures.length - 10} more pages not mapped`);
163
+ for (const u of p.unreadable)
164
+ unseen.push(` not compared ${u.page} — its contract file cannot be read: ${u.reason.replace(/^❌\s*/, '')}`);
165
+ if (d && d.olderCapture.length > 0) {
166
+ const pages = [...new Set(d.olderCapture.map((f) => f.page))];
167
+ unseen.push(` drift on ${plural(pages.length, 'page')} not re-captured this tour is from an older capture and not counted: ${pages.join(', ')}`);
168
+ }
134
169
  if (p.partlyExplored.length > 0)
135
170
  unseen.push(` partly explored (click budget reached): ${p.partlyExplored.join(', ')}`);
136
171
  if (p.notInBaseline.length > 0)
@@ -1 +1 @@
1
- {"version":3,"file":"report.js","sourceRoot":"","sources":["../src/report.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"report.js","sourceRoot":"","sources":["../src/report.ts"],"names":[],"mappings":"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"}
package/dist/run.d.ts CHANGED
@@ -60,6 +60,7 @@ export interface BackgroundStart {
60
60
  export declare function startBackground(dir: string, opts: {
61
61
  more?: boolean;
62
62
  suite?: boolean;
63
+ strict?: boolean;
63
64
  batch?: number;
64
65
  session?: string;
65
66
  }, entry?: string): BackgroundStart;
package/dist/run.js CHANGED
@@ -58,20 +58,56 @@ function isAlive(pid) {
58
58
  return err.code === 'EPERM';
59
59
  }
60
60
  }
61
+ const pause = (ms) => Atomics.wait(new Int32Array(new SharedArrayBuffer(4)), 0, 0, ms);
62
+ /**
63
+ * Atomic when it can be. On Windows a rename over a file another process is reading fails with
64
+ * EPERM/EBUSY — and something is always reading this one: `status`, or an agent polling
65
+ * `pal_status`. Measured: that failure, thrown from a progress write, killed the tour it was
66
+ * reporting on. So the rename is retried, and a direct write is the last resort.
67
+ */
61
68
  function write(dir, record) {
62
69
  fs.mkdirSync((0, exports.runDir)(dir), { recursive: true });
70
+ const body = JSON.stringify(record, null, 2);
63
71
  const tmp = `${(0, exports.runFile)(dir)}.${process.pid}.tmp`;
64
- fs.writeFileSync(tmp, JSON.stringify(record, null, 2));
65
- fs.renameSync(tmp, (0, exports.runFile)(dir));
72
+ fs.writeFileSync(tmp, body);
73
+ for (let attempt = 0; attempt < 20; attempt++) {
74
+ try {
75
+ fs.renameSync(tmp, (0, exports.runFile)(dir));
76
+ return;
77
+ }
78
+ catch (err) {
79
+ const code = err.code;
80
+ if (code !== 'EPERM' && code !== 'EBUSY' && code !== 'EACCES')
81
+ throw err;
82
+ pause(25);
83
+ }
84
+ }
85
+ fs.writeFileSync((0, exports.runFile)(dir), body);
86
+ fs.rmSync(tmp, { force: true });
66
87
  }
67
- function readRun(dir) {
68
- let record;
88
+ /** Progress is a courtesy to whoever is watching; it must never cost the tour. */
89
+ function tryWrite(dir, record) {
69
90
  try {
70
- record = JSON.parse(fs.readFileSync((0, exports.runFile)(dir), 'utf8'));
91
+ write(dir, record);
71
92
  }
72
93
  catch {
94
+ /* the next event, or the final record, writes it */
95
+ }
96
+ }
97
+ function readRun(dir) {
98
+ if (!fs.existsSync((0, exports.runFile)(dir)))
73
99
  return null;
100
+ let record = null;
101
+ for (let attempt = 0; attempt < 10 && !record; attempt++) {
102
+ try {
103
+ record = JSON.parse(fs.readFileSync((0, exports.runFile)(dir), 'utf8'));
104
+ }
105
+ catch {
106
+ pause(20);
107
+ }
74
108
  }
109
+ if (!record)
110
+ return null;
75
111
  if (record.status === 'running' && !isAlive(record.pid)) {
76
112
  return { ...record, status: 'interrupted', interrupted: true };
77
113
  }
@@ -117,7 +153,7 @@ async function trackedTour(opts) {
117
153
  record.progress = event;
118
154
  record.updatedAt = now();
119
155
  if (fs.existsSync((0, exports.runDir)(dir)))
120
- write(dir, record);
156
+ tryWrite(dir, record);
121
157
  },
122
158
  });
123
159
  if (fs.existsSync((0, exports.runDir)(dir))) {
@@ -149,6 +185,8 @@ function startBackground(dir, opts, entry = path.join(__dirname, 'cli', 'index.j
149
185
  args.push('--more');
150
186
  if (opts.suite)
151
187
  args.push('--suite');
188
+ if (opts.strict)
189
+ args.push('--strict');
152
190
  if (opts.batch)
153
191
  args.push('--batch', String(opts.batch));
154
192
  if (opts.session)
package/dist/run.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"run.js","sourceRoot":"","sources":["../src/run.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"run.js","sourceRoot":"","sources":["../src/run.ts"],"names":[],"mappings":"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"}
package/dist/tour.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import type { DirReport } from '@ia-qa/self-healing';
2
- import type { Estimate, CheckSplit } from './plan';
2
+ import type { Estimate, CheckSplit, DriftFinding } from './plan';
3
3
  import { CAPTURE_IMPORT } from './suite';
4
4
  import type { SuiteInventory, RepairPlan, SuiteRun } from './suite';
5
5
  export interface TourOptions {
@@ -11,6 +11,8 @@ export interface TourOptions {
11
11
  more?: boolean;
12
12
  /** Run the test suite from config.json with the capture hook, to learn which pages it visits. */
13
13
  suite?: boolean;
14
+ /** Also fail on drift behind interaction (elements reached only by clicking). */
15
+ strict?: boolean;
14
16
  session?: string;
15
17
  /** Where progress goes. Never stdout: stdout is the report. */
16
18
  onProgress?: (line: string) => void;
@@ -38,12 +40,19 @@ export interface TourResult {
38
40
  /** Pages explored in depth by this tour. */
39
41
  exploredThisTour: string[];
40
42
  partlyExplored: string[];
43
+ /** `loginWall`: the page landed on a login form — the session expired or never took. */
41
44
  notMapped: Array<{
42
45
  page: string;
43
46
  url: string;
44
47
  reason: string;
48
+ loginWall?: boolean;
45
49
  }>;
46
50
  notInBaseline: string[];
51
+ /** Contract files that could not be read: those pages were not compared. */
52
+ unreadable: Array<{
53
+ page: string;
54
+ reason: string;
55
+ }>;
47
56
  };
48
57
  drift: null | {
49
58
  verdict: DirReport['verdict'];
@@ -61,6 +70,23 @@ export interface TourResult {
61
70
  names: number;
62
71
  bindings: number;
63
72
  };
73
+ /** Whether this drift fails the tour — see `classifyDrift`. */
74
+ gating: boolean;
75
+ onLoad: DriftFinding[];
76
+ behindInteraction: DriftFinding[];
77
+ /** Drift on pages this tour could not re-capture — an older moment, never failing the tour. */
78
+ olderCapture: DriftFinding[];
79
+ suitePages: string[];
80
+ /** Labels that differ only by a number, with the nameMask that stops comparing them. */
81
+ maskSuggestions: Array<{
82
+ pattern: string | null;
83
+ count: number;
84
+ blocking: number;
85
+ example: {
86
+ from: string;
87
+ to: string;
88
+ };
89
+ }>;
64
90
  };
65
91
  check: null | Omit<CheckSplit, 'keys'>;
66
92
  suite: null | {
package/dist/tour.js CHANGED
@@ -109,7 +109,7 @@ function notSetUp(started) {
109
109
  mode: 'first',
110
110
  baseUrl: '',
111
111
  level: 0,
112
- pages: { configured: 0, underContract: 0, explored: 0, notExplored: [], exploredThisTour: [], partlyExplored: [], notMapped: [], notInBaseline: [] },
112
+ pages: { configured: 0, underContract: 0, explored: 0, notExplored: [], exploredThisTour: [], partlyExplored: [], notMapped: [], notInBaseline: [], unreadable: [] },
113
113
  drift: null,
114
114
  check: null,
115
115
  suite: null,
@@ -149,7 +149,7 @@ async function runTour(opts = {}) {
149
149
  mode,
150
150
  baseUrl: config.baseUrl,
151
151
  level: hasSuite ? 2 : hasLogin(config, session, dir) ? 1 : 0,
152
- pages: { configured: names.length, underContract: 0, explored: 0, notExplored: [], exploredThisTour: [], partlyExplored: [], notMapped: [], notInBaseline: [] },
152
+ pages: { configured: names.length, underContract: 0, explored: 0, notExplored: [], exploredThisTour: [], partlyExplored: [], notMapped: [], notInBaseline: [], unreadable: [] },
153
153
  drift: null,
154
154
  check: null,
155
155
  suite: null,
@@ -215,8 +215,24 @@ async function runTour(opts = {}) {
215
215
  measured += run.mapped;
216
216
  }
217
217
  recordPages(state, runs);
218
- const { aggregate, reports } = (0, self_healing_1.dirDiffAggregate)((0, self_healing_1.baselineDir)(), (0, self_healing_1.mappingDir)());
218
+ const { aggregate, reports, unreadable } = (0, self_healing_1.dirDiffAggregate)((0, self_healing_1.baselineDir)(), (0, self_healing_1.mappingDir)());
219
+ result.pages.unreadable = unreadable.map((u) => ({ page: u.page, reason: u.reason }));
220
+ const notRecaptured = new Set(runs.flatMap((r) => r.failed).map((f) => f.page));
219
221
  if (reports.length > 0) {
222
+ const baselines = new Map();
223
+ const viaOf = (page, row) => {
224
+ if (!baselines.has(page)) {
225
+ try {
226
+ baselines.set(page, (0, self_healing_1.loadMapping)(page, (0, self_healing_1.baselineDir)()));
227
+ }
228
+ catch {
229
+ baselines.set(page, null);
230
+ }
231
+ }
232
+ return baselines.get(page)?.elements.find((e) => e.selector === row.selector && e.role === row.role && e.name === row.name)?.via;
233
+ };
234
+ const drift = (0, plan_1.classifyDrift)(reports, viaOf, !!opts.strict, notRecaptured);
235
+ const rows = reports.filter((r) => !r.isLayout).flatMap((r) => r.report.rows);
220
236
  result.drift = {
221
237
  verdict: aggregate.verdict,
222
238
  totals: aggregate.totals,
@@ -226,8 +242,19 @@ async function runTour(opts = {}) {
226
242
  staleExcluded: aggregate.staleExcluded ?? [],
227
243
  ...(aggregate.depthMismatch ? { depthMismatch: aggregate.depthMismatch.why } : {}),
228
244
  ...(suiteInventory ? { suiteFindings: { names: aggregate.nameDrift?.length ?? 0, bindings: aggregate.bindingDrift?.length ?? 0 } } : {}),
245
+ gating: drift.gating,
246
+ onLoad: drift.onLoad,
247
+ behindInteraction: drift.behindInteraction,
248
+ olderCapture: drift.olderCapture,
249
+ suitePages: drift.suitePages,
250
+ maskSuggestions: (0, self_healing_1.groupNumericLabelDrift)(rows).map((g) => ({
251
+ pattern: g.pattern,
252
+ count: g.count,
253
+ blocking: g.blocking,
254
+ example: { from: g.examples[0]?.from ?? '', to: g.examples[0]?.to ?? '' },
255
+ })),
229
256
  };
230
- state.lastVerdict = aggregate.verdict;
257
+ state.lastVerdict = drift.gating ? 'BLOCK' : aggregate.verdict === 'BLOCK' ? 'FIX' : aggregate.verdict;
231
258
  }
232
259
  }
233
260
  else {
@@ -246,14 +273,15 @@ async function runTour(opts = {}) {
246
273
  }
247
274
  }
248
275
  const known = new Set(state.knownFindings);
249
- const nextKnown = [];
276
+ let checkKeys = null;
277
+ let deadNameKeys = null;
250
278
  if (mode !== 'explore') {
251
279
  emit({ phase: 'check' });
252
280
  const outcome = await toStderr(() => (0, self_healing_1.checkProject)({ onNotice: progress }));
253
281
  if (outcome.ok) {
254
282
  const { keys, ...split } = (0, plan_1.splitFindings)(outcome.report, known);
255
283
  result.check = split;
256
- nextKnown.push(...keys);
284
+ checkKeys = keys;
257
285
  }
258
286
  }
259
287
  if (suiteInventory) {
@@ -281,7 +309,8 @@ async function runTour(opts = {}) {
281
309
  const audit = await toStderr(() => (0, suite_1.auditSuite)(dir, config));
282
310
  const dead = audit?.deadNames ?? [];
283
311
  const key = (name) => `deadname ${name.trim().toLowerCase()}`;
284
- nextKnown.push(...dead.map((d) => key(d.name)));
312
+ if (audit)
313
+ deadNameKeys = dead.map((d) => key(d.name));
285
314
  result.suite = {
286
315
  inventory: suiteInventory,
287
316
  repairs,
@@ -293,7 +322,7 @@ async function runTour(opts = {}) {
293
322
  };
294
323
  }
295
324
  if (mode !== 'explore')
296
- state.knownFindings = nextKnown;
325
+ state.knownFindings = (0, plan_1.carryKnown)(state.knownFindings, checkKeys, deadNameKeys);
297
326
  const after = baselineDepths(names);
298
327
  const exploredNow = new Set([...after.entries()].filter(([, d]) => d > 0).map(([n]) => n));
299
328
  result.pages.underContract = after.size;
@@ -302,7 +331,7 @@ async function runTour(opts = {}) {
302
331
  result.pages.notExplored = (0, plan_1.needingDepth)(names.filter((n) => after.has(n)), exploredNow, state.openables);
303
332
  result.pages.exploredThisTour = names.filter((n) => exploredNow.has(n) && !((before.get(n) ?? 0) > 0));
304
333
  result.pages.partlyExplored = runs.flatMap((r) => r.pages).filter((p) => p.truncated).map((p) => p.page);
305
- result.pages.notMapped = runs.flatMap((r) => r.failed).map((f) => ({ page: f.page, url: f.url, reason: f.error }));
334
+ result.pages.notMapped = runs.flatMap((r) => r.failed).map((f) => ({ page: f.page, url: f.url, reason: f.error, ...(f.kind === 'login-wall' ? { loginWall: true } : {}) }));
306
335
  result.estimate = (0, plan_1.estimate)(result.pages.notExplored, state.openables, state.pace);
307
336
  result.exitCode = (0, plan_1.exitCodeFor)({
308
337
  measured,
package/dist/tour.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"tour.js","sourceRoot":"","sources":["../src/tour.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tour.js","sourceRoot":"","sources":["../src/tour.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ia-qa/pal",
3
- "version": "0.3.0",
3
+ "version": "0.4.0",
4
4
  "description": "A QA pal next to your team: one command walks your web app, maps it, checks it and diffs it against yesterday, then reports what broke, what needs a decision and what it could not see. Local, deterministic, no LLM.",
5
5
  "keywords": [
6
6
  "qa",
@@ -41,7 +41,7 @@
41
41
  "node": ">=18.0.0"
42
42
  },
43
43
  "dependencies": {
44
- "@ia-qa/self-healing": "^1.12.0"
44
+ "@ia-qa/self-healing": "^1.13.0"
45
45
  },
46
46
  "peerDependencies": {
47
47
  "playwright": ">=1.40.0"