windows-spawn 0.1.0

Windows process creation with explicit handle, Job, mitigation, ConPTY, and child ownership
Documentation
# Changelog


Format: [Keep a Changelog](https://keepachangelog.com/en/1.1.0/) and Semantic
Versioning with Cargo's pre-1.0 compatibility rules.

## [Unreleased]


## [0.1.0] - 2026-08-03


Initial release.

### Added


- Reusable `Command` and borrowed per-spawn capabilities.
- Transactional process creation with automatic rollback, built on private
  running/suspended typestates that make a mismatched internal transition
  unrepresentable.
- Explicit handle lists, high-level handle arguments and environment values,
  alternate parents, ordered Jobs, typed mitigation policies, and ConPTY.
  Pseudoconsole creation sets `STARTF_USESTDHANDLES` with all three standard
  handles null, matching Microsoft Terminal's `ConptyConnection.cpp`, so a
  hosted child cannot fall back to standard handles the parent redirected.
- Owned standard streams, cached exit status, and concurrent output draining.
  Both reader threads are joined even when one reader fails or panics.
- `SuspendedChild` type-state transitions with pre-resume process and primary
  thread inspection. `resume` requires the primary thread's previous suspend
  count to be exactly one; externally changed counts fail and roll back.
- Crate documentation backed by `docs/crate.md`, with the README compiled and
  executed as a doctest so its example cannot drift from the API.
- Packaged lifecycle examples and ADRs.
- Rust 1.75, cross-architecture, public API, coverage, mutation, supply-chain,
  license, spelling, package, and CodeQL gates.
  `clippy::undocumented_unsafe_blocks` is denied, making CONTRIBUTING's
  "every `unsafe` block carries a specific safety justification" rule
  machine-checked instead of a convention.

### Removed


- The arbitrary `InheritableHandle` escape hatch and
  `SpawnOptions::inherit_handle`. Handles are transferred through standard
  I/O or the argument/environment protocol, with inheritable duplicates limited
  to the spawn transaction.

### Known limitations


- Windows retains a process-wide reverse inheritance race: unrelated
  broad-inheritance spawns can receive a short-lived inheritable duplicate.
  Avoid concurrent broad inheritance when transferred handles are sensitive.
  See [ADR 0005]docs/adr/0005-handle-transfer-and-reverse-race.md.
- The `sha2` bump to 0.11 stays deferred because it requires Rust 1.85, above
  this crate's 1.75 minimum. The release-artifact checksum helper builds
  against both 0.10 and 0.11.

[Unreleased]: https://github.com/P4suta/windows-spawn/compare/v0.1.0...HEAD
[0.1.0]: https://github.com/P4suta/windows-spawn/releases/tag/v0.1.0