diff --git a/AGENTS.md b/AGENTS.md index 2cedfb0..23152b4 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -68,4 +68,4 @@ Keep it stable. Prefer pointers to canonical sources over copied structure, file - Opaque island JavaScript is a leaf adapter for high-frequency local behavior only; it must not introduce a component runtime, client state graph, VDOM, or second UI model. req: canonical_authoring/017 - Host capability adapters must stay at the `hemx-host` boundary: they may call host APIs and return host events, but they must not mutate DOM or own app/domain state. req: host/002 - Local/offline app behavior should be commands/events/projections; do not add `hemx-local`, stored DOM patches, stored `EffectBatch` truth, or a core client state graph without a proven reusable contract. req: canonical_authoring/018 req: canonical_authoring/019 req: local/001 req: local/002 -- Axum apps should serve and load the shared runtime through hemx-axum helpers such as `runtime_js_path()` and `runtime_js()`, not hard-coded `/hemx.js` URLs or app-owned cache-busting strings. +- Axum apps should serve and load the shared runtime through hemx-axum helpers such as `runtime_js_path()` and `runtime_js()`, not hard-coded `/hemx.js` URLs or app-owned cache-busting strings; keep hemx-axum as route/runtime/handler adapter around generated partial swaps, not a routing owner. req: axum_integration/001 req: axum_integration/002 req: axum_integration/003 req: axum_integration/005 req: axum_integration/006 diff --git a/REQUIREMENTS.md b/REQUIREMENTS.md index 178ea4f..069dae4 100644 --- a/REQUIREMENTS.md +++ b/REQUIREMENTS.md @@ -570,19 +570,22 @@ what a valid business email is. [north_star] ## axum_integration ### req: axum/001 -001 hemx-axum supports the common full-shell/partial pattern as an adapter around generated partial swaps. Full-page requests are wrapped in a user-provided Shell; hemx partial requests may return a rendered partial for a generated target or an EffectBatch. Page helpers add shell/title/history/fallback behavior without changing the render/target/effect model. +0 001 hemx-axum supports full-shell/partial adapters around generated partial swaps. Full-page requests wrap in a user Shell; partial requests return rendered target partials or EffectBatch output. [north_star] + +### req: axum/006 +0 006 Page helpers add shell/title/history/fallback behavior without changing the render/target/effect model. [north_star] ### req: axum/002 -002 Existing Axum routes remain normal Axum routes. hemx does not own routing. hemx-axum only mounts handler dispatch, runtime assets, and optional push endpoints. +0 002 Existing Axum routes remain normal Axum routes. hemx does not own routing. hemx-axum only mounts handler dispatch, runtime assets, and optional push endpoints. [north_star] ### req: axum/003 -003 Interactive fragments that would traditionally be implemented as `/demo/...` HTMX endpoints should be expressible as Rust handlers returning generated target commands. Integration registration should read as interactions over generated handles and page/partial helpers, not low-level registry wiring. +0 003 Interactive fragments from `/demo/...` HTMX endpoints are Rust handlers returning generated target commands. Registration reads as generated handle/page/partial helpers, not low-level registry wiring. [north_star] ### req: axum/004 -004 Query-string demo endpoints may be migrated to typed handler params from `data-*` attributes or forms. `Query` remains available in normal Axum routes but is not the hemx happy path. +0 004 Query-string demo endpoints may be migrated to typed handler params from `data-*` attributes or forms. `Query` remains available in normal Axum routes but is not the hemx happy path. [north_star] ### req: axum/005 -005 hemx-axum exposes the shared JS runtime through a content-hashed script path and immutable runtime response headers. Applications load the hemx-owned path instead of hand-written cache-busting query strings; changing runtime bytes changes the exposed path automatically. +0 005 hemx-axum exposes the shared JS runtime through a content-hashed script path and immutable response headers. Apps load the hemx-owned path instead of hand-written cache-busting strings; runtime byte changes change the exposed path. [north_star] ---