npc0-hue
05f5a97ba9
Add graceful SCUM stop, restart, and version update flow
...
SCUM 停止/重启/更新以前只有“结束进程”这一条路,插件没有声明任何优雅关闭方式,
平台也没有把停止后重新启动串起来。现在插件声明自己的关闭脚本,run 先执行它,
平台在停止或更新成功后再自动拉起服务。
run:
- lifecycle stop 支持插件声明的 gracefulStop(可执行文件、参数、环境、超时、
fallback=report|terminate);关闭命令超时且声明 report 时任务失败,不再默默杀进程。
- 新增 steam.update 依赖探针:调用 steamcmd +app_info_print 获取公开分支 buildid,
与本地 steamapps/appmanifest_<appid>.acf 的 buildid 比较,输出
installed/latest/update=yes|no|unknown。
platform:
- 新增 POST /api/v1/server-instances/{id}/restart 与 /update。
- restart 派发插件 stop 动作(走优雅关闭),终态成功后入队 start 作业。
- update 派发插件 install 动作;插件在更新前必须先优雅关闭 SCUM,关闭失败直接拒绝
SteamCMD 更新,成功后平台再拉起服务。
- 依赖检查输入带上插件声明的服务器安装根目录,供 steam.update 读取 appmanifest。
plugin (SCUM server plugin 0.1.16):
- bin/scum-stop.cmd:解析已声明的可执行文件路径,定位同路径正在运行的 SCUMServer.exe,
通过本地 RCON 公告并发送关闭命令,等待进程自行退出;不再使用 taskkill。
- bin/scum-rcon.ps1:插件自有的 Source RCON 客户端,从 UE4SS mod config.ini 读取
密码/端口,密钥不离开本机。
- actions/stop.json 声明 gracefulStop;actions/install.json 更新前先执行同一关闭脚本。
platform_web:
- 服务器详情新增“重启”按钮和“SCUM 版本更新”面板;点“检查更新”查询公开分支版本,
只有检测到更新时“更新版本”按钮才会置为可用并高亮,点击后先确认再派发更新任务。
2026-09-15 13:30:15 +08:00
npc0-hue
a822e9250a
Store SCUM facts in typed platform tables
...
Run pushes typed SCUM facts through POST /api/v1/run/scum/facts, but the
production router rejected that path before the signature middleware because
runServiceRequest listed individual Run channel prefixes, and MySQL kept SCUM
rows inside the whole metadata snapshot instead of platform tables.
- /api/v1/run/ is now the signed machine channel space while
/api/v1/run/endpoints keeps normal bearer/admin authorization.
- MySQL gets real scum_user, scum_user_trajectory, scum_vehicle,
scum_vehicle_trajectory and scum_vehicle_lock tables with parameterized
per-row repositories instead of full snapshot rewrites. Snapshot-shaped
tables from the unreleased interim build are replaced, and SCUM rows still
inside a metadata snapshot are migrated once.
- Facts ingest verifies the target server plugin type and converges stale
online users to offline after SCUMUserOfflineAfter.
- The plugin page and browser read one bounded /scum/surface response instead
of five list calls per refresh.
Call-count budget for one server: per 5s facts batch, one SELECT plus one
INSERT/UPDATE per reported user and vehicle, one INSERT per moved trajectory
sample or new lock row, one bounded stale-user SELECT, and a trajectory
retention DELETE at most once per hour. One browser refresh issues one surface
request every 15s instead of five list requests.
2026-09-15 12:12:11 +08:00
npc0-hue
ecdca8e28b
Remove SCUM sqlite user projections
2026-09-14 13:41:44 +08:00
npc0-hue
f69429bfc7
Fix server create plugin filtering
2026-09-07 18:17:33 +08:00
npc0-hue
3cfb98ed47
Remove legacy runtime deployment paths
2026-09-04 12:36:21 +08:00
npc0-hue
80cddbf19d
Remove legacy client-manager platform path
2026-09-03 16:40:05 +08:00
npc0-hue
fe09d21a56
Remove legacy client-manager workflows
2026-09-03 13:08:08 +08:00
npc0-hue
33d3a13e74
Add server file manager workflow
2026-08-24 12:56:55 +08:00
npc0-hue
fb5adf06d6
Remove run node UI and expire registrations
2026-08-21 12:03:06 +08:00
npc0-hue
a7e2e4c6c0
Remove pre-1.0 audit and protected request scaffolding
2026-08-20 23:42:02 +08:00
npc0-hue
40b35b05c7
feat: 清理openspec
2026-08-20 17:58:36 +08:00
npc0-hue
65353cf269
feat(scum): rebuild plugin-owned management data
2026-08-15 12:43:09 +08:00
npc0-hue
a6c4cdac5d
Rebuild SCUM plugin data ownership
2026-08-14 10:03:58 +08:00
npc0-hue
da01d39866
Align SCUM operations with reference tools
2026-08-13 18:21:08 +08:00
npc0-hue
8b236d7c15
Implement SCUM direct data plane
2026-08-13 16:33:11 +08:00
npc0-hue
b07a792784
Revert SCUM real data management change
2026-08-13 15:33:34 +08:00
npc0-hue
13746150cb
refactor(scum): remove legacy projection workflows
2026-08-11 15:18:03 +08:00
npc0-hue
df48d8b283
feat(scum): remove legacy workflow client surfaces
2026-08-11 14:31:05 +08:00
npc0-hue
e5d26e5420
feat(scum): remove fake management surfaces
2026-08-11 12:30:45 +08:00
npc0-hue
a770bc6250
Integrate SCUM real ops workflows
2026-08-10 21:12:53 +08:00
npc0-hue
d1f4dce4f5
Refine terminal history scrolling and job failure summaries
2026-08-10 13:48:23 +08:00
npc0-hue
fbd24b6a44
Remove manual runtime controls from server detail
2026-08-10 12:23:17 +08:00
npc0-hue
b789925ae5
fix: recover run runtime state and logs
2026-08-07 12:01:26 +08:00
npc0-hue
acec5e4367
Allow restarting failed server instances
2026-08-06 18:18:20 +08:00
npc0-hue
cf9af14eaf
Allow forced server deletion
2026-08-04 15:03:49 +08:00
npc0-hue
86a50ec8fa
Fix SCUM file workbench interactions
2026-08-04 12:05:27 +08:00
npc0-hue
f028a343d7
Add SCUM file management workbench
2026-08-04 11:33:34 +08:00
npc0-hue
1d5fb586d0
Repair live server operations console
2026-08-03 11:21:07 +08:00
npc0-hue
03339fb3e8
refactor(scum): remove orphaned host panels
2026-07-29 16:26:19 +08:00
npc0-hue
c9494abc48
feat(plugin): gate pages on companion features
2026-07-29 09:53:39 +08:00
npc0-hue
271e1e684f
feat(plugin): add SCUM ownership migration foundation
2026-07-28 18:11:00 +08:00
npc0-hue
7f64765c1c
feat: auto-deploy guided servers on run registration
2026-07-28 16:57:09 +08:00
npc0-hue
c5806cc6b7
fix: expose server deployment trigger
2026-07-28 15:11:01 +08:00
npc0-hue
e4ef4024a8
feat(scum): add file config workbench
2026-07-28 14:43:24 +08:00
npc0-hue
2ae27bb746
feat: declare and execute SCUM guided installs
2026-07-27 20:09:14 +08:00
npc0-hue
e5c94be1db
separate server run bindings from deployment targets
2026-07-25 19:48:26 +08:00
npc0-hue
220ef91a8e
feat: support custom server deployment drafts
2026-07-24 16:56:28 +08:00
npc0-hue
6c3eb6e45f
fix: 调试发布run
2026-07-22 11:44:48 +08:00
npc0-hue
a0e69417db
功能修改
2026-07-20 16:42:33 +08:00
npc0-hue
48b8ad8d6c
feat: 完整游戏运维功能
2026-07-18 09:04:01 +08:00
npc0-hue
f3b14b7945
feat: 自动更新
2026-07-15 19:43:06 +08:00
npc0-hue
4f33f761a3
Complete platform management workflows
2026-07-14 16:39:37 +08:00
npc0-hue
7e05d0a4e7
first commit
2026-07-11 14:56:10 +08:00