Skip to content

CodeNavi — Release Notes

Customer-visible changes per release of CodeNavi — the self-hosted, local-first semantic code search and intelligence server for AI coding agents. Every install includes a built-in security scanner (secret and PII redaction and prompt-injection defense across code, documents and crawled pages), a cosign-signed release channel with a shipped SBOM, and evidence-linked compliance reports (OWASP ASVS / Top 10 / EU Cyber Resilience Act). For support, see the vulnerability disclosure policy (security contact) and the setup guide (install & operations).

Entries since 1.3.3 open with their update impact — download size, whether a reindex is needed, and any hardware-requirement change. How updates apply, typical sizes, and the rollback path: Updating CodeNavi. Verifying a release you pulled (cosign signature, SBOM): Security model.

1.3.51 — 2026-10-12

Update impact: about 28 MB for both the standard and the AMD image — three code layers; applied in one container restart; no reindex needed; no hardware or driver change. Servers with two or more codebases: read the first item under Changed. The Windows installer and Claude Code plugin changes reach you on a fresh install or by re-running the install command over the install folder, not through an in-place update.

Added

  • One-step cloud deploys for AWS and Google Cloud. A CloudFormation template (codenavi-ec2.yaml) and a Google Compute Engine startup script (codenavi-gce-startup.sh) create a GPU VM, install CodeNavi and index your repository on first boot. Both are on the Cloud GPU page with measured first-boot times from one real run each.
  • Claude Code plugin 0.5.20 (bundled): opt-in block mode, and the codebase named at session start. With CODENAVI_HOOK_GREP=block in the environment, a tree grep the index already answers is declined and the agent is pointed at the matching CodeNavi tool and hits; the default stays the hint. On a server with several codebases the session-start message names the codebase the repo is indexed as, so the agent passes codebase= from its first call.

Changed

  • On a server with several codebases, a call without codebase= goes to default_codebase. Set default_codebase in data/settings.json (no restart needed) or pass codebase=<name> on each call. With neither, read_file, grep_search, list_directory and the call-graph tools now return a message listing the codebase names; semantic_search, file_search, symbol_search and find_references keep searching every codebase. Every grep_search and read_file result header names the codebase it ran against. Single-codebase servers are unaffected.
  • Several agents can search at once. Semantic and file search no longer hold one lock for the whole call; only the two GPU phases (encode, rerank) take turns. Measured with four clients on the vendor box: 10% more searches per second and a 31% lower median latency, with a longer tail, so keep one or two semantic searches in flight. read_file, grep_search, symbol_search and find_references never wait on a search and are safe to run in parallel. The connect wizard's agent-instructions block and the plugin skills say the same.
  • Windows installs cache the update layers from the downloaded archive. setup.ps1 primes the update cache by extracting the archive it just installed from instead of exporting the image back out of Docker Desktop; on a slow disk that is several minutes less per install.
  • Bundled licence documents. The package's EULA is version 1.1 (effective 2026-10-11): a Seat definition, automatic renewal with a full refund on request within 31 days of any charge, and export-control and verification sections. PRIVACY.md names the publisher (Cellpex LLC d/b/a CodeNavi) and states what the update check sends; MODEL-LICENSE.md points to the EULA.

1.3.50 — 2026-10-09 (also covers 1.3.49)

Update impact: about 251 MB for both the standard and the AMD image — the Python base layers changed (no model change); applied in one container restart; no reindex needed; no hardware or driver change. The faster-update change below reaches you on a fresh install or by re-running the install command over the install folder, not through an in-place update.

  • Python inside the image is updated to 3.12.15.1 Advisory CN-SA-2026-006 — Critical (upstream CVE). Python 3.12.14 could crash, or use freed memory, in a TLS server whose sni_callback swaps the socket's context. CodeNavi serves plain HTTP and nothing in the image sets an sni_callback, so the flaw was not reachable; the image no longer carries it. The same update brings Debian's security fixes for OpenSSL, liblzma and PCRE2.
  • A Personal license serves up to 2 codebases. If more are configured, CodeNavi indexes and searches the first 2 listed in CODEBASE_CONFIG, and says which ones it left out: in the startup log, in list_codebases, and when you reindex or connect to one of them. To choose which 2, reorder CODEBASE_CONFIG; for more codebases, move to Professional. Professional, Corporate and trial licenses are unchanged.
  • Updates load only what changed. update.sh and update.ps1 now load just the image layers your container engine does not already hold, instead of the whole image, and check each download once instead of twice. The difference is largest on Docker Desktop for Windows, which unpacked the full image on every update.

1.3.48 — 2026-10-06 (also covers 1.3.47)

Update impact: ~27 MB download (code layers only) — applied in one container restart; no reindex needed; no hardware or driver change. The installer and command-line changes below reach you on a fresh install or by re-running the install command over the install folder, not through an in-place update. 1.3.48 refreshed only the installer, so /health keeps reporting 1.3.47.

Changed

  • Podman installs start again on their own after a reboot. The installer now turns on podman's restart service and runs CodeNavi with restart: always, which every podman version honours. If you stop CodeNavi by hand with podman stop, it starts again at the next boot. Existing installs pick this up when you re-run the installer over the install folder.

Fixed

  • A power cut during indexing no longer blocks the next reindex. CodeNavi now saves its scan record in a way that survives an interrupted write, so indexing picks up normally after the machine comes back.
  • ./codenavi and ./reindex.sh work on Podman-only machines. On hosts that run Podman without a docker command (the usual Fedora / RHEL setup), both now reach the CodeNavi container instead of reporting it as not running.
  • ./reindex.sh --help shows how to use it. A mistyped option now stops with an error that names it, instead of starting a reindex of every codebase.
  • Re-running the installer on an AMD machine keeps the AMD build. If the machine also held the standard image, a re-run could pick that one and then stop at the GPU check.
  • A second install never shares a port with another one. The installer now treats the ports of every other CodeNavi install on the machine as taken, even while that install is stopped, and names it in the warning. Re-running the installer keeps your install's port and warns if another install is set to the same one.
  • A new install next to an older, updated one starts on the current release. The installer's update step now checks the version that will actually start, so it applies the latest release instead of starting the older bundled one.

1.3.46 — 2026-10-05

Update impact: 6.0 GB for the standard image and 9.8 GB for the AMD image — the Python-library layer changed (no model or operating-system change); applied in one container restart; no full reindex needed — your next incremental reindex adds any compiled JavaScript files described under Fixed; no hardware or driver change.

Security

  • The sentence-transformers and PyJWT libraries inside the image are updated.14 Advisory CN-SA-2026-005 — Critical (upstream CVEs). The earlier sentence-transformers could run Python files from a local model folder even with model code switched off; this affects you only if you set CODE_EMBEDDING_TRUST_REMOTE_CODE=false and load an embedding model from a folder others can write to. The bundled models are not affected. CodeNavi does not use the affected PyJWT code path.

Added

  • Chat helps plan changes, not only explain existing code. Ask "how could we add X?" and Chat proposes steps tied to the files it found in your codebase. Statements about your code stay cited to those files, and assumptions are labelled as assumptions.
  • Long chat messages find the code they build on. When you paste a spec or a long description (300 characters or more), Chat also runs up to three extra searches aimed at the existing code the change touches, in addition to the search for your message.
  • The Chat screen explains how it works. A "How this chat works" note under the input box covers what each question searches, how your model choice sets answer quality, and when a coding agent is the better tool.

Changed

  • Wiki pages mark names they could not verify. After a page is compiled, every package, file path and symbol name it mentions is checked against its source documents and your code. A name found in neither is marked (unverified) in the text and listed above the page's Sources, so you and your agents can tell checked facts from guesses.

Fixed

  • Compiled JavaScript with an inline source map is indexed. Readable .js/.ts files that end in a //# sourceMappingURL=data: line are now searchable; the embedded map is never stored in the index. Genuinely minified files are still skipped.
  • A reindex keeps your index when a codebase folder goes missing or empty. If the folder is gone, empty or no longer reachable through its bind mount, the reindex stops, leaves your existing index and call graph as they were, and tells you the fix (docker compose up -d --force-recreate). /health shows the problem per codebase.
  • The auto-restart recipe in Troubleshooting keeps retrying. The codenavi.service example now sets StartLimitIntervalSec=0 under [Unit], where systemd applies it. If you installed the earlier example, copy the updated unit.

1.3.45 — 2026-09-29

Update impact: ~27 MB download (code layers only) — applied in one container restart; no full reindex needed — the call graph rebuilds itself once on your next incremental reindex; no hardware or driver change. The updater change below reaches you on a fresh install or by re-running the install command over the install folder, not through an update.

  • The updater refuses to install an older release.13 Hardening — no advisory. update.sh and update.ps1 compare the signed version of an offered update with the version you run, and refuse one that is older. If your CodeNavi contact asks you to roll back to an earlier release, run ./update.sh --allow-downgrade (Windows: update.ps1 -AllowDowngrade).
  • CodeNavi stays responsive while a search runs. Health checks, the web UI, file reads and other agents get their answers while a search is in progress. Searches from several agents take turns on the GPU; one that waits more than 15 seconds returns a "busy" answer the agent can retry, instead of the client timing out.
  • The call graph sees more of your code. find_callers, impact_analysis and symbol_search now name each shell-script function; before, every call in a script counted as coming from the file itself. Java and C# methods were sometimes named after their return type (User find() showed up as User); they now use the method name. A file with a construct the parser cannot read no longer drops out of the call graph: everything around it is kept, and the coverage note on call-graph results tells you which files had such syntax. The call graph rebuilds itself once on your next reindex. Search-result chunk names update as files change, or all at once with a full reindex.

1.3.44 — 2026-09-28

Update impact: 6.0 GB for the standard image and 9.8 GB for the AMD image — the Python-library layer changed (no model or operating-system change); applied in one container restart; no full reindex needed — your next incremental reindex re-checks each codebase once against the updated scanner rules and keeps its search vectors (about a minute for a 30,000-chunk codebase); no hardware or driver change.

Security

  • The anyio library inside the image is updated to 4.14.2.15 Advisory CN-SA-2026-004 — Critical (upstream CVE). The previous version could accept a spoofed TLS certificate for an internationalized (non-ASCII) host name. In CodeNavi that path is used only by the opt-in web crawler; host names written in plain ASCII were never affected.
  • The scanner now marks text written to steer an AI agent.12 Hardening — no advisory. Four new rules recognise comments, strings and doc passages that address an AI agent and try to redirect it: "forget all previous tasks", "I want you to act as…", "agent: delete the tests", "do not mention it". A match never blocks or hides anything: the passage stays searchable and reaches your agent marked flagged, so the agent treats it as untrusted content. On a public benchmark of prompt-injection texts these rules recognise 29%, against 2% before, with no false matches on its benign examples. Files already in your index are re-checked on the next incremental reindex.

Changed

  • Scanner changes now reach files that are already indexed, without a full reindex. This covers rule updates in a release, rules you add or edit in your own rules file, scanner settings you change on the Security screen, and files you allowlist. The next incremental reindex re-checks every indexed file and keeps the existing search vectors, so no GPU work is repeated. On a 29,554-chunk codebase this takes about a minute and gives the same result as a full reindex. The first incremental reindex after this update re-checks each codebase once.
  • Documentation that mentions curl, fetch or webhooks is no longer marked untrusted. The scanner's two exfiltration checks for documents now look for what an exfiltration actually needs: a curl or wget command that sends secrets out (keys under ~/.ssh, .env, .aws and the like), or a known data-collection endpoint such as webhook.site, an ngrok address or Burp Collaborator. Install one-liners, API examples and "configure a webhook" instructions reach your agent unmarked. If you edited either rule in your own rules file, your version is kept. Files already in your index are re-checked on the next incremental reindex.
  • The per-client request budget is now 200 requests per 10 seconds (was 60). Every agent session on one machine shares a budget, and so does a whole team behind a NAT or a reverse proxy on another host unless that proxy is listed in THROTTLE_TRUSTED_PROXIES — the old number could refuse a busy team that no single agent had overloaded. A runaway loop is still cut off within seconds. If you had set THROTTLE_MAX_REQUESTS yourself, your value is unchanged.

1.3.43 — 2026-09-17 (also covers 1.3.41–1.3.42)

Update impact: code-layer download only (no model or operating-system change); applied in one container restart; no reindex needed — the new index fingerprint (see Added) is recorded by your next reindex, until then /health reports it unverified; no hardware or driver change. The installer, updater and Windows GPU-overlay changes below reach you on a fresh install or by re-running the install command over the install folder, not through an update; /health reports the image version (1.3.41) on every package of this day.

Security

  • Update downloads accept https only. Hardening — no advisory. The updater refuses any download address that is not https:// (and any redirect away from it), and reports a file as verified only after its checksum has passed.
  • One client can no longer starve the others, and guessing the token has a ceiling.8 Hardening — no advisory. Every request now passes a per-client budget — 60 requests per 10 seconds per client by default — and every address that presents 20 different wrong tokens within a minute is refused for the rest of that minute (a browser tab re-sending one stale token is not a guessing run and never triggers this). A refused request gets 429 Too Many Requests with a Retry-After header; well-behaved agents wait and continue. /health, /.well-known/ and the console's page files are never throttled, so the plugin's start-up check and the statusline keep working. The limits are settings (THROTTLE_* in the configuration reference); behind a reverse proxy on another machine, list that proxy in THROTTLE_TRUSTED_PROXIES so your clients are told apart. The /metrics endpoint counts refusals.
  • The web console and connect wizard now send browser hardening headers.7 Hardening — no advisory. Every page under /ui and /connect carries a Content-Security-Policy that allows only same-origin scripts and connections, refuses to be embedded in another site's frame, and tells browsers not to guess content types. Nothing changes for the MCP endpoint, the API or your agent. If you had wrapped the console in an iframe of your own, that stops working by design.
  • Every instance publishes its security contact. Hardening — no advisory. GET /.well-known/security.txt (no token needed) returns the standard RFC 9116 file with the vulnerability reporting address and policy link, so anyone who finds a CodeNavi port knows where to report responsibly.
  • Fixed vulnerabilities now have a public advisory record. Hardening — no advisory. Every Security item on this page states its class — an advisory id with a CVSS 3.1 severity for a fixed vulnerability, or Hardening — no advisory for a control added where none was missing — and the advisories page carries one record per fixed vulnerability (affected versions, impact, severity, fix, action), back-filled to 1.3.15.

Added

  • One command removes CodeNavi completely.10 ./setup.sh --purge (Windows: setup.ps1 -Purge) shows what it is about to remove — container, image, model volume, index, data, logs, reports, .env, .update.conf — asks you to type purge, and does it. Your repository is never touched, and the command refuses to run if the repository sits inside the install folder. It warns that the licence key goes with the data — copy it out first if you may reinstall. The folder and the editor plugin are left for you to delete; nothing else remains.
  • The server checks its own index for corruption.9 Every reindex records a fingerprint of the index; the server compares it with what is on disk after it starts and every six hours, and reports ok, mismatch or unverified per codebase under index_integrity in /health (token required) and as a codenavi_index_integrity gauge on /metrics. A mismatch names what differs and is a warning only — search keeps working, and a full reindex rebuilds and re-records. Until your first reindex on this version the field reads unverified; that is expected. Interval: INDEX_INTEGRITY_CHECK_INTERVAL.

  • Behind a reverse proxy or tunnel, the server can name its public address. Set CODENAVI_PUBLIC_URL (scheme, host, optional port) and the OAuth resource metadata and /health's mcp_endpoint point at that origin instead of localhost, so a client with a missing or wrong token gets a clear auth error rather than a pointer to its own machine. Default unchanged; TLS stays with your proxy. See HTTPS behind a proxy.

  • Larger documentation sets compile the wiki in one pass. The default LLM-call budget for a wiki compile (WIKI_MAX_LLM_CALLS) is now 500, sized for corpora of ~150 documents; a value you set yourself is unchanged.
  • A Cyber Resilience Act pack for the compliance checker. /codenavi:compliance cra-annex1 reviews an indexed codebase against Annex I of Regulation (EU) 2024/2847: one evidence-linked rule per Part I product requirement, plus the Part II vulnerability-handling points that leave evidence in code (SBOM, security-fix release record, security testing, disclosure policy, signed updates). The report states on its face who the Regulation binds — installable and on-prem software in scope, pure SaaS usually not — and is an input to your Annex VII technical file, not a conformity assessment. Needs Claude plugin 0.5.12 or later, shipped in your package under plugins/claude/.
  • Ask whether a dependency CVE reaches your code. With the same plugin, a question such as "are we exposed to CVE-2026-1234 in package X?" makes the agent confirm the pinned version, find the import sites, walk your own callers of the vulnerable function through the call graph, and size the fix — with the limits stated: it sees your source, not excluded vendor/ or node_modules/ trees.

Fixed

  • Windows: CODENAVI_GPU_DEVICE now picks the card on Docker Desktop. On a machine with more than one NVIDIA GPU, the index in .env is honoured (counted as nvidia-smi -L prints it). Single-GPU installs are unchanged.
  • Rootless podman: the installer tells you up front when there is no systemd user session — the one thing that makes the container fail to start after an otherwise clean install — and prints the loginctl enable-linger command with the sudo it needs.
  • setup.sh --purge acts only on the folder it is run from. Run a second time from a folder it has already emptied, it now reports nothing to remove instead of looking for an install next door. Windows was never affected.
  • Documented: CodeNavi missing after a reboot on Docker.11 A timing race at boot can leave the container in state Created — Docker gives up on it before it ever runs, and the restart policy does not retry that case. The troubleshooting page now shows how to confirm it (docker inspect error ends in host containers internal IP address is empty), the one-line fix (docker compose up -d), and a small systemd unit that retries the start after every boot so it stays fixed. No software change; the compose file is unchanged.
  • Windows fresh installs complete on the first run. The installer's runtime-volume preparation now finishes under Windows PowerShell 5.1. A fresh install made from a 1.3.36–1.3.41 package that stops with Cannot write to /app/data is repaired by re-running setup.ps1 from this package over the same folder — the licence, index and settings are kept. Updates were never affected.

1.3.40 — 2026-09-14

Update impact: code-layer download only (no model or operating-system change); applied in one container restart; no reindex needed — one scanner rule was narrowed (see Changed), and lines it had already redacted in indexed files stay redacted until those files are next re-indexed; no hardware or driver change. The installer and updater changes below reach you on a fresh install or by re-running the install command over the install folder, not through an update.

Security

  • The container image ships without setuid binaries and with its model loaders pinned offline.2 Hardening — no advisory. The privileged helper programs inherited from the base operating system (mount, su, passwd and the like) are stripped of their setuid bits at build time, and the image itself now refuses to download a model at runtime. Both were already blocked by the shipped container settings; they are now true of the image alone, so an audit of the image matches the security model.
  • The reranker setting accepts only the shipped models. Hardening — no advisory. A typo in that setting used to be saved and silently disabled reranking; it is now refused on save.

Added

  • Wiki knowledge reaches your agent automatically. Compiled wiki pages now appear in semantic search as clearly labelled advisory results that name the source documents and the page to read in full — shown in addition to the results you asked for, never in place of one; no extra tool call, no LLM call at query time. Set WIKI_SEARCH_BLEND=false to keep the wiki browse-only.
  • Wiki pages merge across documents, and compiles are about three times cheaper. A topic described in several documents now lands on one page instead of near-duplicate single-source pages; only cross-document pages are written; and the page cap grows with the size of your documentation instead of a fixed
  • Your existing wiki re-extracts once, automatically, on its next compile. The Wiki screen gains Wipe (start the next compile from scratch) and LLM settings buttons.
  • Compliance reports are counted on the metrics endpoint (codenavi_compliance_reports, with a matching Grafana panel), and list_codebases names the host folder the reports land in.
  • Two sample compliance reports — OWASP Top 10 against Bugzilla and against Laravel — are on the docs site, so you can see the report shape before running one.

Changed

  • LLM settings live in one place. The Chat screen's side rail no longer carries its own provider and model form; its LLM settings button (and the Wiki screen's) opens the Settings screen.
  • The System screen's feedback card reads as ranking feedback, not a score. It shows ratings and the queries they came from, with results promoted or flagged as noise, and the Grafana dashboard matches. A thumbs-down is an agent marking one result as off-target for one query — several per query is normal.
  • The secret scanner no longer redacts interpolated assignments such as password = "${VAR}". A file read that was redacted says so in its header.
  • The updater tolerates an image whose layer chain repeats a layer. Both the Linux and the Windows updater compared the downloaded image's layer list against the signed manifest entry by entry, so a legitimately repeated layer was refused after the whole download. They now compare the set of layers; the ordered chain and the signature checks are unchanged. Installs updated from 1.3.39 or earlier keep their previous updater until the next fresh install.

Fixed

  • Grafana panels show 0 instead of "No data" when there are no samples yet, and the feedback-votes gauge exports correctly.
  • grep_search accepts a list for path_exclude, and the "index may be stale" advice checks for files newer than the index before recommending a reindex.
  • The installer no longer says "no terminal" one screen after asking for your repository. When the one-line install command runs over an install folder that already knows the repository, the summary now reads "already configured".

1.3.39 — 2026-09-13 (also covers 1.3.38)

Update impact: full image download — every layer changed in this release (the operating-system base was refreshed), 11 GB for the standard image and 14 GB for the AMD image; applied in one container restart; no reindex needed (the call graph rebuilds itself on the first start, in seconds); no hardware or driver change. The installer changes below reach you on a fresh install or by re-running the install command over the install folder, not through an update.

Security

  • The operating-system packages inside the image are updated.3 Advisory CN-SA-2026-003 — Critical (upstream CVEs). The C library, Perl and OpenSSL move to Debian's current security releases, closing 34 Critical-severity CVEs that had fixes available. Every release is now checked against a CVE database before it ships, and a release is refused while a Critical finding with an available fix remains.
  • Rejected sign-in attempts are logged.4 Hardening — no advisory. A wrong or missing bearer token on the HTTP API or the MCP endpoint leaves one log line with the client address and path (never the token); repeats from the same client are counted rather than repeated. The chat endpoint's error responses no longer include internal error text — the detail goes to the server log.

Added

  • Your first index answers in seconds, not minutes. Call-graph and symbol tools are ready as soon as the structural pass finishes; semantic search tells you exactly how far the embedding pass is and what you can use meanwhile. Perl, SQL and template files have no call-graph extractor, and the message says so instead of pointing you at tools that would come back empty. reindex_status, /reindex-status and /health report the phase and progress.
  • The Index screen shows the reindex phase and progress, and each codebase card shows whether its call graph and its embeddings are ready.
  • The Claude Code and Antigravity status lines show ◔ 34% while your codebase is encoding, and a plain ◔ while only the call graph is ready.

Changed

  • A full reindex rebuilds the call graph from scratch too, not only the embeddings.
  • The trial badge states the cap your licence actually grants, not the image's preset.

Fixed

  • Podman on RHEL 9 / Rocky 9 installs cleanly. The installer rejects EPEL's podman-compose 1.5.0 up front (it cannot parse the compose file), names the compose command that exists on the box in its next steps, and reports a failed container start as what it is.
  • The installer's ownership repair for the runtime directories works on Docker installs, so the recovery it exists for is available when a bind mount is owned by another user.

1.3.37 — 2026-09-12

Update impact: ~25 MB download (code layers only) — applied in one container restart; no reindex needed (the call graph rebuilds itself on the first start, in seconds); no hardware or driver change. The installer and updater changes below reach you on a fresh install or by re-running the install command over the install folder, not through an update.

Changed

  • Under a trial file cap, your source code is indexed first. Test suites, fixtures and spec files come last, and the reindex report names the folders the cap left out (for example over tier file cap (tests 2243)), so you can see what a larger tier would add.
  • The installer waits up to five minutes for the server to come up. On a freshly provisioned disk the models can take three or four minutes to load; if the server is still loading when the installer finishes, the completion screen says so and shows how to watch it, with the Connect step right after.
  • update.sh waits the same five minutes for the restarted server, matching the Windows updater, before reporting the result of an update.
  • The installer's free-space check now covers the image, its update cache and the index — about four times the package size, 35 GB for the standard image — and the setup guides ask for about 45 GB free.

Fixed

  • The JavaScript and TypeScript call graph includes functions defined by assignment — arrow functions, exports.f = …, React components — so find_callers and impact_analysis cover a modern front end. On a large React codebase the share of call sites with a named caller went from 8% to 73%. The graph rebuilds itself on the first start after this update; the index is untouched.
  • impact_analysis and find_callers say when a language's callers are mostly unnamed. The coverage note at the end of both answers now names any language where most call sites have no attributable caller, so a short caller list is not mistaken for a complete one.
  • grep_search scopes path_filter and path_exclude to whole directories. A filter of t/ means the directory t, never template/; an exact file path still matches itself.
  • grep_search's capped header counts every file with a hit. It now reads … across 30 files, 13 shown (804 files searched), so a truncated result is not reported as the whole population.

1.3.36 — 2026-09-10 (also covers 1.3.31–1.3.35)

Update impact: ~24 MB download (code layers only) — applied in one container restart; no reindex needed; no hardware or driver change. The installer changes below reach you on a fresh install or by re-extracting the package over the install folder, not through an update.

Added

  • A new install starts on the current release. The image inside an install package is now a base that changes only when the embedding model or the ML runtime does; an install given an update token applies the current release before the server first starts, as a small download. Nothing reaches the network without a token — an offline install skips the step, and CODENAVI_NO_INSTALL_UPDATE=1 skips it on a connected machine.
  • A Windows install reports whether the GPU reached the container. After start-up the installer names the device the server loaded on. If it came up on the CPU it says so, with what to check in Docker Desktop — indexing on the CPU is roughly a hundred times slower.
  • The Windows GPU walkthrough and the air-gapped update instructions ship inside the package (docs/setup-windows-gpu.html and the README), so they are readable on a machine that cannot reach the website.

Changed

  • The repository question is asked before the downloads. Answer it near the start and the rest of the install runs unattended; an install driven over SSH or from a script completes on its own.
  • The installer checks prerequisites before it downloads anything. A missing system tool is listed with the command to install it; GPU setup instructions name your distribution's package manager (Fedora, RHEL, SUSE and Arch included); and on Debian and Ubuntu, whose archived podman-compose (1.3.0) cannot read CodeNavi's compose file, the installer names the working alternative: sudo apt install pipx && pipx install podman-compose.
  • Installs on AMD graphics are labelled ROCm in the reindex summary, the System screen and the installer. /health gains a compute_backend field beside the unchanged compute_device.

Fixed

  • Podman installs work end to end — Fedora, RHEL and anywhere else Podman is the container engine. The one-liner installer accepts Podman alongside Docker, the install starts the server, the GPU is reached through Podman's own device interface (the installer can enable that access for you), and updates apply to the running server and download only the layers that changed, as they already did on Docker.
  • Re-running the installer does what you expect. It uses the repository path you enter and leaves your access token and the rest of your configuration alone; it starts CodeNavi on the GPU if the machine has gained one since the first install; and it works with no internet connection, using the image it has just loaded for every step.
  • The auth token the installer shows is the token the server accepts. If your shell exports CODENAVI_AUTH_TOKEN, the installer adopts that value for the install rather than generating a second one.
  • Windows installs receive delta updates from their first update on. The installer fills the layer cache from the image it loads, hash-checking every layer. A Windows install from 1.3.30 or earlier still takes one full download on its next update; the one after that is a delta.
  • Update problems say which problem you have. A server that does not recognise your install's token — trial ended, token re-issued, install copied from another machine — is reported as such, with the instruction to ask for a current download link. Network, DNS and TLS failures still read as network failures.
  • update.ps1 reports the installed version on its check, shows accurate layer-caching progress, and explains how to enable updates when they are not configured.
  • Windows: a renewed licence takes effect. Put the new license.key in data\ and re-run setup.ps1; the README also gives a one-command alternative that needs no re-run.
  • Re-running the trial install command reuses the image you already downloaded. A trial still awaiting approval is reported as such, and a file that is not a licence is refused before the install rather than after it.

1.3.30 — 2026-09-07 (also covers 1.3.29)

Update impact: ~25 MB download (code layer only) — applied in one container restart; a full reindex is needed to pick up PowerShell files, and everything already indexed is unaffected; no hardware or driver change.

Added

  • PowerShell scripts are indexed. .ps1, .psm1 and .psd1 files are searchable by content and findable by name. They are split into line blocks, the same handling SQL and YAML get, and the secret and PII rules apply to them like any other file.
  • Install the Claude Code plugin straight from your server. claude plugin marketplace add http://<your-server>:8765/plugins/claude.git, then claude plugin install codenavi@codenavi; later releases arrive with claude plugin marketplace update codenavi, so the plugin always matches the server it talks to. The Codex and Antigravity bundles are served the same way, as a git repo or a .zip. The /plugins paths are read-only and need no token.
  • Connect an agent running on a different machine than the server. Open http://<your-server>:8765/connect from the client machine and every snippet is built for that address. For Claude Code, /codenavi:doctor writes the one settings block (CODENAVI_HOST, CODENAVI_PORT, CODENAVI_AUTH_TOKEN) that points the MCP server, the statusline badge and the session hook at the same remote install; the Codex and Antigravity setup scripts take --host <address>. The full recipe is in the Same LAN section of the remote-access guide. Claude Code plugin 0.5.7 is bundled.

Changed

  • Advanced tools run the moment your agent asks for one. On the default lean tool profile, a tool outside the everyday core is loaded and run in a single step, with the result returned straight back.

Fixed

  • The Claude Code statusline works on Windows. If you enabled it on an earlier version, run /codenavi:status-line enable once on plugin 0.5.8 to repair the setting.
  • A reindex started immediately after the server starts completes. It waits for warm-up and proceeds.

1.3.28 — 2026-09-06

Update impact: ~25 MB download (code layer only), applied in one container restart; no reindex needed; hardware requirement relaxed — a CPU-only host now runs within 8 GB of container memory (the Windows installer no longer asks for a 24 GB Docker VM).

  • Hosts without a GPU start and search within the memory limit the installer sets. On CPU-only hosts the embedder now loads in its compact form: about 4 GB of RAM at peak instead of 16, so the default 8 GB container limit holds, and a search query embeds in under a second on a modern laptop CPU. Indexing on CPU remains slow and is still not recommended (see the setup guide's hardware tiers).
  • Installs created before 1.3.15 apply this update with their original compose file. Run update.sh (or the Windows updater) as usual; no manual change to the install folder is needed.
  • Installing on a host with two or more NVIDIA GPUs completes reliably. The installer reads the first card's name and memory directly.
  • /health names the codebase on single-codebase installs, and the Claude Code statusline badge shows it. The CODENAVI_CODEBASE pin documented for the statusline now takes effect on every server. Claude Code plugin 0.5.6 is bundled; existing installs pick it up with claude plugin marketplace update codenavi.

1.3.27 — 2026-09-05 (also covers 1.3.26)

Update impact: ~25 MB download (code layer only), applied in one container restart; no reindex needed; no hardware or driver change. The 1.3.27 part is bundle-only — a refreshed Windows updater in the install package; the server image, the running container and your index are untouched, and existing installs pick it up by re-extracting the bundle over the install folder.

  • Searches that name a symbol return its definition first. The query you type is what the engine searches for. Across five codebases, 20 of 20 identifier queries in our benchmark land on the defining file.
  • Auto-generated query aliases are now opt-in. Hand-written aliases — the Search screen's alias editor, aliases.json and the per-codebase manual files — work unchanged. If your install relied on the generated per-codebase set, add "AUTO_ALIASES": true to data/settings.json and restart the container; see the setup guide.
  • The Windows updater shows its progress. It announces how many layers it will download and their total size, draws a live bar per layer with speed and time remaining, and waits up to five minutes for the server to come back. An install whose image came from the bootstrap downloads the whole image once on its first update; the updater says so up front.

1.3.25 — 2026-09-04 (also covers 1.3.24)

Update impact: ~25 MB download, applied in one container restart; no reindex needed; no hardware or driver change. Podman installs on Fedora/RHEL re-extract the package once (see below).

Changed

  • Search responds about 3x faster on 11 to 16 GB cards. The reranker now runs on the GPU on those cards too, stepping to the CPU only while a reindex is encoding: measured on an 11 GB card, a search drops from ~540 ms to ~190 ms. Installs made before 1.3.24 on such a card carry RERANKER_DEVICE=cpu in .env; delete that line and restart the container to get the faster path.
  • Podman: CodeNavi keeps running after you log out. The installer enables lingering for your user when the system lets it, and otherwise prints the one-time loginctl enable-linger command on its completion screen; the Podman guide covers that step and how to have the container restart itself at boot.
  • The installer says why a container did not start. When the server does not answer within two minutes, the installer reads the container log and prints its first error on the completion screen; the container's own startup check names an SELinux label denial when file ownership is already correct.
  • Long wiki-compile and chat prompts on Ollama are processed whole. Each request sizes its context window to the prompt (up to 32768 tokens) instead of relying on Ollama's default.
  • Podman + NVIDIA: regenerate the GPU spec after changing cards. The CDI file Podman uses lists only the GPUs present when it was created, so re-run nvidia-ctk cdi generate after any GPU or driver change; the Podman guide and the multi-GPU notes say so. Docker installs are unaffected.

Fixed

  • Podman with an NVIDIA GPU indexes on the GPU. The installer requests the card as a CDI device through a dedicated compose overlay and warns after start-up if a GPU install came up on the CPU; host prerequisites are in the Podman guide, which now ships in the package. Existing podman + NVIDIA installs: re-extract the current package and re-run ./setup.sh, which migrates your setup and restarts on the GPU.
  • Podman on SELinux-enforcing hosts works for CPU-only installs too. The installer applies the same SELinux setting the GPU overlays already use, so the container can write its data directories and read your codebase on Fedora and RHEL. Existing CPU-only Podman installs pick it up on the next package re-extract; the Podman guide has the one-file manual fix for older packages.
  • Fedora/RHEL: the installer's NVIDIA toolkit auto-fix works with dnf and yum. Every toolkit hint includes NVIDIA's repository step, which those distributions need before the package installs.
  • Re-running ./setup.sh --airgap in an existing install folder applies the current migrations (compose overlays, port publishing).

1.3.23 — 2026-09-02

Update impact: ~25 MB download, applied in one container restart; no reindex needed; no hardware or driver change. Windows: the installer bundle download drops from ~104 MB to ~53 MB (no bundled verifier executable).

Breaking

  • Agents now see an 11-tool core by default. tools/list advertises search, browse, read, incremental reindex, reindex status and index stats, plus reveal_tools(); every other tool loads on demand — reveal_tools() lists them by group, reveal_tools(group="relations") loads a group. Measured against the full set this is about 57% less tool schema per conversation. Anything that calls a non-core tool directly over MCP — a CI bot allow-listing diff_impact, a script — must call reveal_tools first or talk to a server started with CODENAVI_TOOL_PROFILE=full; the CI recipes are updated. Claude Code applies the revealed list at the start of its next turn.56

Added

  • Optional git pull before every reindex. Set CODENAVI_GIT_PULL_BEFORE_REINDEX=true and each git-checkout codebase fast-forwards before scanning — MCP tools, POST /reindex, reindex.sh and the CLI all honour it. An in-container pull needs a read-write codebase mount; the team server page recommends host-side pulls instead.
  • New guide: Running CodeNavi as a team server. One shared index on a host clone, kept fresh from cron, a post-receive hook or a forge webhook, with every developer connecting through /mcp/{codebase}.

Changed

  • Windows installs verify release signatures natively. setup.ps1 and update.ps1 check cosign signatures with built-in Windows cryptography, so the bundle ships no verifier executable for Smart App Control to inspect. Verification still fails closed.
  • The bundled Claude Code plugin is 0.5.2. Its commands know the lean profile: they unlock the tools they need and tell you if a command has to be run once more. Refresh it from plugins/claude/.

Fixed

  • setup.ps1 reads free disk space reliably on PowerShell 5.1, and a re-run keeps the port the install already uses instead of warning that it is busy.
  • update.ps1 -Check compares the installed layer chain and reports "same build, nothing to apply" when there is nothing new.

1.3.22 — 2026-08-30

Update impact: ~25 MB download, applied in one container restart; no hardware or driver change. No reindex is required; your next incremental reindex picks up the improvements below automatically.

Breaking

  • The chat MCP tool is removed. Agents connected over MCP already answer from the search tools directly. Grounded Q&A is unchanged where people use it: the Chat screen in the web UI, POST /chat, and the codenavi chat CLI. The bundled Claude Code plugin (v0.5.1) drops /codenavi:chat; refresh it from plugins/claude/.

Added

  • Investigation notes — agents can save what they learn about your code. New tools save_note, search_notes, list_notes and delete_note let any connected agent record findings server-side, and every other agent gets them back as clearly labelled advisory results. Notes are security-scanned on write and marked stale when the anchored code changes. Off switch: CODENAVI_NOTES_ENABLED=false.
  • /codenavi:review — blast-radius review from Claude Code. Runs your diff through diff_impact, reads every affected caller, and reports a merge/hold verdict. Same flow as the CI review-bot recipe.
  • Extensionless scripts are indexed. A file whose first line is a shebang is indexed as that language — bin/deploy now gets the same treatment as deploy.sh.
  • Reindex cooldown is per codebase, so reindexing one codebase no longer delays another; reindex_status lists active cooldowns.

Changed

  • Call-graph tools no longer cross languages by name. In a mixed-language repo, a common name like init or render no longer pulls in callers from other languages or raises false ⚠ Hub warnings. Hub scores refresh on your next reindex. To keep the old behaviour: CODENAVI_GRAPH_CROSS_LANGUAGE=true.
  • The Connect wizard's built-in docs now match codenavi.com/docs — one source, always current, still fully offline.

Fixed

  • crawl validates its arguments before starting — a mode="url" call without a URL now errors instead of starting a site-wide crawl.
  • max_chars is honoured, with omitted chunks counted in a new chunks_omitted field; the top hit is still returned whole.
  • A miss no longer reports "index not built yet" on a healthy index, and an unknown codebase name lists the valid ones.

1.3.21 — 2026-08-26 (also covers 1.3.20)

Update impact: ~25 MB download (code layer only) plus a refreshed installer — applied in one container restart; no hardware or driver change. No reindex is required to update, but PII redaction applies at indexing time, so run a reindex when convenient to redact PII in content indexed before this release. The new engine and GPU options below apply to fresh installs, or to an existing install by re-running ./setup.sh from a fresh bundle.

Security

  • PII is now redacted by default. Hardening — no advisory. Payment card numbers (Luhn-validated) and IBANs (mod-97-validated) found in indexed content are replaced with [REDACTED:…] markers, exactly like secrets — in code, documents, PDFs/DOCX and crawled pages. An opt-in extended set adds SSNs, emails, phone numbers and public IPs. PII never blocks or quarantines a file, redaction touches the index only (source files are never modified), and any policy change is fully reversed by a reindex. The Security screen gains PII hit counters, the two toggles, and a policy-change audit log. Redaction applies at indexing time, so existing indexes pick it up at the next reindex.

Added

  • Podman support — Docker is no longer required. On Fedora/RHEL hosts that ship Podman instead of Docker, the installer detects Podman (rootless included) and configures everything itself — same signed packages, same hardened container profile, same updates. AMD GPU indexing verified. GPU installs run under SELinux Enforcing as shipped; a CPU-only Podman install on an Enforcing host needs the relabel step in the Podman guide. NVIDIA under Podman is requested as a CDI device from 1.3.24 on (see that release's note); the guide lists the one-time host preparation.
  • Choose which GPU CodeNavi uses on multi-GPU machines. Set CODENAVI_GPU_DEVICE=<index> in .env and restart. CodeNavi runs on exactly one card, so a second install on the same machine takes the other card with a different index.
  • Central Settings screen. Every editable runtime setting in one place — search tuning, chat LLM, scanner, crawler and wiki — with per-setting descriptions. The quick controls on each screen stay where they are; both write the same settings.
  • DeepSeek and other OpenAI-compatible chat providers. Pick provider openai and set the new Base URL field (for example https://api.deepseek.com) to use any OpenAI-compatible API for chat.
  • Chat temperature control (0–2, blank = the provider's default) — lower for repeatable answers, higher for varied ones. Applies to every provider.

Fixed

  • Cloud chat model choices saved in the web UI now survive container restarts.

1.3.19 — 2026-08-24 (also covers 1.3.16–1.3.18)

Update impact: from here on a code-only update is ~25 MB, applied in one container restart. Reaching this release from 1.3.15 or earlier is a one-time ~10–15 GB download (varies by GPU variant) — safe to skip and pick up with the next release. No reindex needed; no hardware or driver change.

  • The System screen shows when your last reindex finished (for example "Last reindex — 24 Aug 2026, 5:00 pm"), so you can tell at a glance whether the index is fresh. The Index screen's badge shows the same.
  • The Security screen's optional AI double-check now uses your Chat model instead of a fixed one — if Chat works, escalation works, and the override fields still let you pick a smaller model for it. If Chat points at a cloud provider and no local override is set, escalation is skipped rather than sending flagged code off your machine.
  • Clearer browser tabs — each web-UI screen sets its own tab title and a one-line description, so multiple open CodeNavi tabs are distinguishable.

1.3.15 — 2026-08-22

Update impact: full server-image download (this release pre-dates the small delta updates introduced in 1.3.19), ~2.7 GB smaller than 1.3.14. One container restart; no reindex needed; no hardware or driver change.

Security

  • Two fixes for a token holder's reach and a tokenless loopback server. Neither is remotely exploitable and no install is known to be affected. The settings API can no longer point the hook directory outside the documented /app/hooks mount — advisory CN-SA-2026-001, High (CVSS 3.1 7.2), requires the bearer token — and DNS-rebinding protection is now on for the one posture where it helps, a loopback server running with no token — advisory CN-SA-2026-002, Medium (CVSS 3.1 5.3).

Added

  • See how much VRAM CodeNavi is using — a VRAM stat and time series on the Grafana dashboard, and the same numbers in /health under gpu. Note that on Windows/WSL2 the total also counts Windows' own GPU use.

Changed

  • The download is about 2.7 GB smaller. The embedder ships in its quantised form and is expanded on load — precision, GPU memory use and result quality are identical.
  • The compliance report states your ASVS Level 1 result (for example "ASVS Level 1: 9 of 19 applicable L1 rules pass"), using the published OWASP ASVS 5.0 levels, and records the revision it was run against so later runs can be compared.

Fixed

  • Searches on documentation-heavy repositories now find the code. Code results get reserved room in the candidate shortlist; asking for docs explicitly (source_type='doc') steps the reservation aside. Code-heavy repositories are unchanged.
  • Scheduled differential crawls run without extra setup. If you don't use the optional crawler, nothing changes.

1.3.14 — 2026-08-11 (also covers 1.3.13)

Update impact: bundle-only — refreshed plugins, docs and scripts. The server image, the running container and your index are untouched.

  • Check your codebase against OWASP — from Claude Code. The bundled plugin adds /codenavi:compliance: pick OWASP ASVS 5.0 core or OWASP Top 10 2025 and it checks every rule against your indexed code, writing a gap report with file:line evidence behind each verdict. Built for audit preparation — not a certification. Install or refresh the plugin from plugins/claude/.
  • AGENTS.md — for agents we don't bundle a plugin for. Copy it into a repo and Cursor, Windsurf, or any MCP-capable agent gets the connection details and usage rules without a plugin.
  • The Grafana dashboard and observability stack are included at docs/observability/ — dashboard JSON, Prometheus config, and a setup guide.
  • update.sh keeps a clean, complete transcript of each run — if anything looks off, send it to support as-is.

1.3.12 — 2026-08-06

Update impact: server-image download (smaller than 1.3.11, see below) — one container restart; no reindex needed; no hardware or driver change.

Added

  • NVIDIA GPUs with 8–10 GB of VRAM can now index. Smaller cards load a compact form of the embedder that produces exactly the same embeddings — search quality is untouched; indexing on those cards is ~25% slower.
  • RTX 50-series works with the standard NVIDIA image — one build now covers RTX 20-series through 50-series.

Changed

  • Smaller downloads — the AMD (ROCm) image is about a third smaller (~7 GB less) and the NVIDIA image ~1.5 GB smaller, by removing components CodeNavi's workload never executes.

Fixed

  • Interrupted downloads resume instead of restarting, and setup.sh --upgrade always writes a matching torch/CUDA pair.

1.3.11 — 2026-08-04

Update impact: server-image download — one container restart; no reindex needed; no hardware or driver change.

Security

  • Offline installs now refuse an unverified download. Hardening — no advisory. Installing from a carried blob store (--store) requires a valid cosign signature on the release manifest and stops if it can't verify one. Every package ships the key and verifier, so a standard offline install proceeds exactly as before; --allow-unsigned remains for deliberate use, with a clear warning.

Breaking

  • Site-specific crawler URL mapping is now an optional add-on. Normal crawling (base URL, links, sitemap) is unchanged; seeding from source-code route references and crawl changed need a mapper for your framework — contact us if you rely on either (see docs/api-reference.md → Site route mappers). The crawler's destructive-action guard is unaffected and always on.
  • One MCP tool removed: search_fixes. Drop it from any agent allow-list that names it.

Changed

  • The web UI loads about 840 KB less — two bundled JavaScript libraries were replaced with inline icons and plain CSS charts.
  • codebase_overview returns identical output about twice as fast, using a fraction of the memory.

1.3.10 — 2026-08-02 (also covers 1.3.9)

Update impact: refreshed installer and scripts plus a server-image download — one container restart; no reindex needed; no hardware or driver change.

  • Connect page — Copy buttons work when CodeNavi is opened at a LAN address over plain HTTP, /connect/ with a trailing slash resolves, MCP clients show CodeNavi's version, and the generated Pi config is complete.
  • Installer — re-installing uses the release's own image; the install stops when the signature verifier is missing or unusable; trial renewals take effect on re-install; and the install summary lists exactly what the daily update check sends (your version number and trial token, never code).
  • README now has a real air-gapped install guide — which files to download on a connected machine, where each goes on the offline box, and the one prerequisite to sort out before the machine goes offline.

1.3.8 — 2026-08-01 (also covers 1.3.4–1.3.7)

Update impact: bundle-only — refreshed installer; the server image, the running container and your index are untouched. To pick it up, re-run the install command from your trial email in the folder above your install; it reuses the image you already have and keeps your .env, licence and index.

  • The install shows what it is doing, start to finish — numbered steps with real byte-by-byte progress through download and load, resumable downloads, an opening banner naming the release, GPU build and download size, and a complete transcript in logs/setup.log that is safe to send to support (it never contains your auth token).
  • Re-installing is fast — work already done is reused, your configured answers are offered back instead of re-asked, and two CodeNavi installs on one host stay out of each other's way.
  • ./update.sh recognises the version you are already on instead of re-offering the update you just installed.
  • The install folder is organised — legal documents, updater internals and the bundled verifier moved into subfolders, so the top level holds the files you actually run.

1.3.3 — 2026-07-31

Update impact: server-image download — one container restart, then one full reindex per codebase (several search-quality fixes only materialise on a rebuild); no hardware or driver change. One breaking change for tokenless network-bound servers (see Breaking, below).

Breaking

  • A network-bound server with no auth token now refuses to start. Loopback installs are unaffected; CODENAVI_ALLOW_NO_AUTH=1 explicitly acknowledges the risk if you need the old behaviour.
  • The legacy standalone chat REPL is removed — codenavi chat now routes through the server's /chat endpoint with your configured LLM provider.

Added

  • React and modern JS/TS projects index end-to-end — .tsx, .jsx, .mjs, .cjs, .mts, .cts are chunked as real components and functions and join the call graph.
  • Four more file families — Template Toolkit .tmpl, MDX, YAML, and reStructuredText; the full matrix lives at docs/supported-languages.md.
  • The skip ledger — reindex summaries, index_stats, and zero-result searches name the files that were not indexed, and why.
  • Docs Wiki — a new screen that compiles knowledge pages from your indexed documentation with your configured LLM, source citations on every page, and two read-only MCP tools for agents. Remote providers require explicit consent per compile.
  • Security screen — flagged chunks, quarantined files, allowlist management, and live scanner settings in one place.
  • Interactive graph explorer — the call graph renders as an interactive MCP App in hosts that support it.
  • AMD GPUs are first-class — dedicated ROCm builds, with your actual hardware detected before the first byte downloads.
  • Per-codebase index filters — on multi-codebase servers, exclude/include rules can be scoped as codebase:path.
  • Prompt injection written as prose in documents is now detected — 15 new document-scoped rules; external PDFs/DOCX run through the full scanner pipeline.
  • Impact analysis is coverage-aware — it answers "UNKNOWN" for code the call graph cannot see instead of "low impact", and flags structurally load-bearing symbols (⚠ Hub).

Changed

  • The package extracts to a stable codenavi/ folder and container name. Existing installs keep their current names; nothing to migrate.
  • Default file-size cap raised 100 KB → 250 KB, and .dockerignore is no longer treated as a source-ignore file — large generated files, tests and docs are indexed by default.
  • The product ships governing terms — EULA.md.

Fixed

  • Connected updates run end-to-end with zero manual steps — every package bundles the signature verifier, downloads print progress, and installs prime the layer cache so your first update is a real delta.
  • Search scoring clarified — scores are documented as relative ranking keys, a low_signal diagnostic tells you when a query found nothing on-topic, and leading doc comments attach to the function they document.
  • A reindex killed or cancelled mid-run reports its actual outcome, and cancelling now cancels the whole run.
  • Update and connect correctness — update.sh --check never restarts anything, half-applied updates are detected and completed, and every shipped client-connect snippet carries the auth header it needs.

1.3.2 — 2026-07-05

Added

  • License visibility on every surface — a License card on the System screen, license details on /health, and an app-wide expiry banner ahead of renewal.
  • Project ignore files respected + pre-reindex preview — indexing honours your codebase's own .gitignore, and the Index screen shows what would be indexed before you commit to a long reindex.
  • Provider-aware chat model picker — models listed live from self-hosted backends (Ollama, LM Studio, AnythingLLM, vLLM), Gemini support, and a clear "leaves this machine" warning on cloud providers. Local-first remains the default.
  • Configurable crawler URL denylist and per-environment base-URL passthrough.

Changed

  • Trial distribution split into installer + image artifacts, so installer fixes no longer force a multi-GB re-download.
  • EXCLUDE_DIRS is additive — your settings extend the safe defaults instead of replacing them.
  • GPU-aware builds (Turing through Blackwell) with a fail-loud preflight instead of silent zero-result searches on unsupported architectures.

Fixed

  • Small-VRAM GPUs (11–12 GiB) no longer out-of-memory during indexing — batch size autotunes to the card.
  • Reindex no longer drops the server for ~60 s — /health and MCP stay up throughout.
  • Crawler SSRF hardening, and PDF/DOCX documentation chunks survive code-only reindexes.
  • Chat model choice is saved per provider.

1.3.0 — 2026-06-24

Added

  • Connect wizard at http://localhost:8765/connect — wires any MCP client (Claude Code, Codex CLI, Cursor, Windsurf, Cline, Antigravity, …) to your server with copy-paste configs and a live "indexed & reachable" check.
  • int8-quantized embedder as the GA default — half the image and package size at equivalent retrieval quality.
  • Graph screen + graph API — explore the call-graph neighborhood of any symbol in the web UI.
  • Lean tool profile (CODENAVI_TOOL_PROFILE=lean) — a trimmed MCP tool set for agents that prefer a smaller surface, with on-demand discovery.
  • Prometheus /metrics + shippable Grafana dashboard + observability guide.
  • Three more AST-chunked languages — Swift, Kotlin, Scala (15 total), and Perl/CGI support including legacy .cgi entry points.
  • Apple Silicon native path with MPS acceleration.
  • Operator VRAM cap (CODENAVI_VRAM_BUDGET_GIB) for shared-GPU hosts.

Changed

  • Web UI reorganised — System is the landing tab; Search and Index are separate screens; every setting lives on the screen it affects. The legacy Streamlit UI is fully retired in favour of the built-in SPA at /ui.
  • Reranking on by default for noticeably better result ordering.

Fixed

  • No-op reindexes are cheap — unchanged indexes skip the table rebuild, backup, and model reload entirely.
  • Search analytics now populate on the System screen.
  • Oversized functions/classes are no longer truncated at embed time — long chunks split into overlapping sub-chunks.

1.2.0 – 1.2.3 — 2026-04

Added

  • Multi-codebase support — one server indexes and searches multiple projects, with per-codebase tables, a codebase parameter on every tool, and scoped endpoints (/mcp/{codebase}) that pin a client to one project.
  • Codebase exploration tools — read_file (with secret redaction), grep_search, and list_directory work even without an index.
  • Grep-augmented semantic search — sparse vector results are backfilled by targeted text search, improving recall on rare identifiers.
  • Full CLI parity — every MCP tool has a codenavi subcommand; chat and reindex are available over HTTP endpoints as well.

Changed

  • Vector-only retrieval with a wider rerank candidate pool — measurably better result quality than the previous hybrid search.

Fixed

  • Scoped-endpoint streaming abort under concurrent clients; doc/web tables hidden by paginated table listing.

1.1.0 — 2026-04-08

  • 11 AST-chunked languages (added Go, Java, Ruby, Rust, C#, Fortran).
  • 22 secret-detection rules covering major cloud/token formats.
  • cancel_reindex tool; feedback rate limiting; dynamic codebase overview; SECURITY.md disclosure policy; SBOM shipped with the product.

1.0.0 — 2026-04-05

Initial release: semantic code search with AST-aware chunking (PHP, JavaScript, TypeScript, Python, Bash), documentation ingestion (PDF, DOCX, Markdown, text), opt-in web crawler, MCP tool suite for AI agents, built-in web UI, LLM chat over local or cloud providers, security scanner (secret redaction + prompt-injection detection), bearer-token authentication, Prometheus metrics, feedback loop with rating-based demotion, backup/restore, and Docker CPU/GPU deployment.


  1. Vendor change reference CN-810. ↩

  2. Vendor change reference CN-722. ↩

  3. Vendor change reference CN-714. ↩

  4. Vendor change reference CN-713. ↩

  5. Vendor change reference CN-309. ↩

  6. Vendor change reference CN-581. ↩

  7. Vendor change reference CN-745. ↩

  8. Vendor change reference CN-746. ↩

  9. Vendor change reference CN-748. ↩

  10. Vendor change reference CN-749. ↩

  11. Vendor change reference CN-752. ↩

  12. Vendor change reference CN-764. ↩

  13. Vendor change reference CN-455. ↩

  14. Vendor change reference CN-790. ↩

  15. Vendor change reference CN-769. ↩