Problem
st2 eval supervision is an all-team boolean. A bare supervise causes every absent team seat to be reconciled from spec on each wait tick.
That is too broad for a recovery eval which intentionally interrupts one worker:
- a deterministic controller that exits is also eligible for relaunch, risking duplicate orchestration effects;
- the eval cannot declare that only the interrupted worker should recover; and
- cells fall back to invoking
pty restart -y --force from inside another managed PTY.
The PTY nesting guard is intentional. Requiring --force here is a symptom that eval fault injection is using the wrong surface, not a PTY bug.
Current source makes the boundary explicit: Eval::supervise is a bool, and the wait tick reconciles the complete specs set.
Required behavior
Provide a runner-owned way for an eval to select which seats are supervised and to inject an intentional interruption into one selected seat.
The exact KDL is open, but the contract should ensure:
- only declared selected seats are eligible for recovery;
- a control/controller seat is not relaunched merely because another worker is under test;
- recovery is respawn-from-spec with the complete effective environment;
- the eval can prove a changed process incarnation for the selected seat; and
- no nested PTY attach or
--force guardrail bypass is required.
This is an eval-harness capability, not a change to production catalog reconciliation.
Related: #29, #30, #77, #82.
Problem
st2 evalsupervision is an all-team boolean. A baresupervisecauses every absent team seat to be reconciled from spec on each wait tick.That is too broad for a recovery eval which intentionally interrupts one worker:
pty restart -y --forcefrom inside another managed PTY.The PTY nesting guard is intentional. Requiring
--forcehere is a symptom that eval fault injection is using the wrong surface, not a PTY bug.Current source makes the boundary explicit:
Eval::superviseis a bool, and the wait tick reconciles the completespecsset.Required behavior
Provide a runner-owned way for an eval to select which seats are supervised and to inject an intentional interruption into one selected seat.
The exact KDL is open, but the contract should ensure:
--forceguardrail bypass is required.This is an eval-harness capability, not a change to production catalog reconciliation.
Related: #29, #30, #77, #82.