Document platform plugin run boundaries

This commit is contained in:
npc0-hue
2026-07-31 17:41:54 +08:00
parent f23d18ea57
commit bca4f935ba
3 changed files with 22 additions and 0 deletions
+10
View File
@@ -85,6 +85,16 @@ Do not define business structs inside functions. Do not define request/response
The external run executor must not expose host paths, raw credentials, or direct sockets to plugins or platform_web.
Platform, plugin, and run lifecycle ownership must stay separated:
- Platform owns server instances, plugin manifest validation, distribution builds, run registration binding, authorization, and lifecycle job dispatch.
- Plugins own game-specific lifecycle behavior: install, update, pre-start checks, start arguments, stop logic, status probes, executable paths, Steam app IDs, and game-specific dependency commands.
- Run owns generic machine execution only: scoped file operations, bounded process execution/supervision, declared capability enforcement, logs, artifacts, and channel transport.
Do not hardcode game-specific deployment behavior in run or platform services. Values such as `SCUMServer.exe`, Steam app `3792580`, `steamcmd +app_update`, SCUM install directories, `-port`, `-MaxPlayers`, or `-log` belong in the SCUM plugin's manifests, action specs, templates, or scripts.
When a game needs "install if missing, update if present, then start" behavior, implement it as plugin-owned lifecycle actions. Platform may package and dispatch those actions, and run may execute them through generic capabilities, but neither platform nor run should special-case a game by name to perform those steps.
Run-platform communication must remain channelized:
- Control is lightweight and high priority.