Files
FreeCADWasmDev/docs/current/CONTINUOUS_ACCEPTANCE.md

8.7 KiB

Continuous Acceptance And Semantic IFC Export

Latest IO continuation (2026-09-17): PART_COLOR_IO_PROGRESS.md. Part Import and Export passed first acceptance with native STEP/IGES face colors, multi-object geometry, real downloads and FCStd/OPFS restoration. The supplied Import library is reused in DocumentProbe; valid IGES free compounds use the native link-group reader. Old-item validation remains paused and background development is running.

Latest native task (2026-09-17): PART_CROSS_SECTIONS_PROGRESS.md. Cross-sections now has native document creation, axis/multiple-plane controls, preview outlines, undo/redo, storage and thirty passing first-acceptance scenarios. Its correct desktop source is Part/Gui/CrossSections.cpp; missing source filenames no longer produce misleading scope-rejection diagnostics. Old-item validation stays paused.

Latest continuation (2026-09-17): PART_NEW_DOCUMENT_PROGRESS.md. NewDoc passed fifteen first-acceptance scenarios after fixing stale mounted document context and overly strict floating-point assertions. The bounded reader now permits exact source/case paths within the selected module, without requiring premature coverage declarations; directory scans and duplicate loading remain restricted. Old-item validation stays paused. Background implementation resumed unchanged after a short, stable acceptance window.

Latest Part feature: PART_MAKE_FACE_PROGRESS.md. Face From Wires uses native Part::Face/Sources and passes twenty-one cases covering holes, nested/disjoint contours, source edits, transactions and FCStd/OPFS restoration. Old-item validation remains paused. Local dependencies were sufficient; the user also authorizes domestic download sites when downloads become necessary.

Latest new export: WEB_GRAPH_EXPORT_PROGRESS.md. The Graphviz export task passed nineteen production-browser scenarios with actual downloaded files, both native owners, FCStd restoration and desktop/mobile controls.

Latest new coverage: WEB_DEPENDENCY_GRAPH_PROGRESS.md. Dependency Graph passed seven native/browser scenarios against both Part owners and real FCStd external links. Only this newly covered requirement was formally executed; no old-item regression sweep was run.

Latest user direction (2026-09-16): prioritize missing executable coverage and implementation gaps. Pause repeat validation of previously verified business requirements, including IFC rechecks and stale-evidence refreshes. Keep focused first acceptance for newly completed gaps. prioritizeCoverageGaps and deferPreviouslyPassedValidation in execution-policy.json enforce this order. Historical passes remain in the ledger; deferral never makes stale proof current and does not reduce the 1508-requirement scope. Older refresh instructions below are superseded while this policy is active.

The planner selects uncovered development first, then cases awaiting first acceptance. Historical passing IDs are excluded from candidates and blocked before acceptance builds/execution, including direct runner invocations.

Latest geometry continuation: PART_CHECK_GEOMETRY_PROGRESS.md. Current-document multi-object BREP/BOP inspection passed 15 native and browser scenarios. Read, check and close preserve dirty shapes and history. A synchronous WASM BOP thread-pool stall was fixed using serial native analysis under Emscripten. Matching evidence is reusable without reloading the kernel.

Unrelated development batches now reuse current IFC evidence; only the selected semantic batch receives the full contract/proof-area/verifier instructions. Changed dependencies still invalidate evidence and require verification. Outdated Part boundary notes are retained in part-business-boundary-history.json; the main Part contract contains current limits. Its executable configuration, covered IDs and assertions are unchanged by this documentation cleanup.

Latest service continuation: PART_VIEW_SERVICE_PROGRESS.md. Both Part document view endpoints passed actual owner-isolation, view-state, persistence and browser cases. Invalid correlated requests preserve their Worker/documents. After two refresh-only acceptance batches, the continuous planner reserves an uncovered-development opportunity while retaining runtime repair priority.

Latest verified implementation and execution improvements: IFC_MEMBERSHIP_PROGRESS.md. The IFC4 semantic supplement now passes its 13 declared proof areas, including additions/deletions and shared material and classification edits. Explicit unsupported schemas and edits remain documented. Continue other pending requirements. Unchanged passing or incomplete cases preserve evidence without reloading WASM; use selected commands with --reuse.

Latest Part continuation: PART_BOX_SELECTION_PROGRESS.md. Face box selection now passes native camera/visibility/reference checks and mounted browser drag, selection modes and FCStd restoration. Chamfer and Builder remain independently covered (PART_CHAMFER_DOCUMENT_PROGRESS.md, PART_BUILDER_DOCUMENT_PROGRESS.md). Reuse current Builder evidence; do not repeat metadata-only routing diagnostics or stop solely because four source windows were used.

Latest execution repair: WEB_ACCEPTANCE_TIMEOUT_PROGRESS.md. The Web batch now respects its existing 840-second contract, cleans up its case process group on outer interruption, and selects its declared frontend build. All 20 Web requirements passed and an identical request reused proof without rebuilding or reloading WASM. Continue remaining implementation and coverage gaps.

Authorization: 2026-09-16. Finish the remaining 1342 original requirements and full semantic IFC export without waiting for further confirmation between ordinary in-scope batches. Reuse the supplied local sources and completed work.

The original 1507 requirements remain. Semantic export is an additional, explicit requirement in business-acceptance-supplement.json, bringing the combined scope to 1508. The existing geometric IFC passes cannot satisfy it. Its contract is IFC_SEMANTIC_EXPORT_CONTRACT.md.

Execution

The existing scheduler runs one development batch at a time. It authors real cases, repairs implementations, performs scoped builds and executes the fingerprinted acceptance pipeline. The watchdog and user service retain continuation after a turn exits or a process fails. No parallel workspace writers are required.

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

Status and evidence:

  • freecad-web-scheduler-status.json: current batch, process, activity and error.
  • freecad-web-scheduler-watchdog-status.json: supervisor status and restarts.
  • scheduler-progress.json: attributable outcomes and retry/cooldown state.
  • business-acceptance-reconciliation.json: individual acceptance and missing cases.
  • web-business-completion-audit.json: actual completion, including supplemental scope.
  • continuation-runs/: retained per-turn execution records.

The one-shot run_unattended_business_acceptance.py remains useful for existing cases, but is not the continuous development engine.

Completion Rules

Do not delete original requirements, approve boundaries silently, substitute route/build receipts for behavior, or edit passing statuses by hand. Required inputs/results must come from real WASM or browser execution. Reuse matching proof; invalidate it when its relevant source, cases, contracts or artifacts change. Keep original failures and classify external blockers explicitly.

The semantic IFC requirement has priority. When it is temporarily cooling down, other independent business gaps continue. Source/API inventory is navigation only; historical full-parity gates do not replace business tests.

No deployment, publication, Git push, messages to other people or external destructive operations are authorized by this service. Runtime completion is determined by the evidence ledger, never by the fact that the service started.

Startup Review

The first automated attempt incorrectly inferred IFC classes from labels; this was replaced with native IfcType string/enumeration properties and tested against misleading display labels. A later attempt attached broad semantic coverage tags to geometric cases without implementing the corresponding behavior. Those tags were removed and the passing claim invalidated.

An independent native roundtrip verifier is now enforced by the outer runner. It confirms remaining GlobalId, typed-property and hierarchy failures on real IFC input. The service uses the higher reasoning profile for all implementation batches, cannot obtain acceptance solely from its own result tags, and must retain all original requirements plus the mandatory semantic supplement. Original failed and invalid evidence files remain available for audit.