This guide stays narrow and proof-oriented. The published iOS and Android shell claims
below are backed by the checked-in example hosts plus the generated-shell verification
hooks that now pass on the same host-owned artifact classes adopters ship.
Status Legend
supported
verification required
unsupported
Phoenix
Target
Version
Baseline
Proof Status
Proof Hook
Boundaries
Notes
phoenix
~> 1.8
supported
supported
phase-2-proof-lane
-
Phoenix host install and manifest generation are the stable baseline.
Host-owned Android shell boot is baseline-supported, but the current repository truth still requires the Java-enabled BridgeChannel proof lane to pass before Android support can be claimed as fully verified.
Generated Android shell artifacts remain baseline-supported, but repository support truth stays verification-required until the Java-enabled BridgeChannel proof lane passes.
Capability Families
Family
Owner
Posture
Baseline
Proof Status
Package
Proof
Rebuild
Prerequisites
Denial
Fallback
Guide
app_info
bounded_bridge
bounded_bridge
supported
verification required
core
merge-blocking
none
declared route capability; bounded bridge support
undeclared_capability
Phoenix route continues without native app metadata
Fail closed for access decisions when snapshot freshness is stale or unknown until refreshed backend authority is available; pending and awaiting_verification states never grant entitlement.
Fail closed with restore guidance and keep entitlement truth backend-owned until evidence is reconciled.
merge-blocking
native_rebuild_required=true: Native restore choreography or provider SDK code changes require rebuilding and resubmitting the host shell.
Packaging Ledger
crosswake remains the one primary public package. Companions are first-party-scoped typed boundaries, not plugin-market surfaces.
Surface
Class
Why
Release Burden
Public Guide
crosswake primary package
core
Route-policy DSL, manifest contract, compatibility axes, bounded-bridge vocabulary, shell generators, doctor, support matrix, release rules, and proof posture stay in one obvious Phoenix-first package.
Hex package SemVer moves independently, while support truth still follows manifest_schema_version, bridge_protocol_version, and native_runtime_version.
paywall_entry, purchase_intent, restore_intent, entitlement_snapshot, and reconciliation_evidence stay normalized and backend-truthful in core without embedding storefront providers.
Semantics may evolve in core, but provider adapters and native storefront logic remain outside the base package.
package versions alone do not define support truth.
Target
Versioning
Compatibility Contract
Release Rule
core
Independent SemVer for the crosswake Hex package.
package versions alone do not define support truth; manifest_schema_version, bridge_protocol_version, and native_runtime_version stay canonical.
Manifest-major, bridge-major, and runtime-line changes must update support docs and doctor before release.
companion
Independent SemVer per first-party companion.
Each companion declares minimum compatible ranges for core, all three compatibility axes, and exposed capability-family majors.
Companion support cannot expand until the adapter publishes explicit compatibility ranges and fail-closed guidance.
ios_shell
Platform artifact build numbers may differ, but the shell publishes against the shared native runtime line.
Breaking bridge semantics require a bridge_protocol_version major bump plus a compatible shell artifact before support widens.
Changes touching native code, entitlements, permissions, registration, or packaged runtime behavior move the native_runtime_version line and mark rebuild required.
android_shell
Platform artifact build numbers may differ, but the shell publishes against the shared native runtime line.
Breaking bridge semantics require a bridge_protocol_version major bump plus a compatible shell artifact before support widens.
Changes touching native code, entitlements, permissions, registration, or packaged runtime behavior move the native_runtime_version line and mark rebuild required.
Change Classes
Change Class
What Changed
Adopter Action
Compatibility Signal
Required Proof
docs-only
Guides, wording, examples, support notes, or advisory docs changed without changing manifest semantics, compatibility-axis values, capability versions, shell templates, companion code, or proof expectations.
Read the updated guidance and rerun docs integrity only.
No compatibility-axis or capability-version change.
docs integrity only
core-only/no native rebuild
Core Elixir behavior, docs generation, doctor, support rendering, or validation changed inside the already-supported schema, bridge, runtime, and capability versions.
Update the Hex package and rerun core contract + doctor/support proof without rebuilding native shells.
Existing manifest_schema_version, bridge_protocol_version, native_runtime_version, and capability majors stay in line.
core contract + doctor/support proof
compatibility-bump only
Compatibility declarations or package windows narrowed so some older combinations now fail closed, but a fresh binary is not automatically required for already-compatible adopters.
Check the compatibility window, confirm your shipped shell/runtime is still in range, and run fail-closed compatibility fixtures.
manifest_schema_version, bridge_protocol_version, native_runtime_version, or capability required-version declarations changed support windows.
Rebuild the affected shell or companion, publish the updated runtime line, and rerun generated-shell or companion verification lanes.
Every rebuild-required change carries explicit compatibility declarations, especially native_runtime_version, bridge_protocol_version, manifest_schema_version, and capability required-version shifts.
core proof plus generated-shell or companion verification lanes