kingy tested
What happened
Symptom
A completed JSON response contains {"actions":[{"location":"mall"}]} even though each action requires an action field.
Conditions
Qualified October 15, 2026 on llama.cpp 0.6.0 build 11429 (d81235049384534c167caea52b85a694f6103d14), Qwen3-4B Q4_K_M.
macOS 26.3 build 25D125, Apple M4 Pro / Mac16,7, 24 GiB unified memory; CPU-only inference.
Separate-agent rerun from a fresh extraction and fresh server processes on the same physical Mac.
Correction
Use the packaged normalized-schema.json as the decoder schema and keep original-schema.json as the application validator. The rewrite puts common requirements inside each complete disjoint oneOf alternative.
Result
Each executor recorded six baseline failures, six exact corrected successes and two reverted failures across two fixed prompts. The semantic check matched 7,934 cases plus 1,005 separately authored cases.
What did not work
Both the neutral trip prompt and an incomplete-example stress prompt omitted action under the original decoder schema.
A separate three-action control already worked with both schemas; that prompt dependence is retained.
- Keep the original Draft 7 schema and validation rules. Do not add action values or narrow the original permission for empty arrays and extra fields.
- Inspect SEMANTICS.md and the exact original-schema.json and normalized-schema.json in the package before using this contract-specific rewrite.
- Submit the same frozen prompt and settings with normalized-schema.json to the native /completion json_schema route.
- Validate the returned JSON against original-schema.json and the exact task answer. For the neutral trip, action must be go_to and location must be mall.
- Inspect the retained author and separate-agent runs, generated grammars and semantic checks. This is not a general-purpose schema normalizer.
Sources & limits
Repair 004: full qualification report and limits
Record checked 2026-10-15.
Same-host separate-agent reproduction, not independent human testing or a second-machine result.
These fixed synthetic tasks and repeated settings do not establish a general reliability rate, other-model behavior or minimum hardware requirements.
Original failures, failed correction proposals, prompts, outputs, settings and checksums remain in the evidence package. Model weights and runtime executables are not included.
Qualification ran October 15, 2026. Publication does not make this a test of later software or model revisions.
This is a contract-specific decoder workaround, not a runtime patch, proof of complete Draft 7 support, or an exact recreation of the historical upstream Windows/Llama3 report.