Release devloop 0.9.2#8
Merged
Merged
Conversation
Context: Managed devloop processes could leave descendant processes alive after `stop_process`, `restart_process`, or ctrl-c shutdown because the runtime only killed the direct Tokio child handle. The release also replaces the repository's old Beads workflow guidance with Kata. Decision: Start every managed process in its own Unix process group and terminate that group from the runtime process adapter. Finalize the changelog and Cargo version for `0.9.2`, with release notes sourced from the changelog. Alternatives considered: Keeping client-side port cleanup in `devloop.toml` would leave the supervisor contract leaky. Targeting individual child PIDs would miss grandchildren and shells that reparent work. Tradeoffs: The implementation targets Unix process groups only. Windows support is intentionally out of scope for this release. Architectural impact: The pure runtime and workflow cores stay unchanged. Process-tree ownership lives in the imperative `ProcessManager` boundary, and the public process configuration schema does not grow a new shutdown option.
Context: macOS PR CI showed the smoke test stalling after the managed server started. The readiness loop had an overall deadline, but a single HTTP request could hang and prevent the loop from retrying or timing out cleanly. Decision: Give each HTTP readiness and liveness probe request a bounded timeout derived from the probe interval and total timeout. Record the fix in the 0.9.2 release notes. Alternatives considered: Changing the CI fixture would hide the runtime failure mode. Increasing the smoke timeout would leave the probe loop able to stall indefinitely. Tradeoffs: Slow probe responses may need a larger configured interval or timeout. The default bound favors making supervision responsive over waiting forever on one request. Architectural impact: The change stays inside the process adapter's probe execution path. The config schema and pure orchestration core remain unchanged.
Context: The v0.9.2 PR CI exposed a fixed-port assumption in the smoke fixture on macOS, and a full parallel test run exposed a temp-file collision in the state tests. Decision: The smoke script now rewrites its temporary fixture copy to use an ephemeral loopback port, and the state test helper adds a process-local counter to generated temp paths. Alternatives considered: Leaving the fixture on port 18081 was simpler, but it kept CI dependent on ambient port availability. Serializing tests would hide the temp-path collision instead of removing it. Tradeoffs: The smoke script now has a small Python port-selection step, but the checked-in fixture remains readable and fixed-port for local inspection. Architectural impact: Release validation no longer depends on a globally available port or same-nanosecond test path uniqueness. Runtime behavior and public interfaces are unchanged.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Validation
Release notes
[0.9.2] - 2026-07-01
Fixed
and stopped as groups, so child processes spawned by a managed command
do not survive
stop_process,restart_process, orctrl-cshutdown.
Full Changelog: v0.9.1...v0.9.2