Skip to content

fix(release): scope MCP publish validation to its own package#7064

Merged
JSONbored merged 2 commits into
mainfrom
fix/scope-mcp-publish-validation
Jul 17, 2026
Merged

fix(release): scope MCP publish validation to its own package#7064
JSONbored merged 2 commits into
mainfrom
fix/scope-mcp-publish-validation

Conversation

@JSONbored

@JSONbored JSONbored commented Jul 17, 2026

Copy link
Copy Markdown
Owner

Summary

1. Scope MCP's publish validation to its own package (.github/workflows/publish-mcp.yml)

  • publish-engine.yml/publish-miner.yml/publish-ui-kit.yml already validate only their own package before publishing (a workspace test run + pack/smoke-test). publish-mcp.yml was the outlier: its validate job ran npm run test:release:mcp, which is literally npm run test:ci -- the entire monorepo gate (every workspace, every drift-check, ui:lint/ui:build, migrations, the works).
  • This coupled an MCP release to the health of the entire repo. Confirmed harmful live: an unrelated packages/loopover-miner env-reference doc going stale blocked publish-mcp.yml outright, even though MCP's own package code was completely unaffected. Main's required CI (including release-please's own release PRs) already re-verifies whole-repo health on every merge, so re-running all of it here was redundant with what already gated the merge -- it just meant MCP uniquely re-litigated that whole-repo health at publish time while its 3 siblings didn't.
  • Scoped down to match its siblings: MCP's own syntax check (build:mcp, node --check) plus its own CLI test suite specifically -- npx vitest run mcp-cli-, i.e. test/unit/mcp-cli-*.test.ts. Confirmed via import analysis these are the right ~50 files: they import packages/loopover-mcp/package.json and spawn the built binary via a shared mcp-cli-harness, unlike the sibling test/unit/mcp-*.test.ts files (no -cli-) which import ../../src/mcp/server -- the Worker's separate remote MCP server, a different deployable entirely.
  • Also added the "verify release commit is on main" safety check every other publish workflow already has in both its validate and publish jobs, which publish-mcp.yml was missing entirely.

2. Cut mcp v3.1.1 and miner v3.1.1

  • mcp-v3.1.0 and miner-v3.1.0 are tagged, merged, and GitHub-Released, but never reached npm -- and both tags are now stuck: GitHub's tag-protection ruleset rejects force-moving them to include the fixes above, and workflow_dispatch resolves a run's YAML from the ref it's dispatched against, so re-running those exact tags would still execute the pre-fix workflow definition.
  • Bumping to fresh, never-tagged versions is the documented human-override path (publish-mcp.yml's own header comment: "A bare manual dispatch ... self-tags HEAD from packages/loopover-mcp/package.json's version").
  • mcp v3.1.1 picks up one real fix that landed after v3.1.0's cut (REST + CLI slop-risk and issue-slop routes leak the numeric score MCP deliberately blunts #6990/fix(api): blunt slop-risk / issue-slop REST + CLI to match the MCP tools (#6990) #7052, via npm run changelog:mcp). miner v3.1.1 picks up two (bdb11d9, 77ca20f, hand-verified against git log since neither has an associated PR).
  • package-lock.json synced via the existing scripts/sync-release-lockfile-versions.mjs.

Test plan

  • npm run actionlint -- clean
  • npm run build --workspace @loopover/engine, npm run build:mcp, npm run build:miner -- all pass
  • npx vitest run mcp-cli- -- 50 files, 341 tests, all passing (~25s)
  • npm run test:mcp-pack, npm run test:miner-pack -- both pass
  • npm run changelog:check:mcp -- clean (regenerated via npm run changelog:mcp)
  • npm run miner:env-reference:check, npm run db:migrations:check, npm run typecheck -- all clean

publish-engine.yml/publish-miner.yml/publish-ui-kit.yml already validate
only their own package (a workspace test run + pack/smoke-test);
publish-mcp.yml was the outlier, running the entire npm run test:ci
(every workspace, every drift-check, ui:lint/build, migrations) as its
gate. This coupled an MCP release to the health of the whole monorepo --
confirmed live when an unrelated packages/loopover-miner env-reference
doc going stale blocked MCP's publish outright, despite MCP's own
package code being completely unaffected and despite main's required CI
already covering whole-repo health on every PR merge (including
release-please's own release PRs).

Scoped down to match its siblings: MCP's own syntax check (build:mcp)
plus its own CLI test suite specifically -- npx vitest run mcp-cli-,
i.e. test/unit/mcp-cli-*.test.ts (confirmed via import analysis: these
import packages/loopover-mcp/package.json and spawn the built binary),
not the sibling test/unit/mcp-*.test.ts files that exercise the Worker's
separate remote MCP server (src/mcp/server.ts, a different deployable).

Also added the "verify release commit is on main" safety check every
other publish workflow already has, which publish-mcp.yml was missing
in both its validate and publish jobs.
@superagent-security

Copy link
Copy Markdown
Contributor

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

mcp-v3.1.0 and miner-v3.1.0 are tagged and merged but stuck: GitHub's
tag-protection ruleset rejects moving them to include the release
pipeline fixes (#7054, #7060, #7064), and workflow_dispatch resolves a
run's YAML from the ref it's dispatched against, so re-running those
exact tags would still use the pre-fix workflow definitions. Bumping to
fresh, never-tagged versions is the documented human-override path
(publish-mcp.yml's own on: comment) around this exact situation.

mcp v3.1.1 picks up one real fix that landed after v3.1.0's cut
(#6990/#7052). miner v3.1.1 picks up two (bdb11d9, 77ca20f).
@cloudflare-workers-and-pages

cloudflare-workers-and-pages Bot commented Jul 17, 2026

Copy link
Copy Markdown

Deploying with  Cloudflare Workers  Cloudflare Workers

The latest updates on your project. Learn more about integrating Git with Workers.

Status Name Latest Commit Preview URL Updated (UTC)
✅ Deployment successful!
View logs
loopover-ui 541eab3 Commit Preview URL

Branch Preview URL
Jul 17 2026, 08:31 PM

@JSONbored
JSONbored merged commit 86ee117 into main Jul 17, 2026
5 of 6 checks passed
@JSONbored
JSONbored deleted the fix/scope-mcp-publish-validation branch July 17, 2026 20:29
@loopover-orb loopover-orb Bot added the gittensor:bug Gittensor-scored bug fix — scores a 0.05x multiplier. label Jul 17, 2026
@codecov

codecov Bot commented Jul 17, 2026

Copy link
Copy Markdown

Bundle Report

Changes will increase total bundle size by 1.2kB (0.02%) ⬆️. This is within the configured threshold ✅

Detailed changes
Bundle name Size Change
loopover-ui 7.57MB 1.2kB (0.02%) ⬆️

Affected Assets, Files, and Routes:

view changes for bundle: loopover-ui

Assets Changed:

Asset Name Size Change Total Size Change (%)
assets/add-scalar-classes-Bdf40fno.js (New) 2.17MB 2.17MB 100.0% 🚀
assets/tanstack-vendor-BB0xM_5Z.js (New) 804.04kB 804.04kB 100.0% 🚀
assets/docs.fumadocs-spike-api-reference-CgYlqMWG.js (New) 442.94kB 442.94kB 100.0% 🚀
assets/AgentScalarChatInterface.vue-B4dIAGC3.js (New) 201.71kB 201.71kB 100.0% 🚀
assets/modal-DeFNL96s.js (New) 184.28kB 184.28kB 100.0% 🚀
assets/client-DiPXfC5N.js (New) 146.06kB 146.06kB 100.0% 🚀
assets/maintainer-panel-Cd9qGtA2.js (New) 76.45kB 76.45kB 100.0% 🚀
assets/ui-vendor-XWVpMGdQ.js (New) 57.05kB 57.05kB 100.0% 🚀
assets/routes-B3YpaB2n.js (New) 34.29kB 34.29kB 100.0% 🚀
assets/owner-panel-BxjRRgVc.js (New) 26.89kB 26.89kB 100.0% 🚀
assets/app-Cd9rf0wL.js (New) 25.65kB 25.65kB 100.0% 🚀
assets/app.runs-BITnDoOT.js (New) 23.55kB 23.55kB 100.0% 🚀
assets/miner-panel-CkJRHzvX.js (New) 20.25kB 20.25kB 100.0% 🚀
assets/docs-source-BaUQO17H.js (New) 19.3kB 19.3kB 100.0% 🚀
assets/api._op-B_JSfL3h.js (New) 17.82kB 17.82kB 100.0% 🚀
assets/self-hosting-docs-audit-D_6Dp1QM.js (New) 16.73kB 16.73kB 100.0% 🚀
assets/app.index-D0knBw8S.js (New) 15.62kB 15.62kB 100.0% 🚀
assets/playground-panel-DILtIrmA.js (New) 14.35kB 14.35kB 100.0% 🚀
assets/extension-COimtfdW.js (New) 10.04kB 10.04kB 100.0% 🚀
assets/app.config-generator-CavnC-k6.js (New) 9.86kB 9.86kB 100.0% 🚀
assets/app.audit-4lT6roJW.js (New) 9.54kB 9.54kB 100.0% 🚀
assets/maintainers-BIN3mv8m.js (New) 8.06kB 8.06kB 100.0% 🚀
assets/miners-Crp3yHoF.js (New) 7.89kB 7.89kB 100.0% 🚀
assets/agents-B7Dm9SJT.js (New) 7.76kB 7.76kB 100.0% 🚀
assets/commands-panel-C5T0L315.js (New) 6.63kB 6.63kB 100.0% 🚀
assets/roadmap-CcEgwUFc.js (New) 6.33kB 6.33kB 100.0% 🚀
assets/repos._owner._repo.quality-Dyb08luG.js (New) 6.14kB 6.14kB 100.0% 🚀
assets/digest-panel-E47uGOz4.js (New) 6.14kB 6.14kB 100.0% 🚀
assets/ams-env-reference-DmtD9Le9.js (New) 5.69kB 5.69kB 100.0% 🚀
assets/docs.index-BlAu1tbL.js (New) 5.42kB 5.42kB 100.0% 🚀
assets/api.index-z80nVIiJ.js (New) 4.74kB 4.74kB 100.0% 🚀
assets/api-DXCDZmC-.js (New) 2.69kB 2.69kB 100.0% 🚀
assets/docs-5AQTP9I-.js (New) 2.67kB 2.67kB 100.0% 🚀
assets/app.workbench-AaI04Z5V.js (New) 1.58kB 1.58kB 100.0% 🚀
assets/tooltip-C-Td0OH2.js (New) 1.45kB 1.45kB 100.0% 🚀
assets/session-KNU4dmAH.js (New) 1.44kB 1.44kB 100.0% 🚀
assets/tabs-DAFpI8SI.js (New) 1.39kB 1.39kB 100.0% 🚀
assets/app.repos-C7MDhRn2.js (New) 1.07kB 1.07kB 100.0% 🚀
assets/input-DjrPQgeU.js (New) 796 bytes 796 bytes 100.0% 🚀
assets/file-cog-CdjHZ9Lq.js (New) 758 bytes 758 bytes 100.0% 🚀
assets/docs.ai-summaries-BcaCyCx6.js (New) 569 bytes 569 bytes 100.0% 🚀
assets/docs.branch-analysis-DeRrCJ_y.js (New) 562 bytes 562 bytes 100.0% 🚀
assets/docs.scoreability-BGNPCt3w.js (New) 562 bytes 562 bytes 100.0% 🚀
assets/docs.upstream-drift-Cp2BMU19.js (New) 562 bytes 562 bytes 100.0% 🚀
assets/docs.federated-fleet-intelligence-DbI9MZfk.js (New) 561 bytes 561 bytes 100.0% 🚀
assets/docs.maintainer-install-trust-B612LwAm.js (New) 561 bytes 561 bytes 100.0% 🚀
assets/docs.self-hosting-ai-providers-DGn5Ipr1.js (New) 561 bytes 561 bytes 100.0% 🚀
assets/docs.self-hosting-backup-scaling-Bst9MUsJ.js (New) 561 bytes 561 bytes 100.0% 🚀
assets/docs.self-hosting-configuration-jcNaxicQ.js (New) 561 bytes 561 bytes 100.0% 🚀
assets/docs.self-hosting-docs-audit-CtKC8-1_.js (New) 561 bytes 561 bytes 100.0% 🚀
assets/docs.self-hosting-github-app-Cef3SWTB.js (New) 561 bytes 561 bytes 100.0% 🚀
assets/docs.self-hosting-quickstart-B6colDaT.js (New) 561 bytes 561 bytes 100.0% 🚀
assets/docs.self-hosting-rag-tneXrO-C.js (New) 561 bytes 561 bytes 100.0% 🚀
assets/docs.self-hosting-rees-analyzers-DQWF3TaF.js (New) 561 bytes 561 bytes 100.0% 🚀
assets/docs.self-hosting-rees-rgMSz9z0.js (New) 561 bytes 561 bytes 100.0% 🚀
assets/docs.self-hosting-release-checklist-i-n4PsYs.js (New) 561 bytes 561 bytes 100.0% 🚀
assets/docs.self-hosting-releases-D72nhaIO.js (New) 561 bytes 561 bytes 100.0% 🚀
assets/docs.self-hosting-security-BEJPOV53.js (New) 561 bytes 561 bytes 100.0% 🚀
assets/docs.self-hosting-troubleshooting-CMYpopig.js (New) 561 bytes 561 bytes 100.0% 🚀
assets/docs.self-hosting-unified-ams-orb-Ck71R2il.js (New) 561 bytes 561 bytes 100.0% 🚀
assets/docs.ams-config-precedence-7zXtFkXI.js (New) 560 bytes 560 bytes 100.0% 🚀
assets/docs.ams-deployment-KNxOlPCS.js (New) 560 bytes 560 bytes 100.0% 🚀
assets/docs.ams-discovery-plane-B-qWKYJw.js (New) 560 bytes 560 bytes 100.0% 🚀
assets/docs.ams-env-reference-DBmfpVkQ.js (New) 560 bytes 560 bytes 100.0% 🚀
assets/docs.ams-fleet-manifest-POBRuGRP.js (New) 560 bytes 560 bytes 100.0% 🚀
assets/docs.ams-goal-spec-DnCmWK7q.js (New) 560 bytes 560 bytes 100.0% 🚀
assets/docs.ams-observability-CxYEfdTh.js (New) 560 bytes 560 bytes 100.0% 🚀
assets/docs.ams-operations-runbook-BjVOyntb.js (New) 560 bytes 560 bytes 100.0% 🚀
assets/docs.ams-sizing-DUxGUWCF.js (New) 560 bytes 560 bytes 100.0% 🚀
assets/docs.ams-unattended-scheduling-Ba0tz7PD.js (New) 560 bytes 560 bytes 100.0% 🚀
assets/docs.beta-onboarding-D5DC1rkQ.js (New) 560 bytes 560 bytes 100.0% 🚀
assets/docs.maintainer-self-hosting-BmNhUiAY.js (New) 560 bytes 560 bytes 100.0% 🚀
assets/docs.mcp-clients-BikAftM-.js (New) 560 bytes 560 bytes 100.0% 🚀
assets/docs.owner-checklist-BpLuNRRp.js (New) 560 bytes 560 bytes 100.0% 🚀
assets/docs.quickstart-GKDr_38B.js (New) 560 bytes 560 bytes 100.0% 🚀
assets/docs.github-app-CBMtKF0C.js (New) 558 bytes 558 bytes 100.0% 🚀
assets/docs.maintainer-workflow-D5rqD4hb.js (New) 558 bytes 558 bytes 100.0% 🚀
assets/docs.privacy-security-Dc0wUPmK.js (New) 558 bytes 558 bytes 100.0% 🚀
assets/docs.troubleshooting-CcsiWTXm.js (New) 558 bytes 558 bytes 100.0% 🚀
assets/docs.tuning-rFyAWCHe.js (New) 558 bytes 558 bytes 100.0% 🚀
assets/docs.loopover-commands-DjU-1yQ7.js (New) 557 bytes 557 bytes 100.0% 🚀
assets/docs.how-reviews-work-S5TOA00p.js (New) 556 bytes 556 bytes 100.0% 🚀
assets/app.maintainer-BlkySeTm.js (New) 502 bytes 502 bytes 100.0% 🚀
assets/sparkles-B7MqW5YW.js (New) 494 bytes 494 bytes 100.0% 🚀
assets/app.owner-UY_mTLdW.js (New) 474 bytes 474 bytes 100.0% 🚀
assets/app.commands-Yyh29cEf.js (New) 455 bytes 455 bytes 100.0% 🚀
assets/app.playground-D7r8_xSe.js (New) 442 bytes 442 bytes 100.0% 🚀
assets/reveal-Dv37GvK3.js (New) 442 bytes 442 bytes 100.0% 🚀
assets/index-Cj91IJ6h.js (New) 438 bytes 438 bytes 100.0% 🚀
assets/app.digest-L-rUC6Pe.js (New) 430 bytes 430 bytes 100.0% 🚀
assets/eye-off-CDfXt7Cv.js (New) 430 bytes 430 bytes 100.0% 🚀
assets/app.miner--d7nzaYc.js (New) 422 bytes 422 bytes 100.0% 🚀
assets/key-round-CPPC1MWP.js (New) 355 bytes 355 bytes 100.0% 🚀
assets/bot-N4_8m37-.js (New) 328 bytes 328 bytes 100.0% 🚀
assets/trash-2-BMoYBwZM.js (New) 328 bytes 328 bytes 100.0% 🚀
assets/save-Dm1BPlrp.js (New) 327 bytes 327 bytes 100.0% 🚀
assets/git-pull-request-arrow-CKMuwG8p.js (New) 321 bytes 321 bytes 100.0% 🚀
assets/shield-check-DBii1V6H.js (New) 320 bytes 320 bytes 100.0% 🚀
assets/wrench-BhfHVimw.js (New) 303 bytes 303 bytes 100.0% 🚀
assets/list-checks-DkqCD2a-.js (New) 279 bytes 279 bytes 100.0% 🚀
assets/shield-CiPmMAUM.js (New) 272 bytes 272 bytes 100.0% 🚀
assets/workflow-BnZtgcT1.js (New) 265 bytes 265 bytes 100.0% 🚀
assets/compass-B9ZTpxZK.js (New) 251 bytes 251 bytes 100.0% 🚀
assets/history-CN4sSWxv.js (New) 237 bytes 237 bytes 100.0% 🚀
assets/activity-B4N0JqLj.js (New) 234 bytes 234 bytes 100.0% 🚀
assets/message-square-BJBOV3CW.js (New) 233 bytes 233 bytes 100.0% 🚀
assets/lock-4QfnOhXR.js (New) 206 bytes 206 bytes 100.0% 🚀
assets/rotate-cw-CzB3AAbV.js (New) 201 bytes 201 bytes 100.0% 🚀
assets/play-CiLO7f5R.js (New) 190 bytes 190 bytes 100.0% 🚀
assets/circle-check-Dzmq3Ld-.js (New) 178 bytes 178 bytes 100.0% 🚀
assets/search-DPgYsEDd.js (New) 174 bytes 174 bytes 100.0% 🚀
assets/self-hosting-docs-audit-BywE4kfM.js (New) 141 bytes 141 bytes 100.0% 🚀
assets/ams-env-reference-Bbt8Sx2X.js (New) 140 bytes 140 bytes 100.0% 🚀
assets/circle-Bqq9MpPC.js (New) 130 bytes 130 bytes 100.0% 🚀
assets/modal-pd6X9MV6.js (New) 115 bytes 115 bytes 100.0% 🚀
assets/add-scalar-classes-DpIzlhqT.js (Deleted) -2.17MB 0 bytes -100.0% 🗑️
assets/tanstack-vendor-Ct6HgZZw.js (Deleted) -802.5kB 0 bytes -100.0% 🗑️
assets/docs.fumadocs-spike-api-reference-4flC7NBs.js (Deleted) -442.94kB 0 bytes -100.0% 🗑️
assets/AgentScalarChatInterface.vue-oWqUWLKB.js (Deleted) -201.71kB 0 bytes -100.0% 🗑️
assets/modal-BLg7jYCg.js (Deleted) -184.28kB 0 bytes -100.0% 🗑️
assets/client-DmjMXzzn.js (Deleted) -146.06kB 0 bytes -100.0% 🗑️
assets/maintainer-panel-ClxNxW6P.js (Deleted) -76.49kB 0 bytes -100.0% 🗑️
assets/ui-vendor-dGw46xtr.js (Deleted) -57.08kB 0 bytes -100.0% 🗑️
assets/routes-hnx5B3ps.js (Deleted) -34.29kB 0 bytes -100.0% 🗑️
assets/owner-panel-LXNmXbPL.js (Deleted) -26.89kB 0 bytes -100.0% 🗑️
assets/app-CIq1_SxI.js (Deleted) -25.65kB 0 bytes -100.0% 🗑️
assets/app.runs-DR6YxxzB.js (Deleted) -23.55kB 0 bytes -100.0% 🗑️
assets/miner-panel-BCEoJI7V.js (Deleted) -20.25kB 0 bytes -100.0% 🗑️
assets/docs-source-BYdhLG4f.js (Deleted) -19.3kB 0 bytes -100.0% 🗑️
assets/api._op-DCXJefXB.js (Deleted) -17.82kB 0 bytes -100.0% 🗑️
assets/self-hosting-docs-audit-SiZ5qi93.js (Deleted) -16.73kB 0 bytes -100.0% 🗑️
assets/app.index-CJgmDnnT.js (Deleted) -15.98kB 0 bytes -100.0% 🗑️
assets/playground-panel-Bm5cKzoS.js (Deleted) -14.35kB 0 bytes -100.0% 🗑️
assets/extension-C4_2ugqe.js (Deleted) -10.04kB 0 bytes -100.0% 🗑️
assets/app.config-generator-Ch0DR1lr.js (Deleted) -9.87kB 0 bytes -100.0% 🗑️
assets/app.audit-Keexl43C.js (Deleted) -9.54kB 0 bytes -100.0% 🗑️
assets/maintainers-BhvPwaxH.js (Deleted) -8.06kB 0 bytes -100.0% 🗑️
assets/miners-CUfaRP9B.js (Deleted) -7.89kB 0 bytes -100.0% 🗑️
assets/agents--RNywXZR.js (Deleted) -7.76kB 0 bytes -100.0% 🗑️
assets/commands-panel-HVHGobbs.js (Deleted) -6.63kB 0 bytes -100.0% 🗑️
assets/roadmap-y7yXhBMJ.js (Deleted) -6.33kB 0 bytes -100.0% 🗑️
assets/digest-panel-Jsh849ZX.js (Deleted) -6.14kB 0 bytes -100.0% 🗑️
assets/repos._owner._repo.quality-DujINU2I.js (Deleted) -6.14kB 0 bytes -100.0% 🗑️
assets/ams-env-reference-8wWFFEOM.js (Deleted) -5.59kB 0 bytes -100.0% 🗑️
assets/docs.index-CGE6kd2l.js (Deleted) -5.42kB 0 bytes -100.0% 🗑️
assets/api.index-3fDJXkU5.js (Deleted) -4.74kB 0 bytes -100.0% 🗑️
assets/api-CHxcwnnD.js (Deleted) -2.69kB 0 bytes -100.0% 🗑️
assets/docs-htTWUc4B.js (Deleted) -2.67kB 0 bytes -100.0% 🗑️
assets/app.workbench-czEKtba_.js (Deleted) -1.58kB 0 bytes -100.0% 🗑️
assets/tooltip-C3RzyzC-.js (Deleted) -1.45kB 0 bytes -100.0% 🗑️
assets/session-ByHNRig4.js (Deleted) -1.44kB 0 bytes -100.0% 🗑️
assets/tabs-chfCMXLT.js (Deleted) -1.39kB 0 bytes -100.0% 🗑️
assets/app.repos-C-z4r_EL.js (Deleted) -1.07kB 0 bytes -100.0% 🗑️
assets/input-B8f2GiKZ.js (Deleted) -796 bytes 0 bytes -100.0% 🗑️
assets/file-cog-B6JY37yf.js (Deleted) -758 bytes 0 bytes -100.0% 🗑️
assets/docs.ai-summaries-CP3Gg-MU.js (Deleted) -569 bytes 0 bytes -100.0% 🗑️
assets/docs.branch-analysis-BsgvlaGs.js (Deleted) -562 bytes 0 bytes -100.0% 🗑️
assets/docs.scoreability-BCYBLG2W.js (Deleted) -562 bytes 0 bytes -100.0% 🗑️
assets/docs.upstream-drift-B4-WPjDZ.js (Deleted) -562 bytes 0 bytes -100.0% 🗑️
assets/docs.federated-fleet-intelligence-DDx-xQKD.js (Deleted) -561 bytes 0 bytes -100.0% 🗑️
assets/docs.maintainer-install-trust-D02wVAXZ.js (Deleted) -561 bytes 0 bytes -100.0% 🗑️
assets/docs.self-hosting-ai-providers-BTxnfClZ.js (Deleted) -561 bytes 0 bytes -100.0% 🗑️
assets/docs.self-hosting-backup-scaling-BEftvTg4.js (Deleted) -561 bytes 0 bytes -100.0% 🗑️
assets/docs.self-hosting-configuration-DRw4pHwz.js (Deleted) -561 bytes 0 bytes -100.0% 🗑️
assets/docs.self-hosting-docs-audit-BUx5wpFa.js (Deleted) -561 bytes 0 bytes -100.0% 🗑️
assets/docs.self-hosting-github-app-BeI2izmN.js (Deleted) -561 bytes 0 bytes -100.0% 🗑️
assets/docs.self-hosting-quickstart-DTaQQ9_4.js (Deleted) -561 bytes 0 bytes -100.0% 🗑️
assets/docs.self-hosting-rag-D6BlUBDK.js (Deleted) -561 bytes 0 bytes -100.0% 🗑️
assets/docs.self-hosting-rees-BCCeMSzN.js (Deleted) -561 bytes 0 bytes -100.0% 🗑️
assets/docs.self-hosting-rees-analyzers-Bxz8gzDp.js (Deleted) -561 bytes 0 bytes -100.0% 🗑️
assets/docs.self-hosting-release-checklist-0vcPyQC9.js (Deleted) -561 bytes 0 bytes -100.0% 🗑️
assets/docs.self-hosting-releases-DRrtN1kU.js (Deleted) -561 bytes 0 bytes -100.0% 🗑️
assets/docs.self-hosting-security-zwTZ90_J.js (Deleted) -561 bytes 0 bytes -100.0% 🗑️
assets/docs.self-hosting-troubleshooting-Cz8U--8M.js (Deleted) -561 bytes 0 bytes -100.0% 🗑️
assets/docs.self-hosting-unified-ams-orb-DKEzRN55.js (Deleted) -561 bytes 0 bytes -100.0% 🗑️
assets/docs.ams-config-precedence-DA33BDnN.js (Deleted) -560 bytes 0 bytes -100.0% 🗑️
assets/docs.ams-deployment-N0AMkG2a.js (Deleted) -560 bytes 0 bytes -100.0% 🗑️
assets/docs.ams-discovery-plane-BogSi5RE.js (Deleted) -560 bytes 0 bytes -100.0% 🗑️
assets/docs.ams-env-reference-CyH_-eWH.js (Deleted) -560 bytes 0 bytes -100.0% 🗑️
assets/docs.ams-fleet-manifest-t2xl88gP.js (Deleted) -560 bytes 0 bytes -100.0% 🗑️
assets/docs.ams-goal-spec-VyiCu87A.js (Deleted) -560 bytes 0 bytes -100.0% 🗑️
assets/docs.ams-observability-BFZiET5O.js (Deleted) -560 bytes 0 bytes -100.0% 🗑️
assets/docs.ams-operations-runbook-D7hPz_mh.js (Deleted) -560 bytes 0 bytes -100.0% 🗑️
assets/docs.ams-sizing-CStzwIfc.js (Deleted) -560 bytes 0 bytes -100.0% 🗑️
assets/docs.ams-unattended-scheduling-B-5KnHCO.js (Deleted) -560 bytes 0 bytes -100.0% 🗑️
assets/docs.beta-onboarding-F-3suJYQ.js (Deleted) -560 bytes 0 bytes -100.0% 🗑️
assets/docs.maintainer-self-hosting-Cnw9VXax.js (Deleted) -560 bytes 0 bytes -100.0% 🗑️
assets/docs.mcp-clients-CQ1fuRJQ.js (Deleted) -560 bytes 0 bytes -100.0% 🗑️
assets/docs.owner-checklist-DI18vDR9.js (Deleted) -560 bytes 0 bytes -100.0% 🗑️
assets/docs.quickstart-CjT-ApVF.js (Deleted) -560 bytes 0 bytes -100.0% 🗑️
assets/docs.github-app-BZnnBPXI.js (Deleted) -558 bytes 0 bytes -100.0% 🗑️
assets/docs.maintainer-workflow-C4qAg0J7.js (Deleted) -558 bytes 0 bytes -100.0% 🗑️
assets/docs.privacy-security-Cw52A97-.js (Deleted) -558 bytes 0 bytes -100.0% 🗑️
assets/docs.troubleshooting-Dpb4Re_c.js (Deleted) -558 bytes 0 bytes -100.0% 🗑️
assets/docs.tuning-TIKbIdEP.js (Deleted) -558 bytes 0 bytes -100.0% 🗑️
assets/docs.loopover-commands-BW8ygFq9.js (Deleted) -557 bytes 0 bytes -100.0% 🗑️
assets/docs.how-reviews-work-CVyeZotn.js (Deleted) -556 bytes 0 bytes -100.0% 🗑️
assets/app.maintainer-Df-SSv8g.js (Deleted) -502 bytes 0 bytes -100.0% 🗑️
assets/sparkles-CNM_jGyH.js (Deleted) -494 bytes 0 bytes -100.0% 🗑️
assets/app.owner-*.js (Deleted) -474 bytes 0 bytes -100.0% 🗑️
assets/app.commands-BAZcOEM5.js (Deleted) -455 bytes 0 bytes -100.0% 🗑️
assets/app.playground-Da8GMUGG.js (Deleted) -442 bytes 0 bytes -100.0% 🗑️
assets/reveal-8pmzmwHU.js (Deleted) -442 bytes 0 bytes -100.0% 🗑️
assets/index-Cp0tbS-s.js (Deleted) -438 bytes 0 bytes -100.0% 🗑️
assets/app.digest-Crf7ML7R.js (Deleted) -430 bytes 0 bytes -100.0% 🗑️
assets/eye-off-D2xRI0Gk.js (Deleted) -430 bytes 0 bytes -100.0% 🗑️
assets/app.miner-1wwiB_p6.js (Deleted) -422 bytes 0 bytes -100.0% 🗑️
assets/key-round-DQWFWyhF.js (Deleted) -355 bytes 0 bytes -100.0% 🗑️
assets/bot-BohEe7nN.js (Deleted) -328 bytes 0 bytes -100.0% 🗑️
assets/trash-2-BIWRq1kg.js (Deleted) -328 bytes 0 bytes -100.0% 🗑️
assets/save-DNAU-PWy.js (Deleted) -327 bytes 0 bytes -100.0% 🗑️
assets/git-pull-request-arrow-D52A6gpv.js (Deleted) -321 bytes 0 bytes -100.0% 🗑️
assets/shield-check-Dz0S0Ry4.js (Deleted) -320 bytes 0 bytes -100.0% 🗑️
assets/wrench-0Mgvq_2-.js (Deleted) -303 bytes 0 bytes -100.0% 🗑️
assets/list-checks-B6xAI-lr.js (Deleted) -279 bytes 0 bytes -100.0% 🗑️
assets/shield-DqRmImcY.js (Deleted) -272 bytes 0 bytes -100.0% 🗑️
assets/workflow-CFrDETKE.js (Deleted) -265 bytes 0 bytes -100.0% 🗑️
assets/compass-HMqCcUka.js (Deleted) -251 bytes 0 bytes -100.0% 🗑️
assets/history-Xp5QuC7i.js (Deleted) -237 bytes 0 bytes -100.0% 🗑️
assets/activity-ppzrhXc8.js (Deleted) -234 bytes 0 bytes -100.0% 🗑️
assets/message-square-CRqixnv7.js (Deleted) -233 bytes 0 bytes -100.0% 🗑️
assets/lock-CWcD3Nyp.js (Deleted) -206 bytes 0 bytes -100.0% 🗑️
assets/rotate-cw-DGxPFoYl.js (Deleted) -201 bytes 0 bytes -100.0% 🗑️
assets/play-DbBAaV3f.js (Deleted) -190 bytes 0 bytes -100.0% 🗑️
assets/circle-check-DGWmyL9N.js (Deleted) -178 bytes 0 bytes -100.0% 🗑️
assets/search-DsIorsnJ.js (Deleted) -174 bytes 0 bytes -100.0% 🗑️
assets/self-hosting-docs-audit-BiZh7zvA.js (Deleted) -141 bytes 0 bytes -100.0% 🗑️
assets/ams-env-reference-DPa7PP4n.js (Deleted) -140 bytes 0 bytes -100.0% 🗑️
assets/circle-CTSb18S5.js (Deleted) -130 bytes 0 bytes -100.0% 🗑️
assets/modal-CyrAno-j.js (Deleted) -115 bytes 0 bytes -100.0% 🗑️

@codecov

codecov Bot commented Jul 17, 2026

Copy link
Copy Markdown

❌ 7 Tests Failed:

Tests completed Failed Passed Skipped
18349 7 18342 13
View the top 3 failed test(s) by shortest run time
test/unit/miner-extension-live-fetch.test.ts > syncRankedCandidatesFromMinerUi (#4859) > surfaces a thrown fetch (miner UI not running) as a typed failure without touching storage, never throwing
Stack Traces | 0.00406s run time
AssertionError: expected Object{ ok: false, …(2) } to deeply equal { ok: false, …(2) }

- Expected
+ Received

  {
-   "error": "connect ECONNREFUSED",
+   "error": "AbortSignal is not defined",
    "minerUiUrl": "http://localhost:5174",
    "ok": false,
  }

 ❯ test/unit/miner-extension-live-fetch.test.ts:173:20
test/unit/miner-extension-live-fetch.test.ts > syncRankedCandidatesFromMinerUi (#4859) > surfaces a malformed payload (candidates not an array) as a typed failure without touching storage
Stack Traces | 0.00411s run time
AssertionError: expected Object{ ok: false, …(2) } to deeply equal { ok: false, …(2) }

- Expected
+ Received

  {
-   "error": "miner UI returned an unexpected payload shape",
+   "error": "AbortSignal is not defined",
    "minerUiUrl": "http://localhost:5174",
    "ok": false,
  }

 ❯ test/unit/miner-extension-live-fetch.test.ts:153:20
test/unit/miner-extension-live-fetch.test.ts > syncRankedCandidatesFromMinerUi (#4859) > responds to the SYNC_RANKED_CANDIDATES_MESSAGE runtime message with the sync result
Stack Traces | 0.00485s run time
AssertionError: expected false to be true // Object.is equality

- Expected
+ Received

- true
+ false

 ❯ test/unit/miner-extension-live-fetch.test.ts:186:33
test/unit/miner-extension-live-fetch.test.ts > syncRankedCandidatesFromMinerUi (#4859) > syncs once on startup and once on install when those lifecycle events are available
Stack Traces | 0.00547s run time
AssertionError: expected [] to have a length of 1 but got +0

- Expected
+ Received

- 1
+ 0

 ❯ test/unit/miner-extension-live-fetch.test.ts:220:27
test/unit/miner-extension-live-fetch.test.ts > syncRankedCandidatesFromMinerUi (#4859) > surfaces a non-2xx response as a typed failure without touching storage
Stack Traces | 0.00721s run time
AssertionError: expected Object{ ok: false, …(2) } to deeply equal { ok: false, …(2) }

- Expected
+ Received

  {
-   "error": "miner UI responded 401",
+   "error": "AbortSignal is not defined",
    "minerUiUrl": "http://localhost:5174",
    "ok": false,
  }

 ❯ test/unit/miner-extension-live-fetch.test.ts:146:20
test/unit/miner-extension-live-fetch.test.ts > syncRankedCandidatesFromMinerUi (#4859) > wires an alarms-based ambient refresh when chrome.alarms is present, and only syncs for its own alarm name
Stack Traces | 0.0173s run time
AssertionError: expected [] to have a length of 1 but got +0

- Expected
+ Received

- 1
+ 0

 ❯ test/unit/miner-extension-live-fetch.test.ts:206:27
test/unit/miner-extension-live-fetch.test.ts > syncRankedCandidatesFromMinerUi (#4859) > fetches from the configured miner UI URL and writes candidates + a savedAt timestamp into local storage
Stack Traces | 0.0203s run time
AssertionError: expected false to be true // Object.is equality

- Expected
+ Received

- true
+ false

 ❯ test/unit/miner-extension-live-fetch.test.ts:127:23

To view more test analytics, go to the Test Analytics Dashboard
📋 Got 3 mins? Take this short survey to help us improve Test Analytics.

philluiz2323 pushed a commit to philluiz2323/gittensory that referenced this pull request Jul 17, 2026
…rsions

@loopover/mcp and @loopover/miner are both live on npm at 3.1.1 (published
via an out-of-band manual release cut, JSONbored#7064), but .release-please-manifest.json
was never updated to match -- it still recorded 3.1.0 as the last-released
version for both. release-please used that stale baseline to recompute and
re-propose "cut v3.1.1" as a brand-new release (JSONbored#7086, JSONbored#7087), which would
fail on publish: npm rejects republishing an already-published version.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

gittensor:bug Gittensor-scored bug fix — scores a 0.05x multiplier.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant