Releases: ZelAnton/processkit-py
Releases · ZelAnton/processkit-py
Release list
v1.5.0
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
processkitconsole-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
--ptywith optional--pty-cols/--pty-rowsto - Add runnable examples for managed PTY sessions, lifecycle events,
- Expand
python -m processkit runwith fail-loud captured-output limits, - Expand
python -m processkit supervisewith 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 aShutdownReportdescribing 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 PATHsupport to therunandsuperviseCLI - Add a generated Release notes page to the documentation site, kept in sync
Changed
- Widen
InvalidJson.stdoutfromstrtostr | None: it isNoneonly 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_httphost - 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 processkitrelays itself line by line when its - Block every direct
Commandspawn path under pytest'sno_real_spawn - Preserve completion-hub rearm errors while still attempting every pending
- Let
python -m processkit superviserun when the parent interpreter has no - Reject an empty key passed through the CLI's
--envflag 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
Supervisorimmediately on the first failingScriptedRunner.when - Accept bracketed IPv6 literals in
wait_for_httpand 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
OutcomeandFinishedpickle payloads be restored without entering the
v1.4.2
Added
- New
python -m processkitexit code 119, shared byrun,supervise,
Changed
- Migrate the Rust core to processkit 3.0.0 (a breaking major release;
- BREAKING —
output()/output_bytes()/profile()(and their output_limit(max_bytes=...)underon_overflow="error"— and with it theCtrl+Cthat interruptspython -m processkitoutsiderun/supervise's
Fixed
- Fix an intermittent SIGSEGV at interpreter exit after a program's final
v1.4.1
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_httpnow forms a correct HTTP/1.1 request line for edge-case
v1.4.0
Added
- Add an actionlint CI gate for semantic GitHub Actions and shell-script checks
- Add the
superviseCLI 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
Supervisorliveness 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
Added
- Add
sample_stats(group, every), a pure-Python async generator for live
v1.2.4
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
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
Changed
ProcessResultandSupervisionOutcomeare no longer picklable — pickling
Fixed
CancellationToken's docstring (Rust doc comment and the.pyistub) noprocesskit.__version__now matches its own docstring: the first accessCliClientdefault_env_fnresolvers are now fail-closed: a resolver that
v1.2.1
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
Added
Command.stdout_tee/Command.stderr_teenow accept a Python writerCommand.on_stdout_line(callback)/Command.on_stderr_line(callback): a- A
benchmarks/suite (pytest-benchmark, newbenchdependency-group) wait_for_path(path, *, timeout, interval=0.05)— a new async readinesspython -m processkit run -- <cmd> [args...]: a CLI wrapper that runs aFinishedgainstimed_outandsignalproperties that delegate to theCommand.stdin_file(path)— feed the child's stdin from a file, streamed inProcessResultandBytesResultgaindiagnostic: 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