2.6 KiB
2.6 KiB
ADDED Requirements
Requirement: Run reports observed managed-process transitions
Generated Run SHALL report each material observed transition of an autonomous supervised server process through the signed lifecycle report channel. A report MUST identify the bound server and Run endpoint and include the generic process state and bounded exit classification where applicable.
Scenario: Autonomous process starts
- WHEN an autonomous generated Run starts its declared supervised process
- THEN Run SHALL report
runningafter supervision is established - AND Platform SHALL project the server lifecycle state from that Run-owned fact
Scenario: Supervised process exits
- WHEN a process supervised by generated Run exits after its initial start report
- THEN Run SHALL report the observed
exitedprocess state and exit classification - AND Platform SHALL project a requested-stop classification as stopped and an unexpected exit as failed
Scenario: Run recovers a managed process journal
- WHEN generated Run starts with a persisted managed-process journal
- THEN it SHALL check the actual operating-system process state before reporting it
- AND it MUST NOT preserve a historical running projection when the recovered process is not alive
Requirement: Lifecycle reports are idempotent observed facts
Platform SHALL accept equivalent Run lifecycle observations idempotently and SHALL reject a stale report that would regress a newer observed process transition for the same managed process.
Scenario: Run retries an exit report
- WHEN Run retries the same observed exit report after a transport failure
- THEN Platform SHALL preserve one equivalent terminal lifecycle projection
- AND the retry MUST NOT change the projection back to running
Scenario: Older running observation arrives late
- WHEN Platform has accepted a newer terminal observation for a managed process
- THEN an older
runningreport for that same process MUST NOT overwrite the terminal projection
Requirement: Run shutdown does not invent server state
Run shutdown handling SHALL report only process facts that Run has observed through its generic supervisor. Loss of a Run process or heartbeat MUST NOT by itself be reported or projected as a stopped game server.
Scenario: Run becomes unavailable while process state is unknown
- WHEN Platform stops receiving heartbeats from a bound Run
- THEN Platform MUST retain the last observed lifecycle fact
- AND it MUST NOT replace that fact with stopped solely because the endpoint is unavailable