Repository navigation
Conversation
Strict token discovery scanned every identifier in a statement, so the statement's own tag name (autoescape, endautoescape, with, ...) and the test name after `is` / `is not` (defined, none, divisibleby, ...) were reported as undeclared tokens, along with the `is` operator itself. Discovery now drops the leading tag name of a statement, treats `is` and the capitalised True/False/None literals as keywords, and masks test names the same way filter names are masked. Refs #784 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The strict token walker matched expression and statement delimiters
anywhere in the body, including inside `{# ... #}` comments and
`{% raw %}` blocks, so a comment such as `{# bd uses {{name}} #}`
failed strict render and validate with ERR_VAL_UNDECLARED_TOKEN. The
walker now skips comments and raw blocks, which render no references.
Refs #785
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…tput The JSON output check lived only in the CLI adapter, so the wheel's compose(), compose_file() and render_loaded_template() returned malformed JSON bodies that `sc-compose render` rejects. The check metadata (format by extension, JSON mode from policy over front matter) moves into sc-composer as RenderCheckMeta::for_request, the CLI uses it, and the wheel now runs the same check and raises ScRenderError with the CLI's diagnostic code (ERR_RENDER_JSON_MALFORMED). Refs #787 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Owner
Author
|
Compatibility callout for review: #787 intentionally changes only the previously incorrect Python JSON-output path: compose()/compose_file()/render_loaded_template now raise ERR_RENDER_JSON_MALFORMED for malformed JSON where v1.7.0 returned invalid JSON. This is the requested bug fix and brings the wheel into parity with the CLI; non-JSON template behavior and headerless MiniJinja undefined handling are unchanged. Reviewer should explicitly assess this before/after contract and the additive public RenderCheckMeta::for_request API. The PR is review-only and not a release/merge authorization. |
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.
Scope
Review-only corrective tree against develop. Do not merge this PR or use it as the clean-history force-push head. Clean source is local recovery/1.7.1-stage1 at e1b49e0; both heads have tree fa2c12585b9db7ffab063109471fb50d0a47c5c8.
Replayed source commits, in order: #784 27ea0bd -> f9e1859; #792 (QA follow-up to #784) e9b7b8f -> 52b30cd; #785 42f1d16 -> 72bfb00; #787 588ab3d -> e1b49e0. Stable patch IDs match all four. Historical ATM QA reports 01M4PD8M3BMJVF1J4MNCT5H2MV, 01M4PDTZNCEDND2DZT3FKBR9T4, and stack identity 01M4PECER31H6Y52Y3KANAXFBQ; quality-mgr re-audit 01M4RB9KKK3R61YRSM394P1Q41 confirms #792 is the only corrective code from these PRs QA rounds.
Explicit exclusions
No commits from #795/#796 (#783/#791 strict-only work), #799-#814, or the quarantine bead are replayed. No global strict-only/default change, no MiniJinja undefined-behavior change, no public policy-field removal. Review PR history contains old develop only to expose the corrective diff; its tracked tree is clean.
Checks and gate
Local cargo test --workspace, cargo fmt --all --check, and cargo clippy --workspace --all-targets --all-features -- -D warnings pass. CI and critical quality-mgr review are required. Do not merge this PR. Do not force-push develop until the full approved scope and clean-head checks are green and user explicitly authorizes that step.
Plan: docs/recovery-1.7.1-replay.md; epic: comp-release-171-recovery.