Skip to content

runner v0.22.0

Choose a tag to compare

@github-actions github-actions released this 18 Oct 12:45
· 33 commits to main since this release
Immutable release. Only release title and notes can be modified.
f7b1a18

Runner v0.22.0: a profile's endpoint scope follows RFC 0018 round 16, refusing escaped slashes and backslashes and dot segments carrying parameters in a scoped page path; a refused stored profile is named when it stops the store from opening; a private offline consistency reader for retained draft workflows lands without any exposed surface.

What an operator must do

  • Nothing for exact or unscoped profiles. Their check is unchanged, and every published vector is byte-identical to v0.21.0's.
  • If you registered or configured a scoped page profile under v0.21.0, check each endpointScope entry first. An entry v0.21.0 admitted that now carries an escaped slash or backslash (%2f, %2F, %5c, %5C), or a segment whose part before its first ;, %3b, %3f, %23 or %00 is a dot segment, is input-malformed, and the Runner refuses to open its store, naming the profile (registered input profile "<id>" is refused: …). Registrations are immutable; how to recover such a store is open as #154. A page whose path carries an escaped slash can still be read under an exact-endpoint profile naming that URL.
  • If you acquire pages for a research source under a scope, hold every requested URL to round 16's form before sending it; a receipt outside it is refused at verification.

Round 16's page path form (#153, closes #152)

  • A scoped page path carries no escaped slash or backslash anywhere, and no segment's part before its first ;, %3b, %3B, %3f, %3F, %23 or %00, whichever comes first, is a dot segment; nothing is decoded. One form serves scope entries on the live and offline paths and check 3 on each receipt, as RFC 0018 §5.1 at judgment-pack-spec 4bec33a states it.
  • The Runner and the specification's Python reader answer all 152 of the specification's endpoint-scope controls, round 15's and round 16's, byte for byte alike; a Runner built from v0.21.0 differs on exactly the 46 new refusals.
  • A configured or registered profile the form refuses now stops the store from opening with the profile's id and its refusal, where the error named nothing.

A private offline reader for retained draft workflows (#144, part of #121)

  • Checks a retained draft RFC 0020 workflow bundle's consistency across the whole current branch against independently supplied workflow, execution and Runtime pins and historical profiles. Private: no API, command or conformance claim. A cross-vendor audit after its merge (recorded on #144) found most of its consistency checks untested and two rules in tension; those are open as #148–#151 and judgment-pack-spec#213.

Also

  • v0.21.0's notes no longer say the Desk checks page URLs before acquiring (#145); the published v0.21.0 release page was corrected the same way.

Verification

CI ran formatting, vet, the race tests and the real-Runtime integration tests on Linux and macOS at each pull request's head and again at the tag, against Runtime 09206e7 (released as v0.34.0).

  • #153: one clean-room round by Claude Opus over a Claude Opus build, recorded on the pull request; the same vendor at the maintainer's direction while the OpenAI reviewer was unavailable, so not a cross-vendor review. It checked 204 probes of its own and 450,000 random cases against the specification's reader with no disagreement; its one MEDIUM, a stored profile stopping the store from opening with no name, was fixed before merge. Mutation checks: the escaped-slash refusal, the delimiter split, splitting at the last delimiter, the backslash case and hex case folding each removed and caught.
  • #144: a same-vendor clean-room round by an OpenAI model at the maintainer's request, and a cross-vendor audit by Claude after the merge, both recorded on the pull request.

See releasing for how a download is verified.