29 lines
2.2 KiB
Markdown
29 lines
2.2 KiB
Markdown
## Why
|
|
|
|
Generated Run currently comes online, registers, and then waits for Platform to assign lifecycle jobs before a game process can exist. That inverts the intended ownership model: Run is the machine-side lifecycle owner, Platform should follow Run-reported facts, and plugins should only declare how Run initializes, installs dependencies, verifies readiness, and starts the game.
|
|
|
|
## What Changes
|
|
|
|
- **BREAKING** Treat generated Run startup as an autonomous lifecycle bootstrap driven by plugin-declared lifecycle assets and the server deployment definition embedded in the generated package.
|
|
- Stop using accepted generated Run registration as a Platform trigger to enqueue `process.start` or `process.status` reconciliation jobs.
|
|
- Add a bounded autonomous lifecycle plan to generated Run distribution build input so the independent Run package can self-bootstrap without waiting for `/run/jobs/claim` work.
|
|
- Keep Platform as the registry, authorization, audit, and projection surface: Platform receives Run heartbeats, logs, lifecycle reports, and process facts, then updates visible server state from those Run-owned facts.
|
|
- Preserve Platform-owned distribution builds and component key security; generated Runs still never receive distribution-build authority.
|
|
|
|
## Capabilities
|
|
|
|
### New Capabilities
|
|
|
|
- `run-autonomous-lifecycle-owner`: Generated Run owns plugin-declared bootstrap/start behavior and Platform follows Run-reported observed state.
|
|
|
|
### Modified Capabilities
|
|
|
|
- `platform-side-distribution-builds`: Generated Run packages must include the bounded autonomous lifecycle plan required for Run to bootstrap itself.
|
|
|
|
## Impact
|
|
|
|
- `AGENTS.md`, `platform/protocol/*`, and OpenSpec contracts must stop describing Platform as the lifecycle bootstrap dispatcher for generated Runs.
|
|
- `platform/` distribution build input and tests gain an autonomous lifecycle plan sourced from plugin lifecycle declarations and server deployment settings.
|
|
- `platform/service/control.go` stops enqueueing registration-time lifecycle/status jobs for generated Runs.
|
|
- The independent `run` repository must implement plan consumption and autonomous execution; this repository must not re-add a `run/` source tree.
|