接续上一轮,先做 L4-USER-M-PROCESS,完全接入仿真系统
结论:已将 L4-USER-M-PROCESS 的 millturn M128/M129 受控状态转换接入 virtual HAL、真实 browser simulation、OPFS 会话 payload、SDK API 和 release diagnostics validation;外部 user-M process execution 与 promotion 仍保持 locked,不伪装为 native process 解锁。
This commit is contained in:
@@ -11,6 +11,7 @@ import {
|
||||
import {
|
||||
VIRTUAL_HAL_SIM_CONFIG_SOURCE_TARGETS,
|
||||
createVirtualHalCommandScriptFixtureReport,
|
||||
createVirtualHalMillturnUserMProcessBoundaryReport,
|
||||
createVirtualHalMotionControllerMatrixReport,
|
||||
createVirtualHalSimConfigMacroLoadFixtureReport,
|
||||
createVirtualHalSimConfigEvidenceExpansionReport,
|
||||
@@ -1473,6 +1474,16 @@ const releaseReadinessMacroLoadFixtures = createVirtualHalSimConfigMacroLoadFixt
|
||||
"linuxcnc/configs/sim/axis/external_offsets/eoffsets.ngc",
|
||||
],
|
||||
});
|
||||
const releaseReadinessMillturnUserMProcessBoundary = createVirtualHalMillturnUserMProcessBoundaryReport({
|
||||
manifestEntries: [
|
||||
"linuxcnc/configs/sim/axis/vismach/millturn/millturn.ini",
|
||||
"linuxcnc/configs/sim/axis/vismach/millturn/example.ngc",
|
||||
"linuxcnc/configs/sim/axis/vismach/millturn/mcodes/M128",
|
||||
"linuxcnc/configs/sim/axis/vismach/millturn/mcodes/M129",
|
||||
"linuxcnc/configs/sim/axis/vismach/millturn/remap_subs/428remap.ngc",
|
||||
"linuxcnc/configs/sim/axis/vismach/millturn/remap_subs/429remap.ngc",
|
||||
],
|
||||
});
|
||||
const pythonRemapRuntimeProof = {
|
||||
nativeLifecycleReady: true,
|
||||
nativeProbeStatus: "runtime_lifecycle_probe_passed",
|
||||
@@ -1524,6 +1535,7 @@ const browserDiagnosticsArtifact = {
|
||||
inventoryBaseline: "executed=82 passed=82 skipped=77 unexpected_fail=0",
|
||||
},
|
||||
virtualHalSimConfigMacroLoadFixtures: releaseReadinessMacroLoadFixtures,
|
||||
virtualHalMillturnUserMProcessBoundary: releaseReadinessMillturnUserMProcessBoundary,
|
||||
virtualHalCommandScriptFixtures: createVirtualHalCommandScriptFixtureReport({ halState: browserDiagnosticsVirtualHalState }),
|
||||
virtualHalMotionControllerMatrix: releaseReadinessMotionControllerMatrix,
|
||||
};
|
||||
@@ -1957,6 +1969,8 @@ assert.equal(releaseArtifactUrlWorkflow.diagnosticsValidation.hasPromotionCandid
|
||||
assert.equal(releaseArtifactUrlWorkflow.diagnosticsValidation.promotionCandidatesReady, true);
|
||||
assert.equal(releaseArtifactUrlWorkflow.diagnosticsValidation.hasMacroLoadFixtures, true);
|
||||
assert.equal(releaseArtifactUrlWorkflow.diagnosticsValidation.macroLoadFixturesReady, true);
|
||||
assert.equal(releaseArtifactUrlWorkflow.diagnosticsValidation.hasMillturnUserMProcessBoundary, true);
|
||||
assert.equal(releaseArtifactUrlWorkflow.diagnosticsValidation.millturnUserMProcessBoundaryReady, true);
|
||||
assert.equal(releaseArtifactUrlWorkflow.diagnosticsValidation.hasSessionDiagnostics, true);
|
||||
assert.equal(releaseArtifactUrlWorkflow.diagnosticsValidation.sessionDiagnosticsReady, true);
|
||||
assert.equal(
|
||||
@@ -2111,7 +2125,7 @@ assert.equal(
|
||||
);
|
||||
assert.equal(
|
||||
releaseArtifactUrlWorkflowSummary.rows.find(({ id }) => id === "hard-block-runtime-locked-preview")?.value,
|
||||
"L4-PYTHON-REMAP:axis/laser/raster_test.ngc, L4-PYTHON-REMAP:axis/laser/vector_test.ngc, L4-PYTHON-REMAP:axis/laser/vector_test2.ngc",
|
||||
"L4-USER-M-PROCESS:axis/vismach/millturn/example.ngc",
|
||||
);
|
||||
assert.equal(
|
||||
releaseArtifactUrlWorkflowSummary.rows.find(({ id }) => id === "hard-block-runtime-promotion-allowed")?.value,
|
||||
@@ -2841,7 +2855,7 @@ const releaseArtifactUrlWorkflowMountResult =
|
||||
rowsNode: releaseArtifactUrlWorkflowRowsNode,
|
||||
});
|
||||
assert.equal(releaseArtifactUrlWorkflowRenderResult.rendered, true);
|
||||
assert.equal(releaseArtifactUrlWorkflowRenderResult.rowCount, 57);
|
||||
assert.equal(releaseArtifactUrlWorkflowRenderResult.rowCount, 53);
|
||||
assert.equal(
|
||||
releaseArtifactUrlWorkflowRenderResult.rowIds.includes("browser-diagnostics"),
|
||||
true,
|
||||
@@ -2891,7 +2905,7 @@ assert.equal(
|
||||
true,
|
||||
);
|
||||
assert.equal(releaseArtifactUrlWorkflowMountResult.ready, true);
|
||||
assert.equal(releaseArtifactUrlWorkflowMountResult.renderResult.rowCount, 57);
|
||||
assert.equal(releaseArtifactUrlWorkflowMountResult.renderResult.rowCount, 53);
|
||||
const releaseArtifactUrlWorkflowMissingDom = await loadIniPanelShellWorkflowOverviewReleaseReadinessArtifactUrl({
|
||||
artifactUrl: "/project-release-readiness.json",
|
||||
fetchRef: async () => ({
|
||||
|
||||
Reference in New Issue
Block a user