Commit Graph

360 Commits

Author SHA1 Message Date
slhx agent 1a24dff507 docs(requirements): tighten htmx equivalent rows
Add explicit northstar ring fields to htmx_equivalents rows and shorten the selector-boundary row without changing behavior.

req: htmx_equivalents/001

req: htmx_equivalents/002

req: htmx_equivalents/003

req: htmx_equivalents/004

req: htmx_equivalents/005

req: htmx_equivalents/006
2026-06-25 14:54:46 +02:00
slhx agent ad7eea6f67 test(html-examples): make lazy load visibly update
Show a server-update count in the lazy panel so manual clicks have an observable change, and strengthen the browser smoke to assert the panel text changes.

req: examples/001

req: htmx_equivalents/005

req: test/006
2026-06-25 14:51:01 +02:00
slhx agent a667113dc0 docs(requirements): tighten page swap rows
Add explicit northstar ring fields to page_swap rows, split boosted native behavior, and shorten overlong rows without changing behavior.

req: page_swap/001

req: page_swap/002

req: page_swap/003

req: page_swap/004

req: page_swap/005

req: page_swap/006

req: page_swap/007

req: page_swap/008
2026-06-25 14:46:36 +02:00
slhx agent 351f5147a4 docs(requirements): tighten progressive disclosure rows
Add explicit northstar ring fields to progressive disclosure requirements and shorten the level-ordering row without changing behavior.

req: progressive_disclosure/001

req: progressive_disclosure/002

req: progressive_disclosure/003

req: progressive_disclosure/004
2026-06-25 14:42:41 +02:00
slhx agent 6136d67ad0 docs(requirements): tighten ceremony rows
Add explicit northstar ring fields to ceremony requirements, split the mobile-starter negative boundary, and shorten overlong rows without changing behavior.

req: ceremony/001

req: ceremony/002

req: ceremony/003

req: ceremony/004

req: ceremony/005

req: ceremony/006

req: ceremony/007
2026-06-25 14:39:55 +02:00
slhx agent ed7bdc5c1f docs(requirements): tighten dx rows
Add explicit northstar rings to dx rows and shorten overlong wording without changing the authoring obligations.

req: dx/001

req: dx/002

req: dx/003

req: dx/004

req: dx/005

req: dx/006

req: dx/007

req: dx/008

req: dx/009

req: dx/010
2026-06-25 14:36:50 +02:00
slhx agent e74d3f632d docs(requirements): tighten mode rows
Add explicit northstar rings to modes rows and shorten the Page Enhancer and beginner-doc obligations below lint thresholds without changing their intent.

req: modes/001

req: modes/002

req: modes/003

req: modes/004
2026-06-25 14:32:39 +02:00
slhx agent 0995374f9d docs(requirements): add rings to canonical rows
Add explicit northstar ring fields across canonical_authoring rows so redgate no longer reports missing-ring warnings for that section.

req: canonical_authoring/001

req: canonical_authoring/002

req: canonical_authoring/003

req: canonical_authoring/004

req: canonical_authoring/005

req: canonical_authoring/006

req: canonical_authoring/007

req: canonical_authoring/008
2026-06-25 14:28:07 +02:00
slhx agent 337f5410f0 docs(requirements): add rings to pitch
Add explicit northstar rings to the pitch requirements so redgate no longer reports missing-ring warnings.

req: pitch/001

req: pitch/002

req: pitch/003

req: pitch/004

req: pitch/005
2026-06-25 14:24:49 +02:00
slhx agent db4e6dad9b docs(requirements): add rings to laws
Add explicit northstar rings to the law requirements so redgate no longer reports missing-ring warnings for the first rows.

req: laws/001

req: laws/002

req: laws/003

req: laws/004

req: laws/005
2026-06-25 14:22:38 +02:00
slhx agent 7b647add0a docs(requirements): split offline adapter boundary
Split oversized canonical_authoring/008 into offline opt-in, adapter queue, and no-core-local-runtime requirements.

req: canonical_authoring/008

req: canonical_authoring/018

req: canonical_authoring/019
2026-06-25 14:18:27 +02:00
slhx agent aa036922cf docs(requirements): split island boundary rule
Split oversized canonical_authoring/007 into explicit leaf adapter and no-second-UI-model requirements.

req: canonical_authoring/007

req: canonical_authoring/017
2026-06-25 14:15:33 +02:00
slhx agent 6b61fb7c4a docs(requirements): tighten helper intent row
Shorten canonical_authoring/005 while preserving its generated-helper naming obligation.

req: canonical_authoring/005
2026-06-25 14:13:01 +02:00
slhx agent bc381eda5e docs(requirements): split generated fact inference rule
Split oversized canonical_authoring/004 into known-template-facts and explicit-diagnostic requirements.

req: canonical_authoring/004

req: canonical_authoring/016
2026-06-25 14:10:46 +02:00
slhx agent 6ee8e46ac9 docs(requirements): split keyed CRUD composition rule
Split oversized canonical_authoring/003 into keyed CRUD and effect-composition/no-selector rows.

req: canonical_authoring/003

req: canonical_authoring/015
2026-06-25 14:09:07 +02:00
slhx agent 8c3a22d720 docs(requirements): split typed partial swap rule
Split oversized canonical_authoring/002 into handler partial-swap flow and primitive-shape requirements.

req: canonical_authoring/002

req: canonical_authoring/014
2026-06-25 14:07:32 +02:00
slhx agent 89dbc3f0f4 docs(requirements): split canonical API scaling rule
Split oversized canonical_authoring/006 into generated-shape, normal authoring surfaces, and escape-hatch boundary requirements.

req: canonical_authoring/006

req: canonical_authoring/012

req: canonical_authoring/013
2026-06-25 14:05:36 +02:00
slhx agent 89878b424a docs(requirements): split canonical app shape rule
Split oversized canonical_authoring/001 into canonical app shape, ordinary-code escape hatches, and CSS ownership rows.

req: canonical_authoring/001

req: canonical_authoring/010

req: canonical_authoring/011
2026-06-25 14:03:39 +02:00
slhx agent f49efc67b6 docs(requirements): split workout release scope
Split oversized examples/006 into command-surface, generated-helper, and mobile-boundary requirements.

req: examples/006

req: examples/010

req: examples/011
2026-06-25 14:01:04 +02:00
slhx agent ac6d957952 docs(requirements): split examples exemplar scope
Split the oversized examples/001 row into canonical v0, html_examples, workout, and north-star exemplar requirements.

req: examples/001

req: examples/007

req: examples/008

req: examples/009
2026-06-25 13:58:01 +02:00
slhx agent ebe3383b8a docs(requirements): split test inspector contract
Split the oversized test/001 row into test backend, inspector assertions, canonical assertion style, and browser selector adapter requirements.

req: test/001

req: test/007

req: test/008

req: test/009
2026-06-25 13:55:45 +02:00
slhx agent 120268acc1 docs(requirements): split htmx equivalent coverage
Split htmx_equivalents/002 into core interaction, navigation/live-update, gallery, and component-shape rows.

req: htmx_equivalents/002

req: htmx_equivalents/004

req: htmx_equivalents/005

req: htmx_equivalents/006
2026-06-25 13:53:15 +02:00
slhx agent edf632a11e docs(requirements): split codegen helper surface
Split the oversized codegen/002 row into helper surface, string-key id, generated-command, and form-target requirements.

req: codegen/002

req: codegen/007

req: codegen/008

req: codegen/009
2026-06-25 13:49:31 +02:00
slhx agent 867c730ce9 docs(requirements): split generated helper escape hatches
Split the oversized dx/006 row into preferred helper, hidden render/lower, and escape-hatch surface requirements.

req: dx/006

req: dx/009

req: dx/010
2026-06-25 13:46:35 +02:00
slhx agent 42e2669a98 docs(requirements): split pitch runtime claim
Split the pitch overview into checked-hypermedia and no-app-JavaScript rows so redgate no longer reports pitch/001 as oversized.

req: pitch/001

req: pitch/005
2026-06-25 13:42:58 +02:00
slhx agent 7331676012 docs(requirements): split generated helper intent rule
Split the long canonical helper requirement into separate intent and forbidden-composition rows so redgate no longer reports that row as oversized.

req: canonical_authoring/005

req: canonical_authoring/009
2026-06-25 13:40:24 +02:00
slhx agent cbb9d68733 test(xtask): add html examples browser smoke
Add a repo-owned xtask command that starts html_examples, drives a CDP browser through click/save/input/search/load paths, and cleans up the server process.

req: test/006

req: examples/001

req: htmx_equivalents/002
2026-06-25 13:32:31 +02:00
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 3b14bb57ca chore(examples): make html-examples port configurable via env
req: examples/001
2026-06-23 15:55:52 +02:00
slhx agent 15231f932e fix(runtime): clear form error displays on form reset
req: runtime/005
2026-06-23 15:55:52 +02:00
slhx agent 3fdcc6e3ff fix(examples): trigger inline validation on input events
req: runtime/005

req: examples/001
2026-06-23 15:30:58 +02:00
slhx agent 329f16aebf fix(build): dispatch slot targets to matching component render/put
req: runtime/005

req: examples/001

req: htmx_equivalents/001
2026-06-23 15:06:08 +02:00
slhx agent cfa4502748 style(html_examples): clean htmx-like shell with no low-level plumbing
- Move CSS out of app_shell.heml into app.css served by the app.
- Remove direct hemx::advanced::Effect import from example code; rely on IntoEffect.
- Update README to not mention raw Effect:: APIs.
- Keep generated resources and tiny runtime behavior only.

req: examples/001
req: htmx_equivalents/001
req: htmx_equivalents/002
2026-06-23 11:25:59 +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 0922a46e21 docs(examples): classify full htmx pattern catalog
Extend the html_examples gallery README to cover every htmx UI example slug exactly, marking each as implemented, deferred, integration-owned, or refused. Add a test that guards the full slug matrix while keeping the implemented gallery focused on the first CRUD/form/search/load slice.

req: htmx_equivalents/001

req: htmx_equivalents/002

req: examples/001
2026-06-23 07:24:28 +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 f1d84e4837 refactor(v0): render todos through heml template
Remove the hand-written push_str renderer for the v0 todos view so the canonical beginner example uses its .heml template for the whole page path, including form validation targets, notices, and keyed rows.

req: examples/001

req: canonical_authoring/003
2026-06-22 22:39:47 +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 1aa92d8d9d feat(examples): expose v0 todo field error targets
Add generated field-error targets to the v0 add and rename forms so the canonical todo example shows recoverable typed form feedback end to end instead of emitting errors with no visible target.

req: examples/001

req: canonical_authoring/003
2026-06-22 22:17:21 +02:00
slhx agent 430603ec00 feat(examples): make v0 todo rename form editable
Turn the v0 todo row rename action into an editable generated form instead of a fixed submit value, and preserve validation/recovery behavior for blank titles. This keeps the beginner exemplar on generated form handles and user-visible recovery instead of hidden demo shortcuts.

req: examples/001

req: canonical_authoring/003
2026-06-22 22:12:27 +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 e7ff4541a7 refactor(v0): name generated interaction handlers
Expose and use InteractionHandlers in the beginner example so the normal path reads as app handlers instead of registry plumbing while preserving the integration registry API.

req: ceremony/005
2026-06-12 17:40:41 +02:00
slhx agent 0f1673834b fix(xtask): polish generated app next steps
Give app new users app-local next steps and generated README/CREATED docs, rename visible v0 text, and fail early when the required hemplate checkout is missing instead of producing a broken path dependency.

req: ceremony/005
2026-06-12 17:26:23 +02:00
slhx agent c71aa63cec fix(xtask): make mobile starter docs app-owned
Overwrite the generated mobile starter README and CREATED receipt so app new --mobile users see hemx-app commands and app-owned next steps instead of repository Workout commands or example internals.

req: ceremony/006
2026-06-12 16:18:59 +02:00
slhx agent 79b4d1e167 fix(xtask): give mobile starters app-owned commands
Make app new --mobile write hemx-app with HEMX_APP_* release settings, app-scoped release output, and docs that name Workout only as the concrete starter flow instead of leaking Workout command identity.

req: ceremony/006
2026-06-12 16:15:09 +02:00
slhx agent 3f824a83f8 fix(workout): make reduced motion explicit
Add an explicit prefers-reduced-motion contract to the phone-first Workout starter and assert the served CSS carries the no-motion policy.

req: examples/001
2026-06-12 15:51:39 +02:00
slhx agent be3ba4877a docs: bound hemx mobile fit
Name when the mobile starter is the right suckless path and when to use an explicit native shell or island instead of pretending hemx is a general native UI framework.

req: ceremony/006

req: host/002
2026-06-12 15:37:54 +02:00