Repository navigation
runner v0.22.0
·
33 commits
to main
since this release
Immutable
release. Only release title and notes can be modified.
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
endpointScopeentry 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,%23or%00is a dot segment, isinput-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,%23or%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-spec4bec33astates 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.