open-standards/wai/.gitattributes
Transaction Science 6ca202b8a8
All checks were successful
WAI breaking changes and the conformance runner / WAI breaking · does this change touch WAI (push) Successful in 13s
joule-moq-remote host agent / joule-moq-remote · does this change touch it (push) Successful in 29s
joule-moq-web browser client / joule-moq-web · does this change touch it (push) Successful in 21s
wai-audit collector and player integration / does this change touch it (push) Successful in 13s
wai-fleet service / does this change touch it (push) Successful in 26s
wai-sink-android native sink library / does this change touch it (push) Successful in 29s
wai-quantum studio and desktop / does this change touch it (push) Successful in 38s
wai key · Windows / does this change touch it (push) Successful in 45s
wai-app and Create / wai-app · does this change touch it (push) Successful in 46s
wai-sink-swift native sink package / does this change touch it (push) Successful in 18s
wai-ledger service / does this change touch it (push) Successful in 46s
wai-quantum for JavaScript / does this change touch it (push) Successful in 46s
joule-moq-room room service / joule-moq-room · does this change touch it (push) Successful in 54s
WAI Studio / does this change touch it (push) Successful in 15s
WAI operation catalogue / does this change touch it (push) Successful in 47s
wai-fleet service / service · macos (push) Successful in 46s
wai-app and Create / wai-app · tests, clippy, the line language's verifier (linux) (push) Successful in 1m8s
wai-audit collector and player integration / collector, player integration and the browser end to end · macos (push) Successful in 1m32s
WAI breaking changes and the conformance runner / WAI breaking · wire, record and API against main · linux (push) Successful in 1m45s
wai-ledger service / service · macos (push) Successful in 1m19s
joule-moq-remote host agent / joule-moq-remote, every target (macos) (push) Successful in 1m46s
wai-audit collector and player integration / collector · linux (push) Successful in 1m45s
WAI Studio / the catalogue's actions, the unit tests and the core · linux (push) Successful in 1m32s
wai-fleet service / service · linux (push) Successful in 2m28s
joule-moq-remote host agent / joule-moq-remote, every target (linux-arm64) (push) Successful in 2m42s
repository checks / lockfiles, advisories, tests in CI, workflow hygiene, spec and section references, public text (push) Successful in 4m36s
wai-sink-android native sink library / the JNI layer and the platform-free half on the host JVM · linux-arm64 (push) Successful in 4m34s
wai-quantum studio and desktop / desktop app · macos (push) Successful in 5m7s
wai-ledger service / service · linux (push) Successful in 5m5s
wai-quantum studio and desktop / desktop app · linux (push) Successful in 6m27s
wai-app and Create / wai-app · Create, browser end-to-end (macos) (push) Successful in 6m2s
joule-moq-room room service / joule-moq-room, every target (push) Successful in 6m47s
WAI operation catalogue / the catalogue and every door · linux (push) Successful in 6m58s
wai-sink-android native sink library / every ABI, the AAR, and the instrumented tests in a headless emulator · macos (push) Successful in 7m59s
wai-quantum for JavaScript / javascript · linux (push) Successful in 7m57s
wai-quantum studio and desktop / studio · browser (push) Successful in 9m10s
WAI breaking changes and the conformance runner / WAI breaking and conform · their tests, and the independent verifiers through wai conform · linux (push) Successful in 9m46s
WAI Studio / Studio in Chromium and Firefox · macos (push) Successful in 11m6s
wai-sink-swift native sink package / libwai slices, desktop tests, simulator tests · macos (push) Successful in 11m48s
joule-moq-web browser client / joule-moq-web · browser end-to-end (macos) (push) Successful in 18m32s
wai-quantum studio and desktop / desktop app · windows (push) Successful in 10m0s
wai key · Windows / wai key and the toolchain's tests · windows (push) Successful in 2m30s
WAI Studio / Studio in WebKit · linux (push) Successful in 40m4s
CI: Windows back in the conformance matrix's cargo-class leg
wai-conformance.yml's cargo-class matrix has its windows leg again (cbio-windows, a host
runner, out since 2026-09-30). The leg was run by hand on cbio-device-0000 first, three
times. Each run wrapped every step as act_runner wraps a pwsh step (the wrapper read from
a script the runner wrote there) and ran it on a real checkout under the host's
core.autocrlf=true. The last run was from a fresh checkout of this commit. What it found:

- pwsh fails a step on its last command's status alone. An early cargo failure in a
  two-command step passed it (exit 0). So the bare steps of two commands chain them with
  `&&`, which sh, bash and pwsh 7 all read, and the pwsh steps of more than one command
  set $PSNativeCommandUseErrorActionPreference. The two bash steps that would have run on
  Windows (under WSL there) are bare steps now.
- `python3` on that host is the WindowsApps alias, which runs no Python. The leg puts a
  venv of the host's Python first on the PATH, with its launcher copied to python3.exe.
  Rust's Command starts only an .exe, and wai mcp's conformance_run spawns python3.
- The checkout turned the corpora's LF into CR LF, and the fields corpus's re-derived
  vectors.json then differed from the committed one. wai/.gitattributes now keeps every
  *-conformance/ tree unconverted, as it already kept four, and the browser demo's
  int_synth copies, which tests/int_synth_ops.rs holds to the corpus byte for byte.
- Two tests assumed a Unix checkout or tool. catalogue's verb-list test now reads its
  texts as lines, and cli_app copies a project with std::fs, not `cp -R`. Both still
  pass on Linux (the Framework).
- wai_pq_vectors overflows Windows' 1 MiB main-thread stack in its debug build
  (STATUS_STACK_OVERFLOW). It passes linked with 8 MiB, as Linux's default gives, so the
  corpora step links with that on the Windows target alone. The workflow states that this
  is a stand-in for a fix of the tool.

The byte-exact job's stale comment now points at wai-byte-equality.yml, which holds the
Windows byte-equality leg.

Planted faults, each caught by hand on cbio-device-0000, using the job's own step scripts
under the runner's wrapper with the first command made to fail: Install Rust (Windows),
the floor, the wai http, and the agents steps. The floor step without `&&`, as it was
before this change, passed with the same fault.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-11-09 22:46:07 -05:00

54 lines
3.3 KiB
Text

# REGISTRY.md carries a table `wai registry export` generates, which a library test
# compares byte for byte (as registry/ and vocab/v2.* are): no line-ending conversion.
REGISTRY.md -text
# The prior-carriage corpus (extensions/prior-carriage.md §15 on): coded bodies and set
# files pinned by SHA-256 and regenerated byte for byte, so never converted.
live-conformance/prior-carriage/** -text
# The native sink's corpus (extensions/native-sink.md §10): wai.lock pins it by the digest of its
# files, so never converted. The rule is here, not in the corpus's directory, which its test and
# its second implementation require to hold README.md and vectors.json alone.
live-conformance/native-sink/** -text
# The conformance-results corpus (extensions/conformance-results.md §7): wai.lock pins it by the
# digest of its vectors.json, so never converted. The rule is here, not in the corpus's directory, which
# wai_conform_result_vectors verify requires to hold README.md, vectors.json and
# conform_result_verify.py alone.
conform-result-conformance/** -text
# Every template of `wai create` carries this file, and wai.lock pins a template by its files' bytes.
/LICENSE -text
# `wai ops export --check` compares the catalogue byte for byte, and wai.lock pins its digest.
/catalogue/ops.json -text
# The binary payloads of the integer codecs (extensions/integer-payloads.md) beside
# their JSON sources: pinned by SHA-256, so never converted.
*.wiv1 -text
*.wih1 -text
*.wia1 -text
*.wis1 -text
# The live-ads corpus's supply files (extensions/live-ads.md §8.7, §11): sellers files and
# authorised-sellers files a verifier finds by their SHA-256, some with CR or CR LF line ends
# and one not UTF-8, on purpose: never converted.
live-conformance/ads/supply.* -text
# The splat corpus (extensions/splat-exact.md §11): glTF assets, their buffers and their
# commitments, regenerated and compared byte for byte, so never converted.
live-conformance/splat/** -text
# The catalogue's export: `wai --version` states its SHA-256 and `wai ops export --check` compares
# it byte for byte, so never converted, on a Windows checkout under core.autocrlf as anywhere.
catalogue/ops.json -text
# The examples and the licence `wai create` embeds and writes: a project's bytes do not depend on
# the system that built `wai`, so never converted.
examples/** -text
/LICENSE -text
# The MCP door's export: a test of the binary holds it to the tools table byte for byte, and
# `wai breaking` reads it, so never converted.
/catalogue/mcp.json -text
# The quickstart's README: `wai doctor` embeds it and reads its `## Ports` table, which a
# checkout under core.autocrlf would hide behind CR LF ("this build holds no port table to
# read"), so never converted.
/quickstart/README.md -text
# Every conformance corpus: its vectors, goldens and records are compared byte for byte or pinned
# by digest, and some are regenerated and compared whole (a corpus's `verify` re-derives its
# vectors.json), so a checkout under core.autocrlf, as the Windows runner's is, keeps the bytes
# committed. Never converted.
*-conformance/** -text
# The browser demo's int_synth files: byte copies of neural-conformance's sets, payloads and
# digests, which tests/int_synth_ops.rs holds to the corpus byte for byte. Never converted.
wai-web/demo/int_synth/** -text