Skip to content

Restore exact-pin fresh-clone initialization - #194

Merged
bigboateng merged 1 commit into
mainfrom
fix/fresh-clone-runtime-initialization
Aug 11, 2026
Merged

Restore exact-pin fresh-clone initialization#194
bigboateng merged 1 commit into
mainfrom
fix/fresh-clone-runtime-initialization

Conversation

@bigboateng

Copy link
Copy Markdown
Contributor

Problem

A fresh clone can contain an exact committed runtime pin but no machine-local controller state. Boatstack classified that state as conflicting, so installation.initialize could not run.

Root cause

Runtime observation did not distinguish an absent state file from an existing state with an empty runtime identity. Any present pin therefore forced the conflicting state before bootstrap.

Invariant restored

A committed pin is bootstrap evidence only when the controller state is absent and the pin matches the executing candidate plus its immutable installed artifact. Missing, corrupt, malformed, or mismatched evidence remains fail-closed.

Changes

  • distinguish absent controller state from an existing durable state
  • admit exact committed pins for fresh-clone initialization
  • preserve stale and conflicting classifications for invalid evidence
  • tell installers to commit .boatstack/runtime.json
  • isolate installer contract tests from the global runtime store

Verification

  • fresh clone initializes and reports healthy in one invocation
  • mismatched pin is refused without controller-state mutation
  • missing immutable runtime remains stale
  • complete sharded Go suite: 154 tests
  • Python repository contracts: 27 tests
  • Go race tests, vet, build, release-note validation, and diff checks

Release note: release-notes/2026-08-11-fresh-clone-runtime-bootstrap.md

No legacy-state migration is included.

@bigboateng
bigboateng merged commit e4fa27a into main Aug 11, 2026
15 checks passed
@bigboateng
bigboateng deleted the fix/fresh-clone-runtime-initialization branch August 11, 2026 21:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant