running-process 4.8.0__tar.gz → 4.8.2__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 (500) hide show
  1. {running_process-4.8.0 → running_process-4.8.2}/Cargo.lock +9 -9
  2. {running_process-4.8.0 → running_process-4.8.2}/Cargo.toml +1 -1
  3. {running_process-4.8.0 → running_process-4.8.2}/PKG-INFO +1 -1
  4. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/Cargo.toml +1 -1
  5. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/src/bin/running-process-broker-v2.rs +69 -38
  6. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/src/broker/protocol_v2/client_compat.rs +84 -0
  7. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/tests/broker_v2_acceptance_test.rs +136 -13
  8. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process-py/Cargo.toml +2 -2
  9. {running_process-4.8.0 → running_process-4.8.2}/pyproject.toml +1 -1
  10. {running_process-4.8.0 → running_process-4.8.2}/src/running_process/__init__.py +1 -1
  11. {running_process-4.8.0 → running_process-4.8.2}/LICENSE +0 -0
  12. {running_process-4.8.0 → running_process-4.8.2}/README.md +0 -0
  13. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/README.md +0 -0
  14. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/build.rs +0 -0
  15. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/examples/handoff_rollout_evidence.rs +0 -0
  16. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/proto/broker_v1/broker_v1_admin.proto +0 -0
  17. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/proto/broker_v1/broker_v1_envelope.proto +0 -0
  18. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/proto/broker_v1/broker_v1_manifest.proto +0 -0
  19. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/proto/broker_v1/broker_v1_service_def.proto +0 -0
  20. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/proto/broker_v1/buf.yaml +0 -0
  21. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/proto/broker_v2/broker_v2_control.proto +0 -0
  22. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/proto/broker_v2/broker_v2_manifest.proto +0 -0
  23. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/proto/broker_v2/broker_v2_service_def.proto +0 -0
  24. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/proto/daemon.proto +0 -0
  25. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/src/README.md +0 -0
  26. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/src/bin/README.md +0 -0
  27. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/src/bin/daemon.rs +0 -0
  28. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/src/bin/running-process-broker-v1.rs +0 -0
  29. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/src/bin/running-process-broker-v2/tests.rs +0 -0
  30. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/src/bin/running-process-cleanup.rs +0 -0
  31. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/src/bin/runpm.rs +0 -0
  32. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/src/bin/trampoline.rs +0 -0
  33. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/src/boot_autostart/linux.rs +0 -0
  34. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/src/boot_autostart/macos.rs +0 -0
  35. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/src/boot_autostart/mod.rs +0 -0
  36. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/src/boot_autostart/windows.rs +0 -0
  37. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/src/broker/README.md +0 -0
  38. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/src/broker/adopt.rs +0 -0
  39. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/src/broker/backend_handle.rs +0 -0
  40. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/src/broker/backend_lib/accept_handed_off.rs +0 -0
  41. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/src/broker/backend_lib/mod.rs +0 -0
  42. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/src/broker/backend_lib/wire.rs +0 -0
  43. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/src/broker/backend_lifecycle/identity.rs +0 -0
  44. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/src/broker/backend_lifecycle/mod.rs +0 -0
  45. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/src/broker/backend_lifecycle/probe.rs +0 -0
  46. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/src/broker/backend_lifecycle/probe_async.rs +0 -0
  47. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/src/broker/backend_lifecycle/verify_pid.rs +0 -0
  48. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/src/broker/backend_sdk/frame_client.rs +0 -0
  49. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/src/broker/backend_sdk/frame_client_async.rs +0 -0
  50. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/src/broker/backend_sdk/identity_file.rs +0 -0
  51. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/src/broker/backend_sdk/mod.rs +0 -0
  52. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/src/broker/backend_sdk/mux.rs +0 -0
  53. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/src/broker/broker_http_discovery.rs +0 -0
  54. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/src/broker/broker_http_port.rs +0 -0
  55. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/src/broker/broker_http_server.rs +0 -0
  56. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/src/broker/broker_owned_bind/tests.rs +0 -0
  57. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/src/broker/broker_owned_bind.rs +0 -0
  58. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/src/broker/brokered_backend.rs +0 -0
  59. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/src/broker/builders.rs +0 -0
  60. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/src/broker/capabilities.rs +0 -0
  61. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/src/broker/client.rs +0 -0
  62. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/src/broker/client_v2.rs +0 -0
  63. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/src/broker/doctor.rs +0 -0
  64. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/src/broker/fs_health.rs +0 -0
  65. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/src/broker/get_http_endpoint_dispatch.rs +0 -0
  66. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/src/broker/host_identity.rs +0 -0
  67. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/src/broker/http_endpoint_registry.rs +0 -0
  68. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/src/broker/lifecycle/crash_dump.rs +0 -0
  69. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/src/broker/lifecycle/mod.rs +0 -0
  70. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/src/broker/lifecycle/names.rs +0 -0
  71. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/src/broker/lifecycle/names_v2.rs +0 -0
  72. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/src/broker/lifecycle/privilege.rs +0 -0
  73. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/src/broker/lifecycle/process_tree.rs +0 -0
  74. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/src/broker/lifecycle/sid.rs +0 -0
  75. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/src/broker/manifest.rs +0 -0
  76. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/src/broker/mod.rs +0 -0
  77. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/src/broker/protocol/frame_ext.rs +0 -0
  78. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/src/broker/protocol/framing.rs +0 -0
  79. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/src/broker/protocol/mod.rs +0 -0
  80. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/src/broker/protocol/registry.rs +0 -0
  81. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/src/broker/protocol/validate.rs +0 -0
  82. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/src/broker/protocol_v2/README.md +0 -0
  83. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/src/broker/protocol_v2/backend_handle.rs +0 -0
  84. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/src/broker/protocol_v2/io.rs +0 -0
  85. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/src/broker/protocol_v2/loader.rs +0 -0
  86. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/src/broker/protocol_v2/manifest_io.rs +0 -0
  87. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/src/broker/protocol_v2/mod.rs +0 -0
  88. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/src/broker/secure_dir.rs +0 -0
  89. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/src/broker/server/admin.rs +0 -0
  90. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/src/broker/server/backend_endpoint_allocator.rs +0 -0
  91. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/src/broker/server/backend_launcher.rs +0 -0
  92. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/src/broker/server/backend_registry.rs +0 -0
  93. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/src/broker/server/broadcast.rs +0 -0
  94. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/src/broker/server/connection.rs +0 -0
  95. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/src/broker/server/control_socket.rs +0 -0
  96. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/src/broker/server/deadline_stream.rs +0 -0
  97. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/src/broker/server/fd_pressure.rs +0 -0
  98. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/src/broker/server/handoff/ack.rs +0 -0
  99. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/src/broker/server/handoff/fallback.rs +0 -0
  100. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/src/broker/server/handoff/handoff_token.rs +0 -0
  101. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/src/broker/server/handoff/latency.rs +0 -0
  102. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/src/broker/server/handoff/mod.rs +0 -0
  103. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/src/broker/server/handoff/orchestrate.rs +0 -0
  104. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/src/broker/server/handoff/orchestrate_unix.rs +0 -0
  105. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/src/broker/server/handoff/pending.rs +0 -0
  106. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/src/broker/server/handoff/unix.rs +0 -0
  107. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/src/broker/server/handoff/windows.rs +0 -0
  108. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/src/broker/server/handoff/wire.rs +0 -0
  109. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/src/broker/server/handoff_serve.rs +0 -0
  110. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/src/broker/server/hello_handler.rs +0 -0
  111. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/src/broker/server/hello_router.rs +0 -0
  112. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/src/broker/server/idle_coord.rs +0 -0
  113. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/src/broker/server/instance.rs +0 -0
  114. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/src/broker/server/metrics.rs +0 -0
  115. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/src/broker/server/mod.rs +0 -0
  116. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/src/broker/server/perf_guard.rs +0 -0
  117. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/src/broker/server/recovery.rs +0 -0
  118. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/src/broker/server/serve.rs +0 -0
  119. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/src/broker/server/service_def_loader.rs +0 -0
  120. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/src/broker/server/spawn_coordinator.rs +0 -0
  121. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/src/broker/server/spawn_wait.rs +0 -0
  122. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/src/broker/server/trace_context.rs +0 -0
  123. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/src/broker/server/version_allow_list.rs +0 -0
  124. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/src/cleanup/instances.rs +0 -0
  125. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/src/cleanup/list.rs +0 -0
  126. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/src/cleanup/mod.rs +0 -0
  127. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/src/cleanup/prune.rs +0 -0
  128. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/src/cleanup/uninstall.rs +0 -0
  129. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/src/cleanup/verify_artifacts.rs +0 -0
  130. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/src/cleanup/verify_basic.rs +0 -0
  131. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/src/client/client.rs +0 -0
  132. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/src/client/deadline_io.rs +0 -0
  133. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/src/client/mod.rs +0 -0
  134. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/src/client/observer.rs +0 -0
  135. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/src/client/paths.rs +0 -0
  136. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/src/client/pipe_session.rs +0 -0
  137. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/src/client/pty_session.rs +0 -0
  138. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/src/client/telemetry.rs +0 -0
  139. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/src/console_detect.rs +0 -0
  140. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/src/containment.rs +0 -0
  141. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/src/daemon/attach_stream.rs +0 -0
  142. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/src/daemon/config.rs +0 -0
  143. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/src/daemon/emergency_reserve.rs +0 -0
  144. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/src/daemon/handlers/core.rs +0 -0
  145. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/src/daemon/handlers/kill.rs +0 -0
  146. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/src/daemon/handlers/maintenance.rs +0 -0
  147. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/src/daemon/handlers/mod.rs +0 -0
  148. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/src/daemon/handlers/observer.rs +0 -0
  149. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/src/daemon/handlers/pipe_sessions_handlers.rs +0 -0
  150. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/src/daemon/handlers/process_tree.rs +0 -0
  151. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/src/daemon/handlers/pty_sessions_handlers.rs +0 -0
  152. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/src/daemon/handlers/registry_handlers.rs +0 -0
  153. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/src/daemon/handlers/services.rs +0 -0
  154. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/src/daemon/handlers/spawn.rs +0 -0
  155. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/src/daemon/handlers/telemetry.rs +0 -0
  156. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/src/daemon/handlers/util.rs +0 -0
  157. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/src/daemon/handlers_tests.rs +0 -0
  158. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/src/daemon/idle.rs +0 -0
  159. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/src/daemon/mod.rs +0 -0
  160. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/src/daemon/observer_registry.rs +0 -0
  161. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/src/daemon/pipe_attach_stream.rs +0 -0
  162. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/src/daemon/pipe_sessions.rs +0 -0
  163. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/src/daemon/platform/mod.rs +0 -0
  164. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/src/daemon/platform/unix.rs +0 -0
  165. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/src/daemon/platform/windows.rs +0 -0
  166. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/src/daemon/pty_sessions.rs +0 -0
  167. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/src/daemon/reaper.rs +0 -0
  168. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/src/daemon/registry.rs +0 -0
  169. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/src/daemon/runtime_gc.rs +0 -0
  170. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/src/daemon/server.rs +0 -0
  171. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/src/daemon/services.rs +0 -0
  172. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/src/daemon/services_snapshot.rs +0 -0
  173. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/src/daemon/shadow.rs +0 -0
  174. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/src/daemon/telemetry.rs +0 -0
  175. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/src/environment.rs +0 -0
  176. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/src/helpers.rs +0 -0
  177. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/src/lib.rs +0 -0
  178. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/src/maintenance/mod.rs +0 -0
  179. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/src/maintenance/release_handles.rs +0 -0
  180. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/src/observer/cmdline.rs +0 -0
  181. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/src/observer/descendants_linux.rs +0 -0
  182. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/src/observer/descendants_macos.rs +0 -0
  183. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/src/observer/file_handles.rs +0 -0
  184. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/src/observer/mod.rs +0 -0
  185. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/src/observer/pid_identity.rs +0 -0
  186. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/src/observer/tests.rs +0 -0
  187. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/src/originator.rs +0 -0
  188. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/src/probe/capture.rs +0 -0
  189. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/src/probe/client.rs +0 -0
  190. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/src/probe/mod.rs +0 -0
  191. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/src/probe/worker.rs +0 -0
  192. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/src/process_tree.rs +0 -0
  193. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/src/pty/backend.rs +0 -0
  194. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/src/pty/conpty_passthrough/child.rs +0 -0
  195. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/src/pty/conpty_passthrough/conpty_acquire.rs +0 -0
  196. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/src/pty/conpty_passthrough/conpty_api.rs +0 -0
  197. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/src/pty/conpty_passthrough/conpty_sidecar_hashes.rs +0 -0
  198. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/src/pty/conpty_passthrough/mod.rs +0 -0
  199. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/src/pty/conpty_passthrough/pipes.rs +0 -0
  200. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/src/pty/conpty_passthrough/proc_thread_attr.rs +0 -0
  201. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/src/pty/conpty_passthrough/pseudoconsole.rs +0 -0
  202. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/src/pty/conpty_passthrough/win_version.rs +0 -0
  203. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/src/pty/mod.rs +0 -0
  204. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/src/pty/native_pty_process.rs +0 -0
  205. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/src/pty/pty_posix.rs +0 -0
  206. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/src/pty/pty_windows.rs +0 -0
  207. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/src/pty/terminal_input.rs +0 -0
  208. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/src/public_symbols.rs +0 -0
  209. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/src/runpm_config.rs +0 -0
  210. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/src/rust_debug.rs +0 -0
  211. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/src/spawn.rs +0 -0
  212. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/src/spawn_imp_unix.rs +0 -0
  213. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/src/spawn_imp_windows.rs +0 -0
  214. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/src/systemd_killmode.rs +0 -0
  215. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/src/terminal_graphics.rs +0 -0
  216. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/src/test_support/conformance.rs +0 -0
  217. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/src/test_support/mod.rs +0 -0
  218. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/src/tests.rs +0 -0
  219. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/src/types.rs +0 -0
  220. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/src/unix.rs +0 -0
  221. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/src/window_icon/ico.rs +0 -0
  222. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/src/window_icon/mod.rs +0 -0
  223. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/src/window_icon/osc.rs +0 -0
  224. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/src/window_icon/tests_support.rs +0 -0
  225. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/src/window_icon/x11.rs +0 -0
  226. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/src/windows.rs +0 -0
  227. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/tests/README.md +0 -0
  228. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/tests/backend_launch_budget_test.rs +0 -0
  229. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/tests/broker/admin.rs +0 -0
  230. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/tests/broker/backend_endpoint_allocator.rs +0 -0
  231. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/tests/broker/backend_handle_boot_id.rs +0 -0
  232. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/tests/broker/backend_handle_common.rs +0 -0
  233. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/tests/broker/backend_handle_dead.rs +0 -0
  234. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/tests/broker/backend_handle_probe.rs +0 -0
  235. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/tests/broker/backend_handle_recycled.rs +0 -0
  236. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/tests/broker/backend_registry.rs +0 -0
  237. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/tests/broker/backend_sdk.rs +0 -0
  238. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/tests/broker/backend_sdk_async.rs +0 -0
  239. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/tests/broker/broadcast_release_handles.rs +0 -0
  240. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/tests/broker/builders.rs +0 -0
  241. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/tests/broker/client.rs +0 -0
  242. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/tests/broker/conformance_kit.rs +0 -0
  243. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/tests/broker/connection.rs +0 -0
  244. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/tests/broker/contrib_templates.rs +0 -0
  245. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/tests/broker/docs_escape_hatch.rs +0 -0
  246. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/tests/broker/docs_index.rs +0 -0
  247. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/tests/broker/doctor.rs +0 -0
  248. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/tests/broker/fd_pressure.rs +0 -0
  249. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/tests/broker/framing.rs +0 -0
  250. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/tests/broker/golden_bytes.rs +0 -0
  251. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/tests/broker/handoff_ack_deadline.rs +0 -0
  252. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/tests/broker/handoff_adopted_backend.rs +0 -0
  253. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/tests/broker/handoff_adoption.rs +0 -0
  254. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/tests/broker/handoff_backend_lib.rs +0 -0
  255. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/tests/broker/handoff_capability.rs +0 -0
  256. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/tests/broker/handoff_cross_os_acceptance.rs +0 -0
  257. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/tests/broker/handoff_end_to_end_acceptance.rs +0 -0
  258. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/tests/broker/handoff_fallback_perm_denied.rs +0 -0
  259. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/tests/broker/handoff_latency.rs +0 -0
  260. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/tests/broker/handoff_latency_e2e.rs +0 -0
  261. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/tests/broker/handoff_orchestrate.rs +0 -0
  262. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/tests/broker/handoff_serve_e2e.rs +0 -0
  263. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/tests/broker/handoff_serve_latency.rs +0 -0
  264. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/tests/broker/handoff_token_mismatch.rs +0 -0
  265. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/tests/broker/handoff_transport.rs +0 -0
  266. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/tests/broker/handoff_under_load.rs +0 -0
  267. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/tests/broker/handoff_unix_e2e_orchestrate.rs +0 -0
  268. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/tests/broker/handoff_unix_orchestrate.rs +0 -0
  269. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/tests/broker/handoff_windows_duplicate_handle.rs +0 -0
  270. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/tests/broker/handoff_windows_orchestrate.rs +0 -0
  271. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/tests/broker/handoff_wire.rs +0 -0
  272. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/tests/broker/hello_concurrent.rs +0 -0
  273. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/tests/broker/hello_handler.rs +0 -0
  274. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/tests/broker/hello_rate_limit.rs +0 -0
  275. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/tests/broker/hello_router.rs +0 -0
  276. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/tests/broker/hello_service_unknown.rs +0 -0
  277. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/tests/broker/hello_skip.rs +0 -0
  278. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/tests/broker/hello_version_blocked.rs +0 -0
  279. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/tests/broker/idle_coord.rs +0 -0
  280. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/tests/broker/instance.rs +0 -0
  281. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/tests/broker/instance_isolation.rs +0 -0
  282. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/tests/broker/into_backend_io.rs +0 -0
  283. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/tests/broker/lifecycle_event_size.rs +0 -0
  284. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/tests/broker/main.rs +0 -0
  285. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/tests/broker/manifest_atomic.rs +0 -0
  286. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/tests/broker/manifest_boot_id.rs +0 -0
  287. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/tests/broker/manifest_corruption.rs +0 -0
  288. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/tests/broker/manifest_roundtrip.rs +0 -0
  289. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/tests/broker/metrics_names_frozen.rs +0 -0
  290. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/tests/broker/names.rs +0 -0
  291. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/tests/broker/peer_creds_drop.rs +0 -0
  292. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/tests/broker/perf_guard.rs +0 -0
  293. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/tests/broker/process_tree_lifecycle.rs +0 -0
  294. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/tests/broker/proto_field_numbers.rs +0 -0
  295. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/tests/broker/proto_roundtrip.rs +0 -0
  296. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/tests/broker/recovery_one_retry.rs +0 -0
  297. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/tests/broker/serve.rs +0 -0
  298. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/tests/broker/service_def_loader.rs +0 -0
  299. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/tests/broker/servicedef_cli.rs +0 -0
  300. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/tests/broker/socket_common.rs +0 -0
  301. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/tests/broker/spawn_coordinator.rs +0 -0
  302. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/tests/broker/spawn_wait.rs +0 -0
  303. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/tests/broker/toy_three_party.rs +0 -0
  304. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/tests/broker/trace_propagation.rs +0 -0
  305. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/tests/broker/verify_pid/linux.rs +0 -0
  306. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/tests/broker/verify_pid/macos.rs +0 -0
  307. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/tests/broker/verify_pid/mod.rs +0 -0
  308. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/tests/broker/verify_pid/windows.rs +0 -0
  309. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/tests/broker_http_aggregator_test.rs +0 -0
  310. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/tests/broker_owned_bind_failed_launch_test.rs +0 -0
  311. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/tests/broker_owned_bind_handover_test.rs +0 -0
  312. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/tests/broker_v2_scaffold_accepts_connection.rs +0 -0
  313. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/tests/brokered_backend_ui.rs +0 -0
  314. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/tests/cleanup/cleanup_list.rs +0 -0
  315. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/tests/cleanup/cleanup_prune_confirm.rs +0 -0
  316. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/tests/cleanup/cleanup_prune_dryrun.rs +0 -0
  317. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/tests/cleanup/cleanup_uninstall.rs +0 -0
  318. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/tests/cleanup/cleanup_verify_artifacts.rs +0 -0
  319. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/tests/cleanup/common.rs +0 -0
  320. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/tests/cleanup/main.rs +0 -0
  321. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/tests/common/mitm_stdin.rs +0 -0
  322. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/tests/common/mod.rs +0 -0
  323. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/tests/containment_test.rs +0 -0
  324. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/tests/daemon_autostart_test.rs +0 -0
  325. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/tests/daemon_backlog_accumulation_test.rs +0 -0
  326. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/tests/daemon_cross_process_pty_attach_test.rs +0 -0
  327. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/tests/daemon_fast_ctrl_c_handoff_test.rs +0 -0
  328. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/tests/daemon_integration/compiler_wrap_seam_test.rs +0 -0
  329. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/tests/daemon_integration/env_replace_test.rs +0 -0
  330. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/tests/daemon_integration/main.rs +0 -0
  331. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/tests/daemon_integration/more_tests.rs +0 -0
  332. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/tests/daemon_integration/stdout_seam_test.rs +0 -0
  333. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/tests/daemon_non_tty_attach_test.rs +0 -0
  334. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/tests/daemon_pipe_session_attach_test.rs +0 -0
  335. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/tests/daemon_pty_session_attach_test.rs +0 -0
  336. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/tests/daemon_resize_rpc_test.rs +0 -0
  337. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/tests/daemon_runpm_save_resurrect.rs +0 -0
  338. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/tests/daemon_runpm_service_stubs.rs +0 -0
  339. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/tests/daemon_sessions_bulk_ops_test.rs +0 -0
  340. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/tests/daemon_sessions_log_test.rs +0 -0
  341. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/tests/daemon_tee_ring_test.rs +0 -0
  342. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/tests/daemon_termination_outcome_test.rs +0 -0
  343. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/tests/daemon_tree_kill_test.rs +0 -0
  344. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/tests/daemon_tui_repaint_test.rs +0 -0
  345. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/tests/fs_adversarial_test.rs +0 -0
  346. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/tests/interactive_pty_session_test.rs +0 -0
  347. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/tests/maintenance/main.rs +0 -0
  348. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/tests/maintenance/release_handles_unix.rs +0 -0
  349. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/tests/maintenance/release_handles_windows.rs +0 -0
  350. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/tests/observer_launched_tree_test.rs +0 -0
  351. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/tests/originator_test.rs +0 -0
  352. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/tests/probe_facade_surface.rs +0 -0
  353. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/tests/process_core_test.rs +0 -0
  354. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/tests/pty_conhost_job_test.rs +0 -0
  355. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/tests/pty_master_public_api_test.rs +0 -0
  356. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/tests/pty_mitm_paste_test.rs +0 -0
  357. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/tests/pty_mitm_stdin_test.rs +0 -0
  358. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/tests/pty_unix_teardown_test.rs +0 -0
  359. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/tests/runpm_boot_autostart_fixtures.rs +0 -0
  360. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/tests/runpm_toml_config.rs +0 -0
  361. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/tests/security/cross_user_release_handles.rs +0 -0
  362. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/tests/security/cve_dbus_2014_3639.rs +0 -0
  363. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/tests/security/cve_dbus_2023_34969.rs +0 -0
  364. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/tests/security/cve_sccache_2023_1521.rs +0 -0
  365. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/tests/security/deferred_runtime_surfaces.rs +0 -0
  366. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/tests/security/dependency_surface.rs +0 -0
  367. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/tests/security/fuzz_campaign_signoff.rs +0 -0
  368. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/tests/security/main.rs +0 -0
  369. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/tests/security/manifest_tamper_detection.rs +0 -0
  370. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/tests/security/no_network_dependencies.rs +0 -0
  371. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/tests/security/pipe_name_validation.rs +0 -0
  372. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/tests/security/pipe_squatting.rs +0 -0
  373. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/tests/security/security_audit_workflow.rs +0 -0
  374. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/tests/security/security_fuzz_workflow.rs +0 -0
  375. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/tests/security/service_name_validation.rs +0 -0
  376. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/tests/security/unsafe_inventory.rs +0 -0
  377. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/tests/security/wanted_version_shell_injection.rs +0 -0
  378. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/tests/security/wanted_version_traversal.rs +0 -0
  379. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/tests/spawn_test.rs +0 -0
  380. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/tests/terminal_graphics_capabilities_test.rs +0 -0
  381. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/tests/ui/brokered_backend_state_in_bind.rs +0 -0
  382. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/tests/ui/brokered_backend_state_in_bind.stderr +0 -0
  383. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process/tests/window_icon_x11_test.rs +0 -0
  384. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process-probe/Cargo.toml +0 -0
  385. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process-probe/build.rs +0 -0
  386. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process-probe/proto/probe_diag_v1/probe_diag_v1_capture.proto +0 -0
  387. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process-probe/proto/probe_diag_v1/probe_diag_v1_common.proto +0 -0
  388. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process-probe/proto/probe_diag_v1/probe_diag_v1_crash.proto +0 -0
  389. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process-probe/proto/probe_diag_v1/probe_diag_v1_envelope.proto +0 -0
  390. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process-probe/proto/probe_diag_v1/probe_diag_v1_profile.proto +0 -0
  391. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process-probe/proto/probe_diag_v1/probe_diag_v1_query.proto +0 -0
  392. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process-probe/proto/probe_diag_v1/probe_diag_v1_registration.proto +0 -0
  393. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process-probe/proto/probe_diag_v1/probe_diag_v1_symbols.proto +0 -0
  394. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process-probe/src/bin/helper.rs +0 -0
  395. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process-probe/src/crash/mod.rs +0 -0
  396. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process-probe/src/crash/spool.rs +0 -0
  397. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process-probe/src/inject_unix.rs +0 -0
  398. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process-probe/src/inject_windows.rs +0 -0
  399. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process-probe/src/lib.rs +0 -0
  400. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process-probe/src/snapshot/attribute.rs +0 -0
  401. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process-probe/src/snapshot/linux.rs +0 -0
  402. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process-probe/src/snapshot/macos.rs +0 -0
  403. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process-probe/src/snapshot/mod.rs +0 -0
  404. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process-probe/src/snapshot/modules.rs +0 -0
  405. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process-probe/src/snapshot/stream.rs +0 -0
  406. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process-probe/src/snapshot/unwind.rs +0 -0
  407. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process-probe/src/snapshot/windows.rs +0 -0
  408. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process-probe/tests/crash_handler_test.rs +0 -0
  409. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process-probe/tests/fixtures/probe_diag_v1_capture.bin +0 -0
  410. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process-probe/tests/fixtures/probe_diag_v1_crash.bin +0 -0
  411. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process-probe/tests/fixtures/probe_diag_v1_profile.bin +0 -0
  412. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process-probe/tests/fixtures/probe_diag_v1_register.bin +0 -0
  413. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process-probe/tests/inject_smoke_test.rs +0 -0
  414. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process-probe/tests/interposer_diagnostic_windows.rs +0 -0
  415. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process-probe/tests/interposer_integration_linux.rs +0 -0
  416. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process-probe/tests/interposer_integration_macos.rs +0 -0
  417. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process-probe/tests/interposer_integration_windows.rs +0 -0
  418. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process-probe/tests/wire_roundtrip.rs +0 -0
  419. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process-py/src/containment.rs +0 -0
  420. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process-py/src/daemon_client.rs +0 -0
  421. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process-py/src/debug_traces.rs +0 -0
  422. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process-py/src/helpers.rs +0 -0
  423. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process-py/src/idle_detector.rs +0 -0
  424. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process-py/src/lib.rs +0 -0
  425. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process-py/src/metrics.rs +0 -0
  426. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process-py/src/originator.rs +0 -0
  427. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process-py/src/pid_tracking.rs +0 -0
  428. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process-py/src/priority.rs +0 -0
  429. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process-py/src/probe.rs +0 -0
  430. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process-py/src/process.rs +0 -0
  431. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process-py/src/process_tree.rs +0 -0
  432. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process-py/src/pty_buffer.rs +0 -0
  433. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process-py/src/pty_process.rs +0 -0
  434. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process-py/src/public_symbols.rs +0 -0
  435. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process-py/src/py_native_process.rs +0 -0
  436. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process-py/src/registry.rs +0 -0
  437. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process-py/src/signal_bool.rs +0 -0
  438. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process-py/src/terminal_input.rs +0 -0
  439. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process-py/src/tests/control_churn.rs +0 -0
  440. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process-py/src/tests/expect_match.rs +0 -0
  441. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process-py/src/tests/idle_detector.rs +0 -0
  442. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process-py/src/tests/mod.rs +0 -0
  443. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process-py/src/tests/parse_command.rs +0 -0
  444. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process-py/src/tests/process_tree.rs +0 -0
  445. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process-py/src/tests/pty_buffer.rs +0 -0
  446. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process-py/src/tests/pty_process.rs +0 -0
  447. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process-py/src/tests/registry.rs +0 -0
  448. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process-py/src/tests/signal_bool.rs +0 -0
  449. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process-py/src/tests/terminal_input.rs +0 -0
  450. {running_process-4.8.0 → running_process-4.8.2}/crates/running-process-py/src/window_icon.rs +0 -0
  451. {running_process-4.8.0 → running_process-4.8.2}/crates/test-watchdog/Cargo.toml +0 -0
  452. {running_process-4.8.0 → running_process-4.8.2}/crates/test-watchdog/src/lib.rs +0 -0
  453. {running_process-4.8.0 → running_process-4.8.2}/crates/test-watchdog/src/probe_dump.rs +0 -0
  454. {running_process-4.8.0 → running_process-4.8.2}/crates/test-watchdog/tests/hang_dump.rs +0 -0
  455. {running_process-4.8.0 → running_process-4.8.2}/src/running_process/assets/example.txt +0 -0
  456. {running_process-4.8.0 → running_process-4.8.2}/src/running_process/asyncio_adapter.py +0 -0
  457. {running_process-4.8.0 → running_process-4.8.2}/src/running_process/cli.py +0 -0
  458. {running_process-4.8.0 → running_process-4.8.2}/src/running_process/command_render.py +0 -0
  459. {running_process-4.8.0 → running_process-4.8.2}/src/running_process/compat.py +0 -0
  460. {running_process-4.8.0 → running_process-4.8.2}/src/running_process/console_encoding.py +0 -0
  461. {running_process-4.8.0 → running_process-4.8.2}/src/running_process/daemon.py +0 -0
  462. {running_process-4.8.0 → running_process-4.8.2}/src/running_process/dashboard.py +0 -0
  463. {running_process-4.8.0 → running_process-4.8.2}/src/running_process/dump_paths.py +0 -0
  464. {running_process-4.8.0 → running_process-4.8.2}/src/running_process/exit_status.py +0 -0
  465. {running_process-4.8.0 → running_process-4.8.2}/src/running_process/expect.py +0 -0
  466. {running_process-4.8.0 → running_process-4.8.2}/src/running_process/interrupt_handler.py +0 -0
  467. {running_process-4.8.0 → running_process-4.8.2}/src/running_process/launch.py +0 -0
  468. {running_process-4.8.0 → running_process-4.8.2}/src/running_process/line_iterator.py +0 -0
  469. {running_process-4.8.0 → running_process-4.8.2}/src/running_process/output_formatter.py +0 -0
  470. {running_process-4.8.0 → running_process-4.8.2}/src/running_process/priority.py +0 -0
  471. {running_process-4.8.0 → running_process-4.8.2}/src/running_process/probe.py +0 -0
  472. {running_process-4.8.0 → running_process-4.8.2}/src/running_process/process_utils.py +0 -0
  473. {running_process-4.8.0 → running_process-4.8.2}/src/running_process/processor_cli.py +0 -0
  474. {running_process-4.8.0 → running_process-4.8.2}/src/running_process/pty/__init__.py +0 -0
  475. {running_process-4.8.0 → running_process-4.8.2}/src/running_process/pty/_command.py +0 -0
  476. {running_process-4.8.0 → running_process-4.8.2}/src/running_process/pty/_console_io.py +0 -0
  477. {running_process-4.8.0 → running_process-4.8.2}/src/running_process/pty/_errors.py +0 -0
  478. {running_process-4.8.0 → running_process-4.8.2}/src/running_process/pty/_idle_helpers.py +0 -0
  479. {running_process-4.8.0 → running_process-4.8.2}/src/running_process/pty/_idle_state.py +0 -0
  480. {running_process-4.8.0 → running_process-4.8.2}/src/running_process/pty/_interactive.py +0 -0
  481. {running_process-4.8.0 → running_process-4.8.2}/src/running_process/pty/_process_helpers.py +0 -0
  482. {running_process-4.8.0 → running_process-4.8.2}/src/running_process/pty/_pseudo_terminal.py +0 -0
  483. {running_process-4.8.0 → running_process-4.8.2}/src/running_process/pty/_pty_expect.py +0 -0
  484. {running_process-4.8.0 → running_process-4.8.2}/src/running_process/pty/_pty_idle_waiter.py +0 -0
  485. {running_process-4.8.0 → running_process-4.8.2}/src/running_process/pty/_pty_input_relay.py +0 -0
  486. {running_process-4.8.0 → running_process-4.8.2}/src/running_process/pty/_pty_reader.py +0 -0
  487. {running_process-4.8.0 → running_process-4.8.2}/src/running_process/pty/_pty_wait_for.py +0 -0
  488. {running_process-4.8.0 → running_process-4.8.2}/src/running_process/pty/_terminal_strip.py +0 -0
  489. {running_process-4.8.0 → running_process-4.8.2}/src/running_process/pty/_types.py +0 -0
  490. {running_process-4.8.0 → running_process-4.8.2}/src/running_process/pty/_wait_input.py +0 -0
  491. {running_process-4.8.0 → running_process-4.8.2}/src/running_process/running_process/__init__.py +0 -0
  492. {running_process-4.8.0 → running_process-4.8.2}/src/running_process/running_process/_classmethod_api.py +0 -0
  493. {running_process-4.8.0 → running_process-4.8.2}/src/running_process/running_process/_core.py +0 -0
  494. {running_process-4.8.0 → running_process-4.8.2}/src/running_process/running_process/_helpers.py +0 -0
  495. {running_process-4.8.0 → running_process-4.8.2}/src/running_process/running_process/_iter.py +0 -0
  496. {running_process-4.8.0 → running_process-4.8.2}/src/running_process/running_process/_subprocess.py +0 -0
  497. {running_process-4.8.0 → running_process-4.8.2}/src/running_process/running_process/_types.py +0 -0
  498. {running_process-4.8.0 → running_process-4.8.2}/src/running_process/running_process/_wait_methods.py +0 -0
  499. {running_process-4.8.0 → running_process-4.8.2}/src/running_process/running_process_manager.py +0 -0
  500. {running_process-4.8.0 → running_process-4.8.2}/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.0"
2054
+ version = "4.8.2"
2055
2055
  dependencies = [
2056
2056
  "anyhow",
2057
2057
  "blake3",
@@ -2093,7 +2093,7 @@ dependencies = [
2093
2093
 
2094
2094
  [[package]]
2095
2095
  name = "running-process-probe"
2096
- version = "4.8.0"
2096
+ version = "4.8.2"
2097
2097
  dependencies = [
2098
2098
  "blake3",
2099
2099
  "crash-handler",
@@ -2116,7 +2116,7 @@ dependencies = [
2116
2116
 
2117
2117
  [[package]]
2118
2118
  name = "running-process-probe-daemon"
2119
- version = "4.8.0"
2119
+ version = "4.8.2"
2120
2120
  dependencies = [
2121
2121
  "axum",
2122
2122
  "blake3",
@@ -2150,21 +2150,21 @@ dependencies = [
2150
2150
 
2151
2151
  [[package]]
2152
2152
  name = "running-process-probe-interposer-linux"
2153
- version = "4.8.0"
2153
+ version = "4.8.2"
2154
2154
  dependencies = [
2155
2155
  "libc",
2156
2156
  ]
2157
2157
 
2158
2158
  [[package]]
2159
2159
  name = "running-process-probe-interposer-macos"
2160
- version = "4.8.0"
2160
+ version = "4.8.2"
2161
2161
  dependencies = [
2162
2162
  "libc",
2163
2163
  ]
2164
2164
 
2165
2165
  [[package]]
2166
2166
  name = "running-process-probe-interposer-windows"
2167
- version = "4.8.0"
2167
+ version = "4.8.2"
2168
2168
  dependencies = [
2169
2169
  "retour",
2170
2170
  "windows-sys 0.59.0",
@@ -2172,7 +2172,7 @@ dependencies = [
2172
2172
 
2173
2173
  [[package]]
2174
2174
  name = "running-process-probe-worker"
2175
- version = "4.8.0"
2175
+ version = "4.8.2"
2176
2176
  dependencies = [
2177
2177
  "addr2line",
2178
2178
  "lzma-rs",
@@ -2190,7 +2190,7 @@ dependencies = [
2190
2190
 
2191
2191
  [[package]]
2192
2192
  name = "running-process-py"
2193
- version = "4.8.0"
2193
+ version = "4.8.2"
2194
2194
  dependencies = [
2195
2195
  "interprocess",
2196
2196
  "libc",
@@ -2205,7 +2205,7 @@ dependencies = [
2205
2205
 
2206
2206
  [[package]]
2207
2207
  name = "running-process-win-gnu-bridge"
2208
- version = "4.8.0"
2208
+ version = "4.8.2"
2209
2209
  dependencies = [
2210
2210
  "windows-sys 0.59.0",
2211
2211
  ]
@@ -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.0"
10
+ version = "4.8.2"
11
11
  edition = "2021"
12
12
  rust-version = "1.85"
13
13
  license = "BSD-3-Clause"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: running_process
3
- Version: 4.8.0
3
+ Version: 4.8.2
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
@@ -167,7 +167,7 @@ sha2 = { version = "0.10", optional = true }
167
167
  getrandom = { version = "0.4", optional = true }
168
168
  # #633: schema-only dependency for the probe client facade. default-features
169
169
  # off keeps the interposer/injection machinery out — see the `probe` feature.
170
- running-process-probe = { path = "../running-process-probe", version = "4.8.0", default-features = false, optional = true }
170
+ running-process-probe = { path = "../running-process-probe", version = "4.8.2", default-features = false, optional = true }
171
171
  # Wave 5 of #165: daemon-feature deps. All optional.
172
172
  # tokio: `client-async` (#414) only needs the `rt` (spawn_blocking)
173
173
  # and `time` (`tokio::time::timeout`) features; the `daemon` feature
@@ -71,6 +71,41 @@ use running_process::broker::protocol_v2::ServiceDefinitionLoader;
71
71
  use running_process::broker::server::deadline_stream::{hello_read_deadline, DeadlineStream};
72
72
  use running_process::broker::server::service_def_loader::ServiceDefinitionError;
73
73
 
74
+ /// Write a line to stdout, tolerating a reader that has gone away.
75
+ ///
76
+ /// `println!` panics if the underlying write fails, and the failure it
77
+ /// hits in practice is `EPIPE` — someone was reading the broker's stdout
78
+ /// and stopped. That is not a broker fault and it is not a reason to
79
+ /// abort: the broker's job is brokering, and its progress chatter is
80
+ /// diagnostic. Panicking there turns "nobody is reading the log" into a
81
+ /// process exit with status 101 and a backtrace that points at the
82
+ /// logging line rather than at the closed pipe, which is a genuinely
83
+ /// misleading thing to hand an operator.
84
+ ///
85
+ /// This surfaced during the #532 acceptance work: a test whose reader
86
+ /// thread dropped its end of the pipe made the broker exit 101 on
87
+ /// SIGTERM, and the shutdown path looked defective for as long as it took
88
+ /// to notice the panic came from the `println!` announcing the shutdown.
89
+ ///
90
+ /// Errors are dropped rather than reported: the reporting channel for a
91
+ /// failed stdout write would be stderr, which in the case that matters
92
+ /// (a supervisor closing both) has failed too.
93
+ macro_rules! say {
94
+ ($($arg:tt)*) => {{
95
+ use std::io::Write as _;
96
+ let _ = writeln!(std::io::stdout(), $($arg)*);
97
+ }};
98
+ }
99
+
100
+ /// [`say!`] for stderr. Same reasoning: a diagnostic that kills the
101
+ /// process when it cannot be delivered is worse than a lost diagnostic.
102
+ macro_rules! say_err {
103
+ ($($arg:tt)*) => {{
104
+ use std::io::Write as _;
105
+ let _ = writeln!(std::io::stderr(), $($arg)*);
106
+ }};
107
+ }
108
+
74
109
  /// Default program name when `--program` is not passed. Matches the
75
110
  /// slice-3c scaffold so existing integration tests keep working.
76
111
  const DEFAULT_PROGRAM: &str = "broker-v2-scaffold";
@@ -302,18 +337,18 @@ fn main() -> ExitCode {
302
337
  let opts = match parse_cli(&args) {
303
338
  Ok(o) => o,
304
339
  Err(msg) => {
305
- eprintln!("{msg}");
340
+ say_err!("{msg}");
306
341
  return ExitCode::from(2);
307
342
  }
308
343
  };
309
344
 
310
- println!(
345
+ say!(
311
346
  "running-process-broker-v2 {} (slice 1 of running-process#532)",
312
347
  env!("CARGO_PKG_VERSION")
313
348
  );
314
349
 
315
350
  if opts.no_bind {
316
- println!("running-process-broker-v2 --no-bind: skipping listener bind");
351
+ say!("running-process-broker-v2 --no-bind: skipping listener bind");
317
352
  return ExitCode::SUCCESS;
318
353
  }
319
354
 
@@ -326,7 +361,7 @@ fn main() -> ExitCode {
326
361
  // env var is honored for isolated test environments that
327
362
  // intentionally exercise privileged startup behavior.
328
363
  if let Err(err) = refuse_privileged_run() {
329
- eprintln!(
364
+ say_err!(
330
365
  "running-process-broker-v2: refusing privileged startup: {err}. \
331
366
  Run as an unprivileged user, or set \
332
367
  RUNNING_PROCESS_BROKER_ALLOW_PRIVILEGED=1 for isolated test environments only."
@@ -337,7 +372,7 @@ fn main() -> ExitCode {
337
372
  let sid = match user_sid_hash() {
338
373
  Ok(s) => s,
339
374
  Err(err) => {
340
- eprintln!("running-process-broker-v2: user_sid_hash failed: {err}");
375
+ say_err!("running-process-broker-v2: user_sid_hash failed: {err}");
341
376
  return ExitCode::from(1);
342
377
  }
343
378
  };
@@ -345,7 +380,7 @@ fn main() -> ExitCode {
345
380
  let pipe_name = match v2_program_pipe(&opts.program, &sid, SCAFFOLD_PIPE_IDX) {
346
381
  Ok(n) => n,
347
382
  Err(err) => {
348
- eprintln!("running-process-broker-v2: v2_program_pipe failed: {err}");
383
+ say_err!("running-process-broker-v2: v2_program_pipe failed: {err}");
349
384
  return ExitCode::from(1);
350
385
  }
351
386
  };
@@ -353,7 +388,7 @@ fn main() -> ExitCode {
353
388
  let socket_path = match resolve_socket_path(&pipe_name) {
354
389
  Ok(p) => p,
355
390
  Err(err) => {
356
- eprintln!("running-process-broker-v2: resolve_socket_path failed: {err}");
391
+ say_err!("running-process-broker-v2: resolve_socket_path failed: {err}");
357
392
  return ExitCode::from(1);
358
393
  }
359
394
  };
@@ -366,7 +401,7 @@ fn main() -> ExitCode {
366
401
  let path = std::path::Path::new(&socket_path);
367
402
  if let Some(parent) = path.parent() {
368
403
  if let Err(err) = std::fs::create_dir_all(parent) {
369
- eprintln!(
404
+ say_err!(
370
405
  "running-process-broker-v2: create_dir_all({}) failed: {err}",
371
406
  parent.display()
372
407
  );
@@ -379,7 +414,7 @@ fn main() -> ExitCode {
379
414
  let name = match wrap_socket_name(&socket_path) {
380
415
  Ok(n) => n,
381
416
  Err(err) => {
382
- eprintln!("running-process-broker-v2: wrap_socket_name failed: {err}");
417
+ say_err!("running-process-broker-v2: wrap_socket_name failed: {err}");
383
418
  return ExitCode::from(1);
384
419
  }
385
420
  };
@@ -393,7 +428,7 @@ fn main() -> ExitCode {
393
428
  // socket. Surface a directly-actionable message instead of
394
429
  // a raw OS error string.
395
430
  if is_already_bound_error(&err) {
396
- eprintln!(
431
+ say_err!(
397
432
  "running-process-broker-v2: another broker is already \
398
433
  bound at {socket_path} (program={}). Refusing to \
399
434
  start to avoid double-bind. Stop the other broker \
@@ -403,18 +438,18 @@ fn main() -> ExitCode {
403
438
  );
404
439
  return ExitCode::from(75); // EX_TEMPFAIL — supervisor can retry after the other broker exits
405
440
  }
406
- eprintln!("running-process-broker-v2: bind failed at {socket_path}: {err}");
441
+ say_err!("running-process-broker-v2: bind failed at {socket_path}: {err}");
407
442
  return ExitCode::from(1);
408
443
  }
409
444
  };
410
445
 
411
- println!(
446
+ say!(
412
447
  "running-process-broker-v2 bound at {socket_path} (program={}, mode={})",
413
448
  opts.program,
414
449
  if opts.once { "once" } else { "loop" }
415
450
  );
416
451
  if let Err(err) = std::io::stdout().flush() {
417
- eprintln!("running-process-broker-v2: stdout flush failed: {err}");
452
+ say_err!("running-process-broker-v2: stdout flush failed: {err}");
418
453
  }
419
454
 
420
455
  let loader = Arc::new(ServiceDefinitionLoader::default_root());
@@ -431,7 +466,7 @@ fn main() -> ExitCode {
431
466
  // HTTP page is an optional view onto it. Exiting here would
432
467
  // take out working brokering because a diagnostic page could
433
468
  // not bind.
434
- eprintln!("running-process-broker-v2: HTTP surface disabled: {err}");
469
+ say_err!("running-process-broker-v2: HTTP surface disabled: {err}");
435
470
  None
436
471
  }
437
472
  }
@@ -446,13 +481,13 @@ fn main() -> ExitCode {
446
481
  } else {
447
482
  #[cfg(unix)]
448
483
  if let Err(err) = install_shutdown_signal_handlers() {
449
- eprintln!("running-process-broker-v2: install shutdown signal handlers failed: {err}");
484
+ say_err!("running-process-broker-v2: install shutdown signal handlers failed: {err}");
450
485
  return ExitCode::from(1);
451
486
  }
452
487
 
453
488
  #[cfg(windows)]
454
489
  if let Err(err) = install_shutdown_console_handler() {
455
- eprintln!("running-process-broker-v2: install console control handler failed: {err}");
490
+ say_err!("running-process-broker-v2: install console control handler failed: {err}");
456
491
  return ExitCode::from(1);
457
492
  }
458
493
 
@@ -486,12 +521,12 @@ fn main() -> ExitCode {
486
521
  if let Err(err) =
487
522
  broker_http_discovery::unpublish_http_port(&broker_v2_runtime_dir(), &started.program)
488
523
  {
489
- eprintln!("running-process-broker-v2: could not unpublish HTTP endpoint: {err}");
524
+ say_err!("running-process-broker-v2: could not unpublish HTTP endpoint: {err}");
490
525
  }
491
526
  }
492
527
 
493
528
  if let Err(err) = flush_coverage_profile() {
494
- eprintln!("running-process-broker-v2: coverage profile flush failed: {err}");
529
+ say_err!("running-process-broker-v2: coverage profile flush failed: {err}");
495
530
  return ExitCode::from(1);
496
531
  }
497
532
 
@@ -534,12 +569,12 @@ fn start_http_surface(
534
569
  broker_http_discovery::publish_http_port(runtime_dir, program, local.ip(), local.port())
535
570
  .map_err(|e| format!("publishing {local} to {}: {e}", runtime_dir.display()))?;
536
571
 
537
- println!(
572
+ say!(
538
573
  "running-process-broker-v2 http at http://{local} (published to {})",
539
574
  path.display()
540
575
  );
541
576
  if let Err(err) = std::io::stdout().flush() {
542
- eprintln!("running-process-broker-v2: stdout flush failed: {err}");
577
+ say_err!("running-process-broker-v2: stdout flush failed: {err}");
543
578
  }
544
579
 
545
580
  // Detached: the surface is read-only and stateless, so there is nothing
@@ -552,7 +587,7 @@ fn start_http_surface(
552
587
  // One failed accept says nothing about the next. Logging and
553
588
  // continuing keeps a transient error from silently taking the
554
589
  // page down for the life of the broker.
555
- eprintln!("running-process-broker-v2: http accept failed: {err}");
590
+ say_err!("running-process-broker-v2: http accept failed: {err}");
556
591
  }
557
592
  })
558
593
  .map_err(|e| format!("spawning the http thread: {e}"))?;
@@ -574,7 +609,7 @@ fn accept_loop(
574
609
  http: Option<Arc<HttpEndpointRegistry>>,
575
610
  ) -> ExitCode {
576
611
  if let Err(err) = listener.set_nonblocking(ListenerNonblockingMode::Accept) {
577
- eprintln!("running-process-broker-v2: set listener nonblocking failed: {err}");
612
+ say_err!("running-process-broker-v2: set listener nonblocking failed: {err}");
578
613
  return ExitCode::from(1);
579
614
  }
580
615
 
@@ -590,7 +625,7 @@ fn accept_loop(
590
625
  let n = inflight.fetch_add(1, Ordering::SeqCst);
591
626
  if n >= max_inflight {
592
627
  inflight.fetch_sub(1, Ordering::SeqCst);
593
- eprintln!(
628
+ say_err!(
594
629
  "running-process-broker-v2: at MAX_INFLIGHT_HANDLERS ({max_inflight}); dropping connection",
595
630
  );
596
631
  drop(stream);
@@ -615,19 +650,17 @@ fn accept_loop(
615
650
  if let Some(reg) = &http_handler {
616
651
  reg.track(svc.clone());
617
652
  }
618
- println!(
619
- "running-process-broker-v2 Hello service={svc:?} negotiated",
620
- )
653
+ say!("running-process-broker-v2 Hello service={svc:?} negotiated",)
621
654
  }
622
655
  Err(err) => {
623
- eprintln!("running-process-broker-v2 Hello handler failed: {err}")
656
+ say_err!("running-process-broker-v2 Hello handler failed: {err}")
624
657
  }
625
658
  }
626
659
  });
627
660
  match spawn_result {
628
661
  Ok(handler) => handlers.push(handler),
629
662
  Err(err) => {
630
- eprintln!(
663
+ say_err!(
631
664
  "running-process-broker-v2: thread spawn failed: {err}; \
632
665
  dropping connection"
633
666
  );
@@ -637,14 +670,14 @@ fn accept_loop(
637
670
  }
638
671
  }
639
672
  Ok(None) => {
640
- println!("running-process-broker-v2: shutdown requested; draining handlers");
673
+ say!("running-process-broker-v2: shutdown requested; draining handlers");
641
674
  drain_handlers(&mut handlers, HANDLER_DRAIN_TIMEOUT);
642
675
  return ExitCode::SUCCESS;
643
676
  }
644
677
  Err(err) => {
645
678
  // accept() errors are typically fatal (listener died);
646
679
  // exit so a supervisor can restart us.
647
- eprintln!("running-process-broker-v2: accept failed: {err}");
680
+ say_err!("running-process-broker-v2: accept failed: {err}");
648
681
  return ExitCode::from(1);
649
682
  }
650
683
  }
@@ -674,7 +707,7 @@ fn reap_finished_handlers(handlers: &mut Vec<thread::JoinHandle<()>>) {
674
707
  if handlers[index].is_finished() {
675
708
  let handler = handlers.swap_remove(index);
676
709
  if handler.join().is_err() {
677
- eprintln!("running-process-broker-v2: handler thread panicked");
710
+ say_err!("running-process-broker-v2: handler thread panicked");
678
711
  }
679
712
  } else {
680
713
  index += 1;
@@ -692,7 +725,7 @@ fn drain_handlers(handlers: &mut Vec<thread::JoinHandle<()>>, timeout: Duration)
692
725
  }
693
726
  reap_finished_handlers(handlers);
694
727
  if !handlers.is_empty() {
695
- eprintln!(
728
+ say_err!(
696
729
  "running-process-broker-v2: handler drain timed out after {timeout:?}; \
697
730
  detaching {} handler(s)",
698
731
  handlers.len()
@@ -709,25 +742,23 @@ fn accept_one(
709
742
  ) -> ExitCode {
710
743
  match listener.accept() {
711
744
  Ok(mut stream) => {
712
- println!("running-process-broker-v2 peer connected (--once)");
745
+ say!("running-process-broker-v2 peer connected (--once)");
713
746
  match handle_hello_with_deadline(&mut stream, &loader) {
714
747
  Ok(svc) => {
715
748
  if let Some(reg) = &http {
716
749
  reg.track(svc.clone());
717
750
  }
718
- println!(
719
- "running-process-broker-v2 Hello for service {svc:?} negotiated; exiting"
720
- );
751
+ say!("running-process-broker-v2 Hello for service {svc:?} negotiated; exiting");
721
752
  ExitCode::SUCCESS
722
753
  }
723
754
  Err(err) => {
724
- eprintln!("running-process-broker-v2: Hello handler failed: {err}");
755
+ say_err!("running-process-broker-v2: Hello handler failed: {err}");
725
756
  ExitCode::from(1)
726
757
  }
727
758
  }
728
759
  }
729
760
  Err(err) => {
730
- eprintln!("running-process-broker-v2: accept failed: {err}");
761
+ say_err!("running-process-broker-v2: accept failed: {err}");
731
762
  ExitCode::from(1)
732
763
  }
733
764
  }
@@ -59,6 +59,31 @@ pub use super::super::adopt::{
59
59
  // Re-export every v1 client symbol zccache consumes.
60
60
  pub use super::super::client::{BackendConnectionRoute, BrokerClientError, RefusalKind};
61
61
 
62
+ /// Classify a v2 broker error the way a v1 consumer classifies a refusal.
63
+ ///
64
+ /// The first piece of the `client_compat` swap described above (#532
65
+ /// criterion 5). Consumers branch on [`RefusalKind`] today — zccache maps
66
+ /// `BrokerV2Error` in exactly one place — so the swap needs the v2 error to
67
+ /// answer the same question before anything else can move.
68
+ ///
69
+ /// `None` means "not a refusal": a dial failure, a framing error, or an I/O
70
+ /// error is a different category, and flattening those into a `RefusalKind`
71
+ /// would tell a caller the broker said no when in fact it was never reached.
72
+ /// That distinction drives retry behaviour, so it is worth the `Option`.
73
+ ///
74
+ /// The mapping itself is deliberately delegated to [`RefusalKind::from_code`]
75
+ /// rather than restated. A second copy of that match is a second thing to
76
+ /// keep in step, and the failure would be silent: a new `ErrorCode` would
77
+ /// classify one way through v1 and another through v2.
78
+ pub fn refusal_kind(error: &super::super::client_v2::BrokerV2Error) -> Option<RefusalKind> {
79
+ match error {
80
+ super::super::client_v2::BrokerV2Error::Refused { details, .. } => {
81
+ Some(RefusalKind::from_code(details.code()))
82
+ }
83
+ _ => None,
84
+ }
85
+ }
86
+
62
87
  #[cfg(test)]
63
88
  mod tests {
64
89
  use super::*;
@@ -66,6 +91,65 @@ mod tests {
66
91
  /// Slice 25-A contract: every v1 broker-client + adopt symbol zccache
67
92
  /// imports is reachable through the v2 namespace at the same TypeId.
68
93
  /// A future upstream rename or fork catches here as a build break.
94
+ fn refused_v2(
95
+ code: crate::broker::protocol::ErrorCode,
96
+ ) -> super::super::super::client_v2::BrokerV2Error {
97
+ let mut refused = crate::broker::protocol::Refused {
98
+ reason: "nope".into(),
99
+ ..Default::default()
100
+ };
101
+ refused.set_code(code);
102
+ super::super::super::client_v2::BrokerV2Error::Refused {
103
+ reason: "nope".into(),
104
+ retry_after_ms: 0,
105
+ details: Box::new(refused),
106
+ }
107
+ }
108
+
109
+ #[test]
110
+ fn a_v2_refusal_classifies_the_same_as_a_v1_one() {
111
+ use crate::broker::protocol::ErrorCode;
112
+ // The property the swap depends on: a consumer branching on
113
+ // `RefusalKind` sees the same answer whichever client produced it.
114
+ // Checked across the whole enum rather than one variant, because a
115
+ // mapping that is right for `ServiceUnknown` and wrong for
116
+ // `RateLimited` still compiles and still looks tested.
117
+ for code in [
118
+ ErrorCode::ErrorVersionUnsupported,
119
+ ErrorCode::ErrorVersionBlocked,
120
+ ErrorCode::ErrorServiceUnknown,
121
+ ErrorCode::ErrorRateLimited,
122
+ ErrorCode::ErrorShuttingDown,
123
+ ] {
124
+ assert_eq!(
125
+ refusal_kind(&refused_v2(code)),
126
+ Some(RefusalKind::from_code(code)),
127
+ "v2 refusal for {code:?} classified differently from v1"
128
+ );
129
+ }
130
+ }
131
+
132
+ #[test]
133
+ fn an_unknown_code_stays_unknown_rather_than_becoming_a_named_refusal() {
134
+ use crate::broker::protocol::ErrorCode;
135
+ // A code this build does not know must arrive as `Other`, not as the
136
+ // nearest named variant. Guessing here would tell a caller the broker
137
+ // said something specific that it did not.
138
+ let kind = refusal_kind(&refused_v2(ErrorCode::Unspecified));
139
+ assert_eq!(kind, Some(RefusalKind::from_code(ErrorCode::Unspecified)));
140
+ assert!(matches!(kind, Some(RefusalKind::Other(_))));
141
+ }
142
+
143
+ #[test]
144
+ fn a_transport_failure_is_not_a_refusal() {
145
+ // The distinction that drives retry behaviour: the broker saying no
146
+ // is not the same as never reaching it. Flattening a dial or I/O
147
+ // error into a `RefusalKind` would report a decision the broker never
148
+ // made.
149
+ let io = super::super::super::client_v2::BrokerV2Error::Io(std::io::Error::other("boom"));
150
+ assert_eq!(refusal_kind(&io), None);
151
+ }
152
+
69
153
  #[test]
70
154
  fn v1_client_adopt_types_are_aliased_under_v2_namespace() {
71
155
  use std::any::TypeId;