vipirc 0.5.0 validation evidence

Start with ../RELEASE.json and ../VALIDATION.txt. RELEASE.json is generated
only after the release gates pass and identifies the executable and evidence
by SHA256. Each JSON report also states its own scope and outcome. A passing
component test does not imply that an application or longevity run passed.

SHIPPED CANDIDATE

The release-050-ready-* reports describe the candidate whose executable is:
f36224725d55121bfab6f9f6176b1586f981fe3b30364bd1753f319f39d6fb55

The main records are the build, regression-summary, stress-summary,
clean, soak-summary, soak, benchmark-summary, and benchmark
reports with that prefix. For the final sanitizer and UI stress results,
use release-050-ready-settled-sanitize.json and
release-050-ready-settled-ui-stress-validation.json. Final component
provenance is release-050-ready-settled-component-reuse.json. The
credentials-050-ready-* records contain the fresh credential/GPG matrix.
The source archive includes test programs, raw logs, relevant runner scripts,
and preserved test inputs. Instrumented executables are not redistributed.

The ordinary gate covers ten C suites and eighteen Python invocations.
The sanitizer gate covers ten C suites and eleven complete application
suites. Counts refer to completed suites, not individual assertions. The
UI stress report describes twelve workloads separately. The soak records
its requested and completed durations, process identity, resources,
resizes, reconnects, drafts, unexpected sends, and terminal restoration.

HISTORICAL ATTEMPTS

Earlier reports remain in this directory so failed and superseded attempts
are visible. They are not substituted for the final whole-client gates.

The first 0.5.0 candidate, SHA256 beginning 793e50d8, had an idle resize
defect. Its long run stopped after a screen-model reconstruction failure;
the exact timing cause of that particular failure was not proven. A
deterministic real-PTY test then proved that a SIGWINCH handled immediately
before poll could leave the old layout until keyboard input arrived.
release-050-prepoll-regression.json retains old/fixed outcomes. Curses input
is now checked nonblockingly after each bounded wait.

The intermediate candidate, SHA256 beginning e989dac7, contains that fix.
Its long run was deliberately stopped when review found a separate inline
credential line-ending defect. That partial run is marked superseded and
incomplete; it does not count as a longevity pass. The parser now strips
exactly one CR only when paired with LF, then rejects remaining control
bytes. release-050-inline-cr-regression.json retains old/fixed parser
evidence and the table-driven regression.

One intermediate compact-screen Clear-click test failed once; its exact
event sequence remains unproven. Focused and repeated diagnostics passed,
and tracing established that the test helper emitted duplicate resize
events. Only the redundant synthetic signal was removed. The original
failure, traces, and qualifications remain in the mouse-diagnostic record.

A later manual-return assertion was reproducibly shown to read a partial
PTY frame. The rest of the already-produced output completed the correct
chat screen with its draft intact, without another key or signal. The
manual-frame-diagnostic record includes both screen states. The corrected
helper waits for the manual to close and the complete chat editing state
to appear, retaining the original assertion. Application behavior is unchanged.

REUSE AND LIMITS

Standalone allocation, DCC, and transport probes are reused only when their
actual implementation/header/test dependencies match their passing runs.
The component-reuse report records those hashes and linked evidence.
Storage, credentials, and full-application gates were refreshed after the
configuration parser correction. Test helper changes are recorded in the
individual gate provenance; older input hashes are never rewritten.

All network fixtures use local loopback. No public IRC account, public DCC
peer, or user's credential was used. Measurements were executed on Linux
x86-64; native BSD validation remains outstanding. The completed long-run
duration is twenty minutes, not multiple days. Synthetic timing and memory
measurements are not an ircii/irssi comparison or a security audit.

Historical absolute paths identify this workspace. Use the bundled source
and test files with the commands in VALIDATION.txt to reproduce the checks
on another supported development environment.
