35 lines
1.7 KiB
Markdown
35 lines
1.7 KiB
Markdown
# world_snapshot 模块
|
||
|
||
世界状态快照模块(W-03):聚合世界(world)、场景(scene)、实体(entity)当前状态生成
|
||
快照,支持快照查询与恢复,恢复时联动 world 表状态(经 world 模块 set_world_mode 契约)。
|
||
|
||
## 功能
|
||
- 世界快照表 `world_snapshot` 的 CRUD(create/get/list/update/delete)
|
||
- `create_snapshot`:聚合 world/scene/entity 当前状态写入 `snapshot_json`
|
||
- `restore_snapshot`:读取并校验快照 JSON,标记已恢复,联动 world 状态
|
||
- 下拉接口:世界列表、快照类型、快照状态
|
||
|
||
## 数据表
|
||
- `world_snapshot`(models/world_snapshot.json 四段式)
|
||
- 编码字典:`snapshot_type`(full/incremental)、`snapshot_status`(active/restored/invalid)
|
||
|
||
## 目录结构
|
||
```
|
||
world_snapshot/
|
||
├── world_snapshot/ # Python 包(init.py 实现 + __init__.py 导出)
|
||
├── wwwroot/ # index.ui / menu.ui / api/*.dspy
|
||
├── models/ # world_snapshot.json 表定义
|
||
├── json/ # world_snapshot.json CRUD 定义
|
||
├── init/ # data.json 编码字典种子
|
||
├── scripts/ # load_path.py RBAC 注册
|
||
├── skill/SKILL.md # 模块技能文档
|
||
├── pyproject.toml
|
||
├── build.sh # 四步安装(xls2ddl → ddl → crud ui → symlink)
|
||
└── README.md
|
||
```
|
||
|
||
## 集成
|
||
- 通过 `load_world_snapshot()` 挂载到宿主应用(`from world_snapshot.init import load_world_snapshot`)
|
||
- 库名经 `ServerEnv().get_module_dbname('world_snapshot')` 获取,禁止硬编码
|
||
- 构建:`bash build.sh`(安装 xls2ddl、生成 DDL、生成 CRUD UI、链接 wwwroot)
|