diff --git a/PLAN.md b/PLAN.md index b8361f9..ec0eec5 100644 --- a/PLAN.md +++ b/PLAN.md @@ -1,28 +1,9 @@ # Current plan -## Closed receipt — HMX-002 +No live Hemx slices remain. -Result: Generated semantic anchors and forms use the canonical marker vocabulary, bounded request policy, accessible validation markup, enhanced requests, and native recovery. -Proof: Focused Redgate checks, workspace gates, request-boundary tests, navigation failure recovery, and fresh-context review passed; HMX-002 IDs have no findings. +## Closed receipt — HMX-001–004 + +Result: The closed typed effect path, native interaction recovery, root-owned adapters, deterministic generation, and portable server build are delivered. +Proof: `redgate check`, focused requirement checks, workspace format/clippy/tests/license gates, Wasm target/tree checks, archive checks, and fresh-context reviews passed. Residual risk: Browser behavior is deterministically checked at generated-markup, runtime, and Axum boundaries rather than through an external browser harness. - - -## Closed receipt — HMX-003 - -Result: Direct SSE, WebSocket, polling, reveal, and event adapters bind once per owned root, clean removed fragments, carry canonical batches, and preserve explicit islands. -Proof: Focused lifecycle, nested-root ownership, transport-byte, island, closed-core, no-client-store, Axum boundary, Redgate, workspace, and fresh-context checks passed. -Residual risk: Browser lifecycle is deterministically checked at the runtime source boundary rather than through an external browser harness. - - -## Slice HMX-004 — Deterministic generation and portable server build - -Outcome: Template inspection and macros produce stable, actionable generated contracts, and normal server-side Hemx APIs compile for wasm32 without host parser dependencies. -Delta: resource/005, build/001–003, derive/001–004, wasm/001. -Path: Hemplate template input -> build inspection and macro expansion -> generated contract artifact -> unchanged rebuild or actionable compile failure -> portable server target. -Build: Tighten semantic fingerprinting and no-op writes, source-path diagnostics, macro preservation and compile failures, and the target dependency boundary. -Risk: Nondeterministic artifacts cause rebuild churn and ABI drift; leaked host parsers make the promised server target unusable. -Checks: Existing deterministic/no-op build and compile-fail tests; source I/O diagnostic test; wasm32 check plus normal dependency-tree exclusion; `tests/redgate_test.sh`; `redgate check` for the slice IDs. -Non-goals: Changing Hemplate syntax, parser internals, or package publication. -Residual risk: None after focused checks and the repository’s required workspace gates pass. -State: Ready -Blocked by: none diff --git a/tests/redgate_test.sh b/tests/redgate_test.sh index 2fbf69a..aff1b29 100755 --- a/tests/redgate_test.sh +++ b/tests/redgate_test.sh @@ -12,7 +12,8 @@ cargo test -p hemx-js --test runtime runtime_executes_every_closed_effect_with_o cargo test -p hemx-js --test runtime runtime_applies_batches_in_order_and_stops_on_failure -- --exact # spec: kernel/004 check # spec: kernel/005 check # spec: runtime/005 check cargo test -p hemx-build public_heml_inspection_entry_points_preserve_paths_and_io_diagnostics --lib # spec: build/001 check cargo test -p hemx-build generated_contract_fingerprint_is_deterministic --lib # spec: build/002 check -cargo test -p hemx-build no_op_build_preserves_generated_artifact_timestamps --lib # spec: build/003 check +cargo test -p hemx-build no_op_build_preserves_generated_artifact_timestamps --lib # spec: build/003 check # spec: resource/005 check +cargo test -p hemx-build changed_template_refreshes_generated_artifacts --lib # spec: resource/005 check cargo test -p hemx-derive --test surface surface_macro_preserves_inline_module_with_generated_file -- --exact # spec: derive/001 check cargo test -p hemx-derive --test compile_fail handler_macro_reports_unknown_handle_and_bad_shape -- --exact # spec: derive/002 check cargo test -p hemx-derive --test compile_fail component_macro_reports_missing_handler_implementation -- --exact # spec: derive/003 check