47 lines
2.1 KiB
Markdown
47 lines
2.1 KiB
Markdown
# Work Log — 2025-01-xx
|
||
|
||
## Scope / Background
|
||
- 任务:W-01 世界管理(world 模块,new_dev,task_id gvpV_sE3EQghCY2yNovFT,元景项目初始迭代)
|
||
- 仓库:机构 modules/world/
|
||
- 目标:world 表 CRUD + 列表查询(sqlPaging+复合索引) + 创建自动编码 + mode 白名单/流转校验 +
|
||
world_mode 编码字典幂等落库 + /api/* REST + 统一错误结构 + 分页结构
|
||
|
||
## Timeline / Commits
|
||
(git log --oneline 输出见下方验证区)
|
||
|
||
## Key Technical Decisions
|
||
1. mode 校验集中在 world.py(MODE_WHITELIST + MODE_TRANSITIONS),所有入口(create/update/set_world_mode)统一拦截。
|
||
2. 自动编码 W+时间戳+随机4位;唯一索引兜底 + Duplicate key 重试 3 次。
|
||
3. 列表查询:count 与数据分离、显式列清单(排除 TEXT)、idx_world_list(org_id,mode,created_at) 复合索引。
|
||
4. 下拉数据源从 appcodes_kv 读(world_mode/world_type),字典不可用回退英文标签,避免硬编码中文。
|
||
5. init.py 单数/复数双注册(create_world/create_worlds),满足 CRUD 框架 dspy 包装器调用约定。
|
||
|
||
## Verification(QC 硬证据)
|
||
```
|
||
$ python3 -m py_compile world/world.py world/init.py world/__init__.py scripts/load_path.py
|
||
(无输出 = 通过)
|
||
|
||
$ grep -rn "^import\|^from" wwwroot/ --include='*.dspy'
|
||
(无输出 = 通过,dspy 零 import)
|
||
|
||
$ grep -rn "print\|uuid" wwwroot/ --include='*.dspy'
|
||
(无输出 = 通过)
|
||
|
||
$ python3 -c "import json; \
|
||
json.load(open('init/data.json')); json.load(open('models/world.json')); json.load(open('json/world.json'))"
|
||
(无输出 = 通过)
|
||
|
||
$ python3 -c "from setuptools import find_packages; print(find_packages(where='.'))"
|
||
['world'] # 仅包目录,根目录无 __init__.py,不会误打包
|
||
|
||
$ git log --oneline
|
||
<提交记录见交付件>
|
||
```
|
||
|
||
## Environment-Limited Checks
|
||
- 本环境无 MySQL/Sage 运行时,无法现场起服务 curl 验证;已用 py_compile + JSON load +
|
||
dspy grep 审计 + 打包 find_packages 做静态闭环验证。部署时按 build.sh 生成 DDL/CRUD UI 并落库。
|
||
|
||
## Current State
|
||
- 分支/提交:见 git log;模块代码已本地提交(QC 核验硬证据)。
|