Parent: #500 Related: #483, #498, #499
Problem
The generated release matrix records Linux x86-64 and macOS arm64 evidence, then collapses every requested Windows and restricted-Darwin boundary into a single unstructured “No Windows release platform” sentence. It does not machine-readably identify ABI, native/no-JIT/AOT mode, executable-memory policy, sanitizer availability, CI/evidence host, or why each profile remains unsupported. That makes #500 policy drift easy to hide and gives embedders no exact fail-closed contract.
Scope
- Version the matrix schema and retain the accepted V1 artifact as history.
- Add explicit profiles for Windows x86-64, Windows ARM64, iOS, tvOS, visionOS, and macOS with JIT disabled by policy.
- Record architecture, ABI, execution mode, executable policy, sanitizer status, CI/evidence status, support status, and exact blocking dependencies for every profile.
- Bind native claims to the owned executable-memory and optimizer inventories; unsupported or planned profiles must never render as released.
- Generate the Markdown boundary from the same data and validate exact profile membership, uniqueness, and required fields.
No-workaround rules
No cross-build or emulator result labeled real-hardware support, no restricted host attempting MAP_JIT, no invented OS version, no implicit fallback labeled a fast VM/AOT profile, and no deletion or rewriting of the accepted V1 evidence.
Acceptance
- V2 machine-readable profiles cover every #500 requested host and name all required policy fields.
- The generated documentation distinguishes released evidence from planned/unsupported profiles without broadening claims.
- Validation fails on a missing/duplicate profile, unsupported profile marked released, native profile without matching executable-memory/optimizer support, or restricted profile that permits executable mapping.
- Release-compatibility and docs accuracy gates pass; tooling/docs only, 0 Test262 flips.