Support Vec<T: IntoEffect> and [T; N] batches so dynamic reusable partial updates compose inside the existing effect model without a broad IntoIterator blanket impl.
req: canonical_authoring/003
Move canonical examples and docs snippets from raw render/page calls to generated ui::page helpers, hide generated render behind doc(hidden), and let form resources participate in generated target inspection for tests.
req: canonical_authoring/005
req: dx/006
req: codegen/002
req: public_api/002
req: test/001
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
Make the canonical v0 todo flow use one TodoRow partial shape for initial list rendering and generated keyed append/replace/remove helpers. Teach hemx-build to treat collection hosts with keyed h-for children as keyed targets, so beginner templates can keep the DRY outer slot + child partial composition.
req: canonical_authoring/002
req: canonical_authoring/003
req: examples/004
req: list/001
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
Move remaining v0 example updates from raw slot constants/free functions to generated target objects for the partial/swap happy path.
req: dx/006
req: examples/003
Replace beginner-facing EffectBatch/slot-effect wording with generated update language while keeping wire-batch types in tests and low-level APIs.
req: dx/006
req: examples/003
Keep example READMEs aligned with the generated-resource, tuple-composed IntoEffect authoring path instead of lower-level handle/EffectBatch wording.
req: dx/006
req: examples/003
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
Move canonical example test helpers and docs off direct slot render shortcuts so even test-only slot updates use generated lower-aware HTML paths.
req: component/003
req: runtime/001
req: examples/003
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
Use generated lower-aware render paths before slot HTML updates so example fragments carry runtime ids for follow-up interactions such as browser drag/drop.
req: component/003
req: runtime/001
req: examples/003
Wrap extracted interaction forms in an InteractionRequest with a concise dispatch path, add a handlers() helper, and move canonical examples off direct HandlerRegistry/InteractionForm plumbing.
req: axum_integration/003
req: ceremony/001
req: dx/003
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
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
Import component-scoped generated modules at the example boundary so handlers and tests read as local slots/forms/handles without hiding ownership or adding framework machinery.
req: component/003
req: dx/006
Switch v0 page and payload composition to generated render_html helpers, removing the local render_template bridge while keeping the explicit full-page SafeHtml shell boundary.
req: component/003
req: view/001
req: html_safety/002
Drop the v0 example's global export opt-in and update tests to use component-scoped slots and forms, matching the checked public API path.
req: component/003
req: build/001
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
Remove remaining example-local render_html wrappers in favor of slhx::render_html so public examples share the hemplate render_into effect boundary.
req: view/001
req: html_safety/002
Migrate v0 handlers and tests from explicit SafeHtml/html payload plumbing to RenderSlotExt and RenderKeyedSlotExt view helpers.
req: view/001
req: html_safety/002
Use hemplate render_into in public examples and example tests instead of the string-returning render helper, preserving SafeHtml wrapping only at the explicit effect boundary.
req: view/001
req: html_safety/002
Add HandlerRegistry::register_handle for generated Handle<T> values and migrate examples away from passing raw numeric handle ids at registration sites.
req: ceremony/004
req: public_api/001
Have #[slhx::form] emit an associated FORM resource so checked form handlers can be called with TodoInput::FORM-style values instead of generated_resource.typed::<T>() noise.
req: form/001
req: form/004
req: form/006
req: codegen/004
Annotate the v0 auth and wizard form models with #[slhx::form], make their templates expose checked form fields, and add handler smoke tests over the generated form resources.
req: form/001
req: form/004
req: form/006
req: derive_handler/003
Use #[slhx::form] in the v0 example tests and add a checked form-handler smoke test, with a typed() helper for generated form ids so examples do not rebuild ids by hand.
req: form/001
req: form/004
req: form/006
req: derive_handler/003
Make v0 and kanban DOM-aware escaped-text checks exact instead of substring-based while preserving the no-rendered-tag assertions.
req: html_safety/002
req: test/005
Exercise the v0 page-swap effect with a renderable hemplate view payload instead of an ad hoc HTML-looking text literal.
req: view/001
req: html_safety/002
req: page_swap/002
req: page_swap/003
Use DOM-aware rendered-text inspection for the v0 shell marker check and extend unkeyed h-for validation coverage from slots to handles.
req: test/005
req: scope/001
Move the v0 keyed todo row effect payload from Rust format! HTML into a hemplate partial and require the generated slot append to carry an HTML payload.
req: html_safety/002
req: view/001
Move the v0 page shell from a Rust format! raw HTML string into a hemplate AppShell view and cover the rendered document structure with scraper.
req: html_safety/002
req: view/001
req: test/005
Move the v0 docs/page-swap partial and EffectBatch content payload from raw HTML strings into hemplate views, with scraper assertions for rendered structure.
req: html_safety/002
req: view/001
req: test/005
Move the v0 todo-list payload from Rust raw HTML formatting into a hemplate partial/view and cover both populated and empty rendered structure with scraper.
req: html_safety/002
req: view/001
req: test/005