Files
cnc_wams/PROJECT_COMPLETION_TRACKER.md

10 KiB

Project Completion Tracker

Last updated: 2026-06-16 CST

This file tracks the overall completion state of the LinuxCNC WASM/browser port. Use it for project-level status and acceptance tracking. Use text14.txt for turn-by-turn continuation notes and next-batch execution records.

Current Status

  • Active continuation file: text14.txt
  • Latest completed batch: INI panel session readiness workflow
  • Latest relevant commit: use git log -1 --oneline after each committed batch
  • Working tree at tracker creation: clean
  • Required policy: LinuxCNC remains the only CNC semantic source
  • Current scope status: complete after final clean-tree release validation

Completion Definition

The project is complete for the current scope when all of the following are true:

  • Browser UI workflows are usable and validated:
    • INI panel
    • control page
    • workflow overview
    • external shell handoff
    • OPFS/session persistence
  • SDK/API surface exposes stable helpers for external callers.
  • Sim config coverage has clear pass/skip/promotion state.
  • Host/runtime blocked families are explicitly documented and not falsely promoted.
  • All required gates pass.
  • Documentation explains what is supported, blocked, and how to verify it.
  • text14.txt contains the final completion record and the working tree is clean.

Area Status

Area Status Notes
LinuxCNC semantic boundary Stable JS/browser remains glue, staging, OPFS, WASM/browser boundary, docs, and tests only.
Vendor/source guard Stable verify_vendor_sync.sh and standalone semantic guard are required every batch.
Interpreter WASM smoke Stable interp_wasm_node_smoke=ok.
Sim config inventory Stable with skips executed=28, passed=28, skipped=131, unexpected_fail=0; docs/sim-configs-coverage-handoff.md records the release-gate baseline.
Native nc_files baseline Stable Last recorded Layer 1: total 107, pass 101, expected_fail 6, unexpected_fail 0.
Native sim configs baseline Stable Last recorded Layer 2: total 159, pass 151, expected_fail 8, unexpected_fail 0.
OPFS/session persistence Stable for current scope Browser smoke passes, SDK re-exports OPFS/session helpers including readMachineSessionReadiness(), and docs/opfs-session-persistence.md defines the project-level release gate.
SDK/API surface Stable for current scope SDK re-exports core, OPFS/session readiness/load helpers, sim-config staging, and INI panel shell/workflow overview helpers with a Node surface smoke.
Browser/UI workflow Stable for current scope Workflow overview embedding mount DOM closure is complete, and INI panel session workflows expose OPFS/session readiness before loading WASM session state.
Workflow overview embedding Stable for current scope Report/display/render, DOM contract/readiness/renderer, mount result/display/render, mount DOM contract/readiness/renderer/wrapper exist.
Host/runtime boundary proof Stable blocked state Host smoke passes; runtime families remain blocked and docs/host-runtime-boundary-handoff.md records host readiness, promotion blockers, dispatch, and evidence gates.
Documentation/release gate Stable for current scope docs/project-release-handoff.md links README, panel entry, SDK, OPFS/session, sim-config, host/runtime, source reuse, drift, and tracker acceptance paths.
Project release gate wrapper Stable tests/host/verify_project_release_gate.sh runs the documented minimum release validation commands and ends with project_release_gate=ok.

Blocked Runtime Families

Do not promote these without real LinuxCNC-owned runtime proof and the required native -> Node/WASM -> browser/host validation sequence:

  • L4-USER-M-PROCESS
  • L4-TOOL-DB
  • L4-PYTHON-REMAP

Do not run these unless the host environment actually provides the needed LinuxCNC runtime:

ENABLE_MILLTURN_USER_M_RUNTIME_PROBE=1 bash wasm-port/tests/native/probe_millturn_user_m_runtime.sh
ENABLE_TOOL_DB_RUNTIME_PROBE=1 bash wasm-port/tests/native/probe_tool_db_runtime.sh
ENABLE_PYTHON_REMAP_RUNTIME_PROBE=1 bash wasm-port/tests/native/probe_python_remap_runtime.sh

Remaining Work

Execute these in order unless a later user request explicitly changes priority.

1. Browser/UI Workflow Closure

Current next task:

  • No required work remains for the current scope. Future work should start from a new scope request or from a real LinuxCNC host runtime becoming available for the blocked runtime families.

Then complete the closure:

  • Mount render-state DOM renderer is complete.
  • Non-throwing mount workflow wrapper is complete.
  • Expose each helper through:
    • createIniPanelLaunchApiManifest().methods
    • createIniPanelShellViewModel()
    • window.linuxCncIniPanelLaunchApi
    • window.linuxCncIniPanelWorkflowOverviewApi
  • Cover each helper in:
    • UI Node smoke
    • launch API manifest test
    • shell integration manifest test
    • entry docs test
    • workflow overview browser smoke
    • launch browser smoke
    • shell integration browser smoke
    • docs/panel-entry.md

Completion criteria:

  • External shell can render workflow overview embedding mount state with a custom DOM contract.
  • Missing DOM returns structured blocked results where applicable.
  • No control buttons or CNC semantic parsing are added.

2. SDK/API Surface Consolidation

Work items:

  • Audit runtime/sdk/src/index.js. Done.
  • Export stable helpers that external callers should use. Done for core, OPFS/session, sim-config staging, and INI panel shell/workflow overview helpers.
  • Add or update SDK smoke for export shape and manifest compatibility. Done via tests/sdk/node/verify_sdk_surface.sh.
  • Update runtime/sdk/README.md with usage examples and unsupported areas. Initial SDK surface update done; final docs pass still pending.

Completion criteria:

  • SDK exports match documented browser/UI helper surface.
  • SDK tests pass in Node.
  • No CNC semantics are implemented in JS.

3. OPFS/Session Persistence Summary

Work items:

  • Add a project-level OPFS/session workflow summary helper or report. Done as docs/opfs-session-persistence.md.
  • Include machine files, session snapshot, readonly control status, and handoff readiness. Done through linked UI docs plus browser and host gate references.
  • Add browser smoke coverage for save -> restore -> readonly status -> shell handoff. Existing browser smoke remains the gate for this workflow.
  • Document OPFS scope and failure modes. Done.
  • Add docs smoke for the project-level handoff. Done via tests/docs/node/verify_opfs_session_docs.sh.

Completion criteria:

  • browser_ini_opfs_smoke=ok remains stable.
  • External callers can inspect persistence readiness and failures.
  • opfs_session_docs_node_smoke=ok is included in the host aggregate gate.

4. Sim Config Coverage Promotion Matrix

Work items:

  • Keep inventory unexpected_fail=0.
  • Make skip reasons machine-readable and documented:
    • ASSET_ONLY
    • L4_PYTHON_REMAP
    • L4_TOOL_DB
    • L4_USER_M_PROCESS
    • NON_MAIN_CLASS
    • UPSTREAM_DEMO
  • Promote only configs with LinuxCNC-owned proof.
  • Add short release handoff for current inventory baseline. Done via docs/sim-configs-coverage-handoff.md.
  • Add docs smoke for inventory baseline and skip reason map. Done via tests/docs/node/verify_sim_configs_coverage_docs.sh.

Completion criteria:

  • No skipped config lacks a documented reason.
  • No blocked runtime family is falsely promoted.
  • sim_configs_coverage_docs_node_smoke=ok is included in the host aggregate gate.

5. Host/Runtime Boundary Reports

Work items:

  • Consolidate runtime family proof reports. Done via docs/host-runtime-boundary-handoff.md.
  • Keep missing host runtime as blocked. Done; current status remains host_blocked_for_all_opt_in_native_probes.
  • If real runtime becomes available, validate in native -> Node/WASM -> browser/host order.
  • Add docs smoke for host/runtime boundary handoff. Done via tests/docs/node/verify_host_runtime_boundary_docs.sh.

Completion criteria:

  • verify_host_smokes.sh remains stable.
  • Boundaries are documented and machine-readable.
  • host_runtime_boundary_docs_node_smoke=ok is included in the host aggregate gate.

6. Documentation/Release Gate

Work items:

  • Update README.md. Done.
  • Update docs/panel-entry.md. Done.
  • Update docs/source-reuse-map.md. Done.
  • Update docs/drift-report.md. Done.
  • Add or refresh final acceptance checklist. Done via docs/project-release-handoff.md.
  • Add docs smoke for project release handoff. Done via tests/docs/node/verify_project_release_handoff_docs.sh.

Completion criteria:

  • A new developer can run validation from README/docs without reading old text1 through text13.
  • project_release_handoff_docs_node_smoke=ok is included in the host aggregate gate.

Required Gates

Run these for each implementation batch:

git diff --check
wasm-port/tools/verify_vendor_sync.sh
wasm-port/tools/verify_no_standalone_cnc_semantics.sh
SKIP_INTERP_BUILD=1 wasm-port/tests/wasm/node/verify_interp_wasm.sh
SKIP_INTERP_BUILD=1 wasm-port/tests/wasm/node/verify_sim_configs_inventory_wasm.sh
SKIP_INI_BUILD=1 SKIP_INTERP_BUILD=1 wasm-port/tests/browser/verify_ini_panel_browser.sh
wasm-port/tests/ui/node/verify_ui_node_smokes.sh
wasm-port/tests/host/verify_host_smokes.sh

Or run the same current-scope minimum gate through:

wasm-port/tests/host/verify_project_release_gate.sh

Run this if browser interpreter behavior is touched:

SKIP_INI_BUILD=1 SKIP_INTERP_BUILD=1 wasm-port/tests/browser/verify_interp_browser.sh

Run these for native/source/staging or promotion work:

wasm-port/tests/native/verify_nc_files.sh
wasm-port/tests/native/verify_sim_configs.sh

Final Acceptance Checklist

  • Working tree is clean.
  • Latest text14.txt record says the project is complete for current scope.
  • git diff --check passes.
  • Vendor sync guard passes.
  • Standalone CNC semantics guard passes.
  • Interpreter WASM Node smoke passes.
  • Sim config WASM inventory has unexpected_fail=0.
  • UI Node smoke passes.
  • Browser INI panel smoke passes.
  • Host aggregate smoke passes.
  • Project release gate wrapper passes.
  • Runtime blocked families remain documented.
  • Project release handoff docs smoke passes.
  • README/docs explain supported workflows and blocked items.