126 Commits

Author SHA1 Message Date
slhx agent acddea21ee fix(examples): repair html dynamic partial interactions
Preserve data-hemx-revealed through hemx-build and make html_examples lazy/load-more/infinite/search interactions return server-driven partial updates with regression coverage.

req: convention/005

req: htmx_equivalents/002

req: examples/001
2026-06-25 12:56:43 +02:00
slhx agent cd7f64e5a3 feat(runtime): add tiny trigger timing conventions
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
2026-06-23 07:51:43 +02:00
slhx agent b3d72e8d82 feat(examples): add hemx html pattern gallery
Add examples/html_examples as a copy-pasteable gallery for the first htmx-style HTML UX patterns using exact htmx URL slugs in the page and README. The slice covers click-to-edit, edit-row, delete-row, inline-validation, click-to-load, and active-search with .heml templates, generated resources, server-owned Rust state, and runtime-free selector targeting.

req: htmx_equivalents/001

req: htmx_equivalents/002

req: examples/001
2026-06-23 07:22:40 +02:00
slhx agent de6ecd469f fix(runtime): show transport failures in app error outlets
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
2026-06-22 22:26:33 +02:00
slhx agent f1aa232c94 fix(runtime): fail closed on hemx request errors
Preserve pending recovery while making failed HTTP responses non-applicable as effects. The runtime now restores aria-busy with pending state and emits inspectable hemx:error details with HTTP status for failed requests.

req: runtime/005

req: convention/007
2026-06-22 22:22:26 +02:00
slhx agent 797132647f feat(diagnostics): add compiler-backed heml language service
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
2026-06-22 22:06:42 +02:00
slhx agent 4bca046ed1 docs: bound optional heml editor overlays
Make hemx-build diagnostics and the documented .heml syntax surface the authority for any editor overlay, while rejecting a second template language, selector model, formatter, or custom editor framework.

req: diagnostics/004
2026-06-12 18:15:30 +02:00
slhx agent b8c83fee25 feat(build): surface structured template diagnostics
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
2026-06-12 18:11:39 +02:00
slhx agent d4916b1a1e feat(xtask): add mobile app starter
Add app new --mobile as the public phone-first starter path. It reuses the Workout starter so created apps carry a real page/form/keyed partial/notice flow, typed host capability handling, app-owned recovery truth, and inspectable mobile release/verify commands without adding a mobile framework.

req: ceremony/006

req: examples/006
2026-06-12 15:34:32 +02:00
slhx agent 274f44f91d feat(xtask): scaffold generic hemx apps
Add cargo run -p hemx-xtask -- app new PATH for the generic checked-hypermedia starter: v0 page/form/keyed-row/notice handlers and tests with generated helpers instead of raw ids, opcodes, selector UI JavaScript, or manual registry plumbing.

req: ceremony/005

req: canonical_authoring/003
2026-06-12 15:13:33 +02:00
slhx agent d0dc9729fd docs: explain reusable partials
Add the public 'Where are my components?' answer: hemx maps framework component jobs to hemplate partials, generated helpers, app-owned state, IntoEffect composition, and explicit leaf islands. The pre-commit guard now only blocks commits that change REQUIREMENTS.md without an AGENTS.md review, so unrelated follow-up commits are not trapped by old history.

req: canonical_authoring/002

req: canonical_authoring/003
2026-06-12 14:40:25 +02:00
slhx agent a4a4dcf74f feat(workout): hide registry conversion from golden path
Let the Workout generated interaction builder satisfy DispatchRegistry directly and guard canonical sources/docs against .into_registry() so the beginner path does not teach manual registry conversion.

req: examples/001

req: examples/006

req: public_api/002
2026-06-12 13:08:46 +02:00
slhx agent 860a4edf61 feat(workout): unify release command surface
Route local dev, tests, production build, mobile release, mobile verification, and doctor through one Workout xtask surface, and update the canonical docs around that surface.

req: examples/001

req: examples/006

req: test/004
2026-06-12 11:20:22 +02:00
slhx agent 5a42f2664a feat(workout): verify mobile release kit
Add a workout-mobile verify command that checks the generated release kit and server artifact, then document it beside release/doctor so the mobile path has a recurring gate.

req: examples/006
2026-06-12 11:12:18 +02:00
slhx agent c146e9b932 feat(workout): recover common session failures
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
2026-06-11 23:25:21 +02:00
slhx agent 189bdf5eea feat(examples): polish workout phone UI
Give the workout exemplar a durable gym-floor command-slate direction, serve focused CSS, keep the first viewport centered on one action, and extend the HTTP E2E to verify stylesheet delivery.

req: examples/001

req: local/001

req: local/003

req: host/002
2026-06-11 22:03:18 +02:00
slhx agent e76a564add feat(examples): add native-shell workout host path
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
2026-06-11 20:43:14 +02:00
slhx agent 1ec68d400c feat(local): decide local stays app territory
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
2026-06-11 19:52:21 +02:00
slhx agent 2cc6c85e37 feat(host): add typed host capability boundary
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
2026-06-11 19:35:20 +02:00
slhx agent ce4c2e086d feat(axum): expose hashed runtime asset path
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
2026-06-05 18:27:38 +02:00
slhx agent c33500440e refactor!: rename slhx to hemx
Rename the tracked product identity, crate/package names, Rust paths/macros, generated artifacts, runtime files, public attributes, examples, docs, requirements, and tests from slhx to hemx without compatibility shims.

Verified with cargo run -p hemx-xtask -- test, cargo test -p hemx-derive --test compile_fail, cargo test -p hemx-js, cargo test -p hemx-axum, cargo test -p hemx-v0-examples, cargo check --workspace, redgate list, redgate refs, redgate health --strict, git diff --check, and git grep/ls-files legacy-name audits.

req: misc/001

req: codegen/001

req: component/004

req: runtime/001
2026-06-05 06:52:37 +02:00
slhx agent 28ee1b5111 docs(agents): note hemplate syntax gotchas 2026-05-26 07:15:27 +02:00
slhx agent 7a2c5ecae0 build(test): cap verification concurrency
req: test/004
2026-05-11 10:27:09 +02:00
slhx agent 79414fbb39 feat(runtime): lower generated runtime ids
req: wire/001

req: ts/001
2026-05-10 23:04:45 +02:00
slhx agent c4e02db5f8 chore(checkpoint): save current v0 build state 2026-05-10 20:51:22 +02:00
tmk241 bd13d0fa0d feat: slhx requirements, project structure, and core primitives 2026-05-10 11:33:26 +02:00