Skip to content

Release 0.9.3 - #218

Merged
ccomb merged 1 commit into
mainfrom
release-0.9.3
Jul 15, 2026
Merged

Release 0.9.3#218
ccomb merged 1 commit into
mainfrom
release-0.9.3

Conversation

@ccomb

@ccomb ccomb commented Jul 15, 2026

Copy link
Copy Markdown
Owner

Cut the 0.9.3 release: date the changelog section, drop the -dev suffix, and advertise wire revision 3.

Since 0.9.2 the engine gained the delete-by-ids selection, a server that starts without --config, and two honesty fixes: the supply-chain and consumers name= filter actually filters, and a scoring integrity error answers 500 instead of a silent 0.

The wire bump carries no break — every change is additive and existing clients keep working (pyvolca 0.8.x prints at most an upgrade hint). It exists as a capability discriminator: a client about to send the delete ids selection must be able to tell it from an older engine, which would ignore the unknown key and treat the request as an empty filter ("everything") — a guess a destructive operation must never make. pyvolca's REQUIRED_WIRE deliberately stays 2 so the current client keeps accepting 0.9.1/0.9.2 engines; only the future ids= parameter will demand revision 3.

Final state after this merges: main carries the released 0.9.3 version and a dated changelog, ready to tag.

ccomb added a commit that referenced this pull request Jul 15, 2026
The engine's delete-by-ids selection shipped in v0.9.3 (#218) with a
wire bump serving as its capability marker: an older engine drops the
unknown `ids` key and reads the request as an empty filter —
"everything" — which a destructive operation must never let happen. The
client therefore checks the engine's advertised `wireVersion` and
refuses to send `ids` to anything below 3, with a clear upgrade message;
nothing is sent at all in that case (spec-pinned).

The compat policy grows a second constant for this: `REQUIRED_WIRE`
stays the floor (2 — wire-2 engines v0.9.1/v0.9.2 keep working for
everything else), and `KNOWN_WIRE` (3) is the newest revision this
client understands, so the "upgrade pyvolca" warning now fires only
above what the client knows instead of on every connection to a 0.9.3
engine.

`keep` and `extra` compose with `ids`; the filter arguments (and
`exact`) are refused client-side, mirroring the engine. README
compatibility line regenerated. 241 tests green.
Cut the 0.9.3 release: date the changelog section, drop the `-dev`
suffix, and advertise wire revision 3.

Since 0.9.2 the engine gained the delete-by-ids selection, a server
that starts without --config, and two honesty fixes: the supply-chain
and consumers name= filter actually filters, and a scoring integrity
error answers 500 instead of a silent 0.

The wire bump carries no break — every change is additive and existing
clients keep working. It exists as a capability discriminator: a client
about to send the delete ids selection must be able to tell it from an
older engine, which would ignore the unknown key and treat the request
as an empty filter ("everything") — a guess a destructive operation
must never make. pyvolca's REQUIRED_WIRE deliberately stays 2 so the
current client keeps accepting 0.9.1/0.9.2 engines; only the future
ids= parameter will demand revision 3.

Final state after this merges: main carries the released 0.9.3 version
and a dated changelog, ready to tag.
@ccomb
ccomb merged commit 109338c into main Jul 15, 2026
9 checks passed
@ccomb
ccomb deleted the release-0.9.3 branch July 15, 2026 22:13
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant