# 0.1.2 Release Validation

## Result

The v0.1.2 durability and regression-coverage release passed the complete 583-test source suite on Linux with Python 3.12. The wheel and source distribution build from the final release tree, strict metadata validation passes, and an isolated wheel install exposes version 0.1.2 through the Python package. With the declared runtime dependencies supplied from the validated source environment, both console entry points also pass.

Validation date: 2026-07-15

Release base: `81b7e3c76081acbeb4bff951af81416af1bb4efe` (`v0.1.1`)

## Scope

This release changes durable filesystem publication, JSON strictness, installation-doctor annotations, CI typing coverage, and tests. It does not change model loading, audio decoding, segmentation, VAD inference, ASR generation, batching policy, alignment, transcript construction, or subtitle timing behavior. Adaptive batch growth and duration-weighted OOM splitting received direct tests without implementation changes.

Directory syncing now uses one policy for output generations, profiles, and resumable checkpoints: known unsupported directory-handle errors remain best effort, while genuine I/O failures propagate. Atomic writers determine target modes before acquiring temporary descriptors, and cleanup failures no longer replace an active publication, rollback, state, profile, or directory-sync error.

Output transactions now register backup ownership immediately and register each commit attempt before `os.replace`. Deterministic fault tests cover interruption after a completed rename, publication plus rollback failure, a missing rollback backup, failure while closing a backup descriptor, and failure during temporary cleanup. Incomplete rollback reports retained backups instead of reporting false success.

State-envelope tests cover unsupported schemas, checksum mismatches, and truncated JSON. Exact SRT and VTT assertions cover Unicode, cue numbering, timestamp separators, and hour rollover. JSON transcript serialization rejects non-finite values.

## Automated Gates

| Gate | Result |
|---|---|
| Lockfile | `uv lock --check` passed with root version 0.1.2 |
| Formatting | Ruff format check passed for 91 files |
| Lint | Ruff check passed |
| Typing | Strict Mypy passed for the public API fixture, CLI, doctor, doctor support, and module entry point |
| Compilation | `compileall` passed for `src/`, `tests/`, and `scripts/` |
| Dependencies | `uv pip check` reported all 110 installed packages compatible |
| Tests | 583 passed; 3 Librosa/Audioread standard-library deprecation warnings |
| Distribution | Wheel and source distribution built successfully; strict Twine validation passed |
| Installed wheel | Package version, typing marker, and dependency-light API import passed from an isolated no-dependency wheel installation; CLI version/help and doctor help passed with declared dependencies supplied from the validated source environment |

The real TorchCodec tests used the CUDA 13 runtime libraries installed with PyTorch 2.11.0 in the source environment. Without that library directory on `LD_LIBRARY_PATH`, four TorchCodec tests fail during shared-library loading before package code executes; with the validated runtime directory present, all 27 audio-backend tests and all 583 package tests pass.

## Independent Review

Three independent reviews covered the agreed state, rendering, batching, typing, durability, resource-ownership, rollback, cleanup, JSON, packaging, and release-documentation changes.

The first review found no production regression and identified a vacuous test assertion, missing profile regressions, and a directory-close masking case. The transaction review reproduced races involving post-rename interruption, missing rollback backups, backup-descriptor ownership, untouched destination inodes, and ambiguous descriptor reuse after a failed close. The third review confirmed all agreed findings were resolved and identified the stale local Mypy command in the development guide. Every concrete finding was corrected, reviewed again, and followed by a complete gate rerun.

The action-reference pinning suggestion was intentionally not adopted. The repository retains the maintained release-tag convention previously selected for its GitHub Actions workflows.

## Runtime Validation Decision

No real-model CUDA transcription benchmark was repeated for v0.1.2 because inference behavior and performance-sensitive implementation paths are unchanged. The retained v0.1.0 and v0.1.1 transcript, performance, checkpoint-selection, and alternate-model evidence remains applicable. This release adds deterministic coverage around output durability and existing batch-controller arithmetic rather than changing transcription results.

## Release Assessment

The final v0.1.2 tree closes the selected review findings without expanding the public API or altering inference behavior. All source, typing, packaging, installed-wheel, and deterministic failure-path gates pass. No release-blocking defect remains within the validated Linux scope.
