tamash-playwright 0.12.0-beta.2 → 0.13.0-beta.1
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/CHANGELOG.md +14 -1
- package/README.md +42 -0
- package/RELEASE-TESTING.md +47 -0
- package/dist/bindings/index.d.ts.map +1 -1
- package/dist/bindings/index.js +8 -0
- package/dist/bindings/index.js.map +1 -1
- package/dist/bindings/locator.binding.d.ts +2 -1
- package/dist/bindings/locator.binding.d.ts.map +1 -1
- package/dist/bindings/locator.binding.js +40 -0
- package/dist/bindings/locator.binding.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/usage.md +52 -0
package/CHANGELOG.md
CHANGED
|
@@ -3,7 +3,13 @@
|
|
|
3
3
|
All notable changes to this project are documented here. Format loosely follows
|
|
4
4
|
[Keep a Changelog](https://keepachangelog.com/); dates are when each version was published.
|
|
5
5
|
|
|
6
|
-
## [
|
|
6
|
+
## [Unreleased]
|
|
7
|
+
|
|
8
|
+
### Fixed
|
|
9
|
+
|
|
10
|
+
- **A context/page built off `browser` in `test.beforeAll` (shared across tests) was never healing-aware.** Only the `context`/`page` fixtures were wrapped with the healing proxy — a consumer using `test.beforeAll(async ({ browser }) => { context = await browser.newContext(); page = await context.newPage(); })` to log in once and reuse the session across every test in a file bypassed both, so nothing built that way ever healed. Found via a real support report. Fixed: the `browser` fixture is now wrapped too (`bindBrowser()`, `src/bindings/locator.binding.ts`) — `browser.newContext()`, `browser.newPage()`, and `browser.contexts()` all now hand back healing-aware objects, exactly like `context.newPage()` already did. Doesn't cover a browser obtained entirely outside the fixture system (e.g. `chromium.launch()` in `globalSetup`) — see "What else it heals" in README.md/usage.md for the manual `bindContext()`/`bindPageActions()` escape hatch for that case.
|
|
11
|
+
|
|
12
|
+
## [0.12.0] - 2026-09-13
|
|
7
13
|
|
|
8
14
|
### Added
|
|
9
15
|
|
|
@@ -29,6 +35,13 @@ All notable changes to this project are documented here. Format loosely follows
|
|
|
29
35
|
be persisted — it fell back to a transient one-shot element reference with a `needsReview`
|
|
30
36
|
note. Fixed here.)*
|
|
31
37
|
|
|
38
|
+
- **Documented [`tamash-playwright-dashboard`](https://www.npmjs.com/package/tamash-playwright-dashboard).**
|
|
39
|
+
A separate, zero-config reporter package: pass-rate trends, per-test history across runs, and —
|
|
40
|
+
specific to this package — a Self-Healing Analytics page (tests/elements healed, token usage
|
|
41
|
+
per run and cumulatively, every heal event across recorded history), read directly from the
|
|
42
|
+
`self-healing-<action>` JSON attachment this package already writes. No code change on this
|
|
43
|
+
side — README and usage.md gained a "Trends across runs" section pointing to it.
|
|
44
|
+
|
|
32
45
|
### Fixed
|
|
33
46
|
|
|
34
47
|
- **`describeFactoryCall` rendered `iframe "undefined"` for a no-arg `frameLocator()`.** The
|
package/README.md
CHANGED
|
@@ -334,9 +334,31 @@ Everything below applies identically in both places — same package, same behav
|
|
|
334
334
|
Beyond a single broken `click`/`fill`/`getByRole` on the main page, all of this works automatically once you've done Steps 1–2:
|
|
335
335
|
|
|
336
336
|
- **Popups and extra tabs.** A page opened via `context.newPage()`, `window.open`, or a `target="_blank"` link is just as healing-aware as your main `page` — no manual wrapping needed.
|
|
337
|
+
- **A context/page built from `browser` in `test.beforeAll`.** The common "log in once, reuse the session across every test in the file" pattern — `test.beforeAll(async ({ browser }) => { context = await browser.newContext(); page = await context.newPage(); })` — heals too, as long as `browser` itself came from the test fixtures (destructured from the callback, not imported separately). See [If you build a context/page outside the fixture system entirely](#if-you-build-a-contextpage-outside-the-fixture-system-entirely) for the one case this doesn't cover.
|
|
337
338
|
- **Elements inside `<iframe>`s.** `page.frameLocator('#my-iframe')` and anything chained off it heals the same way, scoped correctly to the iframe's own document. Playwright 1.63's no-argument `page.frameLocator()` ("match in any frame") also heals when the page has a single frame; on a page with several frames it can't be told which one you meant, so healing steps aside cleanly (no wrong-frame guess) — pass an explicit `frameLocator('#id')` there.
|
|
338
339
|
- **Most of the Playwright API surface**, not just clicks and fills — `check`, `selectOption`, `dragTo`, `dispatchEvent`, read methods like `textContent`/`getAttribute`/`isChecked`, `screenshot`, and more. A few are deliberately excluded, but still reported honestly on failure rather than silently retried: `dragTo`/`drop` can't be safely healed by guessing a replacement element for just one side of a two-sided drag, and `waitFor` is a state check rather than an action — a timeout on it can mean a genuinely broken selector, or that the element correctly never reached the expected state (verifying something does *not* appear, say), which can't be told apart from the error alone. (`expect(locator).toBeVisible()` and similar assertions are excluded for the same reason, but never even reach this mechanism — they're Playwright's own matcher, not a method this wraps.)
|
|
339
340
|
|
|
341
|
+
### If you build a context/page outside the fixture system entirely
|
|
342
|
+
|
|
343
|
+
Everything above heals because it's ultimately reachable from the `browser`/`context`/`page` fixtures Playwright hands your test — that's the one thing this package can actually intercept. Two real patterns fall outside that:
|
|
344
|
+
|
|
345
|
+
- **A browser launched directly**, not obtained from a fixture — `import { chromium } from '@playwright/test'; const browser = await chromium.launch();` inside `test.beforeAll` or anywhere else. This `browser` never passed through the test fixtures, so there's nothing here to wrap it.
|
|
346
|
+
- **`globalSetup`** (the `globalSetup` option in `playwright.config.ts`) runs as its own isolated script, outside the test runner and its fixtures entirely — typically used to log in once and save `storageState.json` for every test to reuse via `test.use({ storageState: 'state.json' })`. Any page actions performed there aren't healing-aware either.
|
|
347
|
+
|
|
348
|
+
For either case, wrap the object yourself with the same functions this package uses internally — exported from the package root for exactly this:
|
|
349
|
+
|
|
350
|
+
```ts
|
|
351
|
+
import { chromium } from '@playwright/test';
|
|
352
|
+
import { bindContext, bindPageActions } from 'tamash-playwright';
|
|
353
|
+
|
|
354
|
+
const browser = await chromium.launch();
|
|
355
|
+
const context = bindContext(await browser.newContext());
|
|
356
|
+
const page = await context.newPage(); // already healing-aware — bindContext() wraps newPage() too
|
|
357
|
+
// or, wrapping a page directly: const page = bindPageActions(await context.newPage());
|
|
358
|
+
```
|
|
359
|
+
|
|
360
|
+
Note that `storageState` itself needs no special handling — it's just context data (cookies/`localStorage`) applied when a context is created. As long as the *test* context/page that consumes it comes from the normal `context`/`page` fixtures (or `browser.newContext({ storageState: ... })` off a fixture-provided `browser`), it heals exactly as usual; only the one-off script that *generates* `storageState.json` in `globalSetup` needs the manual wrapping above, and only if you want that login flow itself to heal.
|
|
361
|
+
|
|
340
362
|
## When there's no name to match: finding elements by structure
|
|
341
363
|
|
|
342
364
|
Sometimes the broken element has no useful identity of its own — a plain `<input>` with no name, no working placeholder, and a label that's visually right next to it but never actually linked (no `<label for>`, no `aria-labelledby`). A human finds it instantly by sight; matching purely on accessible name has nothing to grab onto.
|
|
@@ -565,6 +587,26 @@ The same detail is also printed to the console as it happens, one line per attem
|
|
|
565
587
|
[self-healer] src/pages/loginpage.ts:11 — locator.fill "Username Textbox" -> HEALED [provider=ollama:gpt-oss:120b, vision=no, actionRecovery=no, suggested="getByRole(\"textbox\", { name: \"Username\" })", 620 tokens (489 input + 131 output)] — locator.fill: Timeout 8000ms exceeded.
|
|
566
588
|
```
|
|
567
589
|
|
|
590
|
+
## Trends across runs: `tamash-playwright-dashboard`
|
|
591
|
+
|
|
592
|
+
The per-run detail above is everything Playwright's own HTML report gives you — great for one run, but it doesn't track history. [`tamash-playwright-dashboard`](https://www.npmjs.com/package/tamash-playwright-dashboard) is a separate, zero-config reporter package that does: pass-rate trends, per-test history across runs, a Test Health view (newly failed/fixed, still failing, flaky), and — specific to this package — a **Self-Healing Analytics** page: tests/elements healed, token usage per run and cumulatively, and every heal event across your recorded history. A single self-contained `index.html`, no server, safe to open via `file://`.
|
|
593
|
+
|
|
594
|
+
```sh
|
|
595
|
+
npm install -D tamash-playwright-dashboard
|
|
596
|
+
```
|
|
597
|
+
|
|
598
|
+
```ts
|
|
599
|
+
// playwright.config.ts
|
|
600
|
+
export default defineConfig({
|
|
601
|
+
reporter: [
|
|
602
|
+
['list'],
|
|
603
|
+
['tamash-playwright-dashboard'],
|
|
604
|
+
],
|
|
605
|
+
});
|
|
606
|
+
```
|
|
607
|
+
|
|
608
|
+
It reads this package's heal reports straight off the test result — the same JSON attachment described above — with nothing to configure: install both packages and the Self-Healing tab appears on its own. [Live sample report](https://qtpsudhakarproducts.github.io/tamash-playwright-dashboard/) (synthetic demo data) · [live from this repo's own sample project](https://qtpsudhakarproducts.github.io/tamash-playwright-typescript-playwright/dashboard/index.html) (real heals from CI, growing every run) · [full docs](https://www.npmjs.com/package/tamash-playwright-dashboard).
|
|
609
|
+
|
|
568
610
|
## Using this with an AI coding assistant
|
|
569
611
|
|
|
570
612
|
This package ships a ready-made skill for running its local workflow inside an AI coding assistant — reviewing, applying, verifying, and landing whatever healed at runtime, and onboarding a project to its standards (provider setup, `actionTimeout`, `.describe()` labels) if it hasn't adopted them yet. It's pure orchestration over the exact CLI commands already documented above (`doctor`, `apply-heals`, `verify-heals.cjs`) — no new capability, just packaged so an agent can run the whole loop with judgment instead of you typing each command by hand.
|
package/RELEASE-TESTING.md
CHANGED
|
@@ -27,6 +27,7 @@ currently covered · N/A not applicable to that column.
|
|
|
27
27
|
| Action recovery (scroll/force/wait/dispatch) | Second-order fallback when a healed locator still can't complete the original action. | ⚠️ Repro spec exists but requires `HEALER_ACTION_RECOVERY_ENABLED=true`, which is unset by default — not currently passing out of the box locally either | N/A — opt-in, disabled by default, not set in either CI workflow |
|
|
28
28
|
| iframe healing | Locators inside `<iframe>`s heal the same way, scoped to the correct document. | ✅ e2e (`iframe-ref-repro` — explicit `frameLocator('#id')`; `iframe-noarg-framelocator-repro` — Playwright 1.63's no-arg `page.frameLocator()`: resolve+act, single-frame heal, and clean multi-frame no-op, all run live against 1.63) | ❌ No CI sample test uses an iframe |
|
|
29
29
|
| Popup / new-tab healing (`bindContext`/`bindPageActions`) | A page opened via `context.newPage()`, `page.on('popup', ...)`, or `context.waitForEvent('page')`/`page.waitForEvent('popup')` is healing-aware too. | ✅ Permanent e2e (`popup-newtab-healing.e2e.spec.ts`, real orangehrm.com popup, all 3 obtaining patterns) — but this closed a real gap, not just added a test; see below | ❌ Not covered |
|
|
30
|
+
| `browser` fixture healing (`bindBrowser`) | A context/page built directly off `browser` in `test.beforeAll` (`browser.newContext()`/`.newPage()`), reused across tests, is healing-aware — found via a real support report: it wasn't, before this. | ✅ Permanent e2e (`beforeall-shared-browser-healing.e2e.spec.ts`, two tests reusing one `beforeAll`-built page) — closed a real gap, not just added a test | ❌ Not covered |
|
|
30
31
|
| Full attempt-history logging (`attempts[]`) | Every cache/text/vision/action-recovery attempt recorded, not just the last. | ✅ Unit + e2e | ✅ Visible in every CI console log |
|
|
31
32
|
| Heal caching (`heals.jsonl`) | A previously-confirmed selector is retried before a fresh AI call. | ✅ Unit (`healLog.test.js`) + e2e-observed | ✅ Uploaded as a CI artifact every run, consumed by `apply-heals` |
|
|
32
33
|
| `apply-heals` (permanent fix + PR automation) | Turns a runtime heal into a committed source change; opens a PR in CI. | ✅ Unit (46 tests, all 9 strategies) | ✅ Dedicated CI job, runs every push |
|
|
@@ -122,6 +123,52 @@ healing-disabled verification.
|
|
|
122
123
|
regression set above instead); `healing-disabled.e2e` (needs `HEALER_ENABLED=false`, unchanged by
|
|
123
124
|
this work); CI sample-repo runs (no iframe case there).
|
|
124
125
|
|
|
126
|
+
**Docs-only addition (2026-09-13, no code change)**: documented the companion
|
|
127
|
+
[`tamash-playwright-dashboard`](https://www.npmjs.com/package/tamash-playwright-dashboard) package
|
|
128
|
+
(README, usage.md, and the support repo's `reports.md`/`typescript.md`/top-level README) — a
|
|
129
|
+
separate reporter that reads this package's own `self-healing-<action>` attachment with zero
|
|
130
|
+
config. Verified in the sample repo (`test/beta-0.12.0-ci`): wired `['tamash-playwright-dashboard']`
|
|
131
|
+
into the reporter list, ran the suite, and confirmed `playwright-dashboard/history.json`'s per-run
|
|
132
|
+
summary (`healAttempts`, `healSucceeded`, `healedTestsCount`, `healedElementsCount`, `healTokens`,
|
|
133
|
+
`healNeedsReviewCount`) populated correctly from `pomtest`'s real heal, and `index.html` renders
|
|
134
|
+
the Self-Healing Analytics/Activity views. *(Unrelated finding, not touched at the time: the sample
|
|
135
|
+
repo's `popupnewtabtest`'s target link — orangehrm.com's real footer no longer has an
|
|
136
|
+
"OrangeHRM, Inc" link, so the test failed on its own; a live-site content change, not a regression
|
|
137
|
+
from this or the 1.63 work — since fixed, see below.)*
|
|
138
|
+
|
|
139
|
+
**Follow-up (2026-09-13)**: extended the sample-repo work into a real, live GitHub Pages
|
|
140
|
+
deployment and fixed the site-drift failure above.
|
|
141
|
+
|
|
142
|
+
- **`resolveFrameScope` durability fix, from the published tarball**: the beta.1 CI run
|
|
143
|
+
(`test-tamash` + `apply-heals` verification) failed on the transient no-arg-frameLocator heal
|
|
144
|
+
described above. Root-caused via a focused reproduction: `Locator.normalize()` on a raw
|
|
145
|
+
`page.frames()[i]` `Frame`-rooted locator returns a correct selector *string*
|
|
146
|
+
(`locator('#f').contentFrame().getByLabel(...)`) but an *object* that resolves to nothing.
|
|
147
|
+
`resolveFrameScope` now returns `page.frameLocator('iframe, frame')` (a `FrameLocator`) instead —
|
|
148
|
+
confirmed live both from source (`iframe-noarg-framelocator-repro.spec.ts`'s single-frame test
|
|
149
|
+
now asserts the heal is durable, not transient) and from the **published `0.12.0-beta.2` tarball**
|
|
150
|
+
installed in the sample repo (temporary spec, removed after): heals to
|
|
151
|
+
`locator('[id="f"]').contentFrame().getByLabel('Country')`, no `ref:` fallback.
|
|
152
|
+
- **`popupnewtabtest` fixed**: the live login page's footer changed (the old "OrangeHRM, Inc" link
|
|
153
|
+
is gone). Retargeted to the current VibeTestQ footer link → vibetestq.com/contact's real (if
|
|
154
|
+
accessibility-unlinked) email field. Verified live: heals to `input[name="email"]` via
|
|
155
|
+
`normalize()`, full 5-test suite green.
|
|
156
|
+
- **Self-healing dashboard published to GitHub Pages, for real**: extended the sample repo's
|
|
157
|
+
existing `report-history`/Pages pipeline so `tamash-playwright-dashboard`'s `history.json`
|
|
158
|
+
persists and accumulates across CI runs (restored before each `test` job run, uploaded as an
|
|
159
|
+
artifact, copied into `_site/dashboard/` by `publish-report`, pushed back to `report-history`).
|
|
160
|
+
New "Self-healing dashboard" link on the composed report page. Also found and fixed a real
|
|
161
|
+
regression this introduced along the way: `reporter: [['html'], ['tamash-playwright-dashboard']]`
|
|
162
|
+
silently dropped ALL console output in CI (no `[self-healer]` lines, no pass/fail summary) — a
|
|
163
|
+
custom `reporter` array replaces Playwright's default entirely, so `'list'` had to be named
|
|
164
|
+
explicitly. Merged to `master` (PR #12) and verified live:
|
|
165
|
+
`qtpsudhakarproducts.github.io/tamash-playwright-typescript-playwright/` (200, has the new
|
|
166
|
+
section) and its `/dashboard/index.html` (200, real "Self-Healing Activity" content, not a
|
|
167
|
+
placeholder). CI on `master`: all 5 jobs green, including `publish-report`'s first real run
|
|
168
|
+
under this change.
|
|
169
|
+
- Both `tamash-playwright` and the support repo now link this real, live dashboard alongside the
|
|
170
|
+
dashboard package's own synthetic sample.
|
|
171
|
+
|
|
125
172
|
### [0.11.0-beta.6] — three more local-only subscription providers — 2026-08-29
|
|
126
173
|
|
|
127
174
|
**Added this release**: `cursor-subscription`, `kiro-subscription`, `codex-subscription`. The user
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/bindings/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,KAAK,IAAI,EAAE,KAAK,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAGvE,MAAM,MAAM,eAAe,GAAG;IAC5B,SAAS,EAAE,IAAI,CAAC;IAChB,UAAU,EAAE,KAAK,CAAC;CACnB,CAAC;AAEF,eAAO,MAAM,IAAI,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/bindings/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,KAAK,IAAI,EAAE,KAAK,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAGvE,MAAM,MAAM,eAAe,GAAG;IAC5B,SAAS,EAAE,IAAI,CAAC;IAChB,UAAU,EAAE,KAAK,CAAC;CACnB,CAAC;AAEF,eAAO,MAAM,IAAI,0PAsBf,CAAC;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC"}
|
package/dist/bindings/index.js
CHANGED
|
@@ -4,6 +4,14 @@ exports.expect = exports.test = void 0;
|
|
|
4
4
|
const test_1 = require("@playwright/test");
|
|
5
5
|
const locator_binding_1 = require("./locator.binding");
|
|
6
6
|
exports.test = test_1.test.extend({
|
|
7
|
+
// Worker-scoped, same as Playwright's own `browser` fixture -- overriding it here doesn't need
|
|
8
|
+
// to redeclare that scope, same as `context`/`page` below don't redeclare theirs. Needed so a
|
|
9
|
+
// context/page built directly off `browser` in `test.beforeAll` (bypassing the `context`/`page`
|
|
10
|
+
// fixtures entirely) still arrives healing-aware -- see bindBrowser()'s own comment for the real
|
|
11
|
+
// report this fixes.
|
|
12
|
+
browser: async ({ browser }, use) => {
|
|
13
|
+
await use((0, locator_binding_1.bindBrowser)(browser));
|
|
14
|
+
},
|
|
7
15
|
context: async ({ context }, use) => {
|
|
8
16
|
await use((0, locator_binding_1.bindContext)(context));
|
|
9
17
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/bindings/index.ts"],"names":[],"mappings":";;;AAAA,2CAAuE;AACvE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/bindings/index.ts"],"names":[],"mappings":";;;AAAA,2CAAuE;AACvE,uDAAgG;AAOnF,QAAA,IAAI,GAAG,WAAI,CAAC,MAAM,CAAkB;IAC/C,+FAA+F;IAC/F,8FAA8F;IAC9F,gGAAgG;IAChG,iGAAiG;IACjG,qBAAqB;IACrB,OAAO,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,EAAE,GAAG,EAAE,EAAE;QAClC,MAAM,GAAG,CAAC,IAAA,6BAAW,EAAC,OAAO,CAAC,CAAC,CAAC;IAClC,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,EAAE,GAAG,EAAE,EAAE;QAClC,MAAM,GAAG,CAAC,IAAA,6BAAW,EAAC,OAAO,CAAC,CAAC,CAAC;IAClC,CAAC;IACD,IAAI,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE;QAC5B,MAAM,GAAG,CAAC,IAAA,iCAAe,EAAC,IAAI,CAAC,CAAC,CAAC;IACnC,CAAC;IACD,SAAS,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE;QACjC,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC;IAClB,CAAC;IACD,UAAU,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE;QAClC,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;QAC/B,MAAM,GAAG,CAAC,IAAA,kCAAgB,EAAC,KAAK,CAAC,CAAC,CAAC;IACrC,CAAC;CACF,CAAC,CAAC;AAEH,yCAA0C;AAAjC,8FAAA,MAAM,OAAA"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { BrowserContext, Frame, FrameLocator, Locator, Page } from '@playwright/test';
|
|
1
|
+
import type { Browser, BrowserContext, Frame, FrameLocator, Locator, Page } from '@playwright/test';
|
|
2
2
|
type BindingKind = 'locator' | 'page' | 'frame' | 'frameLocator';
|
|
3
3
|
export declare function describeFactoryCall(prop: string, args: unknown[]): string | undefined;
|
|
4
4
|
export declare function resolveCallerLocation(callSite: Error): string | undefined;
|
|
@@ -12,5 +12,6 @@ export declare function bindLocatorActions(locator: Locator): Locator;
|
|
|
12
12
|
export declare function bindPageActions(page: Page): Page;
|
|
13
13
|
export declare function bindFrameActions(frame: Frame): Frame;
|
|
14
14
|
export declare function bindContext(context: BrowserContext): BrowserContext;
|
|
15
|
+
export declare function bindBrowser(browser: Browser): Browser;
|
|
15
16
|
export {};
|
|
16
17
|
//# sourceMappingURL=locator.binding.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"locator.binding.d.ts","sourceRoot":"","sources":["../../src/bindings/locator.binding.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"locator.binding.d.ts","sourceRoot":"","sources":["../../src/bindings/locator.binding.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,OAAO,EAAE,cAAc,EAAE,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AA2EpG,KAAK,WAAW,GAAG,SAAS,GAAG,MAAM,GAAG,OAAO,GAAG,cAAc,CAAC;AAEjE,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,MAAM,GAAG,SAAS,CA8BrF;AAeD,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,KAAK,GAAG,MAAM,GAAG,SAAS,CAiCzE;AAWD,wBAAgB,mBAAmB,CAAC,cAAc,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CA4B9E;AAsFD,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,CA0C/F;AAmDD,wBAAgB,iBAAiB,CAAC,CAAC,SAAS,OAAO,GAAG,IAAI,GAAG,KAAK,GAAG,YAAY,EAC/E,MAAM,EAAE,CAAC,EACT,IAAI,GAAE,WAAuB,EAC7B,WAAW,CAAC,EAAE,MAAM,EAKpB,UAAU,CAAC,EAAE,YAAY,EAMzB,QAAQ,CAAC,EAAE,MAAM,EAKjB,QAAQ,CAAC,EAAE,KAAK,GACf,CAAC,CAuMH;AAED,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAE5D;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,CAEhD;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,KAAK,GAAG,KAAK,CAEpD;AAgBD,wBAAgB,WAAW,CAAC,OAAO,EAAE,cAAc,GAAG,cAAc,CA6CnE;AAaD,wBAAgB,WAAW,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAgCrD"}
|
|
@@ -12,6 +12,7 @@ exports.bindLocatorActions = bindLocatorActions;
|
|
|
12
12
|
exports.bindPageActions = bindPageActions;
|
|
13
13
|
exports.bindFrameActions = bindFrameActions;
|
|
14
14
|
exports.bindContext = bindContext;
|
|
15
|
+
exports.bindBrowser = bindBrowser;
|
|
15
16
|
const fs_1 = __importDefault(require("fs"));
|
|
16
17
|
const path_1 = __importDefault(require("path"));
|
|
17
18
|
const url_1 = require("url");
|
|
@@ -626,4 +627,43 @@ function bindContext(context) {
|
|
|
626
627
|
knownProxies.add(proxy);
|
|
627
628
|
return proxy;
|
|
628
629
|
}
|
|
630
|
+
// Closes a real gap: a fixture-obtained `browser` used directly in `test.beforeAll` to build a
|
|
631
|
+
// context/page shared across many tests (`test.beforeAll(async ({ browser }) => { context = await
|
|
632
|
+
// browser.newContext(); page = await context.newPage(); })`) never touched the `context`/`page`
|
|
633
|
+
// fixture overrides above at all, so nothing born from it was ever healing-aware -- confirmed live
|
|
634
|
+
// as a real support report, not a hypothetical. Wrapping newContext()/newPage()/contexts() here
|
|
635
|
+
// mirrors bindContext() one level up: whatever a test obtains from a fixture-provided `browser`,
|
|
636
|
+
// however indirectly, now arrives already wrapped. This does NOT cover a browser obtained outside
|
|
637
|
+
// the fixture system entirely (e.g. `import { chromium } from '@playwright/test'; chromium.launch()`
|
|
638
|
+
// inside globalSetup) -- that browser was never fixture-provided in the first place, so there's
|
|
639
|
+
// nothing here to intercept; bindContext()/bindPageActions() are exported from the package root
|
|
640
|
+
// specifically so that case can be wired up by hand.
|
|
641
|
+
function bindBrowser(browser) {
|
|
642
|
+
if (knownProxies.has(browser)) {
|
|
643
|
+
return browser;
|
|
644
|
+
}
|
|
645
|
+
const proxy = new Proxy(browser, {
|
|
646
|
+
get(target, prop, receiver) {
|
|
647
|
+
if (prop === 'newContext') {
|
|
648
|
+
return async (...args) => {
|
|
649
|
+
const context = await target.newContext(...args);
|
|
650
|
+
return bindContext(context);
|
|
651
|
+
};
|
|
652
|
+
}
|
|
653
|
+
if (prop === 'newPage') {
|
|
654
|
+
return async (...args) => {
|
|
655
|
+
const page = await target.newPage(...args);
|
|
656
|
+
return bindPageActions(page);
|
|
657
|
+
};
|
|
658
|
+
}
|
|
659
|
+
if (prop === 'contexts') {
|
|
660
|
+
return () => target.contexts().map((context) => bindContext(context));
|
|
661
|
+
}
|
|
662
|
+
const value = Reflect.get(target, prop, receiver);
|
|
663
|
+
return typeof value === 'function' ? value.bind(target) : value;
|
|
664
|
+
},
|
|
665
|
+
});
|
|
666
|
+
knownProxies.add(proxy);
|
|
667
|
+
return proxy;
|
|
668
|
+
}
|
|
629
669
|
//# sourceMappingURL=locator.binding.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"locator.binding.js","sourceRoot":"","sources":["../../src/bindings/locator.binding.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"locator.binding.js","sourceRoot":"","sources":["../../src/bindings/locator.binding.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export { test, expect } from './bindings';
|
|
2
2
|
export type { BindingFixtures } from './bindings';
|
|
3
|
-
export { bindPageActions, bindFrameActions, bindLocatorActions, bindTargetActions, bindContext } from './bindings/locator.binding';
|
|
3
|
+
export { bindPageActions, bindFrameActions, bindLocatorActions, bindTargetActions, bindContext, bindBrowser } from './bindings/locator.binding';
|
|
4
4
|
export { healActionFailure, getHealingReports, getDurableLocator } from './healer';
|
|
5
5
|
export type { SelfHealingReport } from './healer';
|
|
6
6
|
export { closeCopilotSubscriptionClient } from './healer/providers/copilot-subscription';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAC1C,YAAY,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAC1C,YAAY,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAEhJ,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AACnF,YAAY,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AASlD,OAAO,EAAE,8BAA8B,EAAE,MAAM,yCAAyC,CAAC;AAEzF,YAAY,EAAE,YAAY,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,UAAU,EAAE,cAAc,EAAE,WAAW,EAAE,4BAA4B,EAAE,oBAAoB,EAAE,YAAY,EAAE,wBAAwB,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAOtS,OAAO,QAAQ,kBAAkB,CAAC;IAChC,UAAU,OAAO;QACf;;;;;;WAMG;QACH,UAAU,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;KAC/C;CACF"}
|
package/dist/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.closeCopilotSubscriptionClient = exports.getDurableLocator = exports.getHealingReports = exports.healActionFailure = exports.bindContext = exports.bindTargetActions = exports.bindLocatorActions = exports.bindFrameActions = exports.bindPageActions = exports.expect = exports.test = void 0;
|
|
3
|
+
exports.closeCopilotSubscriptionClient = exports.getDurableLocator = exports.getHealingReports = exports.healActionFailure = exports.bindBrowser = exports.bindContext = exports.bindTargetActions = exports.bindLocatorActions = exports.bindFrameActions = exports.bindPageActions = exports.expect = exports.test = void 0;
|
|
4
4
|
var bindings_1 = require("./bindings");
|
|
5
5
|
Object.defineProperty(exports, "test", { enumerable: true, get: function () { return bindings_1.test; } });
|
|
6
6
|
Object.defineProperty(exports, "expect", { enumerable: true, get: function () { return bindings_1.expect; } });
|
|
@@ -10,6 +10,7 @@ Object.defineProperty(exports, "bindFrameActions", { enumerable: true, get: func
|
|
|
10
10
|
Object.defineProperty(exports, "bindLocatorActions", { enumerable: true, get: function () { return locator_binding_1.bindLocatorActions; } });
|
|
11
11
|
Object.defineProperty(exports, "bindTargetActions", { enumerable: true, get: function () { return locator_binding_1.bindTargetActions; } });
|
|
12
12
|
Object.defineProperty(exports, "bindContext", { enumerable: true, get: function () { return locator_binding_1.bindContext; } });
|
|
13
|
+
Object.defineProperty(exports, "bindBrowser", { enumerable: true, get: function () { return locator_binding_1.bindBrowser; } });
|
|
13
14
|
var healer_1 = require("./healer");
|
|
14
15
|
Object.defineProperty(exports, "healActionFailure", { enumerable: true, get: function () { return healer_1.healActionFailure; } });
|
|
15
16
|
Object.defineProperty(exports, "getHealingReports", { enumerable: true, get: function () { return healer_1.getHealingReports; } });
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,uCAA0C;AAAjC,gGAAA,IAAI,OAAA;AAAE,kGAAA,MAAM,OAAA;AAErB,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,uCAA0C;AAAjC,gGAAA,IAAI,OAAA;AAAE,kGAAA,MAAM,OAAA;AAErB,8DAAgJ;AAAvI,kHAAA,eAAe,OAAA;AAAE,mHAAA,gBAAgB,OAAA;AAAE,qHAAA,kBAAkB,OAAA;AAAE,oHAAA,iBAAiB,OAAA;AAAE,8GAAA,WAAW,OAAA;AAAE,8GAAA,WAAW,OAAA;AAE3G,mCAAmF;AAA1E,2GAAA,iBAAiB,OAAA;AAAE,2GAAA,iBAAiB,OAAA;AAAE,2GAAA,iBAAiB,OAAA;AAGhE,kGAAkG;AAClG,0FAA0F;AAC1F,iGAAiG;AACjG,oGAAoG;AACpG,oGAAoG;AACpG,6FAA6F;AAC7F,kFAAkF;AAClF,gFAAyF;AAAhF,sIAAA,8BAA8B,OAAA"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "tamash-playwright",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.13.0-beta.1",
|
|
4
4
|
"description": "Plug and Play Self-healing for Playwright and automatically recovers broken selectors using an AI model (Ollama, OpenAI, Anthropic, Gemini, or a Claude/GitHub Copilot subscription).",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
package/usage.md
CHANGED
|
@@ -14,6 +14,7 @@ For a quicker, high-level overview see [README.md](README.md); this file is the
|
|
|
14
14
|
- [4. Use it in your tests](#4-use-it-in-your-tests)
|
|
15
15
|
- [Local vs CI, at a glance](#local-vs-ci-at-a-glance)
|
|
16
16
|
- [What else it heals — no extra setup](#what-else-it-heals--no-extra-setup)
|
|
17
|
+
- [If you build a context/page outside the fixture system entirely](#if-you-build-a-contextpage-outside-the-fixture-system-entirely)
|
|
17
18
|
- [Finding elements by structure](#when-theres-no-name-to-match-finding-elements-by-structure)
|
|
18
19
|
- [When a fix needs a second look](#when-a-fix-needs-a-second-look)
|
|
19
20
|
- [Vision fallback](#when-text-alone-isnt-enough-vision-fallback)
|
|
@@ -23,6 +24,7 @@ For a quicker, high-level overview see [README.md](README.md); this file is the
|
|
|
23
24
|
- [Running `apply-heals` in CI](#running-apply-heals-in-ci)
|
|
24
25
|
- [Publishing a healing dashboard to GitHub Pages](#publishing-a-healing-dashboard-to-github-pages)
|
|
25
26
|
- [Reading reports](#reading-reports)
|
|
27
|
+
- [Trends across runs: `tamash-playwright-dashboard`](#trends-across-runs-tamash-playwright-dashboard)
|
|
26
28
|
- [Environment variables](#environment-variables)
|
|
27
29
|
- [CLI commands](#cli-commands)
|
|
28
30
|
|
|
@@ -192,9 +194,31 @@ Everything below applies identically in both places — same package, same behav
|
|
|
192
194
|
## What else it heals — no extra setup
|
|
193
195
|
|
|
194
196
|
- **Popups and extra tabs.** A page opened via `context.newPage()`, `window.open`, or a `target="_blank"` link is just as healing-aware as your main `page`.
|
|
197
|
+
- **A context/page built from `browser` in `test.beforeAll`.** The common "log in once, reuse the session across every test in the file" pattern — `test.beforeAll(async ({ browser }) => { context = await browser.newContext(); page = await context.newPage(); })` — heals too, as long as `browser` itself came from the test fixtures. See [If you build a context/page outside the fixture system entirely](#if-you-build-a-contextpage-outside-the-fixture-system-entirely) for the one case this doesn't cover.
|
|
195
198
|
- **Elements inside `<iframe>`s.** `page.frameLocator('#my-iframe')` and anything chained off it heals the same way, correctly scoped to the iframe's own document. Playwright 1.63's no-argument `page.frameLocator()` ("match in any frame") also heals on a single-frame page; when several frames are present the healer can't tell which was meant and steps aside cleanly rather than guess — use an explicit `frameLocator('#id')` in that case.
|
|
196
199
|
- **Most of the Playwright API surface**, not just clicks and fills — `check`, `selectOption`, `dragTo`, `dispatchEvent`, read methods like `textContent`/`getAttribute`/`isChecked`, `screenshot`, and more. `dragTo`, `drop`, and `waitFor` are reported honestly on failure rather than guessed at — the first two because a two-sided drag can't be safely fixed by guessing one side, `waitFor` because a timeout on it can be a correct test outcome (e.g. verifying an absence), not a broken selector. `expect(locator).toBeVisible()` and similar assertions are excluded the same way, but never reach this mechanism at all — they're Playwright's own matcher, not a method this wraps.
|
|
197
200
|
|
|
201
|
+
### If you build a context/page outside the fixture system entirely
|
|
202
|
+
|
|
203
|
+
Everything above heals because it's ultimately reachable from the `browser`/`context`/`page` fixtures Playwright hands your test — that's the one thing this package can actually intercept. Two real patterns fall outside that:
|
|
204
|
+
|
|
205
|
+
- **A browser launched directly**, not obtained from a fixture — `import { chromium } from '@playwright/test'; const browser = await chromium.launch();`. This `browser` never passed through the test fixtures, so there's nothing here to wrap it.
|
|
206
|
+
- **`globalSetup`** (the `globalSetup` option in `playwright.config.ts`) runs as its own isolated script, outside the test runner and its fixtures entirely — typically used to log in once and save `storageState.json` for every test to reuse via `test.use({ storageState: 'state.json' })`. Any page actions performed there aren't healing-aware either.
|
|
207
|
+
|
|
208
|
+
For either case, wrap the object yourself with the same functions this package uses internally — exported from the package root for exactly this:
|
|
209
|
+
|
|
210
|
+
```ts
|
|
211
|
+
import { chromium } from '@playwright/test';
|
|
212
|
+
import { bindContext, bindPageActions } from 'tamash-playwright';
|
|
213
|
+
|
|
214
|
+
const browser = await chromium.launch();
|
|
215
|
+
const context = bindContext(await browser.newContext());
|
|
216
|
+
const page = await context.newPage(); // already healing-aware — bindContext() wraps newPage() too
|
|
217
|
+
// or, wrapping a page directly: const page = bindPageActions(await context.newPage());
|
|
218
|
+
```
|
|
219
|
+
|
|
220
|
+
Note that `storageState` itself needs no special handling — it's just context data (cookies/`localStorage`) applied when a context is created. As long as the *test* context/page that consumes it comes from the normal `context`/`page` fixtures (or `browser.newContext({ storageState: ... })` off a fixture-provided `browser`), it heals exactly as usual; only the one-off script that *generates* `storageState.json` in `globalSetup` needs the manual wrapping above, and only if you want that login flow itself to heal.
|
|
221
|
+
|
|
198
222
|
## When there's no name to match: finding elements by structure
|
|
199
223
|
|
|
200
224
|
Sometimes the broken element has no useful identity of its own — a plain `<input>` with no name, no working placeholder, and a label that's visually right next to it but never actually linked (no `<label for>`, no `aria-labelledby`). A human finds it instantly by sight; matching purely on accessible name has nothing to grab onto.
|
|
@@ -453,6 +477,8 @@ jobs:
|
|
|
453
477
|
|
|
454
478
|
## Publishing a healing dashboard to GitHub Pages
|
|
455
479
|
|
|
480
|
+
This is a hand-rolled, CI-composed page — see [Trends across runs: `tamash-playwright-dashboard`](#trends-across-runs-tamash-playwright-dashboard) above for a ready-made reporter package that does per-run trend tracking with no workflow YAML at all. Use this section instead when you specifically want a public, no-checkout-required page hosted on GitHub Pages.
|
|
481
|
+
|
|
456
482
|
A third job, run after `apply-heals`, can publish a single browsable page combining all three reports from a run — the initial execution (healing enabled), what got healed, and the post-fix verification (healing disabled) — no GitHub sign-in or artifact zip download required. Every past run stays browsable too, not just the latest.
|
|
457
483
|
|
|
458
484
|
The key idea: a second branch (`report-history` here) that's pure storage — never configured as your repo's actual Pages source, which stays "deploy via GitHub Actions workflow" — checked out fresh each run, given this run's new snapshot under `history/<run-id>/`, and pushed back before the accumulated tree is deployed:
|
|
@@ -547,6 +573,32 @@ The same detail prints to the console as it happens:
|
|
|
547
573
|
[self-healer] src/pages/loginpage.ts:11 — locator.fill "Username Textbox" -> HEALED [provider=ollama:gpt-oss:120b, vision=no, actionRecovery=no, suggested="getByRole(\"textbox\", { name: \"Username\" })", 620 tokens (489 input + 131 output)] — locator.fill: Timeout 8000ms exceeded.
|
|
548
574
|
```
|
|
549
575
|
|
|
576
|
+
## Trends across runs: `tamash-playwright-dashboard`
|
|
577
|
+
|
|
578
|
+
Everything above is per-run — real detail, but Playwright's own HTML report doesn't remember yesterday's run when you open today's. [`tamash-playwright-dashboard`](https://www.npmjs.com/package/tamash-playwright-dashboard) is a separate reporter package (own install, own npm listing) built for exactly that gap: pass-rate trends, per-test history across runs, step-level detail with real locators and source locations, a Test Health view (Newly Failed, Newly Fixed, Still Failing with fail streaks, Flaky), and — because it recognizes this package's own heal reports — a dedicated **Self-Healing Analytics** page: tests/elements healed, token usage per run and cumulatively with a trend chart, and every heal event across your recorded history. Output is one self-contained `index.html` (data inlined as JSON) plus `history.json` — no server, no external JS/CSS/CDN, safe to open via `file://` or host anywhere; every list that can grow unbounded is paginated.
|
|
579
|
+
|
|
580
|
+
```sh
|
|
581
|
+
npm install -D tamash-playwright-dashboard
|
|
582
|
+
```
|
|
583
|
+
|
|
584
|
+
```ts
|
|
585
|
+
// playwright.config.ts
|
|
586
|
+
export default defineConfig({
|
|
587
|
+
reporter: [
|
|
588
|
+
['list'],
|
|
589
|
+
['tamash-playwright-dashboard', {
|
|
590
|
+
outputDir: 'playwright-dashboard', // where history.json + index.html are written
|
|
591
|
+
maxHistory: 20, // how many past runs to keep
|
|
592
|
+
autoOpen: true, // opens in your browser after a local run (skipped when process.env.CI is set)
|
|
593
|
+
}],
|
|
594
|
+
],
|
|
595
|
+
});
|
|
596
|
+
```
|
|
597
|
+
|
|
598
|
+
Zero configuration needed for the self-healing side specifically: it reads this package's heal reports straight off the test result — the exact JSON attachment described above (`self-healing-<action>`) — so installing both packages is the whole integration; there's no shared config, no version coupling, nothing to wire by hand. Each `npx playwright test` run appends to the same `history.json`/`index.html`, building the trend view up over time. [Live sample report](https://qtpsudhakarproducts.github.io/tamash-playwright-dashboard/) (synthetic demo data) · [live from this repo's own sample project](https://qtpsudhakarproducts.github.io/tamash-playwright-typescript-playwright/dashboard/index.html) (real heals from CI, growing every run) · [full docs](https://www.npmjs.com/package/tamash-playwright-dashboard).
|
|
599
|
+
|
|
600
|
+
This is a local, per-checkout file — for a page your whole team can browse without checking out the repo, see [Publishing a healing dashboard to GitHub Pages](#publishing-a-healing-dashboard-to-github-pages) below, which is a different (CI-composed, hand-rolled) mechanism built before this package existed. The two are independent; use either, both, or neither.
|
|
601
|
+
|
|
550
602
|
## Environment variables
|
|
551
603
|
|
|
552
604
|
| Variable | Default | Purpose |
|