package.json owns one Slopsentral product version.
Authored plugins, marketplace references, Python metadata, root lockfiles, and provider artifacts share that version.
Dependency pins and schema revisions remain independent.
Propose one root version
Release Please configuration defines one root component with patch-only increments. This is the repository’s release policy. It does not assert semantic compatibility for every change. Generated provider trees are excluded from direct version updates. The version owner rejects missing targets and mixed authored versions. The Release Please workflow uses a repository-scoped GitHub App token for proposals. It deliberately skips GitHub release creation. A separate admission path permits only an App-authored version PR with the expected patch increment and allowed file set. Both validation jobs must pass for that exact PR head. Ordinary code PRs keep their normal merge process. The release guide describes the private App credentials and their scopes. The built-in token is not a silent substitute for those credentials.Qualify bytes before publication
Validate Source projects and examines provider packages, installs the Pi archive, and keeps source-bound artifacts.
The candidate records bind revision, workflow run, producer attempt, version, archive bytes, and installer inventory.
The command bootstrap, Python command, and adjacent lock travel in the setup inventory beside the native Pi installer.
Release Slopsentral selects a successful trusted main validation run with an unpublished shared version.
It admits the original Pi producer and exact provider and setup artifact attempts.
It examines source identity and digests before publication.
Publication consumes the same saved, tested package bytes directly.
A failed main run leaves the unpublished version pending for a later repaired main run.
Publish without replacing history
The publisher creates the source tag without replacement. It uploads all saved archives, receipts, installers, and digests to a draft release. It examines actual downloaded draft assets before it makes the release current. Conflicting tags or assets stop the operation. After publication succeeds, the version-PR lifecycle changes from pending to tagged. The PR must match the published version and belong to the released source history. If only label completion fails, inspect downloads and retry that idempotent completion for the exact source. Do not remove pending labels as a substitute for release evidence.Keep moving provider branches distinct
Publish Harnesses maintainsharness/codex, harness/github-copilot, and harness/amp.
It also updates the Codex and Copilot generated trees on main.
Amp stays absent from main.
Those moving branches remain distinct from immutable GitHub release archives.
Use the release recovery procedure after an interrupted operation.
The version tests and asset tests exercise admission and digest rules.
Local checks do not establish configured credentials, a hosted successful run, or public downloads for a new release.