Files
browser/openspec/changes/move-scum-deployment-lifecycle-to-plugin/proposal.md
T

29 lines
1.8 KiB
Markdown

## Why
The current SCUM deployment flow hardcodes SteamCMD, SCUM executable paths, app id `3792580`, config writes, and start arguments inside platform/run code. That violates the intended boundary: the SCUM plugin should own game lifecycle policy while platform dispatches and run executes generic, bounded actions.
## What Changes
- **BREAKING**: Retire the SCUM-specific `deployment.scum.v1` run capability and the platform-to-run `serverDeploymentPlan` path for SCUM installs/adoptions.
- Move SCUM install/update/start command ownership into the SCUM plugin action bundle.
- Use plugin lifecycle actions for idempotent "install if missing, update if present, then start" behavior.
- Keep platform limited to manifest/action validation, distribution packaging, lifecycle job dispatch, and generic result projection.
- Keep run limited to generic action execution, scoped file/process operations, logs, artifacts, and capability enforcement.
## Capabilities
### New Capabilities
- `plugin-owned-game-lifecycle`: Game plugins own game-specific lifecycle commands, default launch flags, app IDs, executable paths, install/update policies, and pre-start checks.
### Modified Capabilities
- `platform-side-distribution-builds`: Generated run packages must carry plugin-owned lifecycle action assets without requiring run to advertise game-specific deployment capabilities.
## Impact
- Affects `plugins/examples/scum-server-plugin` action assets and manifest declarations.
- Affects `platform/service`, `platform/domain`, `platform/dto`, `platform/validator`, and protocol docs by removing SCUM-specific deployment plan dispatch/gating.
- Affects the independent `run` repository by removing SCUM-specific runtime execution and capability advertisement.
- Requires tests proving SCUM lifecycle jobs are plugin action jobs and run no longer contains a SCUM deployment executor.