Skip to content

polyengine 0.6.7: the parking events.next returns; #292 workaround deleted - #163

Merged
lannbot merged 2 commits into
mainfrom
fix/polyengine-292-released
Sep 7, 2026
Merged

polyengine 0.6.7: the parking events.next returns; #292 workaround deleted#163
lannbot merged 2 commits into
mainfrom
fix/polyengine-292-released

Conversation

@lannbot

@lannbot lannbot commented Sep 7, 2026

Copy link
Copy Markdown
Collaborator

polyengine 0.6.6 fixed #292 (an async export parked on a guest-internal
waker with no host call outstanding stays pending instead of trapping as
a deadlock), and 0.6.7 fixes the lift regression that fix introduced
(#312: the lift re-derived its done() verdict after the driver exited,
racing the settlement pump; polyvisor's lifecycle.boot never resolved
on a reload with a bound store). This tree pins ^0.6.7.

With that, the first design comes back: the runtime exports a parking
events.next and the worker runs one pump over it, fanning each event
into every tab's queue. interface event-source and its drain, the
worker's draining() wrapper around every dispatched export, and the
kernel's drain-only queue are deleted. Consequence stated in design.md
rule 4: an event born of network activity alone — the other device
confirming a pairing, an enrollment landing — reaches the screen with
nothing pressed on this device. The e2e pairing helpers drop the Refresh
presses that existed only to carry those phases across, so the suite
now exercises the push path; waitInDevices takes a required
{ refresh } so each wait states whether its value is pushed or pulled.

Also: web/fetch-endpoint.ts derives the @polymorph/iroh version from
the resolved specifier instead of a hand pin — the lock had moved to
0.6.1 while the cached endpoint artifact was still 0.6.0 under a
hard-coded name. just compose plugs a stable, version-free path. The
lock's @polymorph/{iroh,webcrypto,websocket} 0.6.0 -> 0.6.1 moves ride
along deliberately (within the declared ^0.6 range; e2e green).

Upstream: polymorph-components/polyengine#312 (merged, released as 0.6.7), #313 filed for a latent backgroundCompletion issue.

Gates: just check, cargo test --workspace, deno test -A web/, deno task e2e 16/16 twice on 0.6.7 (plus once more after the fetch-endpoint change).

Automerge armed.

…leted

polyengine 0.6.6 fixed #292 (an async export parked on a guest-internal
waker with no host call outstanding stays pending instead of trapping as
a deadlock), and 0.6.7 fixes the lift regression that fix introduced
(#312: the lift re-derived its done() verdict after the driver exited,
racing the settlement pump; polyvisor's `lifecycle.boot` never resolved
on a reload with a bound store). This tree pins ^0.6.7.

With that, the first design comes back: the runtime exports a parking
`events.next` and the worker runs one pump over it, fanning each event
into every tab's queue. `interface event-source` and its `drain`, the
worker's `draining()` wrapper around every dispatched export, and the
kernel's drain-only queue are deleted. Consequence stated in design.md
rule 4: an event born of network activity alone — the other device
confirming a pairing, an enrollment landing — reaches the screen with
nothing pressed on this device. The e2e pairing helpers drop the Refresh
presses that existed only to carry those phases across, so the suite
now exercises the push path; `waitInDevices` takes a required
`{ refresh }` so each wait states whether its value is pushed or pulled.

Also: `web/fetch-endpoint.ts` derives the `@polymorph/iroh` version from
the resolved specifier instead of a hand pin — the lock had moved to
0.6.1 while the cached endpoint artifact was still 0.6.0 under a
hard-coded name. `just compose` plugs a stable, version-free path. The
lock's @polymorph/{iroh,webcrypto,websocket} 0.6.0 -> 0.6.1 moves ride
along deliberately (within the declared ^0.6 range; e2e green).
@lannbot
lannbot enabled auto-merge September 7, 2026 16:18
…rror

A caller that is waiting FOR a failure (pairing-declined-aborts-both
accepts "the other device went away") read the sheet before the error
rendered; the harness then read it after and threw on the very text the
wait was for. Seen on CI and once locally, independent of the runtime
version.
@lannbot
lannbot merged commit 7ed5d5c into main Sep 7, 2026
2 checks passed
@lannbot
lannbot deleted the fix/polyengine-292-released branch September 7, 2026 16:29
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.

2 participants