Skip to content

Devostasis 0.1.5

Choose a tag to compare

@drevendev drevendev released this 06 Sep 14:49
· 17 commits to master since this release
b46fd24

A project is its immutable id, not its path (RPT-7). No rule, threshold, window or gauge changed.

Renaming or transferring a repository used to split its history in two: the old directory became an orphan nobody read again, and the new one started at BASELINE as if the project had just been born. The immutable project id was already recorded in every bundle and used by nothing.

  • The history store now locates a project by project_identity.immutable_project_id and treats the locator as the human-readable place to put it. A renamed or transferred repository is relocated once to its new locator instead of starting a second history, and the move is recorded in the project index as a renames entry.
  • Ambiguity fails closed. A locator already held by a different project is refused rather than merged, and the conflict is detected before any history is read, so latest() can never compare against the wrong project. A repository whose old name is immediately reused by a new repository therefore yields two separate histories, because the ids differ.
  • An adapter that cannot prove an immutable id keeps the previous behaviour: the locator is the identity and a rename starts a BASELINE. Without proof that two names are the same project, losing continuity is more honest than guessing.
  • Bundles are unchanged, including the project_key each records: a bundle keeps the locator it was observed under, and moving the directory does not rewrite it. Every relocated bundle still verifies.

Twelve conformance tests for RPT-7 cover rename, transfer, an old name reused by a new repository, a locator held by another project, a conflict reported by latest(), a missing immutable id, an unchanged locator, the fleet surfaces after a rename, and verification of relocated bundles.

Also in this release: calibration finding 9, found by observing this repository. Direction counts active change requests linked to an open target, so closing a delivered target un-links the pull requests that delivered it while they are still inside the 28-day window. Never closing a target would keep the band higher than finishing the work. The finding is measured rather than reasoned and is recorded for the research process with three candidate readings.

Usage: uses: drevendev/devostasis/.github/workflows/observe-self.yml@v0.1.5 (see docs/deployment.md).

Generated with Claude Code.