Files

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 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