running-process 4.8.2__tar.gz → 4.8.3__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {running_process-4.8.2 → running_process-4.8.3}/Cargo.lock +19 -9
- {running_process-4.8.2 → running_process-4.8.3}/Cargo.toml +1 -1
- running_process-4.8.2/README.md → running_process-4.8.3/PKG-INFO +25 -0
- running_process-4.8.2/PKG-INFO → running_process-4.8.3/README.md +10 -15
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/Cargo.toml +5 -2
- running_process-4.8.3/crates/running-process/src/async_process.rs +232 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/bin/running-process-broker-v2.rs +3 -1
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/broker/adopt.rs +2 -2
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/broker/client_v2.rs +494 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/lib.rs +6 -0
- running_process-4.8.3/crates/running-process/src/process_runtime.rs +437 -0
- running_process-4.8.3/crates/running-process/tests/async_process_test.rs +21 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process-py/Cargo.toml +2 -2
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process-py/src/lib.rs +2 -1
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process-py/src/process_tree.rs +16 -3
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process-py/src/tests/process_tree.rs +6 -0
- {running_process-4.8.2 → running_process-4.8.3}/pyproject.toml +1 -1
- {running_process-4.8.2 → running_process-4.8.3}/src/running_process/__init__.py +7 -2
- {running_process-4.8.2 → running_process-4.8.3}/src/running_process/cli.py +49 -2
- running_process-4.8.3/src/running_process/process_utils.py +20 -0
- running_process-4.8.2/src/running_process/process_utils.py +0 -11
- {running_process-4.8.2 → running_process-4.8.3}/LICENSE +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/README.md +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/build.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/examples/handoff_rollout_evidence.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/proto/broker_v1/broker_v1_admin.proto +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/proto/broker_v1/broker_v1_envelope.proto +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/proto/broker_v1/broker_v1_manifest.proto +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/proto/broker_v1/broker_v1_service_def.proto +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/proto/broker_v1/buf.yaml +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/proto/broker_v2/broker_v2_control.proto +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/proto/broker_v2/broker_v2_manifest.proto +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/proto/broker_v2/broker_v2_service_def.proto +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/proto/daemon.proto +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/README.md +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/bin/README.md +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/bin/daemon.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/bin/running-process-broker-v1.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/bin/running-process-broker-v2/tests.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/bin/running-process-cleanup.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/bin/runpm.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/bin/trampoline.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/boot_autostart/linux.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/boot_autostart/macos.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/boot_autostart/mod.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/boot_autostart/windows.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/broker/README.md +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/broker/backend_handle.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/broker/backend_lib/accept_handed_off.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/broker/backend_lib/mod.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/broker/backend_lib/wire.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/broker/backend_lifecycle/identity.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/broker/backend_lifecycle/mod.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/broker/backend_lifecycle/probe.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/broker/backend_lifecycle/probe_async.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/broker/backend_lifecycle/verify_pid.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/broker/backend_sdk/frame_client.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/broker/backend_sdk/frame_client_async.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/broker/backend_sdk/identity_file.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/broker/backend_sdk/mod.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/broker/backend_sdk/mux.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/broker/broker_http_discovery.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/broker/broker_http_port.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/broker/broker_http_server.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/broker/broker_owned_bind/tests.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/broker/broker_owned_bind.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/broker/brokered_backend.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/broker/builders.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/broker/capabilities.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/broker/client.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/broker/doctor.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/broker/fs_health.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/broker/get_http_endpoint_dispatch.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/broker/host_identity.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/broker/http_endpoint_registry.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/broker/lifecycle/crash_dump.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/broker/lifecycle/mod.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/broker/lifecycle/names.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/broker/lifecycle/names_v2.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/broker/lifecycle/privilege.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/broker/lifecycle/process_tree.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/broker/lifecycle/sid.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/broker/manifest.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/broker/mod.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/broker/protocol/frame_ext.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/broker/protocol/framing.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/broker/protocol/mod.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/broker/protocol/registry.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/broker/protocol/validate.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/broker/protocol_v2/README.md +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/broker/protocol_v2/backend_handle.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/broker/protocol_v2/client_compat.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/broker/protocol_v2/io.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/broker/protocol_v2/loader.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/broker/protocol_v2/manifest_io.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/broker/protocol_v2/mod.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/broker/secure_dir.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/broker/server/admin.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/broker/server/backend_endpoint_allocator.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/broker/server/backend_launcher.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/broker/server/backend_registry.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/broker/server/broadcast.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/broker/server/connection.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/broker/server/control_socket.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/broker/server/deadline_stream.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/broker/server/fd_pressure.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/broker/server/handoff/ack.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/broker/server/handoff/fallback.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/broker/server/handoff/handoff_token.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/broker/server/handoff/latency.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/broker/server/handoff/mod.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/broker/server/handoff/orchestrate.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/broker/server/handoff/orchestrate_unix.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/broker/server/handoff/pending.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/broker/server/handoff/unix.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/broker/server/handoff/windows.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/broker/server/handoff/wire.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/broker/server/handoff_serve.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/broker/server/hello_handler.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/broker/server/hello_router.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/broker/server/idle_coord.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/broker/server/instance.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/broker/server/metrics.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/broker/server/mod.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/broker/server/perf_guard.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/broker/server/recovery.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/broker/server/serve.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/broker/server/service_def_loader.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/broker/server/spawn_coordinator.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/broker/server/spawn_wait.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/broker/server/trace_context.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/broker/server/version_allow_list.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/cleanup/instances.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/cleanup/list.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/cleanup/mod.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/cleanup/prune.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/cleanup/uninstall.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/cleanup/verify_artifacts.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/cleanup/verify_basic.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/client/client.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/client/deadline_io.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/client/mod.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/client/observer.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/client/paths.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/client/pipe_session.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/client/pty_session.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/client/telemetry.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/console_detect.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/containment.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/daemon/attach_stream.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/daemon/config.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/daemon/emergency_reserve.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/daemon/handlers/core.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/daemon/handlers/kill.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/daemon/handlers/maintenance.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/daemon/handlers/mod.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/daemon/handlers/observer.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/daemon/handlers/pipe_sessions_handlers.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/daemon/handlers/process_tree.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/daemon/handlers/pty_sessions_handlers.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/daemon/handlers/registry_handlers.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/daemon/handlers/services.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/daemon/handlers/spawn.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/daemon/handlers/telemetry.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/daemon/handlers/util.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/daemon/handlers_tests.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/daemon/idle.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/daemon/mod.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/daemon/observer_registry.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/daemon/pipe_attach_stream.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/daemon/pipe_sessions.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/daemon/platform/mod.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/daemon/platform/unix.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/daemon/platform/windows.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/daemon/pty_sessions.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/daemon/reaper.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/daemon/registry.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/daemon/runtime_gc.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/daemon/server.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/daemon/services.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/daemon/services_snapshot.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/daemon/shadow.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/daemon/telemetry.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/environment.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/helpers.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/maintenance/mod.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/maintenance/release_handles.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/observer/cmdline.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/observer/descendants_linux.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/observer/descendants_macos.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/observer/file_handles.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/observer/mod.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/observer/pid_identity.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/observer/tests.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/originator.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/probe/capture.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/probe/client.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/probe/mod.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/probe/worker.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/process_tree.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/pty/backend.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/pty/conpty_passthrough/child.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/pty/conpty_passthrough/conpty_acquire.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/pty/conpty_passthrough/conpty_api.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/pty/conpty_passthrough/conpty_sidecar_hashes.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/pty/conpty_passthrough/mod.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/pty/conpty_passthrough/pipes.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/pty/conpty_passthrough/proc_thread_attr.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/pty/conpty_passthrough/pseudoconsole.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/pty/conpty_passthrough/win_version.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/pty/mod.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/pty/native_pty_process.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/pty/pty_posix.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/pty/pty_windows.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/pty/terminal_input.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/public_symbols.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/runpm_config.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/rust_debug.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/spawn.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/spawn_imp_unix.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/spawn_imp_windows.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/systemd_killmode.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/terminal_graphics.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/test_support/conformance.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/test_support/mod.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/tests.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/types.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/unix.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/window_icon/ico.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/window_icon/mod.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/window_icon/osc.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/window_icon/tests_support.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/window_icon/x11.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/windows.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/README.md +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/backend_launch_budget_test.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/broker/admin.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/broker/backend_endpoint_allocator.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/broker/backend_handle_boot_id.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/broker/backend_handle_common.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/broker/backend_handle_dead.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/broker/backend_handle_probe.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/broker/backend_handle_recycled.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/broker/backend_registry.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/broker/backend_sdk.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/broker/backend_sdk_async.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/broker/broadcast_release_handles.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/broker/builders.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/broker/client.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/broker/conformance_kit.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/broker/connection.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/broker/contrib_templates.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/broker/docs_escape_hatch.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/broker/docs_index.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/broker/doctor.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/broker/fd_pressure.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/broker/framing.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/broker/golden_bytes.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/broker/handoff_ack_deadline.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/broker/handoff_adopted_backend.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/broker/handoff_adoption.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/broker/handoff_backend_lib.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/broker/handoff_capability.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/broker/handoff_cross_os_acceptance.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/broker/handoff_end_to_end_acceptance.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/broker/handoff_fallback_perm_denied.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/broker/handoff_latency.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/broker/handoff_latency_e2e.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/broker/handoff_orchestrate.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/broker/handoff_serve_e2e.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/broker/handoff_serve_latency.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/broker/handoff_token_mismatch.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/broker/handoff_transport.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/broker/handoff_under_load.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/broker/handoff_unix_e2e_orchestrate.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/broker/handoff_unix_orchestrate.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/broker/handoff_windows_duplicate_handle.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/broker/handoff_windows_orchestrate.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/broker/handoff_wire.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/broker/hello_concurrent.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/broker/hello_handler.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/broker/hello_rate_limit.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/broker/hello_router.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/broker/hello_service_unknown.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/broker/hello_skip.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/broker/hello_version_blocked.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/broker/idle_coord.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/broker/instance.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/broker/instance_isolation.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/broker/into_backend_io.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/broker/lifecycle_event_size.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/broker/main.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/broker/manifest_atomic.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/broker/manifest_boot_id.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/broker/manifest_corruption.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/broker/manifest_roundtrip.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/broker/metrics_names_frozen.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/broker/names.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/broker/peer_creds_drop.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/broker/perf_guard.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/broker/process_tree_lifecycle.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/broker/proto_field_numbers.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/broker/proto_roundtrip.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/broker/recovery_one_retry.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/broker/serve.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/broker/service_def_loader.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/broker/servicedef_cli.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/broker/socket_common.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/broker/spawn_coordinator.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/broker/spawn_wait.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/broker/toy_three_party.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/broker/trace_propagation.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/broker/verify_pid/linux.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/broker/verify_pid/macos.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/broker/verify_pid/mod.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/broker/verify_pid/windows.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/broker_http_aggregator_test.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/broker_owned_bind_failed_launch_test.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/broker_owned_bind_handover_test.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/broker_v2_acceptance_test.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/broker_v2_scaffold_accepts_connection.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/brokered_backend_ui.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/cleanup/cleanup_list.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/cleanup/cleanup_prune_confirm.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/cleanup/cleanup_prune_dryrun.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/cleanup/cleanup_uninstall.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/cleanup/cleanup_verify_artifacts.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/cleanup/common.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/cleanup/main.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/common/mitm_stdin.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/common/mod.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/containment_test.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/daemon_autostart_test.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/daemon_backlog_accumulation_test.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/daemon_cross_process_pty_attach_test.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/daemon_fast_ctrl_c_handoff_test.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/daemon_integration/compiler_wrap_seam_test.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/daemon_integration/env_replace_test.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/daemon_integration/main.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/daemon_integration/more_tests.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/daemon_integration/stdout_seam_test.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/daemon_non_tty_attach_test.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/daemon_pipe_session_attach_test.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/daemon_pty_session_attach_test.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/daemon_resize_rpc_test.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/daemon_runpm_save_resurrect.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/daemon_runpm_service_stubs.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/daemon_sessions_bulk_ops_test.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/daemon_sessions_log_test.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/daemon_tee_ring_test.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/daemon_termination_outcome_test.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/daemon_tree_kill_test.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/daemon_tui_repaint_test.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/fs_adversarial_test.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/interactive_pty_session_test.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/maintenance/main.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/maintenance/release_handles_unix.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/maintenance/release_handles_windows.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/observer_launched_tree_test.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/originator_test.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/probe_facade_surface.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/process_core_test.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/pty_conhost_job_test.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/pty_master_public_api_test.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/pty_mitm_paste_test.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/pty_mitm_stdin_test.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/pty_unix_teardown_test.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/runpm_boot_autostart_fixtures.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/runpm_toml_config.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/security/cross_user_release_handles.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/security/cve_dbus_2014_3639.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/security/cve_dbus_2023_34969.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/security/cve_sccache_2023_1521.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/security/deferred_runtime_surfaces.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/security/dependency_surface.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/security/fuzz_campaign_signoff.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/security/main.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/security/manifest_tamper_detection.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/security/no_network_dependencies.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/security/pipe_name_validation.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/security/pipe_squatting.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/security/security_audit_workflow.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/security/security_fuzz_workflow.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/security/service_name_validation.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/security/unsafe_inventory.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/security/wanted_version_shell_injection.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/security/wanted_version_traversal.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/spawn_test.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/terminal_graphics_capabilities_test.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/ui/brokered_backend_state_in_bind.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/ui/brokered_backend_state_in_bind.stderr +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/window_icon_x11_test.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process-probe/Cargo.toml +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process-probe/build.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process-probe/proto/probe_diag_v1/probe_diag_v1_capture.proto +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process-probe/proto/probe_diag_v1/probe_diag_v1_common.proto +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process-probe/proto/probe_diag_v1/probe_diag_v1_crash.proto +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process-probe/proto/probe_diag_v1/probe_diag_v1_envelope.proto +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process-probe/proto/probe_diag_v1/probe_diag_v1_profile.proto +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process-probe/proto/probe_diag_v1/probe_diag_v1_query.proto +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process-probe/proto/probe_diag_v1/probe_diag_v1_registration.proto +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process-probe/proto/probe_diag_v1/probe_diag_v1_symbols.proto +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process-probe/src/bin/helper.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process-probe/src/crash/mod.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process-probe/src/crash/spool.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process-probe/src/inject_unix.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process-probe/src/inject_windows.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process-probe/src/lib.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process-probe/src/snapshot/attribute.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process-probe/src/snapshot/linux.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process-probe/src/snapshot/macos.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process-probe/src/snapshot/mod.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process-probe/src/snapshot/modules.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process-probe/src/snapshot/stream.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process-probe/src/snapshot/unwind.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process-probe/src/snapshot/windows.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process-probe/tests/crash_handler_test.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process-probe/tests/fixtures/probe_diag_v1_capture.bin +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process-probe/tests/fixtures/probe_diag_v1_crash.bin +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process-probe/tests/fixtures/probe_diag_v1_profile.bin +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process-probe/tests/fixtures/probe_diag_v1_register.bin +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process-probe/tests/inject_smoke_test.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process-probe/tests/interposer_diagnostic_windows.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process-probe/tests/interposer_integration_linux.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process-probe/tests/interposer_integration_macos.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process-probe/tests/interposer_integration_windows.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process-probe/tests/wire_roundtrip.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process-py/src/containment.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process-py/src/daemon_client.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process-py/src/debug_traces.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process-py/src/helpers.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process-py/src/idle_detector.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process-py/src/metrics.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process-py/src/originator.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process-py/src/pid_tracking.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process-py/src/priority.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process-py/src/probe.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process-py/src/process.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process-py/src/pty_buffer.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process-py/src/pty_process.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process-py/src/public_symbols.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process-py/src/py_native_process.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process-py/src/registry.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process-py/src/signal_bool.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process-py/src/terminal_input.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process-py/src/tests/control_churn.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process-py/src/tests/expect_match.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process-py/src/tests/idle_detector.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process-py/src/tests/mod.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process-py/src/tests/parse_command.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process-py/src/tests/pty_buffer.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process-py/src/tests/pty_process.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process-py/src/tests/registry.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process-py/src/tests/signal_bool.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process-py/src/tests/terminal_input.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/running-process-py/src/window_icon.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/test-watchdog/Cargo.toml +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/test-watchdog/src/lib.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/test-watchdog/src/probe_dump.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/crates/test-watchdog/tests/hang_dump.rs +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/src/running_process/assets/example.txt +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/src/running_process/asyncio_adapter.py +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/src/running_process/command_render.py +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/src/running_process/compat.py +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/src/running_process/console_encoding.py +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/src/running_process/daemon.py +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/src/running_process/dashboard.py +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/src/running_process/dump_paths.py +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/src/running_process/exit_status.py +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/src/running_process/expect.py +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/src/running_process/interrupt_handler.py +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/src/running_process/launch.py +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/src/running_process/line_iterator.py +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/src/running_process/output_formatter.py +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/src/running_process/priority.py +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/src/running_process/probe.py +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/src/running_process/processor_cli.py +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/src/running_process/pty/__init__.py +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/src/running_process/pty/_command.py +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/src/running_process/pty/_console_io.py +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/src/running_process/pty/_errors.py +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/src/running_process/pty/_idle_helpers.py +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/src/running_process/pty/_idle_state.py +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/src/running_process/pty/_interactive.py +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/src/running_process/pty/_process_helpers.py +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/src/running_process/pty/_pseudo_terminal.py +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/src/running_process/pty/_pty_expect.py +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/src/running_process/pty/_pty_idle_waiter.py +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/src/running_process/pty/_pty_input_relay.py +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/src/running_process/pty/_pty_reader.py +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/src/running_process/pty/_pty_wait_for.py +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/src/running_process/pty/_terminal_strip.py +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/src/running_process/pty/_types.py +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/src/running_process/pty/_wait_input.py +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/src/running_process/running_process/__init__.py +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/src/running_process/running_process/_classmethod_api.py +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/src/running_process/running_process/_core.py +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/src/running_process/running_process/_helpers.py +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/src/running_process/running_process/_iter.py +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/src/running_process/running_process/_subprocess.py +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/src/running_process/running_process/_types.py +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/src/running_process/running_process/_wait_methods.py +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/src/running_process/running_process_manager.py +0 -0
- {running_process-4.8.2 → running_process-4.8.3}/src/running_process/window_icon.py +0 -0
|
@@ -2051,7 +2051,7 @@ dependencies = [
|
|
|
2051
2051
|
|
|
2052
2052
|
[[package]]
|
|
2053
2053
|
name = "running-process"
|
|
2054
|
-
version = "4.8.
|
|
2054
|
+
version = "4.8.3"
|
|
2055
2055
|
dependencies = [
|
|
2056
2056
|
"anyhow",
|
|
2057
2057
|
"blake3",
|
|
@@ -2068,6 +2068,7 @@ dependencies = [
|
|
|
2068
2068
|
"prost-build",
|
|
2069
2069
|
"prost-types",
|
|
2070
2070
|
"protox",
|
|
2071
|
+
"running-process-platform-internal",
|
|
2071
2072
|
"running-process-probe",
|
|
2072
2073
|
"rusqlite",
|
|
2073
2074
|
"serde",
|
|
@@ -2091,9 +2092,18 @@ dependencies = [
|
|
|
2091
2092
|
"zstd",
|
|
2092
2093
|
]
|
|
2093
2094
|
|
|
2095
|
+
[[package]]
|
|
2096
|
+
name = "running-process-platform-internal"
|
|
2097
|
+
version = "4.8.3"
|
|
2098
|
+
dependencies = [
|
|
2099
|
+
"libc",
|
|
2100
|
+
"tokio",
|
|
2101
|
+
"windows-sys 0.59.0",
|
|
2102
|
+
]
|
|
2103
|
+
|
|
2094
2104
|
[[package]]
|
|
2095
2105
|
name = "running-process-probe"
|
|
2096
|
-
version = "4.8.
|
|
2106
|
+
version = "4.8.3"
|
|
2097
2107
|
dependencies = [
|
|
2098
2108
|
"blake3",
|
|
2099
2109
|
"crash-handler",
|
|
@@ -2116,7 +2126,7 @@ dependencies = [
|
|
|
2116
2126
|
|
|
2117
2127
|
[[package]]
|
|
2118
2128
|
name = "running-process-probe-daemon"
|
|
2119
|
-
version = "4.8.
|
|
2129
|
+
version = "4.8.3"
|
|
2120
2130
|
dependencies = [
|
|
2121
2131
|
"axum",
|
|
2122
2132
|
"blake3",
|
|
@@ -2150,21 +2160,21 @@ dependencies = [
|
|
|
2150
2160
|
|
|
2151
2161
|
[[package]]
|
|
2152
2162
|
name = "running-process-probe-interposer-linux"
|
|
2153
|
-
version = "4.8.
|
|
2163
|
+
version = "4.8.3"
|
|
2154
2164
|
dependencies = [
|
|
2155
2165
|
"libc",
|
|
2156
2166
|
]
|
|
2157
2167
|
|
|
2158
2168
|
[[package]]
|
|
2159
2169
|
name = "running-process-probe-interposer-macos"
|
|
2160
|
-
version = "4.8.
|
|
2170
|
+
version = "4.8.3"
|
|
2161
2171
|
dependencies = [
|
|
2162
2172
|
"libc",
|
|
2163
2173
|
]
|
|
2164
2174
|
|
|
2165
2175
|
[[package]]
|
|
2166
2176
|
name = "running-process-probe-interposer-windows"
|
|
2167
|
-
version = "4.8.
|
|
2177
|
+
version = "4.8.3"
|
|
2168
2178
|
dependencies = [
|
|
2169
2179
|
"retour",
|
|
2170
2180
|
"windows-sys 0.59.0",
|
|
@@ -2172,7 +2182,7 @@ dependencies = [
|
|
|
2172
2182
|
|
|
2173
2183
|
[[package]]
|
|
2174
2184
|
name = "running-process-probe-worker"
|
|
2175
|
-
version = "4.8.
|
|
2185
|
+
version = "4.8.3"
|
|
2176
2186
|
dependencies = [
|
|
2177
2187
|
"addr2line",
|
|
2178
2188
|
"lzma-rs",
|
|
@@ -2190,7 +2200,7 @@ dependencies = [
|
|
|
2190
2200
|
|
|
2191
2201
|
[[package]]
|
|
2192
2202
|
name = "running-process-py"
|
|
2193
|
-
version = "4.8.
|
|
2203
|
+
version = "4.8.3"
|
|
2194
2204
|
dependencies = [
|
|
2195
2205
|
"interprocess",
|
|
2196
2206
|
"libc",
|
|
@@ -2205,7 +2215,7 @@ dependencies = [
|
|
|
2205
2215
|
|
|
2206
2216
|
[[package]]
|
|
2207
2217
|
name = "running-process-win-gnu-bridge"
|
|
2208
|
-
version = "4.8.
|
|
2218
|
+
version = "4.8.3"
|
|
2209
2219
|
dependencies = [
|
|
2210
2220
|
"windows-sys 0.59.0",
|
|
2211
2221
|
]
|
|
@@ -1,3 +1,17 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: running_process
|
|
3
|
+
Version: 4.8.3
|
|
4
|
+
License-File: LICENSE
|
|
5
|
+
Summary: A Rust-backed subprocess wrapper with split stdout/stderr streaming
|
|
6
|
+
Home-Page: https://github.com/zackees/running-process
|
|
7
|
+
Author-email: Your Name <your.email@example.com>
|
|
8
|
+
License: BSD 3-Clause License
|
|
9
|
+
Requires-Python: >=3.10
|
|
10
|
+
Description-Content-Type: text/markdown; charset=UTF-8; variant=GFM
|
|
11
|
+
Project-URL: Homepage, https://github.com/zackees/running-process
|
|
12
|
+
Project-URL: Issues, https://github.com/zackees/running-process/issues
|
|
13
|
+
Project-URL: Repository, https://github.com/zackees/running-process
|
|
14
|
+
|
|
1
15
|
# running-process
|
|
2
16
|
|
|
3
17
|
[](https://pypi.org/project/running-process/) [](https://crates.io/crates/running-process) [](https://codecov.io/gh/zackees/running-process) [](https://github.com/zackees/running-process/actions/workflows/dependency-check.yml)
|
|
@@ -140,9 +154,19 @@ The package installs a `running-process` wrapper CLI for supervised command exec
|
|
|
140
154
|
|
|
141
155
|
```bash
|
|
142
156
|
running-process --timeout 30 -- python -m pytest tests/test_cli.py
|
|
157
|
+
running-process --wall-clock-timeout 30 -- python worker.py
|
|
158
|
+
running-process --terminate-tree 12345
|
|
143
159
|
running-process --find-leaks -- python worker.py
|
|
144
160
|
```
|
|
145
161
|
|
|
162
|
+
`--timeout` is an inactivity deadline: continuous stdout/stderr resets it. Use
|
|
163
|
+
`--wall-clock-timeout` when a command must be terminated after a fixed elapsed
|
|
164
|
+
budget even while it emits output. On either timeout, `running-process` kills
|
|
165
|
+
and reaps the supervised process tree through its cross-platform native layer.
|
|
166
|
+
Use `--terminate-tree PID` for an already-running tree; it returns non-zero
|
|
167
|
+
when the bounded native cleanup cannot verify the tree is gone. Consumers must
|
|
168
|
+
not invoke platform-specific tree-kill commands themselves.
|
|
169
|
+
|
|
146
170
|
`--find-leaks` tags the wrapped process tree with a unique originator marker and reports any
|
|
147
171
|
descendants still alive after the direct child exits.
|
|
148
172
|
|
|
@@ -580,3 +604,4 @@ python scripts/terminate_tracked_processes.py
|
|
|
580
604
|
- `RunningProcess(..., use_pty=True)` is no longer the preferred path; use `RunningProcess.pseudo_terminal(...)` for PTY sessions.
|
|
581
605
|
- On supported Windows builds, PTY support is provided by the native Rust extension rather than a Python `winpty` fallback.
|
|
582
606
|
- The test suite checks that `running_process.__version__`, package metadata, and manifest versions stay in sync.
|
|
607
|
+
|
|
@@ -1,17 +1,3 @@
|
|
|
1
|
-
Metadata-Version: 2.4
|
|
2
|
-
Name: running_process
|
|
3
|
-
Version: 4.8.2
|
|
4
|
-
License-File: LICENSE
|
|
5
|
-
Summary: A Rust-backed subprocess wrapper with split stdout/stderr streaming
|
|
6
|
-
Home-Page: https://github.com/zackees/running-process
|
|
7
|
-
Author-email: Your Name <your.email@example.com>
|
|
8
|
-
License: BSD 3-Clause License
|
|
9
|
-
Requires-Python: >=3.10
|
|
10
|
-
Description-Content-Type: text/markdown; charset=UTF-8; variant=GFM
|
|
11
|
-
Project-URL: Homepage, https://github.com/zackees/running-process
|
|
12
|
-
Project-URL: Issues, https://github.com/zackees/running-process/issues
|
|
13
|
-
Project-URL: Repository, https://github.com/zackees/running-process
|
|
14
|
-
|
|
15
1
|
# running-process
|
|
16
2
|
|
|
17
3
|
[](https://pypi.org/project/running-process/) [](https://crates.io/crates/running-process) [](https://codecov.io/gh/zackees/running-process) [](https://github.com/zackees/running-process/actions/workflows/dependency-check.yml)
|
|
@@ -154,9 +140,19 @@ The package installs a `running-process` wrapper CLI for supervised command exec
|
|
|
154
140
|
|
|
155
141
|
```bash
|
|
156
142
|
running-process --timeout 30 -- python -m pytest tests/test_cli.py
|
|
143
|
+
running-process --wall-clock-timeout 30 -- python worker.py
|
|
144
|
+
running-process --terminate-tree 12345
|
|
157
145
|
running-process --find-leaks -- python worker.py
|
|
158
146
|
```
|
|
159
147
|
|
|
148
|
+
`--timeout` is an inactivity deadline: continuous stdout/stderr resets it. Use
|
|
149
|
+
`--wall-clock-timeout` when a command must be terminated after a fixed elapsed
|
|
150
|
+
budget even while it emits output. On either timeout, `running-process` kills
|
|
151
|
+
and reaps the supervised process tree through its cross-platform native layer.
|
|
152
|
+
Use `--terminate-tree PID` for an already-running tree; it returns non-zero
|
|
153
|
+
when the bounded native cleanup cannot verify the tree is gone. Consumers must
|
|
154
|
+
not invoke platform-specific tree-kill commands themselves.
|
|
155
|
+
|
|
160
156
|
`--find-leaks` tags the wrapped process tree with a unique originator marker and reports any
|
|
161
157
|
descendants still alive after the direct child exits.
|
|
162
158
|
|
|
@@ -594,4 +590,3 @@ python scripts/terminate_tracked_processes.py
|
|
|
594
590
|
- `RunningProcess(..., use_pty=True)` is no longer the preferred path; use `RunningProcess.pseudo_terminal(...)` for PTY sessions.
|
|
595
591
|
- On supported Windows builds, PTY support is provided by the native Rust extension rather than a Python `winpty` fallback.
|
|
596
592
|
- The test suite checks that `running_process.__version__`, package metadata, and manifest versions stay in sync.
|
|
597
|
-
|
|
@@ -76,6 +76,7 @@ required-features = ["client"]
|
|
|
76
76
|
# the `runpm` binary out of the box (per Q1 resolution in #165:
|
|
77
77
|
# `required-features` are not auto-activated by cargo install).
|
|
78
78
|
default = ["client", "pty", "conpty-sidecar"]
|
|
79
|
+
async-process = ["dep:running-process-platform-internal", "dep:tokio"]
|
|
79
80
|
core = []
|
|
80
81
|
telemetry = []
|
|
81
82
|
pty = ["dep:portable-pty"]
|
|
@@ -167,14 +168,15 @@ sha2 = { version = "0.10", optional = true }
|
|
|
167
168
|
getrandom = { version = "0.4", optional = true }
|
|
168
169
|
# #633: schema-only dependency for the probe client facade. default-features
|
|
169
170
|
# off keeps the interposer/injection machinery out — see the `probe` feature.
|
|
170
|
-
running-process-probe = { path = "../running-process-probe", version = "4.8.
|
|
171
|
+
running-process-probe = { path = "../running-process-probe", version = "4.8.3", default-features = false, optional = true }
|
|
172
|
+
running-process-platform-internal = { path = "../running-process-platform-internal", version = "4.8.3", optional = true }
|
|
171
173
|
# Wave 5 of #165: daemon-feature deps. All optional.
|
|
172
174
|
# tokio: `client-async` (#414) only needs the `rt` (spawn_blocking)
|
|
173
175
|
# and `time` (`tokio::time::timeout`) features; the `daemon` feature
|
|
174
176
|
# layers `tokio/full` on top below. Cargo unifies feature sets, so
|
|
175
177
|
# any consumer enabling both ends up with the daemon footprint
|
|
176
178
|
# exactly as before.
|
|
177
|
-
tokio = { version = "1", default-features = false, features = ["process", "rt", "time"], optional = true }
|
|
179
|
+
tokio = { version = "1", default-features = false, features = ["io-util", "net", "process", "rt", "rt-multi-thread", "sync", "time"], optional = true }
|
|
178
180
|
tokio-util = { version = "0.7", features = ["codec"], optional = true }
|
|
179
181
|
bytes = { version = "1", optional = true }
|
|
180
182
|
futures-util = { version = "0.3", features = ["sink"], optional = true }
|
|
@@ -213,6 +215,7 @@ test-watchdog = { path = "../test-watchdog" }
|
|
|
213
215
|
# `BrokeredBackend` trait (#497) — every documented misuse pattern
|
|
214
216
|
# gets its own compile-fail case under `tests/ui/`.
|
|
215
217
|
trybuild = "1"
|
|
218
|
+
tokio = { version = "1", default-features = false, features = ["macros", "process", "rt", "rt-multi-thread", "time"] }
|
|
216
219
|
|
|
217
220
|
# #150: ConPTY passthrough rewrite uses windows-sys directly for the
|
|
218
221
|
# new conpty_passthrough module. Kept alongside (not replacing) the
|
|
@@ -0,0 +1,232 @@
|
|
|
1
|
+
//! Native asynchronous pipe-process API.
|
|
2
|
+
//!
|
|
3
|
+
//! The platform crate owns Tokio's process primitives. This module exposes a
|
|
4
|
+
//! stable process-facing API without re-exporting `tokio::process` types.
|
|
5
|
+
|
|
6
|
+
use std::ffi::OsString;
|
|
7
|
+
use std::path::PathBuf;
|
|
8
|
+
use std::process::{ExitStatus, Output};
|
|
9
|
+
|
|
10
|
+
use running_process_platform_internal::{SpawnSpec, StreamMode};
|
|
11
|
+
|
|
12
|
+
use crate::process_runtime::ActorProcess;
|
|
13
|
+
use crate::{ProcessError, RunOutput};
|
|
14
|
+
|
|
15
|
+
/// A process configured for asynchronous execution.
|
|
16
|
+
pub struct AsyncProcess {
|
|
17
|
+
spec: SpawnSpec,
|
|
18
|
+
child: Option<ActorProcess>,
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
impl AsyncProcess {
|
|
22
|
+
/// Create a direct (non-shell) async process.
|
|
23
|
+
pub fn new(program: impl Into<OsString>) -> Self {
|
|
24
|
+
Self {
|
|
25
|
+
spec: SpawnSpec::new(program)
|
|
26
|
+
.stdin(StreamMode::Piped)
|
|
27
|
+
.stdout(StreamMode::Piped)
|
|
28
|
+
.stderr(StreamMode::Piped),
|
|
29
|
+
child: None,
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
/// Append an argument without requiring UTF-8.
|
|
34
|
+
pub fn arg(mut self, arg: impl Into<OsString>) -> Self {
|
|
35
|
+
self.spec = self.spec.arg(arg);
|
|
36
|
+
self
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
/// Set the child working directory.
|
|
40
|
+
pub fn current_dir(mut self, path: impl Into<PathBuf>) -> Self {
|
|
41
|
+
self.spec = self.spec.current_dir(path);
|
|
42
|
+
self
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
/// Add an environment override.
|
|
46
|
+
pub fn env(mut self, key: impl Into<OsString>, value: impl Into<OsString>) -> Self {
|
|
47
|
+
self.spec = self.spec.env(key, value);
|
|
48
|
+
self
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
/// Start the configured process.
|
|
52
|
+
pub async fn start(&mut self) -> Result<(), ProcessError> {
|
|
53
|
+
if self.child.is_some() {
|
|
54
|
+
return Err(ProcessError::AlreadyStarted);
|
|
55
|
+
}
|
|
56
|
+
self.child = Some(ActorProcess::start(self.spec.clone()).await?);
|
|
57
|
+
Ok(())
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
/// Return the child process identifier after [`Self::start`].
|
|
61
|
+
pub async fn pid(&self) -> Result<u32, ProcessError> {
|
|
62
|
+
self.child
|
|
63
|
+
.as_ref()
|
|
64
|
+
.ok_or(ProcessError::NotRunning)?
|
|
65
|
+
.pid()
|
|
66
|
+
.await
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
/// Wait for the started process without capturing output.
|
|
70
|
+
pub async fn wait(&mut self) -> Result<ExitStatus, ProcessError> {
|
|
71
|
+
self.child
|
|
72
|
+
.as_mut()
|
|
73
|
+
.ok_or(ProcessError::NotRunning)?
|
|
74
|
+
.wait()
|
|
75
|
+
.await
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
/// Kill the started process.
|
|
79
|
+
pub async fn kill(&mut self) -> Result<(), ProcessError> {
|
|
80
|
+
self.child
|
|
81
|
+
.as_mut()
|
|
82
|
+
.ok_or(ProcessError::NotRunning)?
|
|
83
|
+
.kill()
|
|
84
|
+
.await
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
/// Write bytes to the child's piped stdin without closing it.
|
|
88
|
+
///
|
|
89
|
+
/// The actor owns the pipe for the complete operation. Cancelling this
|
|
90
|
+
/// future before actor acknowledgement leaves no guarantee whether a
|
|
91
|
+
/// dispatched write reached the child; callers that need an EOF must call
|
|
92
|
+
/// [`Self::close_stdin`] explicitly after a successful write.
|
|
93
|
+
pub async fn write_stdin(&mut self, bytes: impl AsRef<[u8]>) -> Result<(), ProcessError> {
|
|
94
|
+
self.child
|
|
95
|
+
.as_ref()
|
|
96
|
+
.ok_or(ProcessError::NotRunning)?
|
|
97
|
+
.write_stdin(bytes.as_ref().to_vec())
|
|
98
|
+
.await
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
/// Close the child's piped stdin and deliver EOF.
|
|
102
|
+
///
|
|
103
|
+
/// The operation is idempotent after a successful start.
|
|
104
|
+
pub async fn close_stdin(&mut self) -> Result<(), ProcessError> {
|
|
105
|
+
self.child
|
|
106
|
+
.as_ref()
|
|
107
|
+
.ok_or(ProcessError::NotRunning)?
|
|
108
|
+
.close_stdin()
|
|
109
|
+
.await
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
/// Wait for completion and return captured stdout/stderr.
|
|
113
|
+
pub async fn output(&mut self) -> Result<RunOutput, ProcessError> {
|
|
114
|
+
let child = self.child.as_ref().ok_or(ProcessError::NotRunning)?;
|
|
115
|
+
let output = child.output().await?;
|
|
116
|
+
Ok(run_output(output))
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
/// Spawn, wait, and capture a process in one asynchronous operation.
|
|
120
|
+
pub async fn run(
|
|
121
|
+
program: impl Into<OsString>,
|
|
122
|
+
args: &[OsString],
|
|
123
|
+
) -> Result<RunOutput, ProcessError> {
|
|
124
|
+
let mut process = Self::new(program);
|
|
125
|
+
for arg in args {
|
|
126
|
+
process = process.arg(arg.clone());
|
|
127
|
+
}
|
|
128
|
+
process.output_after_start().await
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
async fn output_after_start(mut self) -> Result<RunOutput, ProcessError> {
|
|
132
|
+
self.start().await?;
|
|
133
|
+
self.output().await
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
fn run_output(output: Output) -> RunOutput {
|
|
138
|
+
RunOutput {
|
|
139
|
+
stdout: output.stdout,
|
|
140
|
+
stderr: output.stderr,
|
|
141
|
+
exit_code: output.status.code().unwrap_or_else(|| {
|
|
142
|
+
#[cfg(unix)]
|
|
143
|
+
{
|
|
144
|
+
use std::os::unix::process::ExitStatusExt;
|
|
145
|
+
return -output.status.signal().unwrap_or(1);
|
|
146
|
+
}
|
|
147
|
+
#[cfg(not(unix))]
|
|
148
|
+
{
|
|
149
|
+
-1
|
|
150
|
+
}
|
|
151
|
+
}),
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
#[cfg(test)]
|
|
156
|
+
mod tests {
|
|
157
|
+
use super::AsyncProcess;
|
|
158
|
+
|
|
159
|
+
#[tokio::test]
|
|
160
|
+
async fn async_process_captures_stdout_and_stderr() {
|
|
161
|
+
#[cfg(windows)]
|
|
162
|
+
let process = AsyncProcess::new("cmd.exe")
|
|
163
|
+
.arg("/C")
|
|
164
|
+
.arg("echo out && echo err 1>&2");
|
|
165
|
+
#[cfg(not(windows))]
|
|
166
|
+
let process = AsyncProcess::new("/bin/sh")
|
|
167
|
+
.arg("-c")
|
|
168
|
+
.arg("printf out; printf err >&2");
|
|
169
|
+
|
|
170
|
+
let output = process.output_after_start().await.expect("async output");
|
|
171
|
+
let expected_stdout = if cfg!(windows) {
|
|
172
|
+
b"out \r\n".as_slice()
|
|
173
|
+
} else {
|
|
174
|
+
b"out".as_slice()
|
|
175
|
+
};
|
|
176
|
+
let expected_stderr = if cfg!(windows) {
|
|
177
|
+
b"err \r\n".as_slice()
|
|
178
|
+
} else {
|
|
179
|
+
b"err".as_slice()
|
|
180
|
+
};
|
|
181
|
+
assert_eq!(output.stdout, expected_stdout);
|
|
182
|
+
assert_eq!(output.stderr, expected_stderr);
|
|
183
|
+
assert_eq!(output.exit_code, 0);
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
#[tokio::test]
|
|
187
|
+
async fn async_process_rejects_double_start() {
|
|
188
|
+
#[cfg(windows)]
|
|
189
|
+
let mut process = AsyncProcess::new("cmd.exe").arg("/C").arg("exit 0");
|
|
190
|
+
#[cfg(not(windows))]
|
|
191
|
+
let mut process = AsyncProcess::new("/bin/true");
|
|
192
|
+
process.start().await.expect("first start");
|
|
193
|
+
assert!(matches!(
|
|
194
|
+
process.start().await,
|
|
195
|
+
Err(crate::ProcessError::AlreadyStarted)
|
|
196
|
+
));
|
|
197
|
+
process.kill().await.ok();
|
|
198
|
+
}
|
|
199
|
+
|
|
200
|
+
#[tokio::test(flavor = "current_thread")]
|
|
201
|
+
async fn async_process_writes_then_closes_stdin_through_the_actor() {
|
|
202
|
+
#[cfg(windows)]
|
|
203
|
+
let mut process = AsyncProcess::new("cmd.exe")
|
|
204
|
+
.arg("/V:ON")
|
|
205
|
+
.arg("/C")
|
|
206
|
+
.arg("set /p input= & echo got:!input!");
|
|
207
|
+
#[cfg(not(windows))]
|
|
208
|
+
let mut process = AsyncProcess::new("/bin/sh")
|
|
209
|
+
.arg("-c")
|
|
210
|
+
.arg("IFS= read -r input; printf got:%s \\\"$input\\\"");
|
|
211
|
+
|
|
212
|
+
process.start().await.expect("async process starts");
|
|
213
|
+
process
|
|
214
|
+
.write_stdin(b"actor-input")
|
|
215
|
+
.await
|
|
216
|
+
.expect("actor writes stdin");
|
|
217
|
+
process.close_stdin().await.expect("actor closes stdin");
|
|
218
|
+
process
|
|
219
|
+
.close_stdin()
|
|
220
|
+
.await
|
|
221
|
+
.expect("stdin close is idempotent");
|
|
222
|
+
|
|
223
|
+
let output = process.output().await.expect("actor captures output");
|
|
224
|
+
let expected = if cfg!(windows) {
|
|
225
|
+
b"got:actor-input\r\n".as_slice()
|
|
226
|
+
} else {
|
|
227
|
+
b"got:actor-input".as_slice()
|
|
228
|
+
};
|
|
229
|
+
assert_eq!(output.stdout, expected);
|
|
230
|
+
assert_eq!(output.exit_code, 0);
|
|
231
|
+
}
|
|
232
|
+
}
|
|
@@ -149,7 +149,9 @@ fn install_shutdown_signal_handlers() -> std::io::Result<()> {
|
|
|
149
149
|
|
|
150
150
|
/// Set when Windows delivers a console control event.
|
|
151
151
|
///
|
|
152
|
-
/// The Windows counterpart of
|
|
152
|
+
/// The Windows counterpart of `SIGNAL_SHUTDOWN_REQUESTED` (backticks, not a
|
|
153
|
+
/// link: that static is `#[cfg(unix)]`, so the link cannot resolve in a
|
|
154
|
+
/// Windows doc build). Without it the
|
|
153
155
|
/// accept loop on Windows polled a flag nothing ever set, so the broker never
|
|
154
156
|
/// drained or unbound — it only ever died when killed.
|
|
155
157
|
#[cfg(windows)]
|
|
@@ -146,7 +146,7 @@ pub struct OwnedBackendIo {
|
|
|
146
146
|
|
|
147
147
|
impl OwnedBackendIo {
|
|
148
148
|
#[cfg(unix)]
|
|
149
|
-
fn from_local_socket_stream(
|
|
149
|
+
pub(crate) fn from_local_socket_stream(
|
|
150
150
|
stream: interprocess::local_socket::Stream,
|
|
151
151
|
) -> Result<Self, IntoBackendIoError> {
|
|
152
152
|
match stream {
|
|
@@ -157,7 +157,7 @@ impl OwnedBackendIo {
|
|
|
157
157
|
}
|
|
158
158
|
|
|
159
159
|
#[cfg(windows)]
|
|
160
|
-
fn from_local_socket_stream(
|
|
160
|
+
pub(crate) fn from_local_socket_stream(
|
|
161
161
|
_stream: interprocess::local_socket::Stream,
|
|
162
162
|
) -> Result<Self, IntoBackendIoError> {
|
|
163
163
|
Err(IntoBackendIoError::WindowsUnsupported)
|