@ia-qa/self-healing 1.7.7 → 1.7.10

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.
@@ -52,6 +52,7 @@ exists only in a state nothing captured (behind a tab, a modal, a mode toggle).
52
52
  | "did anything drift?" | `diff` → PASS/FIX/BLOCK (the CI gate) |
53
53
  | "the suite already ran with `IAQA_CAPTURE=1`" | `diff` — **on its own**. It picks up `.capture/` and never opens a browser. Do *not* re-run `run`, and never `map` (that re-captures from scratch, without the session the suite had) |
54
54
  | "their suite takes 20 min and `run` runs it twice" | `run --no-verify` — the second run is the post-fix verification, and it is optional. Say what they lose: the exit code then reflects the diff, not a re-proved green suite |
55
+ | "here is my failing test / red build — why?" | `explain --junit <file>` (or `--message "<error text>"`, or pipe the log). Start here when the user hands you a failure rather than a question: it names the locator, judges it against the two captures, and a **PASS rules drift out** so you stop hunting selectors. It re-runs nothing and edits nothing |
55
56
  | "day one, no baseline — is my suite still valid?" | `audit` |
56
57
  | "is the app I mapped even sound?" | `check` (dead links · unnamed elements · name collisions · orphan pages) |
57
58
  | "which pages am I *not* covering?" | `discover` (`--sitemap` / `--crawl`; suggests only). Behind a login `--sitemap` sees nothing — `--crawl` is the one that works, and it reuses the session |
@@ -69,7 +70,7 @@ Exact flags: `ia-qa-heal <verb> --help`. Do not guess them from this file.
69
70
 
70
71
  ### Machine-readable outputs
71
72
 
72
- `diff`, `run`, `audit`, `check` and `history` all take `--json`. Prefer it over parsing prose.
73
+ `diff`, `run`, `audit`, `check`, `explain` and `history` all take `--json`. Prefer it over parsing prose.
73
74
  Under `run --json`, every human line moves to stderr so stdout stays one parseable document.
74
75
  `diff --junit` / `run --junit` additionally write JUnit XML — the format a CI already knows.
75
76
 
@@ -158,6 +159,14 @@ clicking the wrong thing), or a name-drift finding that is not attributable.
158
159
  (`repairable` / `working` / `ambiguous` / `not seen`), and it is only meaningful next to
159
160
  the page coverage: `not seen` over 6 mapped pages out of 163 says nothing about the suite.
160
161
 
162
+ 15. **Never report `explain`'s PASS as "the test passes".** It says one thing: the locators in
163
+ that failure still reach their elements, so the red build is **not** selector drift. It
164
+ re-ran nothing, so it is not evidence of flakiness either — it *narrows* the search to
165
+ timing, test data or an application error. Tell the user which of those to look at next;
166
+ do not close the ticket. And never report its **refusal** as a pass: "cannot tell which
167
+ locator this is about" (exit 2) is an unanswered question, usually an un-ingested file
168
+ or a locator built at runtime, and the remedy is in the message.
169
+
161
170
  ## 5. What leaves the machine
162
171
 
163
172
  Nothing, except: requests to the user's **own** `baseUrl` (`check`'s link half, `discover --crawl`