Skip to content

Releases: Quality-Max/9lives-runner

9lives 0.4.7

Choose a tag to compare

@github-actions github-actions released this 15 Oct 11:28
v0.4.7
c5e6382

CLI and @9l/playwright 0.4.7 are released together.

SDK

  • No runtime changes; @9l/playwright 0.4.7 is released with CLI 0.4.7.

Assess

Policy assessment-source-v13; the analyzer helper version is 10 and report
version 3 is unchanged.

  • Parse .js, .mjs, .cjs and .jsx specs as Playwright loads them:
    JavaScript with JSX and no TypeScript transform. Type annotations, as,
    interface, enum, import type, non-null ! and other TypeScript-only
    syntax in such a file now fail with the new typescript-in-javascript
    diagnostic (exit 2, or the file's error in a suite) instead of a clean
    report for a spec Playwright refuses to load. TypeScript specs and sources
    with no known extension still parse as TSX. The check builds a program over
    the single in-memory file; no library, module or type root is resolved.

CLI

  • 9l run, 9l result and the MCP run_test tool tell an unexpected pass
    apart from a broken test. A test.fail() test that passed is still a
    failure, but it is listed with ⚠, the message Expected to fail, but passed. and, in the receipt's failures, Playwright's expectedStatus
    and the last attempt's status; the receipt's validation text counts
    such tests. Previously it was a bare ✗ with no error text.
  • Failure diagnostics come from each test's final completed attempt only. A
    test.fail() test that timed out and then passed on retry no longer
    inherits the earlier attempt's error, failing line or attachments. The
    failure context passed to healing and returned by run_test drops tests
    with an expected, skipped or flaky outcome and keeps top-level errors such
    as a failed global teardown, so an expected failure's error is no longer
    attributed to the run.
  • 9l prove and 9l confirm report why a spec cannot run, such as a missing
    @9l/playwright build, instead of prove requires exactly one spec file
    or not a Playwright spec this runner can execute. The help text states
    that both need @9l/playwright and that prove reaches only fetch and XHR
    requests made through its page or context fixtures.
  • Receipt, run-result and run-status contracts gain the optional
    expectedStatus and status fields on each failure (additive).

Website and documentation

  • Link the 60-second launch film from the homepage and GitHub overview.

Install the SDK in your Playwright project:

npm install --save-dev @9l/playwright@0.4.7

Download the CLI archive for your operating system and architecture below, and verify it against SHA256SUMS. See the installation guide.

Full changelog: v0.4.6...v0.4.7

v0.4.6

Choose a tag to compare

@github-actions github-actions released this 14 Oct 17:51
e6bf23b

9lives 0.4.6 releases the Go CLI and @9l/playwright together. CLI and SDK runtime behavior is unchanged in this patch; the release adds execution qualification and updates the public demo and documentation.

What changed

  • Challenge wrong-record tests: a deterministic fixture has two records with identical Edit labels. Six 9l run executions show a weak visibility check missing a wrong-record defect, an exact record-ID assertion catching it, stable targeting after row reordering, and a deliberately wrong expected-ID canary failing at its assertion. This qualifies the fixture and assertions; it does not add automatic locator healing. Qualification details.
  • Stabilize the heartbeat deadline test on loaded CI runners using explicit executor synchronization and observed heartbeat updates.
  • Align the homepage and GitHub overview with the recorded agent demo, confirmation receipts and controlled faults. Add QualityMax branding, light/dark themes, a Memes gallery, consent-gated analytics and restore npm links/downloads.

Install

The CLI and SDK are separate distributions. Download a native CLI archive below and verify it with SHA256SUMS; each archive includes legal notices. The optional SDK is available on npm:

npm install --save-dev @9l/playwright@0.4.6

Your project supplies Playwright and its browsers. See the installation guide and changelog.

Full comparison: v0.4.5...v0.4.6

v0.4.5

Choose a tag to compare

@github-actions github-actions released this 13 Oct 23:18
c777aa3

What's Changed

  • Move the 9lives.run website and installer into the runner repository by @Desperado in #117
  • Run the QualityMax grader from the QA skill as a separate hygiene pass by @Desperado in #118
  • Report debugging leftovers and fragile selectors in 9l assess by @Desperado in #119
  • Prepare CLI and SDK 0.4.5; remove noisy unnamed-role advisory by @Desperado in #120
  • Publish interactive 9l demo with real Codex evidence and QualityMax themes by @Desperado in #121
  • Brand homepage meme pendants and fix demo Open Graph preview by @Desperado in #122

Full Changelog: v0.4.0...v0.4.5

v0.4.0

Choose a tag to compare

@github-actions github-actions released this 13 Oct 09:07
v0.4.0
4f5b3e1

What's Changed

  • Add Demo Bank healing replay and visible 9lives feature tour by @Desperado in #74
  • Make Demo Bank GIF readable with larger text and a reproducible walkthrough by @Desperado in #75
  • Bring qmax-mcp page checks into 9l: scan, inspect and three MCP tools by @Desperado in #99
  • Release CLI and npm SDK 0.4.0 by @Desperado in #109

Full Changelog: v0.3.0...v0.4.0

v0.3.0

Choose a tag to compare

@github-actions github-actions released this 10 Oct 23:17
v0.3.0
481743c

What's Changed

  • Run SDK goals on agent subscriptions; choose config and projects by @Desperado in #67
  • Redact authorization values and sanitize failure context everywhere by @Desperado in #68
  • Carry test annotations into receipts and the run summary by @Desperado in #71
  • Credit outcome mapping only from enabled tests of the same requirement by @Desperado in #69
  • Tell apart goal controls that share role and label, or stop by @Desperado in #72
  • Release CLI and npm SDK 0.3.0 by @Desperado in #73

Full Changelog: v0.2.5...v0.3.0

v0.2.5

Choose a tag to compare

@github-actions github-actions released this 10 Oct 19:24
c85d306

What's Changed

  • Refresh the npm version badge after releases by @Desperado in #62
  • Update the explainer page for v0.2.0 by @Desperado in #63
  • Heal on agent subscriptions, repair getBy drift, report failed tests by @Desperado in #64
  • Name a missing provider CLI, cut healing text on rune boundaries by @Desperado in #65
  • Release CLI and npm SDK 0.2.5 by @Desperado in #66

Full Changelog: v0.2.0...v0.2.5

v0.2.0

Choose a tag to compare

@github-actions github-actions released this 10 Oct 14:06
v0.2.0
3db6fd7

What's Changed

  • Add Windows CLI binaries and clarify qmax-code comparison by @Desperado in #37
  • Fix assess and run issues from the CLI 0.1.5 trial; make 9l heal and 9l mcp native by @Desperado in #41
  • Add a finding-triage workflow to the 9lives QA skill by @Desperado in #51
  • Release @9l/playwright 0.1.2 by @Desperado in #54
  • Let prove inject auth-rejection, rate-limit and malformed-JSON faults by @Desperado in #52
  • Add 9l confirm: does a reproduction fail before a fix and pass after it? by @Desperado in #53
  • Release CLI 0.2.0 and SDK 0.1.3 by @Desperado in #55
  • Update remaining docs for CLI 0.2.0 and SDK 0.1.3 by @Desperado in #57
  • Reject inputs validators accepted too generously (#50) by @Desperado in #56
  • Push the SDK release tag only once npm serves the version by @Desperado in #58
  • Stop the Windows goal listener deadlocking on Close by @Desperado in #59
  • Release the CLI and SDK together: one version, one tag, one workflow by @Desperado in #60
  • Release the CLI and SDK from one workflow run by @Desperado in #61

Full Changelog: v0.1.5...v0.2.0

9lives Go CLI 0.1.5

Choose a tag to compare

@github-actions github-actions released this 09 Oct 09:55
v0.1.5
f872011

9lives Go CLI 0.1.5 is available for macOS and Linux on amd64 and arm64.

Changes since 0.1.1

  • Host contract: 9l run returns 0 for passed, 1 for validated test failure, 2 for usage/setup errors and 3 for incomplete execution. Run results and status are versioned; 9l version --format json identifies the implementation and contract versions. Eight published JSON Schemas are independently validated in CI.
  • Goal failures: a failed or caught goal in one test cannot hide a sibling test's independent failure. Setup errors no longer emit a result or a startup/cancel hint.
  • Experimental 9l prove: replay a passing spec under bounded fetch/XHR network faults, classify each reached test from its own evidence, and record caught, survived and inconclusive results. Retries and incomplete evidence cannot establish a survivor. Qualified with real Chromium against the synthetic shop fixture; this is not a general semantic-coverage claim.
  • Headed mode: 9l run --headed opens the browser and defaults to one job at a time.

Compatibility

Scripts that compare failure with exit code 1 must also handle exit 3 for incomplete execution. The existing complete field keeps its semantics. The npm SDK is a separate distribution: use @9l/playwright@0.1.1; installing it does not install the CLI. prove requires that SDK version or newer. Windows remains unqualified; macOS archives are not notarized.

Download and verify

Select the archive for your operating system and architecture, verify it against SHA256SUMS, then keep the bundled LICENSE and NOTICE. See the installation guide and machine-readable contract.

The release workflow runs full CI qualification, builds and exercises every executable on its native runner, validates archive members and legal files, and publishes four archives plus SHA256SUMS.

v0.1.1

Choose a tag to compare

@github-actions github-actions released this 09 Oct 07:08
v0.1.1
09cf12a

What's Changed

  • Point install docs at the published SDK 0.1.0 by @Desperado in #18
  • Add the field report as an independent review and a README demo by @Desperado in #25
  • Cut assess false alarms on promise chains, nested arrows and shared helpers by @Desperado in #24
  • Prepare CLI release 0.1.1 and qualify Playwright 1.61.1–1.64.0 by @Desperado in #26

Full Changelog: v0.1.0...v0.1.1

v0.1.0

Choose a tag to compare

@github-actions github-actions released this 08 Oct 21:18
48f9cf3

9l CLI 0.1.0

9l assess changes from an external trial on an 87-file Playwright suite.

  • --requirements is optional. Code-level checks run without a contract;
    requirement mapping is reported as not run. An empty value is a usage
    error (#5).
  • Suites: several specs, a directory or a quoted pattern (** supported)
    give one combined report with per-file reports or error codes and a suite
    summary. A file that cannot be assessed does not stop the others; the
    command then exits 2. At most half the CPUs analyze at once, and a file
    whose analyzer timed out is retried once on its own (#6).
  • Helpers: same-file helper functions are resolved, attributing their
    assertions, waits and limits to the calling test. // @9l-assertion-helper
    on a function or import declaration counts calls as reviewed assertions.
    Imports into other files are not followed yet (#4).
  • Skip guards: file- and describe-level test.skip(condition, reason)/
    test.fixme modifiers are no longer parsed as tests. Unconditional ones
    give disabled-test; conditional and after-hook ones give informational
    conditional-skip; conditions reading process.env give suspected
    environment-skip. Calls that could be declarations, such as
    test.skip(name, run), stay disabled tests (#7).
  • New finding absence-after-wait (suspected) when the first assertion after
    a fixed wait only checks that something is absent or did not happen (#8).
  • Unawaited resolves/rejects matchers are flagged; unawaited matchers
    outside the pinned Playwright API give an unknown-matcher limit.
  • Every finding carries code (#10). Text output omits empty fields, ends with
    a per-rule summary and shows literal test titles with opt-in --titles (#11).
  • Report version 3, policy assessment-source-v6. Consumers must accept the
    informational classification, the new rules and limit code, an absent
    requirementsSHA256 and an optional test title.

Install

Download the archive for your platform and SHA256SUMS, verify, and put 9l on your PATH; see the installation guide. Example for Apple Silicon:

BUNDLE=9l-darwin-arm64
gh release download v0.1.0 --repo Quality-Max/9lives-runner --pattern "$BUNDLE.tar.gz" --pattern SHA256SUMS
awk -v archive="$BUNDLE.tar.gz" '$2 == archive' SHA256SUMS > selected.sha256
shasum -a 256 -c selected.sha256   # sha256sum -c on Linux
tar -xzf "$BUNDLE.tar.gz" && ./$BUNDLE/9l --version
Platform Archive
macOS, Apple Silicon 9l-darwin-arm64.tar.gz
macOS, Intel 9l-darwin-amd64.tar.gz
Linux, x86-64 9l-linux-amd64.tar.gz
Linux, ARM64 9l-linux-arm64.tar.gz

9l assess needs Node 22 or newer; the TypeScript parser is bundled. macOS archives are not Apple notarized.

Compatibility

Assessment reports are version 3, policy assessment-source-v6. Consumers of the JSON report must accept the informational classification, the conditional-skip, environment-skip and absence-after-wait rules, the unknown-matcher limit code, an absent requirementsSHA256 and an optional test title. The new suite report (several specs, a directory or a pattern) is a separate format, version 1. A single spec still produces the single-file report.

Assessment is advisory and source-only: it does not run tests, and its findings do not establish assertion coverage.

Verification

Before publication the release workflow ran the complete CI suite on the tagged commit (48f9cf3). It then built each archive on its own native macOS or Linux amd64/arm64 runner and ran --version, --help and a fixture plan there. After publication, the macOS arm64 archive was downloaded and its checksum verified. It reported 9l 0.1.0 (Go runner), and the SDK checkout demo ran with it to completion (1 passed, 0 failed).

SDK

@9l/playwright 0.1.0 (tag sdk-v0.1.0) is published on npm with provenance. Its peer range @playwright/test >=1.61.1 <2 lets projects on later Playwright 1.x releases install it; 1.61.1 remains the only qualified version. The npm tarball is byte-identical to the one CI qualified, and it installs with @playwright/test 1.61.1 and 1.64.0.

npm install --save-dev @9l/playwright@0.1.0 @playwright/test@1.61.1

What's Changed

  • Add a static explainer page and publish it with GitHub Pages by @Desperado in #2
  • Stabilize SDK deadline smoke and identify failing cases by @Desperado in #3
  • Make assess usable on existing suites without a contract by @Desperado in #12
  • Flag environment-dependent skips and matchers of unknown timing by @Desperado in #16
  • Flag absence assertions that directly follow a fixed wait by @Desperado in #13
  • Assess a directory, pattern or several specs in one report by @Desperado in #14
  • Resolve same-file assertion helpers and accept marked helpers by @Desperado in #15
  • Prepare CLI and SDK release 0.1.0 by @Desperado in #17

Full Changelog: v0.0.0...v0.1.0