Skip to content

Releases: ZelAnton/processkit-py

v1.5.0

Choose a tag to compare

@github-actions github-actions released this 08 Aug 18:36

Added

  • Add cumulative whole-tree I/O counters (ProcessGroupStats.io_read_bytes
  • Add ProcessGroup.adopt_external(pid) to bring an already-running external
  • Add Command.arg0()/configured_arg0, Command.merge_stderr_in_pipe(),
  • Add partial-tail readiness probes on RunningProcess
  • Add Command.sanitize_vt(), stdout_sanitize_vt(), and
  • Add a processkit console-script entry point
  • Add `ProcessGroup.update_limits(*, max_memory=None, max_processes=None,
  • Add Command.rlimit(resource, soft, hard) for POSIX per-process
  • Add RunningProcess.stdout_json_lines() for built-in NDJSON line
  • Add nightly benchmark coverage for PTY relay, lifecycle events,
  • Add wait_for_named_pipe() readiness probing for Windows services, including
  • Add Linux/Windows child CPU affinity through Command.cpu_affinity(...) and
  • Add reuse-safe process_info() / process_is_alive() helpers for bare pids
  • Add spawn-free host_containment() capability reports, the current
  • Add deterministic cassette secret scrubbing through
  • Add --pty with optional --pty-cols/--pty-rows to
  • Add runnable examples for managed PTY sessions, lifecycle events,
  • Expand python -m processkit run with fail-loud captured-output limits,
  • Expand python -m processkit supervise with per-incarnation timeouts and
  • Add RunningProcess.stderr_lines() for stderr-only line streaming and direct
  • Add Command.run_json() / arun_json() with the same typed JSON decoding and
  • Add a CLI Runner link immediately after the Rust version in the Pages
  • Add opt-in pseudo-terminal launches with Command.pty(...) and live terminal
  • Add live Supervisor.start() / astart() sessions with status snapshots,
  • Add ProcessGroup.stop() / astop() with a ShutdownReport describing the
  • Add RunningProcess.lifecycle_events() for one ordered stream containing the
  • Add Linux disk-I/O scheduling controls through Command.io_priority(...);
  • Add the deliberately uncontained Command.spawn_detached() escape hatch and
  • Add repeatable --env-file PATH support to the run and supervise CLI
  • Add a generated Release notes page to the documentation site, kept in sync

Changed

  • Widen InvalidJson.stdout from str to str | None: it is None only when
  • Bump the bundled ProcessKit-rs core to 3.3.0, preserving the existing Python
  • Bump the bundled ProcessKit-rs core to 3.2.0, preserving the existing Python
  • Document and pin idle monitoring per iterator: stdout_lines() watches
  • Exercise Windows ARM64 in regular and nightly test matrices, and add a

Fixed

  • Reject CR/LF, control, and whitespace characters in a wait_for_http host
  • Reject CLI resource and restart limit values above their binding widths with
  • CLI duration, CPU, backoff, and health-check numeric options now reject
  • Keep Nightly hardening actionable: its mutation sandbox now includes the
  • Python writer objects used by decoded and raw output tees now retry partial
  • Close the completion hub's socket at the OS level when Python-level cleanup
  • Deliver the output python -m processkit relays itself line by line when its
  • Block every direct Command spawn path under pytest's no_real_spawn
  • Preserve completion-hub rearm errors while still attempting every pending
  • Let python -m processkit supervise run when the parent interpreter has no
  • Reject an empty key passed through the CLI's --env flag with the same usage
  • Treat every accepted spelling of piped stdout/stderr consistently when
  • Prevent a concurrent lifecycle-event finisher from making a still-reportable
  • Stop Supervisor immediately on the first failing ScriptedRunner.when
  • Accept bracketed IPv6 literals in wait_for_http and keep scoped IPv6 hosts
  • Prevent the command-line wrapper's own intermediate output (doctor, idle
  • Keep async batch result conversion and CliClient.arun_json() parsing on the
  • Let Outcome and Finished pickle payloads be restored without entering the

v1.4.2

Choose a tag to compare

@github-actions github-actions released this 26 Jul 22:46

Added

  • New python -m processkit exit code 119, shared by run, supervise,

Changed

  • Migrate the Rust core to processkit 3.0.0 (a breaking major release;
  • BREAKINGoutput() / output_bytes() / profile() (and their
  • output_limit(max_bytes=...) under on_overflow="error" — and with it the
  • Ctrl+C that interrupts python -m processkit outside run/supervise's

Fixed

  • Fix an intermittent SIGSEGV at interpreter exit after a program's final

v1.4.1

Choose a tag to compare

@github-actions github-actions released this 24 Jul 21:43

Added

  • Add CliClient.run_json(call) / arun_json(call): run a wrapped tool like
  • Add Command.idle_timeout(seconds), an inactivity timeout that tears the
  • Add python -m processkit run --idle-timeout SECONDS: kills the child and

Fixed

  • wait_for_http now forms a correct HTTP/1.1 request line for edge-case

v1.4.0

Choose a tag to compare

@github-actions github-actions released this 23 Jul 22:37

Added

  • Add an actionlint CI gate for semantic GitHub Actions and shell-script checks
  • Add the supervise CLI subcommand with restart-policy and backoff flags.
  • Add `wait_for_http(host, port, path="/", *, timeout, interval=0.05,
  • Add aoutput_as_completed/aoutput_as_completed_bytes, the streaming
  • Add python -m processkit run --profile [FILE], emitting a one-line JSON
  • Add python -m processkit run --create-no-window, applying
  • Add Command.stdout_file() / stderr_file(), spawn-time direct-redirect
  • Add ProcessGroup.members_info() / MemberInfo, an enriched process-tree
  • Add Command.windows_graceful_ctrl_break(), an opt-in Windows-only graceful
  • Add opt-in Supervisor liveness health checks via three new keyword-only
  • Add Command.kill_on_parent_death_scope(), a read-only capability query

Changed

  • Bump the processkit dependency to 2.3.1 (lockfile pinned via `cargo update -p
  • Bump the processkit dependency to 2.3.2 (lockfile pinned via `cargo update -p

v1.3.0

Choose a tag to compare

@github-actions github-actions released this 19 Jul 11:23

Added

  • Add sample_stats(group, every), a pure-Python async generator for live

v1.2.4

Choose a tag to compare

@github-actions github-actions released this 12 Jul 20:01

Added

  • Add Open Graph and Twitter Card metadata to the docs site
  • Add Open Graph and Twitter Card metadata to the docs site
  • Add real Rust crate and .NET documentation links
  • Add real Rust crate and .NET documentation links
  • Add table border, header fill, and row striping to match the reference site

Changed

  • Publish documentation site to GitHub Pages
  • Pin GitHub Pages deploy actions to commit SHA
  • Initialize integration workspace for batch B-20260711T155830Z
  • Publish documentation site to GitHub Pages on push to main
  • Initialize integration workspace for batch B-20260711T171812Z
  • Reserve navigation placeholders for the Rust crate and .NET variant
  • Initialize integration workspace for batch B-20260711T181214Z
  • Reserve navigation placeholders for the Rust crate and .NET variant
  • Restyle the docs site navigation and tables to match the ProcessKit look
  • Move Rust crate and .NET nav entries right after Home
  • Initialize integration workspace for batch B-20260711T234535Z
  • Move Rust crate and .NET nav entries right after Home
  • Link the Rust crate and .NET nav entries directly to their docs sites
  • Match the reference's pinned nav-group title styling more closely
  • Initialize integration workspace for batch B-20260712T014055Z
  • Match the reference site's typography and CSS styling more closely
  • Link the Rust crate and .NET nav entries directly to their docs sites
  • Move the implementation switcher above Home in the docs nav
  • Move the Rust/Python/.NET version switcher above Overview in nav
  • Match the reference site's actual dark-theme table colors (navy, not coal)
  • Match reference site's table borders, header fill, row striping, and dark-theme colors
  • Rebuild the docs site with mdBook to match the ProcessKit family
  • Render API-reference signatures as text, fix generator griffe types
  • Give a clear diagnostic for parse_signal with out-of-range ints and floats
  • Convert Supervisor to the frozen + Mutex<Option<...>> pattern
  • Open integration workspace for batch B-20260712T150224Z
  • Convert Supervisor to the frozen + Mutex<Option<...>> pattern
  • Give a clear diagnostic for parse_signal with out-of-range ints and floats
  • Align property test with the corrected out-of-i32-range signal diagnostic
  • Unify named-preset parsers on case-insensitive matching
  • Case-normalize the rejection filters in preset property tests
  • Open integration workspace for batch B-20260712T164130Z
  • Unify case-insensitivity across named-preset parsers
  • Bump processkit dependency to 2.2.4
  • Open integration workspace for batch B-20260712T184717Z
  • Bump processkit dependency to 2.2.4

Fixed

  • Fix wide-table scrolling specificity and code word-breaking
  • Fix doc comment list-bullet misparse and reformat long test line

Removed

  • Drop the external crates.io link from the Rust crate placeholder
  • Remove stray trailing blank line from mkdocs.yml

v1.2.3

Choose a tag to compare

@github-actions github-actions released this 11 Jul 01:01

Changed

  • Bump processkit dependency to 2.2.3
  • Initialize integration workspace for batch B-20260710T121901Z
  • Bump processkit dependency to 2.2.3
  • Initialize integration workspace for batch B-20260710T230508Z

Fixed

  • Fix broken repo-relative README links on PyPI
  • Fix broken repo-relative README links for PyPI rendering

v1.2.2

Choose a tag to compare

@github-actions github-actions released this 10 Jul 06:59

Changed

  • ProcessResult and SupervisionOutcome are no longer picklable — pickling

Fixed

  • CancellationToken's docstring (Rust doc comment and the .pyi stub) no
  • processkit.__version__ now matches its own docstring: the first access
  • CliClient default_env_fn resolvers are now fail-closed: a resolver that

v1.2.1

Choose a tag to compare

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

Added

  • Add Command.prefer_local, exposing crate 2.2's bare-name resolution override
  • Add Command.prefer_local, exposing crate 2.2's bare-name resolution override
  • Add a runnable Command.prefer_local example to docs
  • Add ProcessStdin.send_control for interactive control-byte delivery
  • Add ProcessStdin.send_control for interactive control-byte delivery
  • Add Command.prefer_local usage example to docs/commands.md

Changed

  • Broaden Command.priority docstring privilege caveat to cover above_normal and niced-parent normal
  • Bump processkit dependency requirement and lockfile to 2.2.0
  • Bump processkit dependency requirement and lockfile to 2.2.0
  • Broaden Command.priority docstring privilege caveat to cover above_normal and niced-parent normal
  • Initialize integration workspace for batch B-20260709T132808Z
  • Initialize integration workspace for batch B-20260709T144637Z
  • Apply rustfmt to send_control signature
  • Bump processkit dependency to 2.2.1
  • Initialize integration workspace for batch B-20260709T162529Z
  • Bump processkit dependency to 2.2.1

Fixed

  • Fix Windows-incompatible relative path-form assertion in the prefer_local example

v1.2.0

Choose a tag to compare

@github-actions github-actions released this 08 Jul 19:35

Added

  • Command.stdout_tee / Command.stderr_tee now accept a Python writer
  • Command.on_stdout_line(callback) / Command.on_stderr_line(callback): a
  • A benchmarks/ suite (pytest-benchmark, new bench dependency-group)
  • wait_for_path(path, *, timeout, interval=0.05) — a new async readiness
  • python -m processkit run -- <cmd> [args...]: a CLI wrapper that runs a
  • Finished gains timed_out and signal properties that delegate to the
  • Command.stdin_file(path) — feed the child's stdin from a file, streamed in
  • ProcessResult and BytesResult gain diagnostic: str | None (stderr if it
  • Value semantics for the result types: ProcessResult, BytesResult,

Changed

  • CliClient(default_env_fn=...) now validates that every value in the

Fixed

  • Args (from processkit import Args) no longer rejects the single most