release: v0.6.26 — fix Grok nested-error (review High), tighten cc-X validator, sync release-state docs#12
Merged
Conversation
extractTerminalError() recursed into a nested error object but only pulled a message when that
object carried a type:"error" / is_error marker. A real shape {text:"partial", error:{message:
"permission denied"}} therefore returned null, and the visible partial text was wrongly reported
ok:true. A nested error OBJECT is now a terminal-error signal in its own right: recurse for deeper
nesting, then pull its message/data, falling back to a generic marker when non-empty but unlabeled.
An empty {} stays a non-error (no false positive); clean successes are unaffected. Covers both
parseGrokJsonResult and parseGrokStreamText. Repro'd ok:true before, ok:false after.
Tests: nested-error object (json + streaming) + empty-error-object non-failure.
… Medium/Low) - validate-cc-x-recipes: constrain status to verified / marketplace-unstable (non-marketplace must be verified), so an unlabeled/draft entry no longer passes the structural gate. Added a draft- rejection test. - runQwenPrompt: added an end-to-end regression that logs the spawned argv and asserts an explicit --model is forwarded (previously only the builder layer was covered).
Bump the published surface 0.6.25 -> 0.6.26 and add docs/release-notes-v0.6.26.md. Sync the release-state docs that still pointed at v0.6.24: README.md / README.zh-CN.md / README.ja.md 'Latest release' sections and the docs/roadmap.md snapshot line, advanced straight to v0.6.26. Also clarified roadmap Q10 that the cc-X validator guards structure + source-anchoring, not current-truth. polycli-utils/timing keep their independent semver.
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.
Addresses an external review of v0.6.25. Three commits.
fix: detect grok nested error objects (review High) (
1f3c2cf)extractTerminalError()only pulled a message from a nestederrorobject when it carried atype:"error"/is_errormarker, so{text:"partial", error:{message:"permission denied"}}returned null and the visible partial text was wrongly reportedok:true. A nested error OBJECT is now a terminal-error signal in its own right (recurse → message/data → generic marker for non-empty-unlabeled; empty{}stays a non-error). CoversparseGrokJsonResult+parseGrokStreamText. Repro'dok:truebefore,ok:falseafter; added json + streaming + empty-object regressions.chore: tighten cc-X validator status + add qwen argv coverage (review Medium/Low) (
28bb27a)validate-cc-x-recipesconstrainsstatustoverified/marketplace-unstable(non-marketplace must beverified), so an unlabeled/draft entry no longer passes; added a draft-rejection test.runQwenPromptend-to-end regression that logs the spawned argv and asserts--modelis forwarded (was only builder-layer covered).release: prepare v0.6.26 + sync release-state docs (review Medium) (
d99ecec)docs/release-notes-v0.6.26.md.Not addressed (declared):
validate-fixture-metadata.mjspath/meta consistency is a pre-existing Low gap, flagged in the release notes for a separate change; OpenCode exit-2 execute() is covered by theisHardCompanionFailureunit test + the existing exit-1 reject test rather than a brittle stateful integration test.Verification (local):
npm test554/554,npm run release:checkexit 0 (bundles 5, fixture 17, codex adapter 5, plugin validation, publish/pack dry-runs). Path B preserved.