2.5 KiB
2.5 KiB
2026-08-29 工作日志 —— W-07 demo 实时演示模块开发
范围/背景
- 元景(scense)平台 W-07「demo 实时演示模块」开发(task_kind=new_dev, iteration oOk__9medSOirW_Pxm31T)。
- 部署目标 /d/scense/scense_app;实现为
demo模块(Python 包,无独立 app.py)。 - 功能点 W-07a~W-07j 全覆盖:开始演示/结束演示/编辑实体实时反映(<1s)/脚本保存热加载/视角切换/暂停继续/全屏/状态隔离/查看实体属性/多人预览。
关键决策
- 状态隔离实现:demo_session_state 覆盖层(base_json 基线 + demo_json 当前),演示期间只写覆盖层, stop_demo 级联删除 3 张子表 → 正式 entity/scene/world 数据零污染。这是验收核心。
- <1s 实时反映:前端 500ms 轮询 state.dspy(聚合实体状态),编辑接口写入后下一次轮询即反映。
- 跨模块校验防御式:校验 world 存在性用 try/except(world 模块未挂载时跳过),不阻塞演示。
- 接口命名:按任务要求 /demo/api/{start,stop,camera,pause}.dspy,另加 entity_edit/entity_attrs/hotload/presence/fullscreen/state/session_*。
- 复用现有 6 模块结构:models/.json 表定义 + wwwroot/api/.dspy + index.ui + json/ CRUD。
产出文件(modules/demo/)
- demo/demo.py(业务逻辑)、demo/init.py(load_demo 注册 12 函数)、demo/init.py(导出)
- models/:demo_session / demo_session_state / demo_hot_script / demo_presence 四张表
- wwwroot/api/:13 个 dspy 端点;wwwroot/index.ui + demo_viewer.ui + demo_viewer.js + demo_viewer.css
- json/demo_session.json(CRUD);scripts/load_path.py(RBAC 显式路径);scripts/demo_ddl.sql
- pyproject.toml / README.md / skill/SKILL.md / .gitignore
验证情况(环境受限说明)
- 本工作空间无 /d/scense/scense_app 部署目录与数据库连接,无法在此完整启动宿主应用做接口联调。
- 已完成的静态验证:模型 JSON 四段式(summary/fields/indexes/codes);dspy 无 import、显式 return、 全部 try/except 映射 400/404/409/500;业务函数三处注册同步(demo.py/init.py/init.py); 无硬编码 DBNAME(统一 get_module_dbname('demo'));sor 仅用 C/U/R/D/sqlExe/sqlPaging。
- 待部署环境自测清单(见 skill/SKILL.md 验收口径):start/stop 200、编辑实体 <1s、退出后正式数据不变、 每功能点正反例执行。
当前状态
- 模块仓库 modules/demo 已就绪(待 PM 审核通过后统一 git 提交/部署)。