Skip to main content

TestVibe 0.4.5

All release notes · Self-hosted upgrade guide

Archived release. Superseded by 0.4.7. Downloads are no longer offered; these notes remain available for upgrade planning.

Generation is no longer Anthropic-only — it runs on one of three engines, and which models your users may pick is administered from the console instead of being compiled into the build. Containers and Helm chart only; this release published no appliance image. Docker and Kubernetes users upgrade from 0.4.3 — 0.4.4 was tagged but never published, so there is nothing in between.

  • Three generation engines, chosen by the provider the model belongs to. Anthropic drives the Claude Agent SDK (unchanged, and still the default), OpenAI drives the Codex SDK over the Responses API, and OpenRouter or a custom endpoint drive the OpenCode SDK over Chat Completions. A model the catalog does not know still routes to the Claude engine, so an unknown or future provider kind fails safe to the path that has always worked.
  • A self-hosted inference gateway can now drive generation. vLLM, Ollama, LiteLLM, Azure OpenAI and LM Studio all serve /v1/chat/completions, which is what the OpenCode engine speaks — previously that was less a configuration you could get wrong than one that did not exist.
  • A model catalog you administer, on a new Models page in the console: connect a provider with an endpoint and a key, test the connection, refresh the live model list from the provider's own API, and tick which models your users may choose. Discovery and offering are separate acts — refresh is upsert-only, so a model you disabled by hand stays disabled, and an id you typed in by hand survives a refresh that discovered nothing.
  • The Generate dialog has a model picker, and its default is Auto. Auto spends one cheap, capped call on the smallest catalogued model to read the feature and choose from the models your install actually offers.
  • Every screen has a Help button — GitHub sync, connectors and license previously had no route into the documentation at all — and the five most crowded toolbars collapse behind one shared overflow menu.
  • Fixes that matter to a self-hosted install: artifact uploads are no longer capped at 30 MB; the bundled documentation names a registry you can actually pull from; a load run no longer leaves tenant credentials in the shared process environment, nor leaks its timer, proxy and working directory on an error; the runner's egress firewall no longer accepts port 53 to every destination; a setuid-root PATH escalation in the runner is closed; and notification webhooks no longer follow redirects.

The console's separate "AI provider" tab is gone — the Models page absorbed it, so the five TV_LLM_* settings it used to edit are no longer editable there. This is a relocation, not a removal: the stored values are untouched and still honoured, and an install that configured an OpenAI-compatible endpoint that way keeps working with nothing to do. To change one after upgrading, use Models → Connect another AI company, which takes the same base URL and key and then gives you per-model control instead of one endpoint-wide setting. TV_LLM_BASE_URL, TV_LLM_MODELS and TV_LLM_API_KEY are not deprecated by this release.

The new catalog changes nothing by itself. V0272 creates two empty tables — it inserts no rows and performs no backfill, and enabled defaults to false on both. An install that upgrades and configures nothing keeps its compiled-in Claude model list, its ANTHROPIC_API_KEY, its routing to the Claude Agent SDK, and whatever TV_LLM_* endpoint it already had. Nothing about generation moves until an administrator opens the Models page.

Upgrading: Docker — pull the 0.4.5 tag and docker compose up -d. Kubernetes — helm upgrade to chart 0.4.5. There is no 0.4.5 appliance: appliance images are cut by a separate, deliberate build rather than by every tag, and this release did not cut one.

Schema migrations: this release applies four, not one — V0269 (indexes on the referencing side of foreign keys on the hot delete paths), V0270 (a prune key for tv_job, so terminal jobs can be aged out in batches), V0271 (row-level security on six more tables carrying account_id) and V0272 (the model catalog). They run automatically and are one-way. V0269 and V0271 touch existing tables — take a database backup first, and expect the index build to take time proportional to your history.