Releases: vybestack/llxprt-code
Release list
Release v0.10.0-nightly.260724.a20e30f14
Release v0.10.0-nightly.260724.a20e30f14
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 Kimi K3, GPT-5.6 Sol/Terra/Luna, Claude Sonnet 5, Claude Opus 4.8 (now default), claude-fable-5, and GLM catalog support across providers
- Added LiteLLM provider support for expanded model access
- Added configurable reasoning field name support for Ollama streaming
- Added /introspect slash command for runtime introspection
- Added support for V2 settings format migration
- Added semantic response outcome metadata for improved result handling
- Exposed tool listing and discovery via the Agent API
- Ported Zed integration to the Agent API with improved chat loop handling
- Bun-native launcher and runtime improvements: CLI now runs directly from TypeScript via Bun with no-compile launcher, self-exit guards, and Windows PTY/shell hardening
- Explicit provider selection is now required at startup to prevent accidental silent fallback
- Manual version selection is honored for nightly releases
- Subagent streaming text now accumulates correctly instead of replacing tokens
- Restored chat rendering with --continue now displays output properly instead of one token per line
- Windows fixes: launcher process resolution, shell guidance for quoted paths, CJK input preservation, ripgrep results, named-pipe credential proxy, and terminal hiding during OAuth
- OAuth and auth hardening: gated by base URL to prevent wrong-provider prompts, refreshed auth status after toggle, invalidated caches on 401/403, preserved Linux fallback paths, and eliminated per-keystroke keychain prompts in /key autocomplete
- Load-balancer and provider resilience: context accounting fixed, failover rotations reset, quota errors preserved across retries, provider identity kept coherent during startup, and context overflow recovery hardened
- MCP discovery is now non-fatal and no longer drops input during startup
- Compression and streaming stability: masked empty-summary errors no longer abort turns, Kimi K2 special buffering removed, idle timeouts increased and made configurable, stream watchdogs are provider-liveness aware, and whitespace-only subagent stream deltas are preserved
- OCR, eval, and notification hardening: nightly eval response extraction fixed, reporting hardened, provider budgeting and redaction improved, and notification writes made idempotent
- Security: home paths redacted in assignment-style tokens, ambiguous canonical registry matches fail closed, and Bun install scripts classified by trust
All Changes
- Fix nightly eval response extraction (Fixes #2651) (#2652) (a20e30f)
- Fix ACP/Zed: task tool crash + todo_pause loop-break (Closes #2653) (#2655) (a5be47a)
- Complete OS-standard path migration for OAuth and global state (Fixes #2606) (#2646) (a259657)
- Launch installed CLI directly with bundled Bun (Fixes #2603) (#2610) (5868dac)
- test(providers): tighten profile fallback regression coverage (#2636) (395efed)
- Prevent OAuth browser launch from hiding Windows terminals (#2632) (826a244)
- Harden OCR provider budgeting, redaction, and notification-write idempotency (Fixes #2576) (#2631) (83bd764)
- Stop per-keystroke keychain prompts in /key autocomplete (Fixes #2620) (#2622) (c28806b)
- Add Kimi K3 provider defaults and docs (Fixes #2613) (#2621) (7252612)
- Fix Windows launcher process resolution (#2609) (be8f36c)
- Make stream watchdogs provider-liveness aware (Fixes #2607) (#2612) (4819f04)
- Harden nightly eval reporting (Fixes #2605) (#2611) (2556249)
- Harden provider context overflow recovery (Fixes #2588) (#2598) (d58ee53)
- Add Windows Bun native-module nightly smoke (Fixes #2301) (#2596) (947c7d3)
- Unify session telemetry across provider attempts (Fixes #2585) (#2600) (abd16ea)
- Consolidate release guard regression coverage (Fixes #2597) (#2599) (d69bda6)
- Preserve whitespace-only subagent stream deltas (Fixes #2555) (#2591) (a1dd642)
- Use Bun-native development launcher (Fixes #2342) (#2594) (e3004a8)
- Keep guard tests responsive during release checks (Fixes #2584) (#2593) (2b418c1)
- Honor manual versions for nightly releases (Fixes #2589) (#2592) (cf296c4)
- Require explicit provider selection at startup (Fixes #2481) (#2583) (0d82e78)
- Harden subagent review follow-ups (Fixes #2472) (#2582) (8390626)
- Add Bun/Vitest compatibility shim for bun test runner (Fixes #2475) (#2484) (91e7462)
- Enforce the GenAI enclave boundary (Fixes #2352) (#2546) (2496e89)
- Preserve provider quota errors across retry timeouts (Fixes #2559) (#2568) (11328eb)
- Finish provider-neutral Gemini cleanup (#2573) (#2574) (30de44a)
- Merge pull request #2570 from vybestack/issue2537 (2056a55)
- Remove inherited Gemini names from neutral APIs (#2537) (f10865f)
- Raise unconfigured subagent turn fallback to 1000 (Fixes #2541) (#2566) (c0c27e8)
- Lower DEFAULT_TOKEN_LIMIT to 200K, add GLM catalog, consolidate resolution (Fixes #2527) (#2565) (62a89dc)
- good memory (c7b1b78)
- test: isolate all package tests from real user storage (fixes #2528) (#2545) (d7e6cb0)
- Keep Codex provider identity coherent during startup (Fixes #2544) (#2561) (bf4beab)
- Fix restored chat rendering one token per line with --continue (Fixes #2549) (#2558) (6a34605)
- Merge pull request #2543 from vybestack/issue5228 (a521510)
- Merge remote-tracking branch 'origin/main' into issue5228 (ac29484)
- Keep PowerShell parameter checks field-specific (7f38bc7)
- Make PowerShell schema tests wording-independent (d165445)
- Fix Windows shell guidance for quoted paths (#2538) (d3eefc8)
- fix: preserve CJK input and Windows ripgrep results (#2539) (0820185)
- Fix Windows shell guidance for quoted paths (fdd9502)
- Remove GenAI SDK coupling from leaf packages (Fixes #2351) (#2520) (646bac9)
- Make MCP discovery non-fatal and stop dropping input during startup (Fixes #2516) (#2521) (4cfe82b)
- Thin the CLI entry chain: runtime assembly behind createAgent, kill deep imports, shrink core import surface (Fixes #2378) (#2493) (c3ec9d3)
- refactor(providers): unify OpenAI schema converter and preserve dropped JSON-schema keywords (Fixes #2508) (#2514) (b475247)
- Make startup migration and profile loading resilient (Fixes #2476, Fixes #2477) (#2504) (07c96ca)
- Merge pull request #2515 from vybestack/issue2509 (e1a8c29)
- Merge pull request #2513 from vybestack/issue2505 (21cb698)
- Normalize core memory test paths (#2509) (049f779)
- Merge pull request #2440 from vybestack/issue2349 (d4d8837)
- Fix cross-platform test expectations (#2509) (b3576c8)
- fix: preserve valid Responses reasoning IDs (#2349) (056a7ae)
- fix(providers): trim reasoning field name and make resolveReasoningValue return undefined when unusable (f7a1043)
- Fix Windows test portability (#2509) (5b0a3ea)
- test(providers): use fixed timestamp in streaming test chunks (5cd89e2)
- fix(providers): add reasoning.fieldName support to classic openai provider (Fixes #2505) (6c68c98)
- Merge remote-tracking branch 'origin/main' into issue2349 (d74b84f)
- Merge remote-tracking branch 'origin/main' into issue2349 (1a2e0c1)
- Merge pull request #2507 from vybestack/issue2501 (e47e14a)
- Merge pull request #2503 from vybestack/issue2500 (f70c49d)
- test: align retry assertions with neutral content (#2349) (38a0028)
- fix: preserve neutral retry and AFC history semantics (#2349) (e000e61)
- test(agents): assert exact restored turn in ChatSessionFactory #2500 fold test (5e7ff49)
- fix(providers): preserve currentProfile across provider switches (Fixes #2501) (b8192a7)
- fix(core): preserve carried history across rebuilds when client not yet initialized (#2500) (dc1adcf)
- fix(agents): fold restored history into reused empty HistoryService (Fixes #2500) (b36150d)
- fix(ui): show effective model in profile-qualified response header (Fixes #2501) (de9f5f0)
- Merge remote-tracking branch 'origin/main' into issue2349 (27cbc7b)
- fix: harden neutral message boundaries after review (#2349) (d3d63da)
- Reset exhausted load-balancer failover rotations (Fixes #2492) (#2495) (0c99622)
- Add GPT-5.6 Sol, Terra, and Luna support (Fixes #2483) (#2497) (63b8855)
- feat(providers): support configurable reasoning field name for Ollama streaming (Fixes #2488) (#2491) (ddff241)
- fix(ui): accumulate subagent streaming text instead of replacing each token (Fixes #2008) (#2486) (ec14820)
- Eliminate inverted core→tools dependency and barrel over-import chain (Fixes #2417) (#2473) (a4e7175)
- feat(test): add Bun-backed root test orchestration entry point (Fixes #2463) (#2470) (ae7633d)
- fix(launcher): add self-exit guards to prevent orphaned shim processes on terminal/PTY death (Fixes #2468) (#2474) (4fca1a4)
- Fail loudly on unavailable profile provider; never save LB runtime as a standard profile (Fixes #2479, Fixes #2478) (#2480) (2d97afd)
- fix: exclude prototype keys from executor template property test (#2349) (f1f5eab)
- fix: expose placeholder model through core root (#2349) (2fbd53a)
- Isolate tmux harness from nested sessions (#2471) (87e133d)
- merge main into issue2349 and resolve neutral conflicts (cdf3c33)
- fix(agents): activate subagent providers via isolated runtime, restore LB failover, guard Null message (Fixes #2410) (#2415) (e0a0ee8)
- fix: keep empty merged content as human speaker (#2349) (12eb3ab)
- fix: preserve hook telemetry metadata (#2349) (4ca3fcf)
- fix: harden stream telemetry and validation paths (#2349) (a9deb44)
- fix: address additional OCR migration findings (#2349) (3bd1558)
- fix: address CodeRabbit migration comments (#2349) (6395d50)
- fix: address neutral migration review findings (#2349) (1322381)
- fix(agents): convert legacy Part-shaped arrays in toPartListUnion (#2...
Release v0.10.0-nightly.260723.a25965779
Release v0.10.0-nightly.260723.a25965779
Installation
Install or upgrade LLxprt Code using npm:
npm install -g @vybestack/llxprt-codeOr use directly with npx:
npx @vybestack/llxprt-codeWhat's New
- Add Kimi K3, GPT-5.6 variants, Claude Sonnet 5, Claude Fable 5, GLM models, LiteLLM provider, and Ollama Cloud/Makora aliases
- Update built-in provider model versions and defaults, including setting Anthropic's default to Claude Opus 4.8, lowering the default token limit to 200K, adding reasoning field name support for the classic OpenAI provider, and fixing token limits for dated snapshots
- Launch installed CLI directly with bundled Bun and introduce no-compile npm runtime with Bun relaunch support
- Migrate configuration and OAuth state to OS-standard platform paths (XDG on Linux, etc.)
- Make MCP server discovery non-blocking and non-fatal during startup
- Expose tool listing and discovery via the Agent API
- Add /introspect slash command
- Introduce Agent Skills: autonomous activation, /skills reload, CLI management, status bar integration, and tiered discovery
- Add extensions install/uninstall commands, settings info, and update notifications
- Introduce policy engine with granular shell allowlisting and unified shell security
- Add hooks core capabilities (tool input modification, STOP_EXECUTION) and hooks UI (visual indicators, security warnings)
- Add environment variable sanitization service and default folder trust to untrusted
- Stop per-keystroke keychain prompts in /key autocomplete
- Prevent OAuth browser launch from hiding Windows terminals
- Fix Windows launcher process resolution, shell guidance for quoted paths, CJK input preservation, and credential proxy transport
- Resolve Windows storage crashes and PTY resize crashes
- Preserve whitespace-only subagent stream deltas, fix subagent streaming text accumulation, and preserve streaming newlines in assistant output
- Make stream watchdogs provider-liveness aware, harden provider context overflow recovery, and make stream idle timeout configurable with a 10-minute default
- Retry transient connection errors instead of breaking the stream
- Stop masked compression errors from aborting turns and preserve the last user prompt during middle-out compression
- Activate subagent providers via isolated runtime; forward systemInstruction to all providers and gate cache_control for z.ai
- Inherit parent max turns for subagents and prevent crashes and hangs during subagent launch
- Reset exhausted load-balancer failover rotations and fix model identity and context accounting
- Fail loudly on unavailable profile providers and never save load-balancer runtime as a standard profile
- Gate Anthropic OAuth eligibility by base URL and preserve keyfile profile auth
- Harden secure-store and sibling encrypted file stores with machine-secret KDF
- Remove discontinued Qwen OAuth provider (Qwen is now API-key-only) and remove google_web_search/google_web_fetch tools
- Support JSON Schema draft 2020-12 for MCP tool schemas and make search_file_content respect gitignore and llxprtignore rules
- Fix restored chat rendering one token per line with --continue and settings search focus
- Validate compression thresholds and fix context-limit application on first profile load
- Detect actual image format from magic bytes for Anthropic
- Show effective model in profile-qualified response header
- Sanitize ANSI escape codes in skill consent prompts and deep merge hooks settings across scopes
- Cache CLI version to display the running version instead of the installed version
- Surface Claude Fable 5 classifier refusals as a user-visible notice
- Remove deprecated Gemini Code Assist OAuth login; route Gemini auth through API key + Vertex
- Classify Bun install script trust for improved security
- Harden OCR provider budgeting, redaction, and notification-write idempotency
- Preserve provider quota errors across retry timeouts
All Changes
- Complete OS-standard path migration for OAuth and global state (Fixes #2606) (#2646) (a259657)
- Launch installed CLI directly with bundled Bun (Fixes #2603) (#2610) (5868dac)
- test(providers): tighten profile fallback regression coverage (#2636) (395efed)
- Prevent OAuth browser launch from hiding Windows terminals (#2632) (826a244)
- Harden OCR provider budgeting, redaction, and notification-write idempotency (Fixes #2576) (#2631) (83bd764)
- Stop per-keystroke keychain prompts in /key autocomplete (Fixes #2620) (#2622) (c28806b)
- Add Kimi K3 provider defaults and docs (Fixes #2613) (#2621) (7252612)
- Fix Windows launcher process resolution (#2609) (be8f36c)
- Make stream watchdogs provider-liveness aware (Fixes #2607) (#2612) (4819f04)
- Harden nightly eval reporting (Fixes #2605) (#2611) (2556249)
- Harden provider context overflow recovery (Fixes #2588) (#2598) (d58ee53)
- Add Windows Bun native-module nightly smoke (Fixes #2301) (#2596) (947c7d3)
- Unify session telemetry across provider attempts (Fixes #2585) (#2600) (abd16ea)
- Consolidate release guard regression coverage (Fixes #2597) (#2599) (d69bda6)
- Preserve whitespace-only subagent stream deltas (Fixes #2555) (#2591) (a1dd642)
- Use Bun-native development launcher (Fixes #2342) (#2594) (e3004a8)
- Keep guard tests responsive during release checks (Fixes #2584) (#2593) (2b418c1)
- Honor manual versions for nightly releases (Fixes #2589) (#2592) (cf296c4)
- Require explicit provider selection at startup (Fixes #2481) (#2583) (0d82e78)
- Harden subagent review follow-ups (Fixes #2472) (#2582) (8390626)
- Add Bun/Vitest compatibility shim for bun test runner (Fixes #2475) (#2484) (91e7462)
- Enforce the GenAI enclave boundary (Fixes #2352) (#2546) (2496e89)
- Preserve provider quota errors across retry timeouts (Fixes #2559) (#2568) (11328eb)
- Finish provider-neutral Gemini cleanup (#2573) (#2574) (30de44a)
- Merge pull request #2570 from vybestack/issue2537 (2056a55)
- Remove inherited Gemini names from neutral APIs (#2537) (f10865f)
- Raise unconfigured subagent turn fallback to 1000 (Fixes #2541) (#2566) (c0c27e8)
- Lower DEFAULT_TOKEN_LIMIT to 200K, add GLM catalog, consolidate resolution (Fixes #2527) (#2565) (62a89dc)
- good memory (c7b1b78)
- test: isolate all package tests from real user storage (fixes #2528) (#2545) (d7e6cb0)
- Keep Codex provider identity coherent during startup (Fixes #2544) (#2561) (bf4beab)
- Fix restored chat rendering one token per line with --continue (Fixes #2549) (#2558) (6a34605)
- Merge pull request #2543 from vybestack/issue5228 (a521510)
- Merge remote-tracking branch 'origin/main' into issue5228 (ac29484)
- Keep PowerShell parameter checks field-specific (7f38bc7)
- Make PowerShell schema tests wording-independent (d165445)
- Fix Windows shell guidance for quoted paths (#2538) (d3eefc8)
- fix: preserve CJK input and Windows ripgrep results (#2539) (0820185)
- Fix Windows shell guidance for quoted paths (fdd9502)
- Remove GenAI SDK coupling from leaf packages (Fixes #2351) (#2520) (646bac9)
- Make MCP discovery non-fatal and stop dropping input during startup (Fixes #2516) (#2521) (4cfe82b)
- Thin the CLI entry chain: runtime assembly behind createAgent, kill deep imports, shrink core import surface (Fixes #2378) (#2493) (c3ec9d3)
- refactor(providers): unify OpenAI schema converter and preserve dropped JSON-schema keywords (Fixes #2508) (#2514) (b475247)
- Make startup migration and profile loading resilient (Fixes #2476, Fixes #2477) (#2504) (07c96ca)
- Merge pull request #2515 from vybestack/issue2509 (e1a8c29)
- Merge pull request #2513 from vybestack/issue2505 (21cb698)
- Normalize core memory test paths (#2509) (049f779)
- Merge pull request #2440 from vybestack/issue2349 (d4d8837)
- Fix cross-platform test expectations (#2509) (b3576c8)
- fix: preserve valid Responses reasoning IDs (#2349) (056a7ae)
- fix(providers): trim reasoning field name and make resolveReasoningValue return undefined when unusable (f7a1043)
- Fix Windows test portability (#2509) (5b0a3ea)
- test(providers): use fixed timestamp in streaming test chunks (5cd89e2)
- fix(providers): add reasoning.fieldName support to classic openai provider (Fixes #2505) (6c68c98)
- Merge remote-tracking branch 'origin/main' into issue2349 (d74b84f)
- Merge remote-tracking branch 'origin/main' into issue2349 (1a2e0c1)
- Merge pull request #2507 from vybestack/issue2501 (e47e14a)
- Merge pull request #2503 from vybestack/issue2500 (f70c49d)
- test: align retry assertions with neutral content (#2349) (38a0028)
- fix: preserve neutral retry and AFC history semantics (#2349) (e000e61)
- test(agents): assert exact restored turn in ChatSessionFactory #2500 fold test (5e7ff49)
- fix(providers): preserve currentProfile across provider switches (Fixes #2501) (b8192a7)
- fix(core): preserve carried history across rebuilds when client not yet initialized (#2500) (dc1adcf)
- fix(agents): fold restored history into reused empty HistoryService (Fixes #2500) (b36150d)
- fix(ui): show effective model in profile-qualified response header (Fixes #2501) (de9f5f0)
- Merge remote-tracking branch 'origin/main' into issue2349 (27cbc7b)
- fix: harden neutral message boundaries after review (#2349) (d3d63da)
- Reset exhausted load-balancer failover rotations (Fixes #2492) (#2495) (0c99622)
- Add GPT-5.6 Sol, Terra, and Luna support (Fixes #2483) (#2497) (63b8855)
- feat(providers): support configurable reasoning field name for Ollama streaming (Fixes #2488) (#2491) (ddff241)
- fix(ui): accumulate subagent streaming text instead of replacing each token (Fixes #2008) (#2486) (ec14820)
- Eliminate inverted core→tools dependency and barrel over-import chain (Fixes #2417) (#2473) (a4e7175)
- feat(test): add Bun-backed root test orchestration entry point (Fixes #2463) (#2470) (ae7633d)
- fix(launcher): add self-exit ...
Release v0.10.0-nightly.260723.5868dac61
Release v0.10.0-nightly.260723.5868dac61
Installation
Install or upgrade LLxprt Code using npm:
npm install -g @vybestack/llxprt-codeOr use directly with npx:
npx @vybestack/llxprt-codeWhat's New
- Bundled Bun runtime — CLI now launches directly with its bundled Bun runtime, eliminating the Node.js installation requirement (Fixes #2603, #2243)
- New models and providers — Added GPT-5.6 Sol/Terra/Luna (Fixes #2483), Claude Sonnet 5 (Fixes #2289), Claude Fable 5 (Fixes #2328), Kimi K3 (Fixes #2613), LiteLLM provider (#2394), Ollama Cloud and Makora aliases (Fixes #2056), and the GLM model catalog (Fixes #2527)
- Windows reliability — Fixed OAuth browser launch hiding Windows terminals (#2632), Windows launcher process resolution (#2609), shell guidance for quoted paths (#2538), CJK input and ripgrep result preservation (#2539), /copy crash prevention (#15657), and PTY resize crash (#15757)
- Streaming and response fixes — Preserved whitespace-only subagent stream deltas (Fixes #2555), fixed subagent streaming text accumulation (Fixes #2008), resolved one-token-per-line rendering with --continue (Fixes #2549), preserved Anthropic stopReason deltas (Fixes #1856), and fixed Kimi tool call ID collisions and buffering hangs (Fixes #1872, #1890)
- Auth and OAuth — Stopped per-keystroke keychain prompts in /key autocomplete (Fixes #2620), gated OAuth eligibility by base URL to prevent unwanted prompts for third-party gateways (Fixes #2411), preserved Linux auth fallback paths (Fixes #1895), fixed Anthropic OAuth 401 retry loops (Fixes #2035), and added disk-read on lock timeout to prevent cross-process token replay (Fixes #1781)
- Subagent improvements — Subagents now inherit parent max turns (Fixes #2048), launch without crashes or hangs (Fixes #1838), filter disabled tools instead of throwing runtime errors (Fixes #1747), preserve tool defaults (Fixes #2069), and activate via isolated runtime with restored load-balancer failover (Fixes #2410)
- Load balancer and provider robustness — Reset exhausted failover rotations (Fixes #2492), made failover retryable so all-429 responses do not fatally drop to prompt (Fixes #2450), preserved currentProfile across provider switches (Fixes #2501), and fixed context accounting and profile auth isolation (Fixes #2207, #2492)
- Compression and context handling — Stopped masked empty-summary errors from aborting turns (Fixes #2333), retried compression on provider overload and rate-limit errors (Fixes #2045), preserved the last user prompt during middle-out compression (fixes #1650), converted media blocks to text placeholders during compression (Fixes #1875), and enforced hard-limit compression fallback with diagnostics (Fixes #1791)
- Configuration and startup — Require explicit provider selection at startup (Fixes #2481), made startup migration and profile loading resilient (Fixes #2476, Fixes #2477), preserved keyfile profile auth in interactive startup (Fixes #2364), migrated configuration to platform-standard paths (Fixes #1465), and added configurable max heap setting (Fixes #1624)
- Agent API and extensibility — Published the public Core Agent API surface (Fixes #1594), exposed tool listing and discovery via the Agent API (Fixes #2376), added native support for agents in settings.json, enabled subagents as extensions, and added hooks support for STOP_EXECUTION, tool input modification, and mcp_context in BeforeTool/AfterTool events
- Agent Skills — Built-in agent skills are now enabled by default, with /skills reload, status bar skill counts, autonomous activation, conflict detection, security consent for installation, and extension support
- CLI commands and UX — Added /introspect slash command (#17048), /chat debug command, extension install/uninstall commands with update notifications, settings descriptions, Esc-Esc to clear prompt, unified shell confirmation dialogs, improved keybindings, simplified paste handling, and undeprecated the --prompt flag
- Performance and stability — Optimized UI text buffer and highlighting for large inputs (#16782), added OOM prevention in file search, converted conversation storage to async I/O (Fixes #1988), and serialized concurrent ConversationFileWriter writes to prevent data corruption (Fixes #1988)
All Changes
- Launch installed CLI directly with bundled Bun (Fixes #2603) (#2610) (5868dac)
- test(providers): tighten profile fallback regression coverage (#2636) (395efed)
- Prevent OAuth browser launch from hiding Windows terminals (#2632) (826a244)
- Harden OCR provider budgeting, redaction, and notification-write idempotency (Fixes #2576) (#2631) (83bd764)
- Stop per-keystroke keychain prompts in /key autocomplete (Fixes #2620) (#2622) (c28806b)
- Add Kimi K3 provider defaults and docs (Fixes #2613) (#2621) (7252612)
- Fix Windows launcher process resolution (#2609) (be8f36c)
- Make stream watchdogs provider-liveness aware (Fixes #2607) (#2612) (4819f04)
- Harden nightly eval reporting (Fixes #2605) (#2611) (2556249)
- Harden provider context overflow recovery (Fixes #2588) (#2598) (d58ee53)
- Add Windows Bun native-module nightly smoke (Fixes #2301) (#2596) (947c7d3)
- Unify session telemetry across provider attempts (Fixes #2585) (#2600) (abd16ea)
- Consolidate release guard regression coverage (Fixes #2597) (#2599) (d69bda6)
- Preserve whitespace-only subagent stream deltas (Fixes #2555) (#2591) (a1dd642)
- Use Bun-native development launcher (Fixes #2342) (#2594) (e3004a8)
- Keep guard tests responsive during release checks (Fixes #2584) (#2593) (2b418c1)
- Honor manual versions for nightly releases (Fixes #2589) (#2592) (cf296c4)
- Require explicit provider selection at startup (Fixes #2481) (#2583) (0d82e78)
- Harden subagent review follow-ups (Fixes #2472) (#2582) (8390626)
- Add Bun/Vitest compatibility shim for bun test runner (Fixes #2475) (#2484) (91e7462)
- Enforce the GenAI enclave boundary (Fixes #2352) (#2546) (2496e89)
- Preserve provider quota errors across retry timeouts (Fixes #2559) (#2568) (11328eb)
- Finish provider-neutral Gemini cleanup (#2573) (#2574) (30de44a)
- Merge pull request #2570 from vybestack/issue2537 (2056a55)
- Remove inherited Gemini names from neutral APIs (#2537) (f10865f)
- Raise unconfigured subagent turn fallback to 1000 (Fixes #2541) (#2566) (c0c27e8)
- Lower DEFAULT_TOKEN_LIMIT to 200K, add GLM catalog, consolidate resolution (Fixes #2527) (#2565) (62a89dc)
- good memory (c7b1b78)
- test: isolate all package tests from real user storage (fixes #2528) (#2545) (d7e6cb0)
- Keep Codex provider identity coherent during startup (Fixes #2544) (#2561) (bf4beab)
- Fix restored chat rendering one token per line with --continue (Fixes #2549) (#2558) (6a34605)
- Merge pull request #2543 from vybestack/issue5228 (a521510)
- Merge remote-tracking branch 'origin/main' into issue5228 (ac29484)
- Keep PowerShell parameter checks field-specific (7f38bc7)
- Make PowerShell schema tests wording-independent (d165445)
- Fix Windows shell guidance for quoted paths (#2538) (d3eefc8)
- fix: preserve CJK input and Windows ripgrep results (#2539) (0820185)
- Fix Windows shell guidance for quoted paths (fdd9502)
- Remove GenAI SDK coupling from leaf packages (Fixes #2351) (#2520) (646bac9)
- Make MCP discovery non-fatal and stop dropping input during startup (Fixes #2516) (#2521) (4cfe82b)
- Thin the CLI entry chain: runtime assembly behind createAgent, kill deep imports, shrink core import surface (Fixes #2378) (#2493) (c3ec9d3)
- refactor(providers): unify OpenAI schema converter and preserve dropped JSON-schema keywords (Fixes #2508) (#2514) (b475247)
- Make startup migration and profile loading resilient (Fixes #2476, Fixes #2477) (#2504) (07c96ca)
- Merge pull request #2515 from vybestack/issue2509 (e1a8c29)
- Merge pull request #2513 from vybestack/issue2505 (21cb698)
- Normalize core memory test paths (#2509) (049f779)
- Merge pull request #2440 from vybestack/issue2349 (d4d8837)
- Fix cross-platform test expectations (#2509) (b3576c8)
- fix: preserve valid Responses reasoning IDs (#2349) (056a7ae)
- fix(providers): trim reasoning field name and make resolveReasoningValue return undefined when unusable (f7a1043)
- Fix Windows test portability (#2509) (5b0a3ea)
- test(providers): use fixed timestamp in streaming test chunks (5cd89e2)
- fix(providers): add reasoning.fieldName support to classic openai provider (Fixes #2505) (6c68c98)
- Merge remote-tracking branch 'origin/main' into issue2349 (d74b84f)
- Merge remote-tracking branch 'origin/main' into issue2349 (1a2e0c1)
- Merge pull request #2507 from vybestack/issue2501 (e47e14a)
- Merge pull request #2503 from vybestack/issue2500 (f70c49d)
- test: align retry assertions with neutral content (#2349) (38a0028)
- fix: preserve neutral retry and AFC history semantics (#2349) (e000e61)
- test(agents): assert exact restored turn in ChatSessionFactory #2500 fold test (5e7ff49)
- fix(providers): preserve currentProfile across provider switches (Fixes #2501) (b8192a7)
- fix(core): preserve carried history across rebuilds when client not yet initialized (#2500) (dc1adcf)
- fix(agents): fold restored history into reused empty HistoryService (Fixes #2500) (b36150d)
- fix(ui): show effective model in profile-qualified response header (Fixes #2501) (de9f5f0)
- Merge remote-tracking branch 'origin/main' into issue2349 (27cbc7b)
- fix: harden neutral message boundaries after review (#2349) (d3d63da)
- Reset exhausted load-balancer failover rotations (Fixes #2492) (#2495) (0c99622)
- Add GPT-5.6 Sol, Terra, and Luna support (Fixes #2483) (#2497) (63b8855)
- feat(providers): support configurable reasoning field name for Ollama streaming (Fixes #2488) (#2491) (ddff241)
- fix(ui): accumulate subagent streaming text instead of replacing eac...
Release v0.10.0-nightly.260722.be8f36c6e
Release v0.10.0-nightly.260722.be8f36c6e
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 GPT-5.6 Sol, Terra, and Luna model support
- Added Claude Sonnet 5 to the model menu and set Claude Opus 4.8 as the Anthropic default
- Added Claude Fable 5 classifier support and surfaced refusals as a user-visible notice
- Added GLM model catalog and consolidated model resolution
- Added Ollama Cloud and Makora provider aliases
- Added LiteLLM provider support
- Removed discontinued Qwen OAuth provider; Qwen is now API-key-only
- Removed deprecated Gemini Code Assist OAuth login; Gemini auth now routes through API key and Vertex
- Require explicit provider selection at startup to avoid ambiguous defaults
- Migrated interactive CLI to consume
agent.stream()directly instead of assembling the agentic loop - Introduced Agent at the interactive composition root and migrated CLI command surfaces to Agent APIs
- Ported Zed integration onto the Agent API and removed the hand-rolled chat loop
- Exposed tool listing and discovery via the Agent API
- Restored correct chat rendering when using
--continue, fixing one-token-per-line output - Fixed subagent streaming text accumulation so assistant output no longer replaces each token
- Preserved whitespace-only subagent stream deltas
- Fixed provider quota errors so they survive retry timeouts instead of being lost
- Hardened provider context overflow recovery
- Reset exhausted load-balancer failover rotations automatically
- Fixed load-balancer model identity and bounded first model responses
- Fixed cross-provider ephemeral leak in mixed load balancers
- Retry transient mid-stream connection errors instead of breaking the loop
- Retry Anthropic
api_errorinternal server errors instead of breaking the loop - Handle Anthropic
rate_limit_errorin JSON body like a 429 - Fail closed on ambiguous canonical registry matches
- Harden stream watchdogs to be provider-liveness aware
- Preserve provider terminal metadata and tool schemas through streaming
- Drop cross-model thinking blocks on model switch to avoid 400 invalid signature errors
- Unify session telemetry across provider attempts
- Harden subagent review follow-ups
- Keep Codex provider identity coherent during startup
- Enforce the GenAI enclave boundary
- Remove GenAI SDK coupling from leaf packages and migrate core/CLI/agents to neutral contract types
- Made MCP server discovery non-fatal and stopped dropping input during startup
- Made MCP discovery non-blocking at startup
- Project real MCP OAuth quad-state through the Agent surface
- Improved Windows support with a Bun-native development launcher, native-module nightly smoke, named-pipe credential proxy transport, shell guidance for quoted paths, and CJK/ripgrep preservation
- Fixed Windows launcher process resolution
- Fixed Windows shell guidance for quoted paths
- Fixed Windows storage
/dev/ttyandEINVALcrashes - Preserved keyfile profile auth in interactive startup
- Filtered disabled tools instead of throwing runtime errors
- Fixed subagent wizard invocation crash
- Inherited parent max turns for subagents
- Added subagent recovery turns
- Added configurable max heap setting
- Added
/introspectslash command - Added
/skills reloadand gemini skills CLI management command - Added Agent Skills with tiered discovery, autonomous activation, context injection, and status bar integration
- Added environment variable sanitization service
- Added security warning to HooksList for project-level hooks
- Added explicit stop and block execution control in model hooks
- Added
mcp_contextto BeforeTool and AfterTool hook inputs - Added hook event name validation
- Added skill conflict detection and warnings
- Added security consent for skill installation
- Unified shell confirmation dialogs
- Renamed disable settings to enable settings for clarity
- Centralized subagent excluded tool governance
- Tightened qualified subagent tool whitelist parsing
- Added profile-qualified model identity in status bar, diagnostics, and response prefix
- Show effective model in profile-qualified response header
- Made stream idle timeout configurable and raised default to 10 minutes
- Disabled idle timeout watchdog by default
- Fixed stream idle timeout races with a shared helper
- Fixed idle timeout AbortError suppression and sendPromise deadlock
- Fixed Kimi tool call ID collisions and silent scheduler drops
- Fixed Kimi K2 special buffering that caused Fireworks hangs
- Fixed stream retry after content has already been yielded to consumer
- Stopped invalid stream fallthrough retries
- Increased idle timeouts and fixed AbortError suppression
- Close iterator on abort to prevent sendPromise hang
- Ensure first chunk consumption happens inside retry boundary
- Re-estimated tokens and fixed cache double-counting on provider switch
- Fixed stale context limit after profile load
- Fixed context overflow preflight after model switch
- Fixed compression threshold handling and preflight guard
- Attempt compression when extraction is unsafe instead of throwing
- Masked empty-summary compression errors from aborting turns
- Preserve last user prompt during middle-out compression
- Distinguish no-op, recent, and failed compression outcomes
- Allow failover after compression callback failure
- Harden hard-limit compression fallback
- Harden compression config assertions
- Consult provider context limit in preflight guard
- Use load-balancer backend context limit for compaction
- Fixed load-balancer context accounting
- Fixed shared-reference token fallback accounting
- Fixed post-merge gaps after config refactor and migration
- Migrated configuration to platform-standard paths
- Made startup migration and profile loading resilient
All Changes
- Fix Windows launcher process resolution (#2609) (be8f36c)
- Make stream watchdogs provider-liveness aware (Fixes #2607) (#2612) (4819f04)
- Harden nightly eval reporting (Fixes #2605) (#2611) (2556249)
- Harden provider context overflow recovery (Fixes #2588) (#2598) (d58ee53)
- Add Windows Bun native-module nightly smoke (Fixes #2301) (#2596) (947c7d3)
- Unify session telemetry across provider attempts (Fixes #2585) (#2600) (abd16ea)
- Consolidate release guard regression coverage (Fixes #2597) (#2599) (d69bda6)
- Preserve whitespace-only subagent stream deltas (Fixes #2555) (#2591) (a1dd642)
- Use Bun-native development launcher (Fixes #2342) (#2594) (e3004a8)
- Keep guard tests responsive during release checks (Fixes #2584) (#2593) (2b418c1)
- Honor manual versions for nightly releases (Fixes #2589) (#2592) (cf296c4)
- Require explicit provider selection at startup (Fixes #2481) (#2583) (0d82e78)
- Harden subagent review follow-ups (Fixes #2472) (#2582) (8390626)
- Add Bun/Vitest compatibility shim for bun test runner (Fixes #2475) (#2484) (91e7462)
- Enforce the GenAI enclave boundary (Fixes #2352) (#2546) (2496e89)
- Preserve provider quota errors across retry timeouts (Fixes #2559) (#2568) (11328eb)
- Finish provider-neutral Gemini cleanup (#2573) (#2574) (30de44a)
- Merge pull request #2570 from vybestack/issue2537 (2056a55)
- Remove inherited Gemini names from neutral APIs (#2537) (f10865f)
- Raise unconfigured subagent turn fallback to 1000 (Fixes #2541) (#2566) (c0c27e8)
- Lower DEFAULT_TOKEN_LIMIT to 200K, add GLM catalog, consolidate resolution (Fixes #2527) (#2565) (62a89dc)
- good memory (c7b1b78)
- test: isolate all package tests from real user storage (fixes #2528) (#2545) (d7e6cb0)
- Keep Codex provider identity coherent during startup (Fixes #2544) (#2561) (bf4beab)
- Fix restored chat rendering one token per line with --continue (Fixes #2549) (#2558) (6a34605)
- Merge pull request #2543 from vybestack/issue5228 (a521510)
- Merge remote-tracking branch 'origin/main' into issue5228 (ac29484)
- Keep PowerShell parameter checks field-specific (7f38bc7)
- Make PowerShell schema tests wording-independent (d165445)
- Fix Windows shell guidance for quoted paths (#2538) (d3eefc8)
- fix: preserve CJK input and Windows ripgrep results (#2539) (0820185)
- Fix Windows shell guidance for quoted paths (fdd9502)
- Remove GenAI SDK coupling from leaf packages (Fixes #2351) (#2520) (646bac9)
- Make MCP discovery non-fatal and stop dropping input during startup (Fixes #2516) (#2521) (4cfe82b)
- Thin the CLI entry chain: runtime assembly behind createAgent, kill deep imports, shrink core import surface (Fixes #2378) (#2493) (c3ec9d3)
- refactor(providers): unify OpenAI schema converter and preserve dropped JSON-schema keywords (Fixes #2508) (#2514) (b475247)
- Make startup migration and profile loading resilient (Fixes #2476, Fixes #2477) (#2504) (07c96ca)
- Merge pull request #2515 from vybestack/issue2509 (e1a8c29)
- Merge pull request #2513 from vybestack/issue2505 (21cb698)
- Normalize core memory test paths (#2509) (049f779)
- Merge pull request #2440 from vybestack/issue2349 (d4d8837)
- Fix cross-platform test expectations (#2509) (b3576c8)
- fix: preserve valid Responses reasoning IDs (#2349) (056a7ae)
- fix(providers): trim reasoning field name and make resolveReasoningValue return undefined when unusable (f7a1043)
- Fix Windows test portability (#2509) (5b0a3ea)
- test(providers): use fixed timestamp in streaming test chunks (5cd89e2)
- fix(providers): add reasoning.fieldName support to classic openai provider (Fixes #2505) (6c68c98)
- Merge remote-tracking branch 'origin/main' into issue2349 (d74b84f)
- Merge remote-tracking branch 'origin/main' into issue2349 (1a2e0c1)
- Merge pull request #2507 from vybestack/issue2501 (e47e14a)
- Merge pull request #2503 from vybestack/issue2500 (f70c49d)
- test: align retry assertions with neutral content (#2349) (38a0028)
- fix: preserve...
Release v0.10.0-nightly.260721.d58ee53aa
Release v0.10.0-nightly.260721.d58ee53aa
Installation
Install or upgrade LLxprt Code using npm:
npm install -g @vybestack/llxprt-codeOr use directly with npx:
npx @vybestack/llxprt-codeWhat's New
- Add support for GPT-5.6 Sol, Terra, and Luna models
- Add LiteLLM provider support for broader model compatibility
- Add Claude Sonnet 5 and Claude Fable 5 to supported model lists
- Add Ollama Cloud and Makora provider aliases
- Add GLM model catalog
- Set Anthropic default model to Claude Opus 4.8
- Remove discontinued Qwen OAuth provider; Qwen now requires API key
- Remove deprecated Gemini Code Assist OAuth login; route Gemini auth through API key and Vertex
- Require explicit provider selection at startup for clearer setup
- Make MCP discovery non-fatal and preserve input during startup
- Make stream idle timeout configurable and raise default to 10 minutes
- Add configurable max heap setting for performance tuning
- Expose tool listing and discovery via the Agent API
- Add public Core Agent API surface
- Add /introspect slash command
- Add extensions install/uninstall commands with update notifications
- Add policy engine granular shell allowlisting
- Add hooks UI with context injection, visual indicators, and security warnings
- Add environment variable sanitization service
- Add subagent recovery turns
- Bound LSP requests with timeouts
- Deprecate and remove OpenTUI experimental UI
- Fix restored chat rendering one token per line with --continue
- Fix subagent streaming text now accumulates instead of replacing each token
- Fix CJK input preservation and Windows ripgrep results
- Fix Windows shell guidance for quoted paths
- Fix Windows storage 'EINVAL' and '/dev/tty' crashes
- Fix Windows crash: "Cannot resize a pty that has already exited"
- Fix /copy crash on Windows by skipping /dev/tty
- Fix home/end keybinding conflict
- Fix PTY focus routing for live shells
- Fix noninteractive Ctrl-C hard abort
- Fix error-on-cancel and ESC not cancelling subagents
- Fix #1877: Subagent armTimeout fires against defunct instance
- Fix #1801: Sanitize ANSI escape codes in skill consent prompts
- Fix #1802: Deep merge hooksConfig and hooks settings across scopes
- Fix #2002: todopause properly pauses the system
- Fix #1776: Gate initial prompt on startup guards
- Fix #1748: BeforeToolSelectionHook empty array treated as no restriction
- Fix Project-level memories not loaded when workspace is subdirectory
- Fix #1803: Reset geminiMessageBuffer on contextCleared event during streaming
- Fix event-driven model profile display
- Fix settings search focus and typing flow
- Restore checkmark symbol in CLI UI indicators
- Fix --version flag prints version to stdout instead of debug log
- Fix context-limit not applied on first profile load
- Fix Anthropic rate_limit_error handling in JSON body
- Fix client-side 413 errors with retry and tool name guidance
- Fix OAuth token cache invalidation on 401/403 revocation
- Fix bucket failover during compression 401 errors
- Fix profile switch stalls after failed turns
- Fix stale context limit after profile load
- Fix load-balancer context accounting
- Fix cross-provider ephemeral leak in mixed load balancers
- Fix load-balancer subagent runtime profiles
- Fix subagent: run subagents non-interactively in -p mode and fix dispose crash
- Fix subagent: prevent crashes and hangs during subagent launch
- Fix subagent wizard invocation crash
- Fix subagent disabled tools filtering instead of throwing runtime error
- Fix set-command: remove model_param alias, keep only modelparam
- Fix set-command: clear ephemeral shadow and accept model_param alias
- Fix stats: detect API-key providers with kebab-case base-url config
- Fix preserve currentProfile across provider switches
- Fix carried history across rebuilds when client not yet initialized
- Fix show effective model in profile-qualified response header
- Fix reset exhausted load-balancer failover rotations
- Fix #2099: Cancelling a tool call from a subagent during parallel tool calls can cause a hang
- Fix #2133: apply_patch fails for directory-qualified paths
- Fix apply_patch validation of preview replacements
- Fix redact home paths in assignment-style tokens
- Fix confirm arguments key before truncating partial JSON
- Fix compression: use load-balancer backend context limit for compaction
- Fix compression: consult provider context limit in preflight guard
- Fix compression: attempt compression when extraction is unsafe instead of throwing
- Fix compression: distinguish no-op, recent, and failed outcomes
- Fix compression: stop masked empty-summary errors from aborting turns
- Fix compression: preflight guard attempts compression before bailing
- Fix context overflow preflight after model switch
- Fix context overflow recovery
- Fix stream idle timeout races and sendPromise deadlock
- Fix stream: prevent sendPromise deadlock on idle timeout abort
- Fix stream: ensure first chunk consumption happens inside retry boundary
- Fix stream: close iterator on abort to prevent sendPromise hang
- Fix stream: preserve Anthropic stopReason-only deltas and add terminal diagnostics
- Fix stream: disable idle timeout watchdog by default
- Fix stream: increase idle timeouts and fix AbortError suppression
- Fix stream: prevent Kimi tool call ID collisions and silent scheduler drops
- Fix subagent streaming newlines in assistant output
- Fix Kimi special buffering that caused Fireworks hangs
- Fix OAuth bridge lifecycle and cross-process refresh safety
- Fix OAuth provider registration on all creation paths and normalize case
- Fix Anthropic OAuth 401 retry loop on empty failed token
- Fix auth bucket failover during compression 401 errors
- Fix load-balancer model identity
- Fix load-balancer profile handling
- Fix provider-aware rate limit messages
- Fix subagent PromptConfig initialMessages contract
- Fix OpenAI tool format overrides
- Fix Codex device-flow messages through bridge when UI is live
- Fix Codex device-code fallback
- Fix Codex alias config as model source
- Fix local workspace source and guard dual-lockfile parity
- Fix workspace build order
- Fix Bun relaunch support
- Fix Bun workspace-install smoke job
- Fix Bun JSON output startup path
- Fix Node 20 E2E bundle parse
- Fix E2E bundle freshness
- Fix git-commit info resiliently so a fresh checkout can't crash startup
- Fix Codex provider identity coherent during startup
- Fix provider context overflow recovery
- Fix empty tool schemas for subagents and streaming pipeline hangs
- Fix preserve provider quota errors across retry timeouts
- Fix Anthropic api_error retry instead of breaking the loop
- Fix load-balancer failover aggregate retryable so all-429 doesn't fatally drop to prompt
- Fix shared-reference token fallback accounting
- Fix stale turn from clobbering newer turn's isResponding state
- Fix settings: validate compression thresholds
- Fix settings: gate stream idle profile settings
- Fix settings search focus and typing flow
- Fix settings: harden parse boundaries
- Fix settings: harden system settings path override
All Changes
- Harden provider context overflow recovery (Fixes #2588) (#2598) (d58ee53)
- Add Windows Bun native-module nightly smoke (Fixes #2301) (#2596) (947c7d3)
- Unify session telemetry across provider attempts (Fixes #2585) (#2600) (abd16ea)
- Consolidate release guard regression coverage (Fixes #2597) (#2599) (d69bda6)
- Preserve whitespace-only subagent stream deltas (Fixes #2555) (#2591) (a1dd642)
- Use Bun-native development launcher (Fixes #2342) (#2594) (e3004a8)
- Keep guard tests responsive during release checks (Fixes #2584) (#2593) (2b418c1)
- Honor manual versions for nightly releases (Fixes #2589) (#2592) (cf296c4)
- Require explicit provider selection at startup (Fixes #2481) (#2583) (0d82e78)
- Harden subagent review follow-ups (Fixes #2472) (#2582) (8390626)
- Add Bun/Vitest compatibility shim for bun test runner (Fixes #2475) (#2484) (91e7462)
- Enforce the GenAI enclave boundary (Fixes #2352) (#2546) (2496e89)
- Preserve provider quota errors across retry timeouts (Fixes #2559) (#2568) (11328eb)
- Finish provider-neutral Gemini cleanup (#2573) (#2574) (30de44a)
- Merge pull request #2570 from vybestack/issue2537 (2056a55)
- Remove inherited Gemini names from neutral APIs (#2537) (f10865f)
- Raise unconfigured subagent turn fallback to 1000 (Fixes #2541) (#2566) (c0c27e8)
- Lower DEFAULT_TOKEN_LIMIT to 200K, add GLM catalog, consolidate resolution (Fixes #2527) (#2565) (62a89dc)
- good memory (c7b1b78)
- test: isolate all package tests from real user storage (fixes #2528) (#2545) (d7e6cb0)
- Keep Codex provider identity coherent during startup (Fixes #2544) (#2561) (bf4beab)
- Fix restored chat rendering one token per line with --continue (Fixes #2549) (#2558) (6a34605)
- Merge pull request #2543 from vybestack/issue5228 (a521510)
- Merge remote-tracking branch 'origin/main' into issue5228 (ac29484)
- Keep PowerShell parameter checks field-specific (7f38bc7)
- Make PowerShell schema tests wording-independent (d165445)
- Fix Windows shell guidance for quoted paths (#2538) (d3eefc8)
- fix: preserve CJK input and Windows ripgrep results (#2539) (0820185)
- Fix Windows shell guidance for quoted paths (fdd9502)
- Remove GenAI SDK coupling from leaf packages (Fixes #2351) (#2520) (646bac9)
- Make MCP discovery non-fatal and stop dropping input during startup (Fixes #2516) (#2521) (4cfe82b)
- Thin the CLI entry chain: runtime assembly behind createAgent, kill deep imports, shrink core import surface (Fixes #2378) (#2493) (c3ec9d3)
- refactor(providers): unify OpenAI schema converter and preserve dropped JSON-schema keywords (Fixes #2508) (#2514) (b475247)
- Make startup migration and profile loading resilient (Fixes #2476, Fixes #2477) (#2504) (07c96ca)
- Merge pull request #2515 from vybestack/issue2509 (e1a8c29)
- Merge pull...
Release v0.10.0-nightly.260720.d69bda66a
Release v0.10.0-nightly.260720.d69bda66a
Installation
Install or upgrade LLxprt Code using npm:
npm install -g @vybestack/llxprt-codeOr use directly with npx:
npx @vybestack/llxprt-codeWhat's New
- Add LiteLLM provider support for additional AI model backends
- Add GPT-5.6 Sol, Terra, and Luna model support
- Add Claude Sonnet 5 and Claude Fable 5 model support
- Set Anthropic default model to Claude Opus 4.8
- Add Ollama Cloud and Makora provider aliases
- Lower default token limit to 200K and add GLM model catalog
- Built-in Agent Skills with autonomous activation and context injection
- Extensions management: install/uninstall commands, update notifications, and settings info
- Policy engine with granular shell allowlisting and unified shell security
- Hooks enhancements: stop/block execution control, MCP context for tool hooks, and enable-all/disable-all commands
- New slash commands: /introspect and /bug for chat history export
- Configurable max heap setting
- Profile-qualified model identity in status bar and diagnostics
- Require explicit provider selection at startup
- Fix --continue flag causing degraded chat rendering (one token per line)
- Fix Windows shell guidance for quoted paths and resolve '/dev/tty' crashes
- Preserve CJK input and Windows ripgrep results
- Fix Windows crash when resizing an already-exited PTY
- Fix ESC and error-on-cancel not cancelling subagents
- Fix load-balancer failover, context accounting, and profile handling
- Fix Anthropic OAuth 401 retry loop on empty failed token
- Fix subagent wizard invocation crash
- Fix PTY focus routing for live shells
- Fix noninteractive Ctrl-C hard abort
- Sanitize ANSI escape codes in skill consent prompts
- Fix todo pause not pausing todo updates
- Surface Claude Fable 5 classifier refusals as a user-visible notice
- Preserve whitespace-only subagent stream deltas
- Fix subagent armTimeout firing against defunct instance
- Filter emojis in todo writes
All Changes
- Consolidate release guard regression coverage (Fixes #2597) (#2599) (d69bda6)
- Preserve whitespace-only subagent stream deltas (Fixes #2555) (#2591) (a1dd642)
- Use Bun-native development launcher (Fixes #2342) (#2594) (e3004a8)
- Keep guard tests responsive during release checks (Fixes #2584) (#2593) (2b418c1)
- Honor manual versions for nightly releases (Fixes #2589) (#2592) (cf296c4)
- Require explicit provider selection at startup (Fixes #2481) (#2583) (0d82e78)
- Harden subagent review follow-ups (Fixes #2472) (#2582) (8390626)
- Add Bun/Vitest compatibility shim for bun test runner (Fixes #2475) (#2484) (91e7462)
- Enforce the GenAI enclave boundary (Fixes #2352) (#2546) (2496e89)
- Preserve provider quota errors across retry timeouts (Fixes #2559) (#2568) (11328eb)
- Finish provider-neutral Gemini cleanup (#2573) (#2574) (30de44a)
- Merge pull request #2570 from vybestack/issue2537 (2056a55)
- Remove inherited Gemini names from neutral APIs (#2537) (f10865f)
- Raise unconfigured subagent turn fallback to 1000 (Fixes #2541) (#2566) (c0c27e8)
- Lower DEFAULT_TOKEN_LIMIT to 200K, add GLM catalog, consolidate resolution (Fixes #2527) (#2565) (62a89dc)
- good memory (c7b1b78)
- test: isolate all package tests from real user storage (fixes #2528) (#2545) (d7e6cb0)
- Keep Codex provider identity coherent during startup (Fixes #2544) (#2561) (bf4beab)
- Fix restored chat rendering one token per line with --continue (Fixes #2549) (#2558) (6a34605)
- Merge pull request #2543 from vybestack/issue5228 (a521510)
- Merge remote-tracking branch 'origin/main' into issue5228 (ac29484)
- Keep PowerShell parameter checks field-specific (7f38bc7)
- Make PowerShell schema tests wording-independent (d165445)
- Fix Windows shell guidance for quoted paths (#2538) (d3eefc8)
- fix: preserve CJK input and Windows ripgrep results (#2539) (0820185)
- Fix Windows shell guidance for quoted paths (fdd9502)
- Remove GenAI SDK coupling from leaf packages (Fixes #2351) (#2520) (646bac9)
- Make MCP discovery non-fatal and stop dropping input during startup (Fixes #2516) (#2521) (4cfe82b)
- Thin the CLI entry chain: runtime assembly behind createAgent, kill deep imports, shrink core import surface (Fixes #2378) (#2493) (c3ec9d3)
- refactor(providers): unify OpenAI schema converter and preserve dropped JSON-schema keywords (Fixes #2508) (#2514) (b475247)
- Make startup migration and profile loading resilient (Fixes #2476, Fixes #2477) (#2504) (07c96ca)
- Merge pull request #2515 from vybestack/issue2509 (e1a8c29)
- Merge pull request #2513 from vybestack/issue2505 (21cb698)
- Normalize core memory test paths (#2509) (049f779)
- Merge pull request #2440 from vybestack/issue2349 (d4d8837)
- Fix cross-platform test expectations (#2509) (b3576c8)
- fix: preserve valid Responses reasoning IDs (#2349) (056a7ae)
- fix(providers): trim reasoning field name and make resolveReasoningValue return undefined when unusable (f7a1043)
- Fix Windows test portability (#2509) (5b0a3ea)
- test(providers): use fixed timestamp in streaming test chunks (5cd89e2)
- fix(providers): add reasoning.fieldName support to classic openai provider (Fixes #2505) (6c68c98)
- Merge remote-tracking branch 'origin/main' into issue2349 (d74b84f)
- Merge remote-tracking branch 'origin/main' into issue2349 (1a2e0c1)
- Merge pull request #2507 from vybestack/issue2501 (e47e14a)
- Merge pull request #2503 from vybestack/issue2500 (f70c49d)
- test: align retry assertions with neutral content (#2349) (38a0028)
- fix: preserve neutral retry and AFC history semantics (#2349) (e000e61)
- test(agents): assert exact restored turn in ChatSessionFactory #2500 fold test (5e7ff49)
- fix(providers): preserve currentProfile across provider switches (Fixes #2501) (b8192a7)
- fix(core): preserve carried history across rebuilds when client not yet initialized (#2500) (dc1adcf)
- fix(agents): fold restored history into reused empty HistoryService (Fixes #2500) (b36150d)
- fix(ui): show effective model in profile-qualified response header (Fixes #2501) (de9f5f0)
- Merge remote-tracking branch 'origin/main' into issue2349 (27cbc7b)
- fix: harden neutral message boundaries after review (#2349) (d3d63da)
- Reset exhausted load-balancer failover rotations (Fixes #2492) (#2495) (0c99622)
- Add GPT-5.6 Sol, Terra, and Luna support (Fixes #2483) (#2497) (63b8855)
- feat(providers): support configurable reasoning field name for Ollama streaming (Fixes #2488) (#2491) (ddff241)
- fix(ui): accumulate subagent streaming text instead of replacing each token (Fixes #2008) (#2486) (ec14820)
- Eliminate inverted core→tools dependency and barrel over-import chain (Fixes #2417) (#2473) (a4e7175)
- feat(test): add Bun-backed root test orchestration entry point (Fixes #2463) (#2470) (ae7633d)
- fix(launcher): add self-exit guards to prevent orphaned shim processes on terminal/PTY death (Fixes #2468) (#2474) (4fca1a4)
- Fail loudly on unavailable profile provider; never save LB runtime as a standard profile (Fixes #2479, Fixes #2478) (#2480) (2d97afd)
- fix: exclude prototype keys from executor template property test (#2349) (f1f5eab)
- fix: expose placeholder model through core root (#2349) (2fbd53a)
- Isolate tmux harness from nested sessions (#2471) (87e133d)
- merge main into issue2349 and resolve neutral conflicts (cdf3c33)
- fix(agents): activate subagent providers via isolated runtime, restore LB failover, guard Null message (Fixes #2410) (#2415) (e0a0ee8)
- fix: keep empty merged content as human speaker (#2349) (12eb3ab)
- fix: preserve hook telemetry metadata (#2349) (4ca3fcf)
- fix: harden stream telemetry and validation paths (#2349) (a9deb44)
- fix: address additional OCR migration findings (#2349) (3bd1558)
- fix: address CodeRabbit migration comments (#2349) (6395d50)
- fix: address neutral migration review findings (#2349) (1322381)
- fix(agents): convert legacy Part-shaped arrays in toPartListUnion (#2349) (ec3e3ee)
- fix: remove unnecessary type assertion in boundaryRecovery test (#2349) (913de60)
- fix: remove @google/genai import from issue2410 test (#2349) (32cef38)
- fix: normalize additionalContext injection to ContentBlock[] (#2349) (facc294)
- fix(hooks): convert hook-modified contents back to IContent via toIContents (38ea315)
- fix(format): prettier fix on auto-fixed test file (894ac54)
- fix(post-rebase): resolve type errors from main merge (ba7a7d5)
- fix(lockfiles): remove @google/genai from agents workspace in lockfiles (cc9f7a4)
- fix(core): update tests for neutral IContent/ContentBlock shapes (49b2a3e)
- fix(tests): update assertions for neutral ContentBlock shapes (22157f0)
- fix(cli): extract isIContentLike to reduce expression complexity (67c504f)
- fix(cli): null-check req in loopTestHelpers for strict tsc (5c6d238)
- fix(cli): merge duplicate imports to fix lint:ci --max-warnings 0 (4ad1022)
- fix(cli): extract loopTestHelpers to fix max-lines lint (e704101)
- fix(cli): accept unknown in addPartToResult for AgentRequestInput (19f9097)
- fix(agents): fix formatting + extract modelInfoHelpers for max-lines (4ad131b)
- fix(agents): address OCR findings + CI lint failures (7ad898b)
- fix(agents): correct ToolGroupArray typing for ChatSessionConfig.tools (03e0edc)
- fix(cli): use public root import for CheckpointContent (fixes CI lint boundary) (d4f7c23)
- fix(agents): P33 fix tool group wrapping for provider compatibility (bd3f10f)
- feat(agents): P32 remove @google/genai dependency from agents package.json (d343631)
- feat(agents): P29-P31 enforcement gate — anti-#2424 CI wiring + test gate (fe79d9e)
- feat(agents): P28 test migration — zero @google/genai imports in agents tests (5875e95)
- feat(agents): P27 remaining group retype — ZERO prod @google/genai imports (9507c47)
- feat(agents): P26 remaining grou...
Release v0.10.0-nightly.260719.d69bda66a
Release v0.10.0-nightly.260719.d69bda66a
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 GPT-5.6 Sol, Terra, and Luna model support
- Added Claude Sonnet 5 and Claude Fable 5 to the supported model list
- Set Claude Opus 4.8 as the default Anthropic model
- Added Ollama Cloud and Makora provider aliases
- Added GLM model catalog and consolidated model resolution
- Added LiteLLM provider support
- Added Agent Skills with status bar integration,
/skills reload, and extension-based skill loading - Added
/introspectslash command for debugging and diagnostics - Added
--continueflag support with corrected restored chat rendering - Added MCP server context (
mcp_context) to BeforeTool and AfterTool hook events for server-specific policies and audit logging - Added hooks support for explicit stop and block execution control
- Added extensions install/uninstall commands, settings info, and update notifications
- Added configurable max heap setting
- Added configurable stream idle timeout with default raised to 10 minutes
- Added compression threshold configuration and validation
- Added tool listing and discovery through the Agent API
- Added context limit resolver through the Agent API
- Made MCP server discovery non-blocking at startup to reduce perceived load time
- Made agent skills enabled by default
- Made provider activation and auth driven through agent config rather than CLI orchestration
- Made profile-qualified model identity visible in status bar, response prefix, and diagnostics
- Made subagent providers activate via isolated runtime with restored load-balancer failover
- Made the first model response bounded and fixed load-balancer model identity
- Switched to Bun-native development launcher for faster startup
- Preserved whitespace-only subagent stream deltas for accurate streaming output
- Fixed restored chat rendering to display correctly with
--continue - Fixed Windows shell guidance for quoted paths
- Fixed Windows PTY crashes including
/dev/ttyand terminal resize errors - Fixed CJK input preservation and Windows ripgrep results
- Fixed PowerShell parameter checks to be field-specific
- Fixed non-interactive Ctrl-C hard abort behavior
- Fixed error-on-cancel and ESC cancellation for subagents
- Fixed todo pause filtering to prevent emoji leakage
- Fixed subagent wizard invocation crash
- Fixed load-balancer profile handling and context accounting
- Fixed cross-provider ephemeral leak in mixed load balancers
- Fixed profile auth isolation for load balancers
- Fixed Anthropic OAuth 401 retry loop on empty failed token
- Fixed OAuth token refresh and bucket failover during compression 401 errors
- Fixed context overflow preflight after model switch
- Fixed stale context limit after profile load
- Fixed shared-reference token fallback accounting
- Fixed compressed summary masking errors from aborting turns
- Fixed streaming newline preservation in assistant output
- Fixed shell security parsing backtick detection bug
- Fixed tool-name and async-guidance prompt token leaks
- Fixed
apply_patchfailures for multiline replacements and directory-qualified headers - Fixed subagent
armTimeoutfiring against defunct instances - Fixed LSP requests bounded with timeouts to prevent hangs
- Fixed
/copycrash on Windows by skipping/dev/tty - Fixed
list_subagentstool failing with synchronous availability error - Fixed tool call cancellation hang during parallel tool calls from subagents
- Fixed stale turn state clobbering newer turn's
isRespondingstate - Fixed provider quota error preservation across retry timeouts
- Fixed load-balancer failover rotation reset on exhaustion
- Fixed Codex provider identity coherence during startup
- Fixed neutral message boundaries after review for safer hook execution
- Fixed provider-aware rate limit messages
- Fixed subagent system instruction forwarding to all providers
- Fixed empty content block handling in subagent pipeline
- Fixed Kimi tool call ID collisions and silent scheduler drops
- Fixed Kimi K2 special buffering that caused Fireworks hangs
- Fixed first chunk consumption happening inside retry boundary
- Fixed stream idle timeout races with shared helper
- Fixed
sendPromisedeadlock on idle timeout abort - Fixed sendPromise hang by closing iterator on abort
- Fixed compression callback failure allowing failover
- Fixed provider compression threshold clamping
- Fixed
streamIdleTimeoutMsleaking into provider request body - Fixed empty merged content speaker attribution
- Fixed Anthropic
rate_limit_errorhandling in JSON body like a 429 - Fixed 413 errors with retry and tool name guidance
- Fixed
maxOutputTokenssetting respect during Anthropic OAuth provider switch - Fixed
--versionflag printing to stdout instead of debug log - Fixed event-driven model profile display
- Fixed
dumpcontextrequest and response dumps - Fixed settings search focus and typing flow
- Fixed
BeforeToolSelectionHooktreating empty allowedFunctionNames as no restriction - Fixed
geminiMessageBufferreset oncontextClearedduring streaming - Fixed subagent filtering of disabled tools instead of throwing runtime error
- Fixed tool display-state flag after engine-owned continuation
- Fixed cross-model thinking block drops causing 400 invalid signature on model switch
- Fixed compression media sanitization
- Fixed OAuth dialog guarding against wrong-provider auth prompts
- Fixed OAuth reauth and relogin flow bounds
- Fixed Linux auth fallback paths preservation
- Fixed auth cache invalidation for unbucketed profiles
- Fixed PKCE length issue and stabilized OAuth redirect port
All Changes
- Consolidate release guard regression coverage (Fixes #2597) (#2599) (d69bda6)
- Preserve whitespace-only subagent stream deltas (Fixes #2555) (#2591) (a1dd642)
- Use Bun-native development launcher (Fixes #2342) (#2594) (e3004a8)
- Keep guard tests responsive during release checks (Fixes #2584) (#2593) (2b418c1)
- Honor manual versions for nightly releases (Fixes #2589) (#2592) (cf296c4)
- Require explicit provider selection at startup (Fixes #2481) (#2583) (0d82e78)
- Harden subagent review follow-ups (Fixes #2472) (#2582) (8390626)
- Add Bun/Vitest compatibility shim for bun test runner (Fixes #2475) (#2484) (91e7462)
- Enforce the GenAI enclave boundary (Fixes #2352) (#2546) (2496e89)
- Preserve provider quota errors across retry timeouts (Fixes #2559) (#2568) (11328eb)
- Finish provider-neutral Gemini cleanup (#2573) (#2574) (30de44a)
- Merge pull request #2570 from vybestack/issue2537 (2056a55)
- Remove inherited Gemini names from neutral APIs (#2537) (f10865f)
- Raise unconfigured subagent turn fallback to 1000 (Fixes #2541) (#2566) (c0c27e8)
- Lower DEFAULT_TOKEN_LIMIT to 200K, add GLM catalog, consolidate resolution (Fixes #2527) (#2565) (62a89dc)
- good memory (c7b1b78)
- test: isolate all package tests from real user storage (fixes #2528) (#2545) (d7e6cb0)
- Keep Codex provider identity coherent during startup (Fixes #2544) (#2561) (bf4beab)
- Fix restored chat rendering one token per line with --continue (Fixes #2549) (#2558) (6a34605)
- Merge pull request #2543 from vybestack/issue5228 (a521510)
- Merge remote-tracking branch 'origin/main' into issue5228 (ac29484)
- Keep PowerShell parameter checks field-specific (7f38bc7)
- Make PowerShell schema tests wording-independent (d165445)
- Fix Windows shell guidance for quoted paths (#2538) (d3eefc8)
- fix: preserve CJK input and Windows ripgrep results (#2539) (0820185)
- Fix Windows shell guidance for quoted paths (fdd9502)
- Remove GenAI SDK coupling from leaf packages (Fixes #2351) (#2520) (646bac9)
- Make MCP discovery non-fatal and stop dropping input during startup (Fixes #2516) (#2521) (4cfe82b)
- Thin the CLI entry chain: runtime assembly behind createAgent, kill deep imports, shrink core import surface (Fixes #2378) (#2493) (c3ec9d3)
- refactor(providers): unify OpenAI schema converter and preserve dropped JSON-schema keywords (Fixes #2508) (#2514) (b475247)
- Make startup migration and profile loading resilient (Fixes #2476, Fixes #2477) (#2504) (07c96ca)
- Merge pull request #2515 from vybestack/issue2509 (e1a8c29)
- Merge pull request #2513 from vybestack/issue2505 (21cb698)
- Normalize core memory test paths (#2509) (049f779)
- Merge pull request #2440 from vybestack/issue2349 (d4d8837)
- Fix cross-platform test expectations (#2509) (b3576c8)
- fix: preserve valid Responses reasoning IDs (#2349) (056a7ae)
- fix(providers): trim reasoning field name and make resolveReasoningValue return undefined when unusable (f7a1043)
- Fix Windows test portability (#2509) (5b0a3ea)
- test(providers): use fixed timestamp in streaming test chunks (5cd89e2)
- fix(providers): add reasoning.fieldName support to classic openai provider (Fixes #2505) (6c68c98)
- Merge remote-tracking branch 'origin/main' into issue2349 (d74b84f)
- Merge remote-tracking branch 'origin/main' into issue2349 (1a2e0c1)
- Merge pull request #2507 from vybestack/issue2501 (e47e14a)
- Merge pull request #2503 from vybestack/issue2500 (f70c49d)
- test: align retry assertions with neutral content (#2349) (38a0028)
- fix: preserve neutral retry and AFC history semantics (#2349) (e000e61)
- test(agents): assert exact restored turn in ChatSessionFactory #2500 fold test (5e7ff49)
- fix(providers): preserve currentProfile across provider switches (Fixes #2501) (b8192a7)
- fix(core): preserve carried history across rebuilds when client not yet initialized (#2500) (dc1adcf)
- fix(agents): fold restored history into reused empty HistoryService (Fixes #2500) (b36150d)
- fix(ui): show effective model in profile-qualified response header (Fixes #2501) (de9f5f0)
- Merge remote-tracking branch...
Release v0.10.0-nightly.260719.c2a2768a9
Release v0.10.0-nightly.260719.c2a2768a9
Installation
Install or upgrade LLxprt Code using npm:
npm install -g @vybestack/llxprt-codeOr use directly with npx:
npx @vybestack/llxprt-codeWhat's New
-
Bun runtime migration: The CLI now runs directly on TypeScript source via Bun, removing the esbuild bundling step for faster startup and simpler development workflows.
-
New model support: Added GPT-5.6 Sol, Terra, and Luna; Claude Sonnet 5; Claude Fable 5 with user-visible refusal notices; Claude Opus 4.8 as the new Anthropic default; and expanded GLM catalog with a 200K token limit.
-
New providers: Added LiteLLM provider and Ollama Cloud/Makora aliases.
-
Provider authentication changes: Removed discontinued Qwen OAuth (now API-key-only) and deprecated Gemini Code Assist OAuth login; Gemini auth now routes through API key or Vertex. Require explicit provider selection at startup to prevent accidental usage.
-
Configuration on XDG paths: Migrated configuration and storage to platform-standard XDG directories.
-
Skills system: Introduced comprehensive agent skills with /skills reload, CLI management commands, extension support, status bar integration, and autonomous activation.
-
Hooks system: Added tool input modification, STOP_EXECUTION/block control in model hooks, mcp_context for BeforeTool/AfterTool events, and enable-all/disable-all commands.
-
Policy engine: Added granular shell allowlisting with legacy deprecation and unified shell security.
-
Extensions: Added install/uninstall commands, update notifications, and settings info.
-
MCP improvements: Made MCP server discovery non-blocking at startup and non-fatal; fixed MCP discovery dropping input during startup.
-
Tool changes: Removed google_web_search and google_web_fetch tools. Made search_file_content respect gitignore and llxprtignore configuration.
-
UI improvements: Profile-qualified model identity now appears in status bar, diagnostics, and response headers. Accumulated subagent streaming text instead of replacing per-token. Added security warnings for project-level hooks. Optimized text buffer for large inputs.
-
Keyboard and terminal: Added OSC-52 clipboard support for Windows Terminal, fixed home/end keybinding conflict, unified shell confirmation dialogs, added Esc-Esc to clear prompt, and restored checkmark indicators.
-
New commands: Added /introspect slash command, /chat debug command for nightly builds, and export chat history via /bug with GitHub issue prefill.
-
Removed experimental UI: Deprecated and removed OpenTUI experimental UI.
-
Chat and streaming fixes: Fixed --continue rendering one token per line. Fixed subagent streaming text display. Fixed whitespace-only stream deltas. Fixed stream idle timeout races, deadlocks, and Kimi tool call ID collisions. Removed Kimi K2 special buffering that caused Fireworks hangs. Stopped invalid stream fallthrough retries. Fixed Anthropic stopReason-only delta preservation.
-
Windows support: Fixed shell guidance for quoted paths, CJK input preservation, Windows ripgrep results, PTY crash on terminal exit, storage EINVAL errors, and /dev/tty access crashes.
-
Subagent fixes: Fixed parallel tool call cancellation causing hangs. Fixed ESC and error-on-cancel not cancelling subagents. Fixed Ctrl-C hard abort in non-interactive mode. Fixed subagent wizard invocation crash. Raised unconfigured subagent turn fallback to 1000.
-
Compression fixes: Fixed masked empty-summary errors aborting turns. Fixed compression preflight guard attempting compression before bailing. Fixed extraction safety instead of throwing. Fixed hard-limit compression fallback with diagnostics. Added 0.5% context-limit fudge factor. Preserved last user prompt during middle-out compression.
-
Context and history: Fixed context overflow preflight after model switch. Fixed load-balancer context accounting. Fixed context-limit not applied on first profile load. Fixed stale context limit after profile load. Fixed carried history loss across rebuilds. Fixed restored history folding into reused HistoryService.
-
Provider fixes: Fixed OpenAI tool format overrides. Fixed provider-aware rate limit messages. Fixed reasoning IDs and field name support for classic OpenAI provider. Fixed currentProfile preservation across provider switches. Fixed OAuth eligibility gating by base URL for third-party gateways. Restored OAuth system prompt in Anthropic provider. Fixed token cache invalidation on 401/403 revocation. Enabled bucket failover during compression 401 errors. Fixed auth cache invalidation for unbucketed profiles. Preserved Linux auth fallback paths.
-
Load balancer fixes: Fixed exhausted failover rotation reset. Fixed 429 aggregate retry preventing fatal drops to prompt. Fixed profile auth isolation. Fixed cross-provider ephemeral leak in mixed load balancers. Fixed shared-reference token fallback accounting. Fixed active provider restoration after fromConfig(). Fixed LB model identity.
-
Hooks and settings: Fixed ANSI escape code leakage in skill consent prompts. Fixed deep merge of hooksConfig/hooks settings across scopes. Fixed OAuth dialog showing prompts for wrong provider. Fixed initial prompt gating on startup guards. Fixed empty allowedFunctionNames in BeforeToolSelectionHook. Fixed systemMessage threading through hook stop/block events with action-required indicator.
-
Tool fixes: Fixed MCP tool lookup in tool registry. Fixed disabled tools filtering instead of throwing runtime error. Fixed sanitized tool descriptions for failures. Enforced BeforeToolSelection hook tool restrictions at runtime.
-
Security fixes: Enforced GenAI enclave boundary. Hardened subagent review follow-ups. Hardened sibling encrypted file stores with machine-secret KDF. Preserved fail-open-on-fault contract in envelope decrypt. Added disk-read on lock timeout to prevent cross-process token replay. Hardened secure-store fallback encryption. Removed flash fallback message from quota error responses.
-
Other fixes: Fixed todopause not actually pausing todo reminders. Fixed prompt-interactive scheduler readiness. Fixed profile switch stalls after failed turns. Added retry for Anthropic internal server errors instead of breaking. Disabled google_web_search by default. Fixed cross-model thinking block signature errors on model switch. Surface Claude Fable 5 classifier refusals as notices. Preserved keyfile profile auth in interactive startup. Preserved provider quota errors across retry timeouts. Fixed git-commit info loading on fresh checkout. Converted media blocks to text placeholders during compression. Fixed URL-backed PDF handling. Fixed apply_patch directory-qualified header validation. Fixed home path redaction in assignment-style tokens. Fixed JSON truncation and tab handling in export.
All Changes
- Consolidate release guard regression coverage (Fixes #2597) (c2a2768)
- Preserve whitespace-only subagent stream deltas (Fixes #2555) (#2591) (a1dd642)
- Use Bun-native development launcher (Fixes #2342) (#2594) (e3004a8)
- Keep guard tests responsive during release checks (Fixes #2584) (#2593) (2b418c1)
- Honor manual versions for nightly releases (Fixes #2589) (#2592) (cf296c4)
- Require explicit provider selection at startup (Fixes #2481) (#2583) (0d82e78)
- Harden subagent review follow-ups (Fixes #2472) (#2582) (8390626)
- Add Bun/Vitest compatibility shim for bun test runner (Fixes #2475) (#2484) (91e7462)
- Enforce the GenAI enclave boundary (Fixes #2352) (#2546) (2496e89)
- Preserve provider quota errors across retry timeouts (Fixes #2559) (#2568) (11328eb)
- Finish provider-neutral Gemini cleanup (#2573) (#2574) (30de44a)
- Merge pull request #2570 from vybestack/issue2537 (2056a55)
- Remove inherited Gemini names from neutral APIs (#2537) (f10865f)
- Raise unconfigured subagent turn fallback to 1000 (Fixes #2541) (#2566) (c0c27e8)
- Lower DEFAULT_TOKEN_LIMIT to 200K, add GLM catalog, consolidate resolution (Fixes #2527) (#2565) (62a89dc)
- good memory (c7b1b78)
- test: isolate all package tests from real user storage (fixes #2528) (#2545) (d7e6cb0)
- Keep Codex provider identity coherent during startup (Fixes #2544) (#2561) (bf4beab)
- Fix restored chat rendering one token per line with --continue (Fixes #2549) (#2558) (6a34605)
- Merge pull request #2543 from vybestack/issue5228 (a521510)
- Merge remote-tracking branch 'origin/main' into issue5228 (ac29484)
- Keep PowerShell parameter checks field-specific (7f38bc7)
- Make PowerShell schema tests wording-independent (d165445)
- Fix Windows shell guidance for quoted paths (#2538) (d3eefc8)
- fix: preserve CJK input and Windows ripgrep results (#2539) (0820185)
- Fix Windows shell guidance for quoted paths (fdd9502)
- Remove GenAI SDK coupling from leaf packages (Fixes #2351) (#2520) (646bac9)
- Make MCP discovery non-fatal and stop dropping input during startup (Fixes #2516) (#2521) (4cfe82b)
- Thin the CLI entry chain: runtime assembly behind createAgent, kill deep imports, shrink core import surface (Fixes #2378) (#2493) (c3ec9d3)
- refactor(providers): unify OpenAI schema converter and preserve dropped JSON-schema keywords (Fixes #2508) (#2514) (b475247)
- Make startup migration and profile loading resilient (Fixes #2476, Fixes #2477) (#2504) (07c96ca)
- Merge pull request #2515 from vybestack/issue2509 (e1a8c29)
- Merge pull request #2513 from vybestack/issue2505 (21cb698)
- Normalize core memory test paths (#2509) (049f779)
- Merge pull request #2440 from vybestack/issue2349 (d4d8837)
- Fix cross-platform test expectations (#2509) (b3576c8)
- fix: preserve valid Responses reasoning IDs (#2349) (056a7ae)
- fix(providers): trim reasoning field name and make resolveReasoningValue return undefined when unusable (f7a1043)
- Fix Windows test portability (#2509) (5b0a3ea...
Release v0.10.0-nightly.260718.d69bda66a
Release v0.10.0-nightly.260718.d69bda66a
Installation
Install or upgrade LLxprt Code using npm:
npm install -g @vybestack/llxprt-codeOr use directly with npx:
npx @vybestack/llxprt-codeWhat's New
- Add support for GPT-5.6 Sol, Terra, and Luna models
- Add Claude Sonnet 5 (claude-sonnet-5) to the model menu
- Add claude-fable-5 to the Anthropic OAuth (Claude Code) model list
- Set Anthropic default model to Claude Opus 4.8
- Add deprecated getLatestClaude4Model alias for backward compatibility
- Add LiteLLM provider support
- Add configurable reasoning field name for Ollama streaming
- Introduce Agent at the interactive composition root
- Make MCP server discovery non-blocking at startup for faster initialization
- Remove deprecated google_web_search and google_web_fetch tools
- Migrate configuration to platform-standard paths
- Lower DEFAULT_TOKEN_LIMIT to 200K and add GLM model catalog
- Require explicit provider selection at startup to avoid ambiguous defaults
- Raise unconfigured subagent turn fallback to 1000 for improved reliability
- Preserve whitespace-only subagent stream deltas for correct streaming output
- Preserve provider quota errors across retry timeouts for clearer error messages
- Keep Codex provider identity coherent during startup
- Fix restored chat rendering one token per line with --continue
- Fix Windows shell guidance for quoted paths
- Preserve CJK input and Windows ripgrep results
- Make MCP discovery non-fatal and stop dropping input during startup
- Preserve valid Responses reasoning IDs
- Add reasoning.fieldName support to classic OpenAI provider
- Fix load-balancer context accounting to prevent context window overruns
- Fix cross-provider ephemeral leak in mixed load balancers
- Preserve streaming newlines in assistant output
- Detect actual image format from magic bytes for Anthropic
- Fix cache double-counting on provider switch
- Retry transient mid-stream connection errors instead of breaking the loop
- Harden secure-store fallback encryption
- Fix active session bucket resolution during 401 force-refresh
- Fix subagent crashes and hangs during launch
- Handle 413 errors with retry and tool name guidance
- Fix /set command to remove model_param alias, keeping only modelparam
- Detect API-key providers with kebab-case base-url config
- Restore checkmark symbol in CLI UI indicators
- Fix apply_patch failures and directory-qualified header validation
- Redact home paths in assignment-style tokens for improved security
- Confirm arguments key before truncating partial JSON; handle tab in export
- Display .LLXPRT_SYSTEM files separately from context files in status
All Changes
- Consolidate release guard regression coverage (Fixes #2597) (#2599) (d69bda6)
- Preserve whitespace-only subagent stream deltas (Fixes #2555) (#2591) (a1dd642)
- Use Bun-native development launcher (Fixes #2342) (#2594) (e3004a8)
- Keep guard tests responsive during release checks (Fixes #2584) (#2593) (2b418c1)
- Honor manual versions for nightly releases (Fixes #2589) (#2592) (cf296c4)
- Require explicit provider selection at startup (Fixes #2481) (#2583) (0d82e78)
- Harden subagent review follow-ups (Fixes #2472) (#2582) (8390626)
- Add Bun/Vitest compatibility shim for bun test runner (Fixes #2475) (#2484) (91e7462)
- Enforce the GenAI enclave boundary (Fixes #2352) (#2546) (2496e89)
- Preserve provider quota errors across retry timeouts (Fixes #2559) (#2568) (11328eb)
- Finish provider-neutral Gemini cleanup (#2573) (#2574) (30de44a)
- Merge pull request #2570 from vybestack/issue2537 (2056a55)
- Remove inherited Gemini names from neutral APIs (#2537) (f10865f)
- Raise unconfigured subagent turn fallback to 1000 (Fixes #2541) (#2566) (c0c27e8)
- Lower DEFAULT_TOKEN_LIMIT to 200K, add GLM catalog, consolidate resolution (Fixes #2527) (#2565) (62a89dc)
- good memory (c7b1b78)
- test: isolate all package tests from real user storage (fixes #2528) (#2545) (d7e6cb0)
- Keep Codex provider identity coherent during startup (Fixes #2544) (#2561) (bf4beab)
- Fix restored chat rendering one token per line with --continue (Fixes #2549) (#2558) (6a34605)
- Merge pull request #2543 from vybestack/issue5228 (a521510)
- Merge remote-tracking branch 'origin/main' into issue5228 (ac29484)
- Keep PowerShell parameter checks field-specific (7f38bc7)
- Make PowerShell schema tests wording-independent (d165445)
- Fix Windows shell guidance for quoted paths (#2538) (d3eefc8)
- fix: preserve CJK input and Windows ripgrep results (#2539) (0820185)
- Fix Windows shell guidance for quoted paths (fdd9502)
- Remove GenAI SDK coupling from leaf packages (Fixes #2351) (#2520) (646bac9)
- Make MCP discovery non-fatal and stop dropping input during startup (Fixes #2516) (#2521) (4cfe82b)
- Thin the CLI entry chain: runtime assembly behind createAgent, kill deep imports, shrink core import surface (Fixes #2378) (#2493) (c3ec9d3)
- refactor(providers): unify OpenAI schema converter and preserve dropped JSON-schema keywords (Fixes #2508) (#2514) (b475247)
- Make startup migration and profile loading resilient (Fixes #2476, Fixes #2477) (#2504) (07c96ca)
- Merge pull request #2515 from vybestack/issue2509 (e1a8c29)
- Merge pull request #2513 from vybestack/issue2505 (21cb698)
- Normalize core memory test paths (#2509) (049f779)
- Merge pull request #2440 from vybestack/issue2349 (d4d8837)
- Fix cross-platform test expectations (#2509) (b3576c8)
- fix: preserve valid Responses reasoning IDs (#2349) (056a7ae)
- fix(providers): trim reasoning field name and make resolveReasoningValue return undefined when unusable (f7a1043)
- Fix Windows test portability (#2509) (5b0a3ea)
- test(providers): use fixed timestamp in streaming test chunks (5cd89e2)
- fix(providers): add reasoning.fieldName support to classic openai provider (Fixes #2505) (6c68c98)
- Merge remote-tracking branch 'origin/main' into issue2349 (d74b84f)
- Merge remote-tracking branch 'origin/main' into issue2349 (1a2e0c1)
- Merge pull request #2507 from vybestack/issue2501 (e47e14a)
- Merge pull request #2503 from vybestack/issue2500 (f70c49d)
- test: align retry assertions with neutral content (#2349) (38a0028)
- fix: preserve neutral retry and AFC history semantics (#2349) (e000e61)
- test(agents): assert exact restored turn in ChatSessionFactory #2500 fold test (5e7ff49)
- fix(providers): preserve currentProfile across provider switches (Fixes #2501) (b8192a7)
- fix(core): preserve carried history across rebuilds when client not yet initialized (#2500) (dc1adcf)
- fix(agents): fold restored history into reused empty HistoryService (Fixes #2500) (b36150d)
- fix(ui): show effective model in profile-qualified response header (Fixes #2501) (de9f5f0)
- Merge remote-tracking branch 'origin/main' into issue2349 (27cbc7b)
- fix: harden neutral message boundaries after review (#2349) (d3d63da)
- Reset exhausted load-balancer failover rotations (Fixes #2492) (#2495) (0c99622)
- Add GPT-5.6 Sol, Terra, and Luna support (Fixes #2483) (#2497) (63b8855)
- feat(providers): support configurable reasoning field name for Ollama streaming (Fixes #2488) (#2491) (ddff241)
- fix(ui): accumulate subagent streaming text instead of replacing each token (Fixes #2008) (#2486) (ec14820)
- Eliminate inverted core→tools dependency and barrel over-import chain (Fixes #2417) (#2473) (a4e7175)
- feat(test): add Bun-backed root test orchestration entry point (Fixes #2463) (#2470) (ae7633d)
- fix(launcher): add self-exit guards to prevent orphaned shim processes on terminal/PTY death (Fixes #2468) (#2474) (4fca1a4)
- Fail loudly on unavailable profile provider; never save LB runtime as a standard profile (Fixes #2479, Fixes #2478) (#2480) (2d97afd)
- fix: exclude prototype keys from executor template property test (#2349) (f1f5eab)
- fix: expose placeholder model through core root (#2349) (2fbd53a)
- Isolate tmux harness from nested sessions (#2471) (87e133d)
- merge main into issue2349 and resolve neutral conflicts (cdf3c33)
- fix(agents): activate subagent providers via isolated runtime, restore LB failover, guard Null message (Fixes #2410) (#2415) (e0a0ee8)
- fix: keep empty merged content as human speaker (#2349) (12eb3ab)
- fix: preserve hook telemetry metadata (#2349) (4ca3fcf)
- fix: harden stream telemetry and validation paths (#2349) (a9deb44)
- fix: address additional OCR migration findings (#2349) (3bd1558)
- fix: address CodeRabbit migration comments (#2349) (6395d50)
- fix: address neutral migration review findings (#2349) (1322381)
- fix(agents): convert legacy Part-shaped arrays in toPartListUnion (#2349) (ec3e3ee)
- fix: remove unnecessary type assertion in boundaryRecovery test (#2349) (913de60)
- fix: remove @google/genai import from issue2410 test (#2349) (32cef38)
- fix: normalize additionalContext injection to ContentBlock[] (#2349) (facc294)
- fix(hooks): convert hook-modified contents back to IContent via toIContents (38ea315)
- fix(format): prettier fix on auto-fixed test file (894ac54)
- fix(post-rebase): resolve type errors from main merge (ba7a7d5)
- fix(lockfiles): remove @google/genai from agents workspace in lockfiles (cc9f7a4)
- fix(core): update tests for neutral IContent/ContentBlock shapes (49b2a3e)
- fix(tests): update assertions for neutral ContentBlock shapes (22157f0)
- fix(cli): extract isIContentLike to reduce expression complexity (67c504f)
- fix(cli): null-check req in loopTestHelpers for strict tsc (5c6d238)
- fix(cli): merge duplicate imports to fix lint:ci --max-warnings 0 (4ad1022)
- fix(cli): extract loopTestHelpers to fix max-lines lint (e704101)
- fix(cli): accept unknown in addPartToResult for AgentRequestInput (19f9097)
- fix(agents): fix formatting + extract modelInfoHelpers for max-lines (4ad131b)
- fix(agents): address OCR findings +...
Release v0.10.0-nightly.260717.d69bda66a
Release v0.10.0-nightly.260717.d69bda66a
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 GPT-5.6 Sol, Terra, and Luna model support
- Added Claude Sonnet 5 to the model menu
- Added Claude Fable 5 classifier refusal notices for Anthropic OAuth users
- Set Anthropic default model to Claude Opus 4.8
- Added GLM model catalog and lowered default token limit to 200K
- Added Ollama Cloud and Makora provider aliases
- Added /introspect slash command
- Exposed tool listing and discovery via the Agent API
- Introduced Agent at the interactive composition root with unified stream handling
- Extended profile-qualified model identity into response headers and status display
- Added settings descriptions and remote admin settings support in the /settings dialog
- Added extensions install/uninstall commands, settings info, and update notifications
- Added hooks UI with context injection, visual indicators, and security warnings
- Added environment variable sanitization service
- Added configurable stream idle timeout with a higher default
- Required explicit provider selection at startup to prevent silent misconfiguration
- Removed deprecated Gemini Code Assist OAuth login; Gemini auth now routes through API key or Vertex
- Disabled google_web_search by default
- Removed experimental OpenTUI UI
- Fixed Windows shell guidance for quoted paths
- Fixed Windows storage crashes and /dev/tty handling
- Fixed CJK input preservation and Windows ripgrep results
- Fixed restored chat rendering when using --continue
- Preserved whitespace-only subagent stream deltas
- Preserved provider quota errors across retry timeouts
- Made MCP server discovery non-blocking at startup and stopped dropping input
- Made startup migration and profile loading resilient to corrupt or missing data
- Kept Codex provider identity coherent during startup
- Reset exhausted load-balancer failover rotations
- Fixed load-balancer model identity and bounded first model responses
- Fixed subagent wizard invocation crash and list_subagents tool
- Fixed error-on-cancel and ESC cancellation for subagents
- Inherited parent max turns for subagents
- Fixed Anthropic OAuth 401 retry loops and rate_limit_error handling
- Fixed stale context limit after profile load
- Fixed #1801: sanitized ANSI escape codes in skill consent prompts
- Fixed #1802: deep-merged hooksConfig/hooks settings across scopes
- Fixed #1877: prevented subagent armTimeout from firing against defunct instances
- Fixed #2002: restored interactive todo updates and paused system messaging during todo pauses
- Fixed #2133: apply_patch validation and export handling
- Fixed #1776: gated initial prompt on startup guards
- Fixed #1878: guarded OAuth dialog against wrong-provider auth prompts
- Fixed #1748: treated empty allowedFunctionNames as no restriction in BeforeToolSelectionHook
- Filtered emojis in todo writes and made emoji filter mode readonly
- Added 0.5% context-limit fudge factor before hard-limit truncation
- Retried compression on provider overload and rate-limit errors
All Changes
- Consolidate release guard regression coverage (Fixes #2597) (#2599) (d69bda6)
- Preserve whitespace-only subagent stream deltas (Fixes #2555) (#2591) (a1dd642)
- Use Bun-native development launcher (Fixes #2342) (#2594) (e3004a8)
- Keep guard tests responsive during release checks (Fixes #2584) (#2593) (2b418c1)
- Honor manual versions for nightly releases (Fixes #2589) (#2592) (cf296c4)
- Require explicit provider selection at startup (Fixes #2481) (#2583) (0d82e78)
- Harden subagent review follow-ups (Fixes #2472) (#2582) (8390626)
- Add Bun/Vitest compatibility shim for bun test runner (Fixes #2475) (#2484) (91e7462)
- Enforce the GenAI enclave boundary (Fixes #2352) (#2546) (2496e89)
- Preserve provider quota errors across retry timeouts (Fixes #2559) (#2568) (11328eb)
- Finish provider-neutral Gemini cleanup (#2573) (#2574) (30de44a)
- Merge pull request #2570 from vybestack/issue2537 (2056a55)
- Remove inherited Gemini names from neutral APIs (#2537) (f10865f)
- Raise unconfigured subagent turn fallback to 1000 (Fixes #2541) (#2566) (c0c27e8)
- Lower DEFAULT_TOKEN_LIMIT to 200K, add GLM catalog, consolidate resolution (Fixes #2527) (#2565) (62a89dc)
- good memory (c7b1b78)
- test: isolate all package tests from real user storage (fixes #2528) (#2545) (d7e6cb0)
- Keep Codex provider identity coherent during startup (Fixes #2544) (#2561) (bf4beab)
- Fix restored chat rendering one token per line with --continue (Fixes #2549) (#2558) (6a34605)
- Merge pull request #2543 from vybestack/issue5228 (a521510)
- Merge remote-tracking branch 'origin/main' into issue5228 (ac29484)
- Keep PowerShell parameter checks field-specific (7f38bc7)
- Make PowerShell schema tests wording-independent (d165445)
- Fix Windows shell guidance for quoted paths (#2538) (d3eefc8)
- fix: preserve CJK input and Windows ripgrep results (#2539) (0820185)
- Fix Windows shell guidance for quoted paths (fdd9502)
- Remove GenAI SDK coupling from leaf packages (Fixes #2351) (#2520) (646bac9)
- Make MCP discovery non-fatal and stop dropping input during startup (Fixes #2516) (#2521) (4cfe82b)
- Thin the CLI entry chain: runtime assembly behind createAgent, kill deep imports, shrink core import surface (Fixes #2378) (#2493) (c3ec9d3)
- refactor(providers): unify OpenAI schema converter and preserve dropped JSON-schema keywords (Fixes #2508) (#2514) (b475247)
- Make startup migration and profile loading resilient (Fixes #2476, Fixes #2477) (#2504) (07c96ca)
- Merge pull request #2515 from vybestack/issue2509 (e1a8c29)
- Merge pull request #2513 from vybestack/issue2505 (21cb698)
- Normalize core memory test paths (#2509) (049f779)
- Merge pull request #2440 from vybestack/issue2349 (d4d8837)
- Fix cross-platform test expectations (#2509) (b3576c8)
- fix: preserve valid Responses reasoning IDs (#2349) (056a7ae)
- fix(providers): trim reasoning field name and make resolveReasoningValue return undefined when unusable (f7a1043)
- Fix Windows test portability (#2509) (5b0a3ea)
- test(providers): use fixed timestamp in streaming test chunks (5cd89e2)
- fix(providers): add reasoning.fieldName support to classic openai provider (Fixes #2505) (6c68c98)
- Merge remote-tracking branch 'origin/main' into issue2349 (d74b84f)
- Merge remote-tracking branch 'origin/main' into issue2349 (1a2e0c1)
- Merge pull request #2507 from vybestack/issue2501 (e47e14a)
- Merge pull request #2503 from vybestack/issue2500 (f70c49d)
- test: align retry assertions with neutral content (#2349) (38a0028)
- fix: preserve neutral retry and AFC history semantics (#2349) (e000e61)
- test(agents): assert exact restored turn in ChatSessionFactory #2500 fold test (5e7ff49)
- fix(providers): preserve currentProfile across provider switches (Fixes #2501) (b8192a7)
- fix(core): preserve carried history across rebuilds when client not yet initialized (#2500) (dc1adcf)
- fix(agents): fold restored history into reused empty HistoryService (Fixes #2500) (b36150d)
- fix(ui): show effective model in profile-qualified response header (Fixes #2501) (de9f5f0)
- Merge remote-tracking branch 'origin/main' into issue2349 (27cbc7b)
- fix: harden neutral message boundaries after review (#2349) (d3d63da)
- Reset exhausted load-balancer failover rotations (Fixes #2492) (#2495) (0c99622)
- Add GPT-5.6 Sol, Terra, and Luna support (Fixes #2483) (#2497) (63b8855)
- feat(providers): support configurable reasoning field name for Ollama streaming (Fixes #2488) (#2491) (ddff241)
- fix(ui): accumulate subagent streaming text instead of replacing each token (Fixes #2008) (#2486) (ec14820)
- Eliminate inverted core→tools dependency and barrel over-import chain (Fixes #2417) (#2473) (a4e7175)
- feat(test): add Bun-backed root test orchestration entry point (Fixes #2463) (#2470) (ae7633d)
- fix(launcher): add self-exit guards to prevent orphaned shim processes on terminal/PTY death (Fixes #2468) (#2474) (4fca1a4)
- Fail loudly on unavailable profile provider; never save LB runtime as a standard profile (Fixes #2479, Fixes #2478) (#2480) (2d97afd)
- fix: exclude prototype keys from executor template property test (#2349) (f1f5eab)
- fix: expose placeholder model through core root (#2349) (2fbd53a)
- Isolate tmux harness from nested sessions (#2471) (87e133d)
- merge main into issue2349 and resolve neutral conflicts (cdf3c33)
- fix(agents): activate subagent providers via isolated runtime, restore LB failover, guard Null message (Fixes #2410) (#2415) (e0a0ee8)
- fix: keep empty merged content as human speaker (#2349) (12eb3ab)
- fix: preserve hook telemetry metadata (#2349) (4ca3fcf)
- fix: harden stream telemetry and validation paths (#2349) (a9deb44)
- fix: address additional OCR migration findings (#2349) (3bd1558)
- fix: address CodeRabbit migration comments (#2349) (6395d50)
- fix: address neutral migration review findings (#2349) (1322381)
- fix(agents): convert legacy Part-shaped arrays in toPartListUnion (#2349) (ec3e3ee)
- fix: remove unnecessary type assertion in boundaryRecovery test (#2349) (913de60)
- fix: remove @google/genai import from issue2410 test (#2349) (32cef38)
- fix: normalize additionalContext injection to ContentBlock[] (#2349) (facc294)
- fix(hooks): convert hook-modified contents back to IContent via toIContents (38ea315)
- fix(format): prettier fix on auto-fixed test file (894ac54)
- fix(post-rebase): resolve type errors from main merge (ba7a7d5)
- fix(lockfiles): remove @google/genai from agents workspace in lockfiles (cc9f7a4)
- fix(core): update tests for neutral IContent/ContentBlock shapes (49b2a3e)
- fix(tests): update assertions for neutral ContentBlock shap...