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
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 SaaS tutorial's settings route render a distinct full-page fallback while the enhanced handler still swaps the generated page panel and pushes history. This proves page-swap shape without relying only on the enhanced interaction path.
req: examples/001
req: page_swap/002
Promote examples/saas from skeleton wording to the canonical tutorial app and record the v1 release decision that local persistence plus provider-explicit recipes is the supported production boundary for CI-friendly docs.
req: examples/001
req: auth/001
req: laws/004
req: public_api/005
Document optional PWA/offline support as an adapter boundary: cached shell, domain-command queues, server-canonical replay, conflict/fingerprint behavior, and sync-crate shape without adding a client state graph or service worker to core.
req: canonical_authoring/008
req: runtime/003
req: runtime/004
req: auth/002
req: auth/004
req: failure/004
req: failure/005
req: sync/001
req: sync/007
Document a provider-explicit SQLx persistence adapter for the SaaS tutorial without adding SQLx to hemx core or the workspace. The recipe keeps auth/session, CSRF, generated helpers, and Result handler mapping as the app boundary.
req: laws/002
req: laws/004
req: auth/001
req: auth/002
req: auth/004
req: examples/001
req: canonical_authoring/002
req: failure/004
Replace the SaaS tutorial dashboard's hand-written Hemplate implementation with the real hemplate-derived dashboard template. This closes the tutorial skeleton shortcut and keeps the provider-light production app path on generated/derived rendering.
req: examples/001
req: canonical_authoring/001
req: view/001
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 remaining beginner-facing wire contract wording in the inspector partial with generated target/effect vocabulary and guard against regressions.
req: dx/006
req: examples/003
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
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
Keep the north-star walkthrough selector-free by describing the rejected path as positional DOM lookup instead of naming selector APIs.
req: examples/003
req: runtime/001
Replace the last querySelector mention in the north-star walkthrough with selector-free prose and extend example docs contracts to forbid selector APIs.
req: examples/003
req: runtime/001
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
Replace the north-star walkthrough's listener snippet with prose and guard example docs against teaching addEventListener glue.
req: examples/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
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
Complete the InteractionForm::parse migration for techdemo work updates so typed ids stay typed instead of being reparsed inside the helper.
req: form/004
req: dx/003
req: examples/003
Keep the north-star walkthrough aligned with example contract checks by describing runtime/bootstrap loading in prose instead of showing inline script tags.
req: examples/005
req: runtime/001
Add InteractionForm::parse for common typed field extraction and use it in example interaction handlers to avoid repeated string parsing plumbing.
req: form/004
req: dx/003
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
Pass WebDriver-found elements into browser E2E helper scripts and build the probe island with DOM APIs, keeping test-only JavaScript from reintroducing querySelector or unchecked HTML insertion.
req: runtime/001
req: examples/005
Move the kanban full-page shell into a checked .heml unit so page assembly uses slhx render/SafeHtml composition instead of hand-built trusted HTML strings.
req: html_safety/001
req: html_safety/002
req: component/003
Keep valid techdemo E2E interactions on generated Handle values plus the axum handle-field constant, leaving only the unknown-id negative case as raw wire input.
req: dx/003
req: examples/003
Refresh the kanban north-star walkthrough so rendered metadata and listener attachment match the current data-key/data-slhx-root root-scoped runtime contract.
req: runtime/001
req: target_policy/001
Remove the last handwritten __h input from techdemo markup, switch E2E posts to generated handles, and extend example contracts to catch literal handle fields in templates.
req: dx/003
req: ceremony/002
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
Use the slhx RenderSlotExt path for board updates so examples no longer manually compose SafeHtml before slot replacement.
req: dx/006
req: component/003