Skip to content

v3.0.0

Choose a tag to compare

@github-actions github-actions released this 25 Jul 19:09

Added

  • Give use_pty() children a coherent spawn-time terminal identity. Unix PTYs
  • Add Linux I/O scheduling for child processes: Command::io_priority(IoPriority)
  • Add pseudo-terminal window-size control for use_pty runs (the pty
  • Make PTY (and any terminal-driven) merged output line-consumable with two
  • Add Command::spawn_detached — the crate's one deliberate, opt-in escape
  • Extend the events() stream (see the breaking rename under Changed) with
  • Add an opt-in PTY launch mode behind the new pty feature:
  • Add OwnedStatsSampler — an owning, 'static twin of the borrowing
  • Give the control predicates a fallible channel: Supervisor::try_stop_when
  • Add the ErrorReason::Predicate { predicate, source } variant and its
  • Narrate the graceful-teardown transitions on the tracing seam (feature
  • Add Error::kind() / ErrorReason::kind() returning a new #[non_exhaustive]
  • Add payload accessors that previously required destructuring the
  • Add output_stream(commands, concurrency, runner) / output_stream_bytes(...) — the
  • Add ProcessResult::configured_timeout() / ok_codes() — accessors for the
  • Add free-standing process_info(pid) -> Result<Option<MemberInfo>> and
  • Add processkit::host_containment() -> HostContainment — a **spawn-free,
  • Add RunningProcess::stdout_bytes_seen() and
  • Add Command::stdout_raw_tee(writer) / stderr_raw_tee(writer) — a
  • Add ProcessGroup::soft_stop_scope() -> SoftStopScope (needs process-control),
  • Add RunningProcess::drain() — a discard-style wait that **respects the
  • Add ProcessGroup::stop(grace, escalate) (needs process-control), the
  • Windows graceful shutdown now posts WM_CLOSE (best-effort, posted not sent)
  • Add Pipeline::start() returning a live PipelineSession — the multi-stage
  • Add a seeded randomized-interleaving stress harness for the process lifecycle
  • Add "Running untrusted children" hardening guide (docs/untrusted-children.md)
  • Add comparative benchmarks (benches/compare.rs) and the
  • Add Supervisor::start() returning a live SupervisionSession (status
  • Add RunningProcess::wait_for_socket for Unix domain socket readiness probes
  • Add ProcessGroup::update_limits to re-apply ResourceLimits to a live group
  • Publish build-provenance attestations for release artifacts (the packaged
  • Add stable machine identifiers to the reporting and configuration enums.
  • Add Command::capture_policy(...) plus the CapturePolicy trait and the

Changed

  • Breaking: the merged output-event stream is now a full process-lifecycle
  • ErrorReason::OutputTooLarge.total_bytes and the OverflowMode::Error plus
  • Breaking: Error is now a pointer-sized wrapper around a boxed
  • Release publishing now uses crates.io Trusted Publishing — a short-lived token
  • ProcessGroup::signal for Signal::Int / Signal::Term on Windows now
  • ProcessGroup::signal on the POSIX process-group mechanism (macOS/BSD and the
  • Command::to_tokio_command() is no longer #[doc(hidden)] — it is now a

Removed

  • Breaking: the pre-3.0 output-stream names, removed outright with no deprecated

Fixed

  • Make Windows ConPTY launches explicitly clear all three inherited standard
  • OverflowMode::DropNewest with a max_bytes cap now keeps a true contiguous