Release Notes

Version history and changelog for Traverse.

0.8.2 - 2026-07-10

Signed Windows binaries

Windows binaries (traverse-server.exe, traverse-cli.exe, traverse-admin.exe, traverse-bench.exe) are now Authenticode-signed - the publisher shows as The Intelligence Company AB (publ) in the Windows security prompts instead of "Unknown Publisher." Linux tarballs ship with a detached GPG signature and SHA-256 checksum. The .NET Embedded, Java Embedded, and Python Embedded packages bundle the signed native library.

Query engine

  • Temporal types: broader coverage and correctness fixes across dates, times, datetimes, and durations, including zoned and truncation edge cases.
  • GQL: error semantics aligned with the ISO/IEC 39075 standard, plus correctness fixes across aggregation, path, and write operations.
  • Performance: query-execution improvements, including a lower-overhead cartesian-product check and shared plan memoization.

Fixes

  • The "update available" notification now works - the version check previously used the wrong platform identifier and never found new releases. This also fixes traverse-admin update --download and the CLI self-update.

Breaking changes

None. 0.8.2 is a maintenance and correctness release on top of 0.8.1.

0.8.1 - 2026-07-09

Client compatibility

New --server-agent flag (and TRAVERSE_SERVER_AGENT environment variable) overrides the agent string Traverse advertises in the Bolt handshake. Some client tools - such as G.V() and py2neo - only connect to a server that identifies as a genuine Neo4j instance; set --server-agent "Neo4j/5.26.0" to satisfy that check. The default remains Traverse/<version>. See Client Compatibility.

Breaking changes

None. 0.8.1 is a compatibility patch on top of 0.8.0.

0.8.0 - 2026-07-09

APOC compatibility

Traverse now ships a built-in APOC compatibility layer covering the complete APOC core catalog - 246 functions and 190 procedures. No plugin installation, no allowlist configuration; everything works out of the box. See the APOC reference.

  • Loaders: apoc.load.json / jsonParams / csv / xml / jdbc (SQLite and PostgreSQL)
  • Export / import: JSON, CSV, GraphML, Cypher script, and Arrow - in both directions
  • Triggers: apoc.trigger.* with a full graph event system
  • Background jobs: apoc.periodic.* including the job scheduler, plus apoc.refactor.*, apoc.schema.assert, and conditional execution
  • Aggregates & paths: apoc.agg.*, the apoc.path.expand family, apoc.meta.*, apoc.spatial.geocode
  • New BYTEARRAY value type with apoc.util.compress / decompress

GQL

  • 100% ISO/IEC 39075 conformance - the complete GQL standard, including quantified path patterns, path search prefixes, NEXT / WHEN composed queries, catalog statements, and the standard error envelope
  • GQL in the browser - the WebAssembly build now includes the GQL dialect, so the Studio dialect picker works the same in-tab as against a server
  • GQL entry points in all language bindings (Python, Java, Node.js, Go, .NET) and all HTTP clients

Cypher

A major expansion of the Cypher surface, including the Cypher 25 feature set: quantified path patterns with group variables, the SEARCH clause (vector similarity in MATCH), COLLECT { … } subqueries, CALL { … } IN TRANSACTIONS, FOREACH, dynamic labels/types/property names, composed queries (NEXT, WHEN), FILTER / LET / FINISH, point() and spatial predicates, vector.similarity.*, IS :: type predicates, and composable SHOW commands.

Indexes & constraints

  • Vector index - HNSW with SIMD-accelerated distance kernels and int8 quantization; CREATE VECTOR INDEX + db.index.vector.queryNodes
  • Full-text index - BM25 ranking with phrase, prefix, and fuzzy query syntax
  • Text index - accelerates CONTAINS and ENDS WITH filters
  • Point index - spatial index with transparent query acceleration
  • Relationship-property indexes, composite indexes, and USING INDEX / USING SCAN planner hints
  • Composite NODE KEY / UNIQUE constraints, property type constraints, and relationship constraints

Durability - opt-in write-ahead logging

Set TRAVERSE_DURABILITY=wal to enable per-commit durability: every committed write survives a hard crash and is replayed on the next start. Group commit keeps write throughput scaling under concurrency. The default remains snapshot-on-shutdown. See Server Configuration.

ML pipelines

  • traverse.ml.pipeline.nodeClassification.* procedures - configure, train, and predict entirely from Cypher, with asynchronous training jobs
  • GNN model candidates: GCN and GraphSAGE pipelines, with R-GCN, GAT, and GraphMAE pretraining in the ML engine
  • Training on GPU (CUDA) or CPU; hyperparameter auto-tuning; stratified k-fold cross-validation
  • Model catalog with .tvmodel persistence; Studio ML panel; in-browser inference via @truespar/traverse-ml-wasm

GDS

gds.* procedure compatibility: graph catalog with named projections, algorithm execution on projections, mutate mode, and link-prediction functions. Substantial performance improvements across the algorithm library.

Studio

  • ML pipelines panel, GQL syntax highlighting and dialect picker, APOC & GDS reference entries in the docs panel
  • Error toasts for failed queries

Server & Bolt

  • Improved driver interoperability: richer failure metadata, correct retry classification for timeouts, and graceful mid-stream error delivery
  • Hardened wire-protocol limits and overload behavior

Breaking changes

None. 0.8.0 is a feature release on top of 0.7.0 - existing Cypher queries, Bolt connections, embedded SDK calls, and HTTP API requests continue to work unchanged. Durability remains snapshot-only by default.

0.7.0 - 2026-05-15

Graph Data Science library

Traverse now ships a built-in GDS library with 36+ algorithms callable from Cypher via CALL traverse.<algorithm>.<mode>(<config>) YIELD .... Every algorithm supports stream / stats / write modes where applicable; write mode persists the result as a node property so you can query it like any other data.

  • Centrality: PageRank, Article Rank, Eigenvector, Closeness, Harmonic Closeness, Betweenness, HITS, Degree, CELF
  • Community detection: Louvain, Leiden, Label Propagation, WCC, SCC, K-Core, Triangle Count + LCC, Conductance, Modularity
  • Paths & traversal: Dijkstra, A* (with ALT heuristic for non-geographic graphs), Bellman-Ford, Yen's K-Shortest, All-Pairs Shortest Paths, Δ-Stepping, BFS, DFS, Random Walk, Spanning Tree, Steiner Tree
  • DAG: Topological Sort, Longest Path
  • Similarity: Node Similarity (Jaccard), Cosine Similarity, kNN (structural / neighbor-overlap), kNN-Property (feature-vector / Euclidean - matches Neo4j gds.knn semantics)
  • Link prediction: Common Neighbors, Total Neighbors, Preferential Attachment, Adamic-Adar, Resource Allocation, Same Community
  • Embeddings: FastRP, Node2Vec, HashGNN, GraphSAGE

Benchmark. On the pokec_medium dataset (100K nodes / 1.77M edges, single-thread, equivalent projections), Traverse wins 17-0-0 against Neo4j GDS across comparable algorithms.

Studio integration. The new GDS drawer exposes the catalog with a form-driven config builder, live result preview on the graph (node size, color gradient, or community colors), and result tables for path / node-pair / entity-set / embedding outputs. See the Graph Data Science reference.

Traverse in the browser (WebAssembly)

The full Traverse engine now runs entirely in a browser tab via WebAssembly - no server needed. Try it at traverse.truespar.com.

  • Same engine, same APIs - Cypher, GDS, schema browser, query editor, all identical to the server build
  • Persistence via OPFS - databases live in the browser's Origin Private File System and survive tab reloads
  • Multi-threaded - uses all available browser threads
  • Pre-built sample databases - Movies, OurAirports, OpenFlights, and Pokec (small + medium) downloadable directly into OPFS, each with starter queries
  • Shareable queries - share links carry the full query and active database; no server round-trip required
  • AI chat + feedback - included in the in-browser demo (rate-limited)
  • Embeddable - also available as the @truespar/traverse-wasm npm package for integrators. See the Embedding WASM docs for installation, hosting (Vercel / Netlify / Cloudflare / nginx / Apache / IIS), and TypeScript types.

Studio

  • Mobile-responsive layout - full pass for phones and tablets: bottom tab bar, slide-over side panels, full-screen AI chat overlay, soft-keyboard handling, larger touch targets, no iOS auto-zoom in the editor
  • Add to Home Screen support - manifest + Apple meta tags make Traverse launch fullscreen on iOS like a native app
  • Auto theme - first visit follows the system light/dark preference; explicit toggle persists from then on
  • Pre-built sample databases panel under Examples, with starter queries that install as saved queries on first load
  • AI chat now knows the GDS catalog - the assistant suggests correct CALL syntax with valid algorithm names, supported modes, and required config - no more hallucinated procedure names
  • Result panel - click the query-time chip to see a parse / plan / execute / round-trip breakdown; thousands separators in row counts; fixes for Table and JSON view OOMs on large results

Performance

  • Weakly Connected Components: ~44% faster
  • Random Walk: ~3.7× faster
  • kNN-Property: ~5.3× faster (NN-Descent parallelized across cores)
  • Label Propagation: fewer iterations to convergence
  • 2-hop scan + aggregate queries on graphs without self-loops use a fast path again

Bug fixes

  • Planner crashes on OPTIONAL MATCH and multi-MATCH patterns with pre-bound endpoints
  • TCK conformance: DELETE-then-access and self-loop counting
  • datetime.truncate timezone offset for non-current dates
  • bellman_ford.stream / delta_stepping.stream now populate totalCost
  • Browser mode: rendering of node / edge / path values in result tables; map values now serialize as plain JS objects

Breaking changes

None. 0.7.0 is a feature release on top of 0.6.7 - existing Cypher queries, Bolt connections, embedded SDK calls, and HTTP API requests continue to work unchanged.

0.6.7 - 2026-04-03

Performance

  • ~70% less memory during graph loading - new counting-sort adjacency build eliminates temporary allocations during graph construction
  • Dirty-flag persistence - only databases that have been modified are written to disk on shutdown, reducing save time for multi-database deployments
  • Raised default memory ceiling from 70% to 90% of system RAM, allowing larger databases to load without manual tuning

Server

  • --log-dir option - write daily rotating log files to a directory (e.g. --log-dir /var/log/traverse)

Bolt Protocol

  • Fix Bolt 6.0 wire format handling - resolves connection failures with clients using Bolt protocol version 6.0

0.6.1 - 2026-03-11

Server

  • Disk space protection - file uploads are rejected with HTTP 507 when free disk space is critically low
  • Disk stats in health endpoint - /api/health now includes disk.free_bytes and disk.total_bytes

0.6.0 - 2026-03-07

Stability & Memory Fixes (Critical)

This release focuses heavily on production stability. Multiple memory leaks and OOM crashes discovered in 0.5.0 have been resolved:

  • Fix main-heap memory leak on database unload - databases were not being fully reclaimed after hot-swap cycles
  • Fix mimalloc RSS ratchet - memory allocator was not returning pages to the OS after database unload, causing monotonically increasing RSS
  • Enforce memory ceiling during database load - prevent OOM crashes by checking available memory before loading
  • Pre-flight memory check before database loading - reject loads that would exceed available memory
  • Fix bulk-free incorrectly triggering for non-DB-allocated databases
  • Fix server total memory on Windows - use estimated_memory instead of working set for accurate reporting

Language Bindings (Embedded)

  • Python (PyO3): Full embedded bindings - Database, Transaction, BulkWriter, property indexes
  • Java (JNI): Full embedded bindings with bundled native libraries (Windows x86_64, Linux x86_64)
  • Node.js (napi-rs 3): Full embedded bindings with async API parity
  • Go (FFI/syscall): Full embedded bindings - no CGo required, uses syscall.LoadDLL/dlopen
  • .NET: Traverse.Embedded (FFI bindings), Traverse.Grpc, Traverse.Bolt, Traverse.Http

HTTP Clients

  • Python (traverse-http): HTTP management client - databases, queries, import, upload, tasks
  • Java (com.truespar:traverse-http): HTTP management client with Jackson 3.1
  • Node.js (@truespar/traverse-http): HTTP management client using native fetch
  • Go (go/http): HTTP management client - standard library only, no external deps

Studio (Web UI)

  • Conditional node and edge styling with if/then/else rules based on property values (e.g. color nodes red when status = 'critical')
  • Library reference panel with docs for all language bindings and HTTP clients
  • Fix files tab empty after login by deferring fetch until authenticated
  • Fix memory popover to show all databases

Server

  • HTTP API + WebSocket enabled by default on port 7691
  • Built-in MCP server for AI integration
  • Bolt 6.0 protocol support
  • Prevent concurrent database load/unload/drop via lifecycle semaphore
  • Fix upload hanging on duplicate database name

Packaging

  • Maven Central: com.truespar:traverse-java:0.6.2, com.truespar:traverse-http:0.6.0
  • npm: @truespar/traverse-http@0.6.0
  • NuGet: Traverse.Embedded, Traverse.Grpc, Traverse.Bolt, Traverse.Http
  • Docker Hub: truespar/traverse:0.6.0
  • Windows: traverse-0.6.0-x86_64-windows.zip
  • Linux: traverse-0.6.0-x86_64-linux.tar.gz

0.5.0 - 2026-03-05

Warning: This was the first public release and contains known memory leaks that cause OOM crashes during database hot-swap cycles. Upgrade to 0.6.0 or later.

Engine

  • In-memory property graph with single-file .tvdb persistence
  • Write-ahead log for crash-safe persistence
  • Incremental dirty-page tracking and in-place flush
  • MVCC with snapshot isolation (undo-log architecture, 155x import speedup over naive approach)
  • B-tree property indexing with Cypher DDL and planner integration
  • Edge indexes for fast relationship property lookups
  • Cost-based query optimizer with DP join ordering
  • shortestPath(), allShortestPaths(), and weighted shortest path (Dijkstra)
  • Existence and unique constraints with eager validation
  • Morsel-driven pipeline parallelism for read-only queries
  • Aggregate pushdown, expand-aggregate fusion, typed i64 fast paths
  • Arena/pool allocators for query execution
  • LOAD CSV for bulk data import
  • C FFI layer for cross-language bindings
  • Memory budget enforcement with configurable TRAVERSE_MEMORY_LIMIT

Cypher

  • openCypher TCK compliance: 99.95% (3891/3893 tests passing)
  • CALL procedure support
  • reduce(), map projections, list comprehensions
  • SHOW INDEXES / SHOW CONSTRAINTS commands
  • Global stripped-query plan cache

Bolt Protocol

  • Full Bolt 5.x and 6.0 compliance
  • TLS support (bolt+s://)
  • Authentication and RBAC with role-based access control
  • Multi-database support with bookmarks
  • NOOP keepalive, tx_timeout, query notifications, Vector type
  • Streaming result materialization
  • Pipelined batch imports (512 stmts/batch)

Server

  • Multi-database support with aliases and read-only databases
  • gRPC API alongside Bolt protocol
  • HTTP API with API key authentication and OpenAPI docs
  • Database upload/download via HTTP
  • Async task system for long-running operations
  • IP allowlisting and query timeout
  • Configuration system (TOML config, CLI flags, env vars)
  • Version check and update notification
  • Colored startup banner with connection URLs

CLI

  • Interactive Cypher REPL with tab completion
  • Script execution, parameters, plan rendering
  • Multi-database support with :use command
  • TLS support for bolt+s:// connections

Studio (Web UI)

  • Graph visualization with ForceAtlas2 and D3 layouts
  • CSV import, database upload/download, file manager
  • Schema panel with property nesting under labels
  • Cypher editor with Monaco, per-database query drafts
  • Style editor with color picker, shapes, conditional rules
  • Graph Assistant: AI chat with SSE streaming
  • Command palette (Ctrl+P), quick-save (Ctrl+S)
  • Dashboard with 3-engine benchmark charts
  • Save & share queries
  • License activation and device management
  • Memory tooltip with per-database breakdown

.NET

  • Traverse.Embedded: Embedded graph database bindings
  • Traverse.Grpc: gRPC client library
  • Traverse.Bolt: Native zero-dependency Bolt client (full protocol parity)
  • Traverse.Http: HTTP management client (100% API coverage, 37 integration tests)

Licensing

  • Trial mode with check-in, device tracking, and plan enforcement
  • Ed25519 response signing for API security

Performance

  • Morsel-driven parallelism for scan, expand, and aggregate queries
  • Packed adjacency entries (24 → 12 bytes with u32 IDs)
  • Dense AdjacencyStore for O(1) lookups in BFS/traversal
  • FxHash replacing SipHash in hot paths
  • Compact binary PropertyStore replacing BTreeMap
  • Interned property keys as PropertyKeyId(u32)
  • Zero-allocation record encoding for streaming PULL
  • Lazy result streaming, batched morsel streaming
  • Two-pass fan-in optimization for 2-hop count aggregates