feat(wfctl): verify registry plugin capabilities#817
Conversation
There was a problem hiding this comment.
Pull request overview
Implements the previously stubbed wfctl plugin registry-sync --verify-capabilities path by downloading the current-platform release asset from GitHub, extracting/locating the plugin binary, and reusing the existing runtime manifest verification logic (with relaxed name-matching for registry aliases). This closes the registry-side “runtime freshness” gate described in workflow#762.
Changes:
- Add registry-sync runtime capability verification: select GOOS/GOARCH asset, download via
gh, extract tarball, locate executable, and verify manifest via the existingverify-capabilitiesimplementation. - Refactor
verify-capabilitiesto expose reusable helpers and add an option to skip strict name comparison for registry alias use-cases. - Update docs and add focused unit tests for helper logic (asset selection, binary location, alias name skipping).
Reviewed changes
Copilot reviewed 6 out of 6 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
| docs/PLUGIN_RELEASE_GATES.md | Documents the trust boundary and behavior of the new registry-side runtime verification. |
| docs/plans/2026-06-01-registry-sync-verify-capabilities.md | Adds an implementation plan describing scope, security posture, and validation steps. |
| cmd/wfctl/plugin_verify_capabilities.go | Extracts reusable verification helpers and adds options for alias-friendly comparisons. |
| cmd/wfctl/plugin_verify_capabilities_test.go | Adds a unit test proving registry-mode can skip strict name equality. |
| cmd/wfctl/plugin_registry_sync.go | Implements --verify-capabilities by downloading/extracting the release asset and invoking runtime verification. |
| cmd/wfctl/plugin_registry_sync_test.go | Adds tests for platform asset selection, binary discovery, and asset name parsing. |
⏱ Benchmark Results✅ No significant performance regressions detected. benchstat comparison (baseline → PR)
|
Codecov Report❌ Patch coverage is
📢 Thoughts on this report? Let us know! |
Summary
Closes part of #762 by replacing the
wfctl plugin registry-sync --verify-capabilitiesstub with a real registry-side runtime check.GOOS/GOARCHworkflow-plugin-githubwfctl plugin verify-capabilitiesruntimeGetManifestdiff pathverify-capabilitiesstrictdocs/PLUGIN_RELEASE_GATES.mdOut of scope: workflow-registry bash parity ownership, #760 plugin-repo fanout, and SemVer prerelease support.
Verification
Regression proof: