build(deps): pin llm-ingestion-guard v1.3.0 so the gate reads our own goldens
The guard could not read back what this library WRITES. At 1.2.0,
`okf.parse_frontmatter` refused the OKF v0.2 golden outright --
`OKFFrontmatterError: value begins with a disallowed YAML indicator '['`
against `sources: [{ id: golden-v0-2-sales, resource: fixture }]`. Flow is
the only form this library can emit, because its own line-oriented parser
cannot round-trip the block form at all, so a gate that refuses flow
refuses everything Door A produces under `OKF_V0_2`.
The control was run BEFORE the bump, which is the only moment it exists:
the probe raised on 1.2.0, so the new test discriminates rather than
merely passes. `[project.dependencies]` already said `>=1.2,<2.0` and is
unchanged; only `[tool.uv.sources]` and `uv.lock` move.
TWO gate rows moved, not the one the work was scoped around, which is why
the whole documented probe was re-run instead of just the `sources` case:
the BLOCK form of `sources` now passes too, retiring G30. That changes
nothing about what we emit -- our own parser is still the binding
constraint on writing flow -- and `docs/okf-nokkelinventar.md` now carries
a `guard 1.3.0` column beside the 1.2.0 measurement rather than
overwriting it. A third row kept its verdict but changed its reason, so
the quoted message was corrected too.
The Door C boundary is unmoved, verified with a known-positive:
`resource` is allowlisted only inside a `sources` entry, so section
10.2's `executor.resource` and `attester.resource` are still rejected
("not on the OKF mapping allowlist under 'executor'") while top-level
`resource` passes.
`uv.lock` also gains `pypandoc-binary==1.17`. That is a stale lockfile
being corrected, not a new dependency: it was already declared in the
`[extract]` extra, and `uv lock --check` reports the lockfile out of date
on the untouched tree. Core keeps exactly one runtime dependency.
Not addressed, and recorded rather than built: the guard reports that
`sources[].resource` is scanned as text but never URL-validated, because
SPEC 5.1 permits bundle-relative paths and scope descriptions. No
consumer has asked for a gate there.
Guard 1.3.0 installed from 44e2b31, verified anonymously over https
against the remote tag. 1054 -> 1055 tests. `mypy --strict` clean, `ruff`
clean.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
parent
95eb271f57
commit
2d9fb0f934
5 changed files with 92 additions and 24 deletions
20
CHANGELOG.md
20
CHANGELOG.md
|
|
@ -45,6 +45,26 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|||
|
||||
### Changed
|
||||
|
||||
- **The pinned `llm-ingestion-guard` moves to `v1.3.0`** (`[tool.uv.sources]`
|
||||
and `uv.lock`; the `>=1.2,<2.0` range in `[project.dependencies]` already
|
||||
covered it and is unchanged). What this fixes is that the guard could not
|
||||
read back what this library WRITES: at `1.2.0` the flow-form `sources` in the
|
||||
OKF v0.2 golden was refused outright, and flow is the only form this library
|
||||
is able to emit, because its own line-oriented parser cannot round-trip the
|
||||
block form. Measured before the bump so the test discriminates rather than
|
||||
merely passes, and pinned by
|
||||
`tests/test_guard_adapter.py::test_the_guard_parses_the_flow_form_sources_our_goldens_emit`.
|
||||
Two rows of the gate table in `docs/okf-nokkelinventar.md` moved, not one:
|
||||
the BLOCK form of `sources` now passes too, which retires G30 -- though it
|
||||
changes nothing about what we emit, since our own parser is still the binding
|
||||
constraint. `resource` is allowlisted only inside a `sources` entry, so
|
||||
section 10.2's `executor`/`attester` resource stays rejected through every
|
||||
carrier and the Door C boundary is unmoved. No public API of this library
|
||||
changes; a consumer's cost is a re-run.
|
||||
- **`uv.lock` also picks up `pypandoc-binary==1.17`**, which is a stale lockfile
|
||||
being corrected rather than a new dependency: the package was already declared
|
||||
in the `[extract]` extra, and `uv lock --check` reports the lockfile as out of
|
||||
date on the untouched tree. Core still has exactly one runtime dependency.
|
||||
- **`tools/okf_propose_segments.py` writes no artifact when it has nothing to
|
||||
propose**, exiting `1` (distinct from `2`, "could not do the job") instead of
|
||||
`0` with an empty plan. An empty plan cannot be replayed -- `process_inbox`
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue