Repository navigation
Conversation
Adopt the immutable llama-web-bridge-assets release v0.1.67 (release 419092691, tag commit 2657686, bridge source 8992121, manifest SHA-256 d596304c...), built for native v0.7.0-1 on the same llama.cpp v0.7.0. It carries bridge fixes for missing state files aborting the core (bridge#116), worker-mode relative media URLs (bridge#113) and unawaited WebGPU free/shutdown ccalls (bridge#150). Add a local-only real-asset Chrome test covering both runtimes; it fails on v0.1.66 assets and passes on v0.1.67, on CPU and WebGPU.
The tag gate scans tracked files for unregistered spellings of the pinned tag, so the local-only e2e test must name the pinned assets without the tag.
This was referenced Oct 21, 2026
leehack
marked this pull request as ready for review
October 21, 2026 05:56
Contributor
|
Chat app preview deployed for
|
16 tasks done
Owner
Author
|
Independent audit record: blocking-only adversarial audit of exact head |
This was referenced Oct 21, 2026
leehack
added a commit
that referenced
this pull request
Oct 21, 2026
Owner
Author
16 tasks done
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
v0.1.66to the immutableleehack/llama-web-bridge-assets@v0.1.67: release419092691, tag commit2657686bd3956c09ab60fe89ca7d6d660045b5e3, bridge source8992121b4b533a4444ad6de93d855ea3c99644c6, manifest SHA-256d596304c609034afc37280bf86b8231a941bf3a7f3a3e584acd084f646a472ba. Same llama.cppv0.7.0@620d2225…and nativev0.7.0-1as before.v0.1.66is exactly three commits: bridge#166 (fixes bridge#113: relative model and media URLs in worker mode), bridge#167 (fixes bridge#150: await WebGPUfree_model/shutdown), and bridge#168 (fixes bridge#116: a missing state file rejected instead of aborting the core). The.d.tsand worker script are byte-identical, so the Dart interop and public API are unchanged.test/e2e/webgpu/bridge_runtime_fixes_e2e_test.dart(local-only, real assets, worker and direct runtimes). It fails onv0.1.66and passes onv0.1.67.Refs #922 (0.15.6 lane "bridge#113, #150, #116 (bridge v0.1.67 repin)"). No dedicated llamadart issue tracks these fixes.
Production-readiness scope
stateLoadFileon a missing or directory path, andstateSaveFileinto a missing directory, throwLlamaStateException("Cannot open state file …"). The runtime stays usable and the worker stays a worker; before, it threwAborted(undefined)and the core was dead. A chatLlamaImageContent.urlrelative to the page now loads in worker mode; before, it hit a 404 (CPU) or silently moved the bridge to the main thread (WebGPU). Bridge teardown awaits the WebGPU free and shutdown.WebGpuLlamaBackend.modelFreedisposes the bridge and the next load builds a new one. Unload/reload passes onv0.1.66WebGPU too, so the changelog makes no reload claim.Completeness checklist
v0.1.67+capability history, the Web state-file note, the multimodal relative-URL note, thellamadart-webskill and the Unreleased changelog in both files.v0.1.66causal controls; it also checks that the relative URL would not resolve against the worker script.webGpuBridgeErrorText(sourceUrls: [path])redaction.PR type guidance
bridge_runtime_fixes_e2e_test.dart. Platforms: Web only (Chrome CPU wasm32 and Chrome WebGPU/Metal on macOS arm64).Test Plan
Correction. The first head
ac5101efailed the tag gate: the e2e header spelled the pinned tag, and the gate scans tracked files. My earlier gate, tag-test and VM runs happened while that file was still untracked, so they did not reflectac5101e.eb081edrewords the header. The results below are measured ateb081edunless marked otherwise.At
eb081ed:dart format --output=none --set-exit-if-changed .(pinned Flutter 3.47.1): 0 changeddart analyze: no issuesdart run tool/testing/check_webgpu_bridge_tag.dart: exit 0 (18 pins on v0.1.67)dart run tool/testing/check_webgpu_bridge_tag.dart --verify-manifest: exit 0 (live manifest, release 419092691)dart test -p vm test/unit/tooling/: 883 passed, 4 skipped. This includescheck_webgpu_bridge_tag_test.dart62/62TMPDIR=<fresh> dart test -p vm -j 1 --exclude-tags local-only: not run at this head. The host's 1-minute load was 25.95, above the 24 limit. The earlier full-lane count is not valid for either headdart run tool/prepare_workspace.dart,check_platform_boundaries: not rerun at this head. They passed on theac5101etree, andeb081edchanges only two doc-comment strings in a local-only testMeasured on the
ac5101etree. The code and assets are identical ateb081ed; only two doc-comment strings in the local-only e2e test differ:dart test -p chrome --exclude-tags local-only: 3502 passedflutter test test test_vm672 passed (4 skipped); the Web-only chrome set 126 passedReal-asset regression (
bridge_runtime_fixes_e2e_test.dart)Fixtures: stories15M (
212ddc79…), LFM2-VL-450M-Q4_0 (1fbf4797…) + mmproj Q8_0 (a6a813fa…), a 64×64 PNG. Assets come fromfetch_webgpu_bridge_assets.shwith checksums verified. Chrome uses SharedArrayBuffer; the WebGPU runs add--enable-unsafe-webgpu --use-angle=metal --headless=new(backendWebGPU, CPU).Aborted(undefined)bothFailed to fetch media: 404Aborted(undefined)bothIn both runtimes, the URL reply equals the bytes reply under greedy decoding.
Matrix Evidence
static-format-analyzeroot-vmtest/unit/tooling/883 passed ateb081ed; the full lane is left to CIroot-chromewebgpu-bridge-tag-consistencyeb081ed)--verify-manifest: 18 pins on v0.1.67, Web/native v0.7.0, provenance for release 419092691. jsDelivrmanifest.jsonis byte-identical to the release asset. Tag test 62/62.ac5101efailed this gate (see Test Plan)docs-site./tool/docs/build_site.sh: 2612 pages, no broken internal linksweb-bridge-smokerun_local_e2e.dart --scenario bridge-smokeon checksum-verified v0.1.67, worker calls for load/projector/completionweb-mock-chat-smoke--scenario chat-app-web-mock-smokeweb-real-model-smoke--scenario chat-app-web-real-model-smoke: runtimev0.1.67-local-v0.7.0, reply "2+2 equals 4."web-production-artifact-smoke--scenario chat-app-web-production-smokeweb-multimodal-embeddingsqualification_gates.multimodal: passed). Doc states the last consumer rerun was on v0.1.66web-text-to-speech-smokeweb-speech-to-text-smokewebgpu-multimodal-regressionhigh-risk-exact-head-independent-qaReview Notes
ac5101efound one blocking P1: the tag-gate failure above. It is fixed ineb081edand needs re-audit at the new head.eb081edb4084d2df4a896514a790da4a6d411ad2on base2dc1fbbb223f664581d587f6fea04c0d52a7bd62; CI pending.High-risk regression review
classify_high_risk_changes.dart: surfacesartifactConsumer)eb081edb4084d2df4a896514a790da4a6d411ad2/2dc1fbbb223f664581d587f6fea04c0d52a7bd62--verify-manifestchecks the live manifest bytes and their provenance fields, but not the release id or tag commit (verified by hand here; gate gap tracked separately)ac5101e(tag gate) is fixed ineb081edand awaiting re-auditIndependent re-audit at
eb081ed: PASS (delta: two doc-comment strings in the local-only e2e; tag gate with/without--verify-manifestexit 0; tooling 883 passed; boundaries OK; full VM lane not run due to machine load; hosted CI pending).