Skip to content

Releases: OEvortex/aether

Aether AI v0.3.8

06 Apr 13:27

Choose a tag to compare

Emergency Update

This is an emergency release to fix some issues.

Known Issues

  • OpenAI Response SDK is currently broken. This will be fixed in a future release.

Changes

  • Renamed better-copilot-chat to Aether-AI

v0.3.4

23 Mar 04:48

Choose a tag to compare

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-xxxxxxxx format)
  • Dynamic model discovery via /models endpoint 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 anthropic to openai

🐛 Bug Fixes

SSE Stream Parsing Robustness

  • Fixed Unexpected end of JSON input error 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

20 Mar 08:19

Choose a tag to compare

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

16 Mar 09:03

Choose a tag to compare

[0.3.2] - 2026-03-16

Fixed

  • OpenCode Zen Go Provider Registration: Fixed provider not being registered properly in VS Code.

    • Added fetchModels property to ProviderConfig interface.
    • Added merge logic for fetchModels in buildConfigProvider function.
    • Disabled dynamic model fetching for opencodego to use static models from JSON config instead.
  • Hide thinking/reasoning UI setting: Prevented failures when chp.hideThinkingInUI isn'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: ENOENT error by updating the token counter to use createByEncoderName() from @microsoft/tiktokenizer, which automatically downloads and caches the required BPE encoder file instead of requiring it to be bundled.

    • Removed dependency on external .tiktoken files in the dist folder.
    • Tokenizer now downloads o200k_base.tiktoken on first use and caches it in node_modules/@microsoft/tiktokenizer/model/.
    • Removed TokenCounter.setExtensionPath() method (no longer needed).
    • Updated all token counting methods to properly handle async tokenizer initialization.
  • OpenAI SDK Version Conflict: Fixed client.chat.completions.stream is not a function error 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.
  • OpenAI Handler Streaming Logic: Replaced broken event-based streaming with reliable for await...of loop approach.

    • Changed from client.chat.completions.stream() with .on() events to client.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_reason instead of events.
    • Preserved all existing features: thinking/reasoning content, tool calls, cancellation, activity reporting, usage stats, error handling.
    • More consistent with Anthropic handler implementation.
  • 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 toolCallNames map 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.
  • Content After Reasoning Fix: Fixed issue where content wasn't received after reasoning_content.

    • Changed fallback logic to else if chain to avoid conflicts with native delta processing.
    • Fallback now only triggers when delta.content is missing but message.content exists.
    • Handles providers that put regular content in message instead of delta after reasoning blocks.
    • Ensures content is only extracted when delta is present, with message.content as fallback.
  • 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

16 Mar 04:04

Choose a tag to compare

📦 Release Notes for v0.3.1

✅ What’s New

  • Ollama Provider Base URL Override

    • Added provider-level baseUrl override for Ollama via chp.providerOverrides.ollama.baseUrl.
    • Enables using local/custom Ollama instances (e.g. http://localhost:11434).
  • 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)
    • Includes full provider config (opencodego.json) and settings + account UI support.
  • 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).
  • 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.
  • New “Hide thinking/reasoning” UI Option

    • Added global setting chp.hideThinkingInUI + Settings page toggle.
    • Completely suppresses thinking/reasoning output blocks across all providers.

🛠️ 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).

v0.3.0

13 Mar 11:55

Choose a tag to compare

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.json provider 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.setApiKey command for API key configuration.
    • Configured with static models (fetchModels: false) instead of dynamic API fetching.

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.login and chp.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 baseUrl override support from the settings experience and runtime config merge path.
    • Removed the base URL option from the generic provider wizard.
    • Removed generated chp.<provider>.baseUrl settings and related provider metadata flags.
    • Kept explicit model-level baseUrl support 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.

[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 sdkMode selection 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.js and package.json.
  • OpenCode Provider SDK Modes: OpenCode now supports provider-level anthropic, openai, and oai-response SDK modes.
    • Default OpenCode SDK mode now prefers anthropic, similar to Ollama.
    • Synced the generated chp.opencode.sdkMode setting into package.json.
  • Vercel AI Provider: Added a new OpenAI-SDK-only vercelai provider for the Vercel AI Gateway.
    • Uses https://ai-gateway.vercel.sh/v1 with /models model discovery.
    • Enables open model endpoint fetching and generated provider settings/commands.
  • Cline Provider: Added a new OpenAI-SDK-only cline provider.
    • Uses https://api.cline.bot/api/v1 with authenticated model discovery from https://api.cline.bot/api/v1/ai/cline/models.
    • Respects the shared global context-length manager path for dynamically fetched models.
  • 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_window and max_tokens when available.
    • Imports model tags from the Vercel /models response for fetched models.
  • 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, and qwen3-5-plus.
  • Provider Sync Coverage: Expanded scripts/sync-providers.js so 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.ts type 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 maxInputTokens from context_window - max_tokens and maxOutputTokens from max_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, and GeminiSearchTool.

[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_POOL for better compatibility.

Fixed

  • Open Model Endpoint Support: Fixed openModelEndpoint flag not being respected in DynamicModelProvider. 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 Unauthorized errors 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 openModelEndpoint flag to knownProviders.ts for 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/ to dist/providers/config/ during build.
    • Changed all provider file paths from src/providers/config/ to dist/providers/config/ to match production bundle structure.
    • Affected providers: Zhipu, MiniMax, Moonshot, and all dynamic model providers.

[0.2.6] - 2026-03-02

Added

Provider Sync Automation:

  • sync-providers.js Script: Created automated synchronization script to generate all provider-related artifacts from a single source of truth (knownProviders.ts).
    • Auto-generates ProviderKey enum in src/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

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.setApiKey command

Declarative Provider System:

  • Zero-Code Provider Definition: Providers can now be defined entirely in knownProviders.ts without needing individual provider folders, classes, or JSON config files.
  • Unified SDK Compatibility: All providers now support a unified configuration structure with openai and anthropic SDK compatibility modes.
  • Automatic SDK Switching: Added sdkMode setting for...
Read more

v0.2.9

10 Mar 11:30

Choose a tag to compare

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 to oai-response.
  • OpenCode now supports provider-level anthropic, openai, and oai-response SDK modes, with anthropic preferred by default.
  • Added the new vercelai provider for the Vercel AI Gateway with /models discovery and open model endpoint fetching.
  • Added the new cline provider with authenticated model discovery from the ChatJimmy/Cline API path.
  • Added dedicated Vercel AI context resolution using context_window and max_tokens metadata.
  • Added 1M-context overrides for Qwen 3.5 Flash and Plus variants.
  • Expanded sync-providers.js so 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.ts typing 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

04 Mar 17:10

Choose a tag to compare

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

02 Mar 15:27

Choose a tag to compare

What's New in v0.2.6

✨ New Features

Provider Sync Automation

  • New sync-providers.js script 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 DynamicModelProvider for 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 /models endpoint

🔧 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 gemini SDK 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

25 Feb 11:29

Choose a tag to compare

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