1.7 KiB
1.7 KiB
hemx plan
This is a small work surface for explicitly delegated hemx follow-up. REQUIREMENTS.md remains the requirement authority; this file only records execution intent.
URL-as-state page navigation primitive
User value: server-first apps can build browse/search/filter pages whose URL is the durable state, so reload, bookmarks, sharing, copy/paste, and back/forward work without app-owned client state or search frameworks.
State: Done
Build:
- Document the URL-as-state contract for enhanced GET forms and page swaps: native successful controls serialize into the URL; committed submits push history; high-frequency filter typing may replace history; normal reload/no-JS behavior remains native. req: page_swap/009
- Convert or add one html_examples browse/search example that uses a plain GET form plus generated page/target helpers to prove query-string state round-trips through server-rendered page state. req: page_swap/009 req: htmx_equivalents/005
- Add focused runtime/browser smoke that changes a GET query, verifies the URL, reloads or uses back/forward, and observes the same rendered state without hidden client state. req: page_swap/005 req: page_swap/009
- Keep the primitive subtractive: refuse an omnisearch framework, router, selector include model, client state graph, or domain search API in hemx core; use generated forms, page swap, and
Navigateonly. req: page_swap/003 req: page_swap/009 req: page_swap/010 req: htmx_equivalents/003
Blocked by: none.
Proof: cargo run -p hemx-xtask -- html-examples-smoke, focused runtime/page-swap tests, redgate lint, and redgate health --strict pass with an example showing URL state survives reload/back/forward.