chore(release): 0.8.1

A patch release carrying round 16's ranking rule and nothing else. No
behaviour changes in `src/`: the version string is the only line touched
there, and it is touched because it is the second half of the version --
`tests/test_packaging.py` holds `pyproject.toml`'s declaration and
`__init__.__version__` equal, and a tag whose package reports the previous
number lies to every consumer that installs it.

- `pyproject.toml` and `src/llm_ingestion_okf/__init__.py`: 0.8.0 -> 0.8.1.
- `CHANGELOG.md`: round 16's own entry closes as `[0.8.1]`, with a new empty
  `[Unreleased]` above it and no comparison link, because the file has
  published none since `[0.6.0]`. The entry gains one bullet it did not
  carry: the rule's MEASURED DOWNSIDE, reproduced here on a five-document
  folder -- a constructed known-negative question demotes the answering
  section from delivered rank 1 to rank 2 because a neighbouring concept
  titled with a single common process word has its WHOLE title accounted
  for. Written as a known limitation of short generic titles, not as a fix.
- The five install lines (`README.md` 4, `llms.txt` 1) move to `@v0.8.1`.
  Measured after: `okf.git@v0.8.0` 0 hits, `okf.git@v0.8.1` 5 hits as the
  known-positive control, and the two remaining bare `v0.8.0` occurrences
  are the tag-history row and the test-count history -- both are statements
  about the past and both stay.
- The tag-history list gains `v0.8.1` as the current tag and demotes the
  `v0.8.0` row to what it was; `v0.7.0` is untouched, and `docs/` is not
  rewritten at all.
- The test-count history sentence named the `v0.8.0` release as the last
  one and would have become false on this tag: it now records 1582 through
  `v0.8.1` as well. The published figures 1583 collected / 1582 passed /
  1 skipped were re-measured here and stand.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
Kjell Tore Guttormsen 2026-09-10 23:03:28 +02:00
commit 3daf983de1
5 changed files with 31 additions and 13 deletions

View file

@ -7,6 +7,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
## [Unreleased] ## [Unreleased]
## [0.8.1] — 2026-09-10
### Added ### Added
- **`--title-covered` (ON by default, opt out with `--no-title-covered`): a - **`--title-covered` (ON by default, opt out with `--no-title-covered`): a
@ -60,6 +62,15 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
that one bundle, so "no regression" there means it never fires -- not that that one bundle, so "no regression" there means it never fires -- not that
it fires harmlessly. Report: it fires harmlessly. Report:
`docs/2026-09-10-k3-runde16-hele-tittelen-tar-ruten.md`. `docs/2026-09-10-k3-runde16-hele-tittelen-tar-ruten.md`.
- **A MEASURED DOWNSIDE, written as a known limitation and not as a fixed
defect: a SHORT, GENERIC title is covered in full by more questions than a
long one is.** On a five-document folder (26 concepts) a constructed
known-negative question demoted the answering section from delivered rank 1
to rank 2: a neighbouring concept titled with a single common process word
has its WHOLE title accounted for by that question, while the answering
section's longer title does not. The other seven delivered places did not
move. The repair is a later round's; nothing here narrows the rule, and the
opt-out is `--no-title-covered`.
- `build_payload`'s signature defaults are now held equal to the consume CLI's - `build_payload`'s signature defaults are now held equal to the consume CLI's
argparse defaults by a test, for every same-named parameter. This is O6's argparse defaults by a test, for every same-named parameter. This is O6's
defect in the other command: `cli.build` defaulted two flags `False` in the defect in the other command: `cli.build` defaulted two flags `False` in the

View file

@ -9,7 +9,7 @@ call anywhere in the run path.
Python 3.10+ and [uv](https://docs.astral.sh/uv/). One line: Python 3.10+ and [uv](https://docs.astral.sh/uv/). One line:
```sh ```sh
uv tool install "llm-ingestion-okf[extract] @ git+https://git.fromaitochitta.com/open/llm-ingestion-okf.git@v0.8.0" uv tool install "llm-ingestion-okf[extract] @ git+https://git.fromaitochitta.com/open/llm-ingestion-okf.git@v0.8.1"
``` ```
## Use it ## Use it
@ -59,11 +59,11 @@ Neither this package nor the guard it depends on is on a package index yet, so
both install by direct reference. With uv, one command resolves both: both install by direct reference. With uv, one command resolves both:
```sh ```sh
uv pip install "llm-ingestion-okf @ git+https://git.fromaitochitta.com/open/llm-ingestion-okf.git@v0.8.0" uv pip install "llm-ingestion-okf @ git+https://git.fromaitochitta.com/open/llm-ingestion-okf.git@v0.8.1"
``` ```
uv resolves the guard on its own, because it reads the `[tool.uv.sources]` uv resolves the guard on its own, because it reads the `[tool.uv.sources]`
entry in the `pyproject.toml` **of the tag it is installing**, and `v0.8.0` entry in the `pyproject.toml` **of the tag it is installing**, and `v0.8.1`
points that entry at `llm-ingestion-guard` `v1.3.0`. Use `uv tool install` points that entry at `llm-ingestion-guard` `v1.3.0`. Use `uv tool install`
instead of `uv pip install` when you want the `okf` command on `PATH` without an instead of `uv pip install` when you want the `okf` command on `PATH` without an
active virtualenv — that is the form the first screen shows. active virtualenv — that is the form the first screen shows.
@ -74,10 +74,10 @@ With plain pip, the transitive git dependency does not resolve on its own —
```sh ```sh
pip install "llm-ingestion-guard @ git+https://git.fromaitochitta.com/open/llm-ingestion-pipeline-security.git@v1.3.0" pip install "llm-ingestion-guard @ git+https://git.fromaitochitta.com/open/llm-ingestion-pipeline-security.git@v1.3.0"
pip install "llm-ingestion-okf @ git+https://git.fromaitochitta.com/open/llm-ingestion-okf.git@v0.8.0" pip install "llm-ingestion-okf @ git+https://git.fromaitochitta.com/open/llm-ingestion-okf.git@v0.8.1"
``` ```
The guard tag is paired to the okf tag, not to this branch. `v0.8.0` declares The guard tag is paired to the okf tag, not to this branch. `v0.8.1` declares
`llm-ingestion-guard>=1.2,<2.0`, which `v1.3.0` satisfies; the pairing above is `llm-ingestion-guard>=1.2,<2.0`, which `v1.3.0` satisfies; the pairing above is
read off that tag's own `[tool.uv.sources]`, not off this branch. Reading a pin read off that tag's own `[tool.uv.sources]`, not off this branch. Reading a pin
off `main` and installing it against an older okf tag is the one combination off `main` and installing it against an older okf tag is the one combination
@ -88,8 +88,14 @@ that fails.
These are not install lines. They record what each earlier tag was, so a reader These are not install lines. They record what each earlier tag was, so a reader
who meets one in an older document knows what they are looking at. who meets one in an older document knows what they are looking at.
- `v0.8.0` — the current tag: `.xml` is a core file type, read as NISO-STS - `v0.8.1` — the current tag: a question that accounts for a concept's WHOLE
through the stdlib parser, and a section the source DECLARES takes the title reads that concept first (`--title-covered`, on by default, opt out
with `--no-title-covered`). A ranking fix, no new functionality: on one
publisher's 2 761-concept bundle the answering section was delivered at
rank 1 on 3 of 6 scored questions before it and 6 of 6 after, and no other
measured bundle's payload changed one byte.
- `v0.8.0``.xml` is a core file type, read as NISO-STS through the stdlib
parser, and a section the source DECLARES takes the
declared-structure route — one publisher's process code segments at 2 761 of declared-structure route — one publisher's process code segments at 2 761 of
2 761 of its own declared sections at the shipped defaults. No other file 2 761 of its own declared sections at the shipped defaults. No other file
type changes one byte, measured on the bytes. type changes one byte, measured on the bytes.
@ -494,7 +500,7 @@ not need this repository — the first line installs the command, the second
builds the bundle and writes a skill beside it, the third asks. builds the bundle and writes a skill beside it, the third asks.
```sh ```sh
uv tool install "llm-ingestion-okf[extract] @ git+https://git.fromaitochitta.com/open/llm-ingestion-okf.git@v0.8.0" uv tool install "llm-ingestion-okf[extract] @ git+https://git.fromaitochitta.com/open/llm-ingestion-okf.git@v0.8.1"
okf project ~/my-documents okf project ~/my-documents
claude claude
``` ```
@ -810,8 +816,9 @@ extra installed. Both numbers are given because they are two measurements: the
figure published before this round was the PASSED count, and `pytest figure published before this round was the PASSED count, and `pytest
--collect-only -q` reported one more. --collect-only -q` reported one more.
(The figure stood at 596 until 2026-09-09 — measured 2026-08-21 and never (The figure stood at 596 until 2026-09-09 — measured 2026-08-21 and never
updated as the suite grew — at 1515 until the `v0.8.0` release and at 1575 updated as the suite grew — at 1515 until the `v0.8.0` release, at 1575
through it: a count is a measurement with a date on it.) through it, and at 1582 through the `v0.8.1` release: a count is a
measurement with a date on it.)
Without the extra the same suite skips the tests covering the parser path; Without the extra the same suite skips the tests covering the parser path;
that split was last counted on 2026-08-21 as 589 passed and 7 skipped and has that split was last counted on 2026-08-21 as 589 passed and 7 skipped and has
**not** been re-measured since. The tests holding the fail-fast rejection for **not** been re-measured since. The tests holding the fail-fast rejection for

View file

@ -6,7 +6,7 @@ Requires Python 3.10+ and [uv](https://docs.astral.sh/uv/). Neither this package
nor the guard it depends on is on a package index yet; one command resolves both: nor the guard it depends on is on a package index yet; one command resolves both:
```sh ```sh
uv tool install "llm-ingestion-okf[extract] @ git+https://git.fromaitochitta.com/open/llm-ingestion-okf.git@v0.8.0" uv tool install "llm-ingestion-okf[extract] @ git+https://git.fromaitochitta.com/open/llm-ingestion-okf.git@v0.8.1"
``` ```
Then, in the folder you want to work from: Then, in the folder you want to work from:

View file

@ -4,7 +4,7 @@ build-backend = "hatchling.build"
[project] [project]
name = "llm-ingestion-okf" name = "llm-ingestion-okf"
version = "0.8.0" version = "0.8.1"
description = "Shared OKF (Open Knowledge Format) ingestion library: spec-based connectors, bundle inbox, and external-bundle import, with security delegated to llm-ingestion-guard." description = "Shared OKF (Open Knowledge Format) ingestion library: spec-based connectors, bundle inbox, and external-bundle import, with security delegated to llm-ingestion-guard."
readme = "README.md" readme = "README.md"
license = "MIT" license = "MIT"

View file

@ -76,7 +76,7 @@ from .manifest import (
) )
from .materialize import IngestResult, materialize_bundle from .materialize import IngestResult, materialize_bundle
__version__ = "0.8.0" __version__ = "0.8.1"
__all__ = [ __all__ = [
"BlockedFile", "BlockedFile",