test: add local unittest suite for plugin invariants - #1
Conversation
Cover Agent Plugins manifests, MCP URLs, skill/tool names, secret scanning, Continuity Capsule v1 fields, and opt-in guardian hooks. Run with python3 -m unittest; do not add GitHub Actions. Co-authored-by: David Batista <mosiahdavid@gmail.com>
|
Bugbot is not enabled for your account, so this pull request was not reviewed. Enable Bugbot in the Cursor dashboard to get automatic reviews on future PRs. |
|
Warning Review limit reached
Next review available in: 119 minutes You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository. How can I continue?After more reviews become available, a review can be triggered using the To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews. How do review limits work?CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability. For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window. Please refer docs for additional details. Review details⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (10)
ℹ️ Recent review info⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (10)
📝 WalkthroughWalkthroughAdded a repository-local unittest suite with shared helpers and a Continuity Capsule schema fixture. The suite validates plugin manifests, layouts, hooks, tool names, commerce routes, MCP URLs, secret patterns, and product boundaries. README documentation describes local test execution. ChangesPlugin invariant validation
Estimated code review effort: 3 (Moderate) | ~20 minutes ✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Adds a small, honest local test suite for the two Agent Plugins in this marketplace (
delx-recovery,delx-commerce). There was notests/directory and no root package manager; HOLplugin-scannerlint is not treated as a functional test.How to run (this VM / any machine)
Stdlib only (
python3 -m unittest). No GitHub Actions — this PR does not add, enable, or depend on.github/workflows. Existingplugin-scanner.ymlis untouched.Proven on the cloud-agent VM
What is actually asserted
plugin.json/mcp.jsonparse, carry Agent Plugins 1.0.0$schema+ required fields, MCP URLs are HTTPSapi.delx.aiwith the recovery vs commercesrc=tags, marketplace sources exist, Claude/Codex vendor manifests share identity, recovery hooks point at real executable scripts.leave_hive_note; recovery skill stays off/api/v1/x402/.continuity-capsule-v1.json, the fenced example validates against the v1 allowlist, hookleave_hive_notepayloads only use schema-legal fields.bash -n; guardian off is a noop; guardian on withoutDELX_HIVE_AGENT_IDexits 0; SessionEnd without session id is silent; no shared fallback agent id.Not covered (out of scope): publishing, directory spam, live MCP round-trips, GitHub Actions minutes.
Note on Agent Plugins JSON Schema
delx-recovery/plugin.jsonincludes ahooksobject that the published Agent Plugins 1.0.0 schema marks asadditionalProperties: false. Tests check the required 1.0.0 fields plus that hook commands exist, rather than rejecting the shipping extension.Summary by CodeRabbit