Every open-source release in the TerminusDB 12.0 line, newest first. Releases marked with a feature page link have a dedicated write-up of what shipped.
v12.0.8
Released 12 October 2026 · GitHub release · Feature page · Full changelog
Thanks to our two new contributors in this 12.0.8 release 👏
New functionality
- UuidV7 key strategy: generated UUIDs, arbitrary IRIs (!!), WOQL (#2547)
Developer experience (DX) improvments
- Faster CLI and integration test battery via parallelism and startup trims (#2543)
Maintenance and Bugfixes
- Fix unbundle failing with unknown_layer_reference across stores (#2540)
- Fix significant insert performance regressions (#2529)
- Fix field-level
@unfoldbeing silently ignored forListand multi-dimArrayproperties (#2513) - Accept
@sharedclass annotation in GraphQL frames (#2533) - Remove leftover GraphQL debug logging that panics on multibyte UTF-8 (#2532)
- Put with
charset=utf-8regression on PUT prevented document write (#2544) - Fix garbled UTF-8 in streaming history endpoint response (#2545)
- Bump JS integration test packages: axios, qs, source-map-js, js-yaml, brace-expansion, joi, stream-json
- Bump rustls from 0.23.43 to 0.23.45 in /src/rust (#2526)
- JWT scopes (upgrade) now resolves roles by id, not display name (#2539)
- Remove a debug log detected via #2530 (#2534)
- Fix GraphQL
__typenameand fragment resolution on dynamically generated types (#2551) - Fix WOQL JSON boolean and list scalar insertion (#2546)
New Contributors (thank you!!)
v12.0.7
Released 10 August 2026 · GitHub release · Feature page · Full changelog
Thanks to no less than three new contributers in this 12.0.7 release 👏
New clients
- Add Elixir Client link to README (#2455)
New functionality
Maintenance and Bugfixes
- Fix RFC 3986 scheme detection in
uri_has_protocol/1(#2458) - Fix false patch conflict on xsd:decimal properties (#2462)
- Add
@sharedto rust change detection algorithm (#2478) - docs: document protoc and make install-deps prerequisites for macOS build (#2502)
- Upgrade swipl to 10.0.2, with the
jwtimplementation backed by Rust, (#2507)
New Contributors
- @Kidnix101 made their first contribution (#2486)
- @drernie made their first contribution (#2502)
- @thanos made their first contribution (#2455)
v12.0.6
Released 24 June 2026 · GitHub release · Feature page · Full changelog
New functionality
@sharedclass-level annotation for cascade-deleted shared documents, (#2437)- Add api to render handlebars embeddings, (#2447)
Bugfixes
- Fix
@refcapture resolution with TaggedUnion variants, (#2432) - Fix silent document loss for non-ASCII characters in document API, (#2450)
- fix: handle dicts/lists/numbers in SwapValue patches, (#2438)
Maintenance
- Bump dependencies: lodash flatted picomatch picomatch tar brace-expansion pytest form-data follow-redirects qs rand tar axios js-yaml to new versions
v12.0.5
Released 26 March 2026 · GitHub release · Feature page · Full changelog
Enhancements
- Add diff and streaming to history endpoint and bugfix to document change detection (#2397)
- Enable group_by on more types - by fixing
unliterallyto handle compound terms (#2403) - Support merge_repeats on document interface update too (#2410)
Maintenance
Bugfixes
- Only run auto-optimize on write and with parent (#2400)
- Fix race condition: reject operations on databases still being created #2407
v12.0.4
Released 25 February 2026 · GitHub release · Feature page · Full changelog
We are proud to release v12.0.4, a massive milestone in the 12.x release series.
Highlights and core enhancements
- support for very fast range queries over triples
- ISO8601 date, time, and interval predicates (Allen interval algebra) for WOQL
- schema context elements now managed atomically, introduced JSON for
@contextand@metadataelements in the schema. @contextvalue as IRI in schema context, is provided as JSON-LD header value in document API if set (custom context)- system is now prepared for heavy-duty enterprise usage overall (especially in enterprise version)
- at least 10% performance increase or more for reasoning-heavy workloads thanks to swipl 10 and other changes
- significant investment in lean memory usage and memory defragmentation for handling heavy sustained workloads
Features
- builds are prepared to be included in nixos
- add cardinality functionality to
Set(Cardinalityis now deprecated) - record the actual user making the change in the commit log (not only author)
- support for very fast range queries over triples
- ISO8601 date, time, and interval predicates (Allen interval algebra) for WOQL
- added
commentpredicate to WOQL to make it easy to comment out code, in the AST - Add
collectkeyword to matchmemberfor use instead of overloading group_by without grouping - Add WOQL
commentpredicate (#2337) - Add cardinality constraints to Set too, for consistency (#2339)
- Handle
@metadataand@contextkeys starting with an @ properly (#1775) (#2344) - Atomic context prefix management (#2350)
- Idempotent prefix creation (#2355)
- Implement
ChangeKeymigration for subdocument ID conformance (#2373)
Bugfixes
- Ensure that xsd:anyURI is RFC3987 compliant for the URI/IRI (#2338)
- Address regression in optimize code due to cache eviction work in this dev version (#2348)
- Fix delegated database access pattern (#2347)
- Fix incorrect commit of label during optimization (#2353)
- tests: respect TERMINUSDB_EXEC_PATH override (#2362)
- Addressed schema migration bug for inherited properties (#2372)
- Add use-system-gmp feature flag for system GMP/MPFR (#2360)
- Fix SWI-Prolog 10 stack exhaustion and improve memory management (#2377)
- Fix eviction of memory for stale layers for #2301 (#2342)
Maintenance
- Bump qs from 6.11.0 to 6.14.2 in /tests
- Restore previsouly blocked push and pull tests (#2349)
- Bump lru from 0.11.1 to 0.16.3 in /src/rust (#2354)
- Support for building both swipl 9 and 10 in TerminusDB (#2367)
- Bump bytes from 1.10.1 to 1.11.1 in /src/rust (#2365)
- Bump diff from 5.2.0 to 5.2.2 in /tests (#2361)
- Bump lodash from 4.17.21 to 4.17.23 in /tests (#2363)
- CI: Use PR workflow for man page documentation updates (#2356)
- Enable customer-specific build support (#2375)
Documentation
- Update documentation for capabilities endpoint, fixes #2340 (#2345)
- Fix openapi linting (#2352)
- docs: Update generated man page (#2371)
- The woql.json specification now includes slice, set and comment predicates
Deprecation
Cardinalityis deprecated, useSetinstead.
New Contributors
- @daniel-fahey made their first contribution (#2362)
v12.0.3
Released 25 February 2026 · GitHub release
Gap release (build issue)
v12.0.2
Released 16 December 2025 · GitHub release · Full changelog
Bug fixes
- New set operators also work for non-admin users, and tests added to prevent this ahead
v12.0.1
Released 15 December 2025 · GitHub release · Feature page
Enhancements
- Added
_countquery field to GraphQL for counting filtered results - Added field-level
@unfoldschema annotation for controlling document expansion - Added high-performance WOQL set operators (union, intersection, difference)
Bug fixes
- Fixed sys:JSON numeric values now properly cast to other numeric types
- Fixed nested subdocument ID generation bug
- Fixed stray subdocument residue during deletion (v12.0.0 regression)
- Fixed Foreign type schema validation and inclusion in schema graph
Maintenance and bug fixes
- Re-enabled in-memory server for testing
- Improved
make prworkflow for accurate PR testing - Reduced server startup delay
- Cleaned up Rust lifetime warnings and dead code
- Improved schema checker accuracy with additional test coverage
- Aligned
@unfoldwith@unfoldableand prevented potential WOQL unfolding issues
v12.0.0
Released 2 December 2025 · GitHub release · Feature page · Full changelog
This major release of TerminusDB forges a new path forward. The on-disk storage format remains unchanged since version 11 and the changes are performed for improved stringency, precision and clarity of the graph database interfaces.
TerminusDB is maintained by the team at Gettier since 2025.
Major changes overall in v12.0.0 since v11.1.17:
- New refreshed project website: https://terminusdb.com
- High precision decimals capped at 20 decimal places, using rationals
- Auto-optimizer for continuous roll-ups now enabled by default
- JSON numbers are now used across interfaces, with high precision
- Significantly enhanced dictionary and list support handling through WOQL
- Addressed remaining open bugs and improved test coverage significantly
- Higher precision logic processing with improved datatype handling
- Unstructured JSON support, with high precision decimal numbers support
- Security improvements (no-root docker image, fixed error handling)
- HTTP request correlation headers introduced in across requests
- Dashboard component deprecated, yet possible to re-enable manually.
Breaking changes in v12.0.0 since v11.1.17:
- Numbers in all API uses JSON numbers with high precision accurately, not strings as before.
- The
path()operator with.*pattern matching now traverses Lists correctly - The
group_by()operator unwraps single element templates automatically, no nesting. - Error handling is now precise, no stack traces in the HTTP response, same general format
- WOQL calculations performed with precise rationals, not double/float, for correct precision
Enhancements since 11.2-rc5
- Add support for new
sliceoperator for WOQL list item handling - Enabled
dotto address parts ofpathedge variable bindings - New datatype introduced,
sys:Dictionaryfor Document/DictionaryTemplate - Document templates now have the internal
type_ofname ofsys:Dictionary - Strings with JSON can now be typecast/transformed into
xdd:jsonand back - Addressing fields in
xdd:jsonis now possible usingdot - New
sys:Dictionarycan be typecast to and fromxdd:json - Added
idgen_randomto JavaScript WOQL client.
Bugfixes since 11.2-rc5
- Fix
pathtimes{0,N} operator in path spec to correctly handle zero hops too.
Consistency changes according to how TerminusDB should work, since 11.2-rc5
- Added
RandomKeytype to WOQL (replacesRandomIdgenfor consistency reasons) - Replaced
random_idgenwithidgen_randomin Python WOQL client - Ensured accurate wildcard
pathmatching (such as.*), code relying on old incorrect behaviour may break, potentially returning duplicates.
TerminusDB Server v11.2.0-rc5 Release Notes
Maintenance and bug fixes
WOQL.dotworks correctly again for addressing fields in documents
Breaking changes, may break code relying on old behaviour
WOQL.group_bynow automatically unwraps single-element templates
TerminusDB Server v11.2.0-rc4 Release Notes
Enhancements
- Free form JSON support with deduplication is back, using the sys:JSON type
- Arbitrary top level JSON values supported too, except for null; workaround: use Optional
- sys:JSON numbers are processed as capped BigDecimal/BigInt precision (beyond float/double)
- sys:JSON stores arbitrary precision decimals and integers up 256 digits each
Other
- 5x faster internal Rust serde JSON parsing, instead of previous JSON parser
TerminusDB Server v11.2.0-rc3 Release Notes
Release Candidate 3 brings improved error handling and observability, makes it possible again to run the dashboard component (or other static webapp dashboards), and further strengthens the core of TerminusDB with additional bug fixes.
Enhancements
- Improved error handling and observability (#1631)
- Added unique request IDs (UUID v4) to all error responses for easier debugging
- Added W3C Trace Context support (transparent header) for distributed tracing
- Stack traces no longer exposed in HTTP responses (security improvement)
- Error messages now include helpful Prolog error terms without exposing internal stack traces
- New error type:
api:IncompatibleNumericComparisonfor clearer numeric type mismatch errors
- Dashboard component is possible to enable manually, see dashboard docs
Maintenance and bug fixes
- Ensure correct resulting type (floats are contagious)
- Fixed error message duplication between
api:errorandapi:messagefields - Add specific error handling for common git-for-data error "api:RemoteDiverged"
- Fix string vs atom comparisons when patching enum values (#2141)
TerminusDB Server v11.2.0-rc2 Release Notes
This marks a substantial release of TerminusDB with support for high precision calculations in the WOQL core, and with alignment to JSON, letting clients handling native JSON with high precision.
Enhancements
- xsd:decimals are now normalized (2 and 2.0 are the same) fixing #2242
- greater, less and eq require commensurable types to compare (#2225)
- Auto optimizer plugin is now included by default for continuous performance
Maintenance and bug fixes
- Further improvements to the build system
- group_by with decimals works as intended again (#2094)
TerminusDB Server v11.2.0-rc1 Release Notes (since v11.1.17)
Enhancements
- Rationals are now used by default for all calculations (#128)
- JSON output is now consistent between WOQL, Document API and GraphQL:
- Numbers are outputed as number, arbitrary size, capped at 20 decimals
- Dashboard component has been discontinued. A deprecation notice is shown at
/dashboardwith instructions for legacy usage. See dashboard docs for full documentation (#2238)