Summary
A @loopover/engine release appears due.
Proposed version: 3.17.0
Latest tag: engine-v3.16.1
npm latest: 3.16.1
Package version in repo: 3.16.1
Unreleased engine-related commits: 22
Unreleased Commits
a858cbc fix(openapi): declare the predictedGate/dataQuality fields branch-analysis actually returns (api: drive the route↔spec ratchet to zero — migrate every route through the seam, retire the parallel security model #9531 ) (fix(openapi): declare the predictedGate/dataQuality fields branch-analysis actually returns (#9531) #9587 )
4ddd0ab chore(deps): clear all 11 high advisories — eslint 10, the discovery-index lock repair, c8 11 (Bump eslint to v10 to resolve brace-expansion/minimatch DoS chain (GHSA-mh99-v99m-4gvg) #8608 , Dependency audit cleanup: 7 pre-existing vulnerabilities + deprecation warnings #8588 ) (chore(deps): clear all 11 high advisories — eslint 10, the discovery-index lock repair, c8 11 (#8608, #8588) #9589 )
b543e1e feat(benchmark): maintainer action-space schema and proposal validator (benchmark: maintainer action-space schema + proposal validator #9260 ) (feat(benchmark): maintainer action-space schema and proposal validator (#9260) #9595 )
1819298 feat(benchmark): reversal-aware realized-history ground truth (benchmark: realized-history ground truth — reversal-aware outcomes per work unit #9261 ) (feat(benchmark): reversal-aware realized-history ground truth (#9261) #9598 )
534dfd5 feat(benchmark): multi-class proposal scorer on the shared primitives (benchmark: proposal scorer — multi-class over the existing confusion-matrix + Pareto primitives #9262 ) (feat(benchmark): multi-class proposal scorer on the shared primitives (#9262) #9599 )
8e3e4f5 fix(engine): share governor-ledger's repo-segment guard with the three normalizers that skipped it (fix(engine): share governor-ledger's repo-segment guard with the three normalizers that skipped it #9625 )
7ba6e9e fix(engine): correct computeOpportunityFreshness's contract and cover the non-finite clock (engine(freshness): computeOpportunityFreshness's documented range and mirror ref are wrong #9618 ) (fix(engine): correct computeOpportunityFreshness's contract and cover the non-finite clock #9626 )
9942512 feat(benchmark): anti-overfit controls — repo-level seeded split, caps, rotation (benchmark: anti-overfit controls — seeded held-out, per-repo splits, submission caps, rotation #9263 ) (feat(benchmark): anti-overfit controls — repo-level seeded split, caps, rotation (#9263) #9600 )
676ba3c fix(engine): isolate getTenantConfig reads and normalize tenant config (engine(tenant-config): getTenantConfig hands out the store's live config object #9614 ) (fix(engine): isolate getTenantConfig reads and normalize tenant config #9627 )
80827df fix(engine): surface discovery-index contract-version skew and actually send the version on the query wire (fix(engine): surface discovery-index contract-version skew and actually send the version on the query wire #9631 )
5aa94b7 fix(engine): validate the repo and PR number behind buildResultsPayload's customer link (engine(results): buildResultsPayload builds the customer-facing PR link from unvalidated input #9611 ) (fix(engine): validate the repo and PR number behind buildResultsPayload's customer link #9632 )
d997bac fix(engine): keep renderRepoMap's output within maxOutputChars including the marker (fix(engine): keep renderRepoMap's output within maxOutputChars including the marker (#9617) #9633 )
c086363 fix(engine): accept the { kind: 'existing', repo } IdeaTarget shape in validateIdeaSubmission (fix(engine): accept the { kind: 'existing', repo } IdeaTarget shape in validateIdeaSubmission (#9609) #9634 )
61ab43e fix(engine): drop opportunity-metadata's blanket v8-ignore directives and branch-cover the scoring logic they hid (fix(engine): drop opportunity-metadata's blanket v8-ignore directives and branch-cover the scoring logic they hid #9635 )
3200abc feat(benchmark): untrusted candidate sandbox policy and fail-closed run verdict (benchmark: untrusted candidate-agent execution — sandbox, limits, attested when hardware allows #9264 ) (feat(benchmark): untrusted candidate sandbox policy and fail-closed run verdict (#9264) #9606 )
f36dc51 ams(mcp): the AMS management tool family — governor-gated mutations, doctor, tenant health (ams(mcp): AMS management tool family — governor-gated mutations, doctor split, hosted tenant tools #9523 ) (ams(mcp): the AMS management tool family — governor-gated mutations, doctor, tenant health (#9523) #9607 )
7ffb51e feat(proof): public per-repo proof summary, endpoint and README badge (Public proof page /proof/:owner/:repo + README badge — the shareable verification surface #9569 ) (feat(proof): public per-repo proof summary, endpoint and README badge (#9569) #9608 )
ee98373 fix(ci): normalize committed CRLF to LF and name the failure for what it is (fix(ci): normalize committed CRLF to LF and name the failure for what it is #9799 )
84c2462 feat(gate): gate.ignoredCheckRuns — exclude a third-party check from CI resolution entirely (feat(gate): gate.ignoredCheckRuns — exclude a third-party check from CI resolution entirely #9813 )
bcdd2f8 fix(eval): commit each published score to the corpus a reader can download (fix(eval): commit each published score to the corpus a reader can download #9811 )
2755994 fix(eval): stamp the in-Worker threshold backtest with its corpus freeze point (fix(eval): stamp the in-Worker threshold backtest with its corpus freeze point #9804 )
a65655c feat(gate): choose provider, model, effort and self-consistency runs — per repo, and escalated on guarded paths (feat(gate): choose provider, model, effort and self-consistency runs — per repo, and escalated on guarded paths #9821 )
Changed Files
.claude/skills/contributing-to-loopover/reference.md
.claude/skills/contributing-to-loopover/SKILL.md
.gitattributes
.github/workflows/ci.yml
.loopover.yml.example
apps/loopover-miner-ui/package.json
apps/loopover-ui/content/docs/verify-this-review.mdx
apps/loopover-ui/eslint.config.ts
apps/loopover-ui/package.json
apps/loopover-ui/public/openapi.json
apps/loopover-ui/src/lib/mcp-tool-reference.ts
codecov.yml
config/examples/loopover.full.yml
package-lock.json
packages/discovery-index/package.json
packages/loopover-contract/src/api-schemas.ts
packages/loopover-contract/src/tools/ams-tenant.ts
packages/loopover-contract/src/tools/index.ts
packages/loopover-contract/src/tools/miner-ops.ts
packages/loopover-engine/package.json
packages/loopover-engine/src/calibration/backtest-checksum.ts
packages/loopover-engine/src/calibration/benchmark-anti-overfit.ts
packages/loopover-engine/src/calibration/benchmark-ground-truth.ts
packages/loopover-engine/src/calibration/benchmark-proposal.ts
packages/loopover-engine/src/calibration/benchmark-score.ts
packages/loopover-engine/src/calibration/candidate-sandbox.ts
packages/loopover-engine/src/calibration/signal-tracking.ts
packages/loopover-engine/src/discovery-index-contract.ts
packages/loopover-engine/src/discovery-soft-claim.ts
packages/loopover-engine/src/focus-manifest.ts
packages/loopover-engine/src/governor-ledger.ts
packages/loopover-engine/src/idea-intake.ts
packages/loopover-engine/src/index.ts
packages/loopover-engine/src/miner-prediction-metrics.ts
packages/loopover-engine/src/miner/repo-map.ts
packages/loopover-engine/src/opportunity-freshness.ts
packages/loopover-engine/src/opportunity-metadata.ts
packages/loopover-engine/src/predicted-gate.ts
packages/loopover-engine/src/repo-segment.ts
packages/loopover-engine/src/results-payload.ts
packages/loopover-engine/src/signals/issue-quality-report.ts
packages/loopover-engine/src/tenant-config.ts
packages/loopover-engine/src/types/manifest-deps-types.ts
packages/loopover-engine/src/types/predicted-gate-types.ts
packages/loopover-engine/test/backtest-checksum.test.ts
packages/loopover-engine/test/benchmark-anti-overfit.test.ts
packages/loopover-engine/test/benchmark-ground-truth.test.ts
packages/loopover-engine/test/benchmark-proposal.test.ts
packages/loopover-engine/test/benchmark-score.test.ts
packages/loopover-engine/test/candidate-sandbox.test.ts
packages/loopover-engine/test/discovery-index-contract-version.test.ts
packages/loopover-engine/test/focus-manifest-review-knobs.test.ts
packages/loopover-engine/test/idea-intake.test.ts
packages/loopover-engine/test/issue-quality-report.test.ts
packages/loopover-engine/test/miner-prediction-metrics.test.ts
packages/loopover-engine/test/opportunity-freshness.test.ts
packages/loopover-engine/test/opportunity-metadata.test.ts
packages/loopover-engine/test/repo-map.test.ts
packages/loopover-engine/test/repo-segment.test.ts
packages/loopover-engine/test/results-payload.test.ts
packages/loopover-engine/test/tenant-config.test.ts
packages/loopover-miner/bin/loopover-miner-mcp.ts
packages/loopover-miner/lib/chat-miner-ops-actions.ts
packages/loopover-miner/lib/discovery-index-client.ts
packages/loopover-miner/lib/miner-ops-actions.ts
packages/loopover-miner/lib/purge-cli.ts
packages/loopover-miner/lib/signal-tracking-store.ts
packages/loopover-miner/README.md
review-enrichment/package-lock.json
review-enrichment/package.json
review-enrichment/src/analyzers/binary-extensions.ts
review-enrichment/test/binary-extensions.test.ts
review-enrichment/test/codeowners.test.ts
review-enrichment/test/debug-leftover.test.ts
review-enrichment/test/dependency-diff.test.ts
review-enrichment/test/floating-promise.test.ts
review-enrichment/test/hardcoded-url.test.ts
review-enrichment/test/i18n-regression.test.ts
review-enrichment/test/size-smell.test.ts
scripts/attested-backtest-run.ts
scripts/backtest-corpus-export-core.ts
scripts/backtest-logic-check.ts
scripts/check-docs-drift.ts
scripts/engine-coverage.ts
scripts/rees-coverage.ts
scripts/replay-runner-image-manifest.json
scripts/replay-runner/Dockerfile
src/api/proof-badge.ts
src/api/routes.ts
src/auth/route-auth.ts
src/env.d.ts
src/github/backfill.ts
src/mcp/server.ts
src/openapi/schemas.ts
src/openapi/spec.ts
src/orb/control-plane-client.ts
src/queue/ai-review-orchestration.ts
src/queue/ci-resolution.ts
src/queue/processors.ts
src/review/changed-files-diff-link.ts
src/review/eval-score-records.ts
src/review/inline-comment-label.ts
src/review/inline-comment-range.ts
src/review/inline-suggestion-anchor.ts
src/review/proof-summary.ts
src/review/public-eval-corpus.ts
src/review/review-knobs.ts
src/review/signal-tracking-wire.ts
src/services/agent-action-executor.ts
src/services/agent-approval-queue.ts
src/services/ai-review.ts
src/services/threshold-backtest-run.ts
src/signals/focus-manifest-loader.ts
src/signals/focus-manifest.ts
src/types.ts
test/integration/public-eval-scores-route.test.ts
test/unit/agent-action-executor.test.ts
test/unit/agent-approval-queue.test.ts
test/unit/backfill-2.test.ts
test/unit/backtest-checksum.test.ts
test/unit/changed-files-diff-link.test.ts
test/unit/ci-resolution.test.ts
test/unit/codecov-ignore-type-only.test.ts
test/unit/configured-gate-blocker-signals.test.ts
test/unit/discovery-index-contract.test.ts
test/unit/discovery-soft-claim.test.ts
test/unit/eval-score-records.test.ts
test/unit/focus-manifest.test.ts
test/unit/idea-intake-bridge.test.ts
test/unit/inline-comment-label.test.ts
test/unit/inline-comment-range.test.ts
test/unit/inline-comments-select.test.ts
test/unit/inline-suggestion-anchor.test.ts
test/unit/issue-quality-report-package.test.ts
test/unit/linked-issue-satisfaction-run.test.ts
test/unit/mcp-automation-state.test.ts
test/unit/mcp-management-tools.test.ts
test/unit/miner-attempt-cli.test.ts
test/unit/miner-discover-cli-eligibility-metadata.test.ts
test/unit/miner-discover-cli.test.ts
test/unit/miner-discovery-index-client.test.ts
test/unit/miner-mcp-governor-gating.test.ts
test/unit/miner-mcp-ops-tools.test.ts
test/unit/miner-ops-actions.test.ts
test/unit/openapi-schema-type-parity.test.ts
test/unit/openapi-settings-schema-parity.test.ts
test/unit/opportunity-metadata.test.ts
test/unit/pr-detail-durable-cache.test.ts
test/unit/proof-summary.test.ts
test/unit/public-eval-corpus.test.ts
test/unit/public-rule-precision.test.ts
test/unit/queue-2.test.ts
test/unit/queue-4.test.ts
test/unit/queue-5.test.ts
test/unit/queue.test.ts
test/unit/repo-map.test.ts
test/unit/repo-segment.test.ts
test/unit/results-payload.test.ts
test/unit/review-knobs.test.ts
test/unit/routes-agent-approval.test.ts
test/unit/self-consistency.test.ts
test/unit/signal-tracking-wire.test.ts
test/unit/tenant-config.test.ts
test/unit/threshold-backtest-run.test.ts
Release-Prep Checklist
Summary
A @loopover/engine release appears due.
3.17.0engine-v3.16.13.16.13.16.122Unreleased Commits
a858cbcfix(openapi): declare the predictedGate/dataQuality fields branch-analysis actually returns (api: drive the route↔spec ratchet to zero — migrate every route through the seam, retire the parallel security model #9531) (fix(openapi): declare the predictedGate/dataQuality fields branch-analysis actually returns (#9531) #9587)4ddd0abchore(deps): clear all 11 high advisories — eslint 10, the discovery-index lock repair, c8 11 (Bump eslint to v10 to resolve brace-expansion/minimatch DoS chain (GHSA-mh99-v99m-4gvg) #8608, Dependency audit cleanup: 7 pre-existing vulnerabilities + deprecation warnings #8588) (chore(deps): clear all 11 high advisories — eslint 10, the discovery-index lock repair, c8 11 (#8608, #8588) #9589)b543e1efeat(benchmark): maintainer action-space schema and proposal validator (benchmark: maintainer action-space schema + proposal validator #9260) (feat(benchmark): maintainer action-space schema and proposal validator (#9260) #9595)1819298feat(benchmark): reversal-aware realized-history ground truth (benchmark: realized-history ground truth — reversal-aware outcomes per work unit #9261) (feat(benchmark): reversal-aware realized-history ground truth (#9261) #9598)534dfd5feat(benchmark): multi-class proposal scorer on the shared primitives (benchmark: proposal scorer — multi-class over the existing confusion-matrix + Pareto primitives #9262) (feat(benchmark): multi-class proposal scorer on the shared primitives (#9262) #9599)8e3e4f5fix(engine): share governor-ledger's repo-segment guard with the three normalizers that skipped it (fix(engine): share governor-ledger's repo-segment guard with the three normalizers that skipped it #9625)7ba6e9efix(engine): correct computeOpportunityFreshness's contract and cover the non-finite clock (engine(freshness): computeOpportunityFreshness's documented range and mirror ref are wrong #9618) (fix(engine): correct computeOpportunityFreshness's contract and cover the non-finite clock #9626)9942512feat(benchmark): anti-overfit controls — repo-level seeded split, caps, rotation (benchmark: anti-overfit controls — seeded held-out, per-repo splits, submission caps, rotation #9263) (feat(benchmark): anti-overfit controls — repo-level seeded split, caps, rotation (#9263) #9600)676ba3cfix(engine): isolate getTenantConfig reads and normalize tenant config (engine(tenant-config):getTenantConfighands out the store's live config object #9614) (fix(engine): isolate getTenantConfig reads and normalize tenant config #9627)80827dffix(engine): surface discovery-index contract-version skew and actually send the version on the query wire (fix(engine): surface discovery-index contract-version skew and actually send the version on the query wire #9631)5aa94b7fix(engine): validate the repo and PR number behind buildResultsPayload's customer link (engine(results):buildResultsPayloadbuilds the customer-facing PR link from unvalidated input #9611) (fix(engine): validate the repo and PR number behind buildResultsPayload's customer link #9632)d997bacfix(engine): keep renderRepoMap's output within maxOutputChars including the marker (fix(engine): keep renderRepoMap's output within maxOutputChars including the marker (#9617) #9633)c086363fix(engine): accept the { kind: 'existing', repo } IdeaTarget shape in validateIdeaSubmission (fix(engine): accept the { kind: 'existing', repo } IdeaTarget shape in validateIdeaSubmission (#9609) #9634)61ab43efix(engine): drop opportunity-metadata's blanket v8-ignore directives and branch-cover the scoring logic they hid (fix(engine): drop opportunity-metadata's blanket v8-ignore directives and branch-cover the scoring logic they hid #9635)3200abcfeat(benchmark): untrusted candidate sandbox policy and fail-closed run verdict (benchmark: untrusted candidate-agent execution — sandbox, limits, attested when hardware allows #9264) (feat(benchmark): untrusted candidate sandbox policy and fail-closed run verdict (#9264) #9606)f36dc51ams(mcp): the AMS management tool family — governor-gated mutations, doctor, tenant health (ams(mcp): AMS management tool family — governor-gated mutations, doctor split, hosted tenant tools #9523) (ams(mcp): the AMS management tool family — governor-gated mutations, doctor, tenant health (#9523) #9607)7ffb51efeat(proof): public per-repo proof summary, endpoint and README badge (Public proof page /proof/:owner/:repo + README badge — the shareable verification surface #9569) (feat(proof): public per-repo proof summary, endpoint and README badge (#9569) #9608)ee98373fix(ci): normalize committed CRLF to LF and name the failure for what it is (fix(ci): normalize committed CRLF to LF and name the failure for what it is #9799)84c2462feat(gate): gate.ignoredCheckRuns — exclude a third-party check from CI resolution entirely (feat(gate): gate.ignoredCheckRuns — exclude a third-party check from CI resolution entirely #9813)bcdd2f8fix(eval): commit each published score to the corpus a reader can download (fix(eval): commit each published score to the corpus a reader can download #9811)2755994fix(eval): stamp the in-Worker threshold backtest with its corpus freeze point (fix(eval): stamp the in-Worker threshold backtest with its corpus freeze point #9804)a65655cfeat(gate): choose provider, model, effort and self-consistency runs — per repo, and escalated on guarded paths (feat(gate): choose provider, model, effort and self-consistency runs — per repo, and escalated on guarded paths #9821)Changed Files
.claude/skills/contributing-to-loopover/reference.md.claude/skills/contributing-to-loopover/SKILL.md.gitattributes.github/workflows/ci.yml.loopover.yml.exampleapps/loopover-miner-ui/package.jsonapps/loopover-ui/content/docs/verify-this-review.mdxapps/loopover-ui/eslint.config.tsapps/loopover-ui/package.jsonapps/loopover-ui/public/openapi.jsonapps/loopover-ui/src/lib/mcp-tool-reference.tscodecov.ymlconfig/examples/loopover.full.ymlpackage-lock.jsonpackages/discovery-index/package.jsonpackages/loopover-contract/src/api-schemas.tspackages/loopover-contract/src/tools/ams-tenant.tspackages/loopover-contract/src/tools/index.tspackages/loopover-contract/src/tools/miner-ops.tspackages/loopover-engine/package.jsonpackages/loopover-engine/src/calibration/backtest-checksum.tspackages/loopover-engine/src/calibration/benchmark-anti-overfit.tspackages/loopover-engine/src/calibration/benchmark-ground-truth.tspackages/loopover-engine/src/calibration/benchmark-proposal.tspackages/loopover-engine/src/calibration/benchmark-score.tspackages/loopover-engine/src/calibration/candidate-sandbox.tspackages/loopover-engine/src/calibration/signal-tracking.tspackages/loopover-engine/src/discovery-index-contract.tspackages/loopover-engine/src/discovery-soft-claim.tspackages/loopover-engine/src/focus-manifest.tspackages/loopover-engine/src/governor-ledger.tspackages/loopover-engine/src/idea-intake.tspackages/loopover-engine/src/index.tspackages/loopover-engine/src/miner-prediction-metrics.tspackages/loopover-engine/src/miner/repo-map.tspackages/loopover-engine/src/opportunity-freshness.tspackages/loopover-engine/src/opportunity-metadata.tspackages/loopover-engine/src/predicted-gate.tspackages/loopover-engine/src/repo-segment.tspackages/loopover-engine/src/results-payload.tspackages/loopover-engine/src/signals/issue-quality-report.tspackages/loopover-engine/src/tenant-config.tspackages/loopover-engine/src/types/manifest-deps-types.tspackages/loopover-engine/src/types/predicted-gate-types.tspackages/loopover-engine/test/backtest-checksum.test.tspackages/loopover-engine/test/benchmark-anti-overfit.test.tspackages/loopover-engine/test/benchmark-ground-truth.test.tspackages/loopover-engine/test/benchmark-proposal.test.tspackages/loopover-engine/test/benchmark-score.test.tspackages/loopover-engine/test/candidate-sandbox.test.tspackages/loopover-engine/test/discovery-index-contract-version.test.tspackages/loopover-engine/test/focus-manifest-review-knobs.test.tspackages/loopover-engine/test/idea-intake.test.tspackages/loopover-engine/test/issue-quality-report.test.tspackages/loopover-engine/test/miner-prediction-metrics.test.tspackages/loopover-engine/test/opportunity-freshness.test.tspackages/loopover-engine/test/opportunity-metadata.test.tspackages/loopover-engine/test/repo-map.test.tspackages/loopover-engine/test/repo-segment.test.tspackages/loopover-engine/test/results-payload.test.tspackages/loopover-engine/test/tenant-config.test.tspackages/loopover-miner/bin/loopover-miner-mcp.tspackages/loopover-miner/lib/chat-miner-ops-actions.tspackages/loopover-miner/lib/discovery-index-client.tspackages/loopover-miner/lib/miner-ops-actions.tspackages/loopover-miner/lib/purge-cli.tspackages/loopover-miner/lib/signal-tracking-store.tspackages/loopover-miner/README.mdreview-enrichment/package-lock.jsonreview-enrichment/package.jsonreview-enrichment/src/analyzers/binary-extensions.tsreview-enrichment/test/binary-extensions.test.tsreview-enrichment/test/codeowners.test.tsreview-enrichment/test/debug-leftover.test.tsreview-enrichment/test/dependency-diff.test.tsreview-enrichment/test/floating-promise.test.tsreview-enrichment/test/hardcoded-url.test.tsreview-enrichment/test/i18n-regression.test.tsreview-enrichment/test/size-smell.test.tsscripts/attested-backtest-run.tsscripts/backtest-corpus-export-core.tsscripts/backtest-logic-check.tsscripts/check-docs-drift.tsscripts/engine-coverage.tsscripts/rees-coverage.tsscripts/replay-runner-image-manifest.jsonscripts/replay-runner/Dockerfilesrc/api/proof-badge.tssrc/api/routes.tssrc/auth/route-auth.tssrc/env.d.tssrc/github/backfill.tssrc/mcp/server.tssrc/openapi/schemas.tssrc/openapi/spec.tssrc/orb/control-plane-client.tssrc/queue/ai-review-orchestration.tssrc/queue/ci-resolution.tssrc/queue/processors.tssrc/review/changed-files-diff-link.tssrc/review/eval-score-records.tssrc/review/inline-comment-label.tssrc/review/inline-comment-range.tssrc/review/inline-suggestion-anchor.tssrc/review/proof-summary.tssrc/review/public-eval-corpus.tssrc/review/review-knobs.tssrc/review/signal-tracking-wire.tssrc/services/agent-action-executor.tssrc/services/agent-approval-queue.tssrc/services/ai-review.tssrc/services/threshold-backtest-run.tssrc/signals/focus-manifest-loader.tssrc/signals/focus-manifest.tssrc/types.tstest/integration/public-eval-scores-route.test.tstest/unit/agent-action-executor.test.tstest/unit/agent-approval-queue.test.tstest/unit/backfill-2.test.tstest/unit/backtest-checksum.test.tstest/unit/changed-files-diff-link.test.tstest/unit/ci-resolution.test.tstest/unit/codecov-ignore-type-only.test.tstest/unit/configured-gate-blocker-signals.test.tstest/unit/discovery-index-contract.test.tstest/unit/discovery-soft-claim.test.tstest/unit/eval-score-records.test.tstest/unit/focus-manifest.test.tstest/unit/idea-intake-bridge.test.tstest/unit/inline-comment-label.test.tstest/unit/inline-comment-range.test.tstest/unit/inline-comments-select.test.tstest/unit/inline-suggestion-anchor.test.tstest/unit/issue-quality-report-package.test.tstest/unit/linked-issue-satisfaction-run.test.tstest/unit/mcp-automation-state.test.tstest/unit/mcp-management-tools.test.tstest/unit/miner-attempt-cli.test.tstest/unit/miner-discover-cli-eligibility-metadata.test.tstest/unit/miner-discover-cli.test.tstest/unit/miner-discovery-index-client.test.tstest/unit/miner-mcp-governor-gating.test.tstest/unit/miner-mcp-ops-tools.test.tstest/unit/miner-ops-actions.test.tstest/unit/openapi-schema-type-parity.test.tstest/unit/openapi-settings-schema-parity.test.tstest/unit/opportunity-metadata.test.tstest/unit/pr-detail-durable-cache.test.tstest/unit/proof-summary.test.tstest/unit/public-eval-corpus.test.tstest/unit/public-rule-precision.test.tstest/unit/queue-2.test.tstest/unit/queue-4.test.tstest/unit/queue-5.test.tstest/unit/queue.test.tstest/unit/repo-map.test.tstest/unit/repo-segment.test.tstest/unit/results-payload.test.tstest/unit/review-knobs.test.tstest/unit/routes-agent-approval.test.tstest/unit/self-consistency.test.tstest/unit/signal-tracking-wire.test.tstest/unit/tenant-config.test.tstest/unit/threshold-backtest-run.test.tsRelease-Prep Checklist
packages/loopover-engine/package.jsonto3.17.0npm run build --workspace @loopover/enginenpm run test:engine-packnpm run actionlintengine-v3.17.0