llmnav 0.7.1 → 0.7.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +6 -0
- package/README.md +3 -1
- package/ROADMAP.md +1 -1
- package/docs/api.md +2 -0
- package/docs/compatibility.md +40 -0
- package/package.json +1 -1
- package/src/spec.js +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -6,6 +6,12 @@ The npm package follows Semantic Versioning. The `llmnav/N` source protocol is v
|
|
|
6
6
|
|
|
7
7
|
## [Unreleased]
|
|
8
8
|
|
|
9
|
+
## [0.7.2] — 2026-08-13
|
|
10
|
+
|
|
11
|
+
### Added
|
|
12
|
+
|
|
13
|
+
* Documented pre-1.0 stability classes, a one-minor and 90-day public API deprecation window, generated-format migration guarantees, and the limited security exception.
|
|
14
|
+
|
|
9
15
|
## [0.7.1] — 2026-08-13
|
|
10
16
|
|
|
11
17
|
### Fixed
|
package/README.md
CHANGED
|
@@ -6,7 +6,7 @@ It adds compact, stable metadata to a small number of architectural and behavior
|
|
|
6
6
|
|
|
7
7
|
LLMNav is not a documentation generator, an embedding database, or a reason to annotate every function. It is a zero-runtime-dependency Node.js CLI and ESM library for reducing broad repository scans, irrelevant context, stale hand-written links, repeated card tokenization, and avoidable cache invalidation.
|
|
8
8
|
|
|
9
|
-
## What v0.
|
|
9
|
+
## What v0.7 provides
|
|
10
10
|
|
|
11
11
|
* The backward-compatible `llmnav/1` source comment specification
|
|
12
12
|
* A parser and data-loss-resistant canonical formatter
|
|
@@ -36,6 +36,8 @@ LLMNav is not a documentation generator, an embedding database, or a reason to a
|
|
|
36
36
|
|
|
37
37
|
The package supports Node.js 22 or newer, uses ESM, performs no network requests, and has no runtime dependencies.
|
|
38
38
|
|
|
39
|
+
Public compatibility rules are documented in [Compatibility and deprecation policy](docs/compatibility.md). In short, `llmnav/1` source cards and the schemaVersion 1 primary index are stable contracts; disposable generated accelerators may be rebuilt, and documented CLI or library removals receive a replacement and a minimum one-minor/90-day deprecation window.
|
|
40
|
+
|
|
39
41
|
## Install
|
|
40
42
|
|
|
41
43
|
```sh
|
package/ROADMAP.md
CHANGED
|
@@ -89,7 +89,7 @@ The source grammar and generated formats will be declared stable only after use
|
|
|
89
89
|
|
|
90
90
|
In progress:
|
|
91
91
|
|
|
92
|
-
* Generated-format migration tooling
|
|
92
|
+
* Generated-format migration tooling and the public support and deprecation policy are implemented for the current formats.
|
|
93
93
|
* A read-only cross-repository conformance matrix measures validation, retrieval, audit, repeatability, and cache freshness without averaging weak repositories away.
|
|
94
94
|
* LLMNav, Workduck, Sairon, and AI BOM Generator currently pass repository-isolated conformance checks across JavaScript, TypeScript, Rust, Go, and Python.
|
|
95
95
|
* The current evidence covers 4 repositories and 5 required languages with no held or failed repository, while 1.0 still requires sustained Windows and Linux verification and published benchmark methodology.
|
package/docs/api.md
CHANGED
|
@@ -306,3 +306,5 @@ The typed `llmnav/examples/provider-neutral-host.mjs` export composes these APIs
|
|
|
306
306
|
## Compatibility boundary
|
|
307
307
|
|
|
308
308
|
The public API follows package semantic versioning. `index.json` schemaVersion 1 and `llmnav/1` source syntax remain compatible. Contract fingerprints are optional additive index fields. `search-index.json`, `file-state.json`, `graph-state.json`, transaction journals, and performance metrics retain their own schema or implementation versions.
|
|
309
|
+
|
|
310
|
+
See [Compatibility and deprecation policy](compatibility.md) for the pre-1.0 stability classes, removal window, migration guarantees, and security exception.
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
# Compatibility and deprecation policy
|
|
2
|
+
|
|
3
|
+
This policy applies to LLMNav releases before 1.0 and defines which surfaces are durable enough for repositories and integrations to depend on.
|
|
4
|
+
|
|
5
|
+
## Stability classes
|
|
6
|
+
|
|
7
|
+
| Surface | Stability before 1.0 | Compatibility rule |
|
|
8
|
+
| --- | --- | --- |
|
|
9
|
+
| `llmnav/1` source cards | Stable protocol | Existing valid cards keep their meaning. A breaking grammar or semantic change requires a new protocol header such as `llmnav/2`; LLMNav will not reinterpret `llmnav/1` incompatibly. |
|
|
10
|
+
| `.llmnav/cache/index.json` schemaVersion 1 | Stable primary generated contract | Additive optional fields are allowed. Removing or changing an existing field requires a new schema version and a migration path. |
|
|
11
|
+
| CLI commands, flags, exit codes, JSON fields, ESM exports, and TypeScript declarations documented in this repository | SemVer public API | Compatible additions may ship in a minor release. Removal or incompatible behavior requires a minor release before 1.0, a documented replacement, and the deprecation window below. |
|
|
12
|
+
| Diagnostic codes | Stable identifiers | A code may gain clearer wording, but its documented category and remediation meaning remain compatible. Retiring a code follows the deprecation window. |
|
|
13
|
+
| Search ranking and performance | Behavioral contract | Determinism and published regression thresholds are protected. Exact scores or ordering may change in a minor release when benchmarks justify the change and the changelog explains it. |
|
|
14
|
+
| `search-index.json`, `file-state.json`, `graph-state.json`, prompt bundles, shards, transaction journals, locks, and other generated accelerators | Disposable versioned formats | Consumers must not treat these as source truth. LLMNav may replace an incompatible format after `migrate --check`; it must rebuild or fail closed rather than silently misread it. |
|
|
15
|
+
| Undocumented internals and test helpers | Unstable | They may change in any release. Importing source files outside the documented package exports is unsupported. |
|
|
16
|
+
|
|
17
|
+
Package versions follow Semantic Versioning. Before 1.0, an incompatible change to a documented package API may use a minor version, while patches remain backward compatible. Protocol and generated-schema versions are independent from the npm package version.
|
|
18
|
+
|
|
19
|
+
## Deprecation window
|
|
20
|
+
|
|
21
|
+
For a documented CLI, JSON, ESM, or TypeScript surface:
|
|
22
|
+
|
|
23
|
+
1. The introducing release documents the deprecated surface, its replacement, and any automated migration.
|
|
24
|
+
2. The old surface remains functional for at least one subsequent minor release and for at least 90 days. Removal waits until both conditions are satisfied.
|
|
25
|
+
3. `llmnav doctor`, `check`, or `migrate --check` reports a stable diagnostic when repository action is required. A warning must not silently become destructive behavior.
|
|
26
|
+
4. The removal release records the change in `CHANGELOG.md` and `docs/migration.md`.
|
|
27
|
+
|
|
28
|
+
Immediate removal is reserved for an actively exploitable security issue or behavior that can corrupt source or repository state. The security release must explain the exception and provide the safest available migration.
|
|
29
|
+
|
|
30
|
+
## Upgrade guarantees
|
|
31
|
+
|
|
32
|
+
* Canonical source cards and `.llmnav/ids.jsonl` remain the recovery authority; disposable caches do not.
|
|
33
|
+
* `migrate --check` is read-only. `migrate --write` validates canonical source before mutation and publishes a complete recoverable cache transaction.
|
|
34
|
+
* A supported upgrade path covers the latest release of the previous minor line to the current release. Skipping several minor lines may require running the newest migration tool directly, but must not require installing every intermediate package version.
|
|
35
|
+
* Downgrade compatibility is not guaranteed for generated caches. Restore caches by regenerating them with the target version; never hand-edit generated schema versions.
|
|
36
|
+
* Node.js runtime support follows the declared `engines` range. Dropping a supported Node.js major is an incompatible documented API change and follows the deprecation window unless that runtime is no longer receiving security updates.
|
|
37
|
+
|
|
38
|
+
## 1.0 commitment
|
|
39
|
+
|
|
40
|
+
At 1.0, incompatible changes to documented package APIs require a new major package version. The `llmnav/1` and primary-index rules above already apply and do not wait for 1.0. The remaining 1.0 gates are sustained cross-platform evidence, published benchmark methodology, and closure of high-severity parser or transaction ambiguity.
|
package/package.json
CHANGED
package/src/spec.js
CHANGED
|
@@ -10,7 +10,7 @@ rel=workflow>llmnav.rules.validate
|
|
|
10
10
|
stability=contract
|
|
11
11
|
*/
|
|
12
12
|
|
|
13
|
-
export const PACKAGE_VERSION = "0.7.
|
|
13
|
+
export const PACKAGE_VERSION = "0.7.2";
|
|
14
14
|
export const SPEC_VERSION = "1";
|
|
15
15
|
|
|
16
16
|
export const SCOPES = Object.freeze(["file", "module", "symbol"]);
|