Keep the tool/function-call preservation logic intact while removing noisy implementation comments from the PR diff.
Co-Authored-By: OpenClaude (dmassoneto) <openclaude@gitlawb.com>
When thinking is enabled on models like Kimi, assistant messages containing
tool_calls must also include reasoning_content. The response sanitizer was
incorrectly stripping reasoning_content whenever visible content existed,
breaking subsequent requests with:
thinking is enabled but reasoning_content is missing in assistant tool
call message
Now reasoning_content is preserved when tool_calls are present, while still
being stripped for plain text responses to avoid client rendering issues.
- Add condition !msgRecord.tool_calls before deleting reasoning_content
- Update existing test to expect preserved reasoning_content with tool_calls
- Add TDD tests covering both preservation and stripping behaviors
- Add translator tests for reasoning_content + tool_calls handling
Co-Authored-By: OpenClaude (dmassoneto) <openclaude@gitlawb.com>
- Sanitize error messages in errorResponse() and cursor buildErrorResponse() to strip stack traces before sending to client (fixes js/stack-trace-exposure)
- Add explicit CodeQL suppression comments for intentional SHA-256 usage in API key hashing (fast O(1) lookup, not password storage) and deterministic UUID generation (fixes js/insufficient-password-hash false positives)
Cherry-picked from release/v3.8.0
Replace regex-based compression artifact cleanup with linear helpers to
avoid pathological backtracking and normalize whitespace safely.
Tighten request and response parsing in assess, Gemini translation, and
executor telemetry to avoid unsafe property access and invalid category
filtering.
Also add managed database backup support for legacy encrypted
connection migration, improve SQLite load error handling, and cover the
regressions with unit tests.
* chore: add GPT-5.5 Instant and support Node 26 (#1977)
chore: add GPT-5.5 Instant model to Codex registry + Node 26 support with CI + improved native SQLite error handling. Integrated into release/v3.7.9
* feat: enhance cost formatting and add Codex GPT-5.5 pricing support
* fix formatting
---------
Co-authored-by: backryun <bakryun0718@proton.me>
Co-authored-by: Jan Leon <jan.gaschler@gmail.com>
Co-authored-by: 05dunski <05dunski-kredo@icloud.com>
* chore: add GPT-5.5 Instant and support Node 26 (#1977)
chore: add GPT-5.5 Instant model to Codex registry + Node 26 support with CI + improved native SQLite error handling. Integrated into release/v3.7.9
* feat: enhance cost formatting and add Codex GPT-5.5 pricing support
* fix formatting
---------
Co-authored-by: backryun <bakryun0718@proton.me>
Co-authored-by: Jan Leon <jan.gaschler@gmail.com>
Co-authored-by: 05dunski <05dunski-kredo@icloud.com>
Closes#1941 by forcing healthCheck.ts to scan and re-encrypt all
provider connections that were previously encrypted with the dynamic salt
fallback. This permanently upgrades legacy tokens to static-salt without
relying on organic updates.
Export and restore usage history, domain cost history, and domain
budget data so analytics and budget state survive settings transfers.
Also adjust cost overview fallbacks to rank by request volume when
cost data is unavailable, count conversationState entries in chat
request logging, and align e2e coverage with the proxy settings route.