init with react+axum+spacetimedb
Some checks failed
CI / verify (push) Has been cancelled

This commit is contained in:
2026-04-26 18:06:23 +08:00
commit cbc27bad4a
20199 changed files with 883714 additions and 0 deletions

View File

@@ -0,0 +1,14 @@
[package]
name = "module-quest"
edition.workspace = true
version.workspace = true
license.workspace = true
[features]
default = []
spacetime-types = ["dep:spacetimedb"]
[dependencies]
serde = { version = "1", features = ["derive"] }
shared-kernel = { path = "../shared-kernel" }
spacetimedb = { workspace = true, optional = true }

View File

@@ -0,0 +1,55 @@
# module-quest 任务运行时模块说明
日期:`2026-04-21`
## 1. package 职责
`module-quest` 是任务运行时模块 package当前已经承接下面 4 类纯领域能力:
1. `QuestRecord / QuestStep / QuestReward / QuestProgressSignal` 等任务状态模型
2. 任务 step 归一化、active step 选择、状态收口规则
3. `accept -> apply signal -> acknowledge completion -> turn in` 的最小任务状态流转 helper
4.`crates/spacetime-module` 聚合表与 reducer 复用的纯 Rust 规则函数
## 2. 当前已落地的真实范围
当前 crate 已经提供:
1. `QuestRecordInput / QuestRecordSnapshot`
2. `QuestProgressSignal / QuestSignalApplyInput / QuestSignalApplyOutcome`
3. `QuestCompletionAckInput / QuestTurnInInput`
4. `build_quest_record_snapshot`
5. `apply_quest_signal`
6. `acknowledge_quest_completion`
7. `turn_in_quest_record`
8. `generate_quest_log_id`
补充说明:
1. 当前 crate 仍保持“纯领域规则”定位,不直接依赖 Axum、SpacetimeDB reducer context 或外部平台。
2. `spacetime-types` feature 只用于在 `spacetime-module` 中复用这些类型做表字段和 reducer 输入。
## 3. 当前未落地的范围
本 crate 当前明确还没有承接:
1. AI 任务意图生成
2. 奖励中的货币、好感、情报统一发放
3. runtime snapshot 投影
4. story action 跨域编排
5. Axum 兼容接口 DTO
补充说明:
1. 当前 `QuestRewardItem` 的字段已经升级到可无损映射 `inventory_slot` 的粒度,包含 `description / stackable / stack_key / equipment_slot_id`
2. 当前 `turn_in_quest` 已在 `crates/spacetime-module` 中完成经验奖励到 `player_progression / chapter_progression` 的最小联动。
3. 当前 `turn_in_quest` 已在 `crates/spacetime-module` 中完成物品奖励写入 `inventory_slot``module-quest` 本身仍只冻结奖励 contract真实聚合写入继续由 `crates/spacetime-module` 负责。
这些能力后续分别由 `module-ai``module-runtime``module-story``api-server` 衔接,不在这里堆成大而全服务。
## 4. 边界约束
1. `module-quest` 负责任务状态真相与任务规则,生成型任务草案与外部 AI 编排不直接塞进模块内部。
2. 任务状态最终回写到 `crates/spacetime-module` 聚合的状态模型中,前端兼容接口由 `crates/api-server` 暴露。
3. 任务不能再次散落到 story service、runtime service 或前端临时状态里分别维护。
4. 当前真实工程口径以 `docs/technical/M4_RPG_RUNTIME_QUEST_SPACETIMEDB_BASELINE_2026-04-21.md` 为准。

File diff suppressed because it is too large Load Diff