Repository navigation
Keep response-format grammars applied through a budgeted thought on WebGPU (#1954) - #1964
Merged
Merged
Conversation
…ebGPU (#1954) Repin bridge assets v0.1.83 -> v0.1.84, which reports thinkingBudgetPauseGrammar. Send thinkingBudget.pauseGrammar: false only for an eager grammar that keepsAppliedThroughThought, as native does, and throw LlamaUnsupportedException on assets without the capability.
Contributor
|
Chat app preview removed for |
This was referenced Nov 12, 2026
Merged
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.
Fixes #1954
Summary
v0.1.83tov0.1.84(release 443341300, tag commit0a3c45f2, bridge sourcedc359398, manifest SHA-25655abeb37...04e, nativev0.9.0), which adds thethinkingBudgetPauseGrammarcapability and thethinkingBudget.pauseGrammarrequest flag (llama-web-bridge#213).WebGpuLlamaBackendsendspauseGrammar: falseexactly where native passespauseGrammarDuringReasoning: false: an eager grammar for whichToolCallGrammarUtils.keepsAppliedThroughThoughtholds (Qwen3.5responseFormat, Seed-OSS required calls). Every other request is unchanged on the wire.LlamaUnsupportedExceptionnamingthinkingBudgetPauseGrammarandv0.1.84+, instead of returning an unconstrained reply.native-and-web-sync.md: README, chat appindex.html, fetch script,web_bridge_setup.dart,check_webgpu_bridge_tag.dart(release id, tag commit, source commit), tag-check fixtures, docs (doc/webgpu_bridge.md, website page, multimodal embeddings note), changelogs.Production-readiness scope
responseFormat(and required Seed-OSS calls) with aThinkingBudgetstays constrained after the budget closes the thought, matching native (#1956, #1962).v0.1.84+, direct and worker.LlamaUnsupportedException(namesthinkingBudgetPauseGrammar,v0.1.84+) for that combination; other budget requests on older assets work as before.Completeness checklist
thinkingBudgetDartdoc kept minimal because #1961 also edits it;skills/llamadart-web).validation_coverage_testpasses.PR type guidance
Test Plan
dart run tool/prepare_workspace.dartdart format --output=none --set-exit-if-changed .dart analyzedart test -p vm -j 1 --exclude-tags local-onlyN/A as a whole: only tooling/web_setup/structure VM suites are touched; they pass (test/unit/tooling/ test/unit/test_structure test/unit/web_setup)dart test -p chromeontest/unit/backends/webgpu(540 tests pass)coverage-lib: N/A, changedlib/code is browser-only (webgpu_backend.dart,interop.dart) and is not in VM coverage; covered by the Chrome suite abovecheck_webgpu_bridge_tag.dart --verify-manifest,verify_release_docs_versions.dart,web-lazy-grammarscenario (--list,--dry-run, real run), mutation run belowMatrix Evidence
static-format-analyzeroot-vmroot-chrometest/unit/backends/webgpuincl. newwebgpu_thinking_budget_grammar_test.dartcoverage-libwebgpu-bridge-tag-consistencyv0.1.84; release 443341300 immutable, commit and manifest bytes match--verify-manifestrelease-doc-version-consistencydocs-siteweb-lazy-grammarthinking_budget_grammar_e2e_test.dart: Qwen3.5-0.8B Q4_K_MresponseFormatJSON with budgets 0, 1, 16, direct and worker, CPU Wasm, pinnedv0.1.84; control onv0.1.83asserts unconstrained no-budget JSON and the typed rejectionstructured-output-adversarialkeepsAppliedThroughThoughtfrom #1962high-risk-exact-head-independent-qaMutation check on the new unit test (
webgpu_thinking_budget_grammar_test.dart, Chrome):origin/mainlib (no fix)pauseGrammar: falseflagtakesForcedOpenThoughtinstead ofkeepsAppliedThroughThought(misses Seed-OSS)grammarLazyReview Notes
65c62f433b.High-risk regression review
dc359398, native parity, the capability probe and the repin (manifest SHA re-downloaded), and simulated 0.19.8 release prep with no drift. 12/12 backend and 10 of 12 tooling mutants killed (T7/T7b shard-weight entries survive, P3). The e2e caught M1 with the WebGPU: thinking budget pauses forced-open-thought grammars (same as #1953) #1954 symptom. Evaluator exit 2.65c62f433b/523ab63a3bv0.1.84assets, direct and worker;v0.1.83control