Skip to content

feat(review): add opt-in one-shot synchronize-amendment close policy - #7715

Merged
JSONbored merged 1 commit into
mainfrom
worktree-oneshot-synchronize-gate
Jul 21, 2026
Merged

feat(review): add opt-in one-shot synchronize-amendment close policy#7715
JSONbored merged 1 commit into
mainfrom
worktree-oneshot-synchronize-gate

Conversation

@JSONbored

Copy link
Copy Markdown
Owner

Summary

  • Adds an opt-in settings.synchronizeClosePolicy ("off" | "close", config-as-code only via .loopover.yml — no dashboard/DB column) that closes a contributor's own PR immediately if they push an additional commit before it's been merged or closed, instead of letting a slow CI run grant unlimited free re-push attempts.
  • New maybeCloseSynchronizeAmendment guard in src/queue/review-evasion.ts (a 6th sibling alongside the existing 5 close-enforcement guards there), dispatched from handlePullRequestWebhookEvent right after settings resolve — before the automation-bot-skip check, the Promise.all fetch, and prReadyForReview's CI-wait — so it short-circuits ahead of that work instead of waiting on CI at all.
  • Only fires when the pusher is the PR's own author: the engine's own rebase-if-behind push (prReadyForReview's forceUpdateBranch) is attributed to the App's own bot identity on the resulting synchronize webhook, so it can never match, and the guard never self-closes a PR it's rebasing. Owner/admin/protected-automation-authors/autoCloseExemptLogins are exempt, same as the sibling guards.
  • Shares autoCloseExemptLogins/reviewEvasionLabel/reviewEvasionComment with the existing reviewEvasionProtection/draftPrClosePolicy family. Deliberately does not record a moderation strike — this is a blanket repo policy choice against an otherwise-ordinary GitHub action (pushing a follow-up commit), not a detected abuse pattern, mirroring draftPrClosePolicy's reasoning.
  • Wired end-to-end: RepositorySettings type, DB-layer hardcoded default (config-as-code only), OpenAPI schema (+ regenerated openapi.json), the .loopover.yml manifest parser (packages/loopover-engine), and both example config files.

Scope

  • The PR title follows type(scope): short summary Conventional Commit format, for example fix(api): restore profile access checks.
  • This PR is focused and does not mix unrelated backend, UI, MCP, docs, dependency, and deploy changes.
  • This follows CONTRIBUTING.md and does not reintroduce GitHub Pages, VitePress, site/, or CNAME.
  • I linked a currently open issue this PR resolves — N/A, see note below.

Validation

  • git diff --check
  • npm run actionlint
  • npm run typecheck
  • npm run test:coverage locally; traced every changed line/branch against the lcov report by hand and iterated tests until only pre-existing, untouched lines remained uncovered
  • npm run test:workers
  • npm run build:mcp
  • npm run test:mcp-pack
  • npm run ui:openapi:check
  • npm run ui:lint
  • npm run ui:typecheck
  • npm run ui:build
  • npm audit --audit-level=moderate
  • New or changed behavior has unit/integration tests for new branches, fallback paths, and sanitizer boundaries (16 new tests: off/close, close+comment+label, moderation-strike absence, close-API-failure, autoCloseExemptLogins, write-collaborator exemption, protected-automation-author exemption, third-party pusher, the engine's-own-rebase exclusion, no-sender/no-author/no-headSha defensive paths, paused-agent denial, comment/label unset-vs-explicit-false/null)

Full npm run test:ci also run locally end to end (1044 test files / 19,737 tests, 0 failures) before opening this.

If any required check was skipped, explain why:

  • No linked issue: this is a maintainer-directed change, not a contributor PR against a filed issue — the linked-issue requirement is a contributor-side protection in this repo's own gate design.

Safety

  • No secrets, wallet details, hotkeys, coldkeys, user PATs, private keys, raw trust scores, private rankings, or private maintainer evidence are exposed.
  • Public GitHub text (the new close-explanation comment) stays sanitized and low-noise.
  • Auth/cookie/CORS/GitHub App/Cloudflare/session negative-path tests — N/A, this doesn't touch auth/session/cookie/CORS logic.
  • API/OpenAPI/MCP behavior is updated and tested where needed (openapi.json regenerated; ui:openapi:settings-parity passes).
  • Public docs are updated where needed (.loopover.yml.example / config/examples/loopover.full.yml, both off-by-default and documented); changelog untouched per house rule.

UI Evidence

N/A — no UI/frontend changes.

Notes

  • Filed a separate follow-up (not bundled into this PR) for a pre-existing gap found while researching this: draftPrClosePolicy is documented as .loopover.yml-settable in both example files and its own doc comment, but the manifest parser never actually reads it — currently a silent no-op via YAML.
  • Actually turning this on for JSONbored's own repos happens via the private ORB server config, not this public repo's .loopover.yml — a separate step after this merges and a new self-host image deploys.

Adds settings.synchronizeClosePolicy ("off" | "close", default "off",
config-as-code only via .loopover.yml) so a repo can opt into closing a
contributor's PR immediately when they push an additional commit before
it is merged or closed, instead of letting a slow CI run grant unlimited
free re-push attempts. Mirrors draftPrClosePolicy's shape and reuses its
autoCloseExemptLogins/reviewEvasionLabel/reviewEvasionComment settings.

Only fires when the pusher is the PR's own author: the engine's own
rebase-if-behind push is attributed to the App's own bot identity on the
resulting synchronize webhook, so it never matches and the guard never
self-closes a PR it is rebasing.
@JSONbored JSONbored self-assigned this Jul 21, 2026
@cloudflare-workers-and-pages

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 a5c1542 Commit Preview URL

Branch Preview URL
Jul 21 2026, 10:42 AM

@superagent-security

Copy link
Copy Markdown
Contributor

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

@codecov

codecov Bot commented Jul 21, 2026

Copy link
Copy Markdown

Bundle Report

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

Detailed changes
Bundle name Size Change
loopover-ui 7.43MB 1.25kB (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-CgbmMxB8.js (New) 2.17MB 2.17MB 100.0% 🚀
assets/tanstack-vendor-DJOteXDm.js (New) 810.35kB 810.35kB 100.0% 🚀
openapi.json 674 bytes 524.19kB 0.13%
assets/docs.fumadocs-spike-api-reference-DYt3ELJG.js (New) 442.92kB 442.92kB 100.0% 🚀
assets/AgentScalarChatInterface.vue-C5MYb6Hc.js (New) 201.71kB 201.71kB 100.0% 🚀
assets/modal-kYXy0Qz0.js (New) 184.38kB 184.38kB 100.0% 🚀
assets/client--5FtAXG6.js (New) 146.06kB 146.06kB 100.0% 🚀
assets/maintainer-panel-BovHlEpD.js (New) 78.53kB 78.53kB 100.0% 🚀
assets/ui-vendor-DdRLlszD.js (New) 57.04kB 57.04kB 100.0% 🚀
assets/routes-CQvsiI-K.js (New) 34.83kB 34.83kB 100.0% 🚀
assets/owner-panel-Cti3GtR4.js (New) 27.26kB 27.26kB 100.0% 🚀
assets/app-dwphOv6d.js (New) 25.65kB 25.65kB 100.0% 🚀
assets/app.runs-CqeIHxrR.js (New) 23.55kB 23.55kB 100.0% 🚀
assets/miner-panel-DiijTl4b.js (New) 20.25kB 20.25kB 100.0% 🚀
assets/api._op-B0AnLlZk.js (New) 17.55kB 17.55kB 100.0% 🚀
assets/self-hosting-docs-audit-DmtrTOZ2.js (New) 16.63kB 16.63kB 100.0% 🚀
assets/app.index-DlgrPN2b.js (New) 15.62kB 15.62kB 100.0% 🚀
assets/playground-panel-Ae_zFzjd.js (New) 14.49kB 14.49kB 100.0% 🚀
assets/app.audit-1TysuWV-.js (New) 10.11kB 10.11kB 100.0% 🚀
assets/extension-CbVU_7qf.js (New) 10.04kB 10.04kB 100.0% 🚀
assets/app.config-generator-CAM3A-jQ.js (New) 9.88kB 9.88kB 100.0% 🚀
assets/fairness-4_htcCys.js (New) 8.34kB 8.34kB 100.0% 🚀
assets/maintainers-CA-XrKNK.js (New) 8.03kB 8.03kB 100.0% 🚀
assets/miners-C69x5Tw8.js (New) 7.85kB 7.85kB 100.0% 🚀
assets/agents-CAVDSSxa.js (New) 7.76kB 7.76kB 100.0% 🚀
assets/commands-panel-B2hcS50u.js (New) 6.65kB 6.65kB 100.0% 🚀
assets/maintainer-workflow-CsYcNN-D.js (New) 6.5kB 6.5kB 100.0% 🚀
assets/roadmap-DC83e5dQ.js (New) 6.33kB 6.33kB 100.0% 🚀
assets/digest-panel-DIv45i1q.js (New) 6.18kB 6.18kB 100.0% 🚀
assets/repos._owner._repo.quality-C_RBBNu_.js (New) 6.14kB 6.14kB 100.0% 🚀
assets/docs.index-DtQ9IqFp.js (New) 5.55kB 5.55kB 100.0% 🚀
assets/api.index-priZob9C.js (New) 4.7kB 4.7kB 100.0% 🚀
assets/api-CHN8pmbV.js (New) 2.69kB 2.69kB 100.0% 🚀
assets/docs-FHLwcCdn.js (New) 2.67kB 2.67kB 100.0% 🚀
assets/app.workbench-CQm3g8Rp.js (New) 1.58kB 1.58kB 100.0% 🚀
assets/session-D5UTtbjX.js (New) 1.45kB 1.45kB 100.0% 🚀
assets/tooltip-CSE5R9Iv.js (New) 1.45kB 1.45kB 100.0% 🚀
assets/tabs-M_OIWnps.js (New) 1.39kB 1.39kB 100.0% 🚀
assets/app.repos-lmmW6Gxr.js (New) 1.07kB 1.07kB 100.0% 🚀
assets/input-B-ZTAaoz.js (New) 796 bytes 796 bytes 100.0% 🚀
assets/file-cog-BtSYcD5y.js (New) 758 bytes 758 bytes 100.0% 🚀
assets/docs.ai-summaries-BUvY0sqf.js (New) 506 bytes 506 bytes 100.0% 🚀
assets/app.maintainer-DoMtFymt.js (New) 502 bytes 502 bytes 100.0% 🚀
assets/docs.branch-analysis-Bdss7jpq.js (New) 499 bytes 499 bytes 100.0% 🚀
assets/docs.scoreability-B_dzQhgw.js (New) 499 bytes 499 bytes 100.0% 🚀
assets/docs.upstream-drift-tHcEkw-f.js (New) 499 bytes 499 bytes 100.0% 🚀
assets/docs.federated-fleet-intelligence-CxBiUbGb.js (New) 498 bytes 498 bytes 100.0% 🚀
assets/docs.maintainer-install-trust-BqY0Ko0v.js (New) 498 bytes 498 bytes 100.0% 🚀
assets/docs.self-hosting-ai-providers-CbPcuPor.js (New) 498 bytes 498 bytes 100.0% 🚀
assets/docs.self-hosting-backup-scaling-QVihOEih.js (New) 498 bytes 498 bytes 100.0% 🚀
assets/docs.self-hosting-configuration-BICaDTjU.js (New) 498 bytes 498 bytes 100.0% 🚀
assets/docs.self-hosting-docs-audit-D4ojlN97.js (New) 498 bytes 498 bytes 100.0% 🚀
assets/docs.self-hosting-github-app-DGtHRzSl.js (New) 498 bytes 498 bytes 100.0% 🚀
assets/docs.self-hosting-quickstart-msKXWAGJ.js (New) 498 bytes 498 bytes 100.0% 🚀
assets/docs.self-hosting-rag-Db09j_oe.js (New) 498 bytes 498 bytes 100.0% 🚀
assets/docs.self-hosting-rees-analyzers-Drpn1t7m.js (New) 498 bytes 498 bytes 100.0% 🚀
assets/docs.self-hosting-rees-jwOyqLQY.js (New) 498 bytes 498 bytes 100.0% 🚀
assets/docs.self-hosting-release-checklist-cmBa_xvN.js (New) 498 bytes 498 bytes 100.0% 🚀
assets/docs.self-hosting-releases-DXRAt8QB.js (New) 498 bytes 498 bytes 100.0% 🚀
assets/docs.self-hosting-security-DY2kqxXe.js (New) 498 bytes 498 bytes 100.0% 🚀
assets/docs.self-hosting-troubleshooting-BaIraInb.js (New) 498 bytes 498 bytes 100.0% 🚀
assets/docs.self-hosting-unified-ams-orb-BpAds1P_.js (New) 498 bytes 498 bytes 100.0% 🚀
assets/docs.ams-config-precedence-CkvczKZw.js (New) 497 bytes 497 bytes 100.0% 🚀
assets/docs.ams-deployment-CZQER7oq.js (New) 497 bytes 497 bytes 100.0% 🚀
assets/docs.ams-discovery-plane-CggZfUJu.js (New) 497 bytes 497 bytes 100.0% 🚀
assets/docs.ams-env-reference-DguhSUZt.js (New) 497 bytes 497 bytes 100.0% 🚀
assets/docs.ams-fleet-manifest-Dw5n_hJk.js (New) 497 bytes 497 bytes 100.0% 🚀
assets/docs.ams-goal-spec-TxIYz89V.js (New) 497 bytes 497 bytes 100.0% 🚀
assets/docs.ams-kill-switch-incident-CgbVcRVn.js (New) 497 bytes 497 bytes 100.0% 🚀
assets/docs.ams-observability-B-Q25gw8.js (New) 497 bytes 497 bytes 100.0% 🚀
assets/docs.ams-operations-runbook-CVndPfsk.js (New) 497 bytes 497 bytes 100.0% 🚀
assets/docs.ams-sizing-CjkFScWz.js (New) 497 bytes 497 bytes 100.0% 🚀
assets/docs.ams-unattended-scheduling-DmDX7I2t.js (New) 497 bytes 497 bytes 100.0% 🚀
assets/docs.beta-onboarding-OldcAm5c.js (New) 497 bytes 497 bytes 100.0% 🚀
assets/docs.capacity-CrPUpNvd.js (New) 497 bytes 497 bytes 100.0% 🚀
assets/docs.maintainer-self-hosting-Biyefia4.js (New) 497 bytes 497 bytes 100.0% 🚀
assets/docs.mcp-clients-CsDblANZ.js (New) 497 bytes 497 bytes 100.0% 🚀
assets/docs.owner-checklist-oJYARGxF.js (New) 497 bytes 497 bytes 100.0% 🚀
assets/docs.quickstart-H9c8S9Kk.js (New) 497 bytes 497 bytes 100.0% 🚀
assets/docs.github-app-gaBGsniC.js (New) 495 bytes 495 bytes 100.0% 🚀
assets/docs.maintainer-workflow-7AU_oMwh.js (New) 495 bytes 495 bytes 100.0% 🚀
assets/docs.privacy-security-C_6qNtd-.js (New) 495 bytes 495 bytes 100.0% 🚀
assets/docs.troubleshooting-DlYF7-AK.js (New) 495 bytes 495 bytes 100.0% 🚀
assets/docs.tuning-9hd8q9A8.js (New) 495 bytes 495 bytes 100.0% 🚀
assets/docs.loopover-commands-Cy_ptk_H.js (New) 494 bytes 494 bytes 100.0% 🚀
assets/sparkles-Cmsap6FQ.js (New) 494 bytes 494 bytes 100.0% 🚀
assets/docs.how-reviews-work-C_3pZhcw.js (New) 493 bytes 493 bytes 100.0% 🚀
assets/app.owner-BKELkyH5.js (New) 474 bytes 474 bytes 100.0% 🚀
assets/app.commands-C_zJsy_h.js (New) 455 bytes 455 bytes 100.0% 🚀
assets/app.playground-BA9JPpHS.js (New) 442 bytes 442 bytes 100.0% 🚀
assets/reveal-TtFjGfy-.js (New) 442 bytes 442 bytes 100.0% 🚀
assets/index-CZ-Kj-sk.js (New) 438 bytes 438 bytes 100.0% 🚀
assets/app.digest-CrUZydvY.js (New) 430 bytes 430 bytes 100.0% 🚀
assets/eye-off-CV_Eidql.js (New) 430 bytes 430 bytes 100.0% 🚀
assets/app.miner-BF1BEzkE.js (New) 422 bytes 422 bytes 100.0% 🚀
assets/key-round-BpVjPiMJ.js (New) 355 bytes 355 bytes 100.0% 🚀
assets/bot-DbzrffP6.js (New) 328 bytes 328 bytes 100.0% 🚀
assets/trash-2-B4-HK8rW.js (New) 328 bytes 328 bytes 100.0% 🚀
assets/save-BUUXcvKj.js (New) 327 bytes 327 bytes 100.0% 🚀
assets/git-pull-request-arrow-Dhib_eID.js (New) 321 bytes 321 bytes 100.0% 🚀
assets/wrench-orNcNA6V.js (New) 303 bytes 303 bytes 100.0% 🚀
assets/list-checks-CO6nNE0O.js (New) 279 bytes 279 bytes 100.0% 🚀
assets/shield-CnIV5VTq.js (New) 272 bytes 272 bytes 100.0% 🚀
assets/workflow-BASERubK.js (New) 265 bytes 265 bytes 100.0% 🚀
assets/compass-C1jAjCNv.js (New) 251 bytes 251 bytes 100.0% 🚀
assets/history-DRF5MVyy.js (New) 237 bytes 237 bytes 100.0% 🚀
assets/activity-BakY_ID6.js (New) 234 bytes 234 bytes 100.0% 🚀
assets/message-square-BdlmbY40.js (New) 233 bytes 233 bytes 100.0% 🚀
assets/lock-DSDgm_y9.js (New) 206 bytes 206 bytes 100.0% 🚀
assets/rotate-cw-C-4PPl_5.js (New) 201 bytes 201 bytes 100.0% 🚀
assets/play-D6y1pMMT.js (New) 190 bytes 190 bytes 100.0% 🚀
assets/circle-check-BV9_8iCB.js (New) 178 bytes 178 bytes 100.0% 🚀
assets/search-Hct1CbBO.js (New) 174 bytes 174 bytes 100.0% 🚀
assets/circle-WJyot6WT.js (New) 130 bytes 130 bytes 100.0% 🚀
assets/add-scalar-classes-mT3arFnH.js (Deleted) -2.17MB 0 bytes -100.0% 🗑️
assets/tanstack-vendor-91F8Hj6S.js (Deleted) -809.78kB 0 bytes -100.0% 🗑️
assets/docs.fumadocs-spike-api-reference-CRFz54H5.js (Deleted) -442.92kB 0 bytes -100.0% 🗑️
assets/AgentScalarChatInterface.vue-0LUg32Gc.js (Deleted) -201.71kB 0 bytes -100.0% 🗑️
assets/modal-BRUBaIfr.js (Deleted) -184.38kB 0 bytes -100.0% 🗑️
assets/client-O3_FDIbA.js (Deleted) -146.06kB 0 bytes -100.0% 🗑️
assets/maintainer-panel-bywd060y.js (Deleted) -78.53kB 0 bytes -100.0% 🗑️
assets/ui-vendor-BToI_Rr-.js (Deleted) -57.04kB 0 bytes -100.0% 🗑️
assets/routes-DKiBjXkU.js (Deleted) -34.83kB 0 bytes -100.0% 🗑️
assets/owner-panel-CWmhSSXq.js (Deleted) -27.26kB 0 bytes -100.0% 🗑️
assets/app-BoMl6D6v.js (Deleted) -25.65kB 0 bytes -100.0% 🗑️
assets/app.runs-_5jGSvz2.js (Deleted) -23.55kB 0 bytes -100.0% 🗑️
assets/miner-panel-B7j8KcuC.js (Deleted) -20.25kB 0 bytes -100.0% 🗑️
assets/api._op-DhOc2KBx.js (Deleted) -17.55kB 0 bytes -100.0% 🗑️
assets/self-hosting-docs-audit-CDkDYc0e.js (Deleted) -16.63kB 0 bytes -100.0% 🗑️
assets/app.index-BYU3PH2D.js (Deleted) -15.62kB 0 bytes -100.0% 🗑️
assets/playground-panel-Hyb8Qczo.js (Deleted) -14.49kB 0 bytes -100.0% 🗑️
assets/app.audit-BABSCoU-.js (Deleted) -10.11kB 0 bytes -100.0% 🗑️
assets/extension-BiIBP-VT.js (Deleted) -10.04kB 0 bytes -100.0% 🗑️
assets/app.config-generator-DsqBs7G6.js (Deleted) -9.88kB 0 bytes -100.0% 🗑️
assets/fairness-BdE4Dosg.js (Deleted) -8.34kB 0 bytes -100.0% 🗑️
assets/maintainers-B9qlrQPO.js (Deleted) -8.03kB 0 bytes -100.0% 🗑️
assets/miners-BGrusgIe.js (Deleted) -7.85kB 0 bytes -100.0% 🗑️
assets/agents-Afm0M7fj.js (Deleted) -7.76kB 0 bytes -100.0% 🗑️
assets/commands-panel-BFfziyND.js (Deleted) -6.65kB 0 bytes -100.0% 🗑️
assets/maintainer-workflow-BwY8MW3l.js (Deleted) -6.5kB 0 bytes -100.0% 🗑️
assets/roadmap-qLs29k8n.js (Deleted) -6.33kB 0 bytes -100.0% 🗑️
assets/digest-panel-BTbSjlvv.js (Deleted) -6.18kB 0 bytes -100.0% 🗑️
assets/repos._owner._repo.quality-Bhn4iHBV.js (Deleted) -6.14kB 0 bytes -100.0% 🗑️
assets/docs.index-DA2n2RPW.js (Deleted) -5.55kB 0 bytes -100.0% 🗑️
assets/api.index-CbOJg-UG.js (Deleted) -4.7kB 0 bytes -100.0% 🗑️
assets/api-CiEXhUXG.js (Deleted) -2.69kB 0 bytes -100.0% 🗑️
assets/docs-CFQJxg0_.js (Deleted) -2.67kB 0 bytes -100.0% 🗑️
assets/app.workbench-C9rPW1zE.js (Deleted) -1.58kB 0 bytes -100.0% 🗑️
assets/session-B4fqfm-H.js (Deleted) -1.45kB 0 bytes -100.0% 🗑️
assets/tooltip-CyPWU8HK.js (Deleted) -1.45kB 0 bytes -100.0% 🗑️
assets/tabs-vxGZW4ce.js (Deleted) -1.39kB 0 bytes -100.0% 🗑️
assets/app.repos-Bh7cO0ld.js (Deleted) -1.07kB 0 bytes -100.0% 🗑️
assets/input-CPu4Ici-.js (Deleted) -796 bytes 0 bytes -100.0% 🗑️
assets/file-cog-B0VkvB0y.js (Deleted) -758 bytes 0 bytes -100.0% 🗑️
assets/docs.ai-summaries-CvRYsKhY.js (Deleted) -506 bytes 0 bytes -100.0% 🗑️
assets/app.maintainer-B_LsUkOl.js (Deleted) -502 bytes 0 bytes -100.0% 🗑️
assets/docs.branch-analysis-NHumCPW4.js (Deleted) -499 bytes 0 bytes -100.0% 🗑️
assets/docs.scoreability-xLanr8GZ.js (Deleted) -499 bytes 0 bytes -100.0% 🗑️
assets/docs.upstream-drift-BlOBRpzK.js (Deleted) -499 bytes 0 bytes -100.0% 🗑️
assets/docs.federated-fleet-intelligence-cEA9XbSI.js (Deleted) -498 bytes 0 bytes -100.0% 🗑️
assets/docs.maintainer-install-trust-B5JTC1FP.js (Deleted) -498 bytes 0 bytes -100.0% 🗑️
assets/docs.self-hosting-ai-providers-BYO5vkRr.js (Deleted) -498 bytes 0 bytes -100.0% 🗑️
assets/docs.self-hosting-backup-scaling-BzOVk_19.js (Deleted) -498 bytes 0 bytes -100.0% 🗑️
assets/docs.self-hosting-configuration-B96OEAPE.js (Deleted) -498 bytes 0 bytes -100.0% 🗑️
assets/docs.self-hosting-docs-audit-Wka7Gq1b.js (Deleted) -498 bytes 0 bytes -100.0% 🗑️
assets/docs.self-hosting-github-app-n6ltd6v_.js (Deleted) -498 bytes 0 bytes -100.0% 🗑️
assets/docs.self-hosting-quickstart-CBT7hjPJ.js (Deleted) -498 bytes 0 bytes -100.0% 🗑️
assets/docs.self-hosting-rag-D1oSropK.js (Deleted) -498 bytes 0 bytes -100.0% 🗑️
assets/docs.self-hosting-rees-BRONlh59.js (Deleted) -498 bytes 0 bytes -100.0% 🗑️
assets/docs.self-hosting-rees-analyzers-BwRFFfc3.js (Deleted) -498 bytes 0 bytes -100.0% 🗑️
assets/docs.self-hosting-release-checklist-BZGXssM6.js (Deleted) -498 bytes 0 bytes -100.0% 🗑️
assets/docs.self-hosting-releases-Bb6Gk6ha.js (Deleted) -498 bytes 0 bytes -100.0% 🗑️
assets/docs.self-hosting-security-CwInjCG5.js (Deleted) -498 bytes 0 bytes -100.0% 🗑️
assets/docs.self-hosting-troubleshooting-Dd8fpgft.js (Deleted) -498 bytes 0 bytes -100.0% 🗑️
assets/docs.self-hosting-unified-ams-orb-BcCDKi-N.js (Deleted) -498 bytes 0 bytes -100.0% 🗑️
assets/docs.ams-config-precedence-DZ5YDyRH.js (Deleted) -497 bytes 0 bytes -100.0% 🗑️
assets/docs.ams-deployment-C0ZmlJK2.js (Deleted) -497 bytes 0 bytes -100.0% 🗑️
assets/docs.ams-discovery-plane-C0XD_O1B.js (Deleted) -497 bytes 0 bytes -100.0% 🗑️
assets/docs.ams-env-reference-C1qZKhDB.js (Deleted) -497 bytes 0 bytes -100.0% 🗑️
assets/docs.ams-fleet-manifest-DAwrMu5Q.js (Deleted) -497 bytes 0 bytes -100.0% 🗑️
assets/docs.ams-goal-spec-BFVv7oDP.js (Deleted) -497 bytes 0 bytes -100.0% 🗑️
assets/docs.ams-kill-switch-incident-B-dlXD5i.js (Deleted) -497 bytes 0 bytes -100.0% 🗑️
assets/docs.ams-observability-B-sviUjr.js (Deleted) -497 bytes 0 bytes -100.0% 🗑️
assets/docs.ams-operations-runbook-C5g_1Iav.js (Deleted) -497 bytes 0 bytes -100.0% 🗑️
assets/docs.ams-sizing-xq3fU_ib.js (Deleted) -497 bytes 0 bytes -100.0% 🗑️
assets/docs.ams-unattended-scheduling-kgpTQ7hZ.js (Deleted) -497 bytes 0 bytes -100.0% 🗑️
assets/docs.beta-onboarding-ByXG3ktE.js (Deleted) -497 bytes 0 bytes -100.0% 🗑️
assets/docs.capacity-Na6e24jy.js (Deleted) -497 bytes 0 bytes -100.0% 🗑️
assets/docs.maintainer-self-hosting-BV-anPBe.js (Deleted) -497 bytes 0 bytes -100.0% 🗑️
assets/docs.mcp-clients-COZVEuGg.js (Deleted) -497 bytes 0 bytes -100.0% 🗑️
assets/docs.owner-checklist-D-X6rV41.js (Deleted) -497 bytes 0 bytes -100.0% 🗑️
assets/docs.quickstart-DfAv1cB-.js (Deleted) -497 bytes 0 bytes -100.0% 🗑️
assets/docs.github-app--UTU5QHj.js (Deleted) -495 bytes 0 bytes -100.0% 🗑️
assets/docs.maintainer-workflow-BmFFMiJ7.js (Deleted) -495 bytes 0 bytes -100.0% 🗑️
assets/docs.privacy-security-Bhr_pXxX.js (Deleted) -495 bytes 0 bytes -100.0% 🗑️
assets/docs.troubleshooting-o_GDq1AT.js (Deleted) -495 bytes 0 bytes -100.0% 🗑️
assets/docs.tuning-BcRO-hnq.js (Deleted) -495 bytes 0 bytes -100.0% 🗑️
assets/docs.loopover-commands-a8QoS4IF.js (Deleted) -494 bytes 0 bytes -100.0% 🗑️
assets/sparkles-CeGd07Mz.js (Deleted) -494 bytes 0 bytes -100.0% 🗑️
assets/docs.how-reviews-work-BFYB_Z-_.js (Deleted) -493 bytes 0 bytes -100.0% 🗑️
assets/app.owner-D6U5B_76.js (Deleted) -474 bytes 0 bytes -100.0% 🗑️
assets/app.commands-BO8LafTI.js (Deleted) -455 bytes 0 bytes -100.0% 🗑️
assets/app.playground-B5EpYq5X.js (Deleted) -442 bytes 0 bytes -100.0% 🗑️
assets/reveal-CB6Jgv-3.js (Deleted) -442 bytes 0 bytes -100.0% 🗑️
assets/index-CqM8vKsb.js (Deleted) -438 bytes 0 bytes -100.0% 🗑️
assets/app.digest-DNcWfumR.js (Deleted) -430 bytes 0 bytes -100.0% 🗑️
assets/eye-off-D1GfaDzR.js (Deleted) -430 bytes 0 bytes -100.0% 🗑️
assets/app.miner-CaDS1zuj.js (Deleted) -422 bytes 0 bytes -100.0% 🗑️
assets/key-round-2wkRh5JO.js (Deleted) -355 bytes 0 bytes -100.0% 🗑️
assets/bot-CCA_Ff72.js (Deleted) -328 bytes 0 bytes -100.0% 🗑️
assets/trash-2-DAaafQOz.js (Deleted) -328 bytes 0 bytes -100.0% 🗑️
assets/save-DpMtKJVC.js (Deleted) -327 bytes 0 bytes -100.0% 🗑️
assets/git-pull-request-arrow-ClYYJGjj.js (Deleted) -321 bytes 0 bytes -100.0% 🗑️
assets/wrench-CQ7umDXH.js (Deleted) -303 bytes 0 bytes -100.0% 🗑️
assets/list-checks-CCdzZrff.js (Deleted) -279 bytes 0 bytes -100.0% 🗑️
assets/shield-kBDJAjKW.js (Deleted) -272 bytes 0 bytes -100.0% 🗑️
assets/workflow-qNgzaD4h.js (Deleted) -265 bytes 0 bytes -100.0% 🗑️
assets/compass-Djr26apy.js (Deleted) -251 bytes 0 bytes -100.0% 🗑️
assets/history-C2xa12fd.js (Deleted) -237 bytes 0 bytes -100.0% 🗑️
assets/activity-DdRWYt0R.js (Deleted) -234 bytes 0 bytes -100.0% 🗑️
assets/message-square-D0RMOQ1G.js (Deleted) -233 bytes 0 bytes -100.0% 🗑️
assets/lock-Dh0Va5RR.js (Deleted) -206 bytes 0 bytes -100.0% 🗑️
assets/rotate-cw-CKVKwPov.js (Deleted) -201 bytes 0 bytes -100.0% 🗑️
assets/play-CstfYeWd.js (Deleted) -190 bytes 0 bytes -100.0% 🗑️
assets/circle-check-D6_C1hZR.js (Deleted) -178 bytes 0 bytes -100.0% 🗑️
assets/search-B67E1Udd.js (Deleted) -174 bytes 0 bytes -100.0% 🗑️
assets/circle-RzJWX8sk.js (Deleted) -130 bytes 0 bytes -100.0% 🗑️

@JSONbored
JSONbored merged commit a964eaf into main Jul 21, 2026
13 checks passed
@JSONbored
JSONbored deleted the worktree-oneshot-synchronize-gate branch July 21, 2026 10:47
@loopover-orb loopover-orb Bot added the gittensor:feature Gittensor-scored feature linked to a feature issue — scores a 0.25x multiplier. label Jul 21, 2026
@codecov

codecov Bot commented Jul 21, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 88.57%. Comparing base (fa3d079) to head (a5c1542).
⚠️ Report is 3 commits behind head on main.
✅ All tests successful. No failed tests found.

Additional details and impacted files
@@            Coverage Diff             @@
##             main    #7715      +/-   ##
==========================================
- Coverage   88.57%   88.57%   -0.01%     
==========================================
  Files         725      725              
  Lines       76360    76392      +32     
  Branches    22741    22754      +13     
==========================================
+ Hits        67633    67661      +28     
  Misses       7681     7681              
- Partials     1046     1050       +4     
Flag Coverage Δ
shard-1 55.36% <100.00%> (-0.01%) ⬇️
shard-2 52.57% <12.50%> (-0.03%) ⬇️
shard-3 47.38% <12.50%> (-0.03%) ⬇️

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

Files with missing lines Coverage Δ
packages/loopover-engine/src/focus-manifest.ts 98.42% <100.00%> (+<0.01%) ⬆️
src/db/repositories.ts 96.74% <ø> (ø)
src/openapi/schemas.ts 100.00% <ø> (ø)
src/queue/processors.ts 95.77% <100.00%> (+<0.01%) ⬆️
src/queue/review-evasion.ts 94.59% <100.00%> (+0.65%) ⬆️
src/types.ts 100.00% <ø> (ø)

... and 1 file with indirect coverage changes

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

gittensor:feature Gittensor-scored feature linked to a feature issue — scores a 0.25x multiplier.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant