diff --git a/PROJECT_COMPLETION_TRACKER.md b/PROJECT_COMPLETION_TRACKER.md index 10c7237..ae59781 100644 --- a/PROJECT_COMPLETION_TRACKER.md +++ b/PROJECT_COMPLETION_TRACKER.md @@ -9,7 +9,7 @@ turn-by-turn continuation notes and next-batch execution records. ## Current Status - Active continuation file: `text32.txt` -- Latest completed batch: remaining 77 SKIP promotion audit +- Latest completed batch: five-axis TRT browser diagnostics evidence expansion - 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 @@ -45,7 +45,7 @@ The project is complete for the current scope when all of the following are true | Simulation test program library | Active | Built-in browser simulation programs live in `wasm-port/runtime/ui/simulation/programs/`, one module per program, exported through `programs/index.js`; `verify_real_simulation_programs.sh` checks directory-backed inventory, IDs, defaults, and playback contracts. | | 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=82`, `passed=82`, `skipped=77`, `unexpected_fail=0`; `docs/sim-configs-coverage-handoff.md` records the release-gate baseline. The 2026-06-20 remaining-skip audit found 2 skipped main-program rows and 0 rows with `promotion_allowed=1`, so the baseline must not change without new LinuxCNC-owned native/Node/browser proof. | +| Sim config inventory | Stable with skips | `executed=82`, `passed=82`, `skipped=77`, `unexpected_fail=0`; `docs/sim-configs-coverage-handoff.md` records the release-gate baseline. The 2026-06-20 remaining-skip audit found 2 skipped main-program rows and 0 rows with `promotion_allowed=1`, so the baseline must not change without new LinuxCNC-owned native/Node/browser proof. Browser diagnostics evidence expansion now includes five ready source-derived REP candidates: `woodpecker-on-abort`, `puma-cube`, `melfa-example`, `trt-boat-xyzac`, and `trt-xyzac-switchkins`, all with `promotionAllowed=false`. | | 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 `createMachineSessionPersistenceSummary()`, the UI exposes `getMachineSessionPersistenceSummary()`, and `docs/opfs-session-persistence.md` defines the project-level release gate. | diff --git a/text32.txt b/text32.txt index 9684c91..8c84b74 100644 --- a/text32.txt +++ b/text32.txt @@ -148,3 +148,134 @@ wasm-port/tests/sdk/node/verify_sdk_surface.sh SKIP_INTERP_BUILD=1 wasm-port/tests/browser/verify_real_simulation_browser.sh wasm-port/tools/verify_no_standalone_cnc_semantics.sh ``` + +六、本轮接续推进:五轴 TRT browser diagnostics evidence expansion + +执行时间:2026-06-20 CST + +已按上面的下一步计划推进,不改 inventory baseline,不把 77 个 SKIP +强行 promotion。 + +新增 browser diagnostics evidence expansion 候选: + +```text +trt-boat-xyzac + gcode=linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/demos/boat-xyzac.ngc + ini=linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt.ini + remap_subs=428remap.ngc,429remap.ngc,430remap.ngc + currentNodeInventoryStatus=PASS + currentMatrixBrowserStatus=REP + targetBrowserEvidence=browser-diagnostics-expansion + promotionAllowed=false + +trt-xyzac-switchkins + gcode=linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/demos/xyzac_switchkins.ngc + ini=linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt.ini + remap_subs=428remap.ngc,429remap.ngc,430remap.ngc + currentNodeInventoryStatus=PASS + currentMatrixBrowserStatus=REP + targetBrowserEvidence=browser-diagnostics-expansion + promotionAllowed=false +``` + +当前 evidence expansion report: + +```text +candidateCount=5 +readyCandidateCount=5 +inventoryBaselineUnchanged=true +promotionAllowed=false +``` + +覆盖面: + +```text +woodpecker-on-abort +puma-cube +melfa-example +trt-boat-xyzac +trt-xyzac-switchkins +``` + +已更新: + +```text +PROJECT_COMPLETION_TRACKER.md +wasm-port/runtime/sdk/src/linuxcnc-hal.js +wasm-port/runtime/sdk/src/project-release-readiness.js +wasm-port/runtime/ui/simulation diagnostics artifact smoke +wasm-port/tests/browser/ini_panel_workflow_overview_smoke.html +wasm-port/tests/browser/real_simulation_page_smoke.html +wasm-port/tests/docs/node/verify_sim_configs_coverage_docs.mjs +wasm-port/tests/sdk/node/verify_sdk_surface.mjs +wasm-port/tests/ui/node/verify_ini_panel_ui_shell.mjs +wasm-port/docs/sim-config-coverage-promotion-analysis.md +``` + +已运行验证: + +```text +git diff --check +wasm-port/tests/sdk/node/verify_sdk_surface.sh +wasm-port/tests/sdk/node/verify_project_release_artifact_url_workflow.sh +wasm-port/tests/sdk/node/verify_project_release_gate_manifest.sh +wasm-port/tests/ui/node/verify_ini_panel_ui_shell.sh +SKIP_INTERP_BUILD=1 wasm-port/tests/browser/verify_real_simulation_browser.sh +SKIP_INI_BUILD=1 SKIP_INTERP_BUILD=1 wasm-port/tests/browser/verify_ini_panel_browser.sh +SKIP_INI_BUILD=1 SKIP_INTERP_BUILD=1 wasm-port/tests/browser/verify_release_artifact_url_workflow_browser.sh +wasm-port/tests/docs/node/verify_sim_configs_coverage_docs.sh +SKIP_INTERP_BUILD=1 wasm-port/tests/wasm/node/verify_sim_configs_inventory_wasm.sh +wasm-port/tools/verify_no_standalone_cnc_semantics.sh +``` + +结果: + +```text +sdk_surface_node_smoke=ok +project_release_gate_manifest_node_smoke=ok +project_release_artifact_url_workflow_node_smoke=ok +project_batch_acceptance_workflow_node_smoke=ok +ini_panel_ui_shell_node_smoke=ok +browser_real_simulation_page_smoke=ok +browser_ini_opfs_smoke=ok +browser_ini_control_page_smoke=ok +browser_ini_launch_smoke=ok +browser_ini_workflow_overview_smoke=ok +browser_ini_shell_integration_workflow_smoke=ok +browser_release_artifact_url_workflow_smoke=ok +sim_configs_coverage_docs_node_smoke=ok +sim_configs_wasm_node_inventory=ok +standalone CNC semantics guard complete +``` + +七、下一步工作计划 + +继续沿 browser diagnostics / release evidence 方向推进,不改变 +`82/82/77/0` inventory baseline。 + +优先建议: + +```text +1. 把 evidence expansion 从“候选 report/API/smoke”推进到更可见的 UI + surface: + - real simulation diagnostics panel 显示 evidence expansion ready count; + - INI workflow overview URL summary 显示 5 个 ready candidates 的完整列表 + 或 drilldown; + - 保持 summary preview 的前三项兼容现有 UI。 + +2. 继续扩展五轴 TRT family 的 browser diagnostics evidence: + - boat-xyzbc.ngc + - impeller-7bl-xyzac.ngc + - xyzac_switchkins_test_1.ngc + - xyzac_switchkins_test_2.ngc + - xyzac_switchkins_test_3.ngc + - xyzbc_switchkins.ngc + +3. 每新增一批都必须满足: + - currentNodeInventoryStatus=PASS; + - currentMatrixBrowserStatus=REP; + - targetBrowserEvidence=browser-diagnostics-expansion; + - promotionAllowed=false; + - inventoryBaselineUnchanged=true; + - real browser diagnostics artifact smoke 覆盖。 +``` diff --git a/wasm-port/docs/sim-config-coverage-promotion-analysis.md b/wasm-port/docs/sim-config-coverage-promotion-analysis.md index 0369ed7..b3fdabf 100644 --- a/wasm-port/docs/sim-config-coverage-promotion-analysis.md +++ b/wasm-port/docs/sim-config-coverage-promotion-analysis.md @@ -693,6 +693,41 @@ surfaces. They do not add virtual HAL runtime capability, do not alter `promotion-candidates.tsv`, and do not change the inventory baseline or any hard-block lock. +## 2026-06-20 Five-Axis TRT Evidence Expansion + +After the remaining 77 SKIP audit confirmed there are no directly promotable +skipped main-program rows, the next evidence batch expanded browser diagnostics +coverage for already passing representative rows instead of changing the +inventory baseline. + +The virtual HAL sim-config evidence expansion report now requires these +five-axis TRT rows: + +```text +trt-boat-xyzac +linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/demos/boat-xyzac.ngc + +trt-xyzac-switchkins +linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/demos/xyzac_switchkins.ngc +``` + +Both rows use the LinuxCNC-owned `xyzac-trt.ini` machine context and the +vendored `428remap.ngc`, `429remap.ngc`, and `430remap.ngc` remap +subroutines. They remain: + +```text +currentNodeInventoryStatus=PASS +currentMatrixBrowserStatus=REP +targetBrowserEvidence=browser-diagnostics-expansion +promotionAllowed=false +inventoryBaselineUnchanged=true +``` + +The real browser simulation diagnostics artifact now validates that the +evidence expansion report has `candidateCount=5` and `readyCandidateCount=5`, +including the two TRT rows above. The inventory baseline remains +`executed=82 passed=82 skipped=77 unexpected_fail=0`. + ## Boundary Statement This analysis relies on the improved virtual HAL only for Web simulation diff --git a/wasm-port/runtime/sdk/src/linuxcnc-hal.js b/wasm-port/runtime/sdk/src/linuxcnc-hal.js index ed4aed0..9baafc2 100644 --- a/wasm-port/runtime/sdk/src/linuxcnc-hal.js +++ b/wasm-port/runtime/sdk/src/linuxcnc-hal.js @@ -471,6 +471,48 @@ export const VIRTUAL_HAL_SIM_CONFIG_EVIDENCE_EXPANSION_CANDIDATES = Object.freez blockedKind: "-", evidence: "MELFA example has current representative coverage and can receive explicit browser diagnostics evidence without unlocking any hard runtime family.", }), + Object.freeze({ + id: "trt-boat-xyzac", + label: "TRT boat XYZAC", + simConfigTarget: "five-axis-trt", + sourceFiles: Object.freeze([ + "linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt.ini", + "linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/demos/boat-xyzac.ngc", + "linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/remap_subs/428remap.ngc", + "linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/remap_subs/429remap.ngc", + "linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/remap_subs/430remap.ngc", + ]), + iniPath: "linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt.ini", + gcodePath: "linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/demos/boat-xyzac.ngc", + currentNodeInventoryStatus: "PASS", + currentMatrixBrowserStatus: "REP", + dependencyClass: "hal_process,halui_mdi_process,ui_process", + targetBrowserEvidence: "browser-diagnostics-expansion", + promotionAllowed: false, + blockedKind: "-", + evidence: "The LinuxCNC table-rotary-tilting boat XYZAC demo is already covered as a five-axis representative; this row adds explicit browser diagnostics evidence without changing inventory counts.", + }), + Object.freeze({ + id: "trt-xyzac-switchkins", + label: "TRT XYZAC switchkins", + simConfigTarget: "five-axis-trt", + sourceFiles: Object.freeze([ + "linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt.ini", + "linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/demos/xyzac_switchkins.ngc", + "linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/remap_subs/428remap.ngc", + "linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/remap_subs/429remap.ngc", + "linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/remap_subs/430remap.ngc", + ]), + iniPath: "linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt.ini", + gcodePath: "linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/demos/xyzac_switchkins.ngc", + currentNodeInventoryStatus: "PASS", + currentMatrixBrowserStatus: "REP", + dependencyClass: "hal_process,halui_mdi_process,ui_process", + targetBrowserEvidence: "browser-diagnostics-expansion", + promotionAllowed: false, + blockedKind: "-", + evidence: "The LinuxCNC table-rotary-tilting XYZAC switchkins demo is already a browser representative row; this evidence expansion binds it into release diagnostics only.", + }), ]); export const VIRTUAL_HAL_SIM_CONFIG_MACRO_LOAD_FIXTURES = Object.freeze([ diff --git a/wasm-port/runtime/sdk/src/project-release-readiness.js b/wasm-port/runtime/sdk/src/project-release-readiness.js index bd03181..c549ab2 100644 --- a/wasm-port/runtime/sdk/src/project-release-readiness.js +++ b/wasm-port/runtime/sdk/src/project-release-readiness.js @@ -462,6 +462,26 @@ const REQUIRED_EVIDENCE_EXPANSION_CANDIDATES = [ "linuxcnc/configs/sim/axis/vismach/melfa-sim/remap_subs/428remap.ngc", ], }, + { + id: "trt-boat-xyzac", + sourceFiles: [ + "linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt.ini", + "linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/demos/boat-xyzac.ngc", + "linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/remap_subs/428remap.ngc", + "linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/remap_subs/429remap.ngc", + "linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/remap_subs/430remap.ngc", + ], + }, + { + id: "trt-xyzac-switchkins", + sourceFiles: [ + "linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt.ini", + "linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/demos/xyzac_switchkins.ngc", + "linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/remap_subs/428remap.ngc", + "linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/remap_subs/429remap.ngc", + "linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/remap_subs/430remap.ngc", + ], + }, ]; const REQUIRED_MACRO_LOAD_FIXTURES = [ @@ -664,8 +684,8 @@ function isVirtualHalSimConfigEvidenceExpansionReportReady(report) { expansionReport.webSimulationSatisfied === true && expansionReport.inventoryBaselineUnchanged === true && expansionReport.promotionAllowed === false && - expansionReport.candidateCount === 3 && - expansionReport.readyCandidateCount === 3 && + expansionReport.candidateCount === REQUIRED_EVIDENCE_EXPANSION_CANDIDATES.length && + expansionReport.readyCandidateCount === REQUIRED_EVIDENCE_EXPANSION_CANDIDATES.length && arrayOrEmpty(expansionReport.missingCandidates).length === 0 && arrayOrEmpty(expansionReport.promotionAllowedViolations).length === 0 && arrayOrEmpty(expansionReport.blockedCandidateIds).length === 0 && diff --git a/wasm-port/tests/browser/ini_panel_workflow_overview_smoke.html b/wasm-port/tests/browser/ini_panel_workflow_overview_smoke.html index e9a5923..747362e 100644 --- a/wasm-port/tests/browser/ini_panel_workflow_overview_smoke.html +++ b/wasm-port/tests/browser/ini_panel_workflow_overview_smoke.html @@ -9,6 +9,7 @@