Skip to content

0.58.0

Choose a tag to compare

@github-actions github-actions released this 24 Sep 12:53
· 438 commits to main since this release

Added

  • A tree store reads its lifecycles from the project's protocols source, which may be a pinned Git source, rather than from the repository directory, and types every kind AEP names: a kind with no ladder of its own is held to the one the registry resolves or the permissive one. A <type>-blocker stays a generic contract entity, and export names every kind it kept that way.
  • aep plan store install-hooks writes a pre-push hook that runs validate for a push touching .engineering/, pinned to the aep version that installed it, for the per-repository cutover to tree stores.
  • aep.project/3 keeps the plan as typed Entity Runtime entities on an eventlog-tree store that version control merges:
    • aep plan store init-tree creates one;
    • each artifact kind is its own entity type with typed fields and its lifecycle's moves, and identities are derived from the artifact's locator, so two branches never mint one id for two artifacts;
    • aep plan artifact resolve joins an artifact both branches changed, keeping one head and printing what the other decided;
    • aep plan artifact render rewrites the projection;
    • aep plan artifact validate on a tree store adds the tree's own rules, whatever --strict says: the files verify, against --against <revision> too (V1–V5), no artifact has forked (S3), every .md is its artifact's render (S5) and no committed file carries a home path (S9).
  • aep plan store export --engineering <dir> --into <dir> --map <file> copies an aep.project/2 store into a new tree store once, for the cutover. Every artifact becomes its kind's typed entity with its history as anchor evidence, counted identities become derived ones, and home paths become workspace:<path> or home-path:sha256:<digest>. The copy is compared artifact by artifact with the source before it is reported; the map of what was rewritten goes to --map, outside the repository. This repository's own store (313 artifacts) exported in 91 s and renders byte-identical, except where a home path was rewritten.

Changed

  • cargo xtask deps also refuses a lockfile whose eventlog-* crates come from more than one source, so AEP's Eventlog pin is the one its Entity Runtime pin was built against.
  • Entity Runtime is pinned at 0.21.0 (21bfc578) and Eventlog at 0.4.0 (70096af8), the releases that add the tree store, forked subjects and recorded refusals this plan store uses.
  • An Eventlog planning write opens its authority once. The plan, the invocation ledger, the post-commit capture and both projection publications now read and write through the one session the command opened with its plan, instead of reopening the file authority for every ledger read and write, every watermark and every complete capture — eighteen opens for one plan artifact move on the 448-artifact ESS store, each re-verifying the whole history. Publishing stages from its own first capture and asks whether its watermark exists of its verifying second one; recovery after a crash checks only the newest watermark, the only one that can match; and the staged documents are written several at once, each still synced before it is renamed. Every read is still a fresh capture, and guarded append, receipts, post-commit verification, the projected bytes and every refusal are unchanged.