@ia-qa/self-healing 1.19.1 → 1.24.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.
Files changed (71) hide show
  1. package/README.md +64 -3
  2. package/TUTORIAL.md +35 -4
  3. package/dist/aom.d.ts +20 -0
  4. package/dist/aom.js +25 -0
  5. package/dist/aom.js.map +1 -1
  6. package/dist/browser/resolve.js +4 -1
  7. package/dist/browser/resolve.js.map +1 -1
  8. package/dist/captureMerge.d.ts +11 -0
  9. package/dist/captureMerge.js +4 -1
  10. package/dist/captureMerge.js.map +1 -1
  11. package/dist/cli/args.js +1 -1
  12. package/dist/cli/args.js.map +1 -1
  13. package/dist/cli/audit.d.ts +22 -1
  14. package/dist/cli/audit.js +43 -6
  15. package/dist/cli/audit.js.map +1 -1
  16. package/dist/cli/diff.d.ts +62 -0
  17. package/dist/cli/diff.js +104 -4
  18. package/dist/cli/diff.js.map +1 -1
  19. package/dist/cli/explain.js +57 -12
  20. package/dist/cli/explain.js.map +1 -1
  21. package/dist/cli/fix.d.ts +15 -0
  22. package/dist/cli/fix.js +13 -2
  23. package/dist/cli/fix.js.map +1 -1
  24. package/dist/cli/index.js +9 -2
  25. package/dist/cli/index.js.map +1 -1
  26. package/dist/cli/map.d.ts +2 -0
  27. package/dist/cli/map.js +13 -0
  28. package/dist/cli/map.js.map +1 -1
  29. package/dist/cli/run.js +6 -4
  30. package/dist/cli/run.js.map +1 -1
  31. package/dist/cli-ai/index.js +2 -1
  32. package/dist/cli-ai/index.js.map +1 -1
  33. package/dist/cypress/capture.js +16 -6
  34. package/dist/cypress/capture.js.map +1 -1
  35. package/dist/exercised.d.ts +15 -0
  36. package/dist/exercised.js +7 -1
  37. package/dist/exercised.js.map +1 -1
  38. package/dist/explain.d.ts +78 -3
  39. package/dist/explain.js +87 -9
  40. package/dist/explain.js.map +1 -1
  41. package/dist/htmlReport.js +39 -0
  42. package/dist/htmlReport.js.map +1 -1
  43. package/dist/index.d.ts +1 -0
  44. package/dist/index.js.map +1 -1
  45. package/dist/ingest.d.ts +30 -0
  46. package/dist/ingest.js +46 -1
  47. package/dist/ingest.js.map +1 -1
  48. package/dist/junit.js +41 -0
  49. package/dist/junit.js.map +1 -1
  50. package/dist/mcp/server.js +11 -0
  51. package/dist/mcp/server.js.map +1 -1
  52. package/dist/nameDrift.d.ts +25 -1
  53. package/dist/nameDrift.js +37 -7
  54. package/dist/nameDrift.js.map +1 -1
  55. package/dist/playwright/capture.js +7 -4
  56. package/dist/playwright/capture.js.map +1 -1
  57. package/dist/redirectFix.d.ts +60 -0
  58. package/dist/redirectFix.js +73 -0
  59. package/dist/redirectFix.js.map +1 -0
  60. package/dist/resolution.d.ts +41 -4
  61. package/dist/resolution.js +66 -5
  62. package/dist/resolution.js.map +1 -1
  63. package/dist/routeDrift.d.ts +105 -0
  64. package/dist/routeDrift.js +96 -0
  65. package/dist/routeDrift.js.map +1 -0
  66. package/dist/selenium/capture.js +14 -3
  67. package/dist/selenium/capture.js.map +1 -1
  68. package/dist/ui/server.js +5 -6
  69. package/dist/ui/server.js.map +1 -1
  70. package/package.json +1 -1
  71. package/skills/ia-qa-heal/SKILL.md +23 -1
package/README.md CHANGED
@@ -347,9 +347,15 @@ sites (MDN, Bootstrap, Material UI, GOV.UK, Wikipedia, Docusaurus…), seven gai
347
347
  the gain is largest on component-framework apps and near zero on content sites, so it is worth
348
348
  saying which one you have before reaching for it.
349
349
 
350
- - **It cannot mutate your app.** Every non-GET request is aborted for the walk, and controls
351
- named like actions (*log out*, *delete*, *pay*…) are never clicked — a logout handler that
352
- only clears local storage sends no request for the network guard to catch.
350
+ - **Two guards, and you should know the limit of both.** Every non-GET request is aborted for
351
+ the walk, and controls named like actions (*log out*, *delete*, *pay*…) are never clicked —
352
+ a logout handler that only clears local storage sends no request for the network guard to
353
+ catch, which is why the second guard exists.
354
+ **Neither covers a `GET` that writes.** `GET /api/orders/42/archive` is a REST violation and
355
+ it is also common, in admin links, one-click confirmations and older apps; if such a
356
+ endpoint sits behind a control whose name reads like anything else, `--deep` will click it.
357
+ The denylist is the only thing between you and that, and it matches on names. **Run `--deep`
358
+ against staging the first time**, read what it clicked, and only then point it at production.
353
359
  - **What it reaches but cannot contract is reported**, not hidden (`↩ N left out`): a selector
354
360
  must name exactly one element, and a positional one captured inside a menu can collide with
355
361
  the page behind it.
@@ -422,8 +428,63 @@ rewrites the literal in your files. Four outcomes, one repaired automatically:
422
428
  | reaches **nothing**, and its element is still there | 🔧 rewritten |
423
429
  | reaches a **different** element | ⛔ never rewritten — your test passes and acts on the wrong thing |
424
430
  | reaches **several** elements | ⛔ a coin flip |
431
+ | reached **several** and now reaches **none** | ⛔ the candidates are named, none is chosen for you |
425
432
  | its element is **gone** | ⛔ nothing to rewrite towards |
426
433
 
434
+ That fourth row is the one a route migration produces — every `a[href="/index.php/cart"]`
435
+ becoming `a[href="/cart"]` in one commit. The string used to match two links and now matches
436
+ neither, so your suite is red; what it could have meant is still on the page and is listed with
437
+ its new address. No rewrite is offered, and that is not timidity: the binding was already
438
+ ambiguous, so which of the two your test meant was never established. Picking one would be a
439
+ coin flip wearing a fix's clothes.
440
+
441
+ ### A link that leads somewhere else
442
+
443
+ `href` is a **destination**, not an address. Because `stableSelector` prefers `a[href="…"]`,
444
+ a link whose route moved shows up as a moved selector — reported, until now, on the same line
445
+ as a button that slid one slot down the DOM:
446
+
447
+ ```
448
+ 🧭 2 links now lead somewhere else (the element is the same — its destination is not):
449
+ • Write a contract in the browser → [home]
450
+ /devtools/eval-contract-runner → /qatools/eval-contract
451
+ • ? [mcp-server]
452
+ /devtools/eval-contract-runner → /qatools/eval-contract
453
+ Not failing the run — no test navigates to these. Check the ones you reach by URL.
454
+ ```
455
+
456
+ It **does not fail your run on its own**: an app is allowed to reorganise its URLs, and a gate
457
+ that goes red on that is a gate someone switches off. It fails only when your suite navigates
458
+ to the route that moved — `ingest` now inventories `page.goto`, `cy.visit`, `driver.get` and
459
+ `browser.url`, so that case arrives with its `file:line`. No `ingest`, no escalation.
460
+
461
+ Nothing here is ever rewritten. A `page.goto` is not a locator, and the new route may be the
462
+ same page renamed or a different page entirely — you can tell in a second from two URLs, and
463
+ the tool cannot tell at all.
464
+
465
+ Measured across two real captures of a 142-page app: **2 findings over 4 563 named links**, and
466
+ zero on a second corpus. Details, including the false positives the first measurement produced,
467
+ are in `SPEC-route-drift.md`.
468
+
469
+ ### When a page you declared has moved
470
+
471
+ `map` already notices that the browser landed somewhere other than the URL in `config.json`.
472
+ It now offers the correction, and `--fix-redirects` writes it:
473
+
474
+ ```
475
+ ↪️ 1 declared page is no longer at the URL config.json declares:
476
+ articles: /articles → /resources
477
+ Run `ia-qa-heal map --fix-redirects` to write these, or edit config.json yourself.
478
+ ```
479
+
480
+ Left uncorrected, the contract for `/resources` is written under the name `articles`, which is
481
+ the same wrong-identity problem two apps sharing a `/login` produce.
482
+
483
+ **It refuses when several declared pages land on the same place.** That is not a migration —
484
+ it is an expired session, a redirect to sign-in, or an outage, and applying it would rewrite
485
+ your whole page list to point at the login screen. The group is named and skipped, a genuine
486
+ single move in the same run still applies, and the message sends you to `session --check`.
487
+
427
488
  **Your app may already carry the answer.** The contract holds interactive elements only, so a
428
489
  selector on a status div, a cell or an alert is not in it. Usually that stays quiet — such an
429
490
  element has no identity independent of what drifts, so nothing could be repaired anyway. But
package/TUTORIAL.md CHANGED
@@ -422,10 +422,19 @@ elements, the home page 126 → 264.
422
422
 
423
423
  Four things worth knowing before you use it:
424
424
 
425
- **It cannot break your app.** Every non-GET request is aborted for the whole walk, so a click
426
- that would have deleted, paid or submitted anything never reaches your server — and controls
427
- whose name reads like an action (*log out*, *delete*, *pay*…) are not clicked at all, because a
428
- logout handler that just clears local storage sends no request for the guard to stop.
425
+ **Two guards protect your app, and one gap they do not cover.** Every non-GET request is
426
+ aborted for the whole walk, so a click that would have deleted, paid or submitted anything
427
+ never reaches your server — and controls whose name reads like an action (*log out*, *delete*,
428
+ *pay*…) are not clicked at all, because a logout handler that just clears local storage sends
429
+ no request for the network guard to stop.
430
+
431
+ > ⚠️ **A `GET` that writes gets through.** `GET /api/orders/42/archive` violates HTTP, and it
432
+ > is also ordinary: admin action links, one-click confirmations, older apps. The network guard
433
+ > sees a GET and lets it pass; only the name denylist can stop it, and it matches on the
434
+ > control's *label*. So the honest instruction is: **point `--deep` at staging the first time**,
435
+ > read the `via` paths it recorded to see what it clicked, and move it to production once you
436
+ > recognise them. This was reported from the field, on a game where clicking a map cell
437
+ > triggered a real in-game action through a GET.
429
438
 
430
439
  **Elements it reaches but cannot contract are reported, not hidden** (`↩ 133 left out`). A
431
440
  selector must name exactly one element; a positional one captured inside a menu can collide with
@@ -558,6 +567,28 @@ the `file:line` the error message never carried.
558
567
  > **cannot tell which locator the failure is about**, that's not a pass — usually the failing
559
568
  > file was never `ingest`ed, or the locator is built at runtime from a variable.
560
569
 
570
+ > 🧭 **A locator can be fine and the page still wrong.** If a link's *destination* moved —
571
+ > `/devtools/eval-contract-runner` → `/qatools/eval-contract` — the element is untouched, so
572
+ > every locator check passes. `explain` used to answer PASS there, which is true and sends you
573
+ > to look at timing and test data instead of at the route. It now intersects the failure text
574
+ > with the URLs your suite navigates to and answers **BLOCK**, naming both routes and the line
575
+ > that goes to the old one. `diff` reports the same thing under *"N links now lead somewhere else"*, with
576
+ > the page each is on. It does not fail your run unless your suite navigates to the old route,
577
+ > which it knows because `ingest` inventories `page.goto`, `cy.visit`, `driver.get` and
578
+ > `browser.url`. Nothing there is ever rewritten: only you can say whether the new route is the
579
+ > same page renamed or a different page. And when it is a page *you declared* that moved,
580
+ > `ia-qa-heal map --fix-redirects` updates `config.json` — refusing if several pages landed in
581
+ > the same place, because that is an expired session, not a migration.
582
+
583
+ > 🐛 **Fixed in 1.20.0, and worth knowing if you are on an older version.** `explain` used to
584
+ > answer *"this string reached nothing at either moment — it is not drift"* about locators that
585
+ > had reached something at baseline. It read only the current capture and phrased the verdict as
586
+ > if it had read both. That is the worst place in this tool for a false negative: "not drift" is
587
+ > the sentence that sends you away from the selectors and off to look at timing and test data.
588
+ > It now reads `baseline/_resolved/` too, and a locator that resolved then and resolves no longer
589
+ > comes back as drift, with `never-bound` kept for what it always meant — probed at both moments,
590
+ > reached nothing at either.
591
+
561
592
  Read-only: it opens no browser, re-runs nothing, and edits nothing. Repairs still go through
562
593
  `fix`, below.
563
594
 
package/dist/aom.d.ts CHANGED
@@ -132,5 +132,25 @@ export declare function depthMismatchMessage(m: {
132
132
  current: number;
133
133
  }): string;
134
134
  export declare function extractInteractiveElements(page: Page): Promise<MappedElement[]>;
135
+ /**
136
+ * The `.json` files in a contract directory that are **contracts**.
137
+ *
138
+ * A leading underscore is how this codebase spells "not a page" — `_exercised.json`,
139
+ * `_resolved/`, `_layouts/`. The rule was written down as *"every consumer that enumerates
140
+ * contracts already filters it out"*, and it was true of three of them and false of two.
141
+ *
142
+ * What that cost, reproduced end to end: `run` writes `mapping/_exercised.json`, `baseline`
143
+ * promotes it (this directory is copied wholesale, which is right — the record belongs to the
144
+ * moment), and then **`diff --dir` and `fix --dir` both read it as a page named `_exercised`**,
145
+ * fail on `has no "elements" array`, put it in `unreadable` and refuse the entire comparison
146
+ * with exit 2. The remedy they printed — *restore the file from git, or re-capture it* — could
147
+ * not work: re-capturing writes the same file again. A tool breaking its own documented loop
148
+ * with a file it wrote itself, and telling the user to fix it by hand.
149
+ *
150
+ * So the rule lives here now, in the module that knows what a contract is, and the five call
151
+ * sites share it. Three of them already agreed; the point is that agreeing by coincidence is
152
+ * what produced this.
153
+ */
154
+ export declare function contractFilesIn(dir: string): string[];
135
155
  export declare function saveMapping(mapping: PageMapping, dir?: string): string;
136
156
  export declare function loadMapping(pageName: string, dir?: string): PageMapping;
package/dist/aom.js CHANGED
@@ -37,6 +37,7 @@ exports.isSameCapture = isSameCapture;
37
37
  exports.depthMismatch = depthMismatch;
38
38
  exports.depthMismatchMessage = depthMismatchMessage;
39
39
  exports.extractInteractiveElements = extractInteractiveElements;
40
+ exports.contractFilesIn = contractFilesIn;
40
41
  exports.saveMapping = saveMapping;
41
42
  exports.loadMapping = loadMapping;
42
43
  const fs = __importStar(require("fs"));
@@ -112,6 +113,30 @@ function depthMismatchMessage(m) {
112
113
  async function extractInteractiveElements(page) {
113
114
  return page.evaluate(extract_1.extractInPage);
114
115
  }
116
+ /**
117
+ * The `.json` files in a contract directory that are **contracts**.
118
+ *
119
+ * A leading underscore is how this codebase spells "not a page" — `_exercised.json`,
120
+ * `_resolved/`, `_layouts/`. The rule was written down as *"every consumer that enumerates
121
+ * contracts already filters it out"*, and it was true of three of them and false of two.
122
+ *
123
+ * What that cost, reproduced end to end: `run` writes `mapping/_exercised.json`, `baseline`
124
+ * promotes it (this directory is copied wholesale, which is right — the record belongs to the
125
+ * moment), and then **`diff --dir` and `fix --dir` both read it as a page named `_exercised`**,
126
+ * fail on `has no "elements" array`, put it in `unreadable` and refuse the entire comparison
127
+ * with exit 2. The remedy they printed — *restore the file from git, or re-capture it* — could
128
+ * not work: re-capturing writes the same file again. A tool breaking its own documented loop
129
+ * with a file it wrote itself, and telling the user to fix it by hand.
130
+ *
131
+ * So the rule lives here now, in the module that knows what a contract is, and the five call
132
+ * sites share it. Three of them already agreed; the point is that agreeing by coincidence is
133
+ * what produced this.
134
+ */
135
+ function contractFilesIn(dir) {
136
+ if (!fs.existsSync(dir))
137
+ return [];
138
+ return fs.readdirSync(dir).filter((f) => f.endsWith('.json') && !f.startsWith('.') && !f.startsWith('_'));
139
+ }
115
140
  function saveMapping(mapping, dir = (0, config_1.mappingDir)()) {
116
141
  fs.mkdirSync(dir, { recursive: true });
117
142
  const file = (0, config_1.mappingPath)(mapping.page, dir);
package/dist/aom.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"aom.js","sourceRoot":"","sources":["../src/aom.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"aom.js","sourceRoot":"","sources":["../src/aom.ts"],"names":[],"mappings":"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"}
@@ -157,7 +157,10 @@ function resolveSelectors(args) {
157
157
  out[pom] = anchor ? { status: 'anchored', selector: anchor } : { status: 'outside' };
158
158
  }
159
159
  else {
160
- out[pom] = { status: 'ambiguous', count: nodes.length };
160
+ // `mapped` is every contracted element this string could have meant. Recording it is
161
+ // what lets the next capture ask whether they survived: without it an ambiguous
162
+ // binding is a dead end, and the drift it hides is invisible to every other check.
163
+ out[pom] = { status: 'ambiguous', count: nodes.length, selectors: mapped };
161
164
  }
162
165
  }
163
166
  return out;
@@ -1 +1 @@
1
- {"version":3,"file":"resolve.js","sourceRoot":"","sources":["../../src/browser/resolve.js"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;;AAEH,4CAqIC;AArID,SAAgB,gBAAgB,CAAC,IAAI;IACnC,sFAAsF;IACtF,0EAA0E;IAC1E,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC;IAC9B,MAAM,iBAAiB,GAAG,IAAI,CAAC,QAAQ,CAAC;IACxC;;;;;;;;;OASG;IACH,MAAM,aAAa,GAAG,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC;IAE3C;;;;;;OAMG;IACH,MAAM,cAAc,GAAG,CAAC,aAAa,EAAE,cAAc,EAAE,WAAW,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;IAEtG,SAAS,SAAS,CAAC,CAAC;QAClB,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IAC7C,CAAC;IAED;;;;;;;;;;;;;;;;;;OAkBG;IACH,SAAS,cAAc,CAAC,EAAE;QACxB,IAAI,MAAM,GAAG,IAAI,CAAC;QAClB,KAAK,MAAM,IAAI,IAAI,cAAc,EAAE,CAAC;YAClC,MAAM,KAAK,GAAG,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;YACpC,IAAI,KAAK,EAAE,CAAC;gBACV,MAAM,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC;gBACrD,MAAM;YACR,CAAC;QACH,CAAC;QACD,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC,EAAE;YAAE,MAAM,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QAC5F,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,KAAK,GAAG,EAAE,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC;YAC5C,IAAI,KAAK;gBAAE,MAAM,GAAG,EAAE,CAAC,OAAO,CAAC,WAAW,EAAE,GAAG,eAAe,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC;QAC3F,CAAC;QACD,IAAI,CAAC,MAAM;YAAE,OAAO,IAAI,CAAC;QAEzB,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,QAAQ,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;YAC/C,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,EAAE;gBAAE,OAAO,IAAI,CAAC;QACvD,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,uFAAuF;IACvF,oFAAoF;IACpF,MAAM,UAAU,GAAG,IAAI,GAAG,EAAE,CAAC;IAC7B,KAAK,MAAM,EAAE,IAAI,iBAAiB,EAAE,CAAC;QACnC,IAAI,CAAC;YACH,MAAM,EAAE,GAAG,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;YACtC,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;gBAAE,UAAU,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;QACxD,CAAC;QAAC,MAAM,CAAC;YACP,oFAAoF;QACtF,CAAC;IACH,CAAC;IAED,MAAM,GAAG,GAAG,EAAE,CAAC;IACf,KAAK,MAAM,GAAG,IAAI,YAAY,EAAE,CAAC;QAC/B,IAAI,KAAK,CAAC;QACV,IAAI,aAAa,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,aAAa,EAAE,GAAG,CAAC,EAAE,CAAC;YAC9E,uFAAuF;YACvF,sFAAsF;YACtF,KAAK,GAAG,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC;gBAC7E,OAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,KAAK,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC;YAChD,CAAC,CAAC,CAAC;QACL,CAAC;aAAM,CAAC;YACN,IAAI,CAAC;gBACH,KAAK,GAAG,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC;YACrE,CAAC;YAAC,MAAM,CAAC;gBACP,oFAAoF;gBACpF,oFAAoF;gBACpF,kDAAkD;gBAClD,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;gBACjC,SAAS;YACX,CAAC;QACH,CAAC;QAED,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvB,qFAAqF;YACrF,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC;YACpC,SAAS;QACX,CAAC;QAED,MAAM,MAAM,GAAG,EAAE,CAAC;QAClB,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;YACtB,MAAM,EAAE,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YAC7B,IAAI,EAAE,IAAI,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;gBAAE,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACvD,CAAC;QAED,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC9C,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;QACtD,CAAC;aAAM,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC/B,kFAAkF;YAClF,kFAAkF;YAClF,iFAAiF;YACjF,wBAAwB;YACxB,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YACpE,GAAG,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;QACvF,CAAC;aAAM,CAAC;YACN,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC;QAC1D,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC"}
1
+ {"version":3,"file":"resolve.js","sourceRoot":"","sources":["../../src/browser/resolve.js"],"names":[],"mappings":"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"}
@@ -17,6 +17,12 @@ export interface CaptureShardPage {
17
17
  }
18
18
  export interface CaptureShard {
19
19
  pages: CaptureShardPage[];
20
+ /**
21
+ * Page names a visit might have been, when the URL could not say which — see the field of
22
+ * the same name on each capture hook. Absent on a shard written before it existed, which
23
+ * reads as *nothing was dropped*, the only safe default for an older run.
24
+ */
25
+ unattributed?: string[];
20
26
  }
21
27
  export { unionElements };
22
28
  export interface MergeResult {
@@ -24,6 +30,11 @@ export interface MergeResult {
24
30
  shards: number;
25
31
  /** Elements dropped by `config.volatile` — live content kept out of the contracts. */
26
32
  volatileExcluded: number;
33
+ /**
34
+ * Pages a visit might have been, unioned across shards. Never empty-by-default: an older
35
+ * shard carries no such field, and absent reads as *nothing was dropped*.
36
+ */
37
+ unattributed: string[];
27
38
  }
28
39
  export declare function mergeCaptures(cwd?: string): MergeResult | null;
29
40
  /**
@@ -105,6 +105,7 @@ function mergeCaptures(cwd = (0, config_1.baseDir)()) {
105
105
  return null;
106
106
  }
107
107
  const byPage = new Map();
108
+ const unattributed = new Set();
108
109
  for (const file of shardFiles) {
109
110
  let shard;
110
111
  try {
@@ -114,6 +115,8 @@ function mergeCaptures(cwd = (0, config_1.baseDir)()) {
114
115
  console.warn(`⚠ Capture shard ${file} is unreadable — skipping it.`);
115
116
  continue;
116
117
  }
118
+ for (const name of shard.unattributed ?? [])
119
+ unattributed.add(name);
117
120
  for (const p of shard.pages ?? []) {
118
121
  if (!p?.page || !Array.isArray(p.elements))
119
122
  continue;
@@ -168,7 +171,7 @@ function mergeCaptures(cwd = (0, config_1.baseDir)()) {
168
171
  catch {
169
172
  /* no config, or a malformed mapping — the merged contracts stand on their own */
170
173
  }
171
- return { pages, shards: shardFiles.length, volatileExcluded };
174
+ return { pages, shards: shardFiles.length, volatileExcluded, unattributed: [...unattributed].sort() };
172
175
  }
173
176
  /**
174
177
  * The form every CLI verb calls: merge if there is anything to merge, say what
@@ -1 +1 @@
1
- {"version":3,"file":"captureMerge.js","sourceRoot":"","sources":["../src/captureMerge.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"captureMerge.js","sourceRoot":"","sources":["../src/captureMerge.ts"],"names":[],"mappings":"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"}
package/dist/cli/args.js CHANGED
@@ -20,7 +20,7 @@ exports.KNOWN_FLAGS = {
20
20
  login: ['--url', '--session'],
21
21
  secret: ['--json'],
22
22
  session: ['--check', '--offline', '--url', '--session', '--json'],
23
- map: ['--screenshots', '--session', '--deep', '--depth', '--deep-budget'],
23
+ map: ['--screenshots', '--session', '--deep', '--depth', '--deep-budget', '--fix-redirects'],
24
24
  baseline: ['--dry-run'],
25
25
  diff: ['--strict', '--json', '--junit', '--dir', '--report', '--open'],
26
26
  fix: ['--dry-run', '--locators', '--dir', '--json'],
@@ -1 +1 @@
1
- {"version":3,"file":"args.js","sourceRoot":"","sources":["../../src/cli/args.ts"],"names":[],"mappings":";;;AAkCA,gDAeC;AAjDD;;;;;;;;;;;GAWG;AACU,QAAA,WAAW,GAAsC;IAC5D,IAAI,EAAE,CAAC,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,YAAY,EAAE,SAAS,EAAE,gBAAgB,EAAE,aAAa,CAAC;IAClG,QAAQ,EAAE,CAAC,WAAW,EAAE,SAAS,EAAE,aAAa,EAAE,eAAe,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,WAAW,CAAC;IAC9G,KAAK,EAAE,CAAC,OAAO,EAAE,WAAW,CAAC;IAC7B,MAAM,EAAE,CAAC,QAAQ,CAAC;IAClB,OAAO,EAAE,CAAC,SAAS,EAAE,WAAW,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,CAAC;IACjE,GAAG,EAAE,CAAC,eAAe,EAAE,WAAW,EAAE,QAAQ,EAAE,SAAS,EAAE,eAAe,CAAC;IACzE,QAAQ,EAAE,CAAC,WAAW,CAAC;IACvB,IAAI,EAAE,CAAC,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,CAAC;IACtE,GAAG,EAAE,CAAC,WAAW,EAAE,YAAY,EAAE,OAAO,EAAE,QAAQ,CAAC;IACnD,MAAM,EAAE,CAAC,QAAQ,CAAC;IAClB,KAAK,EAAE,CAAC,UAAU,EAAE,QAAQ,CAAC;IAC7B,OAAO,EAAE,CAAC,SAAS,EAAE,WAAW,EAAE,UAAU,EAAE,QAAQ,CAAC;IACvD,KAAK,EAAE,CAAC,UAAU,EAAE,QAAQ,EAAE,WAAW,EAAE,eAAe,CAAC;IAC3D,KAAK,EAAE,CAAC,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,CAAC;IAChD,GAAG,EAAE,CAAC,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,CAAC;IACtF,KAAK,EAAE,CAAC,WAAW,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,CAAC;IAC7D,OAAO,EAAE,CAAC,QAAQ,EAAE,SAAS,CAAC;IAC9B,YAAY,EAAE,CAAC,QAAQ,CAAC;IACxB,EAAE,EAAE,CAAC,QAAQ,EAAE,WAAW,EAAE,YAAY,EAAE,cAAc,EAAE,UAAU,EAAE,WAAW,CAAC;CACnF,CAAC;AAEF,SAAgB,kBAAkB,CAAC,OAAe,EAAE,IAAc;IAChE,MAAM,KAAK,GAAG,mBAAW,CAAC,OAAO,CAAC,CAAC;IACnC,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO;IAChC,KAAK,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;QACrB,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC;YAAE,SAAS;QACjC,IAAI,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;YAAE,SAAS;QAChC,IAAI,CAAC,KAAK,MAAM,IAAI,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;YAC1C,MAAM,IAAI,KAAK,CACb,eAAe,OAAO,0FAA0F;gBAC9G,4GAA4G;gBAC5G,8FAA8F,CACjG,CAAC;QACJ,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,qBAAqB,OAAO,8CAA8C,CAAC,CAAC;IAChH,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"args.js","sourceRoot":"","sources":["../../src/cli/args.ts"],"names":[],"mappings":";;;AAkCA,gDAeC;AAjDD;;;;;;;;;;;GAWG;AACU,QAAA,WAAW,GAAsC;IAC5D,IAAI,EAAE,CAAC,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,YAAY,EAAE,SAAS,EAAE,gBAAgB,EAAE,aAAa,CAAC;IAClG,QAAQ,EAAE,CAAC,WAAW,EAAE,SAAS,EAAE,aAAa,EAAE,eAAe,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,WAAW,CAAC;IAC9G,KAAK,EAAE,CAAC,OAAO,EAAE,WAAW,CAAC;IAC7B,MAAM,EAAE,CAAC,QAAQ,CAAC;IAClB,OAAO,EAAE,CAAC,SAAS,EAAE,WAAW,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,CAAC;IACjE,GAAG,EAAE,CAAC,eAAe,EAAE,WAAW,EAAE,QAAQ,EAAE,SAAS,EAAE,eAAe,EAAE,iBAAiB,CAAC;IAC5F,QAAQ,EAAE,CAAC,WAAW,CAAC;IACvB,IAAI,EAAE,CAAC,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,CAAC;IACtE,GAAG,EAAE,CAAC,WAAW,EAAE,YAAY,EAAE,OAAO,EAAE,QAAQ,CAAC;IACnD,MAAM,EAAE,CAAC,QAAQ,CAAC;IAClB,KAAK,EAAE,CAAC,UAAU,EAAE,QAAQ,CAAC;IAC7B,OAAO,EAAE,CAAC,SAAS,EAAE,WAAW,EAAE,UAAU,EAAE,QAAQ,CAAC;IACvD,KAAK,EAAE,CAAC,UAAU,EAAE,QAAQ,EAAE,WAAW,EAAE,eAAe,CAAC;IAC3D,KAAK,EAAE,CAAC,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,CAAC;IAChD,GAAG,EAAE,CAAC,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,CAAC;IACtF,KAAK,EAAE,CAAC,WAAW,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,CAAC;IAC7D,OAAO,EAAE,CAAC,QAAQ,EAAE,SAAS,CAAC;IAC9B,YAAY,EAAE,CAAC,QAAQ,CAAC;IACxB,EAAE,EAAE,CAAC,QAAQ,EAAE,WAAW,EAAE,YAAY,EAAE,cAAc,EAAE,UAAU,EAAE,WAAW,CAAC;CACnF,CAAC;AAEF,SAAgB,kBAAkB,CAAC,OAAe,EAAE,IAAc;IAChE,MAAM,KAAK,GAAG,mBAAW,CAAC,OAAO,CAAC,CAAC;IACnC,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO;IAChC,KAAK,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;QACrB,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC;YAAE,SAAS;QACjC,IAAI,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;YAAE,SAAS;QAChC,IAAI,CAAC,KAAK,MAAM,IAAI,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;YAC1C,MAAM,IAAI,KAAK,CACb,eAAe,OAAO,0FAA0F;gBAC9G,4GAA4G;gBAC5G,8FAA8F,CACjG,CAAC;QACJ,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,qBAAqB,OAAO,8CAA8C,CAAC,CAAC;IAChH,CAAC;AACH,CAAC"}
@@ -42,9 +42,30 @@ export interface AuditReport {
42
42
  deadLocators: DeadLocator[];
43
43
  unresolvedSelectors: string[];
44
44
  advisory: boolean;
45
+ /**
46
+ * When the contract this verdict was computed from was captured — the OLDEST page in it.
47
+ *
48
+ * Every other number here is a fact about a moment, and the moment was never stated. This
49
+ * verb's verdict depends **entirely** on the age of the mapping: a locator "matching
50
+ * nothing" means nothing at all until you know whether the capture is an hour or a month
51
+ * old. A field report ran `audit`, read the dead locators, and concluded the project's
52
+ * documentation was stale — when what was stale was the capture. `map` and `rebaseline`
53
+ * print their dates; the one verb that needs it most did not.
54
+ *
55
+ * `null` when no page carries the field — a contract written before it existed.
56
+ */
57
+ capturedAt: string | null;
45
58
  }
46
59
  export declare function auditHeadline(r: Pick<AuditReport, 'verdict' | 'deadLocators' | 'locatorsJudged'>): string;
47
- export declare function auditCounts(r: Pick<AuditReport, 'pagesMapped' | 'locatorsNotJudged'>): string[];
60
+ /**
61
+ * How old the contract is, in words, or nothing when it does not say.
62
+ *
63
+ * `describeAge` is reused from `session --check` rather than re-rounded here: two verbs
64
+ * printing "2 days" and "49 hours" for the same interval is the kind of small divergence
65
+ * that makes a reader doubt both.
66
+ */
67
+ export declare function captureAge(capturedAt: string | null | undefined, now?: Date): string;
68
+ export declare function auditCounts(r: Pick<AuditReport, 'pagesMapped' | 'locatorsNotJudged' | 'capturedAt'>, now?: Date): string[];
48
69
  export interface DeadLocator {
49
70
  /** As written in the test file, not as normalized for lookup. */
50
71
  name: string;
package/dist/cli/audit.js CHANGED
@@ -34,6 +34,7 @@ var __importStar = (this && this.__importStar) || (function () {
34
34
  })();
35
35
  Object.defineProperty(exports, "__esModule", { value: true });
36
36
  exports.auditHeadline = auditHeadline;
37
+ exports.captureAge = captureAge;
37
38
  exports.auditCounts = auditCounts;
38
39
  exports.containsAsWords = containsAsWords;
39
40
  exports.findDeadLocators = findDeadLocators;
@@ -45,6 +46,7 @@ const match_1 = require("../browser/match");
45
46
  const config_1 = require("../config");
46
47
  const ingest_1 = require("../ingest");
47
48
  const nameLocators_1 = require("../nameLocators");
49
+ const sessionCheck_1 = require("../sessionCheck");
48
50
  const summary_1 = require("./summary");
49
51
  function auditHeadline(r) {
50
52
  const n = r.deadLocators.length;
@@ -52,8 +54,29 @@ function auditHeadline(r) {
52
54
  return `PASS · ${r.locatorsJudged} locators all resolve`;
53
55
  return `${r.verdict} · ${n} locator name${n === 1 ? '' : 's'} match nothing`;
54
56
  }
55
- function auditCounts(r) {
56
- return [`${r.pagesMapped} pages`, r.locatorsNotJudged > 0 ? `${r.locatorsNotJudged} not judged` : ''].filter(Boolean);
57
+ /**
58
+ * How old the contract is, in words, or nothing when it does not say.
59
+ *
60
+ * `describeAge` is reused from `session --check` rather than re-rounded here: two verbs
61
+ * printing "2 days" and "49 hours" for the same interval is the kind of small divergence
62
+ * that makes a reader doubt both.
63
+ */
64
+ function captureAge(capturedAt, now = new Date()) {
65
+ if (!capturedAt)
66
+ return '';
67
+ const at = Date.parse(capturedAt);
68
+ if (Number.isNaN(at))
69
+ return '';
70
+ return `contract captured ${(0, sessionCheck_1.describeAge)((now.getTime() - at) / 1000)} ago`;
71
+ }
72
+ function auditCounts(r, now = new Date()) {
73
+ return [
74
+ `${r.pagesMapped} pages`,
75
+ r.locatorsNotJudged > 0 ? `${r.locatorsNotJudged} not judged` : '',
76
+ // Beside the counts, not in a footnote: this verdict is only as true as the capture is
77
+ // fresh, and a reader who does not see the age assumes it is current.
78
+ captureAge(r.capturedAt, now),
79
+ ].filter(Boolean);
57
80
  }
58
81
  const FUZZY_SUGGEST = 0.6;
59
82
  /**
@@ -94,6 +117,9 @@ function pickUnique(candidates, kind) {
94
117
  function readMappings(dir) {
95
118
  const pages = [];
96
119
  const elements = [];
120
+ // The oldest moment in the contract, because that is the one the verdict is actually as
121
+ // good as. See `AuditReport.capturedAt`.
122
+ let capturedAt = null;
97
123
  const files = fs
98
124
  .readdirSync(dir)
99
125
  .filter((f) => f.endsWith('.json') && !f.startsWith('.') && !f.startsWith('_'));
@@ -108,6 +134,11 @@ function readMappings(dir) {
108
134
  if (!parsed || !Array.isArray(parsed.elements))
109
135
  continue;
110
136
  const page = file.replace(/\.json$/, '');
137
+ // The OLDEST moment, not the newest: the verdict is only as good as the stalest page it
138
+ // was computed from, and showing the freshest would flatter it.
139
+ if (parsed.capturedAt && (capturedAt === null || parsed.capturedAt < capturedAt)) {
140
+ capturedAt = parsed.capturedAt;
141
+ }
111
142
  pages.push(page);
112
143
  for (const el of parsed.elements) {
113
144
  elements.push({ role: el.role, name: el.name, selector: el.selector, page });
@@ -129,7 +160,7 @@ function readMappings(dir) {
129
160
  }
130
161
  }
131
162
  }
132
- return { pages, elements };
163
+ return { pages, elements, capturedAt };
133
164
  }
134
165
  /**
135
166
  * Which inventoried names resolve to nothing the contract holds?
@@ -228,7 +259,7 @@ function auditProject(opts = {}) {
228
259
  ` or pass the test paths directly: \`ia-qa-heal audit tests/\`.`,
229
260
  };
230
261
  }
231
- const { pages, elements } = readMappings(dir);
262
+ const { pages, elements, capturedAt } = readMappings(dir);
232
263
  const dead = findDeadLocators(usage, elements);
233
264
  const allSites = Object.values(usage.names ?? {}).flat();
234
265
  const judgedSites = allSites.filter(nameLocators_1.judgeable);
@@ -274,6 +305,7 @@ function auditProject(opts = {}) {
274
305
  locatorsNotJudged: unjudgedSites,
275
306
  deadLocators: dead,
276
307
  unresolvedSelectors,
308
+ capturedAt,
277
309
  advisory: !strict,
278
310
  },
279
311
  elements: elements.length,
@@ -373,7 +405,12 @@ async function runAudit(args) {
373
405
  `\n (\`ia-qa-heal discover\` lists them; ${pageCount} page${pageCount === 1 ? ' is' : 's are'} mapped today)` +
374
406
  `\n · unmapped state — \`map\` captures a page in ONE state. A label that only` +
375
407
  `\n appears after a click (a tab, a mode toggle, an open dialog) is not in the` +
376
- `\n contract, and a test that clicks first is right while this says otherwise.`);
408
+ `\n contract, and a test that clicks first is right while this says otherwise.` +
409
+ // The third cause, and the one that sent a field report chasing the wrong thing: the
410
+ // capture itself. Named here beside the other two rather than left to the summary
411
+ // line, because this is the paragraph someone reads before believing a row.
412
+ (report.capturedAt ? `\n · a stale capture — ${captureAge(report.capturedAt)}. Re-run \`ia-qa-heal map\`` +
413
+ `\n before concluding anything from the rows above.` : ''));
377
414
  }
378
415
  else {
379
416
  console.log(`\n Coverage decides what this verdict is worth: ${pageCount} page${pageCount === 1 ? '' : 's'} mapped.` +
@@ -385,7 +422,7 @@ async function runAudit(args) {
385
422
  else {
386
423
  console.log('');
387
424
  }
388
- (0, summary_1.summaryLine)('audit', verdict === 'PASS' ? 'ok' : verdict === 'FIX' ? 'fix' : 'block', auditHeadline({ verdict, deadLocators: dead, locatorsJudged: judged }), auditCounts({ pagesMapped: pageCount, locatorsNotJudged: unjudgedSites }));
425
+ (0, summary_1.summaryLine)('audit', verdict === 'PASS' ? 'ok' : verdict === 'FIX' ? 'fix' : 'block', auditHeadline({ verdict, deadLocators: dead, locatorsJudged: judged }), auditCounts({ pagesMapped: pageCount, locatorsNotJudged: unjudgedSites, capturedAt: report.capturedAt }));
389
426
  process.exitCode = strict && verdict !== 'PASS' ? 1 : 0;
390
427
  }
391
428
  //# sourceMappingURL=audit.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"audit.js","sourceRoot":"","sources":["../../src/cli/audit.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"audit.js","sourceRoot":"","sources":["../../src/cli/audit.ts"],"names":[],"mappings":"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"}