Skip to content

v1.2.0

Choose a tag to compare

@LeenixP LeenixP released this 24 May 16:13
· 2 commits to main since this release

v1.2.0

Added

  • key/modelId routing — Provider-level routing key (auto-generated from name with ZH→EN mapping) enables key/modelId format routing (e.g. GLM/glm-5.1), eliminating model name conflicts across providers.
  • Multi-model per provider — Each provider supports a models[] array with per-model maxOutputK and maxContextK settings, replacing the single model field.
  • LAN access toggle — Settings page toggle switch to enable LAN access; Quick Start page shows hint about using machine IP for LAN devices.
  • Quickstart dual-mode — Quick Start page shows two usage modes: cc-switch (API Key) and direct config.toml (ChatGPT account), with auto-generated config templates and clickable model selector.
  • Markdown-aware tag parser — Thinking-tag parser tracks backtick code spans/blocks to avoid false positives on literal <thinking> text inside markdown.
  • DeepSeek user_id passthrough — Provider-level userId field passes through as user_id (OpenAI Chat) or metadata.user_id (Anthropic) for account-level KVCache and safety isolation.

Changed

  • Removed active provider concept — Routing is now purely request-based (key/modelId); no more "set as current" button or active badge.
  • Provider data migrationloadProviders() auto-migrates old { model: "xxx" } format to { models: [{ id: "xxx" }] } and generates key for providers without one.
  • Thinking parser conditional skip — OpenAI Chat adapter skips the thinking-tag parser when upstream sends reasoning_content field, preventing false-positive truncation.
  • Anthropic adaptermax_tokens defaults to 65536 (from 8192) to prevent long response truncation.
  • /v1/models endpoint — Returns models in key/modelId format.

Fixed

  • Response truncation on OpenAI Chat — Thinking-tag parser no longer misidentifies literal <thinking> text in markdown content as thinking tags.
  • CI pipeline — Fixed Prettier formatting inconsistencies and ESLint errors that caused all CI runs to fail.