Release v0.9.3
Release v0.9.3
Installation
Install or upgrade LLxprt Code using npm:
npm install -g @vybestack/llxprt-codeOr use directly with npx:
npx @vybestack/llxprt-codeWhat's New
- Added support for DeepSeek models with proper provider alias configuration
- Added
--key-nameflag to auth commands for specifying custom API key names in diagnostics - Added bucket failover for network/connection errors - automatically retries with a different credential when connection fails
- Fixed an issue where AI thinking would display twice when both reasoning_text and reasoning_summary_text were received from OpenAI
- Fixed unpaired surrogates in external web content causing crashes (sanitizes unicode in web content)
- Fixed function_call_output sending array instead of string in provider switch history
- Fixed Gemini API calls by removing duplicate /v1beta from base URL path
- Masked API keys in diagnostics auth settings to prevent sensitive data exposure
- Improved scoped OAuth session handling - better state isolation between different auth scopes
- Improved session bucket management during logout - clears all buckets including scoped ones
- Improved profile auth lookups - prefer current profile buckets over stale fallback session state
- Improved Core Memory integration with ContextManager when JIT is enabled
Thanks
Huge thanks to the following contributors for their pull requests in this release:
All Changes
- chore(release): bump version to 0.9.3 (6485690)
- Merge remote-tracking branch 'origin/main' into release/v0.9.0 (4799187)
- Merge pull request #1731 from vybestack/issue1729 fixes #1729 (49ddce5)
- test: fix test name, add pause_turn and refusal stop_reason coverage (0d83926)
- fix: address CodeRabbit feedback — concat multi-block text, complete stop_reason mapping (271a9e6)
- fix(anthropic): prevent thinking-only responses from silently ending the turn (Fixes #1729) (8a0e755)
- Merge pull request #1725 from vybestack/issue1724 (9a75a25)
- fix(test): adjust anthropicCtor assertion to accommodate zai alias (9aa93eb)
- refactor: address CodeRabbit review feedback (bf6c177)
- fix(zai.config): use anthropic base provider with correct endpoint and model (abe0828)
- fix: add chutes-ai alias support and create zai.config provider alias (2a86d96)
- refactor: address CodeRabbit review feedback (08e471e)
- fix(stats): detect API-key providers by name and config for alias-loaded providers (dc875fc)
- Merge pull request #1720 from vybestack/issue1718_1719 (63cd657)
- fix: prefer current profile buckets over stale fallback session state (4a54c1f)
- fix: clear all buckets during global logout (40c5b12)
- fix: preserve explicit and single-bucket oauth lookups (c89354a)
- fix: narrow provider session bucket clears (f64c2f1)
- fix: fall back to unscoped foreground session buckets (12f4be1)
- fix: guard scoped failover metadata access (9cd22d7)
- fix: scope oauth rechecks and handler reuse (8e7a7ae)
- fix: scope failover handlers to auth requests (0db73d6)
- fix: clear scoped session buckets on logout (00ad062)
- fix: fail explicit scoped profile auth lookups (461de67)
- fix: use scoped session buckets for profile actions (831f2c9)
- fix: preserve scoped oauth session state (f38ad2d)
- fix: isolate subagent auth state (Fixes #1718, Fixes #1719) (05e6b82)
- Merge pull request #1716 from vybestack/20260309dependabot (1f25c47)
- fix: update transitive dependencies for security vulnerabilities (1b49f72)
- Merge pull request #1714 from vybestack/issue1712 fixes #1712 (0c8d88a)
- test: use exact equality for Config.getCoreMemory delegation test (dbb1ad2)
- fix: preserve empty-string core memory state from ContextManager (caf886d)
- fix: Config.getCoreMemory() now delegates to ContextManager when JIT is enabled (5506905)
- fix: add loadCoreMemory to all memoryDiscovery mocks in test files (29c3b9c)
- Merge pull request #1706 from vybestack/issue_1132_1647 fixes #1132 fixes #1647 (a565483)
- fix: assert exact core memory ordering instead of sorting both sides (e3ae4e0)
- fix: address CodeRabbit review - static imports and precise assertion (da06548)
- fix: silence pgrep noise (#1132) and fix ENOENT rejection storm (#1647) (40c72c7)
- Merge pull request #1713 from vybestack/fix/docs-auth-enable-1708 (8859128)
- Merge pull request #1711 from vybestack/fix/1702-bucket-failover-connection-error fixed #1702 (2ac2bbb)
- fix: JIT context discovers .llxprt/ subdirectory and integrates core memory into ContextManager (6b2dd9e)
- docs: clarify /auth enable vs /auth login behavior (Fixes #1708) (f58d414)
- test: add AllBucketsExhaustedError test for network error exhaustion (15366bc)
- fix(retry): add bucket failover for connection/network errors (Fixes #1702) (f349f40)
- Merge pull request #1704 from vybestack/issue1703 (Fixes #1703) (78c500c)
- Merge pull request #1692 from e2720pjk/issue1409-v2 (49643d7)
- fix(openai): set hasEmittedVisibleThinking in output_item.done path (bbb3350)
- fix(openai): prevent duplicate thinking display when both reasoning_text and reasoning_summary_text arrive (fixes #1703) (baca8af)
- Merge pull request #1701 from vybestack/fix/1698-unpaired-surrogates-crash (5332471)
- Add config-backed test for unicode sanitization path (978f99d)
- refactor: separate Kitty protocol disable methods (097a96c)
- Also sanitize payload.error for unpaired surrogates (50f3999)
- Sanitize unpaired surrogates in external web content (Fixes #1698) (92d29cf)
- Merge pull request #1697 from vybestack/issue1543_1689 (8c018bb)
- Merge pull request #1696 from vybestack/fix/1695-key-name-not-in-help (b2bd112)
- Add deepseek to global test mock for consistency (4a6c7b7)
- Add tests for updated default models and deepseek alias (35b9ee1)
- Update default models for provider aliases and demote AppContainer log (Fixes #1543, Fixes #1689) (734134f)
- Register --key-name in yargs and add to auth hint text (Fixes #1695) (ed09d0d)
- Merge pull request #1694 from vybestack/fix/1690-auth-key-name-not-masked-in-diagnostics (2f26019)
- Merge pull request #1693 from vybestack/fix/1691-gemini-api-key-double-v1beta (fed709b)
- fix: prettier formatting for diagnostics push lines (d015a88)
- Also mask apiKey/api-key in diagnostics and centralize sensitive key handling (d923953)
- Only mask actual secrets in diagnostics auth settings (Fixes #1690) (a19df15)
- Remove /v1beta from gemini base-url to fix double path (Fixes #1691) (dc78805)
- fix(ui): restore robust synchronous terminal protocol cleanup on exit (8e8a02e)
- Merge pull request #1687 from vybestack/fix/1683-provider-switch-history-error (ed3e666)
- Fix function_call_output sending array instead of string (Fixes #1683) (9ff5c46)
Full Changelog: v0.9.2...v0.9.3