Documentation
31. v0.15.0 — Live AI model discovery
- Created
- Sep 9, 2026
- Updated
- Sep 9, 2026
Release candidate prepared 2026-09-09. This release stops the AI assistant's model picker from being a hand-maintained list: each provider is asked what it currently serves, the answer is cached in your browser for a day, and the built-in list becomes a seed that renders instantly and carries the picker when a provider cannot be reached. Follows v0.14.0.
Added
- Live model lists. The model picker in the AI assistant settings now shows what your provider actually offers. A model released today can be selected without waiting for an app update, and the list reflects the entitlements of the key you pasted.
- Browser-direct discovery for OpenAI, Anthropic, and Google. All three expose a list endpoint the browser can call with your own key, so discovery uses the same trust boundary as chat: the key never leaves your browser except to that provider. OpenAI returns every model on the account with no names, so the list is filtered to chat families (
gpt-*,o*,chatgpt-*), other modalities are dropped, and a date-pinned snapshot is hidden when its rolling alias is also listed. - Server-side discovery for AWS Bedrock and Google Vertex AI. New
POST /api/ai/bedrock/modelsandPOST /api/ai/vertex/modelsroutes list Bedrock inference profiles filtered to text models invocable from the selected region, and Vertex publisher models from thegoogleandanthropicpublishers. Both catalogues are entitlement-sensitive: an inference-only Bedrock API key and an AI Studio Express Vertex project cannot list at all. The routes report that as a reason instead of failing, and the client keeps every built-in entry alongside what comes back, because such projects can often invoke a model they are not allowed to list. - Refresh with an answer. A refresh button next to the model picker re-queries the provider immediately and always reports the outcome: how many models are available, or the provider's own reason when the list did not change (an invalid key, a permission denial, an offline provider). Background refreshes stay silent.
Changed
- The built-in catalog is a seed, not a gate. It still supplies readable names where a provider returns none and it always includes each provider's default model, but it no longer has to be complete.
- Stored model selections survive. Choosing a discovered model and reloading used to reset the pick to the provider default, because the stored id was validated against the built-in list. Any non-empty stored id is now kept; known legacy ids are still migrated to their current counterparts and only an empty or malformed value falls back to the default.
- Cache follows the credential. Discovered lists are cached for 24 hours per provider, fingerprinted by the key they were fetched with, so pasting a different key re-queries and clearing a key drops its cached list. Bedrock re-queries when the region changes.
- The
google-auth-librarypackage is now a direct dependency, used by the Vertex catalogue route to exchange the service-account JSON for an access token. It was already installed transitively at the same version.
Verification
- A frozen dependency install, the complete automated suite (378 files / 3,127 tests), TypeScript, the zero-warning ESLint baseline, and the optimized production build (123/123 static pages) passed during release preparation.
- New regressions cover the discovery module (cache versioning, credential fingerprinting, staleness, abort handling, error reporting, per-provider parsing and filtering for Anthropic pagination, OpenAI snapshot hiding, Gemini generation-method filtering, and the proxy contract), the picker hook (curated first paint, debounce, superseded queries, refresh, cross-picker cache adoption, unmount abort), the Bedrock and Vertex catalogue helpers (denied listings, geo-prefix filtering, context-window variants, launch stages, version pinning), upstream error unwrapping, and the relaxed stored-selection resolution.
- Verified in a running workspace: the Google picker populated from the live Gemini catalogue with a model not present in the seed, the refresh control reported its result, and no new console errors appeared.
Next steps
Set up a provider and pick a model: Setting Up an AI Provider.
Next: Release Notes