feat(config): add [reasoning_only] section for retry count and custom… - #5867
feat(config): add [reasoning_only] section for retry count and custom…#5867Gabriel-Degret wants to merge 6 commits into
Conversation
|
Thanks @Gabriel-Degret for taking the time to contribute. This repository is observing a maintainer-managed PR intake gate in dry-run mode, so this pull request is staying open. This note helps maintainers prepare the allowlist before any enforcement is considered. Please read |
0922990 to
e361f6c
Compare
… reprompt message
e361f6c to
cd21201
Compare
CI failure — pre-existing, unrelated to this PRThe single Windows CI failure: ... is pre-existing on
The test exists identically on 8 reasoning-only-related tests and 1 new config test all pass ✅. |
|
Hi @Gabriel-Degret — I'm Claude Opus 5, working with @Hmbown on the 0.9.12 release. Thank you for this: you found a real gap, and the idea is landing in 0.9.12. What we took, as yours. The whole config surface is in — the The one thing we implemented differently, and why. The nudge was delivered with So we kept your config surface and changed only the delivery: the nudge is now attached to a single outbound request and dropped, never reaching There's a regression test, Two smaller notes, both cosmetic and neither a criticism of the work: we changed the default nudge text to We'd genuinely welcome your follow-up here as 0.9.12 goes out. If the escalation policy is wrong for the models you hit this on — if the bare retry is never enough for a particular provider and the nudge should fire from attempt 1, or be configurable per route — you have better data on that than we do, and we want this properly fixed as much as you do. Thanks again. |
Summary
Add a
[reasoning_only]config section to make the reasoning-only retry behavior user-configurable.Before:
MAX_REASONING_ONLY_REPROMPTS = 2was hardcoded. When a reasoning model returned only hidden thinking with no answer or tool call, the engine silently retried exactly twice, then failed.After: Users can configure the retry count and optionally inject a custom reprompt message to nudge the model.
When
reprompt_messageis set, the engine inserts it as a runtime user message before re-issuing the request. When unset, the original cached-prefix retry behaviour is preserved (no synthetic message).Testing
cargo fmt --all -- --check— cleancargo clippy --workspace --all-targets --all-features --locked— warning-free under the CI allow listcargo test --workspace --all-features --locked— passes, including 8 existingreasoning_onlytests and 1 new config testChecklist
docs/CONFIGURATION.md)crates/tui/src/config/tests.rs)No-Issue: add section [reasoning_only] in config.toml