chore(release): 1.6.0
This commit is contained in:
parent
0ebe8abdbd
commit
d00d1b0658
7 changed files with 21 additions and 14 deletions
|
|
@ -5,7 +5,7 @@ All notable changes to this project will be documented in this file.
|
|||
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
|
||||
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
||||
|
||||
## [Unreleased]
|
||||
## [1.6.0] — 2026-10-31
|
||||
|
||||
### Added — hidden markup at the persist gate (attacks A04, A14, A15)
|
||||
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@ framework-agnostisk kode.
|
|||
Referanse-implementasjon: `claude-code-llm-wiki` Stage B (`tools/wiki_ingest/`).
|
||||
Lexikon-seed: `injection-patterns.mjs` fra `llm-security`-pluginen.
|
||||
|
||||
Repoet er på **v1.5.0** (release-commiten bumper alle levende versjonsflater:
|
||||
Repoet er på **v1.6.0** (release-commiten bumper alle levende versjonsflater:
|
||||
`pyproject.toml`, `__init__.py`, README-badge + status + install-pin,
|
||||
ADOPTION-BRIEF, BRIEF, CHANGELOG-overskrift). NB: v1.4.0-taggen bærer `1.3.0` i
|
||||
dokumentflatene — dens release-commit daterte bare CHANGELOG-en — og tags
|
||||
|
|
@ -74,6 +74,13 @@ produsentene navngir risikoen, aldri nummeret. Det er én tabell (`_owasp.py`).
|
|||
Leksikonet får årstallet når det lastes. En klasse som ingen utgave beskriver, får
|
||||
INGEN nummer (`Case.owasp is None`), for eksempel fail-secure, parserflate og
|
||||
URL- og sti-validering. `tests/test_catalog_numbers.py` holder tellingen på 0.
|
||||
**Skjult markup (1.6.0):** `html-obfuscation:tiny-font` (under 4px) og
|
||||
`html-obfuscation:invisible-colour` (samme farge som bakgrunnen i SAMME
|
||||
`style`-attributt, eller gjennomsiktig) bor i `output.py`, ikke i leksikonet, som er
|
||||
byte-likt med commons. En verdi med ledende `0` overlates commons-raden `zero-font`.
|
||||
Hvit tekst alene er bevisst ikke et signal. `output:html-comment-present` (MEDIUM)
|
||||
teller bare kommentarer utenfor kode. Katalogregisteret har 16 oppføringer med
|
||||
`cited` == `latest` (`tests/test_catalog_register.py`).
|
||||
Start med `docs/BRIEF.md` for design, `README.md` for bruk, `docs/PLAN.md` for
|
||||
byggerekkefølgen.
|
||||
|
||||
|
|
|
|||
12
README.md
12
README.md
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
Write-time defensive layer for Python pipelines that persist LLM output: sanitize, fence, tool-less quarantined transform, capability isolation, scan before persist, fail-secure.
|
||||
|
||||

|
||||

|
||||

|
||||

|
||||

|
||||
|
|
@ -33,7 +33,7 @@ at write time, never assumed from the format. Any pipeline ingesting external da
|
|||
into an agent-read store has this shape; an OKF wiki is its canonical form — which
|
||||
is why the guard ships a first-class OKF adapter (below).
|
||||
|
||||
**Status:** `v1.5.0`. The stdlib-only core — its detector, contract, and
|
||||
**Status:** `v1.6.0`. The stdlib-only core — its detector, contract, and
|
||||
OKF-adapter modules plus the top-level wiring — is built and tested, exercised by
|
||||
an end-to-end showcase and adversarial + false-positive corpora. The exported
|
||||
Python surface is now frozen under semver: nothing exported is removed, renamed or
|
||||
|
|
@ -58,14 +58,14 @@ are real limitations, stated plainly below; read them.
|
|||
Not on PyPI. The guard is distributed from its Forgejo origin — pin a release tag:
|
||||
|
||||
```bash
|
||||
pip install "llm-ingestion-guard @ git+https://git.fromaitochitta.com/open/llm-ingestion-pipeline-security.git@v1.5.0"
|
||||
pip install "llm-ingestion-guard @ git+https://git.fromaitochitta.com/open/llm-ingestion-pipeline-security.git@v1.6.0"
|
||||
```
|
||||
|
||||
Or take a version range from the Forgejo package index, which carries `1.5.0`,
|
||||
`1.4.2`, `1.4.1` and `1.1.0` (`1.2.0`–`1.4.0` were never published there):
|
||||
Or take a version range from the Forgejo package index, which carries `1.6.0`,
|
||||
`1.5.0`, `1.4.2`, `1.4.1` and `1.1.0` (`1.2.0`–`1.4.0` were never published there):
|
||||
|
||||
```bash
|
||||
pip install --index-url https://git.fromaitochitta.com/api/packages/open/pypi/simple/ "llm-ingestion-guard>=1.5.0,<2"
|
||||
pip install --index-url https://git.fromaitochitta.com/api/packages/open/pypi/simple/ "llm-ingestion-guard>=1.6.0,<2"
|
||||
```
|
||||
|
||||
The `open/` mirror is anonymously readable, so CI needs no deploy key, token, or
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
especially one converging on Google's Open Knowledge Format (OKF v0.1) — and needs
|
||||
to decide **when** and **where** to add a write-time ingestion guard.
|
||||
|
||||
**Status of the guard:** `v1.5.0`. Stdlib-only core, framework-agnostic. The
|
||||
**Status of the guard:** `v1.6.0`. Stdlib-only core, framework-agnostic. The
|
||||
exported Python surface is frozen under semver — nothing exported is removed,
|
||||
renamed or given a different meaning without a `2.0.0`. Detection behaviour is
|
||||
*not* frozen: severities, thresholds and lexicon entries are calibration and move
|
||||
|
|
@ -142,9 +142,9 @@ live payload:
|
|||
python -m llm_ingestion_guard.coverage # exit 0 = all as documented
|
||||
```
|
||||
|
||||
As of `v1.5.0`: **136 / 136 defended classes demonstrated (recall 100%)** and **6 /
|
||||
As of `v1.6.0`: **139 / 139 defended classes demonstrated (recall 100%)** and **6 /
|
||||
6 documented gaps still hold** (a *closed* gap fails the test, forcing a doc
|
||||
update). The matrix is the single source of truth for the test suite (**1071
|
||||
update). The matrix is the single source of truth for the test suite (**1142
|
||||
passing**), which also asserts total recall, that every lexicon pattern has a
|
||||
case (so the matrix cannot fall behind the lexicon), the full LLM02:2026 secret-egress
|
||||
set, and the container-layer front-end (CSV formula-injection, zip-slip/bomb,
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@
|
|||
**A reusable, minimal, dependency-light defensive layer for LLM *ingestion*
|
||||
pipelines — the write-time siblings of query-time chatbot guardrails.**
|
||||
|
||||
Status: implemented — v1.5.0, exported surface frozen under semver. This document defines what the repo contains
|
||||
Status: implemented — v1.6.0, exported surface frozen under semver. This document defines what the repo contains
|
||||
and why; the stdlib-only core is built and tested (see `README.md` for usage and
|
||||
`docs/PLAN.md` for the build order).
|
||||
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@ build-backend = "hatchling.build"
|
|||
|
||||
[project]
|
||||
name = "llm-ingestion-guard"
|
||||
version = "1.5.0"
|
||||
version = "1.6.0"
|
||||
description = "Write-time defensive layer for Python pipelines that persist LLM output: sanitize, fence, tool-less quarantined transform, capability isolation, scan before persist, fail-secure."
|
||||
readme = "README.md"
|
||||
requires-python = ">=3.10"
|
||||
|
|
|
|||
|
|
@ -63,7 +63,7 @@ from .grounding import (
|
|||
)
|
||||
from . import okf
|
||||
|
||||
__version__ = "1.5.0"
|
||||
__version__ = "1.6.0"
|
||||
|
||||
|
||||
# --- §6 bookends: the two library-side halves around the transform ---------
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue