diff --git a/CHANGELOG.md b/CHANGELOG.md index dc302c6..38ecc31 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,12 +5,23 @@ All notable changes to this repository are recorded here. The format follows [Semantic Versioning](https://semver.org/). Releases are cut by the `release` workflow and archived on Zenodo under the concept DOI [10.5281/zenodo.20676773](https://doi.org/10.5281/zenodo.20676773). -`@lukefwalton/answer-engine@3.0.0-alpha.1` is published on npm, with both -`latest` and `next` pointing at it. Later releases publish from Actions. -npm trusts this repository's `release.yml`. +Releases publish to npm from Actions; npm trusts this repository's +`release.yml`. ## [Unreleased] +## [3.0.0] - 2026-10-08 + +The archive substrate. One retrieval contract under two consumers: a +question-answering product that cites or refuses, and a retrieval-only +endpoint (`GET /api/archive/search`, MCP) whose caller brings its own model. +Every fragment carries a disclosure policy resolved before any query; the only +object a consumer may hand to a model or a caller is a hit whose type cannot +hold more than that policy allows. Since 8 October 2026 this is the retrieval +under Ask the Archive (lukefwalton.com/ask), with an unpublished novel served +as a private entity. `paper.md` describes it. Everything below landed between +2.1.0 and this release; `3.0.0-alpha.1` (5 October 2026) was the first publish. + ### Added - `docs/CONTRACT.md`: the archive contract, the design of record for 3.0.0. @@ -21,9 +32,9 @@ npm trusts this repository's `release.yml`. system-generated, author-authorized semantic projections with a build-time lint; provenance (date, version, creators, identifiers, locators) on every hit; a pluggable retrieval core; and the wire contract `archive-search/1` - for a retrieval-only consumer. Documentation only: nothing in it is - implemented, and the 2.x code and the gold suite's semantics remain the - source of truth until 3.0.0 ships. + for a retrieval-only consumer. It landed as documentation first; the + implementation followed in the steps below, and the gold suite's semantics + gated each one. - This changelog. - Step 1 of 3.0.0 (additive; no 2.x behaviour changes): `src/contract.ts` with the contract types; `assertSemanticProjection` and the `LintedGist` brand in diff --git a/README.md b/README.md index aa5d643..5dc2b19 100644 --- a/README.md +++ b/README.md @@ -42,9 +42,9 @@ teaching commands (`npm install`, `npm run …`) on the bundled example corpus; or, from 3.0.0, import it (`@lukefwalton/answer-engine`) as the substrate under your own consumer: a question-answering product, or a retrieval-only endpoint whose caller brings its own model. The published package is -[`@lukefwalton/answer-engine@3.0.0-alpha.1`](https://www.npmjs.com/package/@lukefwalton/answer-engine). -`npm install @lukefwalton/answer-engine` installs that alpha: the first -publish set both the `latest` and `next` dist-tags to it. It is deliberately not a +[`@lukefwalton/answer-engine`](https://www.npmjs.com/package/@lukefwalton/answer-engine); +`npm install @lukefwalton/answer-engine` installs the latest release +(`CHANGELOG.md` names it). It is deliberately not a framework, hosted app, chatbot UI, or vector-database starter. It is the smallest useful version of the answer contract: what may travel from each piece of an archive, what must stay behind, how citations are grounded, and @@ -450,8 +450,8 @@ and smoke-imports the package, bumps semver via pushes `main` and the new tag atomically, and creates the GitHub release Zenodo archives (pre-releases are marked as such). `CITATION.cff` and `.zenodo.json` both use the concept DOI for citation; Zenodo assigns a -version DOI per release on its own. `v3.0.0-alpha.1` is that release on GitHub, -on Zenodo (the concept DOI resolves to it), and on npm. +version DOI per release on its own. Each release is one object on GitHub, on +Zenodo (the concept DOI resolves to the latest), and on npm. The workflow then publishes to npm with provenance. A pre-release goes under `next`, and a final release goes under `latest`. npm trusts GitHub Actions for