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
This commit is contained in:
slhx agent
2026-06-25 14:18:27 +02:00
parent aa036922cf
commit 7b647add0a
4 changed files with 10 additions and 4 deletions
+1 -1
View File
@@ -67,5 +67,5 @@ Keep it stable. Prefer pointers to canonical sources over copied structure, file
- JS runtime changes must preserve root-scoped lookup, fail-closed request handling, root-scoped error outlets, and tiny pending/failure/trigger-timing conventions without selectors, VDOM, expressions, or per-node listeners. req: runtime/005 req: convention/001 req: convention/003 req: convention/005 req: convention/007
- 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, or stored `EffectBatch` truth without a proven reusable contract. req: local/001 req: local/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.
+1 -1
View File
@@ -121,7 +121,7 @@ and integrate at explicit boundaries. req: laws/002 req: auth/001
but core hemx must not gain a mandatory client state graph or local app
runtime. Local truth is commands/events/projections, not stored DOM patches or
stored `EffectBatch` payloads. See `docs/recipes/pwa-offline.md` and
`docs/recipes/local-command-log.md`. req: canonical_authoring/008 req: local/001 req: local/002
`docs/recipes/local-command-log.md`. req: canonical_authoring/008 req: canonical_authoring/018 req: canonical_authoring/019 req: local/001 req: local/002
- **Host capabilities:** browser, PWA, WebView, and native-shell capabilities use
`hemx-host` manifests/calls/events. Adapters return host facts to app code;
UI still changes through normal hemx effects. See
+7 -1
View File
@@ -98,7 +98,13 @@ client app state framework.
017 Island JavaScript owns only high-frequency local behavior and must not introduce a component runtime, client state graph, VDOM, or second UI model. [north_star]
### req: canonical/008
008 Offline/PWA support is opt-in adapter territory. Server-first hemx may fail interactions while offline; cached shells and local-sync queues live in crates such as `hemx-pwa` or `hemx-sync`, reuse generated slots/effects, queue explicit patches, and reconcile with server-canonical effects. Core hemx must not gain a mandatory client state graph, scheduler, CRDT, or local app runtime. [north_star]
008 Offline/PWA support is opt-in adapter territory; server-first hemx may fail interactions while offline. [north_star]
### req: canonical/018
018 Cached shells and local-sync queues live in crates such as `hemx-pwa` or `hemx-sync`; they reuse generated slots/effects, queue explicit patches, and reconcile with server-canonical effects. [north_star]
### req: canonical/019
019 Core hemx must not gain a mandatory client state graph, scheduler, CRDT, or local app runtime. [north_star]
---
+1 -1
View File
@@ -5,7 +5,7 @@ without turning core hemx into a client app framework. Offline/PWA support is
opt-in adapter territory: reuse generated targets and server-canonical effects,
but keep service workers, queues, conflict policy, and local storage outside
`hemx`, `hemx-core`, `hemx-build`, `hemx-derive`, `hemx-axum`, and the tiny
runtime. req: canonical_authoring/008 req: runtime/003 req: runtime/004
runtime. req: canonical_authoring/008 req: canonical_authoring/018 req: canonical_authoring/019 req: runtime/003 req: runtime/004
Use this only after the normal server-first path works. A hemx app is allowed to
fail interactions while offline and recover with a full page once the network is