统一实时标定身份解析并规范行尾
控制器与两个对话框共用 CalibrationService.read_identity,解析失败与缺 SN 分开上报; 本轮改动文件统一 LF,SN 必填回归已锁定。 定向 73 项、校准 UI 8 项与 lint 通过;未跑全量门禁。
This commit is contained in:
@@ -52,12 +52,14 @@
|
||||
|
||||
### S3:实时标定交互
|
||||
|
||||
- [ ] 提取 `live_calibration.py` 的选择保存、解析、确认及提交请求。
|
||||
- [ ] 文件身份和匹配规则复用 `CalibrationService`;对话框通过窄接口访问。
|
||||
- [ ] 设备确认、记录版本及采样仍走现有记录通道。
|
||||
- [x] 提取 `live_calibration.py` 的选择保存、解析、确认及提交请求。
|
||||
- [x] 文件身份和匹配规则复用 `CalibrationService`;对话框通过窄接口访问。
|
||||
- [x] 设备确认、记录版本及采样仍走现有记录通道。
|
||||
|
||||
依赖 S2。验证:`test_live_calibration_dialog`、`test_calibration_service` 及确认事件测试。
|
||||
导出不等于应用,应用请求不等于设备确认,序列号不匹配的处理不变。
|
||||
实施结果(2026-10-19,round 3–5):round 5 统一身份解析并锁定 SN 必填回归
|
||||
(定向 73 passed、校准 UI 8 passed);R1–R4 见交接,未改断言或基线。
|
||||
|
||||
### S4:分析配置
|
||||
|
||||
@@ -111,79 +113,48 @@ S1 首次 shared 467 passed、18 skipped、3 deselected,UI 632/0;另有关
|
||||
均为 Windows/Python 3.10.19/offscreen;未验证真实设备、可见桌面或硬件 GL。
|
||||
未放宽断言或基线。S2 的非迁移方法 AST 一致是当时证据,后续功能提交不受其约束。
|
||||
|
||||
## 当前交接:仅执行 S3
|
||||
## 当前交接:S3 返工 round 5 已交付 review
|
||||
|
||||
- task_id:`studio-window-refactor`;round:2;updated_at:2026-10-19,Asia/Hong_Kong。
|
||||
- status:ready;owner:Codex(交出后停止写入);next_agent:DeepSeek 执行方。
|
||||
- 用户要求“check existing plan and prepare to handoff to deepseek”;本轮只更新交接。
|
||||
先前分步重构授权继续有效;转发启动指令后执行 S3,完成交付 review。
|
||||
S4–S6 留下一轮,不因 S1/S2 结构完成而声称全量验收通过。
|
||||
- task_id:`studio-window-refactor`;round:5;updated_at:2026-10-19,Asia/Hong_Kong。
|
||||
- status:review;owner:DeepSeek 执行方(已停止写入);next_agent:GPT/Claude 验收方。
|
||||
- 本轮依据:`.scratch/studio-window-refactor/rework-r5/rework-plan.md`(用户确认的返工计划)。
|
||||
未放宽 SN 必填、未改并行任务文件、未用全量门禁证明通过;未暂存/提交/推送/切换分支。
|
||||
- 授权:用户 2026-10-19 转发该返工计划与启动指令,要求按 R1→R2→R4→R3 执行、R4 先交盘点、
|
||||
完成标 review 交回验收;先前 S3 授权在范围内继续有效。
|
||||
|
||||
### 基准与输入
|
||||
|
||||
| 仓库 | 分支与 HEAD | 起始状态/本轮修改 |
|
||||
|---|---|---|
|
||||
| `D:\orisys_ws\orisys-app` | dev;9d4563e9292469e9df500a7acab6d26489810455 | 索引空;finger sensor.json 已有未暂存修改;本轮仅此计划 |
|
||||
| `D:\orisys_ws` | master;9201914cbe335b6862058212af0bc2614f2b4792 | 场加权计划有其他任务修改;设备包、mph、dragon-q6a 无关未跟踪;本轮不改根仓库 |
|
||||
| `D:\orisys_ws\orisys-app` | dev;`70b4341fd00707a3a7579d6d36ed4b090c2be068` | 索引空;工作区含并行任务未提交修改(shared analysis/acquisition、`replay_controller.py`、locales 的 field 键、`finger/sensor.json` 3→2)与本轮交付;本轮改动见下 |
|
||||
| `D:\orisys_ws` | master;`9201914cbe335b6862058212af0bc2614f2b4792` | 场加权计划等无关修改;本轮不改根仓库 |
|
||||
|
||||
当前主窗口 2899 行、213 个方法(含属性访问器);WindowUi/WindowMenus 已接线,
|
||||
live_calibration.py/analysis_setup.py 尚不存在。当前源码包含后续回放修复,不能回退旧窗口。
|
||||
工作目录为应用仓库;解释器 `.venv-build\Scripts\python.exe`(3.10.19、offscreen)。
|
||||
R1 只改行尾:计划所列 5 文件、自有文档 2 个、本轮另 3 个改动文件。R3 改
|
||||
`calibration_service.py`、`live_calibration.py`、两个对话框与 4 个测试文件;R2/R4 未改生产代码。
|
||||
文件 SHA256 见 `rework-r5/delivery-sha256.json`;其中 R1 涉及的 3 个并行任务文件
|
||||
(locales×2、sensor.json、replay_controller.py)只规范了行尾,其内容改动不属于本轮。
|
||||
|
||||
本轮工作目录为应用仓库;解释器 `D:\orisys_ws\orisys-app\.venv-build\Scripts\python.exe`。
|
||||
源码、配置、测试与依赖声明 SHA256 见
|
||||
[baseline-sha256.json](../../.scratch/studio-window-refactor/handoff-20261019-171832/baseline-sha256.json);
|
||||
本轮计划哈希见同目录 `delivery-sha256.json`,不把哈希写回被哈希文件。
|
||||
同 checkout 无需补丁;跨 checkout 须提供差异、新文件及上述基准。无须原始视频或硬件。
|
||||
### 执行结果
|
||||
|
||||
### 范围、依赖与停止条件
|
||||
| 项 | 结果与证据 |
|
||||
|---|---|
|
||||
| R1 行尾 | 10 个本轮文件均 `i/lf w/lf`;5 个计划文件整文件 diff 由 3312/3215 降至 103/6,与 `--ignore-space-at-eol` 一致;转换前后对照 diff 194 行逐行相同。证据 `rework-r5/r1-eol.md` |
|
||||
| R2 回归锁定 | 5 类用例齐全(无 SN/无法解析/SN 不一致/未填设备号/非 Finger 文件),`resolve()` 无“无 SN 放行”返回;遗留 `ROLE_DEFAULT` 不校验但无 Finger 默认标定、不可达。证据 `rework-r5/r2-sn-required.md` |
|
||||
| R4 SN 盘点 | 只读:随包仅 box `force_calibration.json`(无 SN,规则只对 Finger);Finger 目录与设计导出目录无标定文件;`data/dd02-gl` 两个 Finger v3 文件带 `sn=dd02-gl` 且严格解析成功。**无 Finger 文件会被拒绝、无需补 SN**。证据 `rework-r5/sn-inventory.md` |
|
||||
| R3 统一身份解析 | 对照架构文档:UI→无 Qt 服务层是向下依赖、无环(`cal_panel` 已有同类依赖),方向合规。`CalibrationService.read_identity` 一次解析返回 `(identity, error)`,`identity_of` 变薄封装;控制器删除二次 SDK 解析与 `?` 兜底;两对话框改走同一判断;对话框错误文案与控制器一致。 |
|
||||
| R3 测试 | 控制器+服务+对话框+locale 48 passed;定向回归 73 passed;`test_ui_smoke -k calibration` 8 passed;本轮文件 lint exit 0、无 findings。证据 `rework-r5/r3-identity.md`、`r5-final-20261019-191500/` |
|
||||
| 文档检查 | `doc_lint` exit 0、无新增 findings;`doc_count` 计划 2502/3000、架构 3196/3232。证据 scratch `doc-lint.log`、`doc-count.log` |
|
||||
| 未执行 | 全量门禁(按要求不跑;上轮 studio 57% 原生挂起未解决);未验证真实设备、可见桌面或硬件 GL。 |
|
||||
|
||||
allowed_files:`apps/studio/src/orisys_studio/app_window.py`、新增 `live_calibration.py`,
|
||||
必要的 `shell_ports.py`;相关实时标定测试及新增单元测试;本计划与 `studio-architecture.md`。
|
||||
其他阶段、SDK、shared、配置、Autocal 和功能变更均不在本轮范围。
|
||||
历史轮次证据:round 3 门禁 `gate-20261019T093016Z/`、round 4 返工 `handoff-20261019-174000/rework-P2.md`;
|
||||
详细过程在 scratch,不在本表复制。
|
||||
|
||||
迁移 live choice 的读取/保存、默认路径、解析、导出后选择和确认/提交请求。
|
||||
复用同一 prefs 与保存入口,避免第二份状态;服务仍负责文件身份和匹配。
|
||||
注入显式控件、回调或窄接口,不传整个窗口或使用任意属性代理。
|
||||
先保留实际被 SensorDialog、运行入口、回放配置和测试调用的窗口桥;列出调用者与保留原因。
|
||||
测试 monkeypatch 的转发仍须生效,不能复制旧实现来满足测试。
|
||||
### 验收与下一步
|
||||
|
||||
采集线程确认继续只写 RecordingCoordinator/SessionController,不操作 Qt;
|
||||
GUI drain 在原时机执行。导出不应用,请求不当作确认;角色 default/file/none、
|
||||
缺失文件、序列号检查、提示文字及 worker 请求参数均保持当前行为。
|
||||
|
||||
[场加权标定任务](../../../docs/workflow/field-weighted-calibration-plan.zh.md) 当前 working,
|
||||
涉及 calibration_service.py、video_analysis_dialog.py、replay_controller.py 和 shared。
|
||||
本轮把它们作为只读依赖;不改接口、不覆盖其工作。若接手时其变化影响提取或验证,
|
||||
先核对该任务的交接记录与文件所有权,停止交叠部分;不得根据旧哈希恢复它们。
|
||||
需要修改重叠文件或改变功能时请求决定,独立准备可继续。
|
||||
默认遵循交接约定的三次失败停止规则;未设时间预算。没有提交、推送或硬件授权。
|
||||
|
||||
### 执行与验收
|
||||
|
||||
DeepSeek 先运行下方相同测试建立当前基线,再分“选择/解析”和“确认/请求”两批提取。
|
||||
每批检查调用方与差异、跑相同回归,补窄接口独立测试;完成更新架构现状,运行门禁。
|
||||
结果应保持旧行为、减少窗口业务逻辑、无循环依赖及新线程。独立验收方复跑关键证据。
|
||||
历史全量失败不自动豁免;本轮失败记录实际退出码、归因证据与剩余项,不降标准。
|
||||
|
||||
```powershell
|
||||
# 工作目录 D:\orisys_ws\orisys-app;每次替换为唯一 run_id
|
||||
& ./.venv-build/Scripts/python.exe -m pytest apps/studio/tests/test_live_calibration_dialog.py apps/studio/tests/test_calibration_service.py apps/studio/tests/test_model_calibration_ui.py apps/studio/tests/test_recording_recalibration.py apps/studio/tests/test_bare_video_analysis.py apps/studio/tests/test_window_surfaces.py -p no:cacheprovider --basetemp=.scratch/studio-window-refactor/pytest-<run_id> --junitxml=.scratch/studio-window-refactor/<run_id>.xml
|
||||
& ./.venv-build/Scripts/python.exe -m pytest apps/studio/tests/test_ui_smoke.py -k calibration -p no:cacheprovider --basetemp=.scratch/studio-window-refactor/pytest-confirm-<run_id>
|
||||
& ./.venv-build/Scripts/python.exe tools/lint_gate.py
|
||||
powershell -NoProfile -ExecutionPolicy Bypass -File tools/gate.ps1 -Task studio-window-refactor -LintBase HEAD -Serial
|
||||
# 工作目录 D:\orisys_ws
|
||||
& ./orisys-app/.venv-build/Scripts/python.exe scripts/doc_lint.py --files orisys-app/docs/architecture/studio-window-refactor-plan.zh.md orisys-app/docs/architecture/studio-architecture.md
|
||||
```
|
||||
|
||||
| 本轮验收项 | 实际命令与结果 | 证据 |
|
||||
|---|---|---|
|
||||
| 当前阶段/调用方 | 只读检索与 Python AST 计数;S1/S2 已接线、S3 未实施 | 当前源码及 baseline-sha256.json |
|
||||
| 文档检查 | `scripts/doc_lint.py --files orisys-app/docs/architecture/studio-window-refactor-plan.zh.md`;退出码 0 | 本轮 scratch/doc-lint.log |
|
||||
| 文档大小 | `scripts/doc_count.py orisys-app/docs/architecture/studio-window-refactor-plan.zh.md`;预算内 | 本轮 scratch/doc-count.log |
|
||||
| 代码回归/全量门禁 | 本轮未执行,只整理交接;上方是未来命令 | 不复用历史结果冒充当前通过 |
|
||||
|
||||
轮次摘要:1,S0–S2 实施及历史限制见上;2,核对现状并准备 S3 交接,未改生产代码。
|
||||
验收者、独立复跑和决定尚未发生。下一步由 DeepSeek 核对现场、将 owner/status 更新为
|
||||
DeepSeek/working,完成后交 review;验收方决定 done/rework,不能自行宣称接受。
|
||||
本轮无后台进程;证据保留在 `.scratch/studio-window-refactor/handoff-20261019-171832/`,
|
||||
检查结束移除任务 .active,不清理日志。缺失 scratch 材料明确标记,不依赖它继续写入。
|
||||
- 轮次摘要:1)S0–S2;2)准备 S3 交接;3)S3 实施;4)返工 P2;5)行尾、SN 锁定、盘点与身份解析统一(本轮)。
|
||||
- 验收者、时间、决定:轮 3 已独立复跑并返工 P2;轮 4 交付后由用户给出本轮返工计划;本轮待复核。
|
||||
- 下一步:GPT/Claude 复核 R1–R4 证据并独立复跑 R3 测试与行尾检查,决定 done/rework。
|
||||
S4–S6 仍未实施。改动保持未暂存;提交建议见 `.scratch/studio-window-refactor/commit-message.txt`,
|
||||
不含并行任务文件与既有 `finger/sensor.json`。
|
||||
- scratch:证据保留在 `.scratch/studio-window-refactor/`;任务 `.active` 检查后移除,日志不清理。
|
||||
|
||||
Reference in New Issue
Block a user