Skip to content

Fix keyboard journey evidence and stabilize development CI - #8

Merged
PerchAnton merged 20 commits into
mainfrom
keytrail/release-correctness
Oct 30, 2026
Merged

PerchAnton merged 20 commits into
mainfrom
keytrail/release-correctness

Conversation

@PerchAnton

@PerchAnton PerchAnton commented Oct 30, 2026 •

Copy link
Copy Markdown
Owner

Post-merge verification — 2026-10-30

Merged into main at 6e98804ae10c55e52c802e80ff77499da68340fb; its tree matches the reviewed PR head. The post-merge CI failed overall: Linux passed all stages, but ARM passed 168/169 browser cases. The short observation-window regression recorded a genuine 126.7 ms OBSERVATION_GAP at T05.forward.003.unchanged; ARM package checks were skipped after that failure.

The complete failing snapshot took 126.3 ms, including 3.9 ms in the final evaluate call. The precise source of the surrounding resolution/transport delay is not isolated. The 100 ms bound and zero retries remain unchanged. No unchanged rerun replaces this failure. The earlier successful results below remain historical evidence for their specific runs; hosted stability and final release acceptance are not established. No final 100-round series was started.


A dialog could pass after focus left its declared opener, and manual tabs could claim unchanged state without sufficiently frequent observations. This candidate checks actual activation focus, validates browser-clock intervals, and keeps every gap above 100 ms blocked.

Changes

  • Recheck the opener before Enter/Space and preserve actual focus in diagnostics.
  • Require initial/final manual-tabs observations and validate sampling evidence in the serializer and CI guard.
  • Resolve every locator afresh into a private browser map. Read state atomically and clear node references before returning; wait for all resolvers before error cleanup. Compile the reader once per journey to avoid retransmitting its full function body. No selector parsing, DOM markers, page globals or cached target bindings.
  • Preserve complete initial semantics and live structure/focus/selection checks during negative windows. Regressions cover replacement, changing locator bindings, absent targets, foreign contexts and delayed siblings.
  • Make the window-deadline test deterministic while separately testing the cumulative budget. Add opt-in printable-ASCII inputMode: 'type', retaining the documented Unicode insertText default.
  • Run the complete suite and actual package consumers on Linux + macOS ARM, one worker, zero retries. Intel remains a separately recorded capacity investigation and is tested only when requested.

Verified results

  • Build, strict types, 39 unit tests, 17 focused browser regressions, and the six-case benchmark pilot pass. The pilot checks equivalent work and negative controls; it is not a release performance measurement.
  • Four local rounds × 169 = 676 executions, plus 169 four-worker checks, pass without retries, skips or semantic differences. Independent validation reread all five reports, checked current source hashes and 800 distinct journey IDs. Development proof.
  • Required CI at 63f9edf is fully successful on Linux and ARM: 169 browser cases, 52 guard subprocess cases, ESM/CJS/types and clean vanilla/React consumers on each platform. Raw reports, guard source hashes and exact archive checksums were independently checked. In correct manual-tabs fixtures, ARM's maximum observed interval was 39.5 ms. The same runtime also passed ARM/Linux in the preceding run.
  • Full CI evidence records the exact environments and archives. The evidence-only follow-up changes no runtime, test, verifier, lockfile or workflow; it intentionally skips repeating CI for documentation alone.

Retained limits

The earlier Intel-inclusive comparison failed overall: Intel passed 168/169 with a real 370 ms gap. The investigation retains this and earlier failures. Intel is not presented as stable, and no failed fixture was removed from the required suites.

pnpm verify:reliability uses four development rounds plus isolation; only explicit --final selects 100. pnpm test:package records finalAcceptance: false; the explicit --release gate still requires current final 100-round and full benchmark evidence. Those checks are deferred until the candidate is frozen. Historical 100-round/performance evidence is not relabelled as current.

Candidate 0.1.0-alpha.6, ruleset 0.4.0, schema 1. No package or release is published. A stalled host can still exceed the sampling bound and must block; passing fixtures does not establish WCAG conformance or complete accessibility.

@PerchAnton
PerchAnton marked this pull request as draft October 30, 2026 05:28
@PerchAnton PerchAnton changed the title Fix false-positive keyboard journeys and verify alpha.6 Fix keyboard journey evidence and stabilize development CI Oct 30, 2026
@PerchAnton
PerchAnton marked this pull request as ready for review October 30, 2026 16:27
@PerchAnton
PerchAnton merged commit 6e98804 into main Oct 30, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant