Add one-off database inspection and cleanup scripts under
`scripts/scratch/` for local debugging and maintenance work.
Document root cleanliness and file placement expectations for AI
assistants in `GEMINI.md` to keep temporary scripts and tests out of
the project root.
Add dedicated batch test modes for web-cookie, search, and audio
providers in the dashboard, API route, and request validation so
category-level testing targets the correct connections.
Rename legacy qoder refresh and usage helpers from iflow to qoder
for consistency, and tighten regex handling in response cleaning,
thinking compression, and proxy matching to address edge cases and
static analysis findings.
Also update related tests, typing fixes, and README star history
embeds.
- Fix duplicate routing strategy guidance texts in zh-CN.json
- Fix strategy recommendations duplicates
- Add useMemo import in playground/page.tsx
- Add hardcoded string localization in ProxyConfigModal.tsx
- Replace dangerouslySetInnerHTML with t.rich in OAuthModal.tsx
- Replace dangerouslySetInnerHTML with t.rich in PricingModal.tsx
- Add useMemo in RequestLoggerV2.tsx for performance
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Per review feedback: when targeting openai-responses, also normalize
max_tokens and max_completion_tokens INTO max_output_tokens, not just
skip the outbound normalization. This covers the case where a Chat
Completions client sends max_tokens to a Responses endpoint via
passthrough.
Extends test to cover both reverse normalization paths.
The common input sanitization in chatCore unconditionally normalizes
max_output_tokens to max_tokens (#994). This works for Chat Completions
targets but breaks Responses API passthrough (source and target both
openai-responses), because:
1. chatCore replaces max_output_tokens with max_tokens
2. Same-format requests skip the translator entirely
3. max_tokens reaches the upstream, which rejects it with
'Unsupported parameter: max_tokens'
The fix makes the normalization conditional: skip it when the target
format is openai-responses, where max_output_tokens is the canonical
field. The existing openaiToOpenAIResponsesRequest translator (#1245)
still handles the openai → openai-responses path correctly.
Adds a test that verifies max_output_tokens is not normalized to
max_tokens when routing to a Responses API target.
Replace hardcoded English strings "Loading" and "Loading..." with
useTranslation hook using common.loading key (already existed in
en.json and zh-CN.json).
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Add translations for playground page endpoints and UI elements
- Localize ProxyRegistryManager component text
- Add Chinese support for CursorAuthModal, OAuthModal, PricingModal
- Localize ProxyConfigModal and RequestLoggerV2 components
- Update both English and Chinese message files with new translation keys
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Add new routing strategies: fill-first, auto, lkgp, and context-optimized
- Add comprehensive strategy guidance and help text for new routing modes
- Implement i18n support for mode pack labels in intelligent routing step
- Update English and Chinese translations for new combo builder features
- Extend strategy recommendations with new routing mode examples
This enhances the combo builder with more sophisticated routing options
and improves internationalization coverage.
- replace hardcoded english text with translation keys in combo form modal
- add english and chinese translations for agent features labels and descriptions
- include system message override, tool filter regex, and context cache protection strings
📝 docs(translations): update i18n message files with new agent features entries
- add agentFeaturesTitle, agentFeaturesDescription, agentFeaturesSystemMessageOverride
- add agentFeaturesSystemMessagePlaceholder, agentFeaturesSystemMessageHint
- add agentFeaturesToolFilterRegex, agentFeaturesToolFilterHint
- add agentFeaturesContextCacheProtection, agentFeaturesContextCacheHint