enolaWhat’s new

What’s new.

The changes that matter, month by month. Every release, with every fix and upgrade note, is in the full changelog.

October 2026

6 releases:v0.4.32v0.4.31v0.4.30v0.4.29v0.4.28v0.4.27

Enola reads the comments your team wrote

Packages and symbols now carry the documentation already in your code: Go package comments, Python package docstrings, Java package-info Javadoc, Rust //! docs, and doc comments in Rust, Kotlin, Scala, Swift, Dart and C/C++. A new docs.jsonl file holds every comment in full, ready for a search tool to index.

See every way into a program, and what each one reaches

enola flows lists a program's entry points (served routes, main, commands, MCP tools) and follows each one through everything its calls reach, ranked by reach. Ask for one flow with --show, or for every flow that reaches a symbol with --through. v0.4.31 added Python argparse and click commands, TypeScript MCP tools and Kotlin Compose.

Ask what breaks before you change it

enola impact lists everything that depends on a symbol, type or module, grouped by how far away it is. Give it a file straight from a diff and it starts from every symbol the file declares. It runs from a shell, so a pre-commit hook, a CI step or a review bot gets the same answer a coding agent does.

enola impact path/to/changed_file.go --list

September 2026

15 releases:v0.4.26v0.4.25v0.4.24v0.4.23v0.4.22v0.4.21v0.4.20v0.4.19v0.4.18v0.4.17v0.4.16v0.4.15v0.4.14v0.4.13v0.4.12

Cross-repository links now reach the code on both ends

A link between repositories used to say only that one service calls another. Now a client call names the function that makes it and the route it lands on, and that route names the function that handles it, across TypeScript, Kotlin, Swift, Java, Dart, Python, Go, Scala and PHP. Python services show up as callers for the first time.

Point Enola at a folder of repositories

Run Enola on a folder that holds several Git repositories and it analyzes them together as one cluster, with no configuration. If your team wraps HTTP calls in its own client, you can now describe that wrapper, so its calls count in route coverage and cross-repository links.

GraphQL clients and servers, connected

Enola reads GraphQL on both sides: servers such as Apollo Server, GraphQL Yoga, NestJS, graphql-ruby and Hasura, and clients such as Apollo Client, Relay and urql. It matches each client operation to the server field it calls, and reports schema operations that nothing calls.

August 2026

31 releases:v0.4.11v0.4.10v0.4.9v0.4.8v0.4.7v0.4.6v0.4.5v0.4.4v0.4.3v0.4.2v0.4.1v0.4.0v0.3.21v0.3.20v0.3.19v0.3.18v0.3.17v0.3.16v0.3.15v0.3.14v0.3.13v0.3.12v0.3.11v0.3.10v0.3.9v0.3.8v0.3.7v0.3.6v0.3.5v0.3.4v0.3.3

Adopt an architecture convention in one command

enola constraints init binds ready-made conventions, such as layered, ports-and-adapters and the Rails conventions, to the directories your repository actually has, and tells you what it could not bind. Rules can now also be written as Ruby sentences, which Enola reads but never runs. Angular is now read the way the framework works: decorators, dependency injection, routes and templates.

Kafka and AsyncAPI join the graph

AsyncAPI contracts and Kafka producers and consumers in Go, TypeScript and Scala now link up the way HTTP routes and their clients do, across repositories too. A channel nobody produces or consumes, or messaging code with no declared contract, now shows up as a finding.

Write down your architecture rules, and enforce them

Declare which parts of your system may depend on which, in files that live beside the code. Enola checks every rule against the measured graph and can fail CI on a breach. enola plan tells you which rules govern a change before you make it, and enola constraints mine suggests rules from patterns your code already follows, for you to review.

C# and .NET, Scala, Dart and Flutter

Three new ecosystems in two days. Enola reads a whole .NET solution (C#, F#, VB.NET, Razor and XAML), including project references, EF Core storage and dependency injection. Scala comes with Play, Pekko and http4s routes, and Dart and Flutter with widgets, navigation and outbound calls.

July 2026

38 releases:v0.3.2v0.3.1v0.3.0v0.2.9v0.2.8v0.2.7v0.2.6v0.2.5v0.2.4v0.2.3v0.2.2v0.2.1v0.2.0v0.1.40v0.1.39v0.1.38v0.1.37v0.1.36v0.1.35v0.1.34v0.1.33v0.1.32v0.1.31v0.1.30v0.1.29v0.1.28v0.1.27v0.1.26v0.1.25v0.1.24v0.1.23v0.1.22v0.1.21v0.1.20v0.1.19v0.1.18v0.1.17v0.1.16

Link repositories from the command line and CI

Linking several repositories used to work only inside a coding-agent session. Now a config file can name a cluster of repositories, so a CI job or a developer at the terminal gets the same cross-repository links. TypeScript backends built on NestJS, InversifyJS, Express and Fastify now contribute their server routes, so calls to them resolve.

A live dashboard for your graph

When Enola's MCP server starts, it also serves a read-only dashboard on a local port that refreshes itself. It shows your services and the links between repositories as a diagram, the findings grouped by kind, and where each snapshot came from. enola --help and enola --list arrive in the same release.

Rust

Enola reads Rust: functions, structs, enums, traits and their implementations, calls, and use dependencies resolved across the crates of a Cargo workspace.

gRPC services and their clients

RPCs declared in .proto files become routes, bound to the Go handlers that serve them. Clients using grpc-go and connect-go in Go, and grpc-web and connect-es in TypeScript, link to the services they call.

June 2026

18 releases:v0.1.15v0.1.14v0.1.13v0.1.12v0.1.11v0.1.10v0.1.9v0.1.8v0.1.7v0.1.6v0.1.5v0.1.4v0.1.3v0.1.2v0.1.1v0.1.0v0.0.8v0.0.7

Vue, Nuxt and PHP

Enola reads Vue single-file components and composables, and turns Nuxt's file-based routing into routes, so pages/users/[id].vue becomes /users/[id]. PHP joins too, with classes, functions, dependencies and WordPress detection.

Spot architectural smells

Five new checks point at the places that tend to hurt: god classes, call-graph hotspots, deep dependency chains, large public surfaces and complexity outliers. enola --explain now reports them next to its cycle and layer analysis.

Enola 0.1, the first official release

An install script for Linux, macOS and Windows that detects your platform and verifies its download. Swift moves to a real syntax-tree parser for SwiftPM and Xcode projects, and outbound HTTP calls from Kotlin (Retrofit), Swift (URLSession) and TypeScript (fetch) now appear in the graph.

May 2026

2 releases:v0.0.6v0.0.5

No highlights this month. Each release is described in the full changelog.

March 2026

1 release:v0.0.4

No highlights this month. Each release is described in the full changelog.

February 2026

3 releases:v0.0.3v0.0.2v0.0.1

No highlights this month. Each release is described in the full changelog.