v0.1.0-rc1
Pre-releaseA release candidate. 0.1.0 was withdrawn — its tag, its GitHub release and its images are gone, and this is what replaces them. latest deliberately does not point here: a candidate that takes latest is not a candidate.
ghcr.io/deeplethe/utopia:0.1.0-rc1
docker-compose.yml defaults to this tag, so the quick start in the README works unchanged.
Reasoning
inverseOf and subPropertyOf reach the reasoner, and both can be declared from the ontology page instead of through SQL. A rule is looked up by the predicate that declared it rather than the one it produced; the two are the same for transitivity and symmetry, which is why the difference stayed invisible until a rule crossed predicates and its results were silently dropped.
Agents and tools
MCP, with personal access tokens that carry a scope without carrying the whole person.
A tool call whose arguments did not parse, or that is missing a required argument, is refused instead of falling back to the user's own question — that fallback produced answers which looked ordinary and were built on the wrong input.
Tool calls and their results replay across turns, so the model can see what it already did. Without that, "translate that" re-ran the whole round and, with several entities sharing a name, came back describing a different set.
Chat
An answer survives the reader leaving. Generation is detached from the request, the in-flight answer lives outside the component that displays it, and a running generation can be reattached to after a reload. The action trace is drawn at the point in the reply where each call happened rather than stacked above it, and citations appear once the answer is finished.
Graph
Edges between the same two nodes fan out into separate arcs instead of overlapping on one line, where their labels used to pile into unreadable stacks. An inverse-derived edge is folded into the edge it came from — one fact said two ways is not two facts.
Also
Rate limits are waited out and reported, and an empty balance is distinguished from one. Switching knowledge base moves the URL, which is what actually changes the base. Star history, from @Danmushu's contribution in #163, rendered by a script in this repository.
Schema migrations run on startup. This is still v0.1: the schema moves between versions.