chore: release v0.0.30 #118
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| # Schema/lint layer for the shipped agent plugin bundles. Mirrors: | |
| # https://github.com/cursor/plugins/blob/main/.github/workflows/validate-plugins.yml | |
| # | |
| # Rust contract tests already run in ci.yml. Keep this workflow to schema checks | |
| # and the SDK-backed MCP smoke, which needs a built binary plus npx. | |
| name: Plugin Validation | |
| on: | |
| pull_request: | |
| paths: | |
| - "plugin/**" | |
| - "tests/fixtures/cursor-schemas/**" | |
| - "tests/agent_suite/*plugin*" | |
| - "tests/agent_suite/*skill*" | |
| - "scripts/mcp-conformance-smoke.sh" | |
| - "src/serve.rs" | |
| - "src/main.rs" | |
| - "src/lib.rs" | |
| - "src/mcp/**" | |
| - "Cargo.toml" | |
| - "Cargo.lock" | |
| - ".github/workflows/plugin-validation.yml" | |
| permissions: | |
| contents: read | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} | |
| cancel-in-progress: true | |
| jobs: | |
| manifest-schema: | |
| name: Manifest schema | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 5 | |
| steps: | |
| - uses: actions/checkout@v7 | |
| - uses: actions/setup-node@v4 | |
| with: | |
| node-version: 22 | |
| - name: Install ajv-cli | |
| run: npm install --no-save ajv-cli@5.0.0 ajv-formats@2.1.1 | |
| - name: Compile vendored schemas | |
| run: | | |
| npx --no-install ajv compile --spec=draft7 -c ajv-formats \ | |
| -s tests/fixtures/cursor-schemas/plugin.schema.json \ | |
| -s tests/fixtures/cursor-schemas/marketplace.schema.json \ | |
| -s tests/fixtures/cursor-schemas/mcp.schema.json \ | |
| -s tests/fixtures/cursor-schemas/hooks.schema.json | |
| - name: Validate Cursor plugin manifest | |
| run: | | |
| npx --no-install ajv validate --spec=draft7 -c ajv-formats --errors=text \ | |
| -s tests/fixtures/cursor-schemas/plugin.schema.json \ | |
| -d plugin/.cursor-plugin/plugin.json | |
| - name: Check bundle JSON files parse | |
| run: | | |
| set -euo pipefail | |
| find plugin -name '*.json' -print0 | | |
| while IFS= read -r -d '' f; do | |
| python3 -c "import json,sys; json.load(open(sys.argv[1]))" "$f" \ | |
| || { echo "invalid JSON: $f" >&2; exit 1; } | |
| echo "ok: $f" | |
| done | |
| # Uses MCP Inspector's TypeScript SDK client to cover stdio handshake and | |
| # schema compatibility beyond the in-repo Rust MCP tests. | |
| mcp-conformance-smoke: | |
| name: MCP conformance smoke | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 20 | |
| steps: | |
| - uses: actions/checkout@v7 | |
| - uses: actions/setup-node@v4 | |
| with: | |
| node-version: 22 | |
| - uses: dtolnay/rust-toolchain@stable | |
| - uses: Swatinem/rust-cache@v2 | |
| - name: Build tracedecay | |
| run: cargo build --bin tracedecay --locked | |
| - name: Run MCP conformance smoke | |
| run: scripts/mcp-conformance-smoke.sh | |
| env: | |
| TRACEDECAY_BIN: target/debug/tracedecay |