running-process 4.0.3__tar.gz → 4.2.0__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 (377) hide show
  1. {running_process-4.0.3 → running_process-4.2.0}/Cargo.lock +123 -53
  2. {running_process-4.0.3 → running_process-4.2.0}/Cargo.toml +8 -2
  3. {running_process-4.0.3 → running_process-4.2.0}/PKG-INFO +50 -1
  4. {running_process-4.0.3 → running_process-4.2.0}/README.md +49 -0
  5. {running_process-4.0.3 → running_process-4.2.0}/crates/running-process/Cargo.toml +61 -3
  6. running_process-4.2.0/crates/running-process/README.md +54 -0
  7. running_process-4.2.0/crates/running-process/build.rs +22 -0
  8. running_process-4.2.0/crates/running-process/examples/handoff_rollout_evidence.rs +707 -0
  9. running_process-4.2.0/crates/running-process/proto/broker_v1/broker_v1_admin.proto +45 -0
  10. running_process-4.2.0/crates/running-process/proto/broker_v1/broker_v1_envelope.proto +134 -0
  11. running_process-4.2.0/crates/running-process/proto/broker_v1/broker_v1_manifest.proto +220 -0
  12. running_process-4.2.0/crates/running-process/proto/broker_v1/broker_v1_service_def.proto +41 -0
  13. running_process-4.2.0/crates/running-process/proto/broker_v1/buf.yaml +24 -0
  14. {running_process-4.0.3 → running_process-4.2.0}/crates/running-process/proto/daemon.proto +6 -1
  15. {running_process-4.0.3 → running_process-4.2.0}/crates/running-process/src/bin/daemon.rs +5 -0
  16. running_process-4.2.0/crates/running-process/src/bin/running-process-broker-v1.rs +514 -0
  17. running_process-4.2.0/crates/running-process/src/bin/running-process-cleanup.rs +252 -0
  18. {running_process-4.0.3 → running_process-4.2.0}/crates/running-process/src/bin/runpm.rs +47 -2
  19. running_process-4.2.0/crates/running-process/src/broker/backend_handle.rs +438 -0
  20. running_process-4.2.0/crates/running-process/src/broker/backend_lib/accept_handed_off.rs +190 -0
  21. running_process-4.2.0/crates/running-process/src/broker/backend_lib/mod.rs +23 -0
  22. running_process-4.2.0/crates/running-process/src/broker/backend_lib/wire.rs +133 -0
  23. running_process-4.2.0/crates/running-process/src/broker/backend_lifecycle/identity.rs +263 -0
  24. running_process-4.2.0/crates/running-process/src/broker/backend_lifecycle/mod.rs +9 -0
  25. running_process-4.2.0/crates/running-process/src/broker/backend_lifecycle/probe.rs +614 -0
  26. running_process-4.2.0/crates/running-process/src/broker/backend_lifecycle/probe_async.rs +94 -0
  27. running_process-4.2.0/crates/running-process/src/broker/backend_lifecycle/verify_pid.rs +509 -0
  28. running_process-4.2.0/crates/running-process/src/broker/backend_sdk/frame_client.rs +147 -0
  29. running_process-4.2.0/crates/running-process/src/broker/backend_sdk/frame_client_async.rs +178 -0
  30. running_process-4.2.0/crates/running-process/src/broker/backend_sdk/identity_file.rs +131 -0
  31. running_process-4.2.0/crates/running-process/src/broker/backend_sdk/mod.rs +47 -0
  32. running_process-4.2.0/crates/running-process/src/broker/backend_sdk/mux.rs +384 -0
  33. running_process-4.2.0/crates/running-process/src/broker/capabilities.rs +25 -0
  34. running_process-4.2.0/crates/running-process/src/broker/client.rs +528 -0
  35. running_process-4.2.0/crates/running-process/src/broker/doctor.rs +912 -0
  36. running_process-4.2.0/crates/running-process/src/broker/fs_health.rs +128 -0
  37. running_process-4.2.0/crates/running-process/src/broker/host_identity.rs +287 -0
  38. running_process-4.2.0/crates/running-process/src/broker/lifecycle/crash_dump.rs +214 -0
  39. running_process-4.2.0/crates/running-process/src/broker/lifecycle/mod.rs +29 -0
  40. running_process-4.2.0/crates/running-process/src/broker/lifecycle/names.rs +452 -0
  41. running_process-4.2.0/crates/running-process/src/broker/lifecycle/privilege.rs +276 -0
  42. running_process-4.2.0/crates/running-process/src/broker/lifecycle/process_tree.rs +425 -0
  43. running_process-4.2.0/crates/running-process/src/broker/lifecycle/sid.rs +305 -0
  44. running_process-4.2.0/crates/running-process/src/broker/manifest.rs +440 -0
  45. running_process-4.2.0/crates/running-process/src/broker/mod.rs +47 -0
  46. running_process-4.2.0/crates/running-process/src/broker/protocol/frame_ext.rs +369 -0
  47. running_process-4.2.0/crates/running-process/src/broker/protocol/framing.rs +218 -0
  48. running_process-4.2.0/crates/running-process/src/broker/protocol/mod.rs +39 -0
  49. running_process-4.2.0/crates/running-process/src/broker/protocol/registry.rs +286 -0
  50. running_process-4.2.0/crates/running-process/src/broker/protocol/validate.rs +178 -0
  51. running_process-4.2.0/crates/running-process/src/broker/secure_dir.rs +195 -0
  52. running_process-4.2.0/crates/running-process/src/broker/server/admin.rs +816 -0
  53. running_process-4.2.0/crates/running-process/src/broker/server/backend_endpoint_allocator.rs +125 -0
  54. running_process-4.2.0/crates/running-process/src/broker/server/backend_launcher.rs +349 -0
  55. running_process-4.2.0/crates/running-process/src/broker/server/backend_registry.rs +189 -0
  56. running_process-4.2.0/crates/running-process/src/broker/server/broadcast.rs +319 -0
  57. running_process-4.2.0/crates/running-process/src/broker/server/connection.rs +639 -0
  58. running_process-4.2.0/crates/running-process/src/broker/server/control_socket.rs +332 -0
  59. running_process-4.2.0/crates/running-process/src/broker/server/fd_pressure.rs +250 -0
  60. running_process-4.2.0/crates/running-process/src/broker/server/handoff/ack.rs +278 -0
  61. running_process-4.2.0/crates/running-process/src/broker/server/handoff/fallback.rs +337 -0
  62. running_process-4.2.0/crates/running-process/src/broker/server/handoff/handoff_token.rs +278 -0
  63. running_process-4.2.0/crates/running-process/src/broker/server/handoff/latency.rs +166 -0
  64. running_process-4.2.0/crates/running-process/src/broker/server/handoff/mod.rs +65 -0
  65. running_process-4.2.0/crates/running-process/src/broker/server/handoff/orchestrate.rs +353 -0
  66. running_process-4.2.0/crates/running-process/src/broker/server/handoff/orchestrate_unix.rs +276 -0
  67. running_process-4.2.0/crates/running-process/src/broker/server/handoff/pending.rs +164 -0
  68. running_process-4.2.0/crates/running-process/src/broker/server/handoff/unix.rs +451 -0
  69. running_process-4.2.0/crates/running-process/src/broker/server/handoff/windows.rs +317 -0
  70. running_process-4.2.0/crates/running-process/src/broker/server/handoff/wire.rs +274 -0
  71. running_process-4.2.0/crates/running-process/src/broker/server/handoff_serve.rs +330 -0
  72. running_process-4.2.0/crates/running-process/src/broker/server/hello_handler.rs +459 -0
  73. running_process-4.2.0/crates/running-process/src/broker/server/hello_router.rs +458 -0
  74. running_process-4.2.0/crates/running-process/src/broker/server/idle_coord.rs +189 -0
  75. running_process-4.2.0/crates/running-process/src/broker/server/instance.rs +86 -0
  76. running_process-4.2.0/crates/running-process/src/broker/server/metrics.rs +99 -0
  77. running_process-4.2.0/crates/running-process/src/broker/server/mod.rs +120 -0
  78. running_process-4.2.0/crates/running-process/src/broker/server/perf_guard.rs +110 -0
  79. running_process-4.2.0/crates/running-process/src/broker/server/recovery.rs +169 -0
  80. running_process-4.2.0/crates/running-process/src/broker/server/serve.rs +373 -0
  81. running_process-4.2.0/crates/running-process/src/broker/server/service_def_loader.rs +253 -0
  82. running_process-4.2.0/crates/running-process/src/broker/server/spawn_coordinator.rs +635 -0
  83. running_process-4.2.0/crates/running-process/src/broker/server/spawn_wait.rs +130 -0
  84. running_process-4.2.0/crates/running-process/src/broker/server/trace_context.rs +37 -0
  85. running_process-4.2.0/crates/running-process/src/broker/server/version_allow_list.rs +103 -0
  86. running_process-4.2.0/crates/running-process/src/cleanup/instances.rs +72 -0
  87. running_process-4.2.0/crates/running-process/src/cleanup/list.rs +19 -0
  88. running_process-4.2.0/crates/running-process/src/cleanup/mod.rs +179 -0
  89. running_process-4.2.0/crates/running-process/src/cleanup/prune.rs +119 -0
  90. running_process-4.2.0/crates/running-process/src/cleanup/uninstall.rs +66 -0
  91. running_process-4.2.0/crates/running-process/src/cleanup/verify_artifacts.rs +821 -0
  92. running_process-4.2.0/crates/running-process/src/cleanup/verify_basic.rs +122 -0
  93. {running_process-4.0.3 → running_process-4.2.0}/crates/running-process/src/client/client.rs +23 -12
  94. {running_process-4.0.3 → running_process-4.2.0}/crates/running-process/src/client/paths.rs +63 -35
  95. {running_process-4.0.3 → running_process-4.2.0}/crates/running-process/src/client/pipe_session.rs +83 -30
  96. {running_process-4.0.3 → running_process-4.2.0}/crates/running-process/src/client/pty_session.rs +23 -1
  97. {running_process-4.0.3 → running_process-4.2.0}/crates/running-process/src/client/telemetry.rs +34 -0
  98. {running_process-4.0.3 → running_process-4.2.0}/crates/running-process/src/console_detect.rs +7 -0
  99. {running_process-4.0.3 → running_process-4.2.0}/crates/running-process/src/containment.rs +2 -2
  100. {running_process-4.0.3 → running_process-4.2.0}/crates/running-process/src/daemon/attach_stream.rs +2 -2
  101. running_process-4.2.0/crates/running-process/src/daemon/emergency_reserve.rs +326 -0
  102. {running_process-4.0.3 → running_process-4.2.0}/crates/running-process/src/daemon/handlers/core.rs +1 -0
  103. {running_process-4.0.3 → running_process-4.2.0}/crates/running-process/src/daemon/handlers/mod.rs +5 -2
  104. {running_process-4.0.3 → running_process-4.2.0}/crates/running-process/src/daemon/handlers/pipe_sessions_handlers.rs +8 -2
  105. {running_process-4.0.3 → running_process-4.2.0}/crates/running-process/src/daemon/handlers/process_tree.rs +1 -3
  106. {running_process-4.0.3 → running_process-4.2.0}/crates/running-process/src/daemon/handlers/spawn.rs +3 -4
  107. {running_process-4.0.3 → running_process-4.2.0}/crates/running-process/src/daemon/handlers/util.rs +1 -5
  108. {running_process-4.0.3 → running_process-4.2.0}/crates/running-process/src/daemon/handlers_tests.rs +6 -0
  109. {running_process-4.0.3 → running_process-4.2.0}/crates/running-process/src/daemon/mod.rs +1 -0
  110. {running_process-4.0.3 → running_process-4.2.0}/crates/running-process/src/daemon/pty_sessions.rs +3 -2
  111. {running_process-4.0.3 → running_process-4.2.0}/crates/running-process/src/daemon/reaper.rs +6 -0
  112. {running_process-4.0.3 → running_process-4.2.0}/crates/running-process/src/daemon/server.rs +34 -9
  113. {running_process-4.0.3 → running_process-4.2.0}/crates/running-process/src/lib.rs +109 -23
  114. running_process-4.2.0/crates/running-process/src/maintenance/mod.rs +9 -0
  115. running_process-4.2.0/crates/running-process/src/maintenance/release_handles.rs +229 -0
  116. {running_process-4.0.3 → running_process-4.2.0}/crates/running-process/src/pty/backend.rs +31 -9
  117. {running_process-4.0.3 → running_process-4.2.0}/crates/running-process/src/pty/conpty_passthrough/child.rs +1 -1
  118. {running_process-4.0.3 → running_process-4.2.0}/crates/running-process/src/pty/conpty_passthrough/mod.rs +2 -2
  119. {running_process-4.0.3 → running_process-4.2.0}/crates/running-process/src/pty/conpty_passthrough/proc_thread_attr.rs +3 -5
  120. {running_process-4.0.3 → running_process-4.2.0}/crates/running-process/src/pty/conpty_passthrough/pseudoconsole.rs +2 -2
  121. {running_process-4.0.3 → running_process-4.2.0}/crates/running-process/src/pty/mod.rs +80 -8
  122. {running_process-4.0.3 → running_process-4.2.0}/crates/running-process/src/pty/native_pty_process.rs +80 -8
  123. {running_process-4.0.3 → running_process-4.2.0}/crates/running-process/src/pty/terminal_input.rs +55 -0
  124. {running_process-4.0.3 → running_process-4.2.0}/crates/running-process/src/rust_debug.rs +6 -0
  125. {running_process-4.0.3 → running_process-4.2.0}/crates/running-process/src/spawn.rs +9 -1
  126. {running_process-4.0.3 → running_process-4.2.0}/crates/running-process/src/spawn_imp_windows.rs +19 -21
  127. running_process-4.2.0/crates/running-process/src/systemd_killmode.rs +342 -0
  128. {running_process-4.0.3 → running_process-4.2.0}/crates/running-process/src/terminal_graphics.rs +49 -0
  129. running_process-4.2.0/crates/running-process/src/test_support/conformance.rs +492 -0
  130. running_process-4.2.0/crates/running-process/src/test_support/mod.rs +20 -0
  131. running_process-4.2.0/crates/running-process/src/types.rs +128 -0
  132. running_process-4.2.0/crates/running-process/tests/broker/admin.rs +575 -0
  133. running_process-4.2.0/crates/running-process/tests/broker/backend_endpoint_allocator.rs +93 -0
  134. running_process-4.2.0/crates/running-process/tests/broker/backend_handle_boot_id.rs +13 -0
  135. running_process-4.2.0/crates/running-process/tests/broker/backend_handle_common.rs +183 -0
  136. running_process-4.2.0/crates/running-process/tests/broker/backend_handle_dead.rs +13 -0
  137. running_process-4.2.0/crates/running-process/tests/broker/backend_handle_probe.rs +82 -0
  138. running_process-4.2.0/crates/running-process/tests/broker/backend_handle_recycled.rs +13 -0
  139. running_process-4.2.0/crates/running-process/tests/broker/backend_registry.rs +69 -0
  140. running_process-4.2.0/crates/running-process/tests/broker/backend_sdk.rs +173 -0
  141. running_process-4.2.0/crates/running-process/tests/broker/backend_sdk_async.rs +178 -0
  142. running_process-4.2.0/crates/running-process/tests/broker/broadcast_release_handles.rs +138 -0
  143. running_process-4.2.0/crates/running-process/tests/broker/client.rs +308 -0
  144. running_process-4.2.0/crates/running-process/tests/broker/conformance_kit.rs +66 -0
  145. running_process-4.2.0/crates/running-process/tests/broker/connection.rs +661 -0
  146. running_process-4.2.0/crates/running-process/tests/broker/contrib_templates.rs +101 -0
  147. running_process-4.2.0/crates/running-process/tests/broker/docs_escape_hatch.rs +61 -0
  148. running_process-4.2.0/crates/running-process/tests/broker/docs_index.rs +227 -0
  149. running_process-4.2.0/crates/running-process/tests/broker/doctor.rs +411 -0
  150. running_process-4.2.0/crates/running-process/tests/broker/fd_pressure.rs +347 -0
  151. running_process-4.2.0/crates/running-process/tests/broker/framing.rs +178 -0
  152. running_process-4.2.0/crates/running-process/tests/broker/golden_bytes.rs +442 -0
  153. running_process-4.2.0/crates/running-process/tests/broker/handoff_ack_deadline.rs +247 -0
  154. running_process-4.2.0/crates/running-process/tests/broker/handoff_adopted_backend.rs +42 -0
  155. running_process-4.2.0/crates/running-process/tests/broker/handoff_adoption.rs +385 -0
  156. running_process-4.2.0/crates/running-process/tests/broker/handoff_backend_lib.rs +155 -0
  157. running_process-4.2.0/crates/running-process/tests/broker/handoff_capability.rs +231 -0
  158. running_process-4.2.0/crates/running-process/tests/broker/handoff_cross_os_acceptance.rs +56 -0
  159. running_process-4.2.0/crates/running-process/tests/broker/handoff_end_to_end_acceptance.rs +203 -0
  160. running_process-4.2.0/crates/running-process/tests/broker/handoff_fallback_perm_denied.rs +162 -0
  161. running_process-4.2.0/crates/running-process/tests/broker/handoff_latency.rs +119 -0
  162. running_process-4.2.0/crates/running-process/tests/broker/handoff_latency_e2e.rs +746 -0
  163. running_process-4.2.0/crates/running-process/tests/broker/handoff_orchestrate.rs +475 -0
  164. running_process-4.2.0/crates/running-process/tests/broker/handoff_serve_e2e.rs +610 -0
  165. running_process-4.2.0/crates/running-process/tests/broker/handoff_serve_latency.rs +260 -0
  166. running_process-4.2.0/crates/running-process/tests/broker/handoff_token_mismatch.rs +101 -0
  167. running_process-4.2.0/crates/running-process/tests/broker/handoff_transport.rs +284 -0
  168. running_process-4.2.0/crates/running-process/tests/broker/handoff_under_load.rs +105 -0
  169. running_process-4.2.0/crates/running-process/tests/broker/handoff_unix_e2e_orchestrate.rs +180 -0
  170. running_process-4.2.0/crates/running-process/tests/broker/handoff_unix_orchestrate.rs +468 -0
  171. running_process-4.2.0/crates/running-process/tests/broker/handoff_windows_duplicate_handle.rs +465 -0
  172. running_process-4.2.0/crates/running-process/tests/broker/handoff_windows_orchestrate.rs +475 -0
  173. running_process-4.2.0/crates/running-process/tests/broker/handoff_wire.rs +516 -0
  174. running_process-4.2.0/crates/running-process/tests/broker/hello_concurrent.rs +112 -0
  175. running_process-4.2.0/crates/running-process/tests/broker/hello_handler.rs +270 -0
  176. running_process-4.2.0/crates/running-process/tests/broker/hello_rate_limit.rs +135 -0
  177. running_process-4.2.0/crates/running-process/tests/broker/hello_router.rs +481 -0
  178. running_process-4.2.0/crates/running-process/tests/broker/hello_service_unknown.rs +74 -0
  179. running_process-4.2.0/crates/running-process/tests/broker/hello_skip.rs +93 -0
  180. running_process-4.2.0/crates/running-process/tests/broker/hello_version_blocked.rs +126 -0
  181. running_process-4.2.0/crates/running-process/tests/broker/idle_coord.rs +145 -0
  182. running_process-4.2.0/crates/running-process/tests/broker/instance.rs +90 -0
  183. running_process-4.2.0/crates/running-process/tests/broker/instance_isolation.rs +142 -0
  184. running_process-4.2.0/crates/running-process/tests/broker/lifecycle_event_size.rs +82 -0
  185. running_process-4.2.0/crates/running-process/tests/broker/main.rs +86 -0
  186. running_process-4.2.0/crates/running-process/tests/broker/manifest_atomic.rs +131 -0
  187. running_process-4.2.0/crates/running-process/tests/broker/manifest_boot_id.rs +50 -0
  188. running_process-4.2.0/crates/running-process/tests/broker/manifest_corruption.rs +41 -0
  189. running_process-4.2.0/crates/running-process/tests/broker/manifest_roundtrip.rs +101 -0
  190. running_process-4.2.0/crates/running-process/tests/broker/metrics_names_frozen.rs +62 -0
  191. running_process-4.2.0/crates/running-process/tests/broker/names.rs +243 -0
  192. running_process-4.2.0/crates/running-process/tests/broker/peer_creds_drop.rs +103 -0
  193. running_process-4.2.0/crates/running-process/tests/broker/perf_guard.rs +260 -0
  194. running_process-4.2.0/crates/running-process/tests/broker/process_tree_lifecycle.rs +61 -0
  195. running_process-4.2.0/crates/running-process/tests/broker/proto_field_numbers.rs +130 -0
  196. running_process-4.2.0/crates/running-process/tests/broker/proto_roundtrip.rs +272 -0
  197. running_process-4.2.0/crates/running-process/tests/broker/recovery_one_retry.rs +80 -0
  198. running_process-4.2.0/crates/running-process/tests/broker/serve.rs +453 -0
  199. running_process-4.2.0/crates/running-process/tests/broker/service_def_loader.rs +284 -0
  200. running_process-4.2.0/crates/running-process/tests/broker/servicedef_cli.rs +192 -0
  201. running_process-4.2.0/crates/running-process/tests/broker/socket_common.rs +116 -0
  202. running_process-4.2.0/crates/running-process/tests/broker/spawn_coordinator.rs +161 -0
  203. running_process-4.2.0/crates/running-process/tests/broker/spawn_wait.rs +96 -0
  204. running_process-4.2.0/crates/running-process/tests/broker/trace_propagation.rs +63 -0
  205. running_process-4.2.0/crates/running-process/tests/broker/verify_pid/linux.rs +23 -0
  206. running_process-4.2.0/crates/running-process/tests/broker/verify_pid/macos.rs +69 -0
  207. running_process-4.2.0/crates/running-process/tests/broker/verify_pid/mod.rs +6 -0
  208. running_process-4.2.0/crates/running-process/tests/broker/verify_pid/windows.rs +23 -0
  209. running_process-4.2.0/crates/running-process/tests/cleanup/cleanup_list.rs +26 -0
  210. running_process-4.2.0/crates/running-process/tests/cleanup/cleanup_prune_confirm.rs +41 -0
  211. running_process-4.2.0/crates/running-process/tests/cleanup/cleanup_prune_dryrun.rs +41 -0
  212. running_process-4.2.0/crates/running-process/tests/cleanup/cleanup_uninstall.rs +30 -0
  213. running_process-4.2.0/crates/running-process/tests/cleanup/cleanup_verify_artifacts.rs +186 -0
  214. running_process-4.2.0/crates/running-process/tests/cleanup/common.rs +48 -0
  215. running_process-4.2.0/crates/running-process/tests/cleanup/main.rs +8 -0
  216. {running_process-4.0.3 → running_process-4.2.0}/crates/running-process/tests/containment_test.rs +8 -1
  217. {running_process-4.0.3 → running_process-4.2.0}/crates/running-process/tests/daemon_autostart_test.rs +14 -1
  218. {running_process-4.0.3 → running_process-4.2.0}/crates/running-process/tests/daemon_backlog_accumulation_test.rs +8 -1
  219. {running_process-4.0.3 → running_process-4.2.0}/crates/running-process/tests/daemon_fast_ctrl_c_handoff_test.rs +8 -1
  220. {running_process-4.0.3 → running_process-4.2.0}/crates/running-process/tests/daemon_integration/compiler_wrap_seam_test.rs +9 -20
  221. {running_process-4.0.3 → running_process-4.2.0}/crates/running-process/tests/daemon_integration/env_replace_test.rs +16 -28
  222. {running_process-4.0.3 → running_process-4.2.0}/crates/running-process/tests/daemon_integration/stdout_seam_test.rs +11 -15
  223. {running_process-4.0.3 → running_process-4.2.0}/crates/running-process/tests/daemon_pipe_session_attach_test.rs +11 -2
  224. {running_process-4.0.3 → running_process-4.2.0}/crates/running-process/tests/daemon_pty_session_attach_test.rs +14 -5
  225. {running_process-4.0.3 → running_process-4.2.0}/crates/running-process/tests/daemon_resize_rpc_test.rs +8 -1
  226. {running_process-4.0.3 → running_process-4.2.0}/crates/running-process/tests/daemon_sessions_bulk_ops_test.rs +9 -4
  227. {running_process-4.0.3 → running_process-4.2.0}/crates/running-process/tests/daemon_sessions_log_test.rs +8 -1
  228. {running_process-4.0.3 → running_process-4.2.0}/crates/running-process/tests/daemon_termination_outcome_test.rs +10 -7
  229. {running_process-4.0.3 → running_process-4.2.0}/crates/running-process/tests/daemon_tree_kill_test.rs +8 -1
  230. {running_process-4.0.3 → running_process-4.2.0}/crates/running-process/tests/daemon_tui_repaint_test.rs +9 -5
  231. {running_process-4.0.3 → running_process-4.2.0}/crates/running-process/tests/fs_adversarial_test.rs +27 -10
  232. running_process-4.2.0/crates/running-process/tests/maintenance/main.rs +12 -0
  233. running_process-4.2.0/crates/running-process/tests/maintenance/release_handles_unix.rs +50 -0
  234. running_process-4.2.0/crates/running-process/tests/maintenance/release_handles_windows.rs +52 -0
  235. {running_process-4.0.3 → running_process-4.2.0}/crates/running-process/tests/pty_master_public_api_test.rs +11 -9
  236. running_process-4.2.0/crates/running-process/tests/security/cross_user_release_handles.rs +83 -0
  237. running_process-4.2.0/crates/running-process/tests/security/cve_dbus_2014_3639.rs +102 -0
  238. running_process-4.2.0/crates/running-process/tests/security/cve_dbus_2023_34969.rs +206 -0
  239. running_process-4.2.0/crates/running-process/tests/security/cve_sccache_2023_1521.rs +131 -0
  240. running_process-4.2.0/crates/running-process/tests/security/deferred_runtime_surfaces.rs +5 -0
  241. running_process-4.2.0/crates/running-process/tests/security/dependency_surface.rs +196 -0
  242. running_process-4.2.0/crates/running-process/tests/security/fuzz_campaign_signoff.rs +329 -0
  243. running_process-4.2.0/crates/running-process/tests/security/main.rs +27 -0
  244. running_process-4.2.0/crates/running-process/tests/security/manifest_tamper_detection.rs +51 -0
  245. running_process-4.2.0/crates/running-process/tests/security/no_network_dependencies.rs +114 -0
  246. running_process-4.2.0/crates/running-process/tests/security/pipe_name_validation.rs +42 -0
  247. running_process-4.2.0/crates/running-process/tests/security/pipe_squatting.rs +154 -0
  248. running_process-4.2.0/crates/running-process/tests/security/security_audit_workflow.rs +104 -0
  249. running_process-4.2.0/crates/running-process/tests/security/security_fuzz_workflow.rs +378 -0
  250. running_process-4.2.0/crates/running-process/tests/security/service_name_validation.rs +31 -0
  251. running_process-4.2.0/crates/running-process/tests/security/unsafe_inventory.rs +371 -0
  252. running_process-4.2.0/crates/running-process/tests/security/wanted_version_shell_injection.rs +19 -0
  253. running_process-4.2.0/crates/running-process/tests/security/wanted_version_traversal.rs +28 -0
  254. {running_process-4.0.3 → running_process-4.2.0}/crates/running-process/tests/spawn_test.rs +9 -2
  255. {running_process-4.0.3 → running_process-4.2.0}/crates/running-process-py/Cargo.toml +5 -1
  256. {running_process-4.0.3 → running_process-4.2.0}/crates/running-process-py/src/debug_traces.rs +2 -2
  257. {running_process-4.0.3 → running_process-4.2.0}/crates/running-process-py/src/helpers.rs +2 -4
  258. {running_process-4.0.3 → running_process-4.2.0}/crates/running-process-py/src/idle_detector.rs +1 -1
  259. {running_process-4.0.3 → running_process-4.2.0}/crates/running-process-py/src/originator.rs +1 -1
  260. {running_process-4.0.3 → running_process-4.2.0}/crates/running-process-py/src/priority.rs +2 -4
  261. {running_process-4.0.3 → running_process-4.2.0}/crates/running-process-py/src/process.rs +7 -17
  262. {running_process-4.0.3 → running_process-4.2.0}/crates/running-process-py/src/process_tree.rs +1 -1
  263. {running_process-4.0.3 → running_process-4.2.0}/crates/running-process-py/src/pty_buffer.rs +1 -1
  264. {running_process-4.0.3 → running_process-4.2.0}/crates/running-process-py/src/pty_process.rs +8 -10
  265. {running_process-4.0.3 → running_process-4.2.0}/crates/running-process-py/src/public_symbols.rs +4 -2
  266. {running_process-4.0.3 → running_process-4.2.0}/crates/running-process-py/src/py_native_process.rs +1 -1
  267. {running_process-4.0.3 → running_process-4.2.0}/crates/running-process-py/src/signal_bool.rs +1 -1
  268. {running_process-4.0.3 → running_process-4.2.0}/crates/running-process-py/src/terminal_input.rs +4 -4
  269. {running_process-4.0.3 → running_process-4.2.0}/crates/running-process-py/src/tests/expect_match.rs +12 -12
  270. {running_process-4.0.3 → running_process-4.2.0}/crates/running-process-py/src/tests/idle_detector.rs +45 -52
  271. {running_process-4.0.3 → running_process-4.2.0}/crates/running-process-py/src/tests/parse_command.rs +12 -12
  272. {running_process-4.0.3 → running_process-4.2.0}/crates/running-process-py/src/tests/process_tree.rs +2 -2
  273. {running_process-4.0.3 → running_process-4.2.0}/crates/running-process-py/src/tests/pty_buffer.rs +26 -26
  274. {running_process-4.0.3 → running_process-4.2.0}/crates/running-process-py/src/tests/pty_process.rs +70 -71
  275. {running_process-4.0.3 → running_process-4.2.0}/crates/running-process-py/src/tests/registry.rs +12 -12
  276. {running_process-4.0.3 → running_process-4.2.0}/crates/running-process-py/src/tests/terminal_input.rs +11 -17
  277. running_process-4.2.0/crates/test-watchdog/Cargo.toml +13 -0
  278. running_process-4.2.0/crates/test-watchdog/src/lib.rs +354 -0
  279. running_process-4.2.0/crates/test-watchdog/tests/hang_dump.rs +32 -0
  280. {running_process-4.0.3 → running_process-4.2.0}/pyproject.toml +1 -1
  281. {running_process-4.0.3 → running_process-4.2.0}/src/running_process/__init__.py +1 -1
  282. running_process-4.0.3/crates/running-process/build.rs +0 -9
  283. running_process-4.0.3/crates/running-process/src/types.rs +0 -89
  284. running_process-4.0.3/crates/test-watchdog/Cargo.toml +0 -6
  285. running_process-4.0.3/crates/test-watchdog/src/lib.rs +0 -153
  286. {running_process-4.0.3 → running_process-4.2.0}/LICENSE +0 -0
  287. {running_process-4.0.3 → running_process-4.2.0}/crates/running-process/src/bin/trampoline.rs +0 -0
  288. {running_process-4.0.3 → running_process-4.2.0}/crates/running-process/src/client/mod.rs +0 -0
  289. {running_process-4.0.3 → running_process-4.2.0}/crates/running-process/src/daemon/config.rs +0 -0
  290. {running_process-4.0.3 → running_process-4.2.0}/crates/running-process/src/daemon/handlers/kill.rs +0 -0
  291. {running_process-4.0.3 → running_process-4.2.0}/crates/running-process/src/daemon/handlers/maintenance.rs +0 -0
  292. {running_process-4.0.3 → running_process-4.2.0}/crates/running-process/src/daemon/handlers/pty_sessions_handlers.rs +0 -0
  293. {running_process-4.0.3 → running_process-4.2.0}/crates/running-process/src/daemon/handlers/registry_handlers.rs +0 -0
  294. {running_process-4.0.3 → running_process-4.2.0}/crates/running-process/src/daemon/handlers/services.rs +0 -0
  295. {running_process-4.0.3 → running_process-4.2.0}/crates/running-process/src/daemon/handlers/telemetry.rs +0 -0
  296. {running_process-4.0.3 → running_process-4.2.0}/crates/running-process/src/daemon/idle.rs +0 -0
  297. {running_process-4.0.3 → running_process-4.2.0}/crates/running-process/src/daemon/pipe_attach_stream.rs +0 -0
  298. {running_process-4.0.3 → running_process-4.2.0}/crates/running-process/src/daemon/pipe_sessions.rs +0 -0
  299. {running_process-4.0.3 → running_process-4.2.0}/crates/running-process/src/daemon/platform/mod.rs +0 -0
  300. {running_process-4.0.3 → running_process-4.2.0}/crates/running-process/src/daemon/platform/unix.rs +0 -0
  301. {running_process-4.0.3 → running_process-4.2.0}/crates/running-process/src/daemon/platform/windows.rs +0 -0
  302. {running_process-4.0.3 → running_process-4.2.0}/crates/running-process/src/daemon/registry.rs +0 -0
  303. {running_process-4.0.3 → running_process-4.2.0}/crates/running-process/src/daemon/runtime_gc.rs +0 -0
  304. {running_process-4.0.3 → running_process-4.2.0}/crates/running-process/src/daemon/shadow.rs +0 -0
  305. {running_process-4.0.3 → running_process-4.2.0}/crates/running-process/src/daemon/telemetry.rs +0 -0
  306. {running_process-4.0.3 → running_process-4.2.0}/crates/running-process/src/helpers.rs +0 -0
  307. {running_process-4.0.3 → running_process-4.2.0}/crates/running-process/src/originator.rs +0 -0
  308. {running_process-4.0.3 → running_process-4.2.0}/crates/running-process/src/pty/conpty_passthrough/pipes.rs +0 -0
  309. {running_process-4.0.3 → running_process-4.2.0}/crates/running-process/src/pty/pty_posix.rs +0 -0
  310. {running_process-4.0.3 → running_process-4.2.0}/crates/running-process/src/pty/pty_windows.rs +0 -0
  311. {running_process-4.0.3 → running_process-4.2.0}/crates/running-process/src/public_symbols.rs +0 -0
  312. {running_process-4.0.3 → running_process-4.2.0}/crates/running-process/src/spawn_imp_unix.rs +0 -0
  313. {running_process-4.0.3 → running_process-4.2.0}/crates/running-process/src/tests.rs +0 -0
  314. {running_process-4.0.3 → running_process-4.2.0}/crates/running-process/src/unix.rs +0 -0
  315. {running_process-4.0.3 → running_process-4.2.0}/crates/running-process/src/windows.rs +0 -0
  316. {running_process-4.0.3 → running_process-4.2.0}/crates/running-process/tests/daemon_cross_process_pty_attach_test.rs +0 -0
  317. {running_process-4.0.3 → running_process-4.2.0}/crates/running-process/tests/daemon_integration/main.rs +0 -0
  318. {running_process-4.0.3 → running_process-4.2.0}/crates/running-process/tests/daemon_integration/more_tests.rs +0 -0
  319. {running_process-4.0.3 → running_process-4.2.0}/crates/running-process/tests/daemon_non_tty_attach_test.rs +0 -0
  320. {running_process-4.0.3 → running_process-4.2.0}/crates/running-process/tests/daemon_runpm_service_stubs.rs +0 -0
  321. {running_process-4.0.3 → running_process-4.2.0}/crates/running-process/tests/daemon_tee_ring_test.rs +0 -0
  322. {running_process-4.0.3 → running_process-4.2.0}/crates/running-process/tests/interactive_pty_session_test.rs +0 -0
  323. {running_process-4.0.3 → running_process-4.2.0}/crates/running-process/tests/originator_test.rs +0 -0
  324. {running_process-4.0.3 → running_process-4.2.0}/crates/running-process/tests/process_core_test.rs +0 -0
  325. {running_process-4.0.3 → running_process-4.2.0}/crates/running-process/tests/pty_conhost_job_test.rs +0 -0
  326. {running_process-4.0.3 → running_process-4.2.0}/crates/running-process/tests/terminal_graphics_capabilities_test.rs +0 -0
  327. {running_process-4.0.3 → running_process-4.2.0}/crates/running-process-py/src/containment.rs +0 -0
  328. {running_process-4.0.3 → running_process-4.2.0}/crates/running-process-py/src/daemon_client.rs +0 -0
  329. {running_process-4.0.3 → running_process-4.2.0}/crates/running-process-py/src/lib.rs +2 -2
  330. {running_process-4.0.3 → running_process-4.2.0}/crates/running-process-py/src/metrics.rs +0 -0
  331. {running_process-4.0.3 → running_process-4.2.0}/crates/running-process-py/src/pid_tracking.rs +0 -0
  332. {running_process-4.0.3 → running_process-4.2.0}/crates/running-process-py/src/registry.rs +0 -0
  333. {running_process-4.0.3 → running_process-4.2.0}/crates/running-process-py/src/tests/control_churn.rs +0 -0
  334. {running_process-4.0.3 → running_process-4.2.0}/crates/running-process-py/src/tests/mod.rs +0 -0
  335. {running_process-4.0.3 → running_process-4.2.0}/crates/running-process-py/src/tests/signal_bool.rs +0 -0
  336. {running_process-4.0.3 → running_process-4.2.0}/src/running_process/assets/example.txt +0 -0
  337. {running_process-4.0.3 → running_process-4.2.0}/src/running_process/cli.py +0 -0
  338. {running_process-4.0.3 → running_process-4.2.0}/src/running_process/command_render.py +0 -0
  339. {running_process-4.0.3 → running_process-4.2.0}/src/running_process/compat.py +0 -0
  340. {running_process-4.0.3 → running_process-4.2.0}/src/running_process/console_encoding.py +0 -0
  341. {running_process-4.0.3 → running_process-4.2.0}/src/running_process/daemon.py +0 -0
  342. {running_process-4.0.3 → running_process-4.2.0}/src/running_process/dashboard.py +0 -0
  343. {running_process-4.0.3 → running_process-4.2.0}/src/running_process/exit_status.py +0 -0
  344. {running_process-4.0.3 → running_process-4.2.0}/src/running_process/expect.py +0 -0
  345. {running_process-4.0.3 → running_process-4.2.0}/src/running_process/interrupt_handler.py +0 -0
  346. {running_process-4.0.3 → running_process-4.2.0}/src/running_process/launch.py +0 -0
  347. {running_process-4.0.3 → running_process-4.2.0}/src/running_process/line_iterator.py +0 -0
  348. {running_process-4.0.3 → running_process-4.2.0}/src/running_process/output_formatter.py +0 -0
  349. {running_process-4.0.3 → running_process-4.2.0}/src/running_process/priority.py +0 -0
  350. {running_process-4.0.3 → running_process-4.2.0}/src/running_process/process_utils.py +0 -0
  351. {running_process-4.0.3 → running_process-4.2.0}/src/running_process/processor_cli.py +0 -0
  352. {running_process-4.0.3 → running_process-4.2.0}/src/running_process/pty/__init__.py +0 -0
  353. {running_process-4.0.3 → running_process-4.2.0}/src/running_process/pty/_command.py +0 -0
  354. {running_process-4.0.3 → running_process-4.2.0}/src/running_process/pty/_console_io.py +0 -0
  355. {running_process-4.0.3 → running_process-4.2.0}/src/running_process/pty/_errors.py +0 -0
  356. {running_process-4.0.3 → running_process-4.2.0}/src/running_process/pty/_idle_helpers.py +0 -0
  357. {running_process-4.0.3 → running_process-4.2.0}/src/running_process/pty/_idle_state.py +0 -0
  358. {running_process-4.0.3 → running_process-4.2.0}/src/running_process/pty/_interactive.py +0 -0
  359. {running_process-4.0.3 → running_process-4.2.0}/src/running_process/pty/_process_helpers.py +0 -0
  360. {running_process-4.0.3 → running_process-4.2.0}/src/running_process/pty/_pseudo_terminal.py +0 -0
  361. {running_process-4.0.3 → running_process-4.2.0}/src/running_process/pty/_pty_expect.py +0 -0
  362. {running_process-4.0.3 → running_process-4.2.0}/src/running_process/pty/_pty_idle_waiter.py +0 -0
  363. {running_process-4.0.3 → running_process-4.2.0}/src/running_process/pty/_pty_input_relay.py +0 -0
  364. {running_process-4.0.3 → running_process-4.2.0}/src/running_process/pty/_pty_reader.py +0 -0
  365. {running_process-4.0.3 → running_process-4.2.0}/src/running_process/pty/_pty_wait_for.py +0 -0
  366. {running_process-4.0.3 → running_process-4.2.0}/src/running_process/pty/_terminal_strip.py +0 -0
  367. {running_process-4.0.3 → running_process-4.2.0}/src/running_process/pty/_types.py +0 -0
  368. {running_process-4.0.3 → running_process-4.2.0}/src/running_process/pty/_wait_input.py +0 -0
  369. {running_process-4.0.3 → running_process-4.2.0}/src/running_process/running_process/__init__.py +0 -0
  370. {running_process-4.0.3 → running_process-4.2.0}/src/running_process/running_process/_classmethod_api.py +0 -0
  371. {running_process-4.0.3 → running_process-4.2.0}/src/running_process/running_process/_core.py +0 -0
  372. {running_process-4.0.3 → running_process-4.2.0}/src/running_process/running_process/_helpers.py +0 -0
  373. {running_process-4.0.3 → running_process-4.2.0}/src/running_process/running_process/_iter.py +0 -0
  374. {running_process-4.0.3 → running_process-4.2.0}/src/running_process/running_process/_subprocess.py +0 -0
  375. {running_process-4.0.3 → running_process-4.2.0}/src/running_process/running_process/_types.py +0 -0
  376. {running_process-4.0.3 → running_process-4.2.0}/src/running_process/running_process/_wait_methods.py +0 -0
  377. {running_process-4.0.3 → running_process-4.2.0}/src/running_process/running_process_manager.py +0 -0
@@ -80,10 +80,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
80
80
  checksum = "7f202df86484c868dbad7eaa557ef785d5c66295e41b460ef922eca0723b842c"
81
81
 
82
82
  [[package]]
83
- name = "autocfg"
84
- version = "1.5.0"
83
+ name = "arrayref"
84
+ version = "0.3.9"
85
+ source = "registry+https://github.com/rust-lang/crates.io-index"
86
+ checksum = "76a2e8124351fda1ef8aaaa3bbd7ebbcb486bbcd4225aca0aa0d84bb2db8fecb"
87
+
88
+ [[package]]
89
+ name = "arrayvec"
90
+ version = "0.7.6"
85
91
  source = "registry+https://github.com/rust-lang/crates.io-index"
86
- checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8"
92
+ checksum = "7c02d123df017efcdfbd739ef81735b36c5ba83ec3c59c80a9d7ecc718f92e50"
87
93
 
88
94
  [[package]]
89
95
  name = "beef"
@@ -103,6 +109,29 @@ version = "2.11.1"
103
109
  source = "registry+https://github.com/rust-lang/crates.io-index"
104
110
  checksum = "c4512299f36f043ab09a583e57bceb5a5aab7a73db1805848e8fef3c9e8c78b3"
105
111
 
112
+ [[package]]
113
+ name = "blake3"
114
+ version = "1.8.5"
115
+ source = "registry+https://github.com/rust-lang/crates.io-index"
116
+ checksum = "0aa83c34e62843d924f905e0f5c866eb1dd6545fc4d719e803d9ba6030371fce"
117
+ dependencies = [
118
+ "arrayref",
119
+ "arrayvec",
120
+ "cc",
121
+ "cfg-if",
122
+ "constant_time_eq",
123
+ "cpufeatures 0.3.0",
124
+ ]
125
+
126
+ [[package]]
127
+ name = "block-buffer"
128
+ version = "0.10.4"
129
+ source = "registry+https://github.com/rust-lang/crates.io-index"
130
+ checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71"
131
+ dependencies = [
132
+ "generic-array",
133
+ ]
134
+
106
135
  [[package]]
107
136
  name = "bytes"
108
137
  version = "1.11.1"
@@ -177,12 +206,36 @@ version = "1.0.5"
177
206
  source = "registry+https://github.com/rust-lang/crates.io-index"
178
207
  checksum = "1d07550c9036bf2ae0c684c4297d503f838287c83c53686d05370d0e139ae570"
179
208
 
209
+ [[package]]
210
+ name = "constant_time_eq"
211
+ version = "0.4.2"
212
+ source = "registry+https://github.com/rust-lang/crates.io-index"
213
+ checksum = "3d52eff69cd5e647efe296129160853a42795992097e8af39800e1060caeea9b"
214
+
180
215
  [[package]]
181
216
  name = "core-foundation-sys"
182
217
  version = "0.8.7"
183
218
  source = "registry+https://github.com/rust-lang/crates.io-index"
184
219
  checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b"
185
220
 
221
+ [[package]]
222
+ name = "cpufeatures"
223
+ version = "0.2.17"
224
+ source = "registry+https://github.com/rust-lang/crates.io-index"
225
+ checksum = "59ed5838eebb26a2bb2e58f6d5b5316989ae9d08bab10e0e6d103e656d1b0280"
226
+ dependencies = [
227
+ "libc",
228
+ ]
229
+
230
+ [[package]]
231
+ name = "cpufeatures"
232
+ version = "0.3.0"
233
+ source = "registry+https://github.com/rust-lang/crates.io-index"
234
+ checksum = "8b2a41393f66f16b0823bb79094d54ac5fbd34ab292ddafb9a0456ac9f87d201"
235
+ dependencies = [
236
+ "libc",
237
+ ]
238
+
186
239
  [[package]]
187
240
  name = "crossbeam-deque"
188
241
  version = "0.8.6"
@@ -208,6 +261,26 @@ version = "0.8.21"
208
261
  source = "registry+https://github.com/rust-lang/crates.io-index"
209
262
  checksum = "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28"
210
263
 
264
+ [[package]]
265
+ name = "crypto-common"
266
+ version = "0.1.7"
267
+ source = "registry+https://github.com/rust-lang/crates.io-index"
268
+ checksum = "78c8292055d1c1df0cce5d180393dc8cce0abec0a7102adb6c7b1eef6016d60a"
269
+ dependencies = [
270
+ "generic-array",
271
+ "typenum",
272
+ ]
273
+
274
+ [[package]]
275
+ name = "digest"
276
+ version = "0.10.7"
277
+ source = "registry+https://github.com/rust-lang/crates.io-index"
278
+ checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292"
279
+ dependencies = [
280
+ "block-buffer",
281
+ "crypto-common",
282
+ ]
283
+
211
284
  [[package]]
212
285
  name = "dirs"
213
286
  version = "6.0.0"
@@ -359,6 +432,16 @@ dependencies = [
359
432
  "slab",
360
433
  ]
361
434
 
435
+ [[package]]
436
+ name = "generic-array"
437
+ version = "0.14.7"
438
+ source = "registry+https://github.com/rust-lang/crates.io-index"
439
+ checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a"
440
+ dependencies = [
441
+ "typenum",
442
+ "version_check",
443
+ ]
444
+
362
445
  [[package]]
363
446
  name = "getrandom"
364
447
  version = "0.2.17"
@@ -440,15 +523,6 @@ dependencies = [
440
523
  "serde_core",
441
524
  ]
442
525
 
443
- [[package]]
444
- name = "indoc"
445
- version = "2.0.7"
446
- source = "registry+https://github.com/rust-lang/crates.io-index"
447
- checksum = "79cf5c93f93228cf8efb3ba362535fb11199ac548a09ce117c9b1adc3030d706"
448
- dependencies = [
449
- "rustversion",
450
- ]
451
-
452
526
  [[package]]
453
527
  name = "interprocess"
454
528
  version = "2.4.2"
@@ -593,15 +667,6 @@ version = "2.8.0"
593
667
  source = "registry+https://github.com/rust-lang/crates.io-index"
594
668
  checksum = "f8ca58f447f06ed17d5fc4043ce1b10dd205e060fb3ce5b979b8ed8e59ff3f79"
595
669
 
596
- [[package]]
597
- name = "memoffset"
598
- version = "0.9.1"
599
- source = "registry+https://github.com/rust-lang/crates.io-index"
600
- checksum = "488016bfae457b036d996092f6cb448677611ce4449e970ceaf42695203f218a"
601
- dependencies = [
602
- "autocfg",
603
- ]
604
-
605
670
  [[package]]
606
671
  name = "miette"
607
672
  version = "7.6.0"
@@ -873,37 +938,32 @@ dependencies = [
873
938
 
874
939
  [[package]]
875
940
  name = "pyo3"
876
- version = "0.23.5"
941
+ version = "0.29.0"
877
942
  source = "registry+https://github.com/rust-lang/crates.io-index"
878
- checksum = "7778bffd85cf38175ac1f545509665d0b9b92a198ca7941f131f85f7a4f9a872"
943
+ checksum = "cd274650b21d4bfc26a0a47587962c1edb425f69287324355cd040c3ea66071c"
879
944
  dependencies = [
880
- "cfg-if",
881
- "indoc",
882
945
  "libc",
883
- "memoffset",
884
946
  "once_cell",
885
947
  "portable-atomic",
886
948
  "pyo3-build-config",
887
949
  "pyo3-ffi",
888
950
  "pyo3-macros",
889
- "unindent",
890
951
  ]
891
952
 
892
953
  [[package]]
893
954
  name = "pyo3-build-config"
894
- version = "0.23.5"
955
+ version = "0.29.0"
895
956
  source = "registry+https://github.com/rust-lang/crates.io-index"
896
- checksum = "94f6cbe86ef3bf18998d9df6e0f3fc1050a8c5efa409bf712e661a4366e010fb"
957
+ checksum = "c5e2a7d2f0d013342f295c048ad19237add5154a55b1c5a254c0ec93d4109078"
897
958
  dependencies = [
898
- "once_cell",
899
959
  "target-lexicon",
900
960
  ]
901
961
 
902
962
  [[package]]
903
963
  name = "pyo3-ffi"
904
- version = "0.23.5"
964
+ version = "0.29.0"
905
965
  source = "registry+https://github.com/rust-lang/crates.io-index"
906
- checksum = "e9f1b4c431c0bb1c8fb0a338709859eed0d030ff6daa34368d3b152a63dfdd8d"
966
+ checksum = "ca85c467da1bbc8d866eea5deff9cf29ea5f7785054a17da36e65bda9c05845b"
907
967
  dependencies = [
908
968
  "libc",
909
969
  "pyo3-build-config",
@@ -911,9 +971,9 @@ dependencies = [
911
971
 
912
972
  [[package]]
913
973
  name = "pyo3-macros"
914
- version = "0.23.5"
974
+ version = "0.29.0"
915
975
  source = "registry+https://github.com/rust-lang/crates.io-index"
916
- checksum = "fbc2201328f63c4710f68abdf653c89d8dbc2858b88c5d88b0ff38a75288a9da"
976
+ checksum = "9ac53762fd065daa3194dd09337a38bd793a188100fd1a9304c4ab312d901771"
917
977
  dependencies = [
918
978
  "proc-macro2",
919
979
  "pyo3-macros-backend",
@@ -923,13 +983,12 @@ dependencies = [
923
983
 
924
984
  [[package]]
925
985
  name = "pyo3-macros-backend"
926
- version = "0.23.5"
986
+ version = "0.29.0"
927
987
  source = "registry+https://github.com/rust-lang/crates.io-index"
928
- checksum = "fca6726ad0f3da9c9de093d6f116a93c1a38e417ed73bf138472cf4064f72028"
988
+ checksum = "4ca3a1557399783172dc5bf39cfca835157732532cba56b71d2292161e53b362"
929
989
  dependencies = [
930
990
  "heck",
931
991
  "proc-macro2",
932
- "pyo3-build-config",
933
992
  "quote",
934
993
  "syn",
935
994
  ]
@@ -1026,13 +1085,15 @@ checksum = "dc897dd8d9e8bd1ed8cdad82b5966c3e0ecae09fb1907d58efaa013543185d0a"
1026
1085
 
1027
1086
  [[package]]
1028
1087
  name = "running-process"
1029
- version = "4.0.3"
1088
+ version = "4.2.0"
1030
1089
  dependencies = [
1031
1090
  "anyhow",
1091
+ "blake3",
1032
1092
  "bytes",
1033
1093
  "clap",
1034
1094
  "dirs",
1035
1095
  "futures-util",
1096
+ "getrandom 0.4.2",
1036
1097
  "interprocess",
1037
1098
  "libc",
1038
1099
  "portable-pty",
@@ -1043,6 +1104,7 @@ dependencies = [
1043
1104
  "rusqlite",
1044
1105
  "serde",
1045
1106
  "serde_json",
1107
+ "sha2",
1046
1108
  "sysinfo",
1047
1109
  "tempfile",
1048
1110
  "test-watchdog",
@@ -1058,7 +1120,7 @@ dependencies = [
1058
1120
 
1059
1121
  [[package]]
1060
1122
  name = "running-process-py"
1061
- version = "4.0.3"
1123
+ version = "4.2.0"
1062
1124
  dependencies = [
1063
1125
  "interprocess",
1064
1126
  "libc",
@@ -1106,12 +1168,6 @@ dependencies = [
1106
1168
  "windows-sys 0.61.2",
1107
1169
  ]
1108
1170
 
1109
- [[package]]
1110
- name = "rustversion"
1111
- version = "1.0.22"
1112
- source = "registry+https://github.com/rust-lang/crates.io-index"
1113
- checksum = "b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d"
1114
-
1115
1171
  [[package]]
1116
1172
  name = "scopeguard"
1117
1173
  version = "1.2.0"
@@ -1187,6 +1243,17 @@ dependencies = [
1187
1243
  "windows-sys 0.61.2",
1188
1244
  ]
1189
1245
 
1246
+ [[package]]
1247
+ name = "sha2"
1248
+ version = "0.10.9"
1249
+ source = "registry+https://github.com/rust-lang/crates.io-index"
1250
+ checksum = "a7507d819769d01a365ab707794a4084392c824f54a7a6a7862f8c3d0892b283"
1251
+ dependencies = [
1252
+ "cfg-if",
1253
+ "cpufeatures 0.2.17",
1254
+ "digest",
1255
+ ]
1256
+
1190
1257
  [[package]]
1191
1258
  name = "sharded-slab"
1192
1259
  version = "0.1.7"
@@ -1284,9 +1351,9 @@ dependencies = [
1284
1351
 
1285
1352
  [[package]]
1286
1353
  name = "target-lexicon"
1287
- version = "0.12.16"
1354
+ version = "0.13.5"
1288
1355
  source = "registry+https://github.com/rust-lang/crates.io-index"
1289
- checksum = "61c41af27dd6d1e27b1b16b489db798443478cef1f06a660c96db617ba5de3b1"
1356
+ checksum = "adb6935a6f5c20170eeceb1a3835a49e12e19d792f6dd344ccc76a985ca5a6ca"
1290
1357
 
1291
1358
  [[package]]
1292
1359
  name = "tempfile"
@@ -1304,6 +1371,9 @@ dependencies = [
1304
1371
  [[package]]
1305
1372
  name = "test-watchdog"
1306
1373
  version = "0.0.0"
1374
+ dependencies = [
1375
+ "libc",
1376
+ ]
1307
1377
 
1308
1378
  [[package]]
1309
1379
  name = "testbins"
@@ -1505,6 +1575,12 @@ dependencies = [
1505
1575
  "tracing-log",
1506
1576
  ]
1507
1577
 
1578
+ [[package]]
1579
+ name = "typenum"
1580
+ version = "1.20.1"
1581
+ source = "registry+https://github.com/rust-lang/crates.io-index"
1582
+ checksum = "b6f5e870be6c3b371b77fe0ee0bafb859fa4964b4404c27de1d380043c4dda20"
1583
+
1508
1584
  [[package]]
1509
1585
  name = "unicode-ident"
1510
1586
  version = "1.0.24"
@@ -1523,12 +1599,6 @@ version = "0.2.6"
1523
1599
  source = "registry+https://github.com/rust-lang/crates.io-index"
1524
1600
  checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853"
1525
1601
 
1526
- [[package]]
1527
- name = "unindent"
1528
- version = "0.2.4"
1529
- source = "registry+https://github.com/rust-lang/crates.io-index"
1530
- checksum = "7264e107f553ccae879d21fbea1d6724ac785e8c3bfc762137959b5802826ef3"
1531
-
1532
1602
  [[package]]
1533
1603
  name = "utf8parse"
1534
1604
  version = "0.2.2"
@@ -3,7 +3,7 @@ resolver = "2"
3
3
  members = ["crates/running-process", "crates/running-process-py", "crates/test-watchdog"]
4
4
 
5
5
  [workspace.package]
6
- version = "4.0.3"
6
+ version = "4.2.0"
7
7
  edition = "2021"
8
8
  rust-version = "1.85"
9
9
  license = "BSD-3-Clause"
@@ -11,10 +11,16 @@ repository = "https://github.com/zackees/running-process"
11
11
  homepage = "https://github.com/zackees/running-process"
12
12
 
13
13
  [workspace.dependencies]
14
- pyo3 = { version = "0.23", features = ["abi3-py310"] }
14
+ pyo3 = { version = "0.29", features = ["abi3-py310"] }
15
15
  rusqlite = { version = "0.32", features = ["bundled"] }
16
16
  thiserror = "2"
17
17
 
18
+ # Phase 0 of #228: workspace-wide lints. `disallowed_methods` is wired
19
+ # through `clippy.toml` at the workspace root so every member crate
20
+ # refuses bincode serialization (broker wire stays prost-only).
21
+ [workspace.lints.clippy]
22
+ disallowed_methods = "deny"
23
+
18
24
  [profile.release]
19
25
  debug = true
20
26
  strip = "none"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: running_process
3
- Version: 4.0.3
3
+ Version: 4.2.0
4
4
  License-File: LICENSE
5
5
  Summary: A Rust-backed subprocess wrapper with split stdout/stderr streaming
6
6
  Home-Page: https://github.com/zackees/running-process
@@ -18,6 +18,18 @@ Project-URL: Repository, https://github.com/zackees/running-process
18
18
 
19
19
  `running-process` is what you wished python's subprocess was. Blazing fast, highly concurrent, huge feature list, dead process tracking, pty support. Built in Rust with a thin python api.
20
20
 
21
+ ## v1 Broker Docs
22
+
23
+ The v1 broker work is documented as a stable spec alongside the implementation:
24
+
25
+ - Core spec: [architecture](docs/v1-architecture-overview.md), [frozen commitments](docs/v1-frozen-commitments.md), [pipe naming](docs/v1-pipe-naming.md), [platform behavior](docs/v1-platform-behavior.md), [security model](docs/v1-security-model.md)
26
+ - Schemas: [wire envelope](docs/v1-wire-envelope.md), [cache manifest](docs/v1-cache-manifest.md), [service definition](docs/v1-service-definition.md), [lifecycle events](docs/v1-lifecycle-events.md)
27
+ - Consumer adoption: [dashboard](docs/v1-consumer-adoption-dashboard.md), [clud](docs/consumer-adoption-clud.md), [zccache](docs/consumer-adoption-zccache.md), [soldr](docs/consumer-adoption-soldr.md), [fbuild](docs/consumer-adoption-fbuild.md)
28
+ - Operations: [broker architecture](docs/v1-broker-architecture.md), [admin verbs](docs/v1-admin-verbs.md), [backend lifecycle](docs/v1-backend-lifecycle.md), [handoff optimization](docs/v1-handoff-optimization.md), [observability](docs/v1-observability.md)
29
+ - Rollout: [policy](docs/v1-rollout-policy.md), [escape hatch](docs/v1-escape-hatch.md), [troubleshooting](docs/v1-troubleshooting.md)
30
+ - Examples: [minimal consumer](examples/minimal-consumer/), [release-handles CLI](examples/release-handles-cli/), [custom isolation](examples/custom-isolation/)
31
+ - Contrib service templates: [systemd](contrib/systemd/running-process-broker-v1.service), [launchd](contrib/launchd/com.zackees.running-process-broker-v1.plist), [Windows service installer](contrib/windows-service/install.ps1)
32
+
21
33
  | Platform | Build | Lint | Unit Test | Integration Test |
22
34
  |----------|-------|------|-----------|------------------|
23
35
  | Linux x86 | [![Build](https://github.com/zackees/running-process/actions/workflows/linux-x86-build.yml/badge.svg)](https://github.com/zackees/running-process/actions/workflows/linux-x86-build.yml) | [![Lint](https://github.com/zackees/running-process/actions/workflows/linux-x86-lint.yml/badge.svg)](https://github.com/zackees/running-process/actions/workflows/linux-x86-lint.yml) | [![Unit Test](https://github.com/zackees/running-process/actions/workflows/linux-x86-unit-test.yml/badge.svg)](https://github.com/zackees/running-process/actions/workflows/linux-x86-unit-test.yml) | [![Integration Test](https://github.com/zackees/running-process/actions/workflows/linux-x86-integration-test.yml/badge.svg)](https://github.com/zackees/running-process/actions/workflows/linux-x86-integration-test.yml) |
@@ -75,6 +87,43 @@ running-process --find-leaks -- python worker.py
75
87
  `--find-leaks` tags the wrapped process tree with a unique originator marker and reports any
76
88
  descendants still alive after the direct child exits.
77
89
 
90
+ ## Cleanup Manifests
91
+
92
+ The `running-process-cleanup` binary reads v1 broker `CacheManifest` files
93
+ without requiring a broker or daemon to be running. Manifests are written in two
94
+ places:
95
+
96
+ - each daemon cache root: `.running-process-manifest.pb`
97
+ - the central registry: `$XDG_DATA_HOME/running-process/manifests/` on Linux,
98
+ `~/Library/Application Support/running-process/manifests/` on macOS, and
99
+ `%APPDATA%\running-process\manifests\` on Windows
100
+
101
+ Destructive commands are dry-run by default. Add `--confirm` to delete selected
102
+ roots:
103
+
104
+ ```bash
105
+ running-process-cleanup list --json
106
+ running-process-cleanup verify --json
107
+ running-process-cleanup prune --dormant-after 30d
108
+ running-process-cleanup prune --dormant-after 30d --confirm
109
+ running-process-cleanup prune --keep-current --keep-last 2
110
+ running-process-cleanup uninstall zccache --keep-config
111
+ running-process-cleanup instances --json
112
+ ```
113
+
114
+ For GitHub Actions cache restores, run verification after `actions/cache@v4`
115
+ restores daemon state. Manifests from a prior runner boot are reported as stale:
116
+
117
+ ```yaml
118
+ - uses: actions/cache@v4
119
+ with:
120
+ path: ~/.local/share/running-process
121
+ key: running-process-${{ runner.os }}-${{ hashFiles('**/Cargo.lock') }}
122
+
123
+ - name: Verify restored running-process manifests
124
+ run: running-process-cleanup verify --json
125
+ ```
126
+
78
127
  ## Pipe-backed API
79
128
 
80
129
  ```python
@@ -4,6 +4,18 @@
4
4
 
5
5
  `running-process` is what you wished python's subprocess was. Blazing fast, highly concurrent, huge feature list, dead process tracking, pty support. Built in Rust with a thin python api.
6
6
 
7
+ ## v1 Broker Docs
8
+
9
+ The v1 broker work is documented as a stable spec alongside the implementation:
10
+
11
+ - Core spec: [architecture](docs/v1-architecture-overview.md), [frozen commitments](docs/v1-frozen-commitments.md), [pipe naming](docs/v1-pipe-naming.md), [platform behavior](docs/v1-platform-behavior.md), [security model](docs/v1-security-model.md)
12
+ - Schemas: [wire envelope](docs/v1-wire-envelope.md), [cache manifest](docs/v1-cache-manifest.md), [service definition](docs/v1-service-definition.md), [lifecycle events](docs/v1-lifecycle-events.md)
13
+ - Consumer adoption: [dashboard](docs/v1-consumer-adoption-dashboard.md), [clud](docs/consumer-adoption-clud.md), [zccache](docs/consumer-adoption-zccache.md), [soldr](docs/consumer-adoption-soldr.md), [fbuild](docs/consumer-adoption-fbuild.md)
14
+ - Operations: [broker architecture](docs/v1-broker-architecture.md), [admin verbs](docs/v1-admin-verbs.md), [backend lifecycle](docs/v1-backend-lifecycle.md), [handoff optimization](docs/v1-handoff-optimization.md), [observability](docs/v1-observability.md)
15
+ - Rollout: [policy](docs/v1-rollout-policy.md), [escape hatch](docs/v1-escape-hatch.md), [troubleshooting](docs/v1-troubleshooting.md)
16
+ - Examples: [minimal consumer](examples/minimal-consumer/), [release-handles CLI](examples/release-handles-cli/), [custom isolation](examples/custom-isolation/)
17
+ - Contrib service templates: [systemd](contrib/systemd/running-process-broker-v1.service), [launchd](contrib/launchd/com.zackees.running-process-broker-v1.plist), [Windows service installer](contrib/windows-service/install.ps1)
18
+
7
19
  | Platform | Build | Lint | Unit Test | Integration Test |
8
20
  |----------|-------|------|-----------|------------------|
9
21
  | Linux x86 | [![Build](https://github.com/zackees/running-process/actions/workflows/linux-x86-build.yml/badge.svg)](https://github.com/zackees/running-process/actions/workflows/linux-x86-build.yml) | [![Lint](https://github.com/zackees/running-process/actions/workflows/linux-x86-lint.yml/badge.svg)](https://github.com/zackees/running-process/actions/workflows/linux-x86-lint.yml) | [![Unit Test](https://github.com/zackees/running-process/actions/workflows/linux-x86-unit-test.yml/badge.svg)](https://github.com/zackees/running-process/actions/workflows/linux-x86-unit-test.yml) | [![Integration Test](https://github.com/zackees/running-process/actions/workflows/linux-x86-integration-test.yml/badge.svg)](https://github.com/zackees/running-process/actions/workflows/linux-x86-integration-test.yml) |
@@ -61,6 +73,43 @@ running-process --find-leaks -- python worker.py
61
73
  `--find-leaks` tags the wrapped process tree with a unique originator marker and reports any
62
74
  descendants still alive after the direct child exits.
63
75
 
76
+ ## Cleanup Manifests
77
+
78
+ The `running-process-cleanup` binary reads v1 broker `CacheManifest` files
79
+ without requiring a broker or daemon to be running. Manifests are written in two
80
+ places:
81
+
82
+ - each daemon cache root: `.running-process-manifest.pb`
83
+ - the central registry: `$XDG_DATA_HOME/running-process/manifests/` on Linux,
84
+ `~/Library/Application Support/running-process/manifests/` on macOS, and
85
+ `%APPDATA%\running-process\manifests\` on Windows
86
+
87
+ Destructive commands are dry-run by default. Add `--confirm` to delete selected
88
+ roots:
89
+
90
+ ```bash
91
+ running-process-cleanup list --json
92
+ running-process-cleanup verify --json
93
+ running-process-cleanup prune --dormant-after 30d
94
+ running-process-cleanup prune --dormant-after 30d --confirm
95
+ running-process-cleanup prune --keep-current --keep-last 2
96
+ running-process-cleanup uninstall zccache --keep-config
97
+ running-process-cleanup instances --json
98
+ ```
99
+
100
+ For GitHub Actions cache restores, run verification after `actions/cache@v4`
101
+ restores daemon state. Manifests from a prior runner boot are reported as stale:
102
+
103
+ ```yaml
104
+ - uses: actions/cache@v4
105
+ with:
106
+ path: ~/.local/share/running-process
107
+ key: running-process-${{ runner.os }}-${{ hashFiles('**/Cargo.lock') }}
108
+
109
+ - name: Verify restored running-process manifests
110
+ run: running-process-cleanup verify --json
111
+ ```
112
+
64
113
  ## Pipe-backed API
65
114
 
66
115
  ```python
@@ -7,6 +7,12 @@ license.workspace = true
7
7
  repository.workspace = true
8
8
  homepage.workspace = true
9
9
  description = "Subprocess and PTY runtime for the running-process project"
10
+ readme = "README.md"
11
+
12
+ [lints]
13
+ # Phase 0 of #228: pick up the workspace-wide `disallowed_methods =
14
+ # "deny"` so bincode serialization is rejected at compile time.
15
+ workspace = true
10
16
 
11
17
  [[bin]]
12
18
  # Wave 4 of #165: PM2-style supervisor CLI absorbed from
@@ -31,6 +37,24 @@ required-features = ["daemon"]
31
37
  name = "daemon-trampoline"
32
38
  path = "src/bin/trampoline.rs"
33
39
 
40
+ [[bin]]
41
+ name = "running-process-cleanup"
42
+ path = "src/bin/running-process-cleanup.rs"
43
+ required-features = ["client"]
44
+
45
+ [[bin]]
46
+ name = "running-process-broker-v1"
47
+ path = "src/bin/running-process-broker-v1.rs"
48
+ required-features = ["daemon"]
49
+
50
+ [[example]]
51
+ # Dev-only evidence harness for #387: deploys the real broker binary plus
52
+ # a separate backend process and measures the opt-in handle-passing
53
+ # handoff against the reconnect fallback. Never shipped; see
54
+ # docs/v1-handoff-optimization.md for the recorded numbers.
55
+ name = "handoff_rollout_evidence"
56
+ required-features = ["client"]
57
+
34
58
  [features]
35
59
  # Final feature scheme per #165:
36
60
  # * `core` — always-available API (spawn / pty / containment).
@@ -44,22 +68,40 @@ path = "src/bin/trampoline.rs"
44
68
  default = ["client"]
45
69
  core = []
46
70
  telemetry = []
47
- client = ["dep:prost", "dep:prost-types", "dep:interprocess", "dep:dirs", "dep:anyhow", "dep:clap"]
71
+ client = ["dep:prost", "dep:prost-types", "dep:interprocess", "dep:dirs", "dep:anyhow", "dep:clap", "dep:blake3", "dep:sha2", "dep:getrandom"]
72
+ # Opt-in async client surface for tokio daemons (#414). Adds async
73
+ # variants of `BackendHandle::probe_with_service` and `FrameClient`
74
+ # on top of the existing blocking surface. The synchronous probe and
75
+ # frame wire is the wire-of-record; the async layer wraps each
76
+ # round-trip in `tokio::task::spawn_blocking` so the caller's task
77
+ # yields the runtime worker thread without us duplicating the v1
78
+ # wire against `AsyncRead`/`AsyncWrite`. That keeps the tokio
79
+ # footprint minimal — only `rt` + `time` are required.
80
+ client-async = [
81
+ "client",
82
+ "dep:tokio",
83
+ ]
48
84
  daemon = [
49
85
  "client",
86
+ "client-async",
50
87
  "interprocess/tokio",
51
88
  "dep:tokio", "dep:tokio-util", "dep:bytes", "dep:futures-util",
89
+ "tokio/full",
52
90
  "dep:tracing", "dep:tracing-subscriber",
53
91
  "dep:rusqlite", "dep:toml",
54
92
  ]
55
93
  originator-scan = [] # used by running-process-py for cwd-tagging
94
+ # #415: consumer-consumable conformance test kit
95
+ # (`crate::test_support::conformance`). Off by default; consumers opt in
96
+ # from their `dev-dependencies`.
97
+ test-support = ["client"]
56
98
 
57
99
  [dependencies]
58
100
  libc = "0.2"
59
101
  portable-pty = "0.9"
60
102
  sysinfo = "0.30"
61
103
  thiserror = { workspace = true }
62
- winapi = { version = "0.3", features = ["errhandlingapi", "fileapi", "handleapi", "ioapiset", "jobapi2", "namedpipeapi", "processthreadsapi", "winnt", "minwindef", "windef", "winuser", "consoleapi", "processenv", "synchapi", "winbase", "wincon", "tlhelp32"] }
104
+ winapi = { version = "0.3", features = ["errhandlingapi", "fileapi", "handleapi", "ioapiset", "jobapi2", "namedpipeapi", "processthreadsapi", "winnt", "minwindef", "windef", "winuser", "consoleapi", "processenv", "synchapi", "winbase", "wincon", "tlhelp32", "securitybaseapi", "winerror", "sysinfoapi"] }
63
105
  # Wave 4 of #165: client-feature deps. All optional so the always-on
64
106
  # `core` API stays a minimal-dep leaf.
65
107
  prost = { version = "0.14", optional = true }
@@ -69,8 +111,19 @@ dirs = { version = "6", optional = true }
69
111
  # Used by the `runpm` PM2-style supervisor CLI (src/bin/runpm.rs).
70
112
  anyhow = { version = "1", optional = true }
71
113
  clap = { version = "4", features = ["derive"], optional = true }
114
+ # Phase 1 of #228 (issue #230): broker user-SID hashing in
115
+ # `src/broker/lifecycle/sid.rs`. blake3 is small (no_std-capable,
116
+ # no transitive deps beyond `arrayref`/`arrayvec` and `cc`-built SIMD).
117
+ blake3 = { version = "1", optional = true }
118
+ sha2 = { version = "0.10", optional = true }
119
+ getrandom = { version = "0.4", optional = true }
72
120
  # Wave 5 of #165: daemon-feature deps. All optional.
73
- tokio = { version = "1", features = ["full"], optional = true }
121
+ # tokio: `client-async` (#414) only needs the `rt` (spawn_blocking)
122
+ # and `time` (`tokio::time::timeout`) features; the `daemon` feature
123
+ # layers `tokio/full` on top below. Cargo unifies feature sets, so
124
+ # any consumer enabling both ends up with the daemon footprint
125
+ # exactly as before.
126
+ tokio = { version = "1", default-features = false, features = ["rt", "time"], optional = true }
74
127
  tokio-util = { version = "0.7", features = ["codec"], optional = true }
75
128
  bytes = { version = "1", optional = true }
76
129
  futures-util = { version = "0.3", features = ["sink"], optional = true }
@@ -94,6 +147,9 @@ prost-build = "0.14"
94
147
  protox = "0.9"
95
148
 
96
149
  [dev-dependencies]
150
+ # Platform-default service-definition dir tests (#386) assert against
151
+ # the same `dirs` resolution the loader uses, not hardcoded strings.
152
+ dirs = "6"
97
153
  serde_json = "1"
98
154
  tempfile = "3"
99
155
  test-watchdog = { path = "../test-watchdog" }
@@ -108,11 +164,13 @@ test-watchdog = { path = "../test-watchdog" }
108
164
  windows-sys = { version = "0.59", features = [
109
165
  "Win32_Foundation",
110
166
  "Win32_Security",
167
+ "Win32_Security_Authorization",
111
168
  "Win32_Storage_FileSystem",
112
169
  "Win32_System_Console",
113
170
  "Win32_System_IO",
114
171
  "Win32_System_Memory",
115
172
  "Win32_System_Pipes",
173
+ "Win32_System_Registry",
116
174
  "Win32_System_Threading",
117
175
  "Win32_System_Diagnostics_Debug",
118
176
  ] }