Version closed effect ABI as 0.4
This commit is contained in:
Generated
+6
-6
@@ -349,7 +349,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "hemx"
|
||||
version = "0.3.0"
|
||||
version = "0.4.0"
|
||||
dependencies = [
|
||||
"hemplate",
|
||||
"hemx-core",
|
||||
@@ -358,7 +358,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "hemx-axum"
|
||||
version = "0.3.0"
|
||||
version = "0.4.0"
|
||||
dependencies = [
|
||||
"axum",
|
||||
"futures-util",
|
||||
@@ -371,7 +371,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "hemx-build"
|
||||
version = "0.3.0"
|
||||
version = "0.4.0"
|
||||
dependencies = [
|
||||
"hemplate-core",
|
||||
"hemx-core",
|
||||
@@ -381,7 +381,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "hemx-core"
|
||||
version = "0.3.0"
|
||||
version = "0.4.0"
|
||||
dependencies = [
|
||||
"postcard",
|
||||
"serde",
|
||||
@@ -389,7 +389,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "hemx-derive"
|
||||
version = "0.3.0"
|
||||
version = "0.4.0"
|
||||
dependencies = [
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
@@ -398,7 +398,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "hemx-js"
|
||||
version = "0.3.0"
|
||||
version = "0.4.0"
|
||||
dependencies = [
|
||||
"sha2",
|
||||
]
|
||||
|
||||
+1
-1
@@ -3,7 +3,7 @@ resolver = "2"
|
||||
members = ["hemx", "hemx-core", "hemx-derive", "hemx-js", "hemx-axum", "hemx-build", "hemx-test", "tests/server-wasm"]
|
||||
|
||||
[workspace.package]
|
||||
version = "0.3.0"
|
||||
version = "0.4.0"
|
||||
edition = "2021"
|
||||
rust-version = "1.88"
|
||||
license = "MIT"
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -16,8 +16,8 @@ path = "src/lib.rs"
|
||||
[dependencies]
|
||||
axum = { version = "0.8", default-features = false, features = ["multipart", "tokio"] }
|
||||
futures-util = { version = "0.3", default-features = false }
|
||||
hemx-core = { version = "0.3.0", path = "../hemx-core" }
|
||||
hemx-js = { version = "0.3.0", path = "../hemx-js" }
|
||||
hemx-core = { version = "0.4.0", path = "../hemx-core" }
|
||||
hemx-js = { version = "0.4.0", path = "../hemx-js" }
|
||||
|
||||
[dev-dependencies]
|
||||
scraper = "0.25"
|
||||
|
||||
@@ -15,6 +15,6 @@ path = "src/lib.rs"
|
||||
|
||||
[dependencies]
|
||||
hemplate-core = { version = "0.2.0", features = ["surface"] }
|
||||
hemx-core = { version = "0.3.0", path = "../hemx-core" }
|
||||
hemx-core = { version = "0.4.0", path = "../hemx-core" }
|
||||
quote = "1"
|
||||
syn = { version = "2", features = ["full"] }
|
||||
|
||||
@@ -16,11 +16,11 @@ axum = ["dep:axum", "dep:tower"]
|
||||
|
||||
[dependencies]
|
||||
axum = { version = "0.8.8", optional = true, default-features = false }
|
||||
hemx-core = { version = "0.3.0", path = "../hemx-core" }
|
||||
hemx-core = { version = "0.4.0", path = "../hemx-core" }
|
||||
scraper = "0.25.0"
|
||||
tower = { version = "0.5.2", optional = true, features = ["util"] }
|
||||
|
||||
[dev-dependencies]
|
||||
hemx-axum = { version = "0.3.0", path = "../hemx-axum" }
|
||||
hemx-build = { version = "0.3.0", path = "../hemx-build" }
|
||||
hemx-axum = { version = "0.4.0", path = "../hemx-axum" }
|
||||
hemx-build = { version = "0.4.0", path = "../hemx-build" }
|
||||
tokio = { version = "1.48.0", features = ["macros", "rt"] }
|
||||
|
||||
+2
-2
@@ -21,7 +21,7 @@ harness = false
|
||||
default = []
|
||||
|
||||
[dependencies]
|
||||
hemx-core = { version = "0.3.0", path = "../hemx-core" }
|
||||
hemx-derive = { version = "0.3.0", path = "../hemx-derive" }
|
||||
hemx-core = { version = "0.4.0", path = "../hemx-core" }
|
||||
hemx-derive = { version = "0.4.0", path = "../hemx-derive" }
|
||||
|
||||
hemplate = { version = "0.2.0", default-features = false }
|
||||
|
||||
Reference in New Issue
Block a user