Prep CI for enablement: green gate, fleet labels, unified MSRV #45

Merged
dcharlot merged 3 commits from ci-enable into main 2026-07-23 10:18:14 -04:00
35 changed files with 69 additions and 53 deletions

View file

@ -17,7 +17,7 @@ on:
jobs:
validate-json:
name: Validate conformance JSON files
runs-on: ubuntu-latest
runs-on: linux
steps:
- name: Checkout
uses: actions/checkout@v4
@ -86,7 +86,7 @@ jobs:
spec-vector-coupling:
name: Spec changes require vector-pack updates
runs-on: ubuntu-latest
runs-on: linux
if: github.event_name == 'pull_request'
steps:
- name: Checkout (with full history for diff)
@ -132,7 +132,7 @@ jobs:
versions-present:
name: VERSIONS.md and README.md must exist
runs-on: ubuntu-latest
runs-on: linux
steps:
- name: Checkout
uses: actions/checkout@v4

View file

@ -20,7 +20,7 @@ on:
jobs:
conformance:
name: Build + round-trip C1-C4 vectors
runs-on: ubuntu-latest
runs-on: linux
steps:
- name: Checkout
uses: actions/checkout@v4

View file

@ -28,7 +28,7 @@ on:
jobs:
scan:
name: Public-surface audit (jouleclaw-rs)
runs-on: ubuntu-latest
runs-on: linux
steps:
- name: Checkout
uses: actions/checkout@v4

View file

@ -24,7 +24,7 @@ on:
jobs:
scan:
name: Scan committed Markdown for vanity metrics
runs-on: ubuntu-latest
runs-on: linux
steps:
- name: Checkout
uses: actions/checkout@v4

View file

@ -35,12 +35,16 @@ jobs:
strategy:
fail-fast: false
matrix:
# Self-hosted fleet labels, not GitHub-hosted images. macos-x86_64 is
# dropped: no Intel-Mac runner exists in the fleet, and by the same
# argument the cargo-classes matrix already makes, it adds no arch
# coverage — x86_64 is held by linux-x86_64 and windows-x86_64, arm64
# by linux-aarch64 and the macos-arm64 reference.
include:
- { os: ubuntu-latest, label: linux-x86_64 }
- { os: ubuntu-24.04-arm, label: linux-aarch64 }
- { os: macos-latest, label: macos-arm64 (reference) }
- { os: macos-13, label: macos-x86_64 }
- { os: windows-latest, label: windows-x86_64 }
- { os: linux, label: linux-x86_64 }
- { os: linux-arm64, label: linux-aarch64 }
- { os: macos, label: macos-arm64 (reference) }
- { os: windows, label: windows-x86_64 }
steps:
- name: Checkout
uses: actions/checkout@v4

View file

@ -37,14 +37,20 @@ jobs:
strategy:
fail-fast: false
matrix:
# Both architectures across all three OS families. x86_64 is covered
# by ubuntu-latest + windows-latest, arm64 by ubuntu-24.04-arm +
# macos-latest — what matters for the Fx integer floor is the arch,
# not the OS. The deprecated Intel-Mac runner (macos-13) is omitted:
# it adds no arch coverage and its hosted runners are scarce.
os: [ubuntu-latest, ubuntu-24.04-arm, macos-latest, windows-latest]
# Self-hosted fleet labels. Both architectures across all three OS
# families: x86_64 by linux + windows, arm64 by linux-arm64 + macos —
# what matters for the Fx integer floor is the arch, not the OS. No
# Intel-Mac runner exists in the fleet, and it would add no arch
# coverage anyway.
os: [linux, linux-arm64, macos, windows]
steps:
- uses: actions/checkout@v5
# The self-hosted macOS runner is a `host` executor started from launchd,
# whose PATH does not include ~/.cargo/bin — rustup is installed but not
# findable. Harmless everywhere else (a non-existent dir on PATH is a
# no-op), so it is applied unconditionally rather than branched on OS.
- name: Put cargo on PATH
run: echo "$HOME/.cargo/bin" >> "$GITHUB_PATH"
- name: Rust 1.97.1
run: rustup toolchain install 1.97.1 --profile minimal && rustup default 1.97.1
- name: Build the cargo classes (pure Rust, no C codec chain)
@ -81,14 +87,20 @@ jobs:
strategy:
fail-fast: false
matrix:
# Both architectures across all three OS families. x86_64 is covered
# by ubuntu-latest + windows-latest, arm64 by ubuntu-24.04-arm +
# macos-latest — what matters for the Fx integer floor is the arch,
# not the OS. The deprecated Intel-Mac runner (macos-13) is omitted:
# it adds no arch coverage and its hosted runners are scarce.
os: [ubuntu-latest, ubuntu-24.04-arm, macos-latest, windows-latest]
# Self-hosted fleet labels. Both architectures across all three OS
# families: x86_64 by linux + windows, arm64 by linux-arm64 + macos —
# what matters for the Fx integer floor is the arch, not the OS. No
# Intel-Mac runner exists in the fleet, and it would add no arch
# coverage anyway.
os: [linux, linux-arm64, macos, windows]
steps:
- uses: actions/checkout@v5
# The self-hosted macOS runner is a `host` executor started from launchd,
# whose PATH does not include ~/.cargo/bin — rustup is installed but not
# findable. Harmless everywhere else (a non-existent dir on PATH is a
# no-op), so it is applied unconditionally rather than branched on OS.
- name: Put cargo on PATH
run: echo "$HOME/.cargo/bin" >> "$GITHUB_PATH"
- name: Rust 1.97.1
run: rustup toolchain install 1.97.1 --profile minimal && rustup default 1.97.1
- name: Integer rANS + int_synth + JPEG-AI mANS goldens (one machine → every machine)

View file

@ -29,7 +29,7 @@ on:
jobs:
neural-e2e:
name: synthetic fixtures → Rust decode → reference (±4)
runs-on: ubuntu-latest
runs-on: linux
steps:
- uses: actions/checkout@v5
- uses: actions/setup-python@v5

View file

@ -12,7 +12,7 @@ version = "0.1.0"
edition = "2024"
license = "Apache-2.0"
repository = "https://github.com/transaction-science/open-standards"
rust-version = "1.96"
rust-version = "1.97"
authors = ["Transaction Science <[email protected]>"]
[workspace.dependencies]

View file

@ -10,7 +10,7 @@ members = [
[workspace.package]
version = "0.1.0"
edition = "2024"
rust-version = "1.96"
rust-version = "1.97"
license = "Apache-2.0"
repository = "https://github.com/Transaction-Science/open-standards"
authors = ["ARL Contributors"]

View file

@ -10,7 +10,7 @@ members = [
[workspace.package]
version = "0.1.0"
edition = "2024"
rust-version = "1.96"
rust-version = "1.97"
license = "Apache-2.0"
repository = "https://github.com/Transaction-Science/open-standards"
authors = ["EOC Benchmark Contributors"]

View file

@ -33,7 +33,7 @@ members = [
[workspace.package]
version = "0.1.0"
edition = "2024"
rust-version = "1.96"
rust-version = "1.97"
license = "Apache-2.0"
repository = "https://github.com/Transaction-Science/open-standards"
authors = ["EOC Contributors"]

View file

@ -29,7 +29,7 @@ version = "0.1.0"
edition = "2021"
license = "Apache-2.0"
repository = "https://github.com/transaction-science/open-standards"
rust-version = "1.85"
rust-version = "1.97"
[workspace.dependencies]
jcp-schema = { path = "crates/jcp-schema" }

View file

@ -170,7 +170,7 @@ verifier-supplied parameter — is now **shipped** as `sandbox-tee::chain`
(`derive_grounding` + `verify_attested_energy_rooted`): grounding is proven from
evidence or it is software, and with a physical counter the ladder now *reaches*
`PhysicallyRooted` (tested against a synthetic root). AMD's ARK→ASK→VCEK is one
instance of exactly this chain, and the AMD-specific X.509 adapter is now also
instance of exactly this chain, and the AMD-specific X.509 adapter is now also <!-- allow-vanity: X.509 is the ITU-T certificate standard's name, not a count of adapters -->
**shipped** as `sandbox-tee::amd_kds` (the off-by-default `amd-kds` feature):
`verify_kds_chain` parses the real ARK/ASK/VCEK X.509 certs, verifies the
RSA-4096 **RSASSA-PSS/SHA-384** signatures ASK←ARK and VCEK←ASK against a
@ -196,7 +196,7 @@ confidential compute (custom hardware).
- End-to-end composition — **shipped** as `sandbox-tee/examples/attested_efficiency.rs`.
- Evidence-derived grounding — **shipped** in `sandbox-tee::chain` (grounding from a
signature chain to a trusted root, not asserted; `PhysicallyRooted` reachable + tested).
- AMD KDS X.509 adapter — **shipped** in `sandbox-tee::amd_kds` (`amd-kds` feature):
- AMD KDS X.509 adapter — **shipped** in `sandbox-tee::amd_kds` (`amd-kds` feature): <!-- allow-vanity: X.509 is the ITU-T certificate standard's name, not a count of adapters -->
real ARK/ASK/VCEK parsing + RSA-4096 PSS-SHA384 chain verification to a pinned ARK.
- Remaining (**not code**): pinning AMD's published ARK (a deploy artifact) and a
signing physical shunt co-located with confidential compute (hardware).

View file

@ -7,7 +7,7 @@
name = "l3-jouleclaw-binding"
version = "0.1.0"
edition = "2021"
rust-version = "1.96"
rust-version = "1.97"
license = "Apache-2.0"
description = "Example binding: JouleClaw's L3 model tier (jouleclaw-llm LlmBackend) as a Joule Code cascade FnStage. Verified model-free via EchoBackend; a real backend (vLLM, or jouleclaw-runtime GGUF) drops into the same slot."
publish = false

View file

@ -8,7 +8,7 @@
name = "transport-moqt-binding"
version = "0.1.0"
edition = "2021"
rust-version = "1.96"
rust-version = "1.97"
license = "Apache-2.0"
publish = false

View file

@ -25,7 +25,7 @@ version = "0.2.0"
edition = "2021"
license = "Apache-2.0"
repository = "https://github.com/transaction-science/open-standards"
rust-version = "1.85"
rust-version = "1.97"
[workspace.dependencies]
joule-code-schema = { path = "crates/joule-code-schema" }

View file

@ -3,7 +3,7 @@ name = "joule-moq"
version = "0.1.0"
description = "MoQT (Media over QUIC Transport) wire protocol + JWP receipt extension for CommunicationOS broadcast media. Trait surface lets the Realtime stack publish, subscribe, and relay tracks with object-level signed provenance and joule receipts."
edition = "2024"
rust-version = "1.85"
rust-version = "1.97"
license = "Apache-2.0"
repository = "https://github.com/transaction-science/open-standards"

View file

@ -3,7 +3,7 @@ name = "jwp"
version = "0.1.0"
description = "Joule Wire Protocol (JWP) — energy-aware binary framing protocol"
edition = "2024"
rust-version = "1.85"
rust-version = "1.97"
license = "Apache-2.0"
repository = "https://github.com/transaction-science/open-standards"

View file

@ -13,7 +13,7 @@ members = [
[workspace.package]
version = "0.1.0"
edition = "2024"
rust-version = "1.96"
rust-version = "1.97"
license = "Apache-2.0"
repository = "https://github.com/Transaction-Science/open-standards"
authors = ["joule-ui Contributors"]

View file

@ -1153,7 +1153,7 @@ members = [
[workspace.package]
version = "0.1.0"
edition = "2024"
rust-version = "1.96"
rust-version = "1.97"
license = "Apache-2.0"
repository = "https://github.com/Transaction-Science/open-standards"
authors = ["JouleClaw Contributors"]

View file

@ -15,7 +15,7 @@ version = "0.6.0"
edition = "2021"
license = "Apache-2.0"
repository = "https://github.com/Transaction-Science/open-standards"
rust-version = "1.85"
rust-version = "1.97"
[workspace.dependencies]
joulecontract-schema = { path = "crates/joulecontract-schema" }

View file

@ -28,7 +28,7 @@ the [Transaction Science open standards](../README.md).
workspace `jouledesk-rs/` ships the **teammate loop** (`Teammate` + `Skill` over
`jcp-orchestrate` + `jcp-efficiency`): grant a skill → tag it → authorise outside the
model → seal to a per-receipt-verifiable ledger, with **`efficiency/1` energy
accounting** (`energy_summary` → joules per completed unit, charging waste). 8 tests.
accounting** (`energy_summary` → joules per completed unit, charging waste).
## What Joule Desk adds over a closed teammate

View file

@ -7,7 +7,7 @@ version = "0.1.0"
edition = "2021"
license = "Apache-2.0"
repository = "https://github.com/Transaction-Science/open-standards"
rust-version = "1.96.0"
rust-version = "1.97"
[patch.crates-io]
# Work around the upstream livekit release skew: libwebrtc 0.3.38 omits the

View file

@ -7,4 +7,4 @@ version = "0.1.0"
edition = "2021"
license = "Apache-2.0"
repository = "https://github.com/Transaction-Science/open-standards"
rust-version = "1.96.0"
rust-version = "1.97"

View file

@ -19,7 +19,7 @@ version = "0.1.0"
edition = "2021"
license = "Apache-2.0"
repository = "https://github.com/transaction-science/open-standards"
rust-version = "1.85"
rust-version = "1.97"
[workspace.dependencies]
map-schema = { path = "crates/map-schema" }

View file

@ -17,7 +17,7 @@ version = "0.1.0"
edition = "2021"
license = "Apache-2.0"
repository = "https://github.com/transaction-science/open-standards"
rust-version = "1.85"
rust-version = "1.97"
[workspace.dependencies]
# Mesh crates

View file

@ -53,7 +53,7 @@ members = [
[workspace.package]
version = "0.1.0"
edition = "2024"
rust-version = "1.96"
rust-version = "1.97"
license = "Apache-2.0"
repository = "https://github.com/Transaction-Science/open-standards"
authors = ["OpenPay Contributors"]

View file

@ -14,7 +14,7 @@ version = "0.1.0"
edition = "2021"
license = "Apache-2.0"
repository = "https://github.com/transaction-science/open-standards"
rust-version = "1.85"
rust-version = "1.97"
[workspace.dependencies]
proof-schema = { path = "crates/proof-schema" }

View file

@ -23,7 +23,7 @@ version = "0.1.0"
edition = "2021"
license = "Apache-2.0"
repository = "https://github.com/transaction-science/open-standards"
rust-version = "1.85"
rust-version = "1.97"
[workspace.dependencies]
sandbox-schema = { path = "crates/sandbox-schema" }

View file

@ -15,7 +15,7 @@ version = "0.1.0"
edition = "2024"
license = "Apache-2.0"
repository = "https://github.com/transaction-science/open-standards"
rust-version = "1.96"
rust-version = "1.97"
[workspace.dependencies]
sense-schema = { path = "crates/sense-schema" }

View file

@ -28,7 +28,7 @@ members = [
[workspace.package]
version = "0.1.0"
edition = "2024"
rust-version = "1.96"
rust-version = "1.97"
license = "Apache-2.0"
repository = "https://github.com/Transaction-Science/open-standards"
authors = ["Smart Byte Contributors"]

View file

@ -9,7 +9,7 @@
name = "wai-byte-exact-conformance"
version = "0.1.0"
edition = "2024"
rust-version = "1.96"
rust-version = "1.97"
license = "Apache-2.0"
publish = false

View file

@ -2,7 +2,7 @@
name = "wai-world-relay"
version = "0.1.0"
edition = "2024"
rust-version = "1.96"
rust-version = "1.97"
license = "Apache-2.0"
description = "Reference relay for wai.world.live sessions. Transport is OUT of the interactive-worlds extension's scope — this is one honest carrier: a per-room WebSocket fan-out that retains the signed op log for late joiners and verifies every op's Ed25519 signature before forwarding. It adjudicates nothing: sinks converge because the math does."

View file

@ -2,7 +2,7 @@
name = "wai"
version = "0.3.0"
edition = "2024"
rust-version = "1.96"
rust-version = "1.97"
license = "Apache-2.0"
description = "WAI — Web AI media transport + execution. Capability-as-requirement envelope + neural shared-prior regenerate-at-sink path + always-available zeroth-condition wrappers around SOTA standard codecs (AVIF / JPEG-XL / PNG / Opus / FLAC / AV1 / zstd / LZMA)."

View file

@ -2,7 +2,7 @@
name = "wai-spz-gen"
version = "0.1.0"
edition = "2024"
rust-version = "1.96"
rust-version = "1.97"
license = "Apache-2.0"
description = "Produces a real Niantic-SPZ Gaussian-splat asset, wrapped as a content-addressed wai.splat.spz WAI object. Uses the field's SPZ library as the codec (sink-supplied, per WAI doctrine) and validates the file round-trips through it."