Recognize only one valid Rust identifier bound directly to a self vector field as a template local; reject malformed and non-vector bindings, preserve unknown element locals without fabricated fields, and deduplicate repeated locals.
req: diagnostics/006
req: surface/008
req: test/021
Parse derive paths structurally so qualified Hemlate derives provide template context while similarly named derives fail closed. Prove hyphen/underscore template type mapping, empty and non-UTF-8 paths, Cargo-root lookup, Rust source failures, and derived field facts through the public inspection entry point.
req: diagnostics/006
req: surface/008
req: test/021
Assert exact generated symbol records for class, form, field, slot, atom, handle, and event resources; cover invalid and colliding class/form identifiers plus repeated compatible form metadata; and remove a redundant class-token conflict branch already owned by identifier validation.
req: style/001
req: form/001
req: diagnostics/004
req: build/009
req: test/021
Drive AppBuilder through a rooted client module with a non-Rust handler name and assert the exact InvalidData diagnostic, closing the public invalid-value mutation seam.
req: build/004
req: client_local/011
req: diagnostics/004
req: test/021
Drive AppBuilder through a changed template and prove generated Rust and symbols replace stale handles. Tighten the internal write helper to return only the result its callers use and classify the filesystem-equivalent read-guard mutant.
req: build/009
req: test/021
Exercise invalid client contracts through AppBuilder and simplify invariant-only generation paths so the focused build contract mutation set has no unexplained survivors.
req: build/004
req: build/007
req: client_local/011
Add boring runtime-level trigger timing primitives for delay, revealed, and interval while keeping them as attribute conventions rather than core effects or plugin surfaces. Promote lazy-load, infinite-scroll, progress-bar, value-select, and reset-user-input in examples/html_examples to runnable hemx patterns with exact htmx slugs and generated resources.
req: convention/001
req: convention/003
req: convention/005
req: htmx_equivalents/001
req: htmx_equivalents/002
req: examples/001
Make failed hemx requests visibly recoverable by updating root-scoped data-hemx-error outlets while preserving fail-closed non-2xx handling and inspectable hemx:error events. The v0 generated-app exemplar now includes a transport error outlet alongside generated field-error targets.
req: runtime/005
req: examples/001
req: canonical_authoring/003
Add hemx-lsp for stdio LSP diagnostics, completion, and hover while preserving HTML editor tooling for .heml files. Teach hemx-build to expose generated target and derive-known template context facts, including simple h-for locals, so editor help comes from build-owned facts instead of editor-only parsers. Wire VS Code/Cursor and Neovim documentation and extend the Workout exemplar with a real h-for plan loop for end-to-end proof.
req: diag/004
req: diag/005
req: diag/006
Add public .heml syntax authority and refactor the unkeyed generated-target error into structured diagnostic data while preserving the human compiler error.
req: diagnostics/001
req: diagnostics/002
Improve the unkeyed h-for diagnostic so authors see the exact loop, stable h-key shape, generated helper consequence, and why dynamic child data-key is not enough.
req: scope/001
req: diagnostics/002
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
Expose generated ui::page as the canonical page-boundary rendering helper and move the Workout golden path and docs off beginner-visible ui::render calls.
req: public_api/002
req: codegen/002
req: canonical_authoring/006
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