From 43670525d68e7bb55b41b8fde047e43bd532fbac Mon Sep 17 00:00:00 2001 From: wangdequan Date: Sat, 29 Aug 2026 07:16:29 +0800 Subject: [PATCH] Improve visible live G-code execution panel --- .../xyzac-trt-program-preview.report.json | 6 +-- coverage/xyzac-trt-protocol-react.report.json | 6 +-- coverage/xyzac-trt-tool-preview.report.json | 20 ++++---- ...xyzac-trt-wasm-authority-audit.report.json | 50 +++++++++---------- ...zac-trt-wasm-only-release-gate.report.json | 4 +- web/react/src/styles.css | 7 +-- 6 files changed, 47 insertions(+), 46 deletions(-) diff --git a/coverage/xyzac-trt-program-preview.report.json b/coverage/xyzac-trt-program-preview.report.json index abaaeaf..1ab185b 100644 --- a/coverage/xyzac-trt-program-preview.report.json +++ b/coverage/xyzac-trt-program-preview.report.json @@ -37,12 +37,12 @@ "replay_same_operation": "verified" }, "release_status": "STOP_RELEASE", - "report_sha256": "dced60b3901a793dad7d33882f08985febfa11ac38d863020b0137350dfac4e3", + "report_sha256": "7fab23845f85b654699e0e158fc073d5c84804fe3ee092b16b6d34b10c58ba7a", "schema": "xyzac-program-preview-rtcp-04.v1", "scope": "xyzac_only", "segment_count": 2, "source_hash": "fnv1a64:b7f4678312207b31", - "state_hash": "fnv1a64:dd298967c8e59be1", + "state_hash": "fnv1a64:36e2981582d7fd7f", "status": "verified", "task_id": "RTCP-04", "tests": [ @@ -51,7 +51,7 @@ "node", "web/worker/test_xyzac_program_preview.mjs" ], - "output_sha256": "71682d480c4e9c65128aa87f60c308878dbfe1787f42694def040dd9233fa835", + "output_sha256": "b8e01b911b1e35ca1fa9f5d81af46c0d2e6121f9faeda1ba511a8146be20b538", "returncode": 0, "status": "verified" } diff --git a/coverage/xyzac-trt-protocol-react.report.json b/coverage/xyzac-trt-protocol-react.report.json index 1cfcc9a..3b092a6 100644 --- a/coverage/xyzac-trt-protocol-react.report.json +++ b/coverage/xyzac-trt-protocol-react.report.json @@ -86,9 +86,9 @@ } ], "release_status": "STOP_RELEASE", - "report_sha256": "2a68bfc0f2620b1d4abae70b18ca261802e5450125d37aa7c1e512adfd20ba99", + "report_sha256": "6cf3b45d5fae0790c2e1fa5f5b2446c24fc3226b65ba63ee903468eba4ee8071", "schema": "xyzac-trt-protocol-react-report.v1", - "state_hash": "fnv1a64:30f3ddcdf9544695", + "state_hash": "fnv1a64:9a85b44ebb3bb575", "status": "verified", "switchkins": [ { @@ -119,7 +119,7 @@ "node", "web/worker/test_xyzac_protocol_react.mjs" ], - "output_sha256": "b2d01a0bdee9b31f6680d0265c4537efd0a1fe12b650383089ad52d1148382bc", + "output_sha256": "11d6a724eec005eb8d76d8e3fee261a9abc27cc465a76b67bf30fa50a7bbec47", "returncode": 0 }, { diff --git a/coverage/xyzac-trt-tool-preview.report.json b/coverage/xyzac-trt-tool-preview.report.json index 5cad964..fbfc71d 100644 --- a/coverage/xyzac-trt-tool-preview.report.json +++ b/coverage/xyzac-trt-tool-preview.report.json @@ -74,7 +74,7 @@ }, { "path": "web/worker/sim-session.mjs", - "sha256": "a676086169205f16e25c142cb97e7cfac493ea58852cec93b799797f09637845" + "sha256": "6ffad5f415dac511b85670475c61c821c5b1cecea2003d812123a7bc3a0bb16f" }, { "path": "web/worker/test_xyzac_exact_preview.mjs", @@ -82,7 +82,7 @@ }, { "path": "web/worker/wasm-program-runtime.mjs", - "sha256": "6bc403380cfecdb4a05abf0918681b7d64acc97fb948ce7f4f73f554d51df6c4" + "sha256": "3b0cae4f3eb4c5fca8791fd8555351a9a718e269151e345c2e1a0f7914ce5119" }, { "path": "web/worker/wasm-motion-queue.mjs", @@ -102,11 +102,11 @@ }, { "path": "web/react/src/App.tsx", - "sha256": "25ccd89e22f43464e23c5920da96b780b0ca4fdb9632f5b1d84a48c37e894f44" + "sha256": "d97cbe5f9d57e3071a43f0669bc9babd652a3ac347c4db226f749ee2d77fed10" }, { "path": "web/react/src/styles.css", - "sha256": "c39b6848f0c8d176991acb633206697bbc01bd8dbf28cba69afe605b1d7e6cb9" + "sha256": "9f1bd2fe7e365bebfc88ccc382a1ca7268be4e3b4bc5a07a10714be491be0d39" }, { "path": "wasm-core/src/sim_task.c", @@ -114,7 +114,7 @@ }, { "path": "wasm-core/src/sim_program.c", - "sha256": "1ab97bbe8750d678b8cffebbad9cad44926285b627858cf2b1aad22da3e0457f" + "sha256": "e1b9d23f5c2addeeadc49b62c6b7e8f60926962a9983a28b1a64cd97d0e1da89" }, { "path": "wasm-core/src/sim_posemath.c", @@ -289,7 +289,7 @@ "schema": "xyzac-exact-tool-preview.v1", "segment_count": 29, "source_hash": "fnv1a64:522e219683194ad2", - "state_hash": "fnv1a64:300c582b009b292a", + "state_hash": "fnv1a64:d491a917d8941537", "status": "verified", "visual_segments": 29 }, @@ -350,7 +350,7 @@ "PROGRAM_RUN", "SIM_STEP" ], - "state_hash": "fnv1a64:48bf3ba1b27a3272", + "state_hash": "fnv1a64:cd105e39133f6dc1", "status": "verified" }, "static": { @@ -383,7 +383,7 @@ } }, "release_status": "STOP_RELEASE", - "report_sha256": "e5823f9c3ddba1217a808c401fb23a8b2cdb93a4242633245c8fc0407aa69911", + "report_sha256": "b7b9b7f02688d1f3fe1f1dab5165cc3426f0cb99aa04f951f2a1af1a89840e71", "schema": "xyzac-trt-tool-preview-report.v1", "status": "verified", "task_id": "RTCP-10-TOOL-PREVIEW", @@ -402,7 +402,7 @@ "node", "web/worker/test_xyzac_exact_preview.mjs" ], - "output_sha256": "f4764d5350353402e40de503e040b882a66666888e11a8cf17ca696431d89efd", + "output_sha256": "82564477f5c3d57b4704ff64d80287d15f8538d4acc25e54b8f9a27015f82419", "returncode": 0 }, { @@ -410,7 +410,7 @@ "node", "web/worker/test_xyzac_machine_sequence.mjs" ], - "output_sha256": "57599a2a43b0e5af610955e1c54d0f154999175cca25fa0b827d0cff661119ad", + "output_sha256": "194b3fea1bd61be2bec63c6d7d43a5c4f8a91110fefa3362af48190389f4cafe", "returncode": 0 } ], diff --git a/coverage/xyzac-trt-wasm-authority-audit.report.json b/coverage/xyzac-trt-wasm-authority-audit.report.json index 19cef37..1e380de 100644 --- a/coverage/xyzac-trt-wasm-authority-audit.report.json +++ b/coverage/xyzac-trt-wasm-authority-audit.report.json @@ -128,10 +128,10 @@ "source_slice": "AXIS-XYZAC-PROGRAM-MDI", "sources": [ { - "lines": "122-1000", + "lines": "122-1003", "path": "web/worker/sim-session.mjs", "role": "session-authority-routing", - "sha256": "a676086169205f16e25c142cb97e7cfac493ea58852cec93b799797f09637845", + "sha256": "6ffad5f415dac511b85670475c61c821c5b1cecea2003d812123a7bc3a0bb16f", "status": "resolved", "symbol": "new ProgramRunner" }, @@ -161,10 +161,10 @@ "symbol": "export class MotionState" }, { - "lines": "122-1000", + "lines": "122-1003", "path": "web/worker/sim-session.mjs", "role": "session-authority-routing", - "sha256": "a676086169205f16e25c142cb97e7cfac493ea58852cec93b799797f09637845", + "sha256": "6ffad5f415dac511b85670475c61c821c5b1cecea2003d812123a7bc3a0bb16f", "status": "resolved", "symbol": "new ProgramRunner" } @@ -186,10 +186,10 @@ "symbol": "export class AuthoritativeRuntime" }, { - "lines": "122-1000", + "lines": "122-1003", "path": "web/worker/sim-session.mjs", "role": "session-authority-routing", - "sha256": "a676086169205f16e25c142cb97e7cfac493ea58852cec93b799797f09637845", + "sha256": "6ffad5f415dac511b85670475c61c821c5b1cecea2003d812123a7bc3a0bb16f", "status": "resolved", "symbol": "new ProgramRunner" } @@ -205,7 +205,7 @@ "recovery": "Chromium SIGKILL/profile-reopen, corruption detection and Firefox OPFS round-trip are verified" }, "release_status": "STOP_RELEASE", - "report_sha256": "0995970fa99ce6ac0736710bebd35782e4cf4ab60600a72c5baa3966314e1f5d", + "report_sha256": "2b7f0ee5b74ba0b961f9679a5bfa156e361c9268cc14a89bf42d12776a22085a", "scans": { "js_gcode_matches": [ { @@ -274,17 +274,17 @@ "text": "const result = call(this.core, \"sim_interpreter_execute\", \"number\", [\"number\", \"number\", \"number\"], [this.interpreter, this.blockBuffer, bytes.length]);" }, { - "line": 1733, + "line": 1736, "path": "web/worker/sim-session.mjs", "text": "const result = this.xyzacProgram.executeBlock(block);" }, { - "line": 1752, + "line": 1755, "path": "web/worker/sim-session.mjs", "text": "const result = this.program.executeBlock(block);" }, { - "line": 197, + "line": 211, "path": "web/worker/wasm-program-runtime.mjs", "text": "executeBlock(block) {" } @@ -292,7 +292,7 @@ "opfs_writer_matches": [ { "line": 1, - "path": "web/react/dist/assets/sim-worker-entry-CyL7D-EC.js", + "path": "web/react/dist/assets/sim-worker-entry-CP8X4Y-6.js", "text": "(function(){var e=(()=>{var e=self.location.href;return(function(t){t||={};var t=t===void 0?{}:t,n,r;t.ready=new Promise(function(e,t){n=e,r=t});var i=Object.assign({},t),a=[],o=typeof window==`object`,s=typeof importScripts==`function`;typ" }, { @@ -1496,7 +1496,7 @@ "files": [ { "path": "web/react/src/App.tsx", - "sha256": "25ccd89e22f43464e23c5920da96b780b0ca4fdb9632f5b1d84a48c37e894f44" + "sha256": "d97cbe5f9d57e3071a43f0669bc9babd652a3ac347c4db226f749ee2d77fed10" }, { "path": "web/react/src/ThreeMachineView.tsx", @@ -1656,7 +1656,7 @@ }, { "path": "web/worker/sim-session.mjs", - "sha256": "a676086169205f16e25c142cb97e7cfac493ea58852cec93b799797f09637845" + "sha256": "6ffad5f415dac511b85670475c61c821c5b1cecea2003d812123a7bc3a0bb16f" }, { "path": "web/worker/sim-task.mjs", @@ -2060,7 +2060,7 @@ }, { "path": "web/worker/wasm-program-runtime.mjs", - "sha256": "6bc403380cfecdb4a05abf0918681b7d64acc97fb948ce7f4f73f554d51df6c4" + "sha256": "3b0cae4f3eb4c5fca8791fd8555351a9a718e269151e345c2e1a0f7914ce5119" }, { "path": "web/worker/wasm-xyzac-device-io.mjs", @@ -2094,10 +2094,10 @@ "scope": "selected_xyzac_simulation_only", "sources": [ { - "lines": "122-1000", + "lines": "122-1003", "path": "web/worker/sim-session.mjs", "role": "session-authority-routing", - "sha256": "a676086169205f16e25c142cb97e7cfac493ea58852cec93b799797f09637845", + "sha256": "6ffad5f415dac511b85670475c61c821c5b1cecea2003d812123a7bc3a0bb16f", "status": "resolved", "symbol": "new ProgramRunner" }, @@ -2190,10 +2190,10 @@ "symbol": "createSyncAccessHandle" }, { - "lines": "56-56", + "lines": "66-66", "path": "web/worker/wasm-program-runtime.mjs", "role": "wasm-program-authority", - "sha256": "6bc403380cfecdb4a05abf0918681b7d64acc97fb948ce7f4f73f554d51df6c4", + "sha256": "3b0cae4f3eb4c5fca8791fd8555351a9a718e269151e345c2e1a0f7914ce5119", "status": "resolved", "symbol": "export class WasmProgramRuntime" }, @@ -2215,9 +2215,9 @@ } ], "state_hashes": [ - "fnv1a64:209531d9fc283248", - "fnv1a64:ca3f86c22f00a1b8", - "fnv1a64:08d380ff6ff129bd" + "fnv1a64:f9c5800323549ff1", + "fnv1a64:ad9bcda2c0390aa0", + "fnv1a64:0b3199ef804f5546" ], "status": "verified", "task_id": "WASM-00", @@ -2235,7 +2235,7 @@ "control_count": 110, "first_divergent_tick": null, "motion_authority": "wasm", - "output_sha256": "e9d4aceca4c2c88882593ead1339f12d0ef81af51f257403c22f8c17e15e2f18", + "output_sha256": "adab2a85cbfa9b00b2496c07205d99cc0a3c8072c728908c146c45d13e68f60e", "returncode": 0, "state_hash": "fnv1a64:e862c9e59d9ffd8c", "status": "verified", @@ -2243,19 +2243,19 @@ { "active_type": 0, "code": "M429", - "state_hash": "fnv1a64:209531d9fc283248", + "state_hash": "fnv1a64:f9c5800323549ff1", "tick": 0 }, { "active_type": 1, "code": "M428", - "state_hash": "fnv1a64:ca3f86c22f00a1b8", + "state_hash": "fnv1a64:ad9bcda2c0390aa0", "tick": 0 }, { "active_type": 2, "code": "M430", - "state_hash": "fnv1a64:08d380ff6ff129bd", + "state_hash": "fnv1a64:0b3199ef804f5546", "tick": 0 } ], diff --git a/coverage/xyzac-trt-wasm-only-release-gate.report.json b/coverage/xyzac-trt-wasm-only-release-gate.report.json index 9c093cc..3afe725 100644 --- a/coverage/xyzac-trt-wasm-only-release-gate.report.json +++ b/coverage/xyzac-trt-wasm-only-release-gate.report.json @@ -96,7 +96,7 @@ "failure_samples": [], "input": { "path": "coverage/xyzac-trt-web-wasm-parity.report.json", - "sha256": "df18bbb72ac8e97af9bdf310203c181e8d7a9cf2843121e39ecd3832f08569b0" + "sha256": "f1664a422345d7974476a233de23bbebe784ef48d78422e66b3e44103295b47b" }, "known_blockers": [ "STOP_RELEASE is intentional until an owner authorizes scope expansion" @@ -104,7 +104,7 @@ "outputs": [], "release_decision": "selected_case_verified_but_release_stopped_by_scope_exclusions", "release_status": "STOP_RELEASE", - "report_sha256": "c4ea0158e4527823915b678f4fbc0667bba20fe3eff25cd7427358d2b3571b3b", + "report_sha256": "70ce954815cc9b7874bd7be3e0ed373fd9ad6ce9fb3b1af68ff9f70907c39b5a", "schema": "xyzac-trt-wasm-only-release-gate.v1", "status": "verified", "task_id": "RELEASE-00" diff --git a/web/react/src/styles.css b/web/react/src/styles.css index 3cd6bbb..889b4c9 100644 --- a/web/react/src/styles.css +++ b/web/react/src/styles.css @@ -183,10 +183,10 @@ output { font: 12px ui-monospace, monospace; text-align: right; } .program-gutter span { height: 17px; } .program-gutter span.current-line { color: #174d84; background: #c8d7e8; font-weight: 700; } .program-editor-wrap textarea { width: 100%; height: 100%; min-height: 180px; padding: 6px 8px; resize: none; border: 0; outline: none; background: #fff; color: #111; font: 12px/1.45 ui-monospace, monospace; tab-size: 4; } -.program-execution-line { display: grid; grid-template-columns: max-content minmax(0, 1fr); align-items: baseline; gap: 10px; min-width: 0; padding: 5px 8px; border-top: 1px solid #9aa8b4; border-bottom: 1px solid #9aa8b4; background: #e9f1f8; color: #173b5f; font: 12px/1.35 ui-monospace, monospace; } +.program-execution-line { display: grid; grid-column: 1; grid-row: 2; grid-template-columns: max-content minmax(0, 1fr); align-items: baseline; gap: 10px; min-width: 0; padding: 5px 8px; border-top: 1px solid #9aa8b4; border-bottom: 1px solid #9aa8b4; background: #e9f1f8; color: #173b5f; font: 12px/1.35 ui-monospace, monospace; } .program-execution-line span { font-weight: 700; white-space: nowrap; } .program-execution-line code { min-width: 0; overflow: hidden; color: #111; text-overflow: ellipsis; white-space: nowrap; } -.program-side { display: flex; flex-direction: column; gap: 12px; padding: 8px; border-left: 1px solid #aaa; background: #d9d9d9; } +.program-side { display: flex; grid-column: 2; grid-row: 1 / span 2; flex-direction: column; gap: 12px; padding: 8px; border-left: 1px solid #aaa; background: #d9d9d9; } .program-actions { display: flex; flex-wrap: wrap; gap: 5px; } .active-gcodes-label { display: grid; gap: 5px; color: #333; } .active-gcodes-label textarea { width: 100%; min-height: 84px; resize: vertical; border: 1px solid #999; background: white; color: #222; font: 11px/1.35 ui-monospace, monospace; } @@ -209,7 +209,8 @@ output { font: 12px ui-monospace, monospace; text-align: right; } .axis-notebook { min-height: 330px; } .axis-preview { min-height: 320px; } .axis-program-pane { flex: 0 0 auto; height: auto; min-height: 205px; grid-template-columns: 1fr; } - .program-side { border-top: 1px solid #aaa; border-left: 0; } + .program-execution-line { grid-column: 1; grid-row: 2; } + .program-side { grid-column: 1; grid-row: 3; border-top: 1px solid #aaa; border-left: 0; } .active-gcodes-label textarea { min-height: 58px; } } @media (max-width: 620px) {