You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Run each formal raw-ops Gate as one bounded, queryable systemd-supervised job with an immutable candidate/invocation identity. Cloud Assistant may request start, status, or cancellation but must not own the Gate process tree. Controller or Assistant restart must not create an unmanaged Gate; cancellation or abnormal termination must leave Rust shadow inactive and preserve the Python baseline. Persist an explicit terminal receipt that distinguishes passed, failed, and cancelled jobs.
Acceptance criteria
A focused control-plane counterexample proves controller/Cloud Assistant disappearance cannot leave an unmanaged Gate process capable of starting shadow.
Start is single-owner and rejects duplicate jobs for the same candidate; status reports the exact unit, candidate, source, phase, and terminal state.
Cancellation and every non-pass terminal path stop shadow, preserve Python, and cannot produce PASSED.sha256.
The job has a hard overall lifetime covering admission and observation plus cleanup, and systemd owns the complete process tree.
Parent
#447
What to build
Run each formal raw-ops Gate as one bounded, queryable systemd-supervised job with an immutable candidate/invocation identity. Cloud Assistant may request start, status, or cancellation but must not own the Gate process tree. Controller or Assistant restart must not create an unmanaged Gate; cancellation or abnormal termination must leave Rust shadow inactive and preserve the Python baseline. Persist an explicit terminal receipt that distinguishes passed, failed, and cancelled jobs.
Acceptance criteria
Blocked by
None - can start immediately