fix: sync rust api-server runtime and bindings

This commit is contained in:
2026-04-23 20:32:06 +08:00
parent 9d25a47b23
commit 27e84c46a0
82 changed files with 9534 additions and 2222 deletions

View File

@@ -55,6 +55,76 @@
- `cancel_ai_task_and_return`
18. `turn_in_quest``resolve_combat_action(Victory)``player_progression / chapter_progression` 的最小经验联动
## 2.1 `src/lib.rs` 拆分路由规则
`2026-04-23` 起,`src/lib.rs` 不再允许继续承载具体业务域的 table / reducer / procedure / tx helper。
根入口后续只允许保留:
1. `use` 聚合
2. `mod` 声明
3. 少量跨域共享 helper
4. 迁移过渡期测试
根入口与子模块的导入导出规则同步冻结为:
1. `src/lib.rs` 对外统一优先使用 `pub use xxx::*;` 重新导出模块内容
2. 已拆业务模块内部统一优先使用 `use crate::*;` 复用主入口已聚合的类型与函数
3. 只有当 `use crate::*;` 无法覆盖或会引入明显歧义时,才补局部显式 `use`
4. 新增业务域内容禁止为了堆 `use` 列表再回写到 `src/lib.rs`
具体内容必须落到下面的模块:
1. `src/entry.rs`
- SpacetimeDB `init` 入口
2. `src/domain_types.rs`
- 跨域共享的 SpacetimeDB 类型
3. `src/asset_metadata/`
- 资产对象与资产绑定真相表
4. `src/big_fish/`
- Big Fish 创作与运行态
5. `src/runtime/`
- runtime setting / snapshot / browse history / profile 投影
6. `src/gameplay/`
- `story / combat / inventory / npc / quest / runtime_item / progression`
7. `src/custom_world/`
- custom world profile / session / agent / publishing / gallery / works
8. `src/ai/`
- ai task / stage / chunk / result reference
9. `src/puzzle.rs`
- 拼图玩法当前仍为单文件域模块
### 已冻结的二级模块落位点
1. `src/asset_metadata/objects.rs`
2. `src/asset_metadata/bindings.rs`
3. `src/big_fish/tables.rs`
4. `src/big_fish/session.rs`
5. `src/big_fish/assets.rs`
6. `src/big_fish/runtime.rs`
7. `src/runtime/settings.rs`
8. `src/runtime/snapshots.rs`
9. `src/runtime/browse_history.rs`
10. `src/runtime/profile.rs`
11. `src/gameplay/combat.rs`
12. `src/gameplay/inventory.rs`
13. `src/gameplay/npc.rs`
14. `src/gameplay/progression.rs`
15. `src/gameplay/quest.rs`
16. `src/gameplay/runtime_item.rs`
17. `src/gameplay/story.rs`
18. `src/custom_world/profile.rs`
19. `src/custom_world/session.rs`
20. `src/custom_world/agent.rs`
21. `src/custom_world/publishing.rs`
22. `src/custom_world/gallery.rs`
23. `src/custom_world/works.rs`
24. `src/ai/tasks.rs`
25. `src/ai/stages.rs`
26. `src/ai/snapshots.rs`
后续如果新增 SpacetimeDB 表、reducer、procedure 或同域 helper必须先判断属于哪个一级模块与二级落位点再写入对应文件禁止直接追加到 `src/lib.rs`
`asset_object` 的详细设计见:
1. [../../../docs/technical/SPACETIMEDB_ASSET_OBJECT_TABLE_DESIGN_2026-04-21.md](../../../docs/technical/SPACETIMEDB_ASSET_OBJECT_TABLE_DESIGN_2026-04-21.md)