Files
FreeCADWasmDev/docs/current/unattended-efficiency-v15.md
wangdequan 9a7c4f0335 Save FreeCAD Web workspace sources and user validation evidence
IFC native binding remains incomplete; preserve accurate test results.
2026-09-15 22:01:58 +08:00

32 lines
2.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 无人值守效率优化 v15
## 本轮基线
`docs/current/efficiency-current.md` 覆盖最近 20 个周期(4770 附近):
- `provider/stream-wait`:262.1 秒,占 29.9%,6 个周期,平均 43.69 秒。
- `agent/initial-decision`:238.5 秒,占 27.2%,86 次,平均 2.77 秒。
- `agent/post-read`:203.2 秒,占 23.2%,14 次,平均 14.51 秒。
- `agent/idle-stop`:74.5 秒,占 8.5%,1 次;对应一次无进展回合的延迟收口。
- 20 周期中只有 1 个新业务结果,9 个恢复周期,恢复耗时 384.2 秒。
命令和源码读取本身只有 1.2 秒,占 0.1%;瓶颈是外部断流等待和模型在已知无进展状态下重复决策,不是本地搜索或构建。
## 已实施
- 断流错误后的无命令等待窗口默认从 45 秒降为 25 秒。活动命令仍不会被打断;环境变量 `FREECAD_PROVIDER_NO_PROGRESS_SECONDS` 可覆盖。
- 提供方连续失败退避增加 60 秒上限,避免 80、160、300 秒的无效空档;`FREECAD_PROVIDER_BACKOFF_MAX_SECONDS` 可覆盖。
- 模块连续无进展阈值从 6 次降为 3 次,达到阈值后进入模块冷却并重新规划;环境变量 `FREECAD_MODULE_NO_PROGRESS_LIMIT` 可覆盖但最低为 3。
- 已有至少 2 次无进展、恢复级别或当前批次静态 readiness 全部缺失时,业务回合最多读取 2 个源码片段、硬上限 4 个,并将空闲收口限制为 45 秒。正常业务回合参数不变。
- 继续保留“已完成修改立即进入外层构建/验收”的路径和所有可复用业务证据;没有修改或实际结果的回合不会增加完成计数。
## 验证
- `python3 -m unittest tools/test_scheduler_performance.py tools/test_unattended_scheduler.py tools/test_scheduler_efficiency.py tools/test_scheduler_business_recovery.py`:115 项通过。
- `python3 -m py_compile tools/run_freecad_web_scheduler.py tools/scheduler_progress.py`:通过。
- 既有 Draft 四条业务证据复用:首次 4.874 秒,复用 0.221 秒,减少 95.47%;该优化继续有效。
## 预期运行行为
外部服务正常时,业务实现与验收流程不变。发生断流时,本地会更快进入退避;同一模块连续无进展时会更快冷却并换取下一组业务,避免无人值守空转。后续状态以 `show_freecad_web_scheduler.py` 的新周期实测为准,不把节省量提前计入业务完成进度。