## 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 `running` after 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 `exited` process 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 `running` report 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