Skip to content

Preserve literal reasoning tags in assistant history - #1009

Merged
bradhilton merged 11 commits into
mainfrom
fix/preserve-literal-reasoning-content
Sep 28, 2026
Merged

bradhilton merged 11 commits into
mainfrom
fix/preserve-literal-reasoning-content

Conversation

@bradhilton

@bradhilton bradhilton commented Sep 28, 2026 •

Copy link
Copy Markdown
Collaborator

Qwen-style inline reasoning parsing can delete literal content containing <think> or </think>. Disable the executable parser while preserving surrounding whitespace and explicit structured reasoning.

Moving a trim requires a proven local renderer, a closed template effect boundary, and namespace mutations limited to private counters that remain bound to their validated declarations. Unknown callbacks, shared bindings and unproved macro calls retain their original trims and evaluation order. This changes the shared inference template helper; tokenizer APIs are unchanged.

Validation: 295 parser cases pass, including callback and parameter-alias regressions that fail their respective parent versions. Public forward-block and caller-default cases also reproduce the old problem and pass. Both actual Qwen template assets retain identical normalized bytes and thinking defaults. Ruff and formatting pass; type diagnostics match the existing baseline. Final independent CLI reviews and CI are running.

@bradhilton
bradhilton marked this pull request as ready for review September 28, 2026 14:18
@bradhilton
bradhilton merged commit e65b0dd into main Sep 28, 2026
7 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant