合并 origin/master:保留 3D 契约与 provider checkpoint,旧玩法表随主线退役

- server-rs/crates/shared-contracts/src/lib.rs:采用主线的模块裁剪(删掉 cfg(any()) 遗留模块、补上 agc_analytics 与 game_distribution),同时保留本分支的 editor_canvas、model3d 模块与 EDITOR_GENERATION_OPERATION_KINDS 导出
- server-rs/crates/spacetime-module/src/migration.rs:主线删除的 410 行旧玩法表 normalize 段保持删除,保留本分支的 provider_kind / provider_task_id 兼容段与对应用例
- docs/【开发运维】本地开发验证与生产运维-2026-05-15.md:校验清单同时保留 Tripo 3D 生成任务与 editor_background_music_generation / model3d_text_to_model / model3d_image_to_model
- .gitignore:补回本分支新增的 3D 模型文件忽略规则(*.glb / *.gltf 等 12 行),压测数据段随主线一并删除
- 共享记忆:本分支的 3D 决策与踩坑条目保留在主线重排后的 decision-log.md 与 pitfalls.md 中
This commit is contained in:
2026-09-23 19:39:30 +08:00
997 changed files with 56264 additions and 80302 deletions
+28
View File
@@ -2269,6 +2269,7 @@ fn admin_permission_requirement(_method: &Method, path: &str) -> AdminPermission
"/admin/api/external-api-keys" => AnyTab(&["tables"]),
"/admin/api/debug/http" => AnyTab(&["debug"]),
"/admin/api/tracking/events" => AnyTab(&["tracking"]),
"/admin/api/agc/tracking-events" => AnyTab(&["agc-tracking"]),
"/admin/api/tracking/event-keys" => AnyTab(&["tracking", "tasks"]),
"/admin/api/error-reports" => AnyTab(&["error-reports"]),
"/admin/api/project-snapshots" => AnyTab(&["project-snapshots"]),
@@ -2279,6 +2280,7 @@ fn admin_permission_requirement(_method: &Method, path: &str) -> AdminPermission
"/admin/api/editor-assets" => AnyTab(&["editor-assets"]),
"/admin/api/assets/read-url" => AnyTab(&["editor-assets", "editor-showcase"]),
path if path.starts_with("/admin/api/editor-showcase/") => AnyTab(&["editor-showcase"]),
path if path.starts_with("/admin/api/game-distribution/") => AnyTab(&["editor-showcase"]),
"/admin/api/profile/redeem-codes" | "/admin/api/profile/redeem-codes/disable" => {
AnyTab(&["redeem"])
}
@@ -2295,6 +2297,7 @@ fn admin_permission_requirement(_method: &Method, path: &str) -> AdminPermission
"/admin/api/profile/users/detail" => AnyTab(&[
"tables",
"tracking",
"agc-tracking",
"recharge-orders",
"editor-showcase",
"editor-assets",
@@ -6956,6 +6959,26 @@ mod tests {
#[test]
fn admin_tab_permissions_cover_shared_and_sensitive_routes() {
assert!(
enforce_admin_request_permission(
"member",
&["agc-tracking".into()],
&[],
&Method::GET,
"/admin/api/profile/users/detail"
)
.is_ok()
);
assert!(
enforce_admin_request_permission(
"member",
&["tracking".into()],
&[],
&Method::GET,
"/admin/api/agc/tracking-events"
)
.is_err()
);
assert!(
enforce_admin_request_permission(
"member",
@@ -6986,6 +7009,11 @@ mod tests {
("tables", Method::GET, "/admin/api/database/tables"),
("debug", Method::POST, "/admin/api/debug/http"),
("tracking", Method::GET, "/admin/api/tracking/events"),
(
"agc-tracking",
Method::GET,
"/admin/api/agc/tracking-events",
),
("error-reports", Method::GET, "/admin/api/error-reports"),
(
"project-snapshots",