Skip to content

Build the native Rust TUI testing MVP - #58

Merged
delaudio merged 60 commits into
mainfrom
agent/resolve-all-issues
Aug 16, 2026
Merged

delaudio merged 60 commits into
mainfrom
agent/resolve-all-issues

Conversation

@delaudio

@delaudio delaudio commented Aug 16, 2026 •

Copy link
Copy Markdown
Owner

What changed

Implemented the complete native Rust MVP for deterministic end-to-end TUI testing:

  • isolated Unix PTY process trees with bounded, retryable cleanup and normalized exits
  • incremental VT screen model with styles, alternate screen, Unicode width, and combining marks
  • portable keyboard expressions, text/paste input, live locators, assertions, and process expectations
  • atomic deterministic snapshots with explicit update mode and readable diffs
  • serial Rust runner and TOML CLI with filtering, reporter selection, bounded timeouts, and cleanup controls
  • isolated Ratatui, Bubble Tea, and Textual fixtures
  • macOS/Linux CI, internal-only test fixtures, and Rust-first documentation
  • synchronized PTY/screen resizing and strict assertion-deadline handling

Root cause

The repository contained the product plan and issue catalogue but did not yet contain the Rust implementation or its validation workflow.

Validation

  • cargo fmt --check
  • cargo clippy --locked --all-targets --all-features -- -D warnings
  • cargo test --locked — 85 unit tests and 3 CLI tests passed
  • cargo test --locked --tests --features internal-test-fixture -- --test-threads=1 — 20 PTY integration tests passed; opt-in framework tests skipped locally
  • cargo test --locked --doc — doc test passed
  • assertion deadline regression passed 20 consecutive runs
  • cargo check --locked --bin ttry
  • Norn working-tree review with provider Codex passed after remediation (run-1786914621560750000)
  • final branch review completed; its sole residual finding was verified as a false positive by successful binary compilation and was explicitly accepted before push
  • follow-up Add deterministic coverage for default allow_running grace #61 tracks scheduler-independent coverage for the default allow_running grace race

Issues

Closes #1
Closes #2
Closes #3
Closes #4
Closes #5
Closes #6
Closes #7
Closes #8
Closes #9
Closes #10
Closes #11
Closes #22
Closes #23
Closes #24
Closes #25
Closes #26
Closes #27
Closes #28
Closes #29
Closes #30
Closes #31
Closes #32
Closes #33
Closes #34
Closes #35
Closes #36
Closes #37
Closes #38
Closes #39
Closes #40
Closes #41
Closes #42
Closes #43
Closes #44
Closes #45
Closes #46
Closes #47
Closes #48
Closes #49
Closes #50
Closes #51
Closes #52
Closes #53
Closes #54
Closes #55
Closes #56
Closes #57
Closes #60

@delaudio
delaudio marked this pull request as ready for review August 16, 2026 18:00
@delaudio
delaudio merged commit 35eb7a8 into main Aug 16, 2026
6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment