Summary
Implement the publishing pipeline / static scanner that gates plugin releases at the official registry. The new-capability gate is critical: a v1.4 plugin that suddenly requests db.write: core.users:* triggers manual review; reusing existing caps does not.
Scope: this issue covers ONLY the automated scanner + capability-diff job. Full registry UI + manual review queue UI is deferred to a later issue.
Doc §15.6 open question: at scale (10k+ plugins), what automated scanners do we trust to replace human review on common diffs?
Design reference
- docs/02-plugin-system.md §10.3, §15.6
Acceptance criteria
Dependencies
#34 (manifest), #233 (signing), #249 (marketplace schema)
Complexity
L
Summary
Implement the publishing pipeline / static scanner that gates plugin releases at the official registry. The new-capability gate is critical: a v1.4 plugin that suddenly requests
db.write: core.users:*triggers manual review; reusing existing caps does not.Scope: this issue covers ONLY the automated scanner + capability-diff job. Full registry UI + manual review queue UI is deferred to a later issue.
Doc §15.6 open question: at scale (10k+ plugins), what automated scanners do we trust to replace human review on common diffs?
Design reference
Acceptance criteria
web/*.jsto flag obfuscated code){added: [...], removed: [...], scope_changes: [...]}addedis non-empty ORscope_changeswidens scope ORauthorchanged: gate the release inpending_reviewstate until a human approvesreleasedstateplugin_versions.yanked = true)needs-design: scanner thresholds (entropy, blob sizes, banned import list) — propose indocs/proposals/plugin-registry-scanner-policy.mdDependencies
#34 (manifest), #233 (signing), #249 (marketplace schema)
Complexity
L