Skip to content

build: move onto the published 0.4 engine - #32

Closed
pathscale wants to merge 2 commits into
masterfrom
build/engine-0.4
Closed

build: move onto the published 0.4 engine#32
pathscale wants to merge 2 commits into
masterfrom
build/engine-0.4

Conversation

@pathscale

@pathscale pathscale commented Aug 31, 2026

Copy link
Copy Markdown
Owner

Chuzz could not see any engine work. This moves it onto the published 0.4 engine, and onto a tauri-runtime-blitz that builds.

Why the old pins could not move

ps-blitz-* = "^0.3.0-beta.6". A prerelease requirement only matches its own prerelease line — it accepts 0.3.0-beta.* and nothing else. Not 0.3.6, not 0.4.0. The pin was nine releases behind and could not be moved by cargo update.

It is also why scripts/local-engine.sh appeared to do nothing. Cargo reported

patch ... was not used in the crate graph

and carried on with the registry copy, so editing a local engine checkout changed no behaviour. That reads as a broken patch table; the cause was an unsatisfiable pin.

tauri-runtime-blitz ^0.1.0 is the second half. It does not compile on rustc 1.97.1 (error[E0658]: use of unstable library feature 'str_as_str') and only survived here because a cached artifact existed in target/ — a cargo clean would have stranded the repo. 0.3.2 is the release that takes ps-blitz ^0.4, so both sides of the cascade agree.

What changed

before after
ps-blitz-* ^0.3.0-beta.6 ^0.4
tauri-runtime-blitz ^0.1.0 ^0.3.2
endpoint-libs ^2.1.5 ^3

The endpoint-libs move is not optional. tauri-runtime-blitz 0.3.2 reaches it through blitz-control-protocol 0.4, which requires ^3; leaving this workspace on ^2.1.5 put both 2.1.5 and 3.0.0 in the graph — two crates exporting the same MCP framing types, the same shape of fault as two engines. The manifest already said these should be the same source and feature tauri-runtime-blitz uses; this makes that true rather than aspirational.

WireMessage::Text carries Utf8Bytes rather than String in 3.0, so three send sites convert. The receive sides read through Deref and needed no change.

API drift: there is none

The engine pin was nine releases behind and real work was expected here. There was none. With the graph resolving to a single engine, every crate compiled clean — the only errors in the workspace were the endpoint-libs conversions above.

Chuzz never matches on blitz_dom::net::Resource (the variant addition that forced the minor), and it uses Provider::new, which #79 left unchanged. No file under apps/chuzz/src/ was touched.

Verified

  • cargo build -p chuzz-gui --release --features capture from a clean target — 4m 28s, clean. No cached-artifact crutch.
  • cargo fmt --all -- --check — clean.
  • cargo clippy -p chuzz-control --all-targets --all-features -- -D warnings — clean.
  • cargo clippy -p chuzz-gui --all-targets -- -D warnings — clean.
  • scripts/check-one-rev-per-git-source.sh — no git sources.
  • cargo test --workspace47 passed, 0 failed (32 chuzz-gui, 15 chuzz-control). server::tests::a_client_gets_an_answer_and_teardown_removes_both_files exercises the changed Utf8Bytes send path over a real socket.

End to end, the probe from the handover:

scripts/render-check.sh probe1 <large production site>
  3860 nodes, 1531 with a box

Before #79 that panicked with `style` is not available on this node kind. It now completes and paints the page. That is the point of this change: engine fixes become visible here.

The remaining console lines are missing web APIs (HTMLVideoElement, ES module import.meta), which are H3/H4 territory, not engine drift.

Blocked on two publishes

This cannot merge until both are on crates.io:

  1. tauri-runtime-blitz 0.3.2 — pathscale/tauri-runtime-blitz feat/ps-blitz-0.4, unmerged.
  2. ps-dioxus-native 0.7.3release: publish dioxus-native at 0.7.3, against the 0.4 engine ps-blitz#80. The published 0.7.2 still requires ^0.3.0-beta.6 and drags a second engine in; it was missed by the 0.4.0 release.

Verification above was done with both redirected to local checkouts through an untracked .cargo/local-engine.toml. The engine sources compiled are ps-blitz ff31bb55, which is the 0.4.0 release commit.

Cargo.lock is deliberately unchanged — it cannot be regenerated against versions that do not exist yet. It must be refreshed once both publishes land. Nothing in ci.yml or release.yml passes --locked, so this does not break the build in the meantime.

[workspace.package] version is intentionally untouched: release.yml publishes whenever it changes, and a pin bump should not fire a CDN release as a side effect.

meh added 2 commits August 31, 2026 20:21
ps-blitz published 0.4.0 (PR #79: selectable user agent, the display:contents
hoist panic, the @import cross-thread panic). None of it could reach this
repository, because a prerelease requirement only matches its own prerelease
line: ^0.3.0-beta.6 accepts 0.3.0-beta.* and nothing else, not 0.3.6 and not
0.4.0.

That is also why scripts/local-engine.sh appeared to do nothing. Cargo reported
'patch ... was not used in the crate graph' and carried on with the registry
copy, so an edit to a local engine checkout changed no behaviour and read as a
broken patch table rather than an unsatisfiable pin.

tauri-runtime-blitz moves with it. ^0.1.0 does not build on rustc 1.97.1
(unstable str_as_str) and only survived here because a cached artifact existed
in target/; a cargo clean would have stranded the repository. 0.3.2 is the
release that takes ps-blitz ^0.4, so both sides of the cascade agree and cargo
unifies the engine instead of putting two copies in the graph.
tauri-runtime-blitz 0.3.2 reaches endpoint-libs through blitz-control-protocol
0.4, which requires ^3. This workspace asked for ^2.1.5, so the graph carried
both 2.1.5 and 3.0.0 — two crates exporting the same MCP framing types, which
is the same shape of fault as two engines and fails the same way once a value
crosses between them.

The manifest already said these should be the same source and feature as
tauri-runtime-blitz uses for its agent-control surface. This makes that true
rather than aspirational.

WireMessage::Text carries Utf8Bytes rather than String in 3.0, so the three
send sites convert. Nothing else in chuzz-control moved: the receive sides read
through Deref and needed no change.
@pathscale

Copy link
Copy Markdown
Owner Author

Superseded by #33, which consolidates all chuzz work into one PR.

@pathscale pathscale closed this Aug 31, 2026
@pathscale
pathscale deleted the build/engine-0.4 branch September 1, 2026 00:43
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