Skip to content

Final validation: tiny-harness tui never asserts a participant ​

Summarised from testing-plan.md § Verification results and the review records, at the head of PR #21.

Final validation evidence ​

Acceptance criterionHow it was provedWhere
R1.1 --participant acceptedparser unit testunit.md
R1.2 every message and action asserts the id (header + metadata)real run_tui → SdkClient.connect against an embedded harness reaches COMPLETED; demo shows alice reporterintegration.md, manual-walkthrough.md
R1.3 OS user name by default, strippedunit tests (getuser patched, including " alice "); demo shows [os-user] reporterunit.md, manual-walkthrough.md
R1.4 no OS user → exit 2 naming --participantunit test with getuser raising OSError (not staged on the host)unit.md
R1.5 blank --participant → exit 2unit tests (empty, spaces); demo with ' 'unit.md, manual-walkthrough.md
R1.6 both paths (--url and embedded hosting)unit test on the --url path; integration scenarios on the embedded path; demo on bothunit.md, integration.md, manual-walkthrough.md
R1.7 the TUI shows the asserted idcomposer reads Enter to send as alice in the regression scenario; snapshots differ from main only thereintegration.md, regression.md
R1.8 non-printable-ASCII id → exit 2unit tests (josé, CR, LF, tab, CJK, from flag and OS); demo with joséunit.md, manual-walkthrough.md
R2.1 regression test red before, green afterred: InvalidParamsError('no participant asserted') through the real run_tui; green at headintegration.md
R2.2 embedded scenario takes the id from the commandstand-in now receives participant from commands.tuiintegration.md
Security considerations, abuse cases 1–2server refusal and access tests unchanged and passing; security-review skill: no findingsregression.md, security-review.md

Reviews: self-review (2 rounds, 3 findings fixed, 2 won't-fix with reasons), critic-review (codex/gpt-6.1-sol; the first round timed out, and the retry's one finding was fixed), security-review (pass, tier 3). The full CI suite had one failure in the untouched observability test on the first run and passed on the second. That is a pre-existing flake, recorded in regression.md.