Skip to content

Release v0.7.0

Choose a tag to compare

@github-actions github-actions released this 19 Dec 02:11

Release v0.7.0

Installation

Install or upgrade LLxprt Code using npm:

npm install -g @vybestack/llxprt-code

Or use directly with npx:

npx @vybestack/llxprt-code

The Bottom Line: 297 commits of pure feature density. If you've ever hit a rate limit, run out of API quota mid-task, or struggled with SSH-based OAuth flows - this release transforms your experience. The multi-account failover alone is a game-changer for power users.


Headlines (The Big Stuff)

Multi-Account OAuth with Automatic Load Balancing & Failover

The crown jewel of 0.7.0. Authenticate multiple accounts per provider (e.g., claude-work, claude-personal, claude-backup) and LLxprt automatically switches between them when you hit rate limits. No more downtime when one account gets throttled - it seamlessly fails over to your next authenticated account. Works across Claude, OpenAI, Gemini, and all OAuth-supported providers.

OpenAI OAuth Support (Browser & Browserless)

Full OAuth integration for OpenAI (Codex). Works both in regular browser-based flows AND in SSH sessions/headless environments via device authorization - you get a code in your terminal that you can enter at https://auth.openai.com/codex/device from any device with a browser. No more API key management. (note that 5.2-codex came out right after the release so it isn't in the menu but if you type /model gpt-5.2-codex or start with llxprt --provider codex --model 5.2-codex then it works just fine)

Claude Opus 4.5 & Sonnet 4.5 Support

Native support for Anthropic's latest models including Claude Opus 4.5 and Sonnet 4.5 with full OAuth integration.

Advanced Reasoning Model Support

  • Gemini 3 Pro Preview - full thinking block support with proper multi-turn too l calling
  • Kimi K2-thinking - complete reasoning model support with proper tool call handling
  • GPT 5.2 and GPT 5.1-codex-max reasoning models with streaming diagnostics
  • All reasoning models that support display thinking blocks show <think> blocks showing the model's internal reasoning process if you /set reasoning.includeInResponse true

Prompt Caching Support & Optimization

Added full prompt caching support for both Anthropic and OpenAI providers with cache hit/miss metrics and cost savings tracking. Improved cache hit rates through optimized prompt construction settings (include-folder-structure, enable-tool-prompts, and configurable cache TTL). See your token savings and estimated cost savings in real-time.

Finally Fixed the Terminal Scrollback Spam

Completely rewrote the terminal UI rendering to eliminate the infamous scrollback spam/flicker that would fill your terminal buffer with repeated output during long sessions. Your terminal now stays clean and stable no matter how long you run or how many tools the model calls.

Opening Acts (Really Cool Stuff)

Kimi AI Provider Support

Native support for Kimi AI including their k2-thinking reasoning models with proper API key authentication. Full integration with the load balancing system.

OpenAI Vercel AI SDK Provider

Alternative OpenAI-compatible provider using Vercel's AI SDK. Experimental option that may become the default if it proves more stable/compatible than our current implementation. Supports reasoning models and various OpenAI-compatible gateways.

Project-Specific Memory

Use /memory add "fact" --scope project to save context specific to your current workspace, separate from your global memory.

Smarter Stream Recovery

Automatic retry with exponential backoff when API streams fail or terminate unexpectedly. Much more reliable under spotty network conditions.

Honorable Mentions

Better Command Autocomplete with Fuzzy Matching

Improved autocomplete for /set, /profile, and /auth commands with fuzzy matching support, including bucket suggestions for multi-account setups.

Universal Cache Metrics

See prompt cache hit/miss stats across all OpenAI-compatible providers, not just first-party APIs. Track your token savings and estimated cost reductions.

Subagent Output Now Readable

Fixed subagent/task output to display properly across multiple lines instead of overwriting itself on one line.

Security Patches

Fixed multiple security vulnerabilities including HMAC signature verification and DNS rebinding protection in the MCP integration.

Better Remote Deployment

Fixed various issues when running over SSH or in cloud environments (logo rendering, OAuth flows, etc.).

Context Dumping

New /dumpcontext command to export your full conversation context in native SDK formats for debugging or external analysis.

What's New

  • Added OpenAI reasoning model support with tool call ID tracking and provider-specific schema converters
  • Implemented OAuth authentication for Codex provider with TUI approval dialog and TTY fallback
  • Introduced load balancing profiles with round-robin support, failover policies, and circuit breaker
  • Added full Kimi K2 thinking support with new tool format detection and proper tool ID normalization
  • Implemented drag-select copy with mouse tracking for improved text selection
  • Added OAuth token display to diagnostics command for better auth debugging
  • Introduced /dumpcontext command for debugging context with schema-based tab completion
  • Enhanced thinking/reasoning display with improved styling and proper spacing between blocks
  • Added project-level memory option with positional scope arguments
  • Implemented prompt caching optimization settings for better performance
  • Extended OAuth authentication to Gemini and Qwen providers
  • Fixed OAuth logout bucket cleanup and improved 429 rate limiting handling
  • Enhanced OpenAIResponsesProvider retry logic for terminated streams
  • Fixed clipboard reliability issue with streaming responses
  • Added configurable witty phrase style options for loading screens
  • Fixed thinking block dim styling issue for better visibility
  • Resolved race condition in ModifyWithEditor by tracking stale correlation IDs
  • Improved memory leak in string width cache
  • Fixed scrolling behavior in old UI with ScrollableList implementation
  • Made mouse events enabled by default for better user experience
  • Preserved reasoning settings when switching providers mid-session
  • Added bucket failover logic with advanced metrics and timeout handling
  • Fixed OpenAIResponsesProvider retry on terminated streams
  • Added support for reasoning.effort xhigh mode
  • Improved OAuth URL handling with copyable links and mouse toggle
  • Fixed Ctrl+\ mouse toggle reliability for better interaction
  • Added comprehensive bucket autocomplete to /profile save model command
  • Implemented multi-bucket authentication flow with bucket management
  • Fixed theme violations and incorrect URLs in multiple commands (/bug, /stats, /editor, /mcp)
  • Added deep path completion for nested schema arguments
  • Implemented fuzzy filtering for command completions
  • Enhanced cache metrics for OpenAI-compatible providers
  • Fixed synthetic API duplicate content handling in streaming
  • Improved OpenAI streaming to emit whitespace-only text chunks
  • Enhanced token storage to return empty Map on missing token file
  • Added retry support for undici 'terminated' errors
  • Extracted Kimi K2 tool calls from reasoning_content to prevent token leaks
  • Set sensible defaults for Anthropic OAuth subscription mode
  • Fixed file-based token comparison with hash-based tracking
  • Resolved streaming double-draining of queued prompts issue
  • Fixed subscription mode initialization for Anthropic OAuth
  • Added new OpenAIResponsesProvider integration for Codex mode
  • Enhanced OAuth code submission support for multiple providers
  • Improved rate limit tracking and error handling in streaming mode
  • Fixed provider alias defaults for Qwen
  • Resolved MCP tool filtering to prevent spurious warnings
  • Added universal cache metrics display for providers
  • Fixed context limit to 262144 for Codex provider
  • Enhanced load balancer with protected settings and auth resolution
  • Added project-level memory with global and project scope options
  • Implemented drag-select copy with mouse tracking
  • Fixed scrolling issues in old UI with new primitives
  • Improved terminal keyboard protocol parsing
  • Added witty phrase styling options for loading screens
  • Enhanced Windows compatibility with cross-platform temp directories
  • Fixed multiple URL and theme violations across commands

Thanks

Huge thanks to the following contributors for their pull requests in this release:

  • @app/github-actions (LLxprt Luther)
  • @e2720pjk

All Changes

  • chore(release): v0.7.0 (d44dd95)
  • Fix OAuth logout bucket cleanup + 429 bucket failover (fixes #192) (#900) (3619c58)
  • Fix thinking block dim styling (issue #829) (#899) (a044aec)
  • fix: enforce tool output ephemerals across providers (and remove dead polaris textual replay) (#896) (0b898a3)
  • fix: isolate subagent provider state (#897) (0453210)
  • Merge pull request #892 from vybestack/issue884_885 fixes #884 and #885 (a45c7d0)
  • fix: resolve /set streaming boolean TypeError and improve clipboard reliability (eca6ea8)
  • Merge pull request #891 from vybestack/issue890 (472c013)
  • fix: preserve reasoning settings when switching providers mid-session (a83edbb)
  • Merge pull request #886 from vybestack/issue878 (47baadc)
  • Merge branch 'main' into issue878 (034317e)
  • Merge pull request #888 from vybestack/issue887 (577691c)
  • revert: remove VITEST_MAX_THREADS=1 thread limiting (d108550)
  • fix(oauth2): prevent readline fallback when Ink UI hook available (0734840)
  • Merge pull request #874 from vybestack/issue520 (1cb3197)
  • Merge pull request #871 from vybestack/issue868 fixes #868 (9df376a)
  • Merge pull request #872 from vybestack/issue862 fixes #862 (62507df)
  • Fix bug report template /about instructions (e94817b)
  • Merge branch 'main' into issue868 (8d041eb)
  • fix(ui): avoid double-draining queued prompts (#862) (67c69f8)
  • Improve Responses stream retry test (30e991f)
  • Merge pull request #870 from vybestack/issue866 (5589616)
  • Fix OpenAIResponsesProvider retry on terminated streams (#868) (c00886f)
  • feat: support reasoning.effort xhigh (#866) (54833e7)
  • Merge pull request #869 from vybestack/issue861 (ed17851)
  • feat(ui): drag-select copy with mouse tracking (fixes #861) (e2096cb)
  • Merge pull request #867 from vybestack/issue856 (9b8eadb)
  • Merge pull request #865 from vybestack/issue857 (fe2c3d8)
  • Fix provider-specific OAuth callback paths (5555599)
  • Merge pull request #863 from vybestack/issue855 (cd7d761)
  • Merge pull request #860 from vybestack/issue853 (7621613)
  • Fix codex context limit to 262144 (9755195)
  • Merge pull request #858 from vybestack/issue839_840_841 (a04d713)
  • test: restore fetch + cleanups (abb6c4a)
  • chore: format README (7d5b109)
  • chore(ui): reuse ESC constant for OSC-8 links (70177ce)
  • openai: dedupe invocation header merge (c745c5b)
  • Update README.md (a300e7e)
  • fix(ui): parse Ctrl+\ under kitty protocol (95a9873)
  • fix(codex): synthesize cancelled tool outputs (#855) (a768aa5)
  • fix(ui): make Ctrl+\ mouse toggle reliable (70f8a42)
  • fix(ui): restore OAuth clickable links (659973f)
  • chore: format kimi UA + header fixes (3a78c03)
  • Fix: send user-agent/custom headers to OpenAI-compatible gateways (4d4e459)
  • Fix build: import providerAliases for alias default model (68e14f8)
  • Fix kimi provider alias bootstrap + user-agent set (89e3e21)
  • fix(ui): make OAuth URLs copyable; add /mouse toggle (5a7da81)
  • Merge pull request #850 from vybestack/issue363 (bd59fd6)
  • Merge branch 'main' into issue363 (da3e72b)
  • Merge pull request #849 from vybestack/issue833 (4b36107)
  • Merge branch 'main' into issue833 (b854eab)
  • Merge pull request #845 from vybestack/fix-oldui (5dde73e)
  • Format trusted auto-label workflow (39b9088)
  • Auto-label trusted contributors for E2E (fixes #363) (d29f9a1)
  • config: default enableMouseEvents to true (776eab6)
  • test: relax git-stats disabled overhead assertion (6339684)
  • Address CodeRabbit nitpicks (VirtualizedList, mouse filtering, harness) (d459d34)
  • test(core): remove flaky timing assertion (fixes #833) (72dae28)
  • Merge remote-tracking branch 'origin/main' into fix-oldui (345b0e4)
  • Merge pull request #846 from vybestack/issue844 (f2fc3dd)
  • Address CodeRabbit review items (af2747a)
  • Make LRU eviction guard explicit (4a21dc7)
  • Align cache size test with exported constant (948ce52)
  • Fix old UI scroll jitter from loading indicator wrap (2d64b6e)
  • Fix memory leak in string width cache (#844) (568b008)
  • fix(oldui): stabilize scrolling, cancel, and mouse (eb51d76)
  • fix(oldui): make /clear safe in alt buffer (2b823f7)
  • fix(oldui): fix scroll gap + mouse scroll (4e51be5)
  • Merge pull request #838 from vybestack/fix/set-command-test-failure (d0c0b0e)
  • Remove Kimi k2-thinking instructions until the y are right (880cec7)
  • fix(test): update setCommand test expectation for unset option hint (05ffe22)
  • Merge pull request #837 from vybestack/issue818 fixes #818 (7c0787b)
  • Add Kimi k2-thinking model configuration to README (2167eef)
  • fix(cli): use custom descriptions for /set command options (ffe88f2)
  • Merge pull request #835 from vybestack/issue834 (e57a54e)
  • feat(gemini): add gemini-3-pro-preview to oauth model list (5027754)
  • Merge pull request #832 from vybestack/issue831 fixes #831 (b67398a)
  • Update packages/cli/src/auth/codex-oauth-provider.ts (81fb9f3)
  • fix(auth): additional CodeRabbit feedback (54e7306)
  • fix(auth): address CodeRabbit review feedback (49556f3)
  • feat(auth): implement browserless OAuth device flow for Codex (099eb09)
  • docs: record P06-P08 oldui scrollback fix (fdea0b8)
  • test(oldui): assert no scrollback growth in tmux (537e86c)
  • fix(oldui): use ScrollableList main content (b7267b8)
  • docs: record P05 scroll primitives (4aca115)
  • feat(ui): add scrollable list primitives (19bd218)
  • docs: record P04 ink alignment (9111c95)
  • refactor(ui): align Ink render options and fork (cff2dac)
  • docs: record P03 oldui scrollback gate (cd4ae38)
  • test: add oldui tmux scrollback regression gate (1586142)
  • docs: add legacy Ink UI scrollback refactor plan (cf55471)
  • Add LLM scrollback baseline scripts (bc0e86f)
  • Merge pull request #830 from vybestack/issue825 (0cd6fc8)
  • test: update buildResponsesRequest tests to remove toolu_ format testing (8582d26)
  • style: fix formatting in toolIdNormalization.test.ts (a9b2024)
  • test: limit vitest threads for workspace runs (b511b6d)
  • old ui: add scrollback baseline and assert (27a93c7)
  • refactor: simplify toolIdNormalization to only handle hist_tool_ format (881ec26)
  • fix: make normalizeToOpenAIToolId deterministic (critical CodeRabbit fix) (d914f1f)
  • refactor: address CodeRabbit review feedback (7b8b2a1)
  • old ui: document tmux harness and add macros (e475733)
  • fix: remove unused imports from test file (a518852)
  • fix: correct import path for IContent types (9be7738)
  • fix(openai): normalize tool IDs to OpenAI format (call_XXX) in Responses API (2e53221)
  • Merge pull request #823 from vybestack/issue821 (6bcf96e)
  • old ui: make tmux harness scriptable (b02ca8a)
  • fix(ui): satisfy bun typecheck (b5db29f)
  • old ui: add tmux harness and findings for scrollback (308ad70)
  • fix(ui): make HeaderBar logo path portable (5316c29)
  • fix(HeaderBar): improve logo path resolution for remote deployments (05866a8)
  • Merge pull request #820 from vybestack/issues651_652_653_684_742 (4c453af)
  • fix: update errorParsing tests to match new docs URL messaging (b32b2f5)
  • fix: Theme violations and incorrect URLs in /bug, /stats, /editor, /mcp commands (e082b6f)
  • Merge pull request #819 from vybestack/issue816 (66bf0bc)
  • ci: skip image harness on CI unless forced (#816) (ef63c24)
  • ci: harden image harness for release (#816) (f1c0248)
  • Merge pull request #815 from vybestack/issue813 (d559983)
  • Merge pull request #814 from vybestack/issue812 (6f0e331)
  • fix: Add retry/backoff to GeminiProvider and OpenAIResponsesProvider for #813 (2401c52)
  • fix: Pin release workflow to ubuntu-22.04 for sharp compatibility #812 (17f82d6)
  • Merge pull request #811 from vybestack/issue810 issue #810 (7fc6b0a)
  • fix: Use relative times in diagnosticsCommand.bucket test for #810 (fee85e5)
  • Merge branch 'main' into issue810 (3b1031d)
  • Merge pull request #807 from vybestack/issue686 (8eff8d8)
  • fix: Add Bun runtime to release workflow for #810 (95efccf)
  • Fix bucket failover bug: rebuild SDK client after failover - fixes #686 (40afc70)
  • Merge pull request #798 from vybestack/issue160 (49fdc00)
  • Merge pull request #804 from vybestack/20251211nuifixes (da9fc17)
  • Remove RULES-violating bucket failover tests - addresses #686 (b39af10)
  • refactor: Remove tests that violate RULES.md guidelines for #160 (75400ae)
  • Fix bucket failover test timeouts - addresses #686 (77e1878)
  • Stabilize latency metrics test (8c11581)
  • test: Fix failing Codex OAuth tests for #160 (5ee178c)
  • Fix bucket failover test mocking issues - addresses #686 (fe03a97)
  • Merge branch 'main' into 20251211nuifixes (d558c08)
  • chore: Fix prettier formatting and lint errors for #160 (8ae890b)
  • Integrate bucket failover for AnthropicProvider and OpenAIProvider - fixes #686 (9b27e6b)
  • Merge branch 'main' into issue160 (f270869)
  • Merge pull request #806 from vybestack/issue778 closes #778 (9371597)
  • fix: Codex API compatibility and CodeRabbit review fixes for #160 (b919199)
  • Add user documentation for profiles, load balancing, and OAuth buckets - fixes #778 (07ce503)
  • Merge pull request #800 from vybestack/luther-issue703 (2ea7012)
  • fix: Add clickable+pastable URL display for Codex OAuth, fix shellcheck CI for #160 (ed26907)
  • merge: Resolve conflicts merging main into issue160 (cbc4a52)
  • Fix UI lint + shellcheck for image harness (59609ae)
  • fix: Add theme=dark param to Codex OAuth URL for #160 (e3f5060)
  • Merge pull request #801 from vybestack/issue490 (7f7c435)
  • merge: main into issue160 (f7ec343)
  • feat: Implement Codex model listing with hardcoded fallback for #160 (512da98)
  • Fix Atom One user message colors (7787555)
  • Fix CI test failures for OAuth bucket changes - fixes #490 (97c77f6)
  • Merge pull request #802 from vybestack/issue770 fixes #770 (aab8577)
  • Merge remote-tracking branch 'origin/main' into 20251211nuifixes (7b7b8cf)
  • Fix experimental UI image layout (81908c1)
  • Fix CodeRabbit comments and implement bucket failover in retry logic - fixes #490 (b07c989)
  • Fix keytar bundling and fallback for MCP OAuth (#770) (1ce613b)
  • merge: Resolve conflict with main branch - addresses #490 (2380a1b)
  • feat(auth): TUI approval dialog and TTY fallback for bucket auth - fixes #490 (0e74e20)
  • Merge pull request #789 from vybestack/luther-issue502-20251213181803 (4e86064)
  • docs: update quick reference providers (f581c24)
  • fix: Prevent Codex OAuth PKCE verifier overwrite from concurrent flows (2aa544c)
  • fix: Correct OAuth URL to match shell-scripts/codex-oauth.sh (681904c)
  • refactor: Make supportsOAuth() check baseURL directly (f02ca7b)
  • fix: Pass supportsOAuth in config to fix constructor timing issue (ffab8f2)
  • Merge pull request #796 from vybestack/issue780 fixes #780 - now you can use /provider qwenvercel (a3f3c40)
  • fix: Use getAuthTokenForPrompt() to trigger OAuth flow, remove bogus fallback (a480a90)
  • Luther: address #703 (a06192b)
  • Merge pull request #799 from vybestack/luther-issue606-20251214062040 (5aaa8f9)
  • Luther: address #606 (8cf419f)
  • fix: Wire OAuth into OpenAIResponsesProvider for Codex mode (e8fd63e)
  • fix: Add codex to /auth menu and register OAuth provider at startup (04d35c2)
  • Fix: harden Qwen URL detection + alias ephemerals (3483215)
  • fix: Register openai-responses provider unconditionally and support it in aliases (9bb112a)
  • feat: Complete Codex OAuth implementation - Phase 5 & 6 for #160 (96a5a66)
  • Implement Phase 4 of issue #160: Dynamic Model Fetching for Codex (5ff329d)
  • Fix: apply provider alias defaults for Qwen (bc3a802)
  • feat(auth): Integrate MultiBucketAuthenticator into lazy auth flow - addresses #490 (472abbe)
  • feat(profile): Add bucket autocomplete to /profile save model - addresses #490 (4240097)
  • feat(auth): Add autocomplete suggestions to /auth command - addresses #490 (0e7a60f)
  • fix(tests): Fix failing tests after OAuth buckets implementation - addresses #490 (ec41a8c)
  • feat(integration): Phase 10 - OAuth buckets integration tests - addresses #490 (f3c47a2)
  • feat(auth): Phase 9 - Multi-bucket authentication flow - addresses #490 (f0aa8c9)
  • feat(diagnostics): Phase 8 - Diagnostics bucket enhancement - addresses #490 (d9b5d87)
  • feat: Add Codex OAuth research scripts for #160 (3339a54)
  • Fix: Qwen chat role compatibility for openaivercel (1bf7810)
  • feat(stats): Phase 7 - Stats buckets subcommand - addresses #490 (abdff84)
  • Fix: Qwen OAuth for OpenAIVercelProvider (23bdda2)
  • feat(runtime): Phase 6 - Bucket failover logic - addresses #490 (8271cf5)
  • feat(profile): Phase 5 - Profile command bucket extensions - addresses #490 (dcc3329)
  • feat(auth): Phase 4 - Auth command bucket extensions - addresses #490 (a905e4c)
  • feat(auth): Phase 3 - OAuthBucketManager for bucket operations - addresses #490 (d9c6dbd)
  • feat(types): Phase 2 - Profile schema extension with AuthConfig - addresses #490 (d6da857)
  • feat(auth): Phase 1 - Core bucket storage with multi-bucket support - addresses #490 (2fe07de)
  • Luther: address #502 (3e60757)
  • Merge pull request #782 from vybestack/issue489 (7c8736a)
  • Merge pull request #787 from vybestack/issue784 (7b30a93)
  • fix(loadbalancer): address CodeRabbit issues and UI improvements for #782 (6042319)
  • Fix Luther PR creation to work with bots - fixes #784 (04c350f)
  • Merge pull request #785 from vybestack/luther-issue759 (b4d167b)
  • fix(shell): resolve SC2312 shellcheck warnings in acceptance test (1a5764c)
  • fix(loadbalancer): address CodeRabbit review and complete Phase 9 acceptance test (0c379f6)
  • Merge pull request #783 from vybestack/luther-issue652 (4e16922)
  • Luther: address #759 (9e3e829)
  • feat(loadbalancer): implement advanced failover with metrics, timeouts, and circuit breaker (a5582b8)
  • Luther: address #652 (dd0db9c)
  • Merge pull request #779 from vybestack/issue488 issue #488 (e273961)
  • fix(profileCommand): add path separator validation for load balancer profile names addresses #488 (31a05e0)
  • fix(profileCommand): update fallback error message to include policy parameter addresses #488 (2690828)
  • feat(loadbalancer): implement failover policy for load balancing fixes #488 (bfc77b1)
  • Merge pull request #777 from vybestack/issue776 (7242118)
  • fix(experimental-ui): avoid stdin contention (#776) (23f6972)
  • Merge pull request #772 from vybestack/issue486 closes #486 (dd1b5bf)
  • Merge pull request #774 from vybestack/issue773 fixes #773 (5967343)
  • fix(#486): Fix authToken format in OpenAIVercelProvider reasoning tests (72f8223)
  • fix(experimental-ui): resolve UI export path and dev cwd (#773) (532338e)
  • fix(#486): Fix 25 failing tests - update mocks and remove legacy LB tests (f31be78)
  • fix(experimental-ui): robust args and signal forwarding (#773) (663fcdb)
  • fix(#486): Format profileApplication.lb.test.ts (e4e0494)
  • fix(#486): Remove defensive coding and DRY up test wrapper pattern (4359e28)
  • Merge origin/main into issue486 (8cb02ee)
  • fix(#486): Address CodeRabbit review - security, dead code, and clarity (983ef8b)
  • fix(experimental-ui): spawn bun for UI (#773) (c002cf1)
  • feat(#486): Complete load balancing profiles with protected settings and auth resolution (7fbbd12)
  • Release: publish llxprt-ui as public (5750c51)
  • Fix release workflow UI publish (f4bf699)
  • Merge pull request #767 from vybestack/issue762 #implements #762 (f9e1b74)
  • Increase test timeouts for Windows file I/O operations fixes #762 (d83d3a7)
  • Optimize Windows IDE process detection with single PowerShell call fixes #762 (9de113a)
  • Skip slow PowerShell process tree traversal in Windows CI fixes #762 (87ce501)
  • Fix Windows test failures by using cross-platform temp directories fixes #762 (54270fa)
  • Increase test timeout for slow provider initialization on Windows fixes #762 (10f44d2)
  • feat(#486): Implement load balancing profiles with round-robin support (caafe10)
  • Use vitest instead of bun test for UI tests to get happy-dom environment fixes #762 (941aa77)
  • Revert verbatimModuleSyntax that broke test module resolution fixes #762 (266e67e)
  • Merge main into issue762: Get latest fixes for test compatibility fixes #762 (ce62b6b)
  • Exclude bun.lock from all git diff checks in CI fixes #762 (398f3fd)
  • Exclude bun.lock from git diff check in CI fixes #762 (d5e500f)
  • Exclude bun.lock from prettier formatting fixes #762 (6990fb8)
  • Fix setup-bun action SHA to correct v2.0.2 hash fixes #762 (b1b0f7c)
  • Separate UI package dependency chain from npm to bun fixes #762 (c6465ab)
  • Add missing sharp platform deps to lockfile for npm ci compatibility fixes #762 (3594474)
  • Revert CI workflows to npm ci with fully populated lockfile fixes #762 (78e2d3a)
  • Use npm install instead of npm ci in all CI workflows fixes #762 (40d3a58)
  • Fix lint job to also use --omit=optional for npm ci fixes #762 (abe136c)
  • Use --omit=optional for npm ci in all CI workflows fixes #762 (7669716)
  • Merge pull request #768 from vybestack/issue655 fixes #768 (cc1e32c)
  • Merge pull request #765 from vybestack/issue516 implements #516 (02a41e0)
  • Mark UI and opentui packages as external in esbuild config fixes #762 (3bbcbf4)
  • fix(#516): Address CodeRabbit review comments for memoryTool (9252e48)
  • Remove incomplete optional dependency stubs from package-lock.json fixes #762 (3496df5)
  • Fix check-lockfile.js to skip platform-specific optional deps fixes #762 (6def926)
  • Update package-lock.json with UI package dependencies fixes #762 (078de8f)
  • Fix ThinkingMessage to place italic tag inside text component fixes #762 (96cc4f9)
  • fix(#655): Handle race condition after ModifyWithEditor by tracking stale correlation IDs (71d1d6d)
  • Fix StatusBar to use top-only border fixes #762 (63524a0)
  • Enable strict TypeScript and fix lint errors in UI package fixes #762 (691fc31)
  • fix(#516): Normalize fileName path for Windows test compatibility (7deb2e1)
  • Add resource/ to UI package .gitignore to prevent test output commits fixes #762 (dc7ce0b)
  • Remove accidentally committed test output files fixes #762 (9a567db)
  • Merge pull request #764 from vybestack/issue584 fixes #584 (e1a6a2a)
  • Merge main into issue762: Add Mistral support and fix config test circular dependency fixes #762 (ad1c091)
  • fix(#516): Fix Windows test and modify-context path mismatch (e59019f)
  • fix(#584): Use cachedPipelineResult for tool call count in continuation logic (c68d586)
  • Enable strict TypeScript and fix lint errors in UI package fixes #762 (3db3ac2)
  • fix(#516): Rebrand memory section header to LLxprt Code (3f83327)
  • fix: Change /memory add to use positional scope argument addresses #516 (ca3bbad)
  • feat: Add project-level memory option closes #516 (d2c27bb)
  • Merge pull request #763 from vybestack/issue411 closes #411 (6d5cd70)
  • fix(#584): Address CodeRabbit review - continuation prompt semantics and missing headers (c5ca7a0)
  • Include packages/ui lint in root lint scripts fixes #762 (a3c6df8)
  • Fix SettingsService initialization in configSession to resolve UI test failures fixes #762 (4621501)
  • fix(#411): Prioritize dynamic completers over static options (a7eb501)
  • fix(#584): Address CodeRabbit review feedback for PR #764 (a3e9472)
  • Add llxprt-ui to npm release workflow fixes #762 (5d8d55e)
  • Integrate OpenTUI-based terminal UI (llxprt-code-ui) fixes #762 (d3dc6ec)
  • fix(#584): Auto-retry when models return tool calls without text (b87c045)
  • fix(#411): Add static options for modelparam deep path completion (135fe7a)
  • feat(#411): Add deep path completion for nested schema arguments (1a43105)
  • feat(#411): Add fuzzy filtering for command completions (82b8ebc)
  • Merge pull request #761 from vybestack/issue760 fixes #760 (134f192)
  • Add experimental UI package integration fixes #762 (d1b9038)
  • Merge branch 'main' into issue760 (baa332a)
  • Merge pull request #758 from vybestack/issue659 fixes #659 (f9ed7e5)
  • fix(openai-provider): Improve Mistral API compatibility for tool calls (dbc8d5c)
  • fix(#659): Extract submitOAuthCode to testable helper with proper tests (3324ddd)
  • Merge pull request #756 from vybestack/issue748 fixes #748 (f9e2856)
  • refactor: Consolidate OAuth code submission handler to eliminate duplication (a909279)
  • Merge pull request #757 from vybestack/issue618 fixes #618 (f0393a7)
  • fix(#748): Rewrite rate-limit throttling tests to avoid fake timer infinite loops (ad25368)
  • Merge branch 'main' into issue659 (6f3cd11)
  • Merge branch 'main' into issue618 (e49a462)
  • Merge pull request #755 from vybestack/issue741 closes #741 (d21abf9)
  • Merge branch 'main' into issue748 (ce901f5)
  • Merge branch 'main' into issue741 (5434cb7)
  • fix(#659): Add Gemini and Qwen OAuth code submission support (75fdf21)
  • fix(#618): Normalize subagent output to render on separate lines (10fcb90)
  • fix(profiles): persist and restore tool-format setting in profiles (23f251e)
  • Merge pull request #754 from vybestack/issue529 fixes #529 (28bf49c)
  • fix: Filter MCP tools from prompt resolution to prevent spurious warnings (60f361a)
  • fix(#529): Remove misleading cost savings, refactor tests (6796f20)
  • fix(#529): Address CodeRabbit review feedback (a065536)
  • fix(#529): Hide cache writes when provider doesn't report them (546eae7)
  • feat(#529): Add universal cache metrics for OpenAI-compatible providers (8657e36)
  • Merge pull request #753 from vybestack/issue751 (163306f)
  • fix(tests): Prevent LLM from bypassing replace test with write_file tool (40e8592)
  • Merge pull request #752 from vybestack/issue722 closes #722 (bf0ab20)
  • fix(#722): Address remaining CodeRabbit review feedback (56cbf45)
  • fix(#722): Fix providerRegistry.test.ts runtime context setup (12b4092)
  • fix(#722): Address CodeRabbit review feedback (8917b8e)
  • fix(#722): Add missing extractReasoningMiddleware mock to existing tests (3d85cdf)
  • feat(#722): Add thinking/reasoning support to OpenAIVercelProvider (3186574)
  • Merge pull request #750 from vybestack/issue749 closes #749 (634ae8c)
  • fix(#749): Extract Kimi K2 tool calls from reasoning_content and prevent token leaks (f274ab7)
  • Merge pull request #747 from vybestack/issue721 fixes #721 (16d3736)
  • fix(#721): Separate thinking from content events to prevent duplication (e92ad45)
  • Merge main into issue721 branch (eab1a90)
  • fix(#721): Emit whitespace-only text chunks in OpenAI streaming (2c333d2)
  • docs(#721): Clarify Synthetic API duplicate content handling (deef040)
  • Merge pull request #745 from vybestack/issue726 fixed #726 (0061bd6)
  • fix(#721): Preserve newlines after think tag removal in streaming output (fa5c219)
  • Merge pull request #746 from vybestack/issue681 closes #681 (356b40b)
  • fix(#726): Address CodeRabbit review feedback - extract duplicate code (bb670e3)
  • fix(#681): Add retry support for undici 'terminated' errors (64aa1e5)
  • fix(#726): Preserve spacing when thinking blocks appear between text chunks (855d08f)
  • Merge pull request #744 from vybestack/issue452 (abad02c)
  • Merge pull request #743 from vybestack/issue450 fixes #450 (3751844)
  • fix(#452): Address PR #744 review feedback - improve test coverage (305c974)
  • Merge branch 'main' into issue450 (063ad7f)
  • Merge pull request #740 from vybestack/issue181 (73eeffb)
  • merge: resolve conflicts with main for #450 (4251753)
  • fix(#450): address CodeRabbit review feedback and CI test failure (03d51cc)
  • fix(#181): Address CodeRabbit review feedback and remove mock theater tests (752810d)
  • feat(#452): Add OAuth token display to diagnostics command (c080021)
  • Merge pull request #739 from vybestack/issue731 closes #731 (c3d8178)
  • Merge pull request #737 from vybestack/issue734 fixed #734 (5cd7384)
  • docs(#450): add context dumping documentation with curl examples (22e511d)
  • feat(#450): add schema-based tab completion for /dumpcontext modes (fbe7039)
  • feat(#450): add autocomplete for /dumpcontext modes (3ae692d)
  • fix(#450): add dumpcontext to valid ephemeral keys in setCommand test (03575c8)
  • feat: implement /dumpcontext SDK integration for OpenAI and Gemini providers (#450) (b85eb37)
  • feat(#450): Implement /dumpcontext command for debugging context (fe5aa6e)
  • feat(#181): Set sensible defaults for Anthropic OAuth subscription mode (620ffbf)
  • fix(#731): Enable rate limit tracking and error handling in streaming mode (ea50f43)
  • Merge pull request #736 from vybestack/issue732 #732 (da275f6)
  • fix(#734): Address PR #737 code review feedback (63a69a9)
  • fix(#732): remove flaky mcp_server_cyclic_schema e2e test (81d79d2)
  • fix(#734): Replace timestamp-based file comparison with hash-based tracking (ea6c33f)
  • fix(#732): FileTokenStorage returns empty Map on missing token file (3cf4e3f)
  • Merge pull request #729 from vybestack/issue680 (eb21991)
  • fix(#680): Remove trailing blank line in AnthropicProvider.ts (b30f638)
  • Merge branch 'main' into issue680 (741c57b)
  • Merge pull request #733 from vybestack/20251206dependabot (20d052a)
  • fix(tests): address CodeRabbit review feedback on PR #733 (b6648ca)
  • fix(#680): Remove duplicate cacheSessionMetrics, fix cache-baseline-test.sh, remove useless test (cde6289)
  • Merge branch 'main' into 20251206dependabot (63e3002)
  • fix: update setCommand test to include new ephemeral settings (d27b801)
  • fix(lint): resolve vitest eslint-plugin 1.5.1 stricter rules fixes #19 #20 (2b4a947)
  • fix(lint): resolve vitest eslint-plugin 1.5.1 stricter rules fixes #19 #20 (1c0ffc4)
  • fix(security): resolve jws HMAC signature verification vulnerability fixes #19 #20 (ce7c314)
  • Merge branch 'main' into issue680 (50524ed)
  • Merge pull request #730 from vybestack/issue725 (a6190e7)
  • fix(security): resolve Dependabot alerts #19 #20 for jws vulnerability (e3f0e50)
  • fix: Address CodeRabbit PR #729 review issues (d8222c1)
  • Merge main into issue680 to resolve PR #729 conflicts (7cfebfe)
  • fix(test): improve robustness of flaky e2e replace test (#725) (2bb6433)
  • feat: Add prompt caching optimization settings (Phase 1) #680 (6f72dca)
  • Merge pull request #720 from vybestack/issue712 fixes #720 (43b97db)
  • fix(parser): collapse multiple newlines to single in cleaned content (3427cdb)
  • fix: address CodeRabbit review feedback for PR #720 (4be2326)
  • fix: sync package-lock.json version for vscode-ide-companion (9c755c2)
  • feat(thinking): Kimi K2 thinking support pass #2 (#712) (d115394)
  • feat(openai): integrate ToolIdStrategy for Kimi K2 tool ID format (49def03)
  • feat(cli): add kimi format to /toolformat command and settings types (dc0663d)
  • feat(openaivercel): add kimi format detection in OpenAIVercelProvider (378fa2b)
  • feat(openai): add kimi format detection in OpenAIProvider (69e4bcc)
  • feat(tools): add kimi format support in ToolFormatter (3d232f6)
  • feat(tools): add ToolIdStrategy module with kimi and standard strategies (7340473)
  • Merge pull request #718 from vybestack/issue595 closes #595 (e9f4ffb)
  • Merge pull request #716 from vybestack/issue715 Fixes #715 (30f097a)
  • fix(gemini): enable Gemini 3.x thinking blocks with correct ThinkingConfig #595 (94ef5b5)
  • Merge pull request #717 from e2720pjk/feat/witty-phrases-settings (a43e169)
  • feat: optimize phrase cycling with memoization (b852bdd)
  • feat: rebrand community phrases to whimsical and improve settings structure (c49744c)
  • refactor: extract WittyPhraseStyle type for better type safety (b9feb97)
  • feat: add configurable witty phrase style options for loading screens (bcf690e)
  • fix(version): bump to 0.7.0 and update sandboxImageUri #715 (e28d144)
  • Merge pull request #714 from vybestack/issue667 #667 (136770d)
  • fix: address CodeRabbit cleanup suggestions (#667) (5f1ccf0)
  • Merge pull request #711 from vybestack/issue694 fixed #694 (d3fd046)
  • fix: address CodeRabbit review feedback for PR #711 (6ed57c7)
  • fix(ui): improve thinking block display styling (f7767b6)
  • feat(anthropic): add extended thinking support for multi-turn conversations (6d8a06b)
  • Merge pull request #710 from vybestack/20251202openaifixes partially addresses #398, #693 (deee6df)
  • fix(test): exclude ThinkingBlockDisplay test from CI (6b97788)
  • fix: address CodeRabbit review feedback from PR #710 (d6575fa)
  • style: fix AnthropicProvider formatting for CI (b9e16ec)
  • feat(openai): add reasoning model support and provider-specific schema converters (7f2fb4f)
  • Merge remote-tracking branch 'origin/main' into 20251202openaifixes (bdea160)
  • Merge pull request #705 from e2720pjk/fix/security-vulnerabilities-mcp-sdk-body-parser (a37b2aa)
  • security: patch high and moderate severity vulnerabilities - Fix DNS rebinding protection in @modelcontextprotocol/sdk (High severity) - Resolve DoS vulnerability in body-parser URL encoding (Moderate severity) (74b1f8c)
  • Merge pull request #704 from vybestack/issue692real fixes #692 (44e0a88)
  • Ensure companion depends on tiktoken and guard wasm copy (#692) (d82a8ae)
  • fix(openai): add tool call ID tracking diagnostics for K2 streaming debug (af777bf)
  • feat(openai): add thinking/reasoning support and streaming diagnostics (44dd67c)
  • Fail build if tiktoken wasm missing (#692) (de47d01)
  • Package IDE companion wasm and add MCP probe (#692) (ef41f35)
  • Merge pull request #695 from vybestack/issue621 issue #621 (b119e39)
  • correct formatting (b57e256)
  • correct formatting (6e8c2c2)
  • Address remaining CodeRabbit feedback (fdfbea4)
  • Apply Prettier to NOTICES (b0a03cc)
  • Fix NOTICES formatting for Prettier (261022d)
  • Address OpenAIVercel review feedback and format notices (30deea5)
  • Add trailing newline to NOTICES (6a16083)
  • Update NOTICES for eventsource-parser bump (296ccde)
  • Tighten openaivercel types and test layout (ec2560b)
  • Merge remote-tracking branch 'origin/main' into issue621 (0ab8782)
  • Fix openaivercel tool result conversion (a2dce05)

Full Changelog: v0.6.2...v0.7.0