Repository navigation
Releases
KeyTrail 1.0.0
KeyTrail 1.0 defines the supported 1.x API and report compatibility contract for Playwright keyboard journeys: dialogs, tabs and form errors.
Complete observations now use guarded live query grouping. Every original locator still resolves afresh; changed membership or DOM mutations trigger a fresh fallback read. The eight additional complete-read regressions and strict report validation preserve the 100 ms observation bound and zero retries.
Install the verified release with:
npm install --save-dev --save-exact keytrail@1.0.0 @playwright/test@1.64.1Validation:
- Ten final sequential rounds: 1,880 checks; separate four-worker comparison: 188 checks. All eleven raw reports were independently validated, with 1,771 distinct journey IDs and no retries/skips. Maximum passing observation gap: 47.7 ms, below the unchanged 100 ms limit.
- 108/108 equivalent-work benchmark checks, five warmups and thirty alternating pairs per workload. Median paired overhead: 2.4% dialog / 5.7% manual tabs / 0.7% form errors. Both overhead calculations meet the 20% criterion. These synthetic measurements do not imply a general speed advantage.
- 52/52 CI guard controls, 48 unit tests and 30 script checks. Linux and three sequential macOS 15 ARM allocations pass the full suite and package consumers.
- The exact release archive passes ESM/CJS, TypeScript and clean vanilla/React portal consumers, including an intentional failed journey with HTML/JUnit evidence.
The API, defaults, schema 1 and ruleset 0.4.0 remain compatible. Supported baseline: Node 24, Playwright 1.64.1 and its Chromium on Linux/macOS ARM. Keep the application lockfile and run native/journey regressions when upgrading.
KeyTrail verifies the supplied contracts. It does not certify accessibility or replace assistive-technology checks and manual testing. Earlier failed benchmark attempts remain excluded; historical releases and the beta channel are retained.
See the attached verification records, raw evidence archive and SHA256SUMS. The qualification source is d43e235; the release source includes its final evidence and publication preparation. Registry readback and installation are recorded separately.
Published to npm under latest; beta remains 0.1.0-beta.2. The downloaded npm archive matches the qualified 549,575-byte archive byte for byte, with verified SHA-512 integrity and SHA-256 92d57d16e32d137cf3444e57e2ddf9d37614ba603a4a9dc19254a1daf16db97d. The registry-version vanilla installation and downloaded-archive React installation pass ESM/CJS, types, browser examples and the negative HTML/JUnit control.
Final main CI passed all four jobs at 2e6ed6514124e2ee1f6cd8f16da14ce8d0508e81. All four raw reports were also validated (752 checks, 644 distinct journey IDs). The source tag and published archive are immutable; publication-status documentation follows separately on main.
0.1.0
First non-prerelease with an explicit 0.1.x compatibility and support policy. Documented exports, contract defaults, result schema 1 and ruleset 0.4.0 remain compatible with beta.2; only package-version metadata changes. No contract migration is required.
Frozen inputs 85cee8c completed ten full rounds of 180 tests plus a separate 180-test four-worker comparison: 1,980 successful executions, zero retries/skips, matching semantics and 1,771 distinct journey IDs. The 100 ms observation limit is unchanged. All 52 guard controls and 108 benchmark checks passed. Both overhead calculations meet the 20% bound for the three synthetic fixtures; these measurements do not establish a general speed advantage.
The exact attached archive passed the release gate on documentation/evidence head a086847: ESM/CJS and TypeScript imports, fresh vanilla and React consumers, guarded journeys and deliberate failure with HTML/JUnit reports. Linux and three macOS ARM CI jobs passed on this final PR commit. The release tag selects that tested commit, which is now an ancestor of main; the merged source tree is identical. Historical alpha/beta evidence is preserved separately.
Published on npm as keytrail@0.1.0 under latest on 8 November 2026. Install with npm install --save-dev --save-exact keytrail@0.1.0 @playwright/test@1.64.1 on Node 24. The beta tag remains 0.1.0-beta.2.
The canonical npm tarball matches the attached qualified archive byte for byte; SHA-256 and SHA-512 integrity were verified. Fresh registry installations passed ESM/CJS and TypeScript checks, six vanilla examples and three guarded journeys, plus React portal examples and its guard. The deliberately broken React fixture exited 1 with D03 FOCUS_MISMATCH and retained HTML/JUnit reports and the failed journey attachment. Both the exact tag and merge commit passed all four CI jobs. The completed final series was revalidated from its raw reports and was not rerun.
npm-verification.json records publication and consumer checks. The original package-verification receipt remains the pre-publication qualification record; its published: false field is historical. The tag, original assets and downstream dependencies are unchanged.
SHA-256: 49eb5efacb84ac4c41560164a081e9f9368d93a24e171eecc03765cf5f72491c.
Compatibility and support · Migration and qualification · Changes in #23.
KeyTrail 0.1.0-beta.2
Beta.2 reads all original target and role queries in one Playwright request during repeated manual-tab observations when grouping is safe. Changes to query membership or the DOM trigger fresh resolution. A sampling interval over 100 ms still blocks the journey with OBSERVATION_GAP.
The final source passed ten complete rounds of 180 tests plus the matching four-worker run. All 11 reports were reread, with 1,771 distinct journey IDs and zero retries. The benchmark passed 108 tests and all 52 guard controls returned their expected exit codes.
The checked tarball passed ESM, CJS and type checks, offline installation, vanilla and React browser cases, and the deliberately failing React control with HTML and JUnit reports. Both the PR and merged main passed Linux and three sequential macOS 15 ARM jobs.
Source qualification · Main CI.
Download the attached tarball and verify it with shasum -a 256 -c SHA256SUMS. To use the archive in a project, run npm install --save-dev ./keytrail-0.1.0-beta.2.tgz @playwright/test@1.64.1.
Install from npm with npm install --save-dev --save-exact keytrail@0.1.0-beta.2 @playwright/test@1.64.1. A clean keytrail@beta installation resolved to this version and passed six vanilla browser tests and three guarded tests. The npm download matched the checked archive byte for byte. npm package.
KeyTrail 0.1.0-beta.1
KeyTrail is a Playwright test library for keyboard journeys in ARIA dialogs, tab lists and forms. When a journey fails, the report identifies the first mismatch and the checks that depend on it. This first beta includes runnable vanilla and React portal examples.
Try the beta
Install the verified release archive into a Playwright project using Node.js 24 and the tested Playwright version.
npm install --save-dev https://github.com/PerchAnton/keytrail/releases/download/v0.1.0-beta.1/keytrail-0.1.0-beta.1.tgz @playwright/test@1.64.1Start with one keyboard journey in your application. Examples · Supported environment
Verification
- On commit
f775b30, all 100 rounds of 172 tests passed with a 100 ms observation-gap limit and zero retries. A separate 172-test run on four workers produced matching results. Independent validation confirmed 101 raw reports and 16,261 distinct journey IDs. - All 108 benchmark cases passed, and each of the three measured workloads met the 20% overhead limit. All 52 CI guard cases returned the expected exit code.
- The release archive passed installation, ESM/CJS, type checks and browser journeys in clean vanilla and React projects. The intentional focus defect produced
D03 FOCUS_MISMATCHand the expected failing exit code.
The packaging commit ae553d6 adds documentation and the verified results to the tested source. SHA-256 for the attached tarball is e47c158598540a4b0745fb08040eba2869ee10e9b523255d8248b6ffe160dceb. Beta evidence