Repository navigation
Covan 0.3.0
The third tagged release: 181 commits, 18 migrations, agents that can call tools and reach connected apps, retrieval that reads words as well as meaning, a measured 49% cut in what a chat turn costs — and a new licence.
git clone https://github.com/covan-ai/covan
cd covan
cp .env.docker.example .env # set OPENAI_API_KEY
docker compose pull
docker compose upUpgrading from 0.2.0 is the same two lines — docker compose pull then docker compose up. The migrate service runs on the way up and applies all eighteen new migrations; it keeps a ledger, so running it again does nothing.
Both images are published for linux/amd64 and linux/arm64:
ghcr.io/covan-ai/covan-api:0.3.0ghcr.io/covan-ai/covan-web:0.3.0
latest and 0.3 point here too; edge follows main. Pin with COVAN_VERSION=0.3.0 in .env.
Read this first: the licence changed
Covan is now FSL-1.1-ALv2 — the Functional Source License, with Apache 2.0 as the future licence. v0.1.0 and v0.2.0 were AGPL-3.0 and stay AGPL-3.0 permanently; that grant is irrevocable and nothing here takes it back. This release and everything after it is FSL.
If you run Covan for your own team, you gained ground rather than lost it. Internal use is now a named permitted purpose: run it, modify it, host it for as many people as you like, commercially, and publish nothing — ever. Under the AGPL that last point depended on reading §13 and reasoning about whether your own employees counted as remote network users. It is written down now instead of inferred.
Paid professional services around somebody else's Covan are also permitted by name, so implementation partners and consultancies are unaffected.
One use is reserved: making Covan available to others in a commercial product or service that substitutes for it — reselling it as hosting. That is the only thing the licence forbids.
Why: the AGPL did not do the job it was chosen for. §13 begins "if you modify the Program", so anyone could host an unmodified Covan commercially and owe nothing at all — no source offer, no notice, not even a link back. The FSF says as much about the AGPL and Service as a Software Substitute. The licence page sets out what changed, and this post walks the cases.
Two-year clock to Apache 2.0. Each version becomes available under the Apache License 2.0 two years after it is published, granted irrevocably and in advance. So the answer to "what happens if the people behind this stop" is a date, not a promise.
Honest cost: this is not an open-source licence. The OSI has not approved the FSL and does not treat a competing-use restriction as open source, so Covan is source-available. GitHub's sidebar will read "Other" rather than a licence badge. Nothing about the repository changed otherwise: still one tree, still every feature, still no ee/ directory, no licence key, no phone-home, no separate self-host build.
If you need to host Covan for other people, a commercial licence exists for exactly that — efe@covan.app.
What is in this one
Agents that can call tools. A turn can now decide to do something rather than only answer: look something up, run a search, read a service. The harness has a per-turn budget, records what the agent actually did, and prices the whole turn — what one turn was and what it all cost is a table now, not a guess.
Connected apps. A workspace can attach third-party services through Composio and let an agent reach them, with the connection belonging to the workspace rather than to whoever made it. One column is the tenant boundary and the row-level-security suite tests it directly: no row means no.
Retrieval that reads the words as well as the meaning. Vector search now runs alongside full-text search with reciprocal-rank fusion over both, so an exact term that embeddings would smear finds its document. Embeddings moved to halfvec with an HNSW index — half the memory for the same answer — and a coverage report says plainly when nothing the team wrote was close to the question.
Dials the agent owns. Temperature, reasoning effort and web search are per-agent now rather than per-deployment, set by whoever chose that agent's model. Reasoning models can show what they thought before answering.
Reports. A question can produce something you keep — with the passages it stood on attached, so a report can be checked rather than believed.
Routines in both directions. A routine can deliver to a webhook, and something outside can poke a routine to run. Output retention is configurable per routine, 1 to 520 weeks.
A chat that survives the tab. An answer no longer dies with the session that asked for it.
A knowledge explorer, LaTeX and maths rendering, finer-grained syntax highlighting, and an integrations page that catalogues what you can connect.
49% less per chat turn, measured on real traffic. Four places a turn was paying twice, found by measuring rather than reading — including a cache being written that nobody read back, and a default that reached for a flagship model when it did not need to. The monthly token allowance on the hosted build moved to 1M tokens on the back of it.
Also: a workspace usage breakdown that reports by agent and by month and deliberately never by person; API keys that carry their own limit; SQL export carrier limits; and a long tail of edges closed in the tool-output path.
2,827 unit tests across 230 files, plus the row-level-security suite, run against a real Postgres with the policies applied.
What is not promised
The API is unversioned and nothing is promised about compatibility between commits, or between this release and the next. Read docs/self-hosting.md before putting it in front of anyone outside your team — in particular the sections on what to change before the stack faces a network, and the two honest limitations of the built-in rate limiter.