Version closed effect ABI as 0.4

This commit is contained in:
tmk241
2026-09-01 01:04:27 +02:00
parent 31a0f02211
commit ad0c8b316c
7 changed files with 20 additions and 26 deletions
+5 -11
View File
@@ -1,17 +1,11 @@
# Current plan
## Slice HMX-001 — Closed typed effect path
## Closed receipt — HMX-001
Result: Commit `31a0f02` delivers the generated-resource -> canonical batch -> Axum -> owned browser-root path for all eight effects.
Proof: Focused Redgate script, workspace format/clippy/tests/deny, Wasm boundary, archive lists, and fresh-context review passed; HMX-001 IDs have no Redgate findings.
Release note: The breaking API is versioned 0.4.0; dependent archives require publishing 0.4.0 crates in dependency order and are outside this non-release slice.
Outcome: A handler can build the complete closed effect algebra with generated resource types, encode it canonically, and have one owned browser root apply it in order with defined failure behavior.
Delta: kernel/001–016, resource/001–004, resource/006, runtime/001, runtime/005, axum/001, axum/005.
Path: generated resource API -> typed effect batch -> canonical Axum response -> root-scoped browser decoder and executor -> DOM, focus, scroll, history, or dispatch result.
Build: Reconcile `hemx-core` effect/resource types and wire format, `hemx-build`/`hemx-derive` generated capabilities, `hemx-axum` response boundary, and `hemx-js` execution semantics as one compatibility break.
Risk: Partial migration can make server and browser disagree about opcodes, targets, ordering, or failure, causing wrong-root mutation or partial application.
Checks: Focused core round-trip/rejection tests; generated capability compile-pass/fail tests; Axum byte/status tests; browser scenarios for all eight effects, ordering, created-resource reuse, move identity, and stop-on-failure; `tests/redgate_test.sh`; `redgate check` for the slice IDs.
Non-goals: Request-policy attributes, optional transport adapters, islands, or public release publication.
Residual risk: Native interaction policy and adapter lifecycle remain in later slices.
State: Done
Blocked by: none
## Slice HMX-002 — Native interaction and recovery