Crosswake. SupportMatrix
(crosswake v0.1.2)
View Source
Canonical support-matrix truth shared across manifest generation, doctor, and docs.
Summary
Functions
Returns the canonical taxonomy of prerequisite classes that may be referenced by
commerce corridor entries. Every prerequisite_classes value on a commerce corridor
entry must be drawn from this set so doctor/support/guides taxonomy stays parity-locked.
Returns the canonical commerce corridor proof-class mapping.
Returns a runtime snapshot of gate state for every registered companion.
Runtime gate-state label.
Functions
@spec action_classes() :: [Crosswake.Manifest.Types.ActionClassEntry.t()]
@spec audit_ledger_support_truth() :: [map()]
@spec auth_contract_truth() :: [map()]
@spec canonical(keyword()) :: Crosswake.Manifest.Types.SupportMatrix.t()
@spec capability_families(Crosswake.Manifest.Types.SupportMatrix.t()) :: [
Crosswake.Manifest.Types.CapabilitySupportEntry.t()
]
@spec change_classes(Crosswake.Manifest.Types.SupportMatrix.t()) :: [
Crosswake.Manifest.Types.ChangeClassEntry.t()
]
@spec commerce_corridor_denial_codes() :: [String.t()]
@spec commerce_corridor_prerequisite_taxonomy() :: [atom()]
Returns the canonical taxonomy of prerequisite classes that may be referenced by
commerce corridor entries. Every prerequisite_classes value on a commerce corridor
entry must be drawn from this set so doctor/support/guides taxonomy stays parity-locked.
@spec commerce_corridor_proof_classes() :: %{ required(String.t()) => %{ proof_class: :merge_blocking | :advisory, advisory_provider_proof: boolean() } }
Returns the canonical commerce corridor proof-class mapping.
Every commerce corridor declares whether its hermetic Phoenix-owned contract proof is
:merge_blocking (core route/manifest/denial truth that must pass before merge) and
whether it also carries an advisory_provider_proof flag for storefront/simulator
evidence (StoreKit, Play Billing) that stays advisory in v3.2.
@spec commerce_corridors() :: [map()]
@spec companion_support_truth() :: [map()]
@spec diagnostic_export_support_truth() :: [map()]
@spec diagnostic_severities() :: [atom()]
@spec gating_truth() :: [map()]
Returns a runtime snapshot of gate state for every registered companion.
Reads Application.get_env(:crosswake, :companions, []) at call time (NOT
compile_env) so test fixtures can register companions via Application.put_env/3
and production callers see live runtime-registered companions.
Each entry is a map with:
:companion_id— the atom id fromcompanion.companion_id():gate_state— one of"gated","rolling_out (N%)","killed", ornil(nil means the companion's gate is inactive or unconfigured)
Kill-switch status overrides gate_status — if the kill switch is active,
the entry shows "killed" regardless of gate_status.
The :gate_state values are D-08 locked display strings. "rolling_out (N%)" is
never equivalent to "supported" — the gating_truth_label/0 column heading
reinforces this distinction.
@spec gating_truth_label() :: String.t()
Runtime gate-state label.
Returns the column label for the gating-truth section of the support matrix, deliberately runtime-distinct from build-proof posture. This label must never be misread as "supported" — a route in "rolling_out (10%)" state is gated, not supported, and the column label makes that explicit.
D-08: "Runtime Gate State — not build-proof posture."
@spec media_recovery_proof_truth() :: [map()]
@spec notification_support_truth() :: [map()]
@spec package_surfaces(Crosswake.Manifest.Types.SupportMatrix.t()) :: [
Crosswake.Manifest.Types.PackageSurfaceEntry.t()
]
@spec promotion_rules() :: [Crosswake.Manifest.Types.PromotionRuleEntry.t()]
@spec proof_classes() :: [atom()]
@spec rebuild_matrix(Crosswake.Manifest.Types.SupportMatrix.t()) :: [
Crosswake.Manifest.Types.RuntimeLineRow.t()
]
@spec release_boundaries(Crosswake.Manifest.Types.SupportMatrix.t()) :: [
Crosswake.Manifest.Types.ReleaseBoundaryEntry.t()
]
@spec statuses() :: [atom()]
@spec validate(Crosswake.Manifest.Types.SupportMatrix.t()) :: [map()]