Releases: OEvortex/aether
Aether AI v0.3.8
v0.3.4
Release Notes - v0.3.4
Release Date: March 23, 2026
🚀 New Features
MiniMax M2.7 Model Support
- Added MiniMax M2.7 model to OpenCode Zen Go provider configuration with Anthropic SDK mode support.
Seraphyn Provider Integration
- New standalone AI provider integration for Seraphyn AI
- Custom fetch-based implementation with dedicated SSE parser
- OpenAI-compatible endpoint at
https://seraphyn.ai/api/v1 - API key authentication support (
sk-xxxxxxxxformat) - Dynamic model discovery via
/modelsendpoint with 10-minute cooldown - Robust JSON recovery for malformed tool-call arguments
- Full integration with account management, settings UI, and provider configuration
- Multi-account support with load balancing
🔄 Changes
Code Formatting
- Standardized code formatting across multiple files
- Converted tabs to spaces for consistent indentation
- Standardized string quotes from single quotes to double quotes
- Improved code readability and maintainability
Default SDK Mode
- Changed default SDK compatibility mode for OpenCode and OpenCode Zen Go from
anthropictoopenai
🐛 Bug Fixes
SSE Stream Parsing Robustness
- Fixed
Unexpected end of JSON inputerror when providers send non-standard SSE data - Skip empty
data:lines before JSON parsing - Skip SSE comment lines that some providers send as metadata
- Skip truncated/incomplete JSON objects from TCP chunking
- Buffer partial SSE lines across TCP chunks
Tool-Call Argument Recovery
- Fixed tool calls failing when providers emit malformed JSON arguments
- Added aggressive JSON normalization: quote bare keys, quote bare string values, escape invalid backslashes, strip code fences
- Falls back to
{ raw: "<original>" }when recovery fails instead of dropping the tool call - Fixed TypeScript type errors in the Seraphyn handler module
📦 Installation
Install or update the extension from the VS Code Marketplace:
- Search for "Copilot ++" in the Extensions view
- Or install directly:
ext install OEvortex.better-copilot-chat
🔗 Links
v0.3.3
What's New in v0.3.3
Added
-
MiMo v2 Model Support: Added context window and capability configuration for Xiaomi MiMo v2 models.
- MiMo v2 Pro: 1M total context (960K input / 64K output).
- MiMo v2 Omni: 256K total context (224K input / 32K output) with image input (vision) support.
-
Custom Model Management Panel: Added a new featured panel in the Settings page for managing OpenAI/Anthropic Compatible custom models.
- Direct "Add custom model" action from the provider card.
- "Manage models" button to view and edit existing custom models.
- Surfaced custom model count in the provider card.
-
Enhanced Load Balancing Toggle: Improved load balancing toggle to update only affected provider cards and header stats instead of full-page rerenders.
Changed
- Settings Page UX Refinement: Made the unified Settings page more streamlined for provider management.
- Removed deprecated load balance settings and strategies from state management.
- Unified provider management section for configuring provider settings and load balancing.
- Streamlined rendering for provider configurations and load balancing options.
- Enhanced toggle functionality with in-place card updates.
Fixed
- Add Custom Models UI Not Showing: Fixed the Model Editor form failing to render and the compatible provider card potentially not appearing in the Settings page.
- Settings Page Blink / Flicker: Reduced visible blinking in the unified Settings page by replacing full-page rerenders with in-place card/header updates for provider load-balance changes.
- Thinking/Reasoning UI Split on OpenAI Providers: Fixed thinking blocks being prematurely ended and reopened during streaming on OpenAI-compatible providers (including custom models).
Code Quality
- Biome Linting: Updated codebase to pass Biome linter checks with improved code style consistency.
v0.3.2
[0.3.2] - 2026-03-16
Fixed
-
OpenCode Zen Go Provider Registration: Fixed provider not being registered properly in VS Code.
- Added
fetchModelsproperty toProviderConfiginterface. - Added merge logic for
fetchModelsinbuildConfigProviderfunction. - Disabled dynamic model fetching for
opencodegoto use static models from JSON config instead.
- Added
-
Hide thinking/reasoning UI setting: Prevented failures when
chp.hideThinkingInUIisn't registered in the active VS Code configuration schema by falling back to storing the preference in extension global state. -
Fixed reasoning content appearing interspersed with regular content in the UI by adding direct processing of delta.content in the SSE handler for normalized Python-style completion chunks.
-
Token Counter Initialization: Fixed
Failed to load from BPE encoder file stream: ENOENTerror by updating the token counter to usecreateByEncoderName()from@microsoft/tiktokenizer, which automatically downloads and caches the required BPE encoder file instead of requiring it to be bundled.- Removed dependency on external
.tiktokenfiles in thedistfolder. - Tokenizer now downloads
o200k_base.tiktokenon first use and caches it innode_modules/@microsoft/tiktokenizer/model/. - Removed
TokenCounter.setExtensionPath()method (no longer needed). - Updated all token counting methods to properly handle async tokenizer initialization.
- Removed dependency on external
-
OpenAI SDK Version Conflict: Fixed
client.chat.completions.stream is not a functionerror by updating the OpenAI SDK dependency from v4.52.7 to v6.7.0.- The
.stream()method is only available in OpenAI SDK v5+. - Updated dependency to match the version required by
@vscode/chat-lib.
- The
-
OpenAI Handler Streaming Logic: Replaced broken event-based streaming with reliable
for await...ofloop approach.- Changed from
client.chat.completions.stream()with.on()events toclient.chat.completions.create()with direct chunk iteration. - Improved compatibility with OpenAI-compatible providers that don't fully support the event-based API.
- Manual tool call argument accumulation instead of relying on SDK auto-accumulation.
- Tool call completion detected via
choice.finish_reasoninstead of events. - Preserved all existing features: thinking/reasoning content, tool calls, cancellation, activity reporting, usage stats, error handling.
- More consistent with Anthropic handler implementation.
- Changed from
-
Empty Response Fallback: Added fallback mechanism to handle cases where no content is received during streaming.
- Tracks last complete message from API chunks for fallback usage.
- Reports complete message if streaming fails to produce incremental content.
- Handles providers that return single complete response instead of streaming chunks.
- Logs warning when no response content is received at all.
-
Tool Calling Fix: Fixed tool name capture in streaming handler.
- Added
toolCallNamesmap to track tool names from delta chunks. - Tool names are now captured from the first delta that contains
function.name. - Fixed issue where tools were reported as "unknown_tool" instead of actual names like "read_file".
- Tool name capture happens before argument accumulation to ensure correct ordering.
- Added
-
Content After Reasoning Fix: Fixed issue where content wasn't received after
reasoning_content.- Changed fallback logic to
else ifchain to avoid conflicts with native delta processing. - Fallback now only triggers when
delta.contentis missing butmessage.contentexists. - Handles providers that put regular content in
messageinstead ofdeltaafter reasoning blocks. - Ensures content is only extracted when delta is present, with message.content as fallback.
- Changed fallback logic to
-
Thinking Content Display Fix: Fixed broken thinking/reasoning output display.
- Changed from immediate reporting to buffer accumulation for thinking content.
- Thinking content is now reported as a single block when thinking ends.
- Prevents VS Code from treating each thinking delta as a separate bullet point.
- Thinking buffer is flushed when regular content starts or stream ends.
v0.3.1
📦 Release Notes for v0.3.1
✅ What’s New
-
Ollama Provider Base URL Override
- Added provider-level
baseUrloverride for Ollama viachp.providerOverrides.ollama.baseUrl. - Enables using local/custom Ollama instances (e.g.
http://localhost:11434).
- Added provider-level
-
OpenCode Zen Go Provider
- Added a new OpenCode Zen Go provider with dedicated endpoints for:
- GLM-5 and Kimi K2.5 (OpenAI SDK
/chat/completions) - MiniMax M2.5 (Anthropic SDK
/messages)
- GLM-5 and Kimi K2.5 (OpenAI SDK
- Includes full provider config (
opencodego.json) and settings + account UI support.
- Added a new OpenCode Zen Go provider with dedicated endpoints for:
-
AVA Supernova Provider
- Added new free AVA Supernova provider (proxied through
https://ava-supernova.com/api/v1/free/chat). - Updated token limits to match AVA docs (128K context, 4K output; input max = 126,976).
- Added new free AVA Supernova provider (proxied through
-
Knox Provider
- Added new OpenAI SDK-compatible Knox provider (
https://api.knox.chat/v1) with model discovery. - Includes provider config, command registration, and account support.
- Added new OpenAI SDK-compatible Knox provider (
-
New “Hide thinking/reasoning” UI Option
- Added global setting
chp.hideThinkingInUI+ Settings page toggle. - Completely suppresses thinking/reasoning output blocks across all providers.
- Added global setting
🛠️ Fixes
- Knox Token Limit Calculation
- Fixed token-limit logic for Knox models to use:
maxInputTokens = context_length - max_completion_tokens
- Ensures accurate token budgeting for Knox responses (vs. previously using
max_tokens).
- Fixed token-limit logic for Knox models to use:
v0.3.0
Changelog
All notable changes to this project will be documented in this file.
[0.3.0] - 2026-03-13
Added
- Pollinations AI Provider: Added a new Pollinations AI provider with OpenAI-compatible API and diverse model selection.
- Added
pollinations.jsonprovider configuration with 28 static models including GPT-5 variants, Gemini, Claude, DeepSeek, and more. - Added provider support in account management, account UI, and status bar components.
- Added
chp.pollinations.setApiKeycommand for API key configuration. - Configured with static models (fetchModels: false) instead of dynamic API fetching.
- Added
Changed
-
Qwen CLI Provider OAuth Flow: Updated the qwencli provider to use a proper OAuth device flow with PKCE support.
- Added complete OAuth Device Authorization Grant (RFC 8628) implementation
- Added PKCE support for secure authentication
- Added support for multiple OAuth accounts with automatic switching when quota is exhausted
- Added CLI fallback for when OAuth quota is exceeded
- Added proper DashScope headers for API compatibility
- Added new commands:
chp.qwencli.loginandchp.qwencli.addAccount - Improved token refresh and credential management
-
Settings Page UI Refresh: Refined the unified settings page to feel smoother and easier to scan.
- Added a cleaner header with quick provider/setup summary stats.
- Improved provider search, result summary text, and provider status badges.
- Polished card spacing, hover transitions, editor sections, and save actions for a more modern settings experience.
Removed
- Provider Base URL Override: Removed provider-level
baseUrloverride support from the settings experience and runtime config merge path.- Removed the base URL option from the generic provider wizard.
- Removed generated
chp.<provider>.baseUrlsettings and related provider metadata flags. - Kept explicit model-level
baseUrlsupport where model configuration already supports it.
Fixed
- Copilot Chat Context Window Token Counting: Improved token counting for VS Code Copilot Chat so the Context Window panel can render usage more accurately for custom models.
- Extended the shared token counter to support newer VS Code language-model message/content shapes such as
LanguageModelChatMessage2,LanguageModelToolResultPart2,LanguageModelDataPart, and thinking parts. - Updated generic provider token-count handling so VS Code can request counts using the newer chat message API types.
- Improved counting for structured tool result content and text-like data payloads used in modern chat requests.
- Extended the shared token counter to support newer VS Code language-model message/content shapes such as
[0.2.9] - 2026-03-10
Changed
- Blackbox AI Provider Settings: Blackbox now uses the official API flow and requires a user-configured API key.
- Removed the old built-in/default-key behavior.
- Added provider-level
sdkModeselection for Blackbox, similar to Ollama. - Renamed the Responses mode identifier to
oai-response. - Default Blackbox SDK mode now targets the official Responses API route.
- Synced generated provider settings and commands through
sync-providers.jsandpackage.json.
- OpenCode Provider SDK Modes: OpenCode now supports provider-level
anthropic,openai, andoai-responseSDK modes.- Default OpenCode SDK mode now prefers
anthropic, similar to Ollama. - Synced the generated
chp.opencode.sdkModesetting intopackage.json.
- Default OpenCode SDK mode now prefers
- Vercel AI Provider: Added a new OpenAI-SDK-only
vercelaiprovider for the Vercel AI Gateway.- Uses
https://ai-gateway.vercel.sh/v1with/modelsmodel discovery. - Enables open model endpoint fetching and generated provider settings/commands.
- Uses
- Cline Provider: Added a new OpenAI-SDK-only
clineprovider.- Uses
https://api.cline.bot/api/v1with authenticated model discovery fromhttps://api.cline.bot/api/v1/ai/cline/models. - Respects the shared global context-length manager path for dynamically fetched models.
- Uses
- Vercel AI Context Handling: Added a dedicated Vercel AI context resolver built on top of the global context manager.
- Uses Vercel model metadata fields like
context_windowandmax_tokenswhen available. - Imports model tags from the Vercel
/modelsresponse for fetched models.
- Uses Vercel model metadata fields like
- Qwen 3.5 Large-Context Overrides: Added 1M-context special handling for Qwen 3.5 Flash and Plus model variants.
- Covers naming variants such as
qwen3.5-flash,qwen3.5-plus,qwen3-5-flash, andqwen3-5-plus.
- Covers naming variants such as
- Provider Sync Coverage: Expanded
scripts/sync-providers.jsso provider additions now sync more account-related artifacts automatically.- Also updates the Add Account provider list, provider display-name map, and API-key account sync list from known provider metadata.
- Settings Page Provider Settings: The Settings page now renders provider settings from the extension configuration schema instead of relying on a small hardcoded field list.
- Supports client-side editing of provider settings like base URL, endpoint, SDK mode, and other manifest-backed provider options.
Fixed
- Settings Page Search: Fixed the provider search input in the unified settings page so filtering works while typing instead of effectively resetting interaction on re-render.
- Settings Page Provider Controls: Fixed Blackbox so it is no longer treated like a no-config provider and now exposes provider settings consistently.
- Known Provider Merge Typing: Fixed a
knownProviders.tstype error when applying preferred provider base URLs during config merging. - Vercel AI Model Import Filtering: Vercel AI model discovery now only imports entries where
type === "language". - Vercel AI Vision Capability Detection: Imported Vercel models now enable vision support when their tags include
vision. - Vercel AI Token Limit Mapping: Vercel AI imported models now map
maxInputTokensfromcontext_window - max_tokensandmaxOutputTokensfrommax_tokens. - Dynamic Model Parser Typing: Fixed TypeScript typing for custom model-parser filter fields used during dynamic model imports.
- Cline Account Flows: Fixed Cline so it participates in the explicit Add Account and account-sync flows.
- Settings Page API Key Refresh: Fixed account-based API key changes from the Settings page so providers refresh and appear correctly in the VS Code language-model picker.
[0.2.8] - 2026-03-04
Removed
- Gemini CLI and Antigravity Providers: Removed both providers as they were leading to account banning.
- Gemini SDK Utilities: Completely removed Gemini SDK-related code, including
GeminiStreamProcessor,GeminiSdkCommon, andGeminiSearchTool.
[0.2.7] - 2026-03-03
Added
- Blackbox AI Default API Key: Added
defaultApiKey: "xxx"to Blackbox AI provider, allowing it to work without explicit user configuration. - User-Agent Pool: All providers now use rotating browser-like User-Agent strings from
USER_AGENT_POOLfor better compatibility.
Fixed
- Open Model Endpoint Support: Fixed
openModelEndpointflag not being respected inDynamicModelProvider. Providers with open model endpoints (NVIDIA, Chutes, Hugging Face, Kilo AI, LightningAI, Ollama, OpenCode, Zenmux, Blackbox, etc.) now correctly fetch models without requiring an API key. - Blackbox AI Authorization: Fixed
401 Unauthorizederrors by properly using the default API key when no user-configured key exists.
[0.2.6] - 2026-03-02
Added
- Open Model Endpoint Support: Added
openModelEndpointflag toknownProviders.tsfor providers that allow model fetching without an API key.- Enabled for: AIHubMix, Blackbox AI, Chutes AI, DeepInfra, Hugging Face, Kilo AI, LightningAI, ModelScope, NanoGPT, NVIDIA NIM, Ollama, OpenCode, and Zenmux.
- Blackbox AI Headers: Added required custom headers (
customerId,userId,version) to Blackbox AI provider configuration.
Fixed
-
Dynamic Model Update Logic: Fixed an issue where background model updates were skipped when models were already cached. The system now always triggers a background fetch for providers with dynamic model support to ensure config files and cache stay up-to-date.
-
Production Config File Paths: Fixed issue where provider config files could not be found in production builds.
- Updated esbuild configuration to copy provider JSON configs from
src/providers/config/todist/providers/config/during build. - Changed all provider file paths from
src/providers/config/todist/providers/config/to match production bundle structure. - Affected providers: Zhipu, MiniMax, Moonshot, and all dynamic model providers.
- Updated esbuild configuration to copy provider JSON configs from
[0.2.6] - 2026-03-02
Added
Provider Sync Automation:
sync-providers.jsScript: Created automated synchronization script to generate all provider-related artifacts from a single source of truth (knownProviders.ts).- Auto-generates
ProviderKeyenum insrc/types/providerKeys.ts - Auto-updates provider configurations in
src/accounts/accountManager.ts - Auto-syncs commands, settings, and activation events in
package.json - Run with:
npm run sync-providers
- Auto-generates
New Providers:
- NanoGPT: Added support for NanoGPT provider (OpenAI SDK-compatible)
- Endpoint:
https://nano-gpt.com/api/v1 - Dynamic model fetching enabled
- API key configuration via
chp.nanogpt.setApiKeycommand
- Endpoint:
Declarative Provider System:
- Zero-Code Provider Definition: Providers can now be defined entirely in
knownProviders.tswithout needing individual provider folders, classes, or JSON config files. - Unified SDK Compatibility: All providers now support a unified configuration structure with
openaiandanthropicSDK compatibility modes. - Automatic SDK Switching: Added
sdkModesetting for...
v0.2.9
0.2.9 - 2026-03-10
Changed
- Blackbox AI now uses the official API flow with user-configured API keys, provider-level
sdkMode, and the default route set tooai-response. - OpenCode now supports provider-level
anthropic,openai, andoai-responseSDK modes, withanthropicpreferred by default. - Added the new
vercelaiprovider for the Vercel AI Gateway with/modelsdiscovery and open model endpoint fetching. - Added the new
clineprovider with authenticated model discovery from the ChatJimmy/Cline API path. - Added dedicated Vercel AI context resolution using
context_windowandmax_tokensmetadata. - Added 1M-context overrides for Qwen 3.5 Flash and Plus variants.
- Expanded
sync-providers.jsso provider additions sync more account-related artifacts automatically. - The Settings page now renders provider settings from the extension configuration schema instead of a hardcoded field list.
Fixed
- Fixed the Settings page provider search so filtering works while typing.
- Fixed Blackbox provider settings so it is no longer treated as a no-config provider.
- Fixed
knownProviders.tstyping when applying preferred provider base URLs. - Fixed Vercel AI model import filtering, vision capability detection, and token limit mapping.
- Fixed TypeScript typing for custom dynamic model parser filter fields.
- Fixed Cline participation in Add Account and account-sync flows.
- Fixed provider refresh after Settings page API key changes so models reappear correctly in the VS Code language-model picker.
v0.2.8 - Removed Gemini CLI and Antigravity Providers
Removed
- Gemini CLI and Antigravity Providers: Removed both providers as they were leading to account banning.
- Gemini SDK Utilities: Completely removed Gemini SDK-related code, including \GeminiStreamProcessor, \GeminiSdkCommon, and \GeminiSearchTool.
This release focuses on improving account safety by removing providers that were causing account banning issues.
Copilot ++ v0.2.6
What's New in v0.2.6
✨ New Features
Provider Sync Automation
- New
sync-providers.jsscript for automated provider management - Single source of truth in
knownProviders.ts - Auto-generates enums, configs, and package.json entries
- Run:
npm run sync-providers
NanoGPT Provider
- Added NanoGPT support (OpenAI SDK-compatible)
- Endpoint:
https://nano-gpt.com/api/v1 - Dynamic model fetching enabled
- Configure via
chp.nanogpt.setApiKey
Declarative Provider System
- Zero-code provider definition in
knownProviders.ts - Unified OpenAI/Anthropic SDK compatibility
- Automatic SDK switching for dual-mode providers
- Auto-sync package.json settings and activation events
Dynamic Model Discovery
- Generic
DynamicModelProviderfor all OpenAI-compatible providers - Auto-updates static JSON configs when new models are discovered
- Intelligent URL construction with path normalization
- Duplicate prevention for model registrations
Enhanced Model Support
- Claude Opus 4.6: 1M token context, 64K output
- Ollama: Full dynamic support with dual-SDK mode
- AIHubMix: Dynamic model discovery via
/modelsendpoint
🔧 Improvements
- ~40% Codebase Reduction: Removed 10+ specialized provider folders (kilo, chutes, huggingface, lightningai, opencode, zenmux, nvidia, mistral, minimax, moonshot)
- Faster Startup: Returns static configs immediately in silent mode
- Better Model Discovery: Background fetching when user interacts with chat
🐛 Bug Fixes
- Settings page rendering for declarative providers
- Mistral duplicate model registration
- URL construction for nested path structures
- Quota display in status bar (Antigravity/Cloud Code)
- Leader election for periodic status updates
- User activity detection (30min timeout)
- Gemini vision support across all providers
- Removed
<think/>placeholder logic - TypeScript type compatibility fixes
- Ollama vision capabilities
- NVIDIA auto-registration
- Gemini CLI provider fixes (404 errors, tool schema sanitization)
- Gemini CLI token refresh improvements
🔨 Code Refactoring
- Gemini SDK consolidation with shared utilities
- New
geminiSDK mode for Gemini-compatible APIs - Shared stream processor (~1,500 lines deduplicated)
Full Changelog: https://github.com/OEvortex/better-copilot-chat/blob/main/CHANGELOG.md
v0.2.5
v0.2.5 - Simplified Provider Settings
Added
- Unified Provider Catalog: New streamlined settings panel showing all 22+ providers in one place with search functionality
- SDK-Based Categories: Providers now organized by SDK type (openai, anthropic, oauth)
- No-Configuration Providers: Blackbox AI and ChatJimmy now work without API key
- Universal Wizard Support: Wizard button now works for ALL providers
- Codex Provider Enhancements: Dual authentication support (API key + OAuth)
- Antigravity OAuth Login: New wizard button for Google Cloud OAuth
- OpenAI/Anthropic Compatible Provider: Full configuration support with endpoint options
- Dynamic Default Base URL: All providers display default base URL in settings
Removed
- Account Manager UI (replaced by Settings page)
- Copilot Overview Page (replaced by Settings page)
- Various non-working OAuth and refresh commands
Changed
- Kilo AI Provider: Added comprehensive support
- Universal Multi-Account Support: All 22 providers supported
- Modern Account Manager UI: Glassmorphism aesthetic
Fixed
- Ollama Tool Calling Support
- Codex Token Limits (400K context)
- Schema Sanitization for Antigravity/Gemini CLI
- XML-Style Tool Parsing