Move SCUM lifecycle ownership to plugin

This commit is contained in:
npc0-hue
2026-08-01 09:36:12 +08:00
parent bca4f935ba
commit d1249fca85
49 changed files with 795 additions and 566 deletions
@@ -0,0 +1,28 @@
## 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.