Skip to content

v0.3.0

@telchardev telchardev tagged this 24 Apr 22:44
Move mutable feature state (scope API, status store, cleanup bags,
ownActive, toggle, exports cache) out of shared `Feature.internal`
into a per-container `FeatureRuntime` owned by `AppContainer`. Port
handler maps move from `Port` onto the container.

Fixes a race where two `ArmatureApp` widgets sharing top-level `final`
features corrupted each other's state during async dispose/construct.

BREAKING CHANGE: internal API only. `Feature.internal` →
`Feature.config` (immutable config) + `container.runtimeOf(feature)`
(per-container state). `Port.addHandler/removeHandler/handlers/
handlerCount/handlerFeatureNames` removed — use
`container.addPortHandler` / `container.handlersOf<THandler>(port)`.
`feature.storeOf<T>(container)` now takes an explicit container.
User-facing API (`createFeature`, `ArmatureApp`, `StoreContext.of`,
providers, activation helpers) unchanged.
Assets 2
Loading