Repository navigation
Releases: a11ign/screenreader-fleet
Releases · a11ign/screenreader-fleet
Release list
v0.13.3
Patch Changes
- abe8af3:
bootstrap-windows-worker.ps1holds no Edge or Node version of its own: it readsedge.version,edge.msiUrl,edge.msiSha256,node.versionandnode.sha256.{x64,arm64}from control's pins manifest,deploy-pins.json, atC:\a11y\deploy-pins.json(orA11Y_PINS_FILE), with oneA11Y_*override per value, and stops naming what to give it when it has neither (it never guesses a version).serve-bootstrap.shtakes the manifest's path as its second argument (before the optional port), refuses a file that is not the fleet's manifest, and serves it as a symlink so an upgrade's edit reaches the next box without a restart;autounattend.xmlfetches it with the other files;a11y-bootstrap.servicepasses it. A caller that startedserve-bootstrap.sh <key> <port>must now pass the manifest between them (the script says so and exits 2), ana11y-bootstrap.serviceinstalled before this must be replaced, and install media made before this must be refreshed. Theirm | iexone-liner needs the manifest (or theA11Y_*values) in place first: with neither it stops at the start, before anything is installed, and says what is missing. Every pin but the Node hash is read before anything is installed, and an x64 box asks for no arm64 hash. This ends the second place the fleet's Edge and Node were written (A11-205).
v0.13.2
Patch Changes
- 991911b:
bootstrap-windows-worker.ps1pins Edge156.0.4314.42(version, MSI URL and SHA-256 together), the newest Stable x64 build in Microsoft's enterprise catalogue (published 2026-10-22), so a box built from the bootstrap matches the build the fleet converges to under A11-183. It pinned155.0.4283.45before, a build twelve of fifteen boxes had already moved off.
v0.13.1
Patch Changes
- 5a440cc:
@a11ign/screenreader-workeris pinned at 0.13.2, which publisheslauncher/run-server.cmdandlauncher/apply-foreground-lock-timeout.ps1. Releases 0.9.0 to 0.12.0 publishdistonly, andstamp-provision-revision.ps1throws when either hashed path is absent, so a consumer taking the fleet's own pin failed at provisioning before it wrote its stamp.src/provision-stamp.test.tsnow asserts both files exist in the installed worker package.
v0.13.0
Minor Changes
- 74c6dec:
engines.nodeis>=22.15.0, the floor of@a11ign/toolchain0.9.0, which the fleet ships as a runtimedependenciesentry (it moved there at 0.5.0).enginessaid>=20while a production dependency needed>=22.15.0, so a Node 20 consumer could install a dependency whose declared engine it does not satisfy.ci.ymlruns Node 22, so>=22.15.0is the floor the repository tests; Node 20 is out of maintenance.src/engines-floor.test.tspins that no runtime dependency's floor is aboveengines.node.
v0.12.0
Minor Changes
- 069411a: The package exports
./doctor, socontrolcan importfleetAgreementLineandmissingExportTargetsby subpath instead of copying them. The subpath is built todist/doctor.mjsanddist/doctor.d.tsbeside the existing entries, and it is additive: thea11ign-doctorbin still runs the same file. Importing it runs nothing: the entry guard inspects argv only whendoctoris the command.
v0.11.0
Minor Changes
- 7a0f8ff:
src/provisioning/apply-foreground-lock-timeout.ps1is removed from the package: the script belongs to@a11ign/screenreader-worker, which publishes it aslauncher/apply-foreground-lock-timeout.ps1(ADR 0045 cut 5, a11ign/a11ign#5148).provision-nvda-worker.ps1now runs it from<RepoPath>\node_modules\@a11ign\screenreader-worker\launcher\rather than as a sibling, andstamp-provision-revision.ps1hashes that same file, so the bytes that run are the bytes the stamp describes. A consumer that read the script fromnode_modules/@a11ign/screenreader-fleet/src/provisioning/must read it from the worker package'slauncher/instead, which is why this is a minor and not a patch. Two hashed files change (the worker's copy differs from the removed one in one comment line, andprovision-nvda-worker.ps1is edited), soprovisionRevisionmoves once and a box provisioned from this release readsfleet-consistencyINCONSISTENT against one provisioned before it until the fleet is re-provisioned.
v0.10.2
Patch Changes
- 3377748:
stamp-provision-revision.ps1no longer readspackages/control/layers.jsonto find its files. The fleet's two scripts are read from the installednode_modules/@a11ign/screenreader-fleet/, and the worker's publishedrun-server.cmdfromnode_modules/@a11ign/screenreader-worker/launcher/. The two Ansible files stay underpackages/control, where the core lays its pinned control layer. The two fleet scripts are byte-identical (after CRLF normalisation) to this package's own copies, so their hashes are unchanged. The launcher is not: the publishedrun-server.cmdis what runs on the box and differs from the worker repository's source file, soprovisionRevisionmoves once, for every box provisioned after this lands.
v0.10.1
Patch Changes
- b877378:
WAKE_HINT, printed when a probe times out, names control's checkout andpnpm run fleet:wake -- <name>. It said to wake the box "from a checkout of the a11ign repo" withnpm run fleet:wake, a script the core stopped carrying when its fleet scripts moved toa11ign/control(ADR 0045), so the hint sent the reader to "Missing script".
v0.10.0
Minor Changes
- 7276192: The package exports four more subpaths that
controlimports by relative path today:./git-safe-env,./protocol-guard,./npm-cli-executableand./code-drift(ADR 0045 rule 2, the producer half of thecontrolcut 7b). Each is built todistbeside the twelve existing subpaths and declares itstypesanddefault. None of the four imports a package:git-safe-envandnpm-cli-executableimportnode:built-ins only,protocol-guardandcode-driftimport their siblingsworker-httpandgit-safe-envon top, so each runs from an unpacked tarball with nothing installed.
v0.9.0
Minor Changes
- 7f3f976: The package publishes
guest-runandnormalise-fleetasbincommands,a11ign-guest-runanda11ign-normalise-fleet, so a consumer runs them from the installed package and never from this repository's source (a11ign/a11ign#5081, ADR 0045).filesgainssrc/guest, the.cmdthe normaliser sends to each guest; the builtnormalise-fleetfinds it as../src/guest/and runs the builtguest-run.mjsbeside it, where it ran a.tsthat does not ship. Both commands' entry guards now compare the REAL path ofargv[1], so a bin reached through npm's.binsymlink runs instead of loading and exiting 0.normalise-fleetalso exportsguestPaths(), which the pack test reads fromsrcand fromdist.