5.4 KiB
5.4 KiB
spacetime-module 主工程 crate 说明
日期:2026-04-21
1. crate 职责
spacetime-module 是新后端的 SpacetimeDB 主工程 crate,后续负责:
- 聚合各独立模块 crate 的表定义
- 聚合各独立模块 crate 的 reducer
- 聚合各独立模块 crate 的 view / 读模型
- 生成可发布的 SpacetimeDB wasm 模块
- 由
../../scripts/spacetime-dev.ps1与../../scripts/spacetime-dev.sh驱动的本地 standalone 启动链路
2. 当前阶段说明
当前阶段已落下第一批真实 schema 骨架,并已补齐本地 standalone 启动脚本,先把 SpacetimeDB 进程入口、M3/M4 基础表以及 M5 custom world / agent 首批表骨架固定下来。
后续与本 crate 直接相关的任务包括:
- 继续扩充模块聚合入口
- 继续设计表、reducer、view 的聚合方式
- 接入身份 claims 透传
- 在当前 scaffold 基础上接入 publish / dev 循环
- 在
M7收口阶段拆分过大的src/lib.rs,按runtime、gameplay/*、custom_world、asset_metadata、ai等业务与 SpacetimeDB 聚合层次重组目录,避免主工程 crate 回退成单大包
当前已落地:
spacetime-module真实cdylibcrate scaffoldasset_object首版表骨架bucket + object_key双列对象定位索引module-assets的访问策略与字段校验类型接入- 面向 Axum 的
asset_object确认持久化入口 asset_entity_binding通用绑定表- 面向 Axum 的
bind_asset_object_to_entity_and_return绑定 procedure runtime_setting表与 procedurenpc_state、story_session、story_eventbattle_state、treasure_recordquest_record、quest_logM5首批custom_world_profile / session / agent / gallery表骨架custom world library / publish / galleryStage 2 procedurespublished profile compileStage 3 procedurepublish_worldStage 4 串联 procedureai_task / ai_task_stage / ai_text_chunk / ai_result_reference首版 AI 真相表- AI 任务最小 procedure / reducer:
create_ai_taskcreate_ai_task_and_returnstart_ai_taskstart_ai_task_stageappend_ai_text_chunk_and_returncomplete_ai_stage_and_returnattach_ai_result_reference_and_returncomplete_ai_task_and_returnfail_ai_task_and_returncancel_ai_task_and_return
turn_in_quest与resolve_combat_action(Victory)到player_progression / chapter_progression的最小经验联动
asset_object 的详细设计见:
- ../../../docs/technical/SPACETIMEDB_ASSET_OBJECT_TABLE_DESIGN_2026-04-21.md
- ../../../docs/technical/ASSET_ENTITY_BINDING_REDUCER_DESIGN_2026-04-21.md
M5 custom world / agent 首批表设计见:
- ../../../docs/technical/SPACETIMEDB_CUSTOM_WORLD_AGENT_STAGE1_TABLE_DESIGN_2026-04-21.md
- ../../../backend-rewrite-tasklist/04_M5_CUSTOM_WORLD_AND_AGENT.md
- ../../../docs/technical/SPACETIMEDB_CUSTOM_WORLD_LIBRARY_GALLERY_STAGE2_DESIGN_2026-04-21.md
- ../../../docs/technical/SPACETIMEDB_CUSTOM_WORLD_PUBLISHED_PROFILE_COMPILE_STAGE3_DESIGN_2026-04-21.md
- ../../../docs/technical/SPACETIMEDB_CUSTOM_WORLD_PUBLISH_WORLD_STAGE4_DESIGN_2026-04-21.md
module-ai 的当前基座设计见:
- ../../../docs/technical/M4_MODULE_AI_BASELINE_DESIGN_2026-04-21.md
- ../../../docs/technical/M4_MODULE_AI_SPACETIMEDB_BASELINE_2026-04-21.md
- ../../../docs/technical/M4_MODULE_AI_AXUM_FACADE_DESIGN_2026-04-22.md
当前身份透传设计依据:
当前本地开发脚本约定:
../../scripts/spacetime-dev.ps1与../../scripts/spacetime-dev.sh当前固定执行spacetime start的 standalone 模式。- 默认监听
127.0.0.1:3000,与spacetimeCLI 的localserver 默认口径保持一致。 - 本地数据目录固定到
server-rs/.spacetimedb/local,避免污染全局 SpacetimeDB 根目录。 - 当前阶段暂不自动 publish
crates/spacetime-module,待 module 实体 scaffold 与聚合入口落地后再扩展。
3. 边界约束
spacetime-module只聚合状态模型,不直接承接 HTTP、Cookie、Header、OSS、短信、微信、LLM 等外部副作用。- 每个业务模块优先在自己的
crates/module-*中定义状态与规则,再由主工程聚合。 - 主工程不重新吞并各模块实现细节,避免回到单大包结构。
custom_world_asset_link仍等待M6 assets / OSS的对象槽位规则冻结后再补,不在本轮首批表骨架内提前硬落。