Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
23 changes: 17 additions & 6 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -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/[email protected]` 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.
Expand All @@ -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
Expand Down
10 changes: 5 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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
Expand Down
Loading