CI: the decode-path job installs the repository's Rust pin, and byte equality runs on Windows again #643

Merged
dcharlot merged 2 commits from ci/neural-pin-and-windows-byte-equality into main 2026-11-05 11:05:15 -05:00
Owner

Two repairs to CI. Neither changes WAI's text or code.

The jpegai-decode-path job installs the repository's Rust pin

wai-neural-gates.yml's jpegai-decode-path job installed Rust 1.98.0, the last 1.98.0 install in any workflow. The repository pins 1.99.1 in rust-toolchain.toml, so rustup installed 1.99.1 too, and the test compiled on it (run 19418, job 81788). The job already tested on the pin. The extra download was wasted, and the step's name was wrong.

The step now bootstraps rustup with no default toolchain and runs a bare rustup toolchain install, which reads the pin from rust-toolchain.toml, as the wai-quantum member jobs do. It ends with rustup show active-toolchain, so the log names the toolchain cargo used. The tests are unchanged.

Byte equality runs on Windows again

wai-byte-equality.yml's windows-x86_64 leg was taken out while that runner was down. The runner is back: a Windows job succeeded in run 19310, and the desktop app's Windows job passed in runs 19610 and 19807.

  • The leg is back in the matrix.
  • The two disk steps, which run before the leg and after a failure, each get a pwsh twin with the same directories, floor, 32 MiB write-through probe and messages. Free space is what the volume leaves the runner's user. A write fails as infrastructure on the Win32 codes for a full or unwritable disk.
  • The bash steps stay unix-only, and no bash runs on Windows.
  • The leg stays behind the workflow's relevant gate and is not a required status, as the other Windows legs are.

Checked on the Windows runner host before this pull request

At 368a7f4, the commit this branch is based on:

  • Both pwsh disk steps parse with PowerShell's own parser (0 errors).
  • Both pass with the job's floor (4 GiB, exit 0).
  • With an impossible floor, both fail with exit 1, naming each directory and saying the disk is short, not the leg.
  • The leg's own command, cargo test --release -- --nocapture in wai/byte-exact-conformance, passes on Rust 1.99.1: 112 tests, 0 failed.

The YAML parses, every runs-on is a fleet label, wfsteps shows only the intended steps changed, and the workflow-concurrency and tests-in-CI checks pass.

🤖 Generated with Claude Code

Two repairs to CI. Neither changes WAI's text or code. ## The jpegai-decode-path job installs the repository's Rust pin `wai-neural-gates.yml`'s `jpegai-decode-path` job installed Rust 1.98.0, the last 1.98.0 install in any workflow. The repository pins 1.99.1 in `rust-toolchain.toml`, so rustup installed 1.99.1 too, and the test compiled on it (run 19418, job 81788). The job already tested on the pin. The extra download was wasted, and the step's name was wrong. The step now bootstraps rustup with no default toolchain and runs a bare `rustup toolchain install`, which reads the pin from `rust-toolchain.toml`, as the wai-quantum member jobs do. It ends with `rustup show active-toolchain`, so the log names the toolchain cargo used. The tests are unchanged. ## Byte equality runs on Windows again `wai-byte-equality.yml`'s `windows-x86_64` leg was taken out while that runner was down. The runner is back: a Windows job succeeded in run 19310, and the desktop app's Windows job passed in runs 19610 and 19807. - The leg is back in the matrix. - The two disk steps, which run before the leg and after a failure, each get a `pwsh` twin with the same directories, floor, 32 MiB write-through probe and messages. Free space is what the volume leaves the runner's user. A write fails as infrastructure on the Win32 codes for a full or unwritable disk. - The bash steps stay unix-only, and no bash runs on Windows. - The leg stays behind the workflow's `relevant` gate and is not a required status, as the other Windows legs are. ## Checked on the Windows runner host before this pull request At `368a7f4`, the commit this branch is based on: - Both `pwsh` disk steps parse with PowerShell's own parser (0 errors). - Both pass with the job's floor (4 GiB, exit 0). - With an impossible floor, both fail with exit 1, naming each directory and saying the disk is short, not the leg. - The leg's own command, `cargo test --release -- --nocapture` in `wai/byte-exact-conformance`, passes on Rust 1.99.1: 112 tests, 0 failed. The YAML parses, every `runs-on` is a fleet label, `wfsteps` shows only the intended steps changed, and the workflow-concurrency and tests-in-CI checks pass. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
The job's install step named Rust 1.98.0, two releases behind the pin in
rust-toolchain.toml (1.99.1 since #606). It now bootstraps rustup with no
default toolchain and runs `rustup toolchain install` with no name, which
installs the toolchain rust-toolchain.toml names, as the wai-quantum member
jobs do. A later change of the pin needs no edit to this job. The step then
logs the active toolchain.

What the job tests is unchanged. Main's run 19418 (job 81788) shows the old
step installed 1.98.0 and set it as the default, and cargo then auto-installed
1.99.1 from the toolchain file's override and compiled the test with it. The
1.98.0 download was wasted and the step's name was wrong. The new step installs
the same six components up front.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
wai-byte-equality: restore the windows-x86_64 leg, with pwsh forms of the disk steps
All checks were successful
wai cross-architecture byte-equality / does this change touch it (pull_request) Successful in 6s
WAI neural sink gates / does this change touch it (pull_request) Successful in 8s
standards workspaces build + test / which workspaces this change touches (pull_request) Successful in 8s
standards workspaces build + test / macOS energy backends (pull_request) Has been skipped
wai cross-architecture byte-equality / linux-x86_64 (pull_request) Successful in 1m1s
wai cross-architecture byte-equality / windows-x86_64 (pull_request) Successful in 1m5s
WAI neural sink gates / model-free refusals of the neural sink (pull_request) Successful in 1m57s
WAI neural sink gates / the exact JPEG-AI decoder reports its path (pinned inputs, required) (pull_request) Successful in 2m1s
wai cross-architecture byte-equality / macos-arm64 (reference) (pull_request) Successful in 26s
repository checks / lockfiles, advisories, tests in CI, workflow hygiene, spec and section references, public text (pull_request) Successful in 1m26s
wai cross-architecture byte-equality / linux-aarch64 (pull_request) Successful in 27s
5f1158154d
The leg was removed on 2026-09-30 while the Windows runner was offline. The
runner is back: a `windows` job passed in run 19310 (job 81346), and the
Studio's Windows desktop job passed in runs 19610 and 19807.

- The matrix gets `- { os: windows, label: windows-x86_64 }` again, and the
  comment says x86_64 is held by linux-x86_64 and windows-x86_64.
- The two disk steps run in bash, which on this host is the WSL stub. They
  stay unix-only. Each gets a pwsh form for Windows with the same directories,
  floor, write probe and messages:
  - the workspace, the runner's temporary directory, TEMP and the profile
    directory;
  - the free space the volume leaves the runner's user;
  - a 32 MiB write-through probe once per volume;
  - full-disk, write-protect, I/O device and quota errors named as
    infrastructure, by their Win32 codes.
  The after-failure form keys on the new step's id, disk_windows.
- Both pwsh steps set the process execution policy to Bypass, as the Studio's
  Windows job does. The install and decode steps are unchanged. The Windows
  install step was already pwsh, and the bare `cargo test` step takes the
  host's pwsh default. No step bundles anything, so CI is not cleared.

The Windows leg follows the repository's practice for a Windows job. It is
not a required status, like wai-quantum-webgpu.yml's member-windows. Like the
other legs, it runs only when the workflow's `relevant` gate answers true. If
the runner goes offline again, the leg comes out of the matrix until the
runner is back, as on 2026-09-30.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
Transaction-Science/open-standards!643
No description provided.