[Skip to content](#_top)

[![OpenNav AI](/_astro/full-open-logo.CGezuffk.svg) OpenNav AI](https://opennav.ai/)

Search CtrlK

Cancel

[Docs](https://docs.opennav.ai/index.md)

[Quick Start](https://docs.opennav.ai/getting-started/index.md)

[SDK](https://docs.opennav.ai/sdk/index.md)

[OpenNav AI on X](https://x.com/OpenNavAI)

[Joshua Bellew on X](https://x.com/manofyear93)

[Email Joshua Bellew](mailto:joshua@opennav.ai)

- Start Here

  - [Overview](https://docs.opennav.ai/index.md)
  - [How It Works](https://docs.opennav.ai/how-it-works/index.md)
  - [Getting Started](https://docs.opennav.ai/getting-started/index.md)

- Use OpenNav

  - [CLI](https://docs.opennav.ai/cli/index.md)
  - [SDK](https://docs.opennav.ai/sdk/index.md)

- Frameworks

  - [Astro](https://docs.opennav.ai/frameworks/astro/index.md)
  - [Next.js](https://docs.opennav.ai/frameworks/next/index.md)
  - [Server-side frameworks](https://docs.opennav.ai/frameworks/server-side/index.md)

- Platforms

  - [Cloudflare](https://docs.opennav.ai/platforms/cloudflare/index.md)

- Reference

  - [Generated Files](https://docs.opennav.ai/reference/generated-files/index.md)
  - [Content Extraction](https://docs.opennav.ai/reference/content-extraction/index.md)
  - [Access Guidance](https://docs.opennav.ai/reference/access-guidance/index.md)
  - [Changelog](https://docs.opennav.ai/changelog/index.md)

- External

  - [AcceptMarkdown](https://acceptmarkdown.com/)
  - [Cloudflare Agent Readiness](https://blog.cloudflare.com/agent-readiness/)
  - [Is It Agent Ready?](https://isitagentready.com/)

[OpenNav AI on X](https://x.com/OpenNavAI)

[Joshua Bellew on X](https://x.com/manofyear93)

[Email Joshua Bellew](mailto:joshua@opennav.ai)

On this page

- [Overview](#_top)
- [0.2.0 — 2026-06-14](#020--2026-06-14)
  - [Server-side content negotiation](#server-side-content-negotiation)
  - [Other additions](#other-additions)
- [0.1.2 — 2026-06-07](#012--2026-06-07)
- [0.1.1 — 2026-06-06](#011--2026-06-06)
- [0.1.0 — 2026-06-06](#010--2026-06-06)

## On this page

- [Overview](#_top)
- [0.2.0 — 2026-06-14](#020--2026-06-14)
  - [Server-side content negotiation](#server-side-content-negotiation)
  - [Other additions](#other-additions)
- [0.1.2 — 2026-06-07](#012--2026-06-07)
- [0.1.1 — 2026-06-06](#011--2026-06-06)
- [0.1.0 — 2026-06-06](#010--2026-06-06)

# Changelog

Every release of `@opennav-ai/opennav` is documented here. These notes describe customer-facing behaviour: new APIs, changed defaults, platform support, and breaking changes. The full changelog is also available in the [GitHub repository](https://github.com/opennav-ai/opennav-ai/blob/main/packages/opennav/CHANGELOG.md).

## 0.2.0 — 2026-06-14

[Section titled “0.2.0 — 2026-06-14”](#020--2026-06-14)

### Server-side content negotiation

[Section titled “Server-side content negotiation”](#server-side-content-negotiation)

`OpenNavServer` gives every server-rendered page a Markdown representation through standard HTTP `Accept` header negotiation. Three new methods on `OpenNavServer` let you pick the right level of control:

| Method | When to use |
| --- | --- |
| `negotiate({ request, htmlResponse })` | Full pipeline — accept header → decision → response. The default for most routes. |
| `accept(request)` | Need the Accept decision *before* fetching or rendering expensive page content. Sync, no I/O. |
| `toMarkdown({ request, htmlResponse })` | Already know Markdown is needed (static `.md` cache miss, markdown-only endpoint). |

Read the [server-side guide](https://docs.opennav.ai/frameworks/server-side/index.md) for framework-specific examples for Hono, Astro SSR, Next.js, and Cloudflare Workers.

### Other additions

[Section titled “Other additions”](#other-additions)

- **Accept header negotiation** — RFC 9110-compliant Accept header parsing with q-value weighting, wildcard matching, and client-order tiebreaking.
- **Layout stripping** — remove nav, header, footer, and chrome elements before Markdown conversion with `contentExtraction: { stripLayout: true }`.
- **`Vary: Accept`** on all negotiated responses so caches keep HTML and Markdown representations separate.
- **`Link: rel="alternate"`** on HTML responses advertising the Markdown representation so agents can discover it.
- **Cloudflare Pages Functions guide** — static `.md` priority with runtime fallback using `opennav.accept()` to avoid wasted CPU.

## 0.1.2 — 2026-06-07

[Section titled “0.1.2 — 2026-06-07”](#012--2026-06-07)

- Documentation site updated to use the published `@opennav-ai/opennav` package from npm instead of workspace references.
- GitHub repository links added to the docs site header and navigation.

## 0.1.1 — 2026-06-06

[Section titled “0.1.1 — 2026-06-06”](#011--2026-06-06)

- `LICENSE` file added to the published npm package so license information appears on npmjs.com.

## 0.1.0 — 2026-06-06

[Section titled “0.1.0 — 2026-06-06”](#010--2026-06-06)

Initial public release of `@opennav-ai/opennav`.

- **`OpenNavStaticSite`** — generate agent-readable files (`index.md`, `llms.txt`, `llms-full.txt`, `.well-known/opennav.json`, `robots.txt`) from a static output directory.
- **`opennav build` CLI** — command-line entry point with `--output`, `--site-url`, `--site-name`, `--platform`, `--dry-run`, and `--full-run` flags.
- **`OpenNavAstro`** — Astro integration that runs after `astro build`.
- **`OpenNavNext`** — Next.js config wrapper for static export builds.
- **Cloudflare Pages `_headers`** — proper content types for `.md`, `llms.txt`, and `opennav.json` artifacts.
- **Build fingerprinting** — every generated file is stamped with a stable SHA-256 fingerprint so agents and caching layers can detect changes.

[PreviousAccess Guidance](https://docs.opennav.ai/reference/access-guidance/index.md)

[NextAcceptMarkdown](https://acceptmarkdown.com/)

---

Site index: [llms.txt](https://docs.opennav.ai/llms.txt)

<!-- opennav compatible="true" version="1.0" profile="static-agent-ready" build-fingerprint="sha256:bfdafecaf8df" manifest="/.well-known/opennav.json" -->
