Skip to content

Pin WebGPU bridge assets v0.1.83 (llama.cpp v0.9.0) - #1807

Merged
leehack merged 3 commits into
mainfrom
web-bridge-v0.1.83
Nov 8, 2026
Merged

leehack merged 3 commits into
mainfrom
web-bridge-v0.1.83

Conversation

@leehack

@leehack leehack commented Nov 8, 2026 •

Copy link
Copy Markdown
Owner

Summary

  • Pin the default WebGPU bridge assets to v0.1.83, built from bridge cb6383fb on upstream llama.cpp v0.9.0@cd959bae. Web now matches the native v0.9.0 pin.
  • check_webgpu_bridge_tag.dart: new provenance (release 438242670, tag commit 44aa84a8, manifest ae6f4884…, native anchor v0.9.0); bridgeApprovedNativeUpstreamAhead now equals the bridge's llama.cpp tag, so the native-ahead allowance is closed and the parity wording is required again. The test's approved manifest fixture is the published manifest.json byte for byte.
  • Docs drop the Web-behind-native wording; doc/webgpu_bridge.md gains a v0.1.83+ note (Qwen3-TTS suppress tokens, llama-web-bridge#211). The v0.1.82+ capability floors are unchanged.
  • Changelogs: one Unreleased bullet each; the native bullet's "Web keeps llama.cpp v0.8.0" sentence is removed.

Release provenance (all first attempts, dispatched from main at cb6383fb, correlation manual-v0.1.83, native v0.9.0 with assets.json SHA-256 0d2119cd…c39e):

Stage Run Result
Build Exact Bridge Candidate 42479331139 success
Qualify Exact Bridge Candidate 42480268607 success
Publish Exact Qualified Bridge Assets 42481554696 success

Release 438242670 is immutable; tag v0.1.83 points at 44aa84a8a51701dc9c4f82c21e6ee3e774919c20; the release asset, the tagged manifest.json and the jsDelivr copy all hash to ae6f488408672f9ba28d8f9e664a2b85f4e12048f290e259e18dd0b750c038e5.

Production-readiness scope

  • User-facing scope: Web llama.cpp runs upstream v0.9.0, the same release as native; dart run llamadart:web_setup and the chat app fetch v0.1.83.
  • Supported platforms/paths: WebGPU bridge direct and worker runtimes (wasm32/memory64), web_setup, chat app bootstrap. Native unchanged.
  • Unsupported or intentionally unavailable paths: Unchanged; capability probes and v0.1.82+ floors still reject older assets.
  • Out of scope / follow-ups: None.

Completeness checklist

  • Declared scope is fully implemented, or explicitly reduced above.
  • Unsupported platform/option combinations fail loudly with actionable diagnostics or are clearly documented as unavailable.
  • Public API docs, README/website docs, examples, support matrices, and changelog entries are updated where relevant.
  • Regression coverage covers the original issue plus key negative/version-skew paths where relevant.
  • Public capability changes update the validation coverage registry with a pack or a reasoned, issue-linked exemption; inventory checks pass (or N/A with scope). N/A: no capability added or removed.
  • Security/privacy review completed: no secrets, bearer tokens, signed URLs, or raw secret-bearing paths leak through logs, cache keys, metadata, errors, or snapshots.
  • Follow-up work that is useful but not required for this PR is tracked in GitHub Issues, or explicitly marked "None" above.

PR type guidance

  • Feature PR: N/A, runtime pin bump.
  • Bugfix PR: N/A.
  • Docs-only PR: N/A, changes the pinned runtime artifact.

Test Plan

  • dart run tool/prepare_workspace.dart
  • dart format --output=none --set-exit-if-changed .
  • dart analyze
  • dart test -p vm -j 1 --exclude-tags local-only: ran test/unit/tooling/ (1576 pass, 5 skip; 6 windows_registry_qualification_test.dart failures are pwsh missing on this Mac) and test/unit/web_setup (32 pass). Full VM suite left to CI.
  • dart test -p chrome --exclude-tags local-only: 4630 pass.
  • coverage-lib matrix row: N/A, lib/ changes only two pin constants.
  • Other targeted/local-only validation: see Matrix Evidence.

Matrix Evidence

Matrix row Scope covered Platform / model / backend Result Evidence / notes
static-format-analyze format, analyze, platform boundaries macOS arm64, Flutter 3.47.1 PASS
webgpu-bridge-tag-consistency 16 pins, Web/native parity, provenance doc, live immutable release and manifest bytes check_webgpu_bridge_tag.dart --verify-manifest PASS release 438242670 at 44aa84a8 with approved manifest bytes
root-chrome browser unit/integration Chrome PASS 4630 pass
examples-tests chat app test test_vm + Web-only Chrome set Flutter PASS 689 + 132 pass
release-doc-version-consistency install snippets and companion pins local PASS pending companion bumps are pre-existing release-prep items
docs-site ./tool/docs/build_site.sh local PASS
chat-app-web-real-model-smoke built chat app, pinned local v0.1.83 assets, plain chat, penalty probe Chromium (Playwright 1.61.0), Qwen3.5-0.8B Q4_K_M, CPU PASS "2+2 equals 4."; asset URLs ?v=v0.1.83-local-v0.9.0. Playwright 1.64.1 dropped leading keystrokes (prompt typed as "+2? …"), a harness issue; CI pins 1.61.0
chat-app-web-text-to-speech-smoke chat app Qwen3-TTS synthesis, autoplay, WAV export Chromium, Qwen3-TTS 1.7B Base Q4_K_M + Q8_0 mmproj, WebGPU offload PASS 19 frames, 36480 samples @ 24 kHz, 1.52 s WAV
web-speech-task-cancel real STT/TTS cancellation isolation and reuse, direct and worker Chrome, Qwen3-ASR 0.6B Q8_0 (jfk.wav exact transcript), Qwen3-TTS 1.7B, wasm64 CPU PASS 13/13; execution main-thread and worker, core_variant wasm64
web-multimodal-embeddings Web media embeddings vs native references N/A no local EmbeddingGemma-2 native reference fixture; the bridge candidate's durable multimodal gate passed on these exact assets
high-risk-exact-head-independent-qa independent blocking-only review Fresh Claude Opus session PASS ACCEPT: full audit at d85b6786, delta re-audit at 6caa0736; no blocking findings

Review Notes

  • Independent review: ACCEPT (fresh Claude Opus session, uninvolved in implementation). Full audit at d85b6786 (manifest/CDN/release hashes, provenance, mutations M1-M10, Qwen3.5 chat and Qwen3-TTS smokes); delta re-audit at 6caa0736 ACCEPT (only the changelog dedupe differs; chat smoke passes at the exact head).
  • CI on 6caa0736: 32 pass, 9 skipped, 0 fail. Head merges main at d53971ee (Speak with Chatterbox and Pocket TTS, with predefined voices #1792); the duplicate native changelog bullet from the union driver was removed by hand.
  • Readiness CLI (high_risk_readiness.dart) on the exact head and base: exit 2 (unverifiedPrerequisites, evidence internally consistent).
  • Non-blocking follow-ups are tracked on 0.19 small follow-ups (audit P3s, test gaps, doc nits) #1779.

High-risk regression review

  • Classification: high-risk (artifactConsumer)
  • Implementation task: this PR's author session
  • Independent blocking QA task: fresh Claude Opus auditor session, ACCEPT
  • Exact head / current base: 6caa07361af44647a815cc268002d425c9bbb4b3 / d53971eefbbae063baea862a4ee61b36d24dfe73
  • Production-branch deletion, bypass, or miswire proof: audit mutations M1-M10 on the bridge gate all caught
  • Affected-family real-model/artifact evidence: Qwen3.5-0.8B chat, Qwen3-TTS 1.7B (chat app and direct/worker), Qwen3-ASR 0.6B (direct/worker) on the published v0.1.83 assets; see Matrix Evidence.
  • Explicit unavailable-family or other N/A evidence: EmbeddingGemma-2 Web media embeddings not rerun locally (no native reference fixture).
  • Known PR-caused P1 regressions: 0
  • Unresolved review threads: 0

Web now runs upstream llama.cpp v0.9.0@cd959bae like the native v0.9.0
pin, so the native-ahead allowance is closed: bridgeApprovedNativeUpstreamAhead
equals the bridge's llama.cpp tag and the parity wording is back.

Release 438242670 (tag commit 44aa84a8, bridge source cb6383fb, manifest
SHA-256 ae6f4884) was published from candidate run 42479331139 and
qualification run 42480268607. The gate's approved manifest fixture is the
published manifest.json byte for byte.
@leehack

leehack commented Nov 8, 2026

Copy link
Copy Markdown
Owner Author

Base drift before merge: main moved from d53971ee to b535dda0, via #1800 (separately audited). The two PRs touch no files in common. git merge-tree is clean, and the combined Unreleased changelog lists each bullet once. The audited head 6caa0736 is unchanged.

@leehack
leehack marked this pull request as ready for review November 8, 2026 15:19
@leehack
leehack merged commit bf27a64 into main Nov 8, 2026
41 checks passed
@leehack
leehack deleted the web-bridge-v0.1.83 branch November 8, 2026 15:19
@github-actions

github-actions Bot commented Nov 8, 2026

Copy link
Copy Markdown
Contributor

Chat app preview removed for leehack/llamadart-chat-pr-1807.

leehack added a commit that referenced this pull request Nov 8, 2026
…ts (#1810)

Pin the Chrome default and both halves of the Safari hidden-page check, assert the stand-in safaridriver exits after close(), drain safaridriver stderr through a file, drop the stale Web/native skew wording, and expect the v0.8.0-2 native tag the Pixel Qwen3.5 guard's archive hash belongs to.

Co-authored-by: Claude Sonnet 5.5 <[email protected]>
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