Skip to content

feat: verify versioned artifacts in consumer pin transactions - #103

Merged
rldyourmnd merged 1 commit into
mainfrom
feat/versioned-consumer-pins-20260907
Sep 7, 2026
Merged

feat: verify versioned artifacts in consumer pin transactions#103
rldyourmnd merged 1 commit into
mainfrom
feat/versioned-consumer-pins-20260907

Conversation

@rldyourmnd

Copy link
Copy Markdown
Contributor

Modules using pin_policy: version-tag were always rejected by consumer pin planning, even after publication. module update-pin --plan --version and module update-consumers --plan --version now select a published SemVer artifact without changing the module's pin policy. Planning requires a clean checkout at the fetched tag, proves the origin tag object and peeled commit, runs required module lanes at that commit, and binds the resulting identity and evidence to each consumer's independent plan.

Required GitHub publication uses read credentials to prove the exact repository/tag, a published non-draft release, and a complete nonempty uploaded asset inventory with SHA-256 digests. Apply re-observes publication and lanes before staging the one gitlink. The journaled handler and explicit verify re-read artifact and manifest identities, detecting replaced tag objects even at the same commit, changed assets and missing publication. GitHub's target_commitish can retain a branch name; read normalization now preserves that metadata while tag resolution establishes the commit. Publication mutations retain their exact-commit contract.

Default-branch behavior and consumer-owned atomic transaction boundaries remain enforced. Version selection cannot override a stored plan. Package/registry consumers remain unsupported. The lifecycle contract and consumer skill document the invocation, read runtime, bounded release inventory and verification limits. This transaction proves observed identity; it does not configure provider tag protection or execute downloaded release assets.

Validation: scripts/validate_go_core.sh --quick (all Go tests, vet, module/lock/schema checks, build and native contract/projection checks); 47 Python tests with the hashed test requirements verified; focused race tests for pin lifecycles, consumer plans, Git tag reads and release adapters; native skill validation and builder skill shape check. Tests cover lightweight/annotated tags, versions older than current main, exact staged gitlinks, stale plans, unrelated checkout changes, failed compatibility, missing/draft releases, missing/digestless/paginated assets and asset replacement before apply and after application. Skill UI implicit invocation remains disabled; these checks do not claim a separate model routing evaluation.

Closes #94.

Signed-off-by: rldyourmnd <danil@nddev.it.com>
@rldyourmnd
rldyourmnd merged commit bf17efb into main Sep 7, 2026
3 of 5 checks passed
@rldyourmnd
rldyourmnd deleted the feat/versioned-consumer-pins-20260907 branch September 7, 2026 13:21
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.

Support verified version-tag artifacts in consumer pin transactions

1 participant