Files
FreeCADWasmDev/docs/current/CODEX_RESTART_HANDOFF_20260917.md

13 KiB

Codex Restart Handoff

2026-09-19 增量巡检已启用

用户已授权开始处理输入变化和具体新故障。现有单一服务每 10 分钟 核对烟测输入与新故障,未变不执行;同输入失败不循环重试。首轮 68 组未变、新故障 0、重复烟测 0。实现及接续见 CHANGE_WATCH_20260919.md。 下方“没有正在执行的任务”是此前烟测收口状态;现在定时巡检已经启用。

Latest resumable smoke completion — 2026-09-19

The user again authorized comprehensive, non-repeating, resumable smoke after migration completion. Read comprehensive-smoke-20260918/RESUME_20260919.md. All 68 groups pass, covering all 250 declared business IDs plus 3 integration IDs. The previously omitted 12 Web desktop-command cases are now included. Their old Box dimensions setup was corrected; product sources were not modified this round. Final full resume returned 68 reused groups and executed no business cases. Run python3 tools/run_web_module_smoke_once.py to resume changed/unfinished inputs; never start migration again or infer missing functionality from absent test cases. No pending smoke item remains. Earlier 67-group notes are historical.

Latest smoke repair closure — 2026-09-18

This section supersedes the historical validation pause below. The user confirmed migration complete, authorized comprehensive resumable smoke, and explicitly requested repair of its original 10 unsuccessful groups. All 10 are now closed; 67 groups have cumulative pass evidence. Preserve the migration baseline. Read comprehensive-smoke-20260918/README.md and repair-completion.json first. Part 48/48, PartDesign 47/47, Sketcher 24/24 original IDs retained. Only repaired and affected paths were rerun; historical fingerprints/dates were not relabeled as current final-binary certification. No unresolved task remains in this scope. Use python3 tools/show_web_module_smoke_progress.py --json for current status. Do not restart full migration or repeat unchanged tests. The scheduler can remain waiting for concrete new defects; old development cycle counts are not smoke work.

Highest-priority stage update — 2026-09-18 13:45 Asia/Shanghai

User now explicitly requests missing desktop functionality and panels first, direct reuse of completed work, and arranging verification only after ALL functionality is implemented. Automated acceptance, test writing, regression, browser verification and model maintenance are paused. Necessary incremental compile/link/asset sync and compiler-error repair remain allowed. Existing watchdog, heartbeat and per-round reports remain active.

Policy: implementation-only-user-validation, automaticValidation=false, automaticMaintenance=false. The old acceptance-driven turn was drained and the watchdog started implementation cycle 9482 (Web). Do not resume old validation instructions below. Read the newest top section of WEB_BUSINESS_MIGRATION_RULES and the execution plan. Keep all historical evidence and requirements intact; reuse completed implementation, never turn stale verification into new work.

Latest user iron rule — 2026-09-18 anti-drift and reuse

The user explicitly required “你多次跑偏了,要保证不要再跑偏了” to be written into the iron rules. It is at the top of docs/WEB_BUSINESS_MIGRATION_RULES.md. Continue desktop FreeCAD functionality AND panels in the primary Web UI, reuse completed work and finish user workflows. Do not substitute more planning, monitoring, repeat acceptance or partial counts for delivery.

The repeated-work audit and tested fixes are recorded in repetition-audit-20260918/README.md. Work packets now include retainedBusinessResults from hash-verified selected evidence (historical, not automatically current passing proof). Begin from that remaining work. Pure valid evidence reuse precedes historical execution deferral; changed old inputs remain deferred. Maintenance skips completed batches without new faults. Original scope, IFC semantics, assertions and acceptance ledger are preserved.

Latest direction — 2026-09-18 desktop functionality and integrated UI

Read DESKTOP_WEB_DELIVERY_PLAN_20260918.md and DESKTOP_WEB_UI_CONTRACT.md first. The user reiterated full desktop-to-Web functionality/UI and maximum reuse of completed work. Original 1508 IDs and historical evidence remain; three newly specified UI integration requirements bring scope to 1511. Policy now prioritizes integrating the existing primary workspace, real cross-workbench document editing, and native task interactions, with bounded rotation across modules and unfinished packages. Known implementation gaps precede case-only work. API/inventory routes must not displace usable user workflows. Existing native owners, workspaces, components, adapters, storage and artifacts are the starting point.

The live service continued into cycle 9413, Web primary-workspace integration, after this review. Inspect current status before editing. Preserve the background agent's ongoing UI changes. Do not start another scheduler. The previous dated Section Cut entries below are historical, not the current global work order.

Continuation update — 2026-09-17 21:09 Asia/Shanghai

The latest local continuation is part-section-cut-recovery-checkpoint.md (13:08 UTC entry). It supersedes the older Section Cut pending list below. New increments: empty-session Apply state; native intersecting BooleanFragments mode; source-placement link correction; whole-result surface transparency; preflight preventing out-of-bounds apply/source-removal from discarding redo. Focused native/browser results and screenshots are recorded there. The complete command remains not_implemented; automatic cut-face color mapping and independent face/fragment transparency remain unfinished.

Current Section Cut acceptance export runs runSectionCutOpacityCases. Previous legacy, empty-source and fragments helpers/evidence are retained and deferred. TypeScript, geometry boundary, focused native build, assets and production Vite build completed. The geometry audit display-owner omission for PartDesign face colors and its stale renderer-count assertion were fixed, without weakening procedural geometry rejection.

The existing service was briefly frozen for isolated shared builds/evidence and was thawed afterward. It continued into Sketcher work after the primitive cycles; inspect current status before editing. Do not start another daemon or overwrite the background Sketcher/three-point-circle changes. No IFC or unrelated historical gate was rerun.

Saved 2026-09-17 20:06 Asia/Shanghai (12:06 UTC) at the user's request before restarting Codex. This is a continuation checkpoint, not a completion report.

User Direction

Continue unattended implementation of the Desktop FreeCAD to Web FreeCAD business scope: 1507 original requirements plus supplemental IFC semantic export. Prioritize real missing functionality, then missing executable coverage. Use local sources and materials. Do not repeat previously completed verification, refresh stale passing evidence, or rerun IFC just to update timestamps. Keep original requirements and historical evidence. Partial assertions do not imply a whole requirement passes. No additional permission is needed for this work.

Live Service At Save Time

  • Repository: /home/mes123456/FreeCADWasmDev/working/FreeCAD.
  • Existing user service: freecad-web-acceptance.service; active, running and unfrozen. Main PID 3460941. It was left running; no second scheduler was started.
  • Cycle 9358, child PID 1014561, module Part, batch 4aa3ea5e85f9c4b3e4412ba2, status codex_turn_running.
  • Heartbeat at 12:06:27 UTC. The child announced it is implementing circle from three points using native geometry and focused native/browser cases.
  • Last observed command read part-document-facade.ts for circle parameter calculation. Log: docs/current/continuation-runs/cycle-009358.log.
  • These are observations, not guaranteed future state. On restart inspect docs/current/freecad-web-scheduler-status.json and the current log before editing. The live cycle may have advanced or completed the named gap.
  • Existing local application: http://127.0.0.1:5180/workbench.html.

Completed Recent Increments

Read the newest checkpoint first; older pending lists can be stale.

  1. PART_CYLINDER_SKEW_PROGRESS.md: X/Y cylinder skew controls, native geometry, old three-parameter compatibility and expression-conflict atomic rollback. Nine new scenario groups completed in 14.156 s. Evidence: business-evidence/13fb362e5bcf598a7f1f90a6-20260917T110758963286.json.
  2. PART_PRIMITIVES_PROJECTION_PROGRESS.md, 10:51 UTC continuation: active Part membership and nested-container world display, App::Link snapshot geometry and linked projection selectors. Primitive and projection whole commands remain incomplete. Preserve all background changes.
  3. PART_PRIMITIVE_PLACEMENT_PROGRESS.md: position and arbitrary axis rotation, atomic dimension/placement history, FCStd restoration and expression-conflict rollback. Eight new groups, 18.523 s; evidence suffix 20260917T101840425546.
  4. PART_HELIX_SPIRAL_PROGRESS.md: native Helix/Spiral, handedness, geometry and persistence; repaired line sampling that skipped whole spiral turns. All sixteen primitive types are exposed, including earlier Wedge and the six types in PART_ADDITIONAL_PRIMITIVES_PROGRESS.md. Do not recreate them.
  5. Recent unattended cycles 9350-9353 changed Section Cut color display and persistence assertions, and Sketcher response validation. At the 19:31 check these commands still had remaining semantic workflows. Consult the current part-section-cut-recovery-checkpoint.md and sketcher-bd4cea80c7070606e9a37648-checkpoint.md rather than assuming passes.

All listed primitive increments intentionally retained not_implemented for the complete Part_Primitives command. No increase in accepted requirement count was claimed from their scenario-group totals.

Remaining Work And Efficiency

  • At the last primitive checkpoint: three-point circle interaction (now being handled by the live service), desktop location picking, expression binding UI, and live preview/accept/reject transaction lifecycle.
  • Projection: preview transaction lifecycle and viewport subelement selection.
  • Section Cut and Sketcher: see their latest checkpoint and current evidence.
  • Overall 1508 requirements and full IFC semantics remain unfinished; do not quote historical coverage counts as a freshly reconciled current total.
  • At the 19:31 health inspection the service had real code changes, but scoped search rejections and source-reader budget exhaustion were still interrupting progress. A live heartbeat alone is not evidence of useful delivery. Inspect actual mutations and semantic results before reporting normal progress.
  • Preserve the policy in docs/current/execution-policy.json: continuous development, prioritize gaps, defer previously passed verification.
  • Do not invoke old primitive helpers unchanged. Keep their evidence and add focused cases for the newly implemented behavior. Formal runner: python3 tools/run_business_acceptance.py --module Part --ids Part:desktop:Part_Primitives --reuse. Verify which helper is currently exported by part-primitive-business-cases.mjs because the live service may have advanced it after this handoff.

Operational Notes

  • The worktree contains extensive existing user/background changes. Do not reset or revert them. Avoid an unscoped outer git status/diff; the outer .git points into freecad-source/.git. Use narrow native paths for diff checks.
  • Coordinate shared source/build/evidence writes with the existing service. Never freeze a service that owns the build lock and then wait for that lock. A freeze can race with a build start: check again after freezing. Let any existing writer finish before acquiring the lock. Thaw after isolated work and verify actual new activity. Do not start a duplicate unattended daemon.
  • Native build uses tools/web_build_lock.py, target FreeCADWebDocumentProbe, EM_CONFIG=/home/mes123456/FreeCADWasmDev/working/FreeCAD/tools/emscripten-writable-config.py, EM_CACHE=/tmp/freecad-p6-emcache. Sync with node tools/sync-assets.mjs after build, then production Vite build with FREECAD_WEB_FAST_LINK=ON if needed.
  • TypeScript: web/node_modules/.bin/tsc --noEmit -p web/tsconfig.json.
  • Native inline probes must terminate PThread workers. Browser uses existing Playwright helper and /usr/bin/google-chrome.
  • For new scene work, check desktop/mobile screenshots, actual geometry/pixels and orbit movement. The geometry canvas is under an aria-labeled div, not a region. Preserve atomic rollback, native types and real saved-document edits.
  • No subagents were spawned. Follow the current session's delegation rules.

Restart action: read this handoff, inspect live status and the newest checkpoint for its active batch, then continue an unclaimed gap without duplicating the currently running implementation or completed acceptance work.