Add one canonical Workout mobile release command that builds the production server and writes Android/iOS shell metadata, explicit production policy, and honest external signing/toolchain blockers.
req: examples/001
req: examples/006
req: host/002
req: local/001
Make the workout exemplar recover cleanly from invalid edits, accidental double-advance, replay parse failures, and denied or timed-out host export results while keeping local events as truth.
req: examples/001
req: local/001
req: local/003
req: local/004
req: host/002
req: host/005
Extend the workout exemplar with a native-shell haptic request and acknowledgment path that validates the host manifest and returns through app code without owning workout state.
req: host/001
req: host/002
req: host/004
req: host/005
req: examples/001
Add a runnable phone-first workout example that keeps local workout truth as commands, domain events, and projections, routes export through the host capability boundary, and documents how to open it in the browser.
req: examples/001
req: local/001
req: local/003
req: local/004
req: host/001
req: host/005
Define local/offline truth as commands, domain events, and projections rather than stored DOM patches or EffectBatch payloads; wire the techdemo through a local command-to-projection-to-effect flow; document that hemx-local is not a crate until reusable semantics are proven.
req: local/001
req: local/002
req: local/003
req: local/004
req: examples/001
Define local/offline truth as commands, domain events, and projections rather than stored DOM patches or EffectBatch payloads, and wire the techdemo through a local command-to-projection-to-effect flow.
req: local/001
req: local/002
req: local/003
req: local/004
req: examples/001
Introduce hemx-host with typed capability manifests, calls, events, host-check failures, reusable browser/PWA and native-shell profiles, and a tiny optional browser adapter for haptics/share that returns host events without DOM mutation.
req: host/001
req: host/002
req: host/003
req: host/004
req: host/005
Generate a SHA-256 content hash for the embedded hemx runtime, expose the hashed path from hemx-axum, serve immutable runtime headers, and update examples to load the hemx-owned path instead of fixed /hemx.js URLs.
req: axum_integration/005
Close the fallible handler and example coherence slice: v0 uses typed todo newtypes, Result handler failure mapping, generated form/partial helpers, and page composition; kanban is explicitly marked as an advanced north-star milestone; raw render is isolated behind hemx::advanced::render.
req: canonical_authoring/003
req: failure/004
req: public_api/005
req: examples/004
Add CssClass/CssClasses with/with_if helpers so nested partial view data can compose generated CSS constants without ad hoc class strings.
req: style/003
req: component/003
Keep render_html/lower_html available for explicit compatibility while generated/public docs steer authors to render/lower and generated resource commands.
req: dx/006
Keep dx/006 from implying crate-root helpers should bypass generated lowering; the public facade owns generic render while generated view modules own lower-aware slot commands.
req: dx/006
Add lower-aware generated append/prepend/replace helpers for keyed slots, move the v0 keyed todo example off the facade extension trait, and keep beginner examples from importing lower-level render shortcuts.
req: dx/006
req: codegen/002
req: public_api/003
req: examples/003
Generate ui::put(slot, view) for lower-aware slot HTML updates and move examples/docs/contracts to that ergonomic path instead of hand-composing slot.html(render(...)).
req: dx/006
req: component/003
req: runtime/001
req: examples/003
Keep the beginner prelude on generated lower-aware render/html paths instead of exposing RenderSlotExt, which can bypass generated runtime metadata.
req: dx/006
req: component/003
req: runtime/001
Move canonical examples and docs off direct RenderSlotExt render shortcuts so slot updates use generated render/lowering before HTML replacement, preserving runtime metadata for follow-up interactions.
req: component/003
req: runtime/001
req: dx/006
req: examples/003
Add a generated static_fragment helper for include_str!-style prototype fragments and use it in the v0 page assembly path so static lowered .heml no longer needs repeated SafeHtml::trusted plumbing.
req: dx/006
req: html_safety/001
req: html_safety/002
req: component/003
Let already-safe fragments compose without downgrading to String, and use it in the v0 page assembly example to keep rendered and lowered fragments typed at the boundary.
req: html_safety/001
req: html_safety/002
req: component/003
Add a SafeHtml PageRequest path for shell/partial composition and migrate examples so rendered hemplate fragments stay typed through the transport boundary instead of round-tripping through unchecked strings.
req: axum_integration/001
req: html_safety/001
req: html_safety/002
Generate lower(html) as the short static/prototype fragment lowering helper while keeping lower_html(html) as the compatibility alias, then move the v0 page assembly to the leaner path.
req: dx/006
req: component/003
Expose slhx::render(view) as the short SafeHtml composition helper and keep render_html(view) as a compatibility alias, matching generated modules' lean page-building path.
req: dx/006
req: html_safety/002
Generate render(view) as the short page/fragment composition helper while keeping render_html(view) as an explicit compatibility alias, then move examples to the leaner happy path.
req: component/003
req: dx/006
req: view/001
Report malformed data-slhx-st with slhx:state-error and continue binding the root with an empty atom store instead of letting state decode failures stop handlers, navigation, or push.
req: state/004
req: state/006
req: runtime/001
Treat data-slhx-boost on anchors and forms as a build error with guidance toward data-slhx-nav or data-slhx-handle, preserving boost as a container convention.
req: page_swap/007
req: diagnostics/002
Treat static data-slhx-nav anchors without href as build errors so page-swap links preserve progressive navigation when JavaScript is unavailable.
req: page_swap/001
req: diagnostics/002
Reject data-slhx-nav on non-anchor elements and data-slhx-sse away from its root, so standard conventions keep progressive navigation and root-scoped push semantics instead of silently doing nothing.
req: page_swap/001
req: push/006
req: diagnostics/002
Require non-empty data-slhx-sse values at build time and have the standard runtime reject cross-origin EventSource URLs with slhx:sse-error instead of opening an implicit external stream.
req: push/006
req: diagnostics/002
Treat empty static data-slhx-on lists and empty data-slhx-confirm messages as build errors, so authors do not silently disable dispatch or confirmation guards with blank attributes.
req: convention/002
req: convention/004
req: diagnostics/002
Validate static data-slhx-on values against the runtime-supported delegated event set so generated EventName constants cannot imply browser behavior the runtime will never dispatch.
req: convention/002
req: diagnostics/002
Fail fast when templates use misspelled or unsupported data-slhx-* attributes, with guidance to fix the spelling or use non-slhx data-* metadata for app-specific islands.
req: convention/009
req: diagnostics/002
Add a canvas leaf-widget island to the techdemo that receives server snapshots through Effect::event/CustomEvent while keeping slhx core and runtime semantics unchanged.
req: interop/001
req: examples/001
req: examples/005
Document that remaining SafeHtml use in examples is limited to full-page shell composition of already-rendered hemplate fragments, while effect payloads use render helpers.
req: html_safety/002
req: view/001
Generate ComponentRef constants for component-scoped APIs, include global component refs only when global_exports(true) is enabled, and document/use the checked component token.
req: component/003
Introduce FormValue as the parser-availability bound for #[slhx::form] models, blanket it for FromStr types, and add compile-fail coverage for a form field whose domain type lacks a parser.
req: form/004
req: form/006
Add #[slhx::form] for user-authored form models, emit form field metadata into slhx.syms, and require form handlers to accept models that passed generated field compatibility checks.
req: form/001
req: form/004
req: form/006
req: codegen/004
Discover data-slhx-on event names from hemplate Surface inputs and emit generated events modules plus symbol rows without adding runtime trigger semantics.
req: codegen/006
Align test/002 with the implemented checked boundary: #[slhx::surface] now requires generated slhx.generated.rs while #[slhx::component] remains available for incremental module-local testing.
req: test/002