Skip to content

v1.36.0 — The server registry

Choose a tag to compare

@fuzzifikation fuzzifikation released this 05 Sep 10:03
· 79 commits to main since this release

Everything since v1.35.1 in one release: servers are now their own registry (vllm-copilot.servers, self-migrating), each credential identity is its own server with its own Dashboard node, backend type and name — plus Add Server (no model), per-project workspace overrides, and a searchable model picker in Model Settings.

Install: download the .vsix below, then in VS Code: Extensions ⋯ Deploy Extension from VSIX Package. A full VS Code restart after updating is recommended.


v1.36.0 - The server registry

The goal of this release: with server facts stored inside every model entry, any server-level feature had to be built, stored and edited once per model copy, and none of the server-level UX and UI improvements we want could land. Servers becoming one registry entry each is the backbone for them. This release lays that foundation; the features built on it come later.

Added

  • Searchable model picker in Model Settings. OpenRouter's ~400-model catalog is now navigable: click the model dropdown, type to narrow - any part of the id matches - arrow keys move through the matches, Enter or a click selects. Same behavior on every backend.
  • Servers without a model. A new vLLM-Copilot: Add Server (no model) command registers a server on its own, and Remove Server sits in the Dashboard's server context menu. Model list and registry never drift apart.

Changed

  • Breaking: servers are now a registry. Connection settings (URL, headers, backend type, label) move out of each model entry into a new vllm-copilot.servers setting; every model references its server's entry id. This is the one breaking change of the release, and it migrates itself: on first start, models sharing URL + credentials become one entry each, differing credentials stay separate servers. The migration never deletes a settings value; hand-edited leftovers are kept and reported in the Output channel. Rolling back means restoring settings.json by hand or an older VSIX.

  • Every entry is its own server. Two entries on one URL (two OpenRouter keys, two tenants on one gateway) get their own Dashboard node, Deep-Dive panel, backend type, and name. Rename Server renames exactly the entry you right-click, OpenRouter entries included. Remove Server deletes exactly that entry, and still refuses while any model references it. http://EXAMPLE.com, http://example.com, and http://example.com:80 are one server. New model ids read <model> on <server entry id>, so two models on one host can never collide.

  • Workspace settings override per-project - on purpose. A vllm-copilot.models/vllm-copilot.servers copy in a workspace .vscode/settings.json replaces your global config for that folder: different projects, different servers and model sets. Command and Dashboard edits then write to the layer that is actually in effect (the workspace copy when one exists), so edits never vanish into an invisible layer. Only override in folders you trust - a repo's settings file decides which servers receive your requests and headers.

Fixed

  • Various bug fixes: Deep Dive no longer revives old credentials after you rotate a server's auth, and the OpenRouter provider list refreshes after a key swap.
  • Test & Refresh is faster and gentler on your servers. Each server's model list is fetched once per pass, regardless of how many models it hosts. Ten models on one vLLM box used to mean ten identical requests, and OpenRouter's ~500 KB catalog was downloaded per model per pass.
  • Model Settings lists real models for LM Studio and Ollama. Each backend is now asked on its own documented endpoint, so Ollama's loaded models and LM Studio's downloads show up, and Test & Refresh matches only models that can actually serve you.

v1.35.2

Added

  • Personalities now work in the Agents window. Presets previously matched only the classic chat prompt; the Agents window ships different text. Your configured personality now applies there too: persona voice, the prohibited_actions block replaced by a user-owned security protocol (the model surfaces concrete risks, you decide, no silent refusals), and no self-assigned "Co-authored-by: Copilot" commit trailer. Raw (Model Natural) strips the assigned assistant identity on both surfaces instead, classic opener included: no identity, model as trained. Default leaves prompts untouched.
  • Personality presets got slimmer. The boilerplate stripping (safety rules, "your name is GitHub Copilot" identity) now lives in one shared file instead of a copy inside each preset, applied automatically to every personality, custom replacement files included. Behavior is unchanged; Default stays vanilla. When Microsoft edits its boilerplate, one fix now covers every personality.

Changed

  • The model picker now shows only what actually works. An unreachable server, or a model the server does not currently serve (swap, unload), drops the model from the picker entirely instead of leaving a dead entry: settings remain your configured inventory, the picker is the live one. When the server comes back or starts serving the model again, it reappears on its own, no reload, no manual refresh. Budgets are still never fabricated.

Fixed

  • Personality updates now reach models that already have one. Applying a personality copies the preset into extension storage, and that copy was only refreshed by re-selecting the personality. After an update that changed a preset (like the Agents-window rules above), existing models kept applying the stale rules until you re-picked it. Bundled presets are now re-synced on extension startup; user-created personalities are never touched.
  • Consistent "Output Length" label: the config-schema tool's AI guide and the Model Settings hint still quoted the old lowercase picker label; both now match the actual dropdown.