Skip to content

fix: MCP repository field + idempotent publish - #5

Merged
ragnorc merged 1 commit into
mainfrom
fix/mcp-repository-and-idempotent-publish
May 14, 2026
Merged

fix: MCP repository field + idempotent publish#5
ragnorc merged 1 commit into
mainfrom
fix/mcp-repository-and-idempotent-publish

Conversation

@ragnorc

@ragnorc ragnorc commented May 14, 2026

Copy link
Copy Markdown
Contributor

Summary

The 0.4.0 release published the SDK but failed on MCP:

```
422 Unprocessable Entity — Error verifying sigstore provenance bundle:
Failed to validate repository information: package.json: "repository.url" is "",
expected to match "https://github.com/ModernRelay/omnigraph-ts\" from provenance
```

npm provenance verification compares the attestation's source repo against the manifest's `repository.url`. The MCP `package.json` had no `repository` field; the SDK did. Adds the same shape the SDK uses (with `directory: packages/mcp`), plus `homepage` and `bugs` for parity.

Also: a workflow re-run as-is would now fail at the SDK step with `EPUBLISHCONFLICT` (SDK 0.4.0 is already on npm). Both publish steps now check `npm view pkg@ver` and skip when the version already exists. Lets the same v0.4.0 tag re-trigger and complete only the MCP publish.

Recovery flow after merge

  1. Delete the existing remote tag: `git push origin --delete v0.4.0`
  2. Re-tag the new `main` HEAD: `git tag -a v0.4.0 -m "Release 0.4.0" origin/main && git push origin v0.4.0`
  3. Approve the `release` environment when the workflow pauses
  4. Workflow will: skip SDK publish (already on npm), publish MCP fresh with provenance

The SDK source did not change between the two builds, so the provenance attestation for SDK 0.4.0 (already on sigstore) is still valid for that tarball.

Test plan

  • `npm view @modernrelay/omnigraph version` → `0.4.0` (already published)
  • `npm view @modernrelay/omnigraph-mcp version` → 404 (not yet)
  • Local dry-run of MCP publish with the new manifest succeeds (verified locally)

🤖 Generated with Claude Code


Note

Medium Risk
Touches the release publishing workflow and npm package metadata; mistakes could block releases or publish unintended tags, but changes are small and well-scoped.

Overview
Fixes npm provenance validation for @modernrelay/omnigraph-mcp by adding repository (with directory), plus homepage and bugs, so the published manifest matches the sigstore attestation source repo.

Updates the GitHub Actions release workflow to make both pnpm publish steps idempotent by checking npm view pkg@ver and skipping publishes when that exact version already exists, enabling safe re-runs after partial failures.

Reviewed by Cursor Bugbot for commit 5b44e1f. Bugbot is set up for automated code reviews on this repo. Configure here.


Summary by cubic

Fix MCP provenance failure by adding repository metadata to packages/mcp/package.json. Make publish steps idempotent by skipping if pkg@version exists, so re-running the v0.4.0 tag only publishes @modernrelay/omnigraph-mcp.

  • Bug Fixes

    • Add "repository" (with directory: packages/mcp), plus "homepage" and "bugs" to pass npm provenance checks.
    • In release workflow, check npm view pkg@ver; skip publish for @modernrelay/omnigraph and @modernrelay/omnigraph-mcp if version already exists to avoid EPUBLISHCONFLICT.
  • Migration

    • Delete tag: git push origin --delete v0.4.0
    • Re-tag main and push: git tag -a v0.4.0 -m "Release 0.4.0" origin/main && git push origin v0.4.0
    • Approve the release environment; SDK skips, MCP publishes with provenance.

Written for commit 5b44e1f. Summary will update on new commits.

MCP publish failed with provenance 422 because the package manifest
had no `repository` field; npm verifies the provenance attestation's
repo URL against `package.json.repository.url` and rejects when they
do not match. Add the same shape the SDK uses, with `directory:
packages/mcp`, plus `homepage` and `bugs` for parity.

Also make both publish steps idempotent. After this incident the SDK
published successfully but the MCP step failed; a workflow re-run
would now fail at the SDK step with EPUBLISHCONFLICT before reaching
MCP. Each step now `npm view`s its own `pkg@ver`, skipping when the
version is already on the registry. Lets the existing v0.4.0 tag
re-trigger and complete the MCP publish without disturbing the SDK.

@devin-ai-integration devin-ai-integration Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Devin Review found 1 potential issue.

View 2 additional findings in Devin Review.

Open in Devin Review

Comment thread packages/mcp/package.json
"directory": "packages/mcp"
},
"homepage": "https://github.com/ModernRelay/omnigraph-ts",
"bugs": "https://github.com/ModernRelay/omnigraph/issues",

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Bugs URL points to wrong repository (omnigraph instead of omnigraph-ts)

The newly added bugs field at packages/mcp/package.json:12 points to https://github.com/ModernRelay/omnigraph/issues, but the repository URL (line 8) and homepage (line 11) both correctly reference omnigraph-ts. This will direct users reporting issues to the wrong GitHub repository (or a 404). The same typo exists pre-existing in packages/sdk/package.json:12, and it was copy-pasted into this PR.

Suggested change
"bugs": "https://github.com/ModernRelay/omnigraph/issues",
"bugs": "https://github.com/ModernRelay/omnigraph-ts/issues",
Open in Devin Review

Was this helpful? React with 👍 or 👎 to provide feedback.

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes and found 1 potential issue.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit 5b44e1f. Configure here.

Comment thread packages/mcp/package.json
"directory": "packages/mcp"
},
"homepage": "https://github.com/ModernRelay/omnigraph-ts",
"bugs": "https://github.com/ModernRelay/omnigraph/issues",

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Bugs URL points to wrong repository name

Low Severity

The bugs URL references omnigraph while repository.url and homepage both reference omnigraph-ts. This means the bugs link will point to https://github.com/ModernRelay/omnigraph/issues instead of https://github.com/ModernRelay/omnigraph-ts/issues, likely sending users to a nonexistent or unrelated repo's issue tracker. The same inconsistency exists in the SDK's package.json and appears to have been copied for parity.

Fix in Cursor Fix in Web

Reviewed by Cursor Bugbot for commit 5b44e1f. Configure here.

@cubic-dev-ai cubic-dev-ai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No issues found across 2 files

@ragnorc
ragnorc merged commit ab5753b into main May 14, 2026
5 checks passed
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.

1 participant