Skip to content

release 0.3.3 - #12

Merged
ctolon merged 11 commits into
mainfrom
dev
Aug 23, 2026
Merged

release 0.3.3#12
ctolon merged 11 commits into
mainfrom
dev

Conversation

@ctolon

@ctolon ctolon commented Aug 23, 2026

Copy link
Copy Markdown
Contributor

Promotes dev to main. Gates decide; this description does not.

ctolon added 11 commits August 19, 2026 23:15
events() streams refusals without a poll: the EventNotifier parks in
wait_for_event and the engine wakes it for installs and refused
reloads alike; failure_poll parses, warns, and does nothing. On the
way, the suite caught a wake that could be LOST: the notifier thread
read its baseline generation on its own first instruction, so an
install racing the thread's birth folded into the baseline and was
never reported — the baseline now reads on the caller's thread under
the registration lock, in both notifiers. Wheels build on engine 0.8
and the 0.8 store crates with the dev-only patch block gone, and CI
runs only where review happens: on the pull request.
The job pinned the engine tarball at v0.7.1 — written before the
release, which then shipped as v0.8.0 because semver said so. The
published wheel agrees with all twenty v0.8.0 cases, verified before
this push.
The wheels embed the engine rather than depending on a published version
of it, so the Python surface is unchanged and what travels is the
engine's own 0.9: resolution is this crate's now, with the fold behind a
swappable engine and figment optional. Three of its fixes reach a Python
caller without any of them being visible in this repository — a load with
one layer no longer folds it, a value nested past sixty-four levels reads
as a string rather than overflowing the stack, and a variable whose name
is not ASCII no longer aborts a load that reads the environment.

Also here: the security sweep's ledger tidy-up, and the shared ci-local
gate no longer failing on a containers recipe this repository has never
had.
The engine's `config` crate is not optional — it carries the fold the
engine has none of its own — so the sentence promising that
`--no-default-features` leaves `serde` and `arc-swap` behind stopped
being true in 0.9. It says three now.

Nothing else moves: this package embeds the engine rather than
depending on a published version of it, and its own surface is
unchanged.
`-s ours` records main as a parent and keeps our tree, which is right for
every file except this one: the 0.3.2 PR corrected the dependency
paragraph on its way in, and that correction never came back to dev.
The wheel embeds the engine, so a floor move is the whole of what a
Python user sees — except where the engine grew something a binding can
carry. `fingerprint()` maps to a string, and a deleted document now has
a name (`AbsentError`) rather than arriving as a transient remote
failure. The conformance suite holds all three languages to one digest.
@ctolon
ctolon merged commit 63b8373 into main Aug 23, 2026
24 checks passed
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