按接续文件text31持续推进
结论:已将五轴TRT的boat-xyzac与xyzac_switchkins加入browser diagnostics evidence expansion,candidateCount提升到5且全部ready;inventory baseline继续保持82/82/77/0,promotionAllowed仍为false。
This commit is contained in:
@@ -9,7 +9,7 @@ turn-by-turn continuation notes and next-batch execution records.
|
|||||||
## Current Status
|
## Current Status
|
||||||
|
|
||||||
- Active continuation file: `text32.txt`
|
- 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
|
- Latest relevant commit: use `git log -1 --oneline` after each committed batch
|
||||||
- Working tree at tracker creation: clean
|
- Working tree at tracker creation: clean
|
||||||
- Required policy: LinuxCNC remains the only CNC semantic source
|
- 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. |
|
| 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. |
|
| 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`. |
|
| 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 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`. |
|
| 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. |
|
| 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. |
|
||||||
|
|||||||
131
text32.txt
131
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
|
SKIP_INTERP_BUILD=1 wasm-port/tests/browser/verify_real_simulation_browser.sh
|
||||||
wasm-port/tools/verify_no_standalone_cnc_semantics.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 覆盖。
|
||||||
|
```
|
||||||
|
|||||||
@@ -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
|
`promotion-candidates.tsv`, and do not change the inventory baseline or any
|
||||||
hard-block lock.
|
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
|
## Boundary Statement
|
||||||
|
|
||||||
This analysis relies on the improved virtual HAL only for Web simulation
|
This analysis relies on the improved virtual HAL only for Web simulation
|
||||||
|
|||||||
@@ -471,6 +471,48 @@ export const VIRTUAL_HAL_SIM_CONFIG_EVIDENCE_EXPANSION_CANDIDATES = Object.freez
|
|||||||
blockedKind: "-",
|
blockedKind: "-",
|
||||||
evidence: "MELFA example has current representative coverage and can receive explicit browser diagnostics evidence without unlocking any hard runtime family.",
|
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([
|
export const VIRTUAL_HAL_SIM_CONFIG_MACRO_LOAD_FIXTURES = Object.freeze([
|
||||||
|
|||||||
@@ -462,6 +462,26 @@ const REQUIRED_EVIDENCE_EXPANSION_CANDIDATES = [
|
|||||||
"linuxcnc/configs/sim/axis/vismach/melfa-sim/remap_subs/428remap.ngc",
|
"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 = [
|
const REQUIRED_MACRO_LOAD_FIXTURES = [
|
||||||
@@ -664,8 +684,8 @@ function isVirtualHalSimConfigEvidenceExpansionReportReady(report) {
|
|||||||
expansionReport.webSimulationSatisfied === true &&
|
expansionReport.webSimulationSatisfied === true &&
|
||||||
expansionReport.inventoryBaselineUnchanged === true &&
|
expansionReport.inventoryBaselineUnchanged === true &&
|
||||||
expansionReport.promotionAllowed === false &&
|
expansionReport.promotionAllowed === false &&
|
||||||
expansionReport.candidateCount === 3 &&
|
expansionReport.candidateCount === REQUIRED_EVIDENCE_EXPANSION_CANDIDATES.length &&
|
||||||
expansionReport.readyCandidateCount === 3 &&
|
expansionReport.readyCandidateCount === REQUIRED_EVIDENCE_EXPANSION_CANDIDATES.length &&
|
||||||
arrayOrEmpty(expansionReport.missingCandidates).length === 0 &&
|
arrayOrEmpty(expansionReport.missingCandidates).length === 0 &&
|
||||||
arrayOrEmpty(expansionReport.promotionAllowedViolations).length === 0 &&
|
arrayOrEmpty(expansionReport.promotionAllowedViolations).length === 0 &&
|
||||||
arrayOrEmpty(expansionReport.blockedCandidateIds).length === 0 &&
|
arrayOrEmpty(expansionReport.blockedCandidateIds).length === 0 &&
|
||||||
|
|||||||
@@ -9,6 +9,7 @@
|
|||||||
<script type="module">
|
<script type="module">
|
||||||
import {
|
import {
|
||||||
VIRTUAL_HAL_SIM_CONFIG_SOURCE_TARGETS,
|
VIRTUAL_HAL_SIM_CONFIG_SOURCE_TARGETS,
|
||||||
|
VIRTUAL_HAL_SIM_CONFIG_EVIDENCE_EXPANSION_CANDIDATES,
|
||||||
createVirtualHalCommandScriptFixtureReport,
|
createVirtualHalCommandScriptFixtureReport,
|
||||||
createVirtualHalMillturnUserMProcessBoundaryReport,
|
createVirtualHalMillturnUserMProcessBoundaryReport,
|
||||||
createVirtualHalMotionControllerMatrixReport,
|
createVirtualHalMotionControllerMatrixReport,
|
||||||
@@ -23,6 +24,8 @@
|
|||||||
|
|
||||||
const VIRTUAL_HAL_MOTION_MATRIX_MANIFEST_ENTRIES =
|
const VIRTUAL_HAL_MOTION_MATRIX_MANIFEST_ENTRIES =
|
||||||
VIRTUAL_HAL_SIM_CONFIG_SOURCE_TARGETS.flatMap((target) => target.sourceFiles ?? []);
|
VIRTUAL_HAL_SIM_CONFIG_SOURCE_TARGETS.flatMap((target) => target.sourceFiles ?? []);
|
||||||
|
const VIRTUAL_HAL_EVIDENCE_EXPANSION_MANIFEST_ENTRIES =
|
||||||
|
VIRTUAL_HAL_SIM_CONFIG_EVIDENCE_EXPANSION_CANDIDATES.flatMap((candidate) => candidate.sourceFiles ?? []);
|
||||||
|
|
||||||
function assertEqual(actual, expected, label) {
|
function assertEqual(actual, expected, label) {
|
||||||
if (actual !== expected) {
|
if (actual !== expected) {
|
||||||
@@ -395,7 +398,7 @@
|
|||||||
const diagnosticsEvidenceExpansion = createVirtualHalSimConfigEvidenceExpansionReport({
|
const diagnosticsEvidenceExpansion = createVirtualHalSimConfigEvidenceExpansionReport({
|
||||||
manifestEntries: [
|
manifestEntries: [
|
||||||
...VIRTUAL_HAL_MOTION_MATRIX_MANIFEST_ENTRIES,
|
...VIRTUAL_HAL_MOTION_MATRIX_MANIFEST_ENTRIES,
|
||||||
"linuxcnc/configs/sim/axis/vismach/puma/puma_cube.ini",
|
...VIRTUAL_HAL_EVIDENCE_EXPANSION_MANIFEST_ENTRIES,
|
||||||
],
|
],
|
||||||
motionControllerMatrix: diagnosticsMotionControllerMatrix,
|
motionControllerMatrix: diagnosticsMotionControllerMatrix,
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -668,6 +668,26 @@
|
|||||||
!diagnosticsArtifact.virtualHalSimConfigSourceCoverage?.sourceFiles?.includes("linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/qtdragon_xyza.ini") ||
|
!diagnosticsArtifact.virtualHalSimConfigSourceCoverage?.sourceFiles?.includes("linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/qtdragon_xyza.ini") ||
|
||||||
!diagnosticsArtifact.virtualHalSimConfigSourceCoverage?.sourceFiles?.includes("linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_z_compensation/qtdragon_hd_z_compensation.ini") ||
|
!diagnosticsArtifact.virtualHalSimConfigSourceCoverage?.sourceFiles?.includes("linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_z_compensation/qtdragon_hd_z_compensation.ini") ||
|
||||||
diagnosticsArtifact.virtualHalSimConfigPromotionCandidates?.complete !== true ||
|
diagnosticsArtifact.virtualHalSimConfigPromotionCandidates?.complete !== true ||
|
||||||
|
diagnosticsArtifact.virtualHalSimConfigEvidenceExpansion?.complete !== true ||
|
||||||
|
diagnosticsArtifact.virtualHalSimConfigEvidenceExpansion?.candidateCount !== 5 ||
|
||||||
|
diagnosticsArtifact.virtualHalSimConfigEvidenceExpansion?.readyCandidateCount !== 5 ||
|
||||||
|
diagnosticsArtifact.virtualHalSimConfigEvidenceExpansion?.promotionAllowed !== false ||
|
||||||
|
!diagnosticsArtifact.virtualHalSimConfigEvidenceExpansion?.rows?.some((row) =>
|
||||||
|
row.id === "trt-boat-xyzac" &&
|
||||||
|
row.currentNodeInventoryStatus === "PASS" &&
|
||||||
|
row.currentMatrixBrowserStatus === "REP" &&
|
||||||
|
row.targetBrowserEvidence === "browser-diagnostics-expansion" &&
|
||||||
|
row.promotionAllowed === false &&
|
||||||
|
row.sourceFiles?.includes("linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/demos/boat-xyzac.ngc")
|
||||||
|
) ||
|
||||||
|
!diagnosticsArtifact.virtualHalSimConfigEvidenceExpansion?.rows?.some((row) =>
|
||||||
|
row.id === "trt-xyzac-switchkins" &&
|
||||||
|
row.currentNodeInventoryStatus === "PASS" &&
|
||||||
|
row.currentMatrixBrowserStatus === "REP" &&
|
||||||
|
row.targetBrowserEvidence === "browser-diagnostics-expansion" &&
|
||||||
|
row.promotionAllowed === false &&
|
||||||
|
row.sourceFiles?.includes("linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/demos/xyzac_switchkins.ngc")
|
||||||
|
) ||
|
||||||
diagnosticsArtifact.virtualHalPromotionCandidateSummary?.ready !== true ||
|
diagnosticsArtifact.virtualHalPromotionCandidateSummary?.ready !== true ||
|
||||||
diagnosticsArtifact.virtualHalPromotionCandidateSummary?.preferredCandidateId !== "qtdragon-multi-joint-on-abort" ||
|
diagnosticsArtifact.virtualHalPromotionCandidateSummary?.preferredCandidateId !== "qtdragon-multi-joint-on-abort" ||
|
||||||
diagnosticsArtifact.virtualHalPromotionCandidateSummary?.candidateCount !== 8 ||
|
diagnosticsArtifact.virtualHalPromotionCandidateSummary?.candidateCount !== 8 ||
|
||||||
|
|||||||
@@ -71,10 +71,15 @@ for (const phrase of [
|
|||||||
"axis/external_offsets/queuebuster.ngc",
|
"axis/external_offsets/queuebuster.ngc",
|
||||||
"Web Simulation Improvements From Virtual HAL",
|
"Web Simulation Improvements From Virtual HAL",
|
||||||
"2026-06-20 Remaining Skip Promotion Audit",
|
"2026-06-20 Remaining Skip Promotion Audit",
|
||||||
|
"2026-06-20 Five-Axis TRT Evidence Expansion",
|
||||||
"remaining_skipped_main_program_promotion_allowed=0",
|
"remaining_skipped_main_program_promotion_allowed=0",
|
||||||
"direct_inventory_promotion_rows=0",
|
"direct_inventory_promotion_rows=0",
|
||||||
"axis/vismach/millturn/example.ngc",
|
"axis/vismach/millturn/example.ngc",
|
||||||
"incremental_repetition_g533.ngc",
|
"incremental_repetition_g533.ngc",
|
||||||
|
"trt-boat-xyzac",
|
||||||
|
"trt-xyzac-switchkins",
|
||||||
|
"candidateCount=5",
|
||||||
|
"readyCandidateCount=5",
|
||||||
"Browser and Node simulation no longer need host `halcmd`, `halrun`, or a",
|
"Browser and Node simulation no longer need host `halcmd`, `halrun`, or a",
|
||||||
"servo-period stepping",
|
"servo-period stepping",
|
||||||
"8 diagnostics-ready candidates across 3 families and 17 source files",
|
"8 diagnostics-ready candidates across 3 families and 17 source files",
|
||||||
|
|||||||
@@ -1084,7 +1084,7 @@ assert.equal(virtualHalRuntime.getSimConfigPromotionCandidateReport({
|
|||||||
simConfigSourceCoverage: simConfigSourceCoverageReport,
|
simConfigSourceCoverage: simConfigSourceCoverageReport,
|
||||||
motionControllerMatrix: manifestCheckedMotionControllerMatrixReport,
|
motionControllerMatrix: manifestCheckedMotionControllerMatrixReport,
|
||||||
}).complete, true);
|
}).complete, true);
|
||||||
assert.equal(VIRTUAL_HAL_SIM_CONFIG_EVIDENCE_EXPANSION_CANDIDATES.length, 3);
|
assert.equal(VIRTUAL_HAL_SIM_CONFIG_EVIDENCE_EXPANSION_CANDIDATES.length, 5);
|
||||||
const simConfigEvidenceExpansionReport = createVirtualHalSimConfigEvidenceExpansionReport({
|
const simConfigEvidenceExpansionReport = createVirtualHalSimConfigEvidenceExpansionReport({
|
||||||
manifestText: sourceManifestText,
|
manifestText: sourceManifestText,
|
||||||
simConfigSourceCoverage: simConfigSourceCoverageReport,
|
simConfigSourceCoverage: simConfigSourceCoverageReport,
|
||||||
@@ -1098,8 +1098,8 @@ assert.equal(simConfigEvidenceExpansionReport.complete, true);
|
|||||||
assert.equal(simConfigEvidenceExpansionReport.webSimulationSatisfied, true);
|
assert.equal(simConfigEvidenceExpansionReport.webSimulationSatisfied, true);
|
||||||
assert.equal(simConfigEvidenceExpansionReport.inventoryBaselineUnchanged, true);
|
assert.equal(simConfigEvidenceExpansionReport.inventoryBaselineUnchanged, true);
|
||||||
assert.equal(simConfigEvidenceExpansionReport.promotionAllowed, false);
|
assert.equal(simConfigEvidenceExpansionReport.promotionAllowed, false);
|
||||||
assert.equal(simConfigEvidenceExpansionReport.candidateCount, 3);
|
assert.equal(simConfigEvidenceExpansionReport.candidateCount, 5);
|
||||||
assert.equal(simConfigEvidenceExpansionReport.readyCandidateCount, 3);
|
assert.equal(simConfigEvidenceExpansionReport.readyCandidateCount, 5);
|
||||||
assert.equal(simConfigEvidenceExpansionReport.promotionAllowedViolations.length, 0);
|
assert.equal(simConfigEvidenceExpansionReport.promotionAllowedViolations.length, 0);
|
||||||
assert.equal(
|
assert.equal(
|
||||||
simConfigEvidenceExpansionReport.rows.some((row) =>
|
simConfigEvidenceExpansionReport.rows.some((row) =>
|
||||||
@@ -1111,6 +1111,30 @@ assert.equal(
|
|||||||
),
|
),
|
||||||
true,
|
true,
|
||||||
);
|
);
|
||||||
|
assert.equal(
|
||||||
|
simConfigEvidenceExpansionReport.rows.some((row) =>
|
||||||
|
row.id === "trt-boat-xyzac" &&
|
||||||
|
row.currentMatrixBrowserStatus === "REP" &&
|
||||||
|
row.targetBrowserEvidence === "browser-diagnostics-expansion" &&
|
||||||
|
row.promotionAllowed === false &&
|
||||||
|
row.sourceFiles.includes(
|
||||||
|
"linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/demos/boat-xyzac.ngc",
|
||||||
|
)
|
||||||
|
),
|
||||||
|
true,
|
||||||
|
);
|
||||||
|
assert.equal(
|
||||||
|
simConfigEvidenceExpansionReport.rows.some((row) =>
|
||||||
|
row.id === "trt-xyzac-switchkins" &&
|
||||||
|
row.currentMatrixBrowserStatus === "REP" &&
|
||||||
|
row.targetBrowserEvidence === "browser-diagnostics-expansion" &&
|
||||||
|
row.promotionAllowed === false &&
|
||||||
|
row.sourceFiles.includes(
|
||||||
|
"linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/demos/xyzac_switchkins.ngc",
|
||||||
|
)
|
||||||
|
),
|
||||||
|
true,
|
||||||
|
);
|
||||||
assert.equal(VIRTUAL_HAL_SIM_CONFIG_MACRO_LOAD_FIXTURES.length >= 2, true);
|
assert.equal(VIRTUAL_HAL_SIM_CONFIG_MACRO_LOAD_FIXTURES.length >= 2, true);
|
||||||
assert.equal(VIRTUAL_HAL_SIM_CONFIG_MACRO_LOAD_BLOCKED_FIXTURES.length >= 2, true);
|
assert.equal(VIRTUAL_HAL_SIM_CONFIG_MACRO_LOAD_BLOCKED_FIXTURES.length >= 2, true);
|
||||||
assert.equal(VIRTUAL_HAL_SIM_CONFIG_MACRO_LOAD_AUDIT_CANDIDATES.length >= 2, true);
|
assert.equal(VIRTUAL_HAL_SIM_CONFIG_MACRO_LOAD_AUDIT_CANDIDATES.length >= 2, true);
|
||||||
|
|||||||
@@ -9,6 +9,7 @@ import {
|
|||||||
createProjectReleaseReadinessReport,
|
createProjectReleaseReadinessReport,
|
||||||
} from "../../../runtime/sdk/src/project-release-readiness.js";
|
} from "../../../runtime/sdk/src/project-release-readiness.js";
|
||||||
import {
|
import {
|
||||||
|
VIRTUAL_HAL_SIM_CONFIG_EVIDENCE_EXPANSION_CANDIDATES,
|
||||||
VIRTUAL_HAL_SIM_CONFIG_SOURCE_TARGETS,
|
VIRTUAL_HAL_SIM_CONFIG_SOURCE_TARGETS,
|
||||||
createVirtualHalCommandScriptFixtureReport,
|
createVirtualHalCommandScriptFixtureReport,
|
||||||
createVirtualHalMillturnUserMProcessBoundaryReport,
|
createVirtualHalMillturnUserMProcessBoundaryReport,
|
||||||
@@ -164,6 +165,8 @@ import {
|
|||||||
|
|
||||||
const VIRTUAL_HAL_MOTION_MATRIX_MANIFEST_ENTRIES =
|
const VIRTUAL_HAL_MOTION_MATRIX_MANIFEST_ENTRIES =
|
||||||
VIRTUAL_HAL_SIM_CONFIG_SOURCE_TARGETS.flatMap((target) => target.sourceFiles ?? []);
|
VIRTUAL_HAL_SIM_CONFIG_SOURCE_TARGETS.flatMap((target) => target.sourceFiles ?? []);
|
||||||
|
const VIRTUAL_HAL_EVIDENCE_EXPANSION_MANIFEST_ENTRIES =
|
||||||
|
VIRTUAL_HAL_SIM_CONFIG_EVIDENCE_EXPANSION_CANDIDATES.flatMap((candidate) => candidate.sourceFiles ?? []);
|
||||||
|
|
||||||
const __dirname = dirname(fileURLToPath(import.meta.url));
|
const __dirname = dirname(fileURLToPath(import.meta.url));
|
||||||
const root = resolve(__dirname, "../../..");
|
const root = resolve(__dirname, "../../..");
|
||||||
@@ -1460,7 +1463,7 @@ const releaseReadinessPromotionCandidates = createVirtualHalSimConfigPromotionCa
|
|||||||
const releaseReadinessEvidenceExpansion = createVirtualHalSimConfigEvidenceExpansionReport({
|
const releaseReadinessEvidenceExpansion = createVirtualHalSimConfigEvidenceExpansionReport({
|
||||||
manifestEntries: [
|
manifestEntries: [
|
||||||
...VIRTUAL_HAL_MOTION_MATRIX_MANIFEST_ENTRIES,
|
...VIRTUAL_HAL_MOTION_MATRIX_MANIFEST_ENTRIES,
|
||||||
"linuxcnc/configs/sim/axis/vismach/puma/puma_cube.ini",
|
...VIRTUAL_HAL_EVIDENCE_EXPANSION_MANIFEST_ENTRIES,
|
||||||
],
|
],
|
||||||
motionControllerMatrix: releaseReadinessMotionControllerMatrix,
|
motionControllerMatrix: releaseReadinessMotionControllerMatrix,
|
||||||
});
|
});
|
||||||
|
|||||||
Reference in New Issue
Block a user