新增旧玩法表阶段一清空迁移能力
Project CI / Repository checks (pull_request) Failing after 9s
Project CI / Backend tests (pull_request) Failing after 9s
Project CI / Frontend tests (pull_request) Successful in 3m27s
Project CI / Native shell tests (pull_request) Failing after 17m36s

增加受 migration operator 保护的固定 63 张旧表清空 procedure
生成 spacetime-client procedure、输入和结果绑定
更新后端数据契约与两阶段退役决策记录
清理未挂载的旧入口、分享路由、快照持久化与旧状态死链
清理未挂载的后台旧入口、api-server 旧玩法模块与旧 prompt
清理未挂载的 SpacetimeDB 旧模块根文件与前端类型孤儿
This commit is contained in:
2026-09-02 16:28:14 +08:00
parent 5de9554426
commit 455f056c61
1454 changed files with 358 additions and 582058 deletions
+2 -52
View File
@@ -15,38 +15,6 @@ function readUtf8(relativePath) {
}
const forbiddenSnippets = [
{
file: 'server-rs/crates/spacetime-module/src/puzzle.rs',
snippet:
'.puzzle_work_profile()\n .iter()\n .filter(|row| row.owner_user_id == input.owner_user_id)',
reason: 'puzzle_work_profile 已有 by_puzzle_work_owner_user_id 索引',
},
{
file: 'server-rs/crates/spacetime-module/src/puzzle.rs',
snippet:
'.puzzle_work_profile()\n .iter()\n .filter(|row| row.publication_status == PuzzlePublicationStatus::Published)',
reason: 'puzzle_work_profile 已有 by_puzzle_work_publication_status 索引',
},
{
file: 'server-rs/crates/spacetime-module/src/puzzle.rs',
snippet:
'.puzzle_leaderboard_entry()\n .iter()\n .filter(|row| row.profile_id == profile_id && row.grid_size == grid_size)',
reason:
'puzzle_leaderboard_entry 已有 by_puzzle_leaderboard_profile_grid 索引',
},
{
file: 'server-rs/crates/spacetime-module/src/match3d.rs',
snippet:
'.match3d_work_profile()\n .iter()\n .filter(|row| {',
reason: 'match3d_work_profile 已有 owner/status 索引,列表不应整表过滤',
},
{
file: 'server-rs/crates/spacetime-module/src/visual_novel.rs',
snippet:
'.visual_novel_work_profile()\n .iter()\n .filter(|row| {',
reason:
'visual_novel_work_profile 已有 owner/status 索引,列表不应整表过滤',
},
{
file: 'server-rs/crates/spacetime-module/src/asset_metadata/objects.rs',
snippet:
@@ -123,20 +91,6 @@ const forbiddenSnippets = [
reason:
'tracking_daily_stat 已有 by_tracking_daily_stat_scope_day / event_day 索引,analytics 查询不应整表过滤',
},
{
file: 'server-rs/crates/spacetime-module/src/custom_world.rs',
snippet:
'.custom_world_profile()\n .iter()\n .find(|row| {',
reason:
'custom_world_profile owner 维度已有 by_custom_world_profile_owner_user_id 索引',
},
{
file: 'server-rs/crates/spacetime-module/src/custom_world.rs',
snippet:
'.custom_world_profile()\n .iter()\n .filter(|profile| {',
reason:
'custom_world_profile Published 同步已有 by_custom_world_profile_publication_status 索引',
},
{
file: 'server-rs/crates/spacetime-module/src/editor_project_storage.rs',
snippet:
@@ -149,8 +103,8 @@ const forbiddenSnippets = [
const procedureResultFiles = [];
const mapperCompatibilityFiles = [
'server-rs/crates/spacetime-client/src/mapper.rs',
'server-rs/crates/spacetime-client/src/lib.rs',
'server-rs/crates/spacetime-client/src/active/mapper.rs',
'server-rs/crates/spacetime-client/src/active.rs',
];
const bigFishRuntimeFiles = [];
@@ -188,10 +142,6 @@ const failures = [];
for (const rule of forbiddenSnippets) {
if (
rule.file.endsWith('/puzzle.rs') ||
rule.file.endsWith('/match3d.rs') ||
rule.file.endsWith('/visual_novel.rs') ||
rule.file.endsWith('/custom_world.rs') ||
rule.reason.startsWith('profile_save_archive') ||
rule.reason.startsWith('profile_played_world')
) {