Skip to content

Release v0.9.3

Choose a tag to compare

@github-actions github-actions released this 16 Mar 15:49

Release v0.9.3

Installation

Install or upgrade LLxprt Code using npm:

npm install -g @vybestack/llxprt-code

Or use directly with npx:

npx @vybestack/llxprt-code

What's New

  • Added support for DeepSeek models with proper provider alias configuration
  • Added --key-name flag 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