fix(pixel): compile large tool strings in llama.cpp grammar - #4991
Open
0xacee wants to merge 1 commit into
Open
Conversation
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.
Why this matters
Pixel registers research, download promotion and host-command proposal tools whose string schemas expand to
char{1,16000},char{8,4096}andchar{1,16384}. The GBNF parser in ODS's default Compose runtime, llama.cpp b9014, rejects each schema before even short valid arguments can be generated. This is a schema compilation failure, independent of the length of the requested command or research brief.Remove only those three schema
maxLengthdeclarations and describe their existing limits. Execution still rejects oversized values before HTTP, promotion RPC, or broker publication. Required fields, types, smaller bounds, exact receipts and owner approval remain intact. Rolling back restores the incompatible schema declarations.Regression evidence and validation
d4b0c22f9e67f0295e91dc1ab4f17c0fb2557fa4, matchingods/docker-compose.base.yml. All three offered schemas fail on the base with “number of repetitions exceeds sane defaults.” Parser source.node --test extensions/services/pixel-agent/tests/*.test.mjs: 1,072 pass, one existing installed-runtime compaction check skipped. The native tests ran, with no native-test skips. Focused selection: 38 pass.git diff --checkpasses.Overlap check
Searched live open/closed PRs by grammar/schema terms and all three production paths. #4406 fixes RPC deadlines; #4334/#4328 fix research response handling; #4905 fixes promotion filenames; #4396 changes public naming; #4479 adds extension proposals. None changes these large string schema bounds. The already-merged web-extract tool has its own smaller URL bound and is unchanged here.
Combined the exact shared-file changes from #4396, then #4479, plus #4905 and its promotion regression: 39 selected tests pass. Prefer this PR before rebasing #4396 → #4479; #4905's disjoint filename changes can land in either order. This checks the shared plugin files, not the entire unrelated feature branches.
Remaining validation
Ready for review; hosted CI and independent review pending. Native schema compilation is verified on Linux x86-64, not an installed OpenClaw/llama.cpp generation run. Actual model tool generation and deployed runtime reload remain unverified. No gateway, model, broker action or access mode was activated.