Skip to content

Add generation-safe local management for warm workers - #5

Merged
michaelishri merged 5 commits into
mainfrom
codex/warm-worker-control
Sep 26, 2026
Merged

michaelishri merged 5 commits into
mainfrom
codex/warm-worker-control

Conversation

@michaelishri

@michaelishri michaelishri commented Sep 25, 2026 •

Copy link
Copy Markdown
Owner

Warm credential workers need targeted cancellation that preserves idle siblings and cannot let an old request stop a replacement. This adds opt-in Unix management protocol v1 with private same-UID sockets, random per-launch generations, conditional restart and confirmed process-group cleanup before replacement. Clean recycling is opt-in through restartOnSuccess; clearEnv supplies an explicit child environment. Controllable targets must be configured, noncritical and automatically restarted.

The branch incorporates audited main d9ad573 (Gonner v0.1.0) and resolves the lifecycle overlap through the shared execution service. Each launch receives its own restart-request channel and grace period; exact child waiting, stable initial readiness, secure credentials/log handling, signal-error propagation and bounded output drainage are preserved. Normal shutdown retains the configured global/process grace. The audited Go 1.26.7 and x/sys v0.48.0 pins remain unchanged. See docs/management.md.

Validation at 6cb05577ca71f4c930544b797da63e4bfcb0d565: GitHub CI covers Linux and macOS module/format/build/vet/race tests, Python release-tool tests, Linux PID-1/capability integration, and source plus all four release-binary vulnerability scans. Local checks also passed. New integration coverage exercises targeted grace, confirmed forced-descendant reaping, sibling preservation and stale-generation rejection with Gonner running as container PID 1. Local qualification containers were removed after testing.

The helper implementation, including merged PR #4, separately passed its full Jenkins qualification, including native amd64 lifecycle and approved emulated ARM64 compatibility. Those release fixtures use the explicitly qualified ancestor pin ca6caedd4c869c92de2ef2bd4942ea09a23fae44; updating the helper's supervisor pin requires its own compatibility run. This PR does not silently change an existing consumer pin.

Tracks POC-446/450 and 1PA-2. No release publication, service deployment or live credential acceptance is included.

@michaelishri
michaelishri marked this pull request as ready for review September 25, 2026 13:22
@michaelishri
michaelishri merged commit 6e5a73d into main Sep 26, 2026
3 checks passed
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