Repository navigation
v0.27.0
Runner v0.27.0 is the cross-repo release of the v0.27.0 milestone. Ordinary runs may now
declare Spec Core 0.3.0 beside 0.2.0-draft, and the declared version chooses the
evaluator (#188). The Runner's durable Gateway contract moves to
Gateway v0.23.0
(#192). A preparation-only selected-profile namespace serves Desk #599 (#191). The
producer of the genuine Core 0.3.0 recording set ships (#174), and its set is published
in the Spec. The Spec's maturity remains draft. This release claims no Extended Runner
support.
What an operator must do
- Run Core
0.3.0packs with a Runtime that evaluates Core0.3.0, such as
Runtimev0.39.0.
A pack that declares0.2.0-draftis evaluated as before; nothing is upgraded. - Expect the new refusals named below if a caller names a selected profile on an
ordinary route, or sendsdescriptorProvenanceon a non-MCP acquisition. - The usual care applies before any upgrade: stop Desk and Runner and back up the Jobs
workspace, including SQLite/WAL, as
State and backups describes. The store schema is
unchanged and there is no migration. Selected profiles are kept under a new key of the
existing metadata table; a store without one opens as before. A store written by
v0.26.0 opens with no migration: its queued runs run under0.2.0-draft, its exports
verify, and re-exporting gives identical bytes.
Core 0.3.0 on ordinary runs (#188)
- Ordinary preview admits packs that declare
specVersion0.3.0beside
0.2.0-draft. The declared version selects the evaluator. The manual profile stays on
0.2.0-draft. invalid_packnow names what the pack declares:This runner evaluates packs that declare specVersion 0.2.0-draft or 0.3.0; this pack declares "<v>", or "none" or
"another version" when the value is empty or longer than 64 characters.- The Runner holds the Runtime's existing
evaluatorSpecVersionmember, inrun.result
and in the audit record, to the release pack's declaredspecVersion. This adds no new
record member. verify-runrefusesevaluator-spec-mismatchwhen either member, where present,
differs from the declared version. The check comes after the signature checks and
before the preparation, and the refusal reports alone (exit 1, stderr). It also
refusesmember-namewhen a run result or audit member equalsevaluatorSpecVersion
except for case. Records made before this release keep their findings.
The selected-profile namespace (#191, #194)
Three preparation-only routes, each behind the exact installed JPack-Conversion-Contract
selector with the roles document-validation, preview, preparation and producer-carrier:
GET /v1/retained-column/1/selected-profilesPOST /v1/retained-column/1/selected-profiles: 201 when new, 200 when identicalPOST /v1/retained-column/1/selected-inputs/next
Without the prefix the same paths answer 422 selected_preparation_unselected.
GET /v1/status reports the capability selected-profile-preparation, contract
selected-profile-preparation/1. Its bound is 16 profiles and 81,920 bytes, separate
from the ordinary bound of 16. Planning persists nothing.
New refusal codes:
selected_profile_unsupported(422),selected_profile_limit(422) and
selected_profile_conflict(409).selected_profile_ordinary: 409 on admission, 422 on selected planning.input_profile_selected: 422 on ordinary bindings, planning, preview, import, release,
job and job upgrade, and on a run's submission whose mapping names a selected profile.
The submission is refused before the job, its release or the mapping comparison is
read; an identical retry is answered first. 409 on ordinary registration of a selected
id.
A selected profile never reaches ordinary evaluation. openapi.json carries the routes
and schemas. The new vector is vectors/selected-profile-preparation.json.
The durable Gateway contract (#192, #194)
The durable Gateway contract moves from Gateway v0.9.1 (5b49e1e) to v0.23.0
(82d4f8a). A receipt's acquisition.descriptorProvenance is accepted as a signed
member on an MCP acquisition, and refused acquisition-invalid on any other. The
Runner's acceptance does not establish the Gateway's own descriptor checks; see
durable sources.
The Core 0.3.0 recording set (#174)
scripts/recording-set.sh OUT and tools/preparation-vectors -core 0.3.0 produce the
genuine Core 0.3.0 recording set. Its manifest gains core, producer, signing,
notFixed, recordings, notRecorded, and recorded on each vector. The set of 46
recordings, made at Runner 275b5ce, is published in the Spec (Spec #281) beside the
unchanged historical set. vectors/preparation here is unchanged.
Verified with
| Companion | Commit | Release |
|---|---|---|
| Tested Runtime | 09206e7 |
main at runtime #291, contained in v0.38.0 |
| Retained-column Runtime | 12793d2 |
v0.39.0 |
| Earlier Runtime | 7a2fcfe |
v0.27.1 |
| Durable Gateway contract | 82d4f8a |
v0.23.0 |
| Old Runner | 1cc6b29 |
test-only |
Desk is not pinned by this release; Desk adopts it in its own lane.
Known and not fixed
- A Core evaluation error on a
0.3.0release under the private workflow host is
recorded asinterrupted, not as an evaluation error. No route reaches that host. - No test pins that the non-MCP
descriptorProvenancerefusal comes before the
signature check; the code isacquisition-invalideither way. - An MCP
descriptorProvenanceis accepted in any form once signed by the trusted
Gateway key; the Gateway's own verifier is stricter. - CI does not run
scripts/recording-set.sh. The published set was checked against this
commit independently.
Review: the pre-release review of v0.26.0..44f0385 is on this pull request (a Claude
Opus review of a Claude Opus build; not a cross-vendor claim). It found 0 HIGH,
0 MEDIUM and 5 LOW.