# Project Completion Tracker Last updated: 2026-06-15 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: sim-config coverage release-gate docs - 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 ## 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 | In progress | Browser smoke passes, SDK re-exports OPFS/session helpers, and `docs/opfs-session-persistence.md` defines the project-level release gate. | | SDK/API surface | In progress | SDK re-exports core, OPFS/session, sim-config staging, and INI panel shell/workflow overview helpers with a Node surface smoke. | | Browser/UI workflow | In progress | Workflow overview embedding mount DOM closure is complete; current focus is SDK/docs/release gate consolidation. | | Workflow overview embedding | In progress | Report/display/render, DOM contract/readiness/renderer, mount result/display/render, mount DOM contract/readiness/renderer/wrapper exist. | | Host/runtime boundary proof | In progress | Host smoke passes; runtime families below remain blocked. | | Documentation/release gate | In progress | OPFS/session and sim-config release gates are documented and smoke-tested; final README/docs pass still pending. | ## 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: ```bash 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: - Consolidate host/runtime boundary reports and final release-gate documentation. 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. - Keep missing host runtime as blocked. - If real runtime becomes available, validate in native -> Node/WASM -> browser/host order. Completion criteria: - `verify_host_smokes.sh` remains stable. - Boundaries are documented and machine-readable. ### 6. Documentation/Release Gate Work items: - Update `README.md`. - Update `docs/panel-entry.md`. - Update `docs/source-reuse-map.md`. - Update `docs/drift-report.md`. - Add or refresh final acceptance checklist. Completion criteria: - A new developer can run validation from README/docs without reading old `text1` through `text13`. ## Required Gates Run these for each implementation batch: ```bash 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 ``` Run this if browser interpreter behavior is touched: ```bash 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: ```bash 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. - [ ] Runtime blocked families remain documented. - [ ] README/docs explain supported workflows and blocked items.