Skip to content

fix(ci): build @loopover/contract before packing the MCP and miner packages - #9947

Merged
JSONbored merged 1 commit into
mainfrom
fix/publish-build-contract
Jul 30, 2026
Merged

fix(ci): build @loopover/contract before packing the MCP and miner packages#9947
JSONbored merged 1 commit into
mainfrom
fix/publish-build-contract

Conversation

@JSONbored

Copy link
Copy Markdown
Owner

Closes #9946

Both publish workflows fail on every main commit, and have for as long as the run history goes back — three retries per push, never one success. Neither package has actually been publishing.

Root cause

packages/loopover-contract/dist is gitignored. Both workflows already build @loopover/engine for exactly that reason, with a comment explaining it — but neither builds the contract, and both packages import it:

bin/loopover-mcp.ts(16,8):       TS2307: Cannot find module "@loopover/contract/api-schemas"
bin/loopover-miner-mcp.ts(5,44): TS2307: Cannot find module "@loopover/contract"
lib/github-token-resolution.ts(22,8): TS2307: Cannot find module "@loopover/contract/cli-config"

Verified, not assumed

Deleted the contract dist/ and ran each workflow’s own build command: 9 unresolved imports for MCP, 7 for the miner. Added npm run build --workspace @loopover/contract and both pass. actionlint clean.

Scope is exactly these two — publish-contract already builds itself, and publish-engine / publish-mcp-registry / publish-ui-kit don’t depend on the contract.

Why it stayed invisible

The failure lives in a publish workflow, not validate-*, so PR CI stays green and the gate is unaffected. Main’s rollup showed red, but it read as release noise rather than "this package has not shipped since it started importing the contract".

Worth a separate look: three failed attempts per commit, indefinitely, is a pipeline telling nobody. A publish failing identically on consecutive commits should surface once, loudly, rather than re-failing quietly forever.

…ckages

Both publish workflows have failed on EVERY main commit for as long as the run
history goes back -- three retries per push, never one success -- so neither
package has actually been publishing.

packages/loopover-contract/dist is gitignored. Both workflows already build
@loopover/engine for exactly that reason, with a comment explaining it, but
neither builds the contract -- and both packages import it:

  bin/loopover-mcp.ts(16,8): TS2307: Cannot find module "@loopover/contract/api-schemas"
  bin/loopover-miner-mcp.ts(5,44): TS2307: Cannot find module "@loopover/contract"

Reproduced locally by deleting the contract dist/ and running each workflow's
own build command: 9 unresolved imports for MCP, 7 for the miner. With the new
step both pass.

Scope is exactly these two: publish-contract already builds itself, and
publish-engine / publish-mcp-registry / publish-ui-kit do not depend on the
contract at all.

The failure hides in a publish workflow rather than validate-*, so PR CI stays
green and the gate is unaffected -- which is why "red on main" read as release
noise instead of "this package has not shipped since it started importing the
contract".

Closes #9946
@loopover-orb

loopover-orb Bot commented Jul 30, 2026

Copy link
Copy Markdown
Contributor

Important

🟨🟨🟨🟨🟨🟨🟨🟨🟨🟨🟨🟨

⏳ LoopOver is waiting…

LoopOver has seen this pull request and is waiting on CI checks to finish before reviewing it. This comment will update once the review runs.

🟩 Safe / merged · 🟦 Advisory · 🟨 Held for review · 🟥 Blocked / closed · 🟨 Waiting

@superagent-security

Copy link
Copy Markdown
Contributor

Superagent didn't find any vulnerabilities or security issues in this PR.

@JSONbored JSONbored self-assigned this Jul 30, 2026
@JSONbored
JSONbored merged commit 3689891 into main Jul 30, 2026
5 checks passed
@JSONbored
JSONbored deleted the fix/publish-build-contract branch July 30, 2026 19:40
@codecov

codecov Bot commented Jul 30, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 91.88%. Comparing base (35fceed) to head (78a14cb).
⚠️ Report is 4 commits behind head on main.
✅ All tests successful. No failed tests found.

Additional details and impacted files
@@           Coverage Diff           @@
##             main    #9947   +/-   ##
=======================================
  Coverage   91.88%   91.88%           
=======================================
  Files         928      928           
  Lines      113670   113670           
  Branches    27411    27411           
=======================================
  Hits       104440   104440           
  Misses       7931     7931           
  Partials     1299     1299           
Flag Coverage Δ
backend 95.67% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

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.

The MCP and Miner publish workflows have never succeeded: they don't build @loopover/contract

1 participant