# Changelog
All notable changes to this project are documented here. The format follows
[Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and the project uses
[Semantic Versioning](https://semver.org/).
## [Unreleased]
## [0.3.3](https://github.com/sayef/comindly/compare/v0.3.2...v0.3.3) - 2026-10-23
### Added
- Team settings for what LLM steps cost: most symbols to summarise, most flows to walk through, LLM
requests at once and the model's prices; search embeddings on or off; and whether agents get
markdown or JSON text. In the app and in `comindly team set`.
- `COMINDLY_LOG_FORMAT=json` (set in the container image): every message as one JSON event with
timestamp, level, step and fields, including progress, tokens and cost, for Datadog, CloudWatch or Loki.
- The app shows indexing as steps with results and warnings, with a live progress bar and its tokens
and cost; the header shows a short status.
- **Add all** for repositories the index has but this server has no folder for.
### Changed
- Summaries, flow walkthroughs and style guides are reused while their input is unchanged and saved as
they are written, so an interrupted indexing run continues where it stopped instead of starting over.
- A limit always picks the same symbols (ties are broken by id).
- Team settings saved on a server record the admin who saved them; the separate LLM card is gone there.
## [0.3.2](https://github.com/sayef/comindly/compare/v0.3.1...v0.3.2) - 2026-10-22
||||||| parent of b145d1b (Cost controls and resumable LLM steps, structured JSON logs, a step-by-step indexing log, and Add all)
### Fixed
- A server keeps its settings and repository list with its accounts at the index location and restores
them when a new container starts; until now a redeploy forgot which repositories it indexes.
## [0.3.1](https://github.com/sayef/comindly/compare/v0.3.0...v0.3.1) - 2026-10-22
### Fixed
- On a server, indexing started from the app uses the LLM key and git tokens saved under Integrations;
0.3.0 skipped summaries, flow walkthroughs and style guides when the key was only saved there.
- The indexing log also goes to the server's output, so platform logs (Datadog, CloudWatch) show it.
## [0.3.0](https://github.com/sayef/comindly/compare/v0.2.0...v0.3.0) - 2026-10-22
### Added
- `GET /health` answers without signing in, for load balancer and orchestrator health checks.
- Settings → Members shows when admins named by the deployment were last seen.
### Changed
- Agents that connect to a server before its first index get `503` with the reason instead of `500`.
- A server keeps its members, sessions, tokens and stored secrets in a LanceDB table at the index
location instead of a SQLite file, so containers need no volume; every record is signed with
`COMINDLY_SECRET_KEY`, which server mode now requires. Members of a 0.2.0 server are invited again.
## [0.2.0](https://github.com/sayef/comindly/compare/v0.1.0...v0.2.0) - 2026-10-21
### Added
- Server mode for teams (`COMINDLY_PUBLIC_URL`): sign-in entirely by email or entirely by codes
admins hand out (`COMINDLY_SIGN_IN`), invitations tied to one address, admins and members, personal access tokens for agents, and the server's GitHub, GitLab
and LLM tokens kept encrypted or taken from the deployment's secrets (`*_FILE` too).
- Agents connect to a server over HTTP at `/mcp` with a personal access token; Settings → Your access
shows the setup for Claude Code, Cursor, Codex and VS Code.
- Each release publishes a container image for amd64 and arm64 to `ghcr.io/sayef/comindly`.
- `comindly doctor` points out `aws_profile` and `sso_auto_login` left in `config.toml` from 0.1.0.
- A container image (`Dockerfile`) and a local stack (`compose.yaml`, `scripts/docker-local.sh`) with
an S3-compatible store and a mail catcher.
- Settings → Repositories → **From GitHub or GitLab**: list an organisation or group (github.com, GitHub
Enterprise, gitlab.com, self-hosted GitLab with subgroups), pick repositories, and comindly clones and
keeps them itself; `comindly repos add <clone URL>` does the same from the terminal.
- A team's repository list in its settings: colleagues see the repositories they are missing and add them
in one click.
- **Create a team** on the first screen, next to **Join a team**; joining works before the first index.
- **Flows**: every flow from its entry point across HTTP routes, topics and queues into the services
that handle them, listed with the repositories it passes through and opened as a tree of steps;
`/api/flows`. Indexing narrates the flows that reach furthest, across repositories first.
- comindly's icon in the macOS Dock and app switcher for `comindly app`.
- Activity in the app's header (indexing, any action in progress) with **Cancel**, and toasts
when actions finish; indexing stops with everything it started, and a cancelled request
stops its work on the server.
- `install.sh` verifies the download's SHA-256, and every release is installed on Linux and macOS and with
`cargo install` before it counts.
### Changed
- The org map as a tree from the entry points (or any repository) to what each uses, or what uses it,
opened box by box with the contract on each branch; cycles between repositories are found, looped back
in amber and listed.
- A new look for the app: dark by default with a light variant, Geist and Geist Mono bundled with the
app, an Overview that puts the org map next to what needs attention and the flows that reach
furthest, and the index version and its age in the header.
- Docs: ways to run comindly on Getting started, deployment with Docker and Kubernetes under
Self-hosting, and a guide to using the crate as a library.
- Indexing always uses each repository's current default branch, asked from the remote; the per-repository
branch setting and `repos add --branch` are gone.
- Conventions are one filterable, sortable table; a row expands to the code that follows or deviates
from it. Org-wide examples name their repository.
- Connect is now **Get started**, and Repositories moved under **Settings**. The separate Clone dialog is
gone: **From GitHub or GitLab** takes an organisation, a group or a single repository.
- Messages read as sentences, long commands wrap, and storage errors are one line.
- An index can live in Google Cloud Storage (`gs://`) and Azure Blob Storage (`az://`) as well as S3 and
folders, read with the credentials the machine or container already has.
### Removed
- AWS profile handling: the profile setting, `join --profile`, the app's AWS sign-in and
`sso_auto_login`. Storage access comes from the platform's environment.
## [0.1.0](https://github.com/sayef/comindly/releases/tag/v0.1.0) - 2026-10-19
First release of comindly: cross-repo code intelligence for coding agents, in one binary and your own
storage.
### Added
- Indexing of many repositories into one versioned graph in a local folder or S3 (`comindly index`,
`comindly link`), with tree-sitter for Python, TypeScript/JavaScript, Go, Java, Kotlin and Rust,
SCIP indexes when present, and incremental rebuilds.
- An MCP server (`comindly serve`) and CLI for agents and people: hybrid code search, zoom, blast
radius, context packs, flows and evaluation (`comindly eval graph`).
- Service-contract graph: HTTP routes and clients (FastAPI, Next.js, Express, Spring MVC, Feign,
RestTemplate, WebClient, Go net/http/gin/echo/chi, axum, actix, reqwest, httpx/requests/fetch/axios),
SQS/SNS/S3 (also through wrappers and constructors), SQL tables, Terraform queues/topics/buckets and
subscriptions, values from YAML config; `comindly contracts` and the MCP `contracts` tool.
- Package versions and version skew across repos (`comindly packages`).
- Conventions and co-change recipes (`comindly conventions`, MCP `guide`); the team can add, edit and hide
conventions from the CLI or the web UI.
- Reasoning ledger: typed records anchored to symbols, stored in your own store, with derived staleness,
trust levels, review (`remember`, `why`, `review`, `ledger`), self-enforcing constraint checks, SSH
signing, compaction and erasure. Records come from people and from agents through MCP and hooks, show
who wrote and reviewed them, and can be confirmed, archived, invalidated or deleted.
- `comindly preflight` for uncommitted changes and MR pipelines; Claude Code and generic agent hooks with a
local mirror for remote indexes; `comindly doctor`.
- A desktop app on macOS (`comindly app`: the web UI in a native WebKit window), the local web UI
(`comindly ui --web [--open]`, guarded by an access token) and the terminal UI (`comindly ui`): org and
symbol dependency graphs, a version slider, contracts, packages, ledger review and a command palette.
- Repositories and Settings in the app: what is in the index and where it lives on this machine, scan,
clone over HTTPS or SSH, index with progress in comindly's own worktrees; `comindly repos`.
- Team settings stored with the index (LLM, embedding model, LLM steps), which win over personal ones;
API keys stay per person in `~/.config/comindly/credentials` or `OPENAI_API_KEY`; `comindly team`,
`comindly join` and a Join flow in the app.
- S3 through the standard AWS chain (profiles, SSO, `credential_process`, custom endpoints such as MinIO),
with S3 errors explained and credentials kept out of messages.
- Docs at comindly.pages.dev, and `examples/acme`, a small example shop of five repositories used for the
screenshots (`scripts/screenshots.sh`).