Keith Yu
|
8217bfff50
|
feat: add Bedrock request optimizer (PRE-SEND thinking + cache injection) (#1301)
* feat: add Bedrock request optimizer (PRE-SEND thinking + cache injection)
Add a PRE-SEND request optimizer that enhances Bedrock API requests
before forwarding, complementing the existing POST-ERROR rectifier system.
New modules:
- thinking_optimizer: 3-path model detection (adaptive/legacy/skip)
- Opus 4.6/Sonnet 4.6: adaptive thinking + effort max + 1M context beta
- Legacy models: inject extended thinking with max budget
- Haiku: skip (no modification)
- cache_injector: auto-inject cache_control breakpoints (max 4)
- Injects at tools/system/assistant message positions
- TTL upgrade for existing breakpoints (5m → 1h)
Gate: only activates for Bedrock providers (CLAUDE_CODE_USE_BEDROCK=1)
Config: stored in SQLite settings table, default OFF, user opt-in
UI: new Optimizer section in RectifierConfigPanel with 3 toggles + TTL
18 unit tests covering all paths. Verified against live Bedrock API.
* chore: remove docs/plans directory
* fix: address code review findings for Bedrock request optimizer
P0 fixes:
- Replace hardcoded Chinese with i18n t() calls in optimizer panel,
add translation keys to zh/en/ja locale files
- Fix u64 underflow: max_tokens - 1 → max_tokens.saturating_sub(1)
- Move optimizer from before retry loop to per-provider with body
cloning, preventing Bedrock fields leaking to non-Bedrock providers
P1 fixes:
- Replace .map() side-effect pattern with idiomatic if-let (clippy)
- Fix module alphabetical ordering in mod.rs
- Add cache_ttl whitelist validation in set_optimizer_config
- Remove #[allow(unused_assignments)] and dead budget decrement
---------
Co-authored-by: Keith (via OpenClaw) <keithyt06@users.noreply.github.com>
Co-authored-by: Jason <farion1231@gmail.com>
|
2026-03-07 18:57:21 +08:00 |
|