Skip to content

Releases

Version 0.1.1

Fixed

  • Retitling a pull request re-runs the release checks. The title check told the author to retitle, but the workflow listened only for the default pull-request types, so a title change fired nothing and the check stayed red whatever the author did. The trigger now names edited.

Security

  • The sidecar’s scheduled-agent wrapper restores .git/config and .git/hooks/ on every exit. The copy here predated the EXIT trap, so an agent that poisoned core.hooksPath and then failed, or a cancelled job, left it for the workflow’s later steps to read.
  • The registrar gate reads a confirmation whole, not its by: line. Re-dating an existing human: event, moving its revision or writing it in flow style added no by: human: line and so passed the old gate unseen. The gate also refuses a human: id it cannot look up, resolves a commit-shaped revision against the tree, and now runs under a top-level permissions: {} with no checkout credential on disk.

Added

  • The bundle gets the conventions gate it never had, knowledge-conventions.sh and its Python half, checking the ten rules lokf validate cannot see. The sidecar also gains knowledge-preflight.sh, knowledge-provenance.sh and .lokf/.gitattributes, keeping the bundle on LF so a Windows checkout gives CI’s verdict.

  • A pull request that would release is held to its release notes and its title. The plan job refuses an empty ## [Unreleased], which semantic-release itself skips on a pull-request event, and refuses a title with no releasing type, since a squash merge takes its commit subject from the title.

  • Semantic release. The version is computed from Conventional Commits on main; this file’s ## [Unreleased] section is promoted into a dated heading and used as the release notes, pyproject.toml and uv.lock are bumped to match, and a GitHub Release is published from it - behind the release Environment, so a person approves each one.

  • SECURITY.md: the reporting route, and what the unauthenticated write endpoints do and do not promise.