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.
Files changed (504) hide show
  1. {running_process-4.8.2 → running_process-4.8.3}/Cargo.lock +19 -9
  2. {running_process-4.8.2 → running_process-4.8.3}/Cargo.toml +1 -1
  3. running_process-4.8.2/README.md → running_process-4.8.3/PKG-INFO +25 -0
  4. running_process-4.8.2/PKG-INFO → running_process-4.8.3/README.md +10 -15
  5. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/Cargo.toml +5 -2
  6. running_process-4.8.3/crates/running-process/src/async_process.rs +232 -0
  7. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/bin/running-process-broker-v2.rs +3 -1
  8. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/broker/adopt.rs +2 -2
  9. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/broker/client_v2.rs +494 -0
  10. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/lib.rs +6 -0
  11. running_process-4.8.3/crates/running-process/src/process_runtime.rs +437 -0
  12. running_process-4.8.3/crates/running-process/tests/async_process_test.rs +21 -0
  13. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process-py/Cargo.toml +2 -2
  14. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process-py/src/lib.rs +2 -1
  15. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process-py/src/process_tree.rs +16 -3
  16. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process-py/src/tests/process_tree.rs +6 -0
  17. {running_process-4.8.2 → running_process-4.8.3}/pyproject.toml +1 -1
  18. {running_process-4.8.2 → running_process-4.8.3}/src/running_process/__init__.py +7 -2
  19. {running_process-4.8.2 → running_process-4.8.3}/src/running_process/cli.py +49 -2
  20. running_process-4.8.3/src/running_process/process_utils.py +20 -0
  21. running_process-4.8.2/src/running_process/process_utils.py +0 -11
  22. {running_process-4.8.2 → running_process-4.8.3}/LICENSE +0 -0
  23. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/README.md +0 -0
  24. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/build.rs +0 -0
  25. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/examples/handoff_rollout_evidence.rs +0 -0
  26. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/proto/broker_v1/broker_v1_admin.proto +0 -0
  27. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/proto/broker_v1/broker_v1_envelope.proto +0 -0
  28. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/proto/broker_v1/broker_v1_manifest.proto +0 -0
  29. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/proto/broker_v1/broker_v1_service_def.proto +0 -0
  30. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/proto/broker_v1/buf.yaml +0 -0
  31. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/proto/broker_v2/broker_v2_control.proto +0 -0
  32. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/proto/broker_v2/broker_v2_manifest.proto +0 -0
  33. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/proto/broker_v2/broker_v2_service_def.proto +0 -0
  34. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/proto/daemon.proto +0 -0
  35. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/README.md +0 -0
  36. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/bin/README.md +0 -0
  37. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/bin/daemon.rs +0 -0
  38. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/bin/running-process-broker-v1.rs +0 -0
  39. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/bin/running-process-broker-v2/tests.rs +0 -0
  40. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/bin/running-process-cleanup.rs +0 -0
  41. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/bin/runpm.rs +0 -0
  42. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/bin/trampoline.rs +0 -0
  43. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/boot_autostart/linux.rs +0 -0
  44. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/boot_autostart/macos.rs +0 -0
  45. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/boot_autostart/mod.rs +0 -0
  46. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/boot_autostart/windows.rs +0 -0
  47. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/broker/README.md +0 -0
  48. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/broker/backend_handle.rs +0 -0
  49. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/broker/backend_lib/accept_handed_off.rs +0 -0
  50. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/broker/backend_lib/mod.rs +0 -0
  51. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/broker/backend_lib/wire.rs +0 -0
  52. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/broker/backend_lifecycle/identity.rs +0 -0
  53. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/broker/backend_lifecycle/mod.rs +0 -0
  54. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/broker/backend_lifecycle/probe.rs +0 -0
  55. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/broker/backend_lifecycle/probe_async.rs +0 -0
  56. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/broker/backend_lifecycle/verify_pid.rs +0 -0
  57. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/broker/backend_sdk/frame_client.rs +0 -0
  58. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/broker/backend_sdk/frame_client_async.rs +0 -0
  59. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/broker/backend_sdk/identity_file.rs +0 -0
  60. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/broker/backend_sdk/mod.rs +0 -0
  61. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/broker/backend_sdk/mux.rs +0 -0
  62. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/broker/broker_http_discovery.rs +0 -0
  63. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/broker/broker_http_port.rs +0 -0
  64. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/broker/broker_http_server.rs +0 -0
  65. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/broker/broker_owned_bind/tests.rs +0 -0
  66. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/broker/broker_owned_bind.rs +0 -0
  67. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/broker/brokered_backend.rs +0 -0
  68. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/broker/builders.rs +0 -0
  69. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/broker/capabilities.rs +0 -0
  70. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/broker/client.rs +0 -0
  71. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/broker/doctor.rs +0 -0
  72. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/broker/fs_health.rs +0 -0
  73. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/broker/get_http_endpoint_dispatch.rs +0 -0
  74. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/broker/host_identity.rs +0 -0
  75. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/broker/http_endpoint_registry.rs +0 -0
  76. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/broker/lifecycle/crash_dump.rs +0 -0
  77. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/broker/lifecycle/mod.rs +0 -0
  78. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/broker/lifecycle/names.rs +0 -0
  79. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/broker/lifecycle/names_v2.rs +0 -0
  80. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/broker/lifecycle/privilege.rs +0 -0
  81. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/broker/lifecycle/process_tree.rs +0 -0
  82. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/broker/lifecycle/sid.rs +0 -0
  83. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/broker/manifest.rs +0 -0
  84. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/broker/mod.rs +0 -0
  85. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/broker/protocol/frame_ext.rs +0 -0
  86. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/broker/protocol/framing.rs +0 -0
  87. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/broker/protocol/mod.rs +0 -0
  88. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/broker/protocol/registry.rs +0 -0
  89. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/broker/protocol/validate.rs +0 -0
  90. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/broker/protocol_v2/README.md +0 -0
  91. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/broker/protocol_v2/backend_handle.rs +0 -0
  92. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/broker/protocol_v2/client_compat.rs +0 -0
  93. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/broker/protocol_v2/io.rs +0 -0
  94. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/broker/protocol_v2/loader.rs +0 -0
  95. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/broker/protocol_v2/manifest_io.rs +0 -0
  96. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/broker/protocol_v2/mod.rs +0 -0
  97. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/broker/secure_dir.rs +0 -0
  98. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/broker/server/admin.rs +0 -0
  99. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/broker/server/backend_endpoint_allocator.rs +0 -0
  100. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/broker/server/backend_launcher.rs +0 -0
  101. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/broker/server/backend_registry.rs +0 -0
  102. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/broker/server/broadcast.rs +0 -0
  103. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/broker/server/connection.rs +0 -0
  104. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/broker/server/control_socket.rs +0 -0
  105. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/broker/server/deadline_stream.rs +0 -0
  106. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/broker/server/fd_pressure.rs +0 -0
  107. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/broker/server/handoff/ack.rs +0 -0
  108. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/broker/server/handoff/fallback.rs +0 -0
  109. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/broker/server/handoff/handoff_token.rs +0 -0
  110. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/broker/server/handoff/latency.rs +0 -0
  111. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/broker/server/handoff/mod.rs +0 -0
  112. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/broker/server/handoff/orchestrate.rs +0 -0
  113. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/broker/server/handoff/orchestrate_unix.rs +0 -0
  114. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/broker/server/handoff/pending.rs +0 -0
  115. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/broker/server/handoff/unix.rs +0 -0
  116. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/broker/server/handoff/windows.rs +0 -0
  117. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/broker/server/handoff/wire.rs +0 -0
  118. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/broker/server/handoff_serve.rs +0 -0
  119. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/broker/server/hello_handler.rs +0 -0
  120. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/broker/server/hello_router.rs +0 -0
  121. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/broker/server/idle_coord.rs +0 -0
  122. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/broker/server/instance.rs +0 -0
  123. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/broker/server/metrics.rs +0 -0
  124. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/broker/server/mod.rs +0 -0
  125. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/broker/server/perf_guard.rs +0 -0
  126. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/broker/server/recovery.rs +0 -0
  127. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/broker/server/serve.rs +0 -0
  128. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/broker/server/service_def_loader.rs +0 -0
  129. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/broker/server/spawn_coordinator.rs +0 -0
  130. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/broker/server/spawn_wait.rs +0 -0
  131. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/broker/server/trace_context.rs +0 -0
  132. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/broker/server/version_allow_list.rs +0 -0
  133. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/cleanup/instances.rs +0 -0
  134. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/cleanup/list.rs +0 -0
  135. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/cleanup/mod.rs +0 -0
  136. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/cleanup/prune.rs +0 -0
  137. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/cleanup/uninstall.rs +0 -0
  138. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/cleanup/verify_artifacts.rs +0 -0
  139. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/cleanup/verify_basic.rs +0 -0
  140. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/client/client.rs +0 -0
  141. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/client/deadline_io.rs +0 -0
  142. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/client/mod.rs +0 -0
  143. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/client/observer.rs +0 -0
  144. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/client/paths.rs +0 -0
  145. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/client/pipe_session.rs +0 -0
  146. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/client/pty_session.rs +0 -0
  147. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/client/telemetry.rs +0 -0
  148. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/console_detect.rs +0 -0
  149. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/containment.rs +0 -0
  150. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/daemon/attach_stream.rs +0 -0
  151. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/daemon/config.rs +0 -0
  152. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/daemon/emergency_reserve.rs +0 -0
  153. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/daemon/handlers/core.rs +0 -0
  154. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/daemon/handlers/kill.rs +0 -0
  155. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/daemon/handlers/maintenance.rs +0 -0
  156. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/daemon/handlers/mod.rs +0 -0
  157. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/daemon/handlers/observer.rs +0 -0
  158. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/daemon/handlers/pipe_sessions_handlers.rs +0 -0
  159. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/daemon/handlers/process_tree.rs +0 -0
  160. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/daemon/handlers/pty_sessions_handlers.rs +0 -0
  161. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/daemon/handlers/registry_handlers.rs +0 -0
  162. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/daemon/handlers/services.rs +0 -0
  163. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/daemon/handlers/spawn.rs +0 -0
  164. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/daemon/handlers/telemetry.rs +0 -0
  165. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/daemon/handlers/util.rs +0 -0
  166. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/daemon/handlers_tests.rs +0 -0
  167. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/daemon/idle.rs +0 -0
  168. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/daemon/mod.rs +0 -0
  169. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/daemon/observer_registry.rs +0 -0
  170. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/daemon/pipe_attach_stream.rs +0 -0
  171. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/daemon/pipe_sessions.rs +0 -0
  172. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/daemon/platform/mod.rs +0 -0
  173. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/daemon/platform/unix.rs +0 -0
  174. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/daemon/platform/windows.rs +0 -0
  175. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/daemon/pty_sessions.rs +0 -0
  176. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/daemon/reaper.rs +0 -0
  177. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/daemon/registry.rs +0 -0
  178. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/daemon/runtime_gc.rs +0 -0
  179. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/daemon/server.rs +0 -0
  180. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/daemon/services.rs +0 -0
  181. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/daemon/services_snapshot.rs +0 -0
  182. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/daemon/shadow.rs +0 -0
  183. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/daemon/telemetry.rs +0 -0
  184. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/environment.rs +0 -0
  185. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/helpers.rs +0 -0
  186. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/maintenance/mod.rs +0 -0
  187. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/maintenance/release_handles.rs +0 -0
  188. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/observer/cmdline.rs +0 -0
  189. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/observer/descendants_linux.rs +0 -0
  190. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/observer/descendants_macos.rs +0 -0
  191. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/observer/file_handles.rs +0 -0
  192. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/observer/mod.rs +0 -0
  193. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/observer/pid_identity.rs +0 -0
  194. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/observer/tests.rs +0 -0
  195. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/originator.rs +0 -0
  196. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/probe/capture.rs +0 -0
  197. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/probe/client.rs +0 -0
  198. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/probe/mod.rs +0 -0
  199. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/probe/worker.rs +0 -0
  200. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/process_tree.rs +0 -0
  201. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/pty/backend.rs +0 -0
  202. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/pty/conpty_passthrough/child.rs +0 -0
  203. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/pty/conpty_passthrough/conpty_acquire.rs +0 -0
  204. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/pty/conpty_passthrough/conpty_api.rs +0 -0
  205. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/pty/conpty_passthrough/conpty_sidecar_hashes.rs +0 -0
  206. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/pty/conpty_passthrough/mod.rs +0 -0
  207. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/pty/conpty_passthrough/pipes.rs +0 -0
  208. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/pty/conpty_passthrough/proc_thread_attr.rs +0 -0
  209. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/pty/conpty_passthrough/pseudoconsole.rs +0 -0
  210. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/pty/conpty_passthrough/win_version.rs +0 -0
  211. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/pty/mod.rs +0 -0
  212. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/pty/native_pty_process.rs +0 -0
  213. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/pty/pty_posix.rs +0 -0
  214. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/pty/pty_windows.rs +0 -0
  215. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/pty/terminal_input.rs +0 -0
  216. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/public_symbols.rs +0 -0
  217. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/runpm_config.rs +0 -0
  218. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/rust_debug.rs +0 -0
  219. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/spawn.rs +0 -0
  220. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/spawn_imp_unix.rs +0 -0
  221. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/spawn_imp_windows.rs +0 -0
  222. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/systemd_killmode.rs +0 -0
  223. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/terminal_graphics.rs +0 -0
  224. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/test_support/conformance.rs +0 -0
  225. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/test_support/mod.rs +0 -0
  226. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/tests.rs +0 -0
  227. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/types.rs +0 -0
  228. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/unix.rs +0 -0
  229. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/window_icon/ico.rs +0 -0
  230. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/window_icon/mod.rs +0 -0
  231. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/window_icon/osc.rs +0 -0
  232. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/window_icon/tests_support.rs +0 -0
  233. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/window_icon/x11.rs +0 -0
  234. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/src/windows.rs +0 -0
  235. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/README.md +0 -0
  236. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/backend_launch_budget_test.rs +0 -0
  237. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/broker/admin.rs +0 -0
  238. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/broker/backend_endpoint_allocator.rs +0 -0
  239. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/broker/backend_handle_boot_id.rs +0 -0
  240. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/broker/backend_handle_common.rs +0 -0
  241. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/broker/backend_handle_dead.rs +0 -0
  242. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/broker/backend_handle_probe.rs +0 -0
  243. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/broker/backend_handle_recycled.rs +0 -0
  244. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/broker/backend_registry.rs +0 -0
  245. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/broker/backend_sdk.rs +0 -0
  246. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/broker/backend_sdk_async.rs +0 -0
  247. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/broker/broadcast_release_handles.rs +0 -0
  248. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/broker/builders.rs +0 -0
  249. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/broker/client.rs +0 -0
  250. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/broker/conformance_kit.rs +0 -0
  251. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/broker/connection.rs +0 -0
  252. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/broker/contrib_templates.rs +0 -0
  253. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/broker/docs_escape_hatch.rs +0 -0
  254. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/broker/docs_index.rs +0 -0
  255. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/broker/doctor.rs +0 -0
  256. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/broker/fd_pressure.rs +0 -0
  257. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/broker/framing.rs +0 -0
  258. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/broker/golden_bytes.rs +0 -0
  259. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/broker/handoff_ack_deadline.rs +0 -0
  260. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/broker/handoff_adopted_backend.rs +0 -0
  261. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/broker/handoff_adoption.rs +0 -0
  262. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/broker/handoff_backend_lib.rs +0 -0
  263. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/broker/handoff_capability.rs +0 -0
  264. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/broker/handoff_cross_os_acceptance.rs +0 -0
  265. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/broker/handoff_end_to_end_acceptance.rs +0 -0
  266. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/broker/handoff_fallback_perm_denied.rs +0 -0
  267. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/broker/handoff_latency.rs +0 -0
  268. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/broker/handoff_latency_e2e.rs +0 -0
  269. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/broker/handoff_orchestrate.rs +0 -0
  270. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/broker/handoff_serve_e2e.rs +0 -0
  271. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/broker/handoff_serve_latency.rs +0 -0
  272. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/broker/handoff_token_mismatch.rs +0 -0
  273. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/broker/handoff_transport.rs +0 -0
  274. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/broker/handoff_under_load.rs +0 -0
  275. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/broker/handoff_unix_e2e_orchestrate.rs +0 -0
  276. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/broker/handoff_unix_orchestrate.rs +0 -0
  277. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/broker/handoff_windows_duplicate_handle.rs +0 -0
  278. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/broker/handoff_windows_orchestrate.rs +0 -0
  279. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/broker/handoff_wire.rs +0 -0
  280. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/broker/hello_concurrent.rs +0 -0
  281. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/broker/hello_handler.rs +0 -0
  282. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/broker/hello_rate_limit.rs +0 -0
  283. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/broker/hello_router.rs +0 -0
  284. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/broker/hello_service_unknown.rs +0 -0
  285. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/broker/hello_skip.rs +0 -0
  286. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/broker/hello_version_blocked.rs +0 -0
  287. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/broker/idle_coord.rs +0 -0
  288. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/broker/instance.rs +0 -0
  289. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/broker/instance_isolation.rs +0 -0
  290. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/broker/into_backend_io.rs +0 -0
  291. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/broker/lifecycle_event_size.rs +0 -0
  292. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/broker/main.rs +0 -0
  293. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/broker/manifest_atomic.rs +0 -0
  294. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/broker/manifest_boot_id.rs +0 -0
  295. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/broker/manifest_corruption.rs +0 -0
  296. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/broker/manifest_roundtrip.rs +0 -0
  297. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/broker/metrics_names_frozen.rs +0 -0
  298. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/broker/names.rs +0 -0
  299. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/broker/peer_creds_drop.rs +0 -0
  300. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/broker/perf_guard.rs +0 -0
  301. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/broker/process_tree_lifecycle.rs +0 -0
  302. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/broker/proto_field_numbers.rs +0 -0
  303. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/broker/proto_roundtrip.rs +0 -0
  304. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/broker/recovery_one_retry.rs +0 -0
  305. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/broker/serve.rs +0 -0
  306. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/broker/service_def_loader.rs +0 -0
  307. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/broker/servicedef_cli.rs +0 -0
  308. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/broker/socket_common.rs +0 -0
  309. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/broker/spawn_coordinator.rs +0 -0
  310. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/broker/spawn_wait.rs +0 -0
  311. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/broker/toy_three_party.rs +0 -0
  312. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/broker/trace_propagation.rs +0 -0
  313. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/broker/verify_pid/linux.rs +0 -0
  314. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/broker/verify_pid/macos.rs +0 -0
  315. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/broker/verify_pid/mod.rs +0 -0
  316. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/broker/verify_pid/windows.rs +0 -0
  317. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/broker_http_aggregator_test.rs +0 -0
  318. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/broker_owned_bind_failed_launch_test.rs +0 -0
  319. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/broker_owned_bind_handover_test.rs +0 -0
  320. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/broker_v2_acceptance_test.rs +0 -0
  321. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/broker_v2_scaffold_accepts_connection.rs +0 -0
  322. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/brokered_backend_ui.rs +0 -0
  323. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/cleanup/cleanup_list.rs +0 -0
  324. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/cleanup/cleanup_prune_confirm.rs +0 -0
  325. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/cleanup/cleanup_prune_dryrun.rs +0 -0
  326. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/cleanup/cleanup_uninstall.rs +0 -0
  327. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/cleanup/cleanup_verify_artifacts.rs +0 -0
  328. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/cleanup/common.rs +0 -0
  329. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/cleanup/main.rs +0 -0
  330. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/common/mitm_stdin.rs +0 -0
  331. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/common/mod.rs +0 -0
  332. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/containment_test.rs +0 -0
  333. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/daemon_autostart_test.rs +0 -0
  334. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/daemon_backlog_accumulation_test.rs +0 -0
  335. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/daemon_cross_process_pty_attach_test.rs +0 -0
  336. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/daemon_fast_ctrl_c_handoff_test.rs +0 -0
  337. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/daemon_integration/compiler_wrap_seam_test.rs +0 -0
  338. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/daemon_integration/env_replace_test.rs +0 -0
  339. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/daemon_integration/main.rs +0 -0
  340. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/daemon_integration/more_tests.rs +0 -0
  341. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/daemon_integration/stdout_seam_test.rs +0 -0
  342. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/daemon_non_tty_attach_test.rs +0 -0
  343. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/daemon_pipe_session_attach_test.rs +0 -0
  344. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/daemon_pty_session_attach_test.rs +0 -0
  345. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/daemon_resize_rpc_test.rs +0 -0
  346. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/daemon_runpm_save_resurrect.rs +0 -0
  347. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/daemon_runpm_service_stubs.rs +0 -0
  348. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/daemon_sessions_bulk_ops_test.rs +0 -0
  349. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/daemon_sessions_log_test.rs +0 -0
  350. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/daemon_tee_ring_test.rs +0 -0
  351. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/daemon_termination_outcome_test.rs +0 -0
  352. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/daemon_tree_kill_test.rs +0 -0
  353. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/daemon_tui_repaint_test.rs +0 -0
  354. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/fs_adversarial_test.rs +0 -0
  355. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/interactive_pty_session_test.rs +0 -0
  356. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/maintenance/main.rs +0 -0
  357. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/maintenance/release_handles_unix.rs +0 -0
  358. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/maintenance/release_handles_windows.rs +0 -0
  359. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/observer_launched_tree_test.rs +0 -0
  360. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/originator_test.rs +0 -0
  361. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/probe_facade_surface.rs +0 -0
  362. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/process_core_test.rs +0 -0
  363. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/pty_conhost_job_test.rs +0 -0
  364. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/pty_master_public_api_test.rs +0 -0
  365. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/pty_mitm_paste_test.rs +0 -0
  366. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/pty_mitm_stdin_test.rs +0 -0
  367. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/pty_unix_teardown_test.rs +0 -0
  368. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/runpm_boot_autostart_fixtures.rs +0 -0
  369. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/runpm_toml_config.rs +0 -0
  370. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/security/cross_user_release_handles.rs +0 -0
  371. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/security/cve_dbus_2014_3639.rs +0 -0
  372. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/security/cve_dbus_2023_34969.rs +0 -0
  373. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/security/cve_sccache_2023_1521.rs +0 -0
  374. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/security/deferred_runtime_surfaces.rs +0 -0
  375. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/security/dependency_surface.rs +0 -0
  376. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/security/fuzz_campaign_signoff.rs +0 -0
  377. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/security/main.rs +0 -0
  378. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/security/manifest_tamper_detection.rs +0 -0
  379. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/security/no_network_dependencies.rs +0 -0
  380. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/security/pipe_name_validation.rs +0 -0
  381. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/security/pipe_squatting.rs +0 -0
  382. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/security/security_audit_workflow.rs +0 -0
  383. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/security/security_fuzz_workflow.rs +0 -0
  384. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/security/service_name_validation.rs +0 -0
  385. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/security/unsafe_inventory.rs +0 -0
  386. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/security/wanted_version_shell_injection.rs +0 -0
  387. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/security/wanted_version_traversal.rs +0 -0
  388. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/spawn_test.rs +0 -0
  389. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/terminal_graphics_capabilities_test.rs +0 -0
  390. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/ui/brokered_backend_state_in_bind.rs +0 -0
  391. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/ui/brokered_backend_state_in_bind.stderr +0 -0
  392. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process/tests/window_icon_x11_test.rs +0 -0
  393. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process-probe/Cargo.toml +0 -0
  394. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process-probe/build.rs +0 -0
  395. {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
  396. {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
  397. {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
  398. {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
  399. {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
  400. {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
  401. {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
  402. {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
  403. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process-probe/src/bin/helper.rs +0 -0
  404. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process-probe/src/crash/mod.rs +0 -0
  405. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process-probe/src/crash/spool.rs +0 -0
  406. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process-probe/src/inject_unix.rs +0 -0
  407. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process-probe/src/inject_windows.rs +0 -0
  408. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process-probe/src/lib.rs +0 -0
  409. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process-probe/src/snapshot/attribute.rs +0 -0
  410. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process-probe/src/snapshot/linux.rs +0 -0
  411. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process-probe/src/snapshot/macos.rs +0 -0
  412. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process-probe/src/snapshot/mod.rs +0 -0
  413. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process-probe/src/snapshot/modules.rs +0 -0
  414. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process-probe/src/snapshot/stream.rs +0 -0
  415. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process-probe/src/snapshot/unwind.rs +0 -0
  416. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process-probe/src/snapshot/windows.rs +0 -0
  417. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process-probe/tests/crash_handler_test.rs +0 -0
  418. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process-probe/tests/fixtures/probe_diag_v1_capture.bin +0 -0
  419. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process-probe/tests/fixtures/probe_diag_v1_crash.bin +0 -0
  420. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process-probe/tests/fixtures/probe_diag_v1_profile.bin +0 -0
  421. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process-probe/tests/fixtures/probe_diag_v1_register.bin +0 -0
  422. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process-probe/tests/inject_smoke_test.rs +0 -0
  423. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process-probe/tests/interposer_diagnostic_windows.rs +0 -0
  424. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process-probe/tests/interposer_integration_linux.rs +0 -0
  425. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process-probe/tests/interposer_integration_macos.rs +0 -0
  426. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process-probe/tests/interposer_integration_windows.rs +0 -0
  427. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process-probe/tests/wire_roundtrip.rs +0 -0
  428. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process-py/src/containment.rs +0 -0
  429. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process-py/src/daemon_client.rs +0 -0
  430. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process-py/src/debug_traces.rs +0 -0
  431. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process-py/src/helpers.rs +0 -0
  432. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process-py/src/idle_detector.rs +0 -0
  433. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process-py/src/metrics.rs +0 -0
  434. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process-py/src/originator.rs +0 -0
  435. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process-py/src/pid_tracking.rs +0 -0
  436. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process-py/src/priority.rs +0 -0
  437. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process-py/src/probe.rs +0 -0
  438. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process-py/src/process.rs +0 -0
  439. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process-py/src/pty_buffer.rs +0 -0
  440. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process-py/src/pty_process.rs +0 -0
  441. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process-py/src/public_symbols.rs +0 -0
  442. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process-py/src/py_native_process.rs +0 -0
  443. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process-py/src/registry.rs +0 -0
  444. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process-py/src/signal_bool.rs +0 -0
  445. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process-py/src/terminal_input.rs +0 -0
  446. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process-py/src/tests/control_churn.rs +0 -0
  447. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process-py/src/tests/expect_match.rs +0 -0
  448. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process-py/src/tests/idle_detector.rs +0 -0
  449. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process-py/src/tests/mod.rs +0 -0
  450. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process-py/src/tests/parse_command.rs +0 -0
  451. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process-py/src/tests/pty_buffer.rs +0 -0
  452. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process-py/src/tests/pty_process.rs +0 -0
  453. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process-py/src/tests/registry.rs +0 -0
  454. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process-py/src/tests/signal_bool.rs +0 -0
  455. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process-py/src/tests/terminal_input.rs +0 -0
  456. {running_process-4.8.2 → running_process-4.8.3}/crates/running-process-py/src/window_icon.rs +0 -0
  457. {running_process-4.8.2 → running_process-4.8.3}/crates/test-watchdog/Cargo.toml +0 -0
  458. {running_process-4.8.2 → running_process-4.8.3}/crates/test-watchdog/src/lib.rs +0 -0
  459. {running_process-4.8.2 → running_process-4.8.3}/crates/test-watchdog/src/probe_dump.rs +0 -0
  460. {running_process-4.8.2 → running_process-4.8.3}/crates/test-watchdog/tests/hang_dump.rs +0 -0
  461. {running_process-4.8.2 → running_process-4.8.3}/src/running_process/assets/example.txt +0 -0
  462. {running_process-4.8.2 → running_process-4.8.3}/src/running_process/asyncio_adapter.py +0 -0
  463. {running_process-4.8.2 → running_process-4.8.3}/src/running_process/command_render.py +0 -0
  464. {running_process-4.8.2 → running_process-4.8.3}/src/running_process/compat.py +0 -0
  465. {running_process-4.8.2 → running_process-4.8.3}/src/running_process/console_encoding.py +0 -0
  466. {running_process-4.8.2 → running_process-4.8.3}/src/running_process/daemon.py +0 -0
  467. {running_process-4.8.2 → running_process-4.8.3}/src/running_process/dashboard.py +0 -0
  468. {running_process-4.8.2 → running_process-4.8.3}/src/running_process/dump_paths.py +0 -0
  469. {running_process-4.8.2 → running_process-4.8.3}/src/running_process/exit_status.py +0 -0
  470. {running_process-4.8.2 → running_process-4.8.3}/src/running_process/expect.py +0 -0
  471. {running_process-4.8.2 → running_process-4.8.3}/src/running_process/interrupt_handler.py +0 -0
  472. {running_process-4.8.2 → running_process-4.8.3}/src/running_process/launch.py +0 -0
  473. {running_process-4.8.2 → running_process-4.8.3}/src/running_process/line_iterator.py +0 -0
  474. {running_process-4.8.2 → running_process-4.8.3}/src/running_process/output_formatter.py +0 -0
  475. {running_process-4.8.2 → running_process-4.8.3}/src/running_process/priority.py +0 -0
  476. {running_process-4.8.2 → running_process-4.8.3}/src/running_process/probe.py +0 -0
  477. {running_process-4.8.2 → running_process-4.8.3}/src/running_process/processor_cli.py +0 -0
  478. {running_process-4.8.2 → running_process-4.8.3}/src/running_process/pty/__init__.py +0 -0
  479. {running_process-4.8.2 → running_process-4.8.3}/src/running_process/pty/_command.py +0 -0
  480. {running_process-4.8.2 → running_process-4.8.3}/src/running_process/pty/_console_io.py +0 -0
  481. {running_process-4.8.2 → running_process-4.8.3}/src/running_process/pty/_errors.py +0 -0
  482. {running_process-4.8.2 → running_process-4.8.3}/src/running_process/pty/_idle_helpers.py +0 -0
  483. {running_process-4.8.2 → running_process-4.8.3}/src/running_process/pty/_idle_state.py +0 -0
  484. {running_process-4.8.2 → running_process-4.8.3}/src/running_process/pty/_interactive.py +0 -0
  485. {running_process-4.8.2 → running_process-4.8.3}/src/running_process/pty/_process_helpers.py +0 -0
  486. {running_process-4.8.2 → running_process-4.8.3}/src/running_process/pty/_pseudo_terminal.py +0 -0
  487. {running_process-4.8.2 → running_process-4.8.3}/src/running_process/pty/_pty_expect.py +0 -0
  488. {running_process-4.8.2 → running_process-4.8.3}/src/running_process/pty/_pty_idle_waiter.py +0 -0
  489. {running_process-4.8.2 → running_process-4.8.3}/src/running_process/pty/_pty_input_relay.py +0 -0
  490. {running_process-4.8.2 → running_process-4.8.3}/src/running_process/pty/_pty_reader.py +0 -0
  491. {running_process-4.8.2 → running_process-4.8.3}/src/running_process/pty/_pty_wait_for.py +0 -0
  492. {running_process-4.8.2 → running_process-4.8.3}/src/running_process/pty/_terminal_strip.py +0 -0
  493. {running_process-4.8.2 → running_process-4.8.3}/src/running_process/pty/_types.py +0 -0
  494. {running_process-4.8.2 → running_process-4.8.3}/src/running_process/pty/_wait_input.py +0 -0
  495. {running_process-4.8.2 → running_process-4.8.3}/src/running_process/running_process/__init__.py +0 -0
  496. {running_process-4.8.2 → running_process-4.8.3}/src/running_process/running_process/_classmethod_api.py +0 -0
  497. {running_process-4.8.2 → running_process-4.8.3}/src/running_process/running_process/_core.py +0 -0
  498. {running_process-4.8.2 → running_process-4.8.3}/src/running_process/running_process/_helpers.py +0 -0
  499. {running_process-4.8.2 → running_process-4.8.3}/src/running_process/running_process/_iter.py +0 -0
  500. {running_process-4.8.2 → running_process-4.8.3}/src/running_process/running_process/_subprocess.py +0 -0
  501. {running_process-4.8.2 → running_process-4.8.3}/src/running_process/running_process/_types.py +0 -0
  502. {running_process-4.8.2 → running_process-4.8.3}/src/running_process/running_process/_wait_methods.py +0 -0
  503. {running_process-4.8.2 → running_process-4.8.3}/src/running_process/running_process_manager.py +0 -0
  504. {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.2"
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.2"
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.2"
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.2"
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.2"
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.2"
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.2"
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.2"
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.2"
2218
+ version = "4.8.3"
2209
2219
  dependencies = [
2210
2220
  "windows-sys 0.59.0",
2211
2221
  ]
@@ -7,7 +7,7 @@ members = ["crates/running-process", "crates/running-process-probe", "crates/run
7
7
  exclude = ["testbins-tokio"]
8
8
 
9
9
  [workspace.package]
10
- version = "4.8.2"
10
+ version = "4.8.3"
11
11
  edition = "2021"
12
12
  rust-version = "1.85"
13
13
  license = "BSD-3-Clause"
@@ -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
  [![PyPI](https://img.shields.io/pypi/v/running-process)](https://pypi.org/project/running-process/) [![Crates.io](https://img.shields.io/crates/v/running-process)](https://crates.io/crates/running-process) [![codecov](https://codecov.io/gh/zackees/running-process/graph/badge.svg)](https://codecov.io/gh/zackees/running-process) [![Dependency Check](https://github.com/zackees/running-process/actions/workflows/dependency-check.yml/badge.svg)](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
  [![PyPI](https://img.shields.io/pypi/v/running-process)](https://pypi.org/project/running-process/) [![Crates.io](https://img.shields.io/crates/v/running-process)](https://crates.io/crates/running-process) [![codecov](https://codecov.io/gh/zackees/running-process/graph/badge.svg)](https://codecov.io/gh/zackees/running-process) [![Dependency Check](https://github.com/zackees/running-process/actions/workflows/dependency-check.yml/badge.svg)](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.2", default-features = false, optional = true }
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 [`SIGNAL_SHUTDOWN_REQUESTED`]. Without it the
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)