Expose a capped mutation command that selects only elected packages, rejects unknown input, propagates mutest failures, and keeps output under the workspace target directory. req: test/020 req: test/021 req: test/022
7.2 KiB
v1 readiness audit
This audit records the proven server-first/page-enhanced baseline. It is not a
marketing release announcement and no longer claims the full v1 north star is
closed. The product evidence in docs/v1-product-evidence.md and current
requirements add client-local WASM, durable offline/sync, accessibility,
security, operations, performance, compatibility, and production-reference
closure. Their implementation order lives in PLAN.md. req: examples/001 req: public_api/001 req: v1_release/001
Current status
- Server-first and page-enhanced baseline: proven by the evidence below.
- Client-local WASM: real generated-resource browser/WASM execution proven.
- Durable offline/sync and multiplayer milestone: framework-owned replay, acknowledgement, convergence, presence, recovery, and accessibility proven.
- Production reference: authenticated mutation, origin/CSRF denial, atomic rollback-safe persistence, restart recovery, health/readiness, diagnostics, metrics, CSP, and mixed-build fail-closed recovery proven.
- V1 closure matrix: not closed. The recorded local workspace, browser, performance, docs, and example gates pass, and warning-denied vulnerability and source audits are clean. Strict license closure still awaits a repository license allowlist, and the mutation-testing release gate is only partially classified. These open gates block a feature-complete or production-ready claim. req: test/020 req: test/021 req: v1_release/006
- Publishing and deployment: explicitly unauthorized.
Baseline evidence
Canonical tutorial app
Status: satisfied.
Evidence:
examples/saasis a compile-tested tutorial app with typed domain values,#[hemx::form("new_project")], auth/session-shapedAppContext, CSRF-safe mutation, local persistence adapter, generated keyed row/form/summary/page/live effects, full-page route fallback for settings, enhanced page-panel swap, SSE/polling shape, plain CSS, one explicit metrics island, and tests.docs/tutorial-saas.mdwalks through the app from template to production provider handoff.docs/recipes/sqlx-persistence.mdshows how to replaceLocalProjectStorewith an app-owned SQLx adapter without moving SQLx into core.
Release decision:
- The supported v1 production boundary is the compile-tested local persistence adapter plus provider-explicit recipes. SQLx/auth/observability/deploy/PWA stay app integrations rather than required workspace dependencies, so the tutorial remains runnable in CI without credentials or external services.
Beginner API stability
Status: satisfied for the current v1 goal.
Evidence:
- Normal path is documented around
app,component,handler,form,page, generated helpers, tupleIntoEffect, andResult<impl IntoEffect, E>mapping. docs/versioning.mddefines stable beginner API vs wire/runtime ABI vs advanced escape hatches.examples/v0andexamples/saasexercise the normal path without manual registries or raw ids in app authoring.
Advanced APIs isolated
Status: satisfied.
Evidence:
README.md,docs/versioning.md, anddocs/diagnostics.mdidentify raw effects, ids, render/target construction, manual registries, runtime hooks, SSE internals, and island internals as advanced.- Public examples label
v0as beginner,examples/saasas the tutorial app,kanbanas advanced/north-star, andtechdemoas advanced. - Forbidden-normal-path scans only hit explicit route/static asset serving,
deploy/versioning text, or the
examples/saasmetrics island.
Docs explain the model in one sitting
Status: satisfied.
Evidence:
README.mdexplains render → slot/key → effect → runtime, forms/errors, pages/push, CSS/islands, production boundaries, escape hatches, and deploy/version compatibility.docs/tutorial-saas.mdprovides the product walkthrough.- Recipes cover SQLx, auth/session + CSRF, observability/flags/killswitches, deploy/versioning, and optional PWA/offline.
docs/diagnostics.mdanddocs/versioning.mdcover failure and release policy.
Diagnostics
Status: satisfied for the current v1 goal.
Evidence:
docs/diagnostics.mdnames common mistakes and desired fixes in author language.- Existing gates cover build diagnostics, derive compile-fail diagnostics, runtime root/fingerprint behavior, result-handler mapping, and example contract checks.
- Final diagnostics gates include
cargo test -p hemx-build,cargo test -p hemx-derive --test compile_fail,cargo test -p hemx-js, andcargo test -p hemx-test --test examples_contract.
Production recipes
Status: satisfied.
Evidence:
- SQLx:
docs/recipes/sqlx-persistence.md - auth/session + CSRF:
docs/recipes/auth-session-csrf.md - observability/metrics + feature flags/killswitches:
docs/recipes/observability-flags.md - deploy/versioning:
docs/recipes/deploy-versioning.md - mobile release:
docs/recipes/mobile-release.md - optional PWA/offline:
docs/recipes/pwa-offline.md
Public examples
Status: satisfied.
Evidence:
examples/v0/README.mdis the beginner entry.examples/saas/README.mdidentifies the production-shaped tutorial app.examples/kanban/README.mdidentifies Kanban as advanced/north-star.examples/techdemo/README.mdidentifies Techdemo as advanced.- Contract tests guard against browser JavaScript and low-level resource plumbing in canonical examples.
Runtime remains tiny and selectorless
Status: satisfied.
Evidence:
README.md,docs/versioning.md,docs/recipes/deploy-versioning.md,docs/recipes/observability-flags.md, anddocs/recipes/pwa-offline.mdkeep runtime scope to checked effect application and reject VDOM/hydration/client store/selector-retargeting growth.examples/saas/templates/metrics.jsuses selectors only inside an explicit leaf island, not for normal hemx targeting.cargo test -p hemx-jscovers runtime root/fingerprint behavior.
Versioning explicit
Status: satisfied.
Evidence:
docs/versioning.mddefines semver tiers, wire/runtime ABI policy, advanced escape-hatch policy, upgrade-note template, and release checklist.docs/recipes/deploy-versioning.mddocuments release units, asset caching, rolling deploy behavior, fingerprint mismatch behavior, and rollback checks.
Final closure gates
The following baseline commands remain required. They are insufficient for full
v1 closure until the browser/WASM/offline/multiplayer, accessibility, security,
performance, compatibility, and production-reference proofs in v1_release/*
also pass. Run them only as local validation; none publishes or deploys.
Run these on the final tree before GOAL_DONE:
cargo run -p hemx-xtask -- test
cargo run -p hemx-xtask -- mutation
cargo check --workspace
cargo test -p hemx-saas-example
cargo test -p hemx-v0-examples
cargo test -p hemx-build
cargo test -p hemx-js
cargo test -p hemx-derive --test compile_fail
cargo test -p hemx-test --test examples_contract
redgate list
redgate refs
redgate health
git diff --check
Also run the forbidden-normal-path scan over README.md, docs/, examples/v0,
examples/saas, and the public advanced example READMEs. Expected remaining hits
are explicit route/static asset serving, deploy/versioning docs, or explicit
leaf-island JavaScript.