Files
FreeCADWasmDev/docs/current/CODEX_RESTART_HANDOFF_20260923_1356.md
wangdequan 789e18ca3e
Some checks failed
FreeCAD master CI / Prepare (push) Has been cancelled
CodeQL Advanced / Analyze (actions) (push) Has been cancelled
CodeQL Advanced / Analyze (python) (push) Has been cancelled
Scorecard supply-chain security / Scorecard analysis (push) Has been cancelled
FreeCAD master CI / Pixi (push) Has been cancelled
FreeCAD master CI / Ubuntu (push) Has been cancelled
FreeCAD master CI / Windows (push) Has been cancelled
FreeCAD master CI / Lint (push) Has been cancelled
FreeCAD master CI / WrapUp (push) Has been cancelled
Stale Issues / stale (push) Has been cancelled
CodeQL Advanced (c-cpp) / Analyze (c-cpp) (push) Has been cancelled
Push Crowdin Translations / update-crowdin (push) Has been cancelled
Fetch Crowdin Translations / update-crowdin (push) Has been cancelled
Build Release / upload_src (push) Has been cancelled
Build Release / build (10.13, macos-15-intel, osx-64) (push) Has been cancelled
Build Release / build (11.0, macos-latest, osx-arm64) (push) Has been cancelled
Build Release / build (15.0, macos-latest, osx-arm64) (push) Has been cancelled
Build Release / build (ubuntu-22.04, linux-64) (push) Has been cancelled
Build Release / build (ubuntu-22.04-arm, linux-arm64) (push) Has been cancelled
Build Release / build (windows-latest, win-64) (push) Has been cancelled
Monthly issue metrics / issue metrics (push) Has been cancelled
Continue FreeCAD Web UI parity repairs
2026-09-23 14:03:56 +08:00

7.2 KiB
Raw Permalink Blame History

Codex 重启接续 — 2026-09-23 13:56 CST

暂停状态

用户要求“暂停一下 codex,准备接续文件”。已执行:

systemctl --user stop freecad-web-acceptance.service

暂停后确认:freecad-web-acceptance.service 为 inactive/dead,MainPID=0;没有留下 OpenSCAD ninja、Vite 或 scheduler 子进程。重启 Codex 后不要擅自恢复后台,等待用户要求继续;继续时只恢复这个原单一服务,不启动第二调度器。

工作区:/home/mes123456/FreeCADWasmDev;项目目录:working/FreeCAD。

主线铁律

  • 唯一主线:桌面 FreeCAD UI → Web FreeCAD UI 和功能完全对标,覆盖菜单、工具栏、任务/控制面板、属性页、对话框、右键菜单、状态反馈和完整操作者流程。
  • 按共享工作台、原生文档所有者和构建目标集中处理同类问题,不拆孤立按钮;复用已有 task、facade、owner、原生产物。
  • 只做源码接线、样式、原生调用和必要增量构建;不运行测试、烟测、浏览器、截图、独立类型检查、验收或证据复核。状态使用 implemented_unvalidated;构建成功不是业务完成。
  • 原生构建固定 -j8;前端使用 python3 tools/build_web_frontend.py,该 helper 已包含 web/.freecad-web-frontend-build.lock,避免调度器与前台同时清理/写入 web/dist。
  • 不把空队列、查缺结果、心跳、烟测 68/68、路由标记或构建成功当全部主线完成。所有共享台账用 tools/policy_io.py 原子写入。
  • 不改动正在执行的包,不重复已完成源码/构建;出现冷却或无任务时沿源码游标轮转,保存下一确切文件和行号。

暂停前实际状态

最后运行 ./当前执行情况 --details 的结果:

  • 查询约 2026-09-23 13:56 CST;调度已停止,第 10807 轮。
  • 停止前第 10807 轮为 Import 源码查缺,不验证;当时没有待完成具体任务,也没有排队任务。
  • 最后阶段说明:读取 Import 保存的源码索引和接续游标,只写 discovery JSON,不构建、不验证。
  • 最后命令读取 Import 的 ImportExportPreferencesTask、ReadShapeCompoundMode、VisibleImportDialog、ExpandCompound、UseLinkGroup、ImportHidden、ReduceObjects、ShowProgress、KeepPlacement、exportHidden 等入口;该查缺回合在暂停时尚未写出新的结果文件。
  • 最新已完成查缺文件:docs/current/operator-gap-discovery/run-000312.json(OpenSCAD);该文件记录的 OpenSCAD printVerbose residual 已被实现并登记,不能重做。
  • 状态文件:docs/current/freecad-web-scheduler-status.json;最后 live log:docs/current/continuation-runs/cycle-010807.log。

最近完成且必须复用

OpenSCAD

第 10806 轮已完成并登记:operator-gap-openscad-preferences-runtime-bridge,状态 implemented_unvalidated。importCSG 在 open/insert/processcsg 边界刷新 printVerbose,Add/Refresh 路径也显式刷新;原生目标 FreeCADWebOpenSCADRuntimeProbe 已用 ninja ... -j8 增量构建,前端 helper 已交付。记录保留在 docs/current/operator-gap-openscad-preferences-runtime-bridge-implementation.json。不要重建或重复实现。

Start

docs/current/start-first-start-general-settings-20260923/README.md:

  • start-preferences.tsx 新增 readStartGeneral、saveStartGeneral、FirstStartGeneralSettings、applyStartTheme;Language、UserSchema(Int)、NavigationStyle、Theme 复用现有参数 owner。
  • start-launch-panel.tsx 首次启动面板挂载共享 General settings;Done 等待设置读取完成,设置写入时显示 busy/error。
  • 前端构建退出 0,最后一次约 1.64s;未运行验证。
  • 仓库暂无独立 Web locale loader,语言参数持久化和刷新事件已接通,但静态 shell 即时翻译仍是明确限制;不要把这项描述成已实现完整本地化。

共享工具栏/Tux

  • docs/current/desktop-ui-toolbar-preferences-repair-20260923/README.md:PersistentToolbars root Enabled 与 User FCParam 共同快照、OPFS、广播、失败回滚、重试和焦点恢复。
  • docs/current/desktop-ui-toolbar-visibility-20260923/README.md:工具栏右键/Toolbars 显隐、BaseApp/MainWindow/Toolbars Bool 保存、键盘菜单、隐藏宿主、共享锁。
  • web/src/toolbar-preferences.ts、persistent-toolbar-workspace.tsx、toolbar-visibility-menu.tsx 已完成范围状态为 implemented_unvalidated。

Part UI 包

operator-gap-ui-part-menu-toolbar-family 仍为 open,但已完成的范围必须复用:

  • 菜单层级、工具栏、桌面 SVG、键盘/Esc/焦点在 docs/current/desktop-ui-part-entry-repair-20260923/README.md。
  • 网格转换、采样、附着、Part DocumentProbe 框选和同文档 New Sketch 已实现;New Sketch 的记录为 sketch-delivery.md。
  • 当前真正剩余:PartDesign/其他 owner 的 sketcherCommand 路由、跨 owner 框选、未追溯的快捷键元数据。源码读取阻塞已修复,接续说明在 source-access-recovery.md、owner-routing-blocker.md。
  • 不要依据旧 continuation.md 中“尚未挂载 task / New Sketch 未接线”的历史文字重复施工。

工具/执行问题修复

  • tools/read_implementation_source.py 允许确认包命名源码的一跳直接前端 import 依赖,仍保留 packet、窗口数、总字节、单窗口和指纹预算;用于解决 Part 跨 owner 读取被错误拒绝的问题。记录:docs/current/desktop-ui-part-entry-repair-20260923/source-access-recovery.md。
  • tools/prepare_implementation_business_batch.py 的 sourceAccess 文案已同步该规则;无须重启后台以加载到下一轮,恢复服务后自然读取。
  • tools/build_web_frontend.py 现在用 web/.freecad-web-frontend-build.lock 串行化共享 web/dist 写入;等待超过 1800 秒返回 124,不反复重启。
  • 上下文 413 修复仍有效:scheduler session token limit 24000、prompt byte limit 16000,超限保存有界接续,不重复发送超大请求。记录:docs/current/context-budget-recovery-20260923/README.md。

恢复后的第一步

  1. 读取本文件、docs/WEB_BUSINESS_MIGRATION_RULES.md、docs/current/execution-policy.json。
  2. 确认服务仍为 inactive;用户明确要求继续后,运行 systemctl --user start freecad-web-acceptance.service,只恢复原服务。
  3. 运行 ./当前执行情况 --details,读取新的 live cycle;不要把旧的 10806 OpenSCAD 或 13:47 快照当当前状态。
  4. 读取当前 cycle-*.log 和新的 Import discovery JSON。若 Import 产生具体 gap,先登记/执行整组包;若为空,沿其 nextCursor 轮转,不宣称完成。
  5. 对任何现有 open key,优先使用其 continuationNotes、lastExecutionCheckpoint 和记录路径;不重复已完成构建。原生修改才构建受影响目标 -j8;前端相关组只调用一次锁定 helper。
  6. 每轮继续保持不验证。汇报格式:处理模块 | 对标项 | 源码落点 | 路由入口 | OCCT 边界 | 状态 | 结论。

暂停前台账结论

当前没有已登记的具体 open 任务,但这只是调度队列快照;桌面 UI → Web UI 和功能完全对标尚未完成。不要用空队列或 68/68 烟测记录改变完成定义。