补充 project release handoff 文档
This commit is contained in:
124
wasm-port/docs/project-release-handoff.md
Normal file
124
wasm-port/docs/project-release-handoff.md
Normal file
@@ -0,0 +1,124 @@
|
||||
# Project release handoff
|
||||
|
||||
This is the short project-level handoff for the current LinuxCNC WASM/browser
|
||||
port scope. It points a new maintainer to the supported workflow surfaces, the
|
||||
required release gates, and the boundaries that must remain blocked until real
|
||||
LinuxCNC-owned runtime proof exists.
|
||||
|
||||
## Start here
|
||||
|
||||
Use these documents as the current handoff set:
|
||||
|
||||
- `README.md` for the workspace layout and release validation commands.
|
||||
- `docs/panel-entry.md` for browser/UI entry points and shell handoff helpers.
|
||||
- `runtime/sdk/README.md` for stable SDK imports from `runtime/sdk/src/index.js`.
|
||||
- `docs/opfs-session-persistence.md` for OPFS/session persistence scope.
|
||||
- `docs/sim-configs-coverage-handoff.md` for sim-config inventory status.
|
||||
- `docs/host-runtime-boundary-handoff.md` for blocked runtime families.
|
||||
- `docs/source-reuse-map.md` and `docs/drift-report.md` for LinuxCNC source
|
||||
reuse and non-drift rules.
|
||||
- `../PROJECT_COMPLETION_TRACKER.md` for project-level acceptance tracking.
|
||||
|
||||
Old turn logs `text1.txt` through `text13.txt` are historical context. Current
|
||||
continuation records are in `../text14.txt`.
|
||||
|
||||
## Supported current workflows
|
||||
|
||||
- INI panel launch, edit/run page, read-only control page, workflow overview,
|
||||
and external shell handoff are exposed from `runtime/ui/ini-panel/`.
|
||||
- External shells should use the read-only helpers documented in
|
||||
`docs/panel-entry.md`, including workflow overview embedding mount DOM
|
||||
contract/readiness/renderer/wrapper helpers.
|
||||
- SDK callers should import stable helpers from `runtime/sdk/src/index.js`.
|
||||
- OPFS/session persistence is host-side storage glue. Parameter and tool-table
|
||||
behavior still comes from the LinuxCNC-backed interpreter SDK calls.
|
||||
- Sim-config inventory promotion remains evidence-driven and must keep
|
||||
`unexpected_fail=0`.
|
||||
|
||||
## Required release gates
|
||||
|
||||
Run these before claiming the current scope is release-ready:
|
||||
|
||||
```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
|
||||
```
|
||||
|
||||
The host aggregate gate includes SDK, OPFS, docs, UI Node, WASM Node, and
|
||||
browser smoke coverage. A passing aggregate ends with:
|
||||
|
||||
```text
|
||||
host_wasm_opfs_browser_smokes=ok
|
||||
```
|
||||
|
||||
## Expected baseline outputs
|
||||
|
||||
The current sim-config inventory release baseline is:
|
||||
|
||||
```text
|
||||
sim_configs_wasm_node_inventory_executed=28
|
||||
sim_configs_wasm_node_inventory_passed=28
|
||||
sim_configs_wasm_node_inventory_skipped=131
|
||||
sim_configs_wasm_node_inventory_unexpected_fail=0
|
||||
```
|
||||
|
||||
The expected docs and SDK smoke outputs include:
|
||||
|
||||
```text
|
||||
project_release_handoff_docs_node_smoke=ok
|
||||
opfs_session_docs_node_smoke=ok
|
||||
sim_configs_coverage_docs_node_smoke=ok
|
||||
host_runtime_boundary_docs_node_smoke=ok
|
||||
sdk_surface_node_smoke=ok
|
||||
```
|
||||
|
||||
The expected browser INI panel smoke outputs include:
|
||||
|
||||
```text
|
||||
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
|
||||
```
|
||||
|
||||
## Blocked runtime families
|
||||
|
||||
These runtime families remain blocked:
|
||||
|
||||
- `L4-USER-M-PROCESS`
|
||||
- `L4-TOOL-DB`
|
||||
- `L4-PYTHON-REMAP`
|
||||
|
||||
Do not promote them from skipped/blocked state without LinuxCNC-owned native
|
||||
runtime proof followed by Node/WASM and browser/host validation. The opt-in
|
||||
runtime probes are documented in `docs/host-runtime-boundary-handoff.md`; they
|
||||
must not be run on hosts that do not provide the required LinuxCNC runtime.
|
||||
|
||||
## Acceptance checklist
|
||||
|
||||
- `git diff --check` passes.
|
||||
- Vendor sync and standalone CNC semantic guards pass.
|
||||
- Interpreter WASM Node smoke passes.
|
||||
- Sim-config inventory has `unexpected_fail=0`.
|
||||
- UI Node smoke passes.
|
||||
- Browser INI panel smoke passes.
|
||||
- Host aggregate smoke passes.
|
||||
- SDK exports match `runtime/sdk/README.md`.
|
||||
- `docs/panel-entry.md` documents the external shell workflow surface.
|
||||
- OPFS/session, sim-config coverage, host/runtime boundary, source reuse, and
|
||||
drift docs all point to the current validation gates.
|
||||
- Blocked runtime families remain documented and are not falsely promoted.
|
||||
|
||||
## Next maintainer rule
|
||||
|
||||
Add new CNC behavior only by reusing vendored LinuxCNC source or a documented
|
||||
runtime-edge adapter. JavaScript may stage files, mount UI state, manage OPFS,
|
||||
load WASM modules, and call C ABI functions; it must not implement G-code,
|
||||
tool, parameter, planner, kinematics, remap, or canonical motion semantics.
|
||||
Reference in New Issue
Block a user