Skip to content

All versions since 0.58.0

0.58.0

As it stood at this release: the repository · the docs · the knowledge bundle · the release

Added

  • Three conventions the gate checks, rules 15 to 17. Every concept names where it came from, as resource or a sources entry. A footnote joins a claim to a sources entry by its id, one id names one resource across the bundle, and each Added and Deprecation bullet a run logs names a concept the bundle holds.
  • The librarian gives a source an id and cites it with a footnote wherever a claim rests on a number, a name or a qualifier; references/golden-rules.md says how.
  • A docent holdout, and an eval that runs it. tests/docent-holdout.yaml pairs the eight captured questions with the concept each answer should rest on, and a test fails when one of those concepts moves. just docent-eval runs ktl-docent on them through claude plugin eval, and docent-eval.yml runs it weekly under a cost ceiling, never on a pull request (the docent eval).
  • The curator’s report lists each retired concept whose successor no person has confirmed. An agent may propose a retirement, but the retired concept governs until a person confirms the successor.
  • A curation policy may carry Automation re-check: <n>. The curator’s report then lists n concepts checked by automation only, picked by the same hash rule as Independent re-check:, for a person to check against their sources.

Changed

  • ktl-sidecar installs the ingest’s example manifest as .lokf/ingest.yaml.sample, for a host to copy to .lokf/ingest.yaml.

Fixed

  • The sidecar’s two example concepts carry a resource, the placeholder endpoint they already name, so the skeleton keeps rule 15 before anyone edits it.
  • A review date is read by its day. knowledge-report.sh compared stale_after with today as whole strings, so a datetime, the type LOKF 0.9.0 gives the field, could read as not yet due on its own day, or as no date at all.
  • The pen, the conventions check and the ingest run behind a package mirror with no upload times. They lift exclude-newer only for a pinned package that uv reports without an upload date, and the ingest pins typing-extensions too.
  • A uv that cannot install a script’s packages no longer reads as findings. The conventions check exits 2, the pen falls back to python3 or exits 2, and the ingest falls back to a .venv without pypdf.

0.59.0

As it stood at this release: the repository · the docs · the knowledge bundle · the release

Added

  • A host’s composite domain schema is released as one file. A schema that imports lokf adapt copies beside lokf.yaml is attached with each copy merged in, keeping every IRI and setting, and a name two files define differently stops the release.
  • The sidecar reads lokf 0.9.0’s exclusions. Coverage and --why count an excluded file apart and never as a source, and conventions rule 18 fails a blank reason or a material listed both ways.

Changed

  • The sidecar requires lokf 0.9.0. A host raises the floor in .lokf/pyproject.toml by hand, refreshes any .lokf/lokf.yaml, runs uv lock and renames each supporting_text key to excerpt. The sync leaves pyproject.toml alone.
  • The skills describe revision, excerpt and lokf adapt as released, and the audit fallback links lokf.yaml at the v0.9.0 commit.
  • The librarian’s domain-schema page says how to import a published vocabulary through its lokf adapt copy, with lmodel/slsa’s release as the tested case.
  • A domain build still indexes a member’s explicit ids outside its namespace. lokf 0.9.0 refuses them unless the registrant allows them. A person’s confirmation admits each member, so the build allows them, and lokf still refuses one in another member’s namespace.
  • The reliance count and the docent follow isReplacedBy, the relation slot lokf 0.9.0 adds.

Fixed

  • A release that changes only the domain schema attaches it. The compare step looked at the bundle’s tree alone, so such a release uploaded nothing. It now compares the schema := line, the schema and the local files the schema imports too.

0.60.0 Latest

Added

  • just lokf-check-refs runs lokf’s --check-excerpts. The gate fails a sources[].excerpt that its local file no longer holds. The recipes need lokf 0.9.0, so a host raises its floor before it takes this release.

Changed

  • lokf-convert, lokf-serve and the website’s lokf export pass the domain schema too, so the graph names its classes and slots under their own IRIs. No recipe changes into the schema’s folder any more.
  • The preflight warns on a lokf floor below 0.9.0, and when [tool.lokf] schema names another file than the justfile’s schema := line.
  • A member’s distribution names its checksum as LOKF core’s Checksum, with algorithm: sha256 and a checksum_value. The domain schema’s sha256:<hex> slot clashed with lokf 0.9.0’s and broke lokf export --schema on a domain host, so the host rewrites its member concepts when it takes this release.
  • The federation docs say the workspace exports every bundle under LOKF core, so the named graphs share one vocabulary. The workspace index says each bundle’s fit is checked against the schema released with it.

Fixed

  • automation.md gives the real reason the librarian’s variables are repository variables. Only the federation’s nudge job reads one in a job’s if:. The librarian reads them in steps, and they stay together so every switch sits in one place.
  • The librarian’s Snyk W012 note names the lokf 0.9.0 wheel, whose schema matches the commit its URL names.
  • The preflight warns when .lokf/lokf.yaml is from another lokf release than the one uv.lock pins. A domain schema imports that copy, and lokf 0.9.0 reads a bare-date stale_after as a datetime, which a 0.8.0 copy rejects.
  • The federation check runs on a pull request that changes .lokf/lokf.yaml or .lokf/justfile. The check validates the domain bundle against the schema the justfile names, which imports that copy of LOKF core.