Commit Graph

11 Commits

Author SHA1 Message Date
slhx agent d4e865ef92 feat(api): streamline generated app authoring
Move the canonical examples toward generated component-root helpers, typed form decoding, async/state handler registration, and derive-driven app/component registry wiring. Tighten requirements and diagnostics for the server-first, selectorless authoring path.

Verified with cargo run -p slhx-xtask -- test, cargo check --workspace, redgate list, redgate refs, redgate health --strict, and git diff --check.

req: canonical/001

req: canonical/003

req: canonical/004

req: dx/002

req: derive_app/001

req: component/003

req: form/004

req: axum_integration/003
2026-06-05 06:33:41 +02:00
slhx agent ee25441be7 test(axum): exercise interaction helper path
Move public axum response tests off direct HandlerRegistry construction so the checked test surface follows interactions()/on() just like canonical examples.

req: axum_integration/003

req: ceremony/001

req: dx/003
2026-06-02 00:33:23 +02:00
slhx agent 1e53a6f7df feat(axum): parse typed interaction values
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
2026-06-02 00:31:32 +02:00
slhx agent df4b4cc649 feat(axum): add interaction registry alias
Add an interactions()/on() registration path and move canonical examples off explicit register_handle naming while keeping low-level registry types available underneath.

req: axum_integration/003

req: ceremony/001

req: dx/003

req: examples/003
2026-06-02 00:24:32 +02:00
slhx agent 42ede63361 feat(axum): add concise interaction request dispatch
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
2026-06-02 00:19:38 +02:00
slhx agent 4e47b470a7 feat(axum): add safe html page composition
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
2026-06-01 23:45:52 +02:00
slhx agent b2aa1760c5 feat(axum): build forms from checked handles
Add InteractionForm::for_handle so tests and public integration code can construct dispatched forms from generated Handle<T> values instead of raw numeric handle ids.

req: ceremony/004

req: public_api/001
2026-05-26 00:42:39 +02:00
slhx agent bc8534a768 feat(axum): register checked handles
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
2026-05-26 00:26:42 +02:00
slhx agent 227a408985 test(axum): use dom-aware html assertions
Harden axum response and root fingerprint tests with scraper-based HTML parsing instead of raw rendered-string equality.

req: test/005
2026-05-25 23:19:13 +02:00
slhx agent f6bfde3675 test(axum): preserve csrf fields
Cover the integration boundary for CSRF-style hidden fields: InteractionForm keeps arbitrary form fields available to app/auth extractors instead of dropping them during dispatch parsing.

req: auth/004
2026-05-25 22:45:37 +02:00
slhx agent c4e02db5f8 chore(checkpoint): save current v0 build state 2026-05-10 20:51:22 +02:00