From 816954566bc2f3d7cf4add08959d77441e5c7809 Mon Sep 17 00:00:00 2001 From: ghost <49853598+JSONbored@users.noreply.github.com> Date: Wed, 29 Jul 2026 10:39:50 -0700 Subject: [PATCH 1/2] chore(main): release engine-and-dependents libraries --- .release-please-manifest.json | 11 +++-- package-lock.json | 16 +++---- packages/loopover-contract/CHANGELOG.md | 23 ++++++++++ packages/loopover-contract/package.json | 4 +- packages/loopover-engine/CHANGELOG.md | 29 ++++++++++++ packages/loopover-engine/package.json | 2 +- packages/loopover-mcp/CHANGELOG.md | 34 ++++++++++++++ packages/loopover-mcp/package.json | 6 +-- packages/loopover-miner/CHANGELOG.md | 59 +++++++++++++++++++++++++ packages/loopover-miner/package.json | 6 +-- 10 files changed, 167 insertions(+), 23 deletions(-) diff --git a/.release-please-manifest.json b/.release-please-manifest.json index 3c765ca977..d751e6c8be 100644 --- a/.release-please-manifest.json +++ b/.release-please-manifest.json @@ -1,8 +1,7 @@ { - "packages/loopover-contract": "0.1.0", - "packages/loopover-mcp": "3.15.2", - "packages/loopover-engine": "3.16.1", - "packages/loopover-miner": "3.15.2", - "packages/loopover-ui-kit": "1.3.0", - "packages/loopover-contract": "0.1.0" + "packages/loopover-contract": "3.17.0", + "packages/loopover-mcp": "3.17.0", + "packages/loopover-engine": "3.17.0", + "packages/loopover-miner": "3.17.0", + "packages/loopover-ui-kit": "1.3.0" } diff --git a/package-lock.json b/package-lock.json index 149a96b9cf..a48ae9326d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -22199,7 +22199,7 @@ }, "packages/loopover-contract": { "name": "@loopover/contract", - "version": "0.1.0", + "version": "3.17.0", "license": "AGPL-3.0-only", "dependencies": { "zod": "^4.4.3" @@ -22214,7 +22214,7 @@ }, "packages/loopover-engine": { "name": "@loopover/engine", - "version": "3.16.1", + "version": "3.17.0", "license": "AGPL-3.0-only", "dependencies": { "@anthropic-ai/claude-agent-sdk": "^0.3.218", @@ -22250,11 +22250,11 @@ }, "packages/loopover-mcp": { "name": "@loopover/mcp", - "version": "3.15.2", + "version": "3.17.0", "license": "AGPL-3.0-only", "dependencies": { - "@loopover/contract": "^0.1.0", - "@loopover/engine": "^3.16.0", + "@loopover/contract": "^3.17.0", + "@loopover/engine": "^3.17.0", "@modelcontextprotocol/sdk": "1.29.0", "posthog-node": "^5.46.1", "zod": "^4.4.3" @@ -22289,11 +22289,11 @@ }, "packages/loopover-miner": { "name": "@loopover/miner", - "version": "3.15.2", + "version": "3.17.0", "license": "AGPL-3.0-only", "dependencies": { - "@loopover/contract": "^0.1.0", - "@loopover/engine": "^3.16.0", + "@loopover/contract": "^3.17.0", + "@loopover/engine": "^3.17.0", "@modelcontextprotocol/sdk": "1.29.0", "@sentry/node": "^10.67.0", "zod": "^4.4.3" diff --git a/packages/loopover-contract/CHANGELOG.md b/packages/loopover-contract/CHANGELOG.md index a44659457b..1a103740fb 100644 --- a/packages/loopover-contract/CHANGELOG.md +++ b/packages/loopover-contract/CHANGELOG.md @@ -1,5 +1,28 @@ # Changelog +## [3.17.0](https://github.com/JSONbored/loopover/compare/contract-v0.1.0...contract-v3.17.0) (2026-07-29) + + +### Features + +* **ams:** migrate the AMS miner MCP server to @loopover/contract ([#9542](https://github.com/JSONbored/loopover/issues/9542)) ([9713f26](https://github.com/JSONbored/loopover/commit/9713f261c38b382b1d79039ae2b745a38565e40f)), closes [#9536](https://github.com/JSONbored/loopover/issues/9536) +* **contract:** add @loopover/contract, the single zod source for tool and API schemas ([#9530](https://github.com/JSONbored/loopover/issues/9530)) ([95f1524](https://github.com/JSONbored/loopover/commit/95f1524035a6785834fd2236ee676a1626ba8854)) +* **contract:** give the request schemas, the control plane, and the self-host endpoints one contract ([#9750](https://github.com/JSONbored/loopover/issues/9750)) ([#9757](https://github.com/JSONbored/loopover/issues/9757)) ([5220a35](https://github.com/JSONbored/loopover/commit/5220a359f7cfa82421267212581f161d0085d2cb)) +* **contract:** migrate every remote MCP tool contract to @loopover/contract ([#9518](https://github.com/JSONbored/loopover/issues/9518)) ([#9559](https://github.com/JSONbored/loopover/issues/9559)) ([968c731](https://github.com/JSONbored/loopover/commit/968c73171baca6128845e358d9e15a10144791a5)) +* **gate:** choose provider, model, effort and self-consistency runs — per repo, and escalated on guarded paths ([#9821](https://github.com/JSONbored/loopover/issues/9821)) ([a65655c](https://github.com/JSONbored/loopover/commit/a65655c9e289175dadab0112b8ffa2d821963a3d)) +* **mcp:** discovery surfaces, registry publish, and the stdio gateway ([#9526](https://github.com/JSONbored/loopover/issues/9526)) ([#9735](https://github.com/JSONbored/loopover/issues/9735)) ([983ea31](https://github.com/JSONbored/loopover/commit/983ea31fee115e2f63e5bfbf23c858d50c539012)) +* **mcp:** generate every tool, CLI, client, and docs surface from the contract ([#9521](https://github.com/JSONbored/loopover/issues/9521)) ([#9590](https://github.com/JSONbored/loopover/issues/9590)) ([bd139a5](https://github.com/JSONbored/loopover/commit/bd139a5d5d6a95bfd4c38b46ab29ec73b43af8e3)) +* **mcp:** migrate the stdio MCP server's 102 tools to @loopover/contract ([#9537](https://github.com/JSONbored/loopover/issues/9537)) ([#9565](https://github.com/JSONbored/loopover/issues/9565)) ([d5a5a8f](https://github.com/JSONbored/loopover/commit/d5a5a8fe5c6cb3b2541689d85baf1c3d0a45c422)) +* **mcp:** one registry-driven telemetry contract at all three dispatch chokepoints ([#9525](https://github.com/JSONbored/loopover/issues/9525)) ([#9579](https://github.com/JSONbored/loopover/issues/9579)) ([06a090f](https://github.com/JSONbored/loopover/commit/06a090f9a6ab786165ab76fc741e2697c0ff1ae1)) +* **stats:** publish a fleet accuracy trend, so the weekly table means something again ([#9775](https://github.com/JSONbored/loopover/issues/9775)) ([47842ec](https://github.com/JSONbored/loopover/commit/47842ec7bf0a5c0f8c1752d618f6ff963e378572)), closes [#9676](https://github.com/JSONbored/loopover/issues/9676) + + +### Fixes + +* **contract:** close the last duplications and make the .shape trap impossible ([#9762](https://github.com/JSONbored/loopover/issues/9762)) ([#9765](https://github.com/JSONbored/loopover/issues/9765)) ([edbdb58](https://github.com/JSONbored/loopover/commit/edbdb584c7ebcab3f85f11018b7cab25ad056486)) +* **contract:** regenerate api-schemas for [#9813](https://github.com/JSONbored/loopover/issues/9813)'s ignoredCheckRuns ([#9837](https://github.com/JSONbored/loopover/issues/9837)) ([8659503](https://github.com/JSONbored/loopover/commit/86595038c3fb690bb5ae75ea4cc4a21f5977f2a3)), closes [#9836](https://github.com/JSONbored/loopover/issues/9836) +* **release:** publish @loopover/contract, and catch this class of break before it ships ([#9749](https://github.com/JSONbored/loopover/issues/9749)) ([#9763](https://github.com/JSONbored/loopover/issues/9763)) ([6dd5791](https://github.com/JSONbored/loopover/commit/6dd5791b4d7c116ae4f272e130ab7e9ece6716e6)) + ## 0.1.0 Initial release. `@loopover/contract` is the single zod source of truth for LoopOver's MCP tool and API diff --git a/packages/loopover-contract/package.json b/packages/loopover-contract/package.json index 39b616ef8a..a567bbf05b 100644 --- a/packages/loopover-contract/package.json +++ b/packages/loopover-contract/package.json @@ -1,9 +1,9 @@ { "name": "@loopover/contract", - "version": "0.1.0", + "version": "3.17.0", "license": "AGPL-3.0-only", "type": "module", - "description": "Single zod source of truth for LoopOver's MCP tool and API contracts \u2014 schemas, tool metadata, and the projections every server and client derives from.", + "description": "Single zod source of truth for LoopOver's MCP tool and API contracts — schemas, tool metadata, and the projections every server and client derives from.", "repository": { "type": "git", "url": "git+https://github.com/JSONbored/loopover.git", diff --git a/packages/loopover-engine/CHANGELOG.md b/packages/loopover-engine/CHANGELOG.md index 165ad75e52..0897c1813d 100644 --- a/packages/loopover-engine/CHANGELOG.md +++ b/packages/loopover-engine/CHANGELOG.md @@ -1,5 +1,34 @@ # Changelog +## [3.17.0](https://github.com/JSONbored/loopover/compare/engine-v3.16.1...engine-v3.17.0) (2026-07-29) + + +### Features + +* **benchmark:** anti-overfit controls — repo-level seeded split, caps, rotation ([#9263](https://github.com/JSONbored/loopover/issues/9263)) ([#9600](https://github.com/JSONbored/loopover/issues/9600)) ([9942512](https://github.com/JSONbored/loopover/commit/9942512579e77c4d4738eab933db50443a60b59e)) +* **benchmark:** maintainer action-space schema and proposal validator ([#9260](https://github.com/JSONbored/loopover/issues/9260)) ([#9595](https://github.com/JSONbored/loopover/issues/9595)) ([b543e1e](https://github.com/JSONbored/loopover/commit/b543e1e843c714f833bca08d1dd3367277f171be)) +* **benchmark:** multi-class proposal scorer on the shared primitives ([#9262](https://github.com/JSONbored/loopover/issues/9262)) ([#9599](https://github.com/JSONbored/loopover/issues/9599)) ([534dfd5](https://github.com/JSONbored/loopover/commit/534dfd5ed9e1d30dd88f0df1edfb44f84dacfb9c)) +* **benchmark:** reversal-aware realized-history ground truth ([#9261](https://github.com/JSONbored/loopover/issues/9261)) ([#9598](https://github.com/JSONbored/loopover/issues/9598)) ([1819298](https://github.com/JSONbored/loopover/commit/181929802929e3ac171ddd11ec6045034e00de50)) +* **benchmark:** untrusted candidate sandbox policy and fail-closed run verdict ([#9264](https://github.com/JSONbored/loopover/issues/9264)) ([#9606](https://github.com/JSONbored/loopover/issues/9606)) ([3200abc](https://github.com/JSONbored/loopover/commit/3200abc89a854f50aff0ea72cbe11b38d4f7afb7)) +* **gate:** choose provider, model, effort and self-consistency runs — per repo, and escalated on guarded paths ([#9821](https://github.com/JSONbored/loopover/issues/9821)) ([a65655c](https://github.com/JSONbored/loopover/commit/a65655c9e289175dadab0112b8ffa2d821963a3d)) +* **gate:** gate.ignoredCheckRuns — exclude a third-party check from CI resolution entirely ([#9813](https://github.com/JSONbored/loopover/issues/9813)) ([84c2462](https://github.com/JSONbored/loopover/commit/84c2462357ca109c5f3f0eea28c1c45d36e03378)) +* **proof:** public per-repo proof summary, endpoint and README badge ([#9569](https://github.com/JSONbored/loopover/issues/9569)) ([#9608](https://github.com/JSONbored/loopover/issues/9608)) ([7ffb51e](https://github.com/JSONbored/loopover/commit/7ffb51eb4a437a8bb1c352efa5b19a981c1d230b)) + + +### Fixes + +* **ci:** normalize committed CRLF to LF and name the failure for what it is ([#9799](https://github.com/JSONbored/loopover/issues/9799)) ([ee98373](https://github.com/JSONbored/loopover/commit/ee98373cd29d368fbf4f1774bcec76f544597cf9)) +* **engine:** accept the { kind: 'existing', repo } IdeaTarget shape in validateIdeaSubmission ([#9634](https://github.com/JSONbored/loopover/issues/9634)) ([c086363](https://github.com/JSONbored/loopover/commit/c086363b791a99779eebe8024a742e83b7ca5152)) +* **engine:** drop opportunity-metadata's blanket v8-ignore directives and branch-cover the scoring logic they hid ([#9635](https://github.com/JSONbored/loopover/issues/9635)) ([61ab43e](https://github.com/JSONbored/loopover/commit/61ab43ef0e86c19f0c90fe9a40e31fdcb6427dec)), closes [#9616](https://github.com/JSONbored/loopover/issues/9616) +* **engine:** isolate getTenantConfig reads and normalize tenant config ([#9614](https://github.com/JSONbored/loopover/issues/9614)) ([#9627](https://github.com/JSONbored/loopover/issues/9627)) ([676ba3c](https://github.com/JSONbored/loopover/commit/676ba3c184bf2acf1fc9cd8bb0a08fc428286f4c)) +* **engine:** keep renderRepoMap's output within maxOutputChars including the marker ([#9633](https://github.com/JSONbored/loopover/issues/9633)) ([d997bac](https://github.com/JSONbored/loopover/commit/d997baca02de15de83083c272dffc93acd420405)) +* **engine:** share governor-ledger's repo-segment guard with the three normalizers that skipped it ([#9625](https://github.com/JSONbored/loopover/issues/9625)) ([8e3e4f5](https://github.com/JSONbored/loopover/commit/8e3e4f5d710c19287afd01e1f530c891b07e000d)), closes [#9610](https://github.com/JSONbored/loopover/issues/9610) +* **engine:** surface discovery-index contract-version skew and actually send the version on the query wire ([#9631](https://github.com/JSONbored/loopover/issues/9631)) ([80827df](https://github.com/JSONbored/loopover/commit/80827dfed397bc0e4a657dfb4e71414125975601)), closes [#9615](https://github.com/JSONbored/loopover/issues/9615) +* **engine:** validate the repo and PR number behind buildResultsPayload's customer link ([#9611](https://github.com/JSONbored/loopover/issues/9611)) ([#9632](https://github.com/JSONbored/loopover/issues/9632)) ([5aa94b7](https://github.com/JSONbored/loopover/commit/5aa94b771b6bc20a943157c1c15b26b158a0a3af)) +* **eval:** commit each published score to the corpus a reader can download ([#9811](https://github.com/JSONbored/loopover/issues/9811)) ([bcdd2f8](https://github.com/JSONbored/loopover/commit/bcdd2f8285b21fa5ad4c52e20efa44f16e77947f)), closes [#9805](https://github.com/JSONbored/loopover/issues/9805) +* **eval:** stamp the in-Worker threshold backtest with its corpus freeze point ([#9804](https://github.com/JSONbored/loopover/issues/9804)) ([2755994](https://github.com/JSONbored/loopover/commit/2755994cdf3b1d0887fffe6d7d7bc354b6093e2a)) +* **openapi:** declare the predictedGate/dataQuality fields branch-analysis actually returns ([#9531](https://github.com/JSONbored/loopover/issues/9531)) ([#9587](https://github.com/JSONbored/loopover/issues/9587)) ([a858cbc](https://github.com/JSONbored/loopover/commit/a858cbc31beb99644f6c3c2995a4f80ed583eea9)) + ## [3.15.2](https://github.com/JSONbored/loopover/compare/engine-v3.15.1...engine-v3.15.2) (2026-07-27) diff --git a/packages/loopover-engine/package.json b/packages/loopover-engine/package.json index fbdaed805d..fc6da83fb3 100644 --- a/packages/loopover-engine/package.json +++ b/packages/loopover-engine/package.json @@ -1,6 +1,6 @@ { "name": "@loopover/engine", - "version": "3.16.1", + "version": "3.17.0", "license": "AGPL-3.0-only", "type": "module", "description": "Shared deterministic engine logic for the LoopOver review stack and loopover-miner.", diff --git a/packages/loopover-mcp/CHANGELOG.md b/packages/loopover-mcp/CHANGELOG.md index 7197f6f9c7..9b7f160083 100644 --- a/packages/loopover-mcp/CHANGELOG.md +++ b/packages/loopover-mcp/CHANGELOG.md @@ -5,6 +5,40 @@ ### Fixes - Blunt slop-risk / issue-slop REST + CLI to match the MCP tools (#6990) (#7052) +## [3.17.0](https://github.com/JSONbored/loopover/compare/mcp-v3.15.2...mcp-v3.17.0) (2026-07-29) + + +### Features + +* **contract:** add @loopover/contract, the single zod source for tool and API schemas ([#9530](https://github.com/JSONbored/loopover/issues/9530)) ([95f1524](https://github.com/JSONbored/loopover/commit/95f1524035a6785834fd2236ee676a1626ba8854)) +* **contract:** migrate every remote MCP tool contract to @loopover/contract ([#9518](https://github.com/JSONbored/loopover/issues/9518)) ([#9559](https://github.com/JSONbored/loopover/issues/9559)) ([968c731](https://github.com/JSONbored/loopover/commit/968c73171baca6128845e358d9e15a10144791a5)) +* **mcp:** add validate:mcp, the contract validator that enforces all three servers ([#9520](https://github.com/JSONbored/loopover/issues/9520)) ([#9575](https://github.com/JSONbored/loopover/issues/9575)) ([0e990a3](https://github.com/JSONbored/loopover/commit/0e990a31d6ba491b6617e638ce3ae0e341366386)) +* **mcp:** discovery surfaces, registry publish, and the stdio gateway ([#9526](https://github.com/JSONbored/loopover/issues/9526)) ([#9735](https://github.com/JSONbored/loopover/issues/9735)) ([983ea31](https://github.com/JSONbored/loopover/commit/983ea31fee115e2f63e5bfbf23c858d50c539012)) +* **mcp:** generate every tool, CLI, client, and docs surface from the contract ([#9521](https://github.com/JSONbored/loopover/issues/9521)) ([#9590](https://github.com/JSONbored/loopover/issues/9590)) ([bd139a5](https://github.com/JSONbored/loopover/commit/bd139a5d5d6a95bfd4c38b46ab29ec73b43af8e3)) +* **mcp:** migrate the stdio MCP server's 102 tools to @loopover/contract ([#9537](https://github.com/JSONbored/loopover/issues/9537)) ([#9565](https://github.com/JSONbored/loopover/issues/9565)) ([d5a5a8f](https://github.com/JSONbored/loopover/commit/d5a5a8fe5c6cb3b2541689d85baf1c3d0a45c422)) +* **mcp:** one registry-driven telemetry contract at all three dispatch chokepoints ([#9525](https://github.com/JSONbored/loopover/issues/9525)) ([#9579](https://github.com/JSONbored/loopover/issues/9579)) ([06a090f](https://github.com/JSONbored/loopover/commit/06a090f9a6ab786165ab76fc741e2697c0ff1ae1)) + + +### Fixes + +* **build:** migrate loopover-miner/loopover-mcp to out-of-place dist/ emit ([#8590](https://github.com/JSONbored/loopover/issues/8590)) ([c896797](https://github.com/JSONbored/loopover/commit/c89679761d8392f267fd19b458574e0b6a9e49fa)) +* **contract:** close the last duplications and make the .shape trap impossible ([#9762](https://github.com/JSONbored/loopover/issues/9762)) ([#9765](https://github.com/JSONbored/loopover/issues/9765)) ([edbdb58](https://github.com/JSONbored/loopover/commit/edbdb584c7ebcab3f85f11018b7cab25ad056486)) +* **deps:** resolve postcss + tar audit findings via overrides ([#8612](https://github.com/JSONbored/loopover/issues/8612)) ([bca96ff](https://github.com/JSONbored/loopover/commit/bca96ff0a2a5e930f1da592549d3f773c8e2b1da)) +* **mcp:** await PostHog flush via unit-tested stdio wrapper ([#8738](https://github.com/JSONbored/loopover/issues/8738)) ([7ee07cc](https://github.com/JSONbored/loopover/commit/7ee07cc7bf3a4f42ba82ab0ff9e5bad253c3ad03)), closes [#8690](https://github.com/JSONbored/loopover/issues/8690) +* **mcp:** correct loopover_check_issue_slop description and drop the dead issue-slop rubric ([#8959](https://github.com/JSONbored/loopover/issues/8959)) ([fcecf0c](https://github.com/JSONbored/loopover/commit/fcecf0c8f18e06041ff72f2b8b1eea47367f25c3)), closes [#8907](https://github.com/JSONbored/loopover/issues/8907) +* **mcp:** exit the CLI cleanly on a broken-pipe stdout/stderr error ([#8731](https://github.com/JSONbored/loopover/issues/8731)) ([2fc27bc](https://github.com/JSONbored/loopover/commit/2fc27bc053613860cb2db8e7bb0c12e2d22721b7)), closes [#8691](https://github.com/JSONbored/loopover/issues/8691) +* **mcp:** mirror loopover_clear_selftune_override in the CLI stdio package ([#9300](https://github.com/JSONbored/loopover/issues/9300)) ([#9361](https://github.com/JSONbored/loopover/issues/9361)) ([09eb223](https://github.com/JSONbored/loopover/commit/09eb223551611140f7457c51998612cc076e5f90)) +* **mcp:** stop --json=false and --exit-code=false enabling the flag they disable ([#8725](https://github.com/JSONbored/loopover/issues/8725)) ([60f9f8f](https://github.com/JSONbored/loopover/commit/60f9f8f5decffe71eb7208918ebc154c86ee79e4)) +* **security:** close two open GitHub Security Advisories ([#9281](https://github.com/JSONbored/loopover/issues/9281)) ([29591ca](https://github.com/JSONbored/loopover/commit/29591caa9873708bc8c105e049fafde1c0bcfdf9)) + + +### Dependencies + +* The following workspace dependencies were updated + * dependencies + * @loopover/contract bumped from ^0.1.0 to ^3.17.0 + * @loopover/engine bumped from ^3.16.0 to ^3.17.0 + ## [3.15.2](https://github.com/JSONbored/loopover/compare/mcp-v3.14.1...mcp-v3.15.2) (2026-07-27) diff --git a/packages/loopover-mcp/package.json b/packages/loopover-mcp/package.json index 1b2999652b..e218a673d8 100644 --- a/packages/loopover-mcp/package.json +++ b/packages/loopover-mcp/package.json @@ -1,6 +1,6 @@ { "name": "@loopover/mcp", - "version": "3.15.2", + "version": "3.17.0", "license": "AGPL-3.0-only", "type": "module", "description": "Local stdio MCP wrapper for the LoopOver Gittensor base-agent.", @@ -45,8 +45,8 @@ "build:verify": "node --experimental-strip-types scripts/check-syntax.ts" }, "dependencies": { - "@loopover/contract": "^0.1.0", - "@loopover/engine": "^3.16.0", + "@loopover/contract": "^3.17.0", + "@loopover/engine": "^3.17.0", "@modelcontextprotocol/sdk": "1.29.0", "posthog-node": "^5.46.1", "zod": "^4.4.3" diff --git a/packages/loopover-miner/CHANGELOG.md b/packages/loopover-miner/CHANGELOG.md index 6ff6405c15..b299bf2fb2 100644 --- a/packages/loopover-miner/CHANGELOG.md +++ b/packages/loopover-miner/CHANGELOG.md @@ -1,5 +1,64 @@ # Changelog +## [3.17.0](https://github.com/JSONbored/loopover/compare/miner-v3.15.2...miner-v3.17.0) (2026-07-29) + + +### Features + +* **ams:** migrate the AMS miner MCP server to @loopover/contract ([#9542](https://github.com/JSONbored/loopover/issues/9542)) ([9713f26](https://github.com/JSONbored/loopover/commit/9713f261c38b382b1d79039ae2b745a38565e40f)), closes [#9536](https://github.com/JSONbored/loopover/issues/9536) +* **contract:** give the request schemas, the control plane, and the self-host endpoints one contract ([#9750](https://github.com/JSONbored/loopover/issues/9750)) ([#9757](https://github.com/JSONbored/loopover/issues/9757)) ([5220a35](https://github.com/JSONbored/loopover/commit/5220a359f7cfa82421267212581f161d0085d2cb)) +* **mcp:** discovery surfaces, registry publish, and the stdio gateway ([#9526](https://github.com/JSONbored/loopover/issues/9526)) ([#9735](https://github.com/JSONbored/loopover/issues/9735)) ([983ea31](https://github.com/JSONbored/loopover/commit/983ea31fee115e2f63e5bfbf23c858d50c539012)) +* **mcp:** generate every tool, CLI, client, and docs surface from the contract ([#9521](https://github.com/JSONbored/loopover/issues/9521)) ([#9590](https://github.com/JSONbored/loopover/issues/9590)) ([bd139a5](https://github.com/JSONbored/loopover/commit/bd139a5d5d6a95bfd4c38b46ab29ec73b43af8e3)) +* **mcp:** migrate the stdio MCP server's 102 tools to @loopover/contract ([#9537](https://github.com/JSONbored/loopover/issues/9537)) ([#9565](https://github.com/JSONbored/loopover/issues/9565)) ([d5a5a8f](https://github.com/JSONbored/loopover/commit/d5a5a8fe5c6cb3b2541689d85baf1c3d0a45c422)) +* **mcp:** one registry-driven telemetry contract at all three dispatch chokepoints ([#9525](https://github.com/JSONbored/loopover/issues/9525)) ([#9579](https://github.com/JSONbored/loopover/issues/9579)) ([06a090f](https://github.com/JSONbored/loopover/commit/06a090f9a6ab786165ab76fc741e2697c0ff1ae1)) +* **miner:** add a `claim reclaim` CLI to expire orphaned soft-claims ([#9717](https://github.com/JSONbored/loopover/issues/9717)) ([edf0883](https://github.com/JSONbored/loopover/commit/edf0883f15392c34ec590ace68cb104060e87b1c)), closes [#9686](https://github.com/JSONbored/loopover/issues/9686) +* **miner:** add calibration backtest-eligibility for ContributionProfile replay ([#8572](https://github.com/JSONbored/loopover/issues/8572)) ([346c183](https://github.com/JSONbored/loopover/commit/346c1839d89777af432ed5b6f9038593b944b8ef)) +* **miner:** run the target repo's own test/lint/build commands before opening a PR ([#8819](https://github.com/JSONbored/loopover/issues/8819)) ([e10abf2](https://github.com/JSONbored/loopover/commit/e10abf2f048b3c9c47ff40b4044acceea80efde1)) +* **miner:** wire deny-hook synthesis to a live consumer and give it an operator CLI ([#8806](https://github.com/JSONbored/loopover/issues/8806)) ([#8817](https://github.com/JSONbored/loopover/issues/8817)) ([33bacda](https://github.com/JSONbored/loopover/commit/33bacdab9dacc56a11dd26fabd1481fd9d99af36)) +* **orb:** salvageability axis — hold fixable, well-authored PRs instead of one-shot-closing ([#8986](https://github.com/JSONbored/loopover/issues/8986)) ([7fd84ff](https://github.com/JSONbored/loopover/commit/7fd84ffa37fc940d83c52eb265d5c4b8e6b8798a)) +* **selfhost:** PostHog AI observability across ORB and AMS ([#8623](https://github.com/JSONbored/loopover/issues/8623)) ([a9d9c0e](https://github.com/JSONbored/loopover/commit/a9d9c0e29e5a7ca480192ec21b5e1e72c7e33bb8)) + + +### Fixes + +* **build:** migrate loopover-miner/loopover-mcp to out-of-place dist/ emit ([#8590](https://github.com/JSONbored/loopover/issues/8590)) ([c896797](https://github.com/JSONbored/loopover/commit/c89679761d8392f267fd19b458574e0b6a9e49fa)) +* **engine:** surface discovery-index contract-version skew and actually send the version on the query wire ([#9631](https://github.com/JSONbored/loopover/issues/9631)) ([80827df](https://github.com/JSONbored/loopover/commit/80827dfed397bc0e4a657dfb4e71414125975601)), closes [#9615](https://github.com/JSONbored/loopover/issues/9615) +* **engine:** treat an Infinity WIP cap as uncapped, not collapsed to 0 ([#8945](https://github.com/JSONbored/loopover/issues/8945)) ([6aaea39](https://github.com/JSONbored/loopover/commit/6aaea393908631dbd0639d6d182c35c209ce6d40)) +* **eval:** commit each published score to the corpus a reader can download ([#9811](https://github.com/JSONbored/loopover/issues/9811)) ([bcdd2f8](https://github.com/JSONbored/loopover/commit/bcdd2f8285b21fa5ad4c52e20efa44f16e77947f)), closes [#9805](https://github.com/JSONbored/loopover/issues/9805) +* **miner:** add blocked_own_open_pr to the AttemptCliResult union ([#9384](https://github.com/JSONbored/loopover/issues/9384)) ([42e1015](https://github.com/JSONbored/loopover/commit/42e101538c8146ad8b3378af67dbf2e3bf5ff06d)) +* **miner:** AmsPolicySpec parse warnings are computed but never surfaced to the operator ([#8978](https://github.com/JSONbored/loopover/issues/8978)) ([3369ebc](https://github.com/JSONbored/loopover/commit/3369ebc0d11ab28fd90e4668e5999b61ca8cc864)), closes [#8853](https://github.com/JSONbored/loopover/issues/8853) +* **miner:** carry assignees through normalizeCandidate in opportunity-ranker ([#9343](https://github.com/JSONbored/loopover/issues/9343)) ([b554957](https://github.com/JSONbored/loopover/commit/b55495787b7a420072e219af4d6468b2d98fe149)) +* **miner:** compare-and-set the orphan reclaim so a stale probe cannot free a live re-acquired slot ([#8992](https://github.com/JSONbored/loopover/issues/8992)) ([8444812](https://github.com/JSONbored/loopover/commit/8444812e52f909aca383ee8785d891bc3364aeab)) +* **miner:** delete the orphaned portfolio chat-action duplicate ([#8662](https://github.com/JSONbored/loopover/issues/8662)) ([1cc2146](https://github.com/JSONbored/loopover/commit/1cc2146da4cc4232935c6274da5f85716d10b6fa)) +* **miner:** drop stale ProcessEnv casts on resolveReplaySnapshotDbPath ([#8768](https://github.com/JSONbored/loopover/issues/8768)) ([7b2104d](https://github.com/JSONbored/loopover/commit/7b2104df7caf64f30954c8d39e043c57cd8b53f4)), closes [#8642](https://github.com/JSONbored/loopover/issues/8642) +* **miner:** fail acquire() on an attempt_id/repo mismatch ([#8964](https://github.com/JSONbored/loopover/issues/8964)) ([266b07d](https://github.com/JSONbored/loopover/commit/266b07d1a408d4af656ae16fabce2c6e6aabfb69)) +* **miner:** fall back to global config.apiUrl in loopoverApiUrl ([#8937](https://github.com/JSONbored/loopover/issues/8937)) ([4dfe15d](https://github.com/JSONbored/loopover/commit/4dfe15d12e2b433e75cc75a909422bd21d708776)) +* **miner:** governor reputation-history read-modify-write is unguarded, unlike sibling scalar-state writes ([#8988](https://github.com/JSONbored/loopover/issues/8988)) ([62e6d25](https://github.com/JSONbored/loopover/commit/62e6d2541a9f6f38ed9ed952788db3b928b81e26)), closes [#8855](https://github.com/JSONbored/loopover/issues/8855) +* **miner:** governor-chokepoint-persisted's load-evaluate-save cycle isn't atomic ([#8993](https://github.com/JSONbored/loopover/issues/8993)) ([49a27c2](https://github.com/JSONbored/loopover/commit/49a27c2fb217ef75de329cafe8ab13ef3a11740e)), closes [#8856](https://github.com/JSONbored/loopover/issues/8856) +* **miner:** include laptop-state in doctor integrity and migrate store lists ([#8749](https://github.com/JSONbored/loopover/issues/8749)) ([713145f](https://github.com/JSONbored/loopover/commit/713145f467105685d3fd07042cb1fa5bbf570913)), closes [#8641](https://github.com/JSONbored/loopover/issues/8641) +* **miner:** log discovery-index query failures before failing open ([#9346](https://github.com/JSONbored/loopover/issues/9346)) ([ab6a44d](https://github.com/JSONbored/loopover/commit/ab6a44d31d0f3053bf99969428a1a5a56244ef54)) +* **miner:** make governor-run-halt's ledger recording a genuine transition detector ([#9367](https://github.com/JSONbored/loopover/issues/9367)) ([6c220b3](https://github.com/JSONbored/loopover/commit/6c220b3c86d0bc23f9f1ca93f2b4d9ab126d1ad9)) +* **miner:** printHelp() omits the working `deny-hooks` subcommand ([#8933](https://github.com/JSONbored/loopover/issues/8933)) ([1eeaae1](https://github.com/JSONbored/loopover/commit/1eeaae18c16d36e7e4805a887440006688f18377)), closes [#8851](https://github.com/JSONbored/loopover/issues/8851) +* **miner:** reclaim orphaned worktree allocations on every acquire() ([#8918](https://github.com/JSONbored/loopover/issues/8918)) ([eab6ecf](https://github.com/JSONbored/loopover/commit/eab6ecf8e9eaa6d36f06f4c7bfbc78c64633a349)) +* **miner:** refuse a duplicate attempt when this miner already has an open PR for the exact issue ([#8808](https://github.com/JSONbored/loopover/issues/8808)) ([#8815](https://github.com/JSONbored/loopover/issues/8815)) ([d5ec15a](https://github.com/JSONbored/loopover/commit/d5ec15a4465c4e268682532e245a0cbb45f91ff5)) +* **miner:** reject a portfolio-queue identifier containing the '::' composite-id separator ([#8925](https://github.com/JSONbored/loopover/issues/8925)) ([32ee72e](https://github.com/JSONbored/loopover/commit/32ee72e560117300a242993403a92af4219f2df3)) +* **miner:** replace never-registered `run` with `loop` in fleet-mode manifests ([#9524](https://github.com/JSONbored/loopover/issues/9524)) ([6bb8588](https://github.com/JSONbored/loopover/commit/6bb85884b555eeb7eadd5ee99e1dd56cd1c143b1)) +* **miner:** self-review-context never supplies recent-merged-PR history, contradicting its own "same fidelity" claim ([#8969](https://github.com/JSONbored/loopover/issues/8969)) ([987f7ce](https://github.com/JSONbored/loopover/commit/987f7ce7f5c5c0810e4d56c2e0279783fe021c55)), closes [#8852](https://github.com/JSONbored/loopover/issues/8852) +* **miner:** surface verification payload in attempt-cli JSON for verification_failed ([#9372](https://github.com/JSONbored/loopover/issues/9372)) ([a58ce3d](https://github.com/JSONbored/loopover/commit/a58ce3dc0525bff8b71b620dea044080dc74b25f)) +* **miner:** wire AMS policy resolver to the documented discovery order ([#9106](https://github.com/JSONbored/loopover/issues/9106)) ([f2f32cc](https://github.com/JSONbored/loopover/commit/f2f32cc7634dfda63af5bb2e9a8baf792ff153a5)), closes [#8863](https://github.com/JSONbored/loopover/issues/8863) +* **orb:** webhook redelivery, reputation cadence, DB retention, and gate severity fidelity ([#9237](https://github.com/JSONbored/loopover/issues/9237)) ([d2c8d27](https://github.com/JSONbored/loopover/commit/d2c8d2754b251736d69bb2a80460d65193545263)) +* **packaging:** ship the LICENSE @loopover/miner declares, and assert it everywhere ([#9787](https://github.com/JSONbored/loopover/issues/9787)) ([122a283](https://github.com/JSONbored/loopover/commit/122a283da3312190f0e361f7e8e345f4a1c296b9)) +* **review:** auto-clear stale manual-review lock-contention hold; sync engine gate-decision twin ([#9107](https://github.com/JSONbored/loopover/issues/9107)) ([6aacf08](https://github.com/JSONbored/loopover/commit/6aacf087b6fe487b9dd3131f7957d54041baa933)) +* **review:** default cross-issue copycat/reward-farming dedupe on for reward-eligible repos ([#9226](https://github.com/JSONbored/loopover/issues/9226)) ([b251912](https://github.com/JSONbored/loopover/commit/b2519125de34dd32d350c2dbeb26ef453d02a710)) + + +### Dependencies + +* The following workspace dependencies were updated + * dependencies + * @loopover/contract bumped from ^0.1.0 to ^3.17.0 + * @loopover/engine bumped from ^3.16.0 to ^3.17.0 + ## [3.15.2](https://github.com/JSONbored/loopover/compare/miner-v3.14.1...miner-v3.15.2) (2026-07-27) diff --git a/packages/loopover-miner/package.json b/packages/loopover-miner/package.json index 1d92c0cb26..963f96d176 100644 --- a/packages/loopover-miner/package.json +++ b/packages/loopover-miner/package.json @@ -1,6 +1,6 @@ { "name": "@loopover/miner", - "version": "3.15.2", + "version": "3.17.0", "license": "AGPL-3.0-only", "type": "module", "description": "Foundation CLI for the local LoopOver miner runtime.", @@ -47,8 +47,8 @@ "build:verify": "node --experimental-strip-types scripts/check-syntax.ts" }, "dependencies": { - "@loopover/contract": "^0.1.0", - "@loopover/engine": "^3.16.0", + "@loopover/contract": "^3.17.0", + "@loopover/engine": "^3.17.0", "@modelcontextprotocol/sdk": "1.29.0", "@sentry/node": "^10.67.0", "zod": "^4.4.3" From 14dfcc357618ac591b6fbe15baf0627575af17bd Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Wed, 29 Jul 2026 17:39:53 +0000 Subject: [PATCH 2/2] chore(release): sync miner engine-version pin --- packages/loopover-miner/expected-engine.version | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/loopover-miner/expected-engine.version b/packages/loopover-miner/expected-engine.version index ffaa55f596..3f67e25cea 100644 --- a/packages/loopover-miner/expected-engine.version +++ b/packages/loopover-miner/expected-engine.version @@ -1 +1 @@ -3.16.1 +3.17.0