Repository navigation
Releases: Wyrcan-io/playtestr
Release list
Playtestr v0.4.0-rc.3
Playtestr v0.4.0-rc.3
Qualified prerelease. Stable v0.1.0 and all previous assets remain unchanged.
This prerelease adds the selected East Asian Wide/Fullwidth two-column repair:
correct cursor advancement, addressed overwrite/erase, wrapping, split UTF-8,
resize cropping and alternate-screen behavior. MICRO-08 now verifies the original
wide-text interaction and independently saved file. Three television baselines
were explicitly reviewed; no bulk snapshot update or automatic migration occurs.
Spec/report v1 and opt-in v2 remain compatible. Suites, offline reports,
workspaces, bounded installation, macOS final-output preservation and Linux EOF
behavior are retained. Stable v0.1.0 and previous prerelease tags/assets stay unchanged.
Targets are Linux amd64, Apple silicon macOS arm64 and Windows amd64, with
native evidence scoped to the exact recorded host images and application pins.
Go is not required to run the standalone download. Targets and their runtimes
remain the user's responsibility; trusted-target execution is not a sandbox.
Install the matching archive beside your current binary, verify its adjacent
SHA-256 and playtestr version (playtestr v0.4.0-rc.3), then change PATH.
Retain your previous binary for rollback. Keep existing reviewed baselines;
review CJK alignment changes individually against terminal columns and target
state. rc.2 retains its old wide-cell behavior, so switching back may restore
its old snapshot mismatches. No schema migration is required.
The independently pinned setup action remains
Wyrcan-io/playtestr/setup-playtestr@ae97c62022966cde9699b26169b4dc6ef0a12439,
with runner version v0.4.0-rc.3 selected separately. Its implementation is
unchanged from the verified action, and current native installer source/failure
checks passed. Public distribution and upgrade verification is tracked separately in the dated evidence record.
Combining clusters, variation selectors, emoji/ZWJ sequences, terminal-specific
ambiguous widths and target-visible terminal queries remain excluded. Cleanup
applies to the documented process-group/Job Object boundary, with existing escape
limits. Exact workflow evidence is not universal framework/Unicode compatibility.
Independent adoption, human screen-reader usability, human effort and differentiation
remain open. No website deployment, outreach or marketing accompanies this release.
Qualification accepted 3,000/3,000 selected first attempts on three native runner
hosts, 120 admitted workflows plus 15 classified controls and recoveries, 54
independent ANSI/cell expectations, native real journeys and lifecycle/installer
gates. Expected negatives retain failed product reports; no first attempt was retried away.
Previously used GitUI/television definitions are regression cases, not unseen holdouts.
Downloads and installation · Migration · Exact hashes · Dated evidence.
Archive READMEs retain their frozen-source installation context; use these versioned
release instructions for rc.3. Published archives are promoted without substitution.
Playtestr v0.4.0-rc.2
Playtestr v0.4.0-rc.2
Published and verified as a prerelease. Stable v0.1.0 remains unchanged.
The tag points to frozen source ae97c62022966cde9699b26169b4dc6ef0a12439.
The qualified executables and archives were promoted without rebuilding.
This version preserves v1 and opt-in v2 workspaces/reports. It bounds stalled
installer downloads, preserves macOS final terminal output, and retains Linux's
natural-exit EOF optimization. Target applications run with your permissions;
Playtestr is not a sandbox. Go is not required to run the downloaded binary.
| Host | Download | Integrity |
|---|---|---|
| Linux x86-64 (amd64) | playtestr_0.4.0-rc.2_linux_amd64.tar.gz | SHA-256 |
| Apple silicon macOS (arm64) | playtestr_0.4.0-rc.2_darwin_arm64.tar.gz | SHA-256 |
| Windows x86-64 (amd64) | playtestr_0.4.0-rc.2_windows_amd64.zip | SHA-256 |
Verify the adjacent checksum, extract into a new directory, then run
playtestr version and check for playtestr v0.4.0-rc.2 before changing PATH.
Keep the previous executable for rollback. The target application/runtime is
a separate prerequisite. See migration.
For GitHub Actions pin:
- uses: Wyrcan-io/playtestr/setup-playtestr@ae97c62022966cde9699b26169b4dc6ef0a12439
with:
version: v0.4.0-rc.2Native public distribution/upgrade checks
and binary-only checks
passed on all three hosts. Exact hashes are in the
manifest; the
publication record retains first
verification-harness failures and their corrections.
Qualification covered 3,000 selected first attempts with zero first-attempt or
managed-cleanup failures. Corpus support is 119 cells plus one excluded diagnostic.
Wide/combining cursor layout and terminal queries remain unsupported; macOS
retains bounded drain time to preserve output. Compatibility remains exact
workflow/version/host evidence, not universal Unicode/framework support.
Human screen-reader usability, independent adoption and total human effort
remain unknown; differentiation is unmet. No marketing or outreach accompanies
this publication.
Playtestr v0.4.0-rc.1
Playtestr v0.4.0-rc.1 release notes
Published 25 September 2026 from frozen runner source
f6ffeb76a7ec3b826052690ab53071dcdf0e565f. The three archives below retain
their qualified hashes and have not been replaced.
Verified installation: pin the setup action to
Wyrcan-io/playtestr/setup-playtestr@1c03904075512e67f53b0c94a13daa17f0383f1d
and selectv0.4.0-rc.1. The
published-install matrix
and public-byte/upgrade matrix
passed on Windows amd64, Linux amd64, and macOS arm64. Direct archives remain
available below.
This prerelease adds opt-in specification version 2 workspaces: every run can
copy a bounded reviewed fixture and receive managed home and temporary
directories. V2 and mixed suites emit report version 2 so setup, primary test,
and cleanup outcomes stay distinct. All-v1 suites retain report v1 and existing
v1 terminal/action semantics.
It also includes exact-version setup-action source, stronger transactional
installation failure handling, complete v1/v2 offline HTML rendering, three
copyable recipes, and native archive/terminal hardening. The qualified corpus
contains 120 workflows across 15 pinned applications; that is technical
operator evidence, not maintainer endorsement or independent adoption.
Downloads
Choose exactly one archive and verify it against
checksums-v0.4.0-rc.1.txt.
| Host | Archive | Archive SHA-256 |
|---|---|---|
| macOS arm64 | playtestr_0.4.0-rc.1_darwin_arm64.tar.gz |
d6425d4c68f67e18214706c250ee4f1452f65259747b3ba85edca7741e8371d8 |
| Linux amd64 | playtestr_0.4.0-rc.1_linux_amd64.tar.gz |
f7a4dd825fc066449265f90642a79dff0fc0318e4c1bc0918c139f699d461964 |
| Windows amd64 | playtestr_0.4.0-rc.1_windows_amd64.zip |
c33f02cff972edcd40109690a2909ffc834da86f7fdbfe95f881b344feb4ba2d |
Archive fallback requires no installer: extract the matching archive, verify
the executable hash in the candidate manifest,
run playtestr version, and put its directory on PATH only after verification.
The first proposed action revision expected a per-archive checksum asset and
failed safely against this release's aggregate manifest. The immutable repair
supports both contracts; the failed run and repair are preserved in the
R6 publication and verification record.
Compatibility and limits
- Specs: v1 and v2. V2 requires
workspace; no v1 behavior changes implicitly. - Reports: all-v1 suites write v1; v2 or mixed suites write v2. The candidate's
HTML renderer reads both. - Previous
v0.3.0-rc.1passes the reviewed v1 menu flow and diagnoses its
intentional mismatch; it does not support v2 workspaces. - Targets execute with the user's permissions. Playtestr is not a sandbox.
- Compatibility is scoped by exact project/version/host/workflow evidence. No
universal framework, Unicode, accessibility, or zero-flakiness claim is made. - Target-rendered secrets can appear in reports and snapshots. Review fixtures
and retained evidence; automatic redaction is not promised.
See the migration and rollback guide and
qualification record.
Playtestr v0.3.0-rc.1
Playtestr v0.3.0-rc.1 adds a self-contained offline HTML failure report generated from existing report-v1 screen and diff evidence.
Highlights:
playtestr report --input ... --evidence-root ... --output ...- failure-first navigation with captured screen, unified diff, step, target, cleanup, and evidence-write outcomes
- portable script-free output with responsive keyboard-accessible layout and no remote assets
- strict report/evidence/output limits plus traversal, URI, junction, hard-link, and alias rejection
- unchanged specification v1 and machine report v1 contracts
Verified by native release run 35288218202 on Linux amd64, macOS arm64, and Windows amd64 from commit 7cf64af. This is a prerelease; independent maintainer adoption and outside usability feedback remain deferred until after Sprint 10.
Playtestr v0.2.0-rc.1
Sprint 5 release candidate: deterministic directory suites and isolated CI evidence.
Source and validation
- Source commit: ea2e77f
- Native release workflow: https://github.com/Wyrcan-io/playtestr/actions/runs/35096743871
- Tested natively on Linux amd64, macOS arm64, and Windows amd64.
- Every archive was checksum-verified, extracted into a path containing spaces, and exercised from the extracted binary.
- The packaged runner passed a deterministic two-spec directory suite, deliberate snapshot mismatch with isolated evidence, legacy adjacent evidence, cancellation cleanup, report generation, archive membership, version, and help checks.
What is new since v0.1.0
- Recursively discover deterministic JSON suites from directory arguments.
- Preview the exact selection with: playtestr test --list path/to/tests
- Keep existing explicit-file argument order and serial execution.
- Collect evidence beneath unique run directories with: --artifacts-dir artifacts/playtestr
- Print complete pass, fail, cancelled, and not-run totals with direct evidence paths.
- Reject empty selections, unsafe output aliases, shared snapshot-update targets, and bounded-resource violations before target launch.
Example
playtestr test --list tests/terminal
playtestr test --artifacts-dir artifacts/playtestr --report artifacts/results.json tests/terminal
Compatibility and boundaries
- Spec version 1 and report version 1 remain unchanged.
- Existing explicit-file commands and adjacent evidence behavior remain supported.
- Exit statuses remain 0 for pass, 1 for test or output failure, 2 for usage/discovery failure, and 130 for cancellation.
- Custom globs, filters, retries, parallel workers, JUnit, hosted upload, and automatic snapshot approval are not included.
- Playtestr runs targets with the user's permissions. It is not a sandbox. Review screens, diffs, and reports before sharing them.
- This prerelease does not replace stable v0.1.0 as the latest stable release.
Documentation
- Suite contract: https://github.com/Wyrcan-io/playtestr/blob/v0.2.0-rc.1/docs/suites.md
- Sprint 5 adopter walkthrough: https://github.com/Wyrcan-io/playtestr/blob/v0.2.0-rc.1/docs/trials/sprint-5-suite-adopter.md
- Support and limitations: https://github.com/Wyrcan-io/playtestr/blob/v0.2.0-rc.1/SUPPORT.md
Download the archive and adjacent SHA-256 file for exactly one supported host. The archive contains the standalone runner, README, LICENSE, and THIRD_PARTY_NOTICES. It does not install the application under test or that application's runtime.
Playtestr v0.1.0
Playtestr v0.1.0 is the first stable standalone runner for deterministic end-to-end tests of trusted interactive CLIs and TUIs.
Highlights
- Drive a real pseudoterminal with text, named keys, resize, and redraw synchronization.
- Assert rendered text, disappearance after interaction, exact exit status, and reviewed normalized text snapshots.
- Bound step/run time and raw output; cancel with exit 130 and clean up the managed process tree.
- Write machine report v1 plus bounded screen/diff evidence.
- Run without Go from the native archives below.
Specification v1 and report v1 are the stable v0.1.x contracts. Existing rc.1/rc.2 specs remain valid. Prototype specs without a version must add top-level "version": 1.
Downloads
Download exactly one archive and its adjacent .sha256 file. Verify the checksum before extraction.
| Host | Archive | SHA-256 |
|---|---|---|
| Linux amd64 | playtestr_0.1.0_linux_amd64.tar.gz |
254ca88a5257eab9b3522dd19aef2cd213efa6a20585ddefb5e0b81521a1e2e6 |
| macOS arm64 | playtestr_0.1.0_darwin_arm64.tar.gz |
b10f36c46a3dcd0fd5115a401a5b37ef99f473e9ce1be89d172529c83a928fb7 |
| Windows amd64 | playtestr_0.1.0_windows_amd64.zip |
da1d5453d38da4dab3607a01da1e63bf90ce2cba56055cf95602847e2efd44d2 |
Follow the binary-only installation walkthrough.
Release evidence
-
Source/tag commit:
4ed8884e674f6a2625034850073b648d7a7b2aa2. -
Native release build 34695578919 passed on Linux amd64, macOS arm64, and Windows amd64. Every job verified the archive checksum and exact members, extracted it into a spaced path, ran version/help, passing and deliberate-failure scenarios, and cancellation with exit 130 and confirmed cleanup. Unix jobs also passed the
/dev/ttycontrolling-terminal gate. -
Terminal tests 34695568888 passed tests, vet, builds, the pinned external Gum flow, and deliberate failure evidence on all three native hosts.
-
The nine R3c application workflows were refreshed against the extracted stable Windows and Linux bytes: 18/18 cells and 54/54 primary attempts passed with independent oracles. These are operator trials, not independent adoption or broad framework certification.
-
Published install run 34701451854 downloaded the public release and passed on Linux amd64, macOS arm64, and Windows amd64. The Unix jobs required the
/dev/ttycheck. A separate post-publication download confirmed that all six public files match the pre-publication workflow artifacts byte-for-byte.
Important fixes since rc.1
- Unix targets receive the PTY slave as their controlling terminal.
expect_notrequires prior positive observation and a later interaction.wait_for_redrawprovides bounded resize synchronization.- Failure screens are captured before cleanup restores an alternate screen.
Known scope
- Styled snapshots and precise grapheme, emoji, combining-mark, and East Asian wide-character cell layout are outside the v1 contract.
- A very early Windows descendant can escape before Job Object attachment; Unix descendants can deliberately detach into another session.
- Two Windows Node operator-fixture starts produced an empty screen and safely timed out before unchanged diagnostic campaigns passed. No false pass or leaked process was observed; this is not a general Node compatibility claim.
- Playtestr runs targets with the user's permissions and is not a sandbox. Review terminal evidence before sharing it.
See the changelog, support and compatibility policy, and terminal compatibility notes.
Playtestr v0.1.0-rc.2
Playtestr v0.1.0-rc.2 release notes
Status: prepared; publish only from the reviewed candidate commit after the native release workflow passes.
What changed
- Unix targets now receive the PTY slave as their controlling terminal. This fixes full-screen applications such as Lazygit that open
/dev/tty; the rc.1 Linux binary exits during that path. expect_notwaits for text that was positively observed earlier to leave the rendered screen after input or resize. This prevents stale background text from advancing modal workflows.wait_for_redrawrequires post-resize output and allows a bounded one-second redraw window before subsequent input. It supports continuously repainting dashboards that never reach an output-quiet state.- Failure artifacts retain the rendered screen observed before process cleanup, so alternate-screen restoration cannot erase useful evidence.
- Trial recipes can combine the unchanged Playtestr report with an independent external oracle and preserve both outcomes.
The spec and report schema versions remain 1. Existing specs remain valid. The new actions are additive.
Required verification before publication
- Unit and real-PTY tests, vet, and race checks pass on the candidate source.
- Native Linux and macOS extracted archives pass the
/dev/ttyregression. - Windows, Linux, and macOS archives pass checksum, spaced-path extraction, version/help, good/bad/recovered, missing-target, invalid-spec, and report-write checks.
- Downloaded public assets match their checksum files and embedded version.
Known scope
- Lazydocker v0.25.2 on Linux is not claimed to support reopening help after a live resize to 80x24. Normal 120x40 help and resize-only paths remain usable in the tested environment.
- Some Lazydocker endpoint failures and K9s denied/unreachable API states render no useful terminal diagnostic. Playtestr reports the bounded assertion or exit outcome and preserves any screen available before cleanup.
- Precise grapheme, emoji, combining-mark, and East Asian wide-character cell layout remains outside the current terminal-emulator contract.
- Playtestr runs explicitly trusted targets with the user's permissions; it is not a sandbox.
Technical operator trials do not imply maintainer endorsement or independent adoption. See the evidence ledger.
Playtestr v0.1.0-rc.1
Playtestr's first release candidate is a standalone runner for deterministic end-to-end tests of trusted interactive CLIs and TUIs.
It can drive keyboard interactions through a real pseudoterminal, assert rendered text and exact exit status, compare reviewed text snapshots, resize the terminal, and preserve bounded failure evidence and machine-readable reports.
Choose the archive matching your host, download its adjacent .sha256 file, verify the checksum, then extract it. The binary must report playtestr v0.1.0-rc.1.
| Host | Archive | SHA-256 |
|---|---|---|
| Linux amd64 | playtestr_0.1.0-rc.1_linux_amd64.tar.gz |
87bc626c301a650433ccbb0d40346a5e16b1c89d96453061808732f37dc6d274 |
| macOS arm64 | playtestr_0.1.0-rc.1_darwin_arm64.tar.gz |
250bf3926fb29e86869fb31117a9f32c7909fc9cecb4a36690ebc73d3760c106 |
| Windows amd64 | playtestr_0.1.0-rc.1_windows_amd64.zip |
b5842d8648c2021eb0a5baef60da0588ab9cd4ce37623ae7b6cbba6169f97d9e |
Each archive contains the native binary, README, Apache 2.0 license, and third-party notices. Playtestr does not install your target application's runtime or dependencies.
Read the version-matched installation and first-test guide, specification v1, and terminal compatibility limits.
This release runs explicitly trusted targets with your user permissions; it is not a sandbox. Text snapshots do not yet model wide-character, combining-mark, grapheme-cluster, or emoji cell widths correctly. The documented process-tree escape limitations also apply.
Source commit: 1dde372282a574025957c4bf1b603287cbef93e4
Native release verification: GitHub Actions run 34052977944. Linux amd64, macOS arm64, and Windows amd64 each built, checksummed, inspected, extracted, and ran the exact archive later attached here.