docs(changelog): release v0.1.0 + Unreleased OKF adapter (stream 1); test badge 214->275
This commit is contained in:
parent
30aa0a42a1
commit
b80c896fd9
2 changed files with 44 additions and 3 deletions
45
CHANGELOG.md
45
CHANGELOG.md
|
|
@ -5,9 +5,50 @@ 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/),
|
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).
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
||||||
|
|
||||||
## [Unreleased] — v0.1.0 (alpha)
|
## [Unreleased]
|
||||||
|
|
||||||
The stdlib-only core, built test-first (TDD) per `docs/PLAN.md`.
|
### Added — OKF adapter (v0.2, stream 1)
|
||||||
|
|
||||||
|
An OKF (Google Open Knowledge Format v0.1) adapter *on top of* the
|
||||||
|
format-agnostic core (`llm_ingestion_guard.okf`). The core stays `text ->
|
||||||
|
findings`; the adapter knows OKF structure and routes scannable regions into the
|
||||||
|
existing machinery. All TDD (failing test first), +61 tests. Verified against the
|
||||||
|
OKF `SPEC.md` (2026-07-06). See `docs/OKF-INGESTION-BRIEF.md` §8.
|
||||||
|
|
||||||
|
- `parse_frontmatter` — strict, reject-by-default frontmatter loader; refuses
|
||||||
|
anchors, aliases, explicit tags, merge keys, block scalars and flow collections
|
||||||
|
by construction, so YAML anchor/alias DoS and `!!python/object` coercion cannot
|
||||||
|
occur (not a general YAML parser, by design). (T2)
|
||||||
|
- `scan_concept` — whole-concept scan surface: frontmatter values (incl.
|
||||||
|
`description`, read first under progressive disclosure), `resource` and body all
|
||||||
|
go through `scan_output`. (T1)
|
||||||
|
- `validate_concept_path` — path / reserved-name gate: rejects `..` traversal,
|
||||||
|
absolute paths and `index.md` / `log.md` shadowing; returns the concept-ID. (T4)
|
||||||
|
- `validate_resource_url` — `resource` https allowlist: rejects non-https before
|
||||||
|
commit (reject, not defang — the format imposes no scheme constraint itself). (T3)
|
||||||
|
- `stamp_concept` / `format_log_entry` — provenance stamping: origin × channel →
|
||||||
|
trust × disposition per concept, emitted as `log.md` lines. Trust follows the
|
||||||
|
origin, never the insertion channel. (T6)
|
||||||
|
- `import_bundle` — received-bundle iterator (mode b): validates each concept
|
||||||
|
(path, frontmatter, resource, scan, stamp) independently; one bad concept is
|
||||||
|
rejected fail-secure while the rest are still checked; the aggregate disposition
|
||||||
|
is the most severe. (T7)
|
||||||
|
- `link_graph` / `resolve_link` / `extract_link_targets` — in-import cross-link
|
||||||
|
graph: resolves `.md` links (bundle-absolute or relative) to concept-IDs, flags
|
||||||
|
dangling links (the §7.2 dormant-injection signal) and rejects dangerous-scheme
|
||||||
|
or bundle-escaping targets. (T5a)
|
||||||
|
|
||||||
|
### Deferred
|
||||||
|
|
||||||
|
- Cross-run persisted link graph (T5b) — catching a link planted in one run whose
|
||||||
|
poisoned target is written in a *later* run (§7.2) needs durable graph state
|
||||||
|
whose storage/ownership depends on the consuming pipeline. Deferred to the
|
||||||
|
consumer-wiring stream; cross-run dormant links remain a documented residual
|
||||||
|
risk (README honest-limitations).
|
||||||
|
|
||||||
|
## [0.1.0] — 2026-07-06 (alpha)
|
||||||
|
|
||||||
|
The stdlib-only core, built test-first (TDD) per `docs/PLAN.md`. Tagged `v0.1.0`.
|
||||||
|
|
||||||
### Added
|
### Added
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,7 @@
|
||||||

|

|
||||||

|

|
||||||

|

|
||||||

|

|
||||||

|

|
||||||
|
|
||||||
A reusable, minimal, dependency-light defensive layer for **LLM ingestion
|
A reusable, minimal, dependency-light defensive layer for **LLM ingestion
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue