Skip to content

Release devloop 0.9.2#8

Merged
pasunboneleve merged 3 commits into
mainfrom
release/v0.9.2
Jul 1, 2026
Merged

Release devloop 0.9.2#8
pasunboneleve merged 3 commits into
mainfrom
release/v0.9.2

Conversation

@pasunboneleve

Copy link
Copy Markdown
Owner

Summary

  • start managed processes in Unix process groups and terminate groups on stop/restart/shutdown
  • replace Beads repository guidance with Kata
  • release 0.9.2 from the changelog

Validation

  • cargo fmt --check
  • cargo test
  • cargo clippy --all-targets --all-features -- -D warnings
  • cargo build
  • ./scripts/ci-smoke.sh

Release notes

[0.9.2] - 2026-07-01

Fixed

  • Managed processes are now started in their own Unix process groups
    and stopped as groups, so child processes spawned by a managed command
    do not survive stop_process, restart_process, or ctrl-c
    shutdown.

Full Changelog: v0.9.1...v0.9.2

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.
@pasunboneleve pasunboneleve merged commit c2a9e98 into main Jul 1, 2026
2 checks passed
@pasunboneleve pasunboneleve deleted the release/v0.9.2 branch July 1, 2026 08:01
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant