gittensory-orb orb-v2.1.0-beta.4
Pre-release
Pre-release
Immutable
release. Only release title and notes can be modified.
LoopOver Orb container image:
docker pull ghcr.io/jsonbored/loopover-selfhost:orb-v2.1.0-beta.4Multi-arch (linux/amd64 + linux/arm64). See https://loopover.ai/docs/maintainer-self-hosting for setup.
Includes the Claude Code / Codex subscription CLIs by default; credentials stay runtime-only.
Sentry release id baked into the image: gittensory-orb@2.1.0-beta.4.
What's Changed
🚀 Features
- feat(miner): export buildIssueQualityReport for self-review (#6057) by @bohdansolovie in #6142
- feat(mcp): register 4 maintainer/repo-owner intake tools in packages/loopover-mcp by @jaytbarimbao-collab in #6199
- refactor(settings): converge 4 duplicated settings files onto their loopover-engine shims by @nghetienhiep in #6201
- feat(miner-ui): add a pause-reason input to the governor control (#6186) by @nghetienhiep in #6207
- feat(api): expose self-tune override audit and clear routes (#6168) by @nghetienhiep in #6215
- feat(api): wire internal decision/calibration routes, drop duplicate handleParity by @nghetienhiep in #6216
- feat(miner): wire the leakage-safe replay harness into the calibration flow (#3011) by @nghetienhiep in #6219
- feat(mcp): add loopover_get_pr_reviewability tool on both MCP servers by @lourincedaging0-commits in #6222
- feat(docs): migrate loopover-ui docs pages to fumadocs-mdx content pipeline by @oktofeesh1 in #6271
- docs(mcp): clarify ambiguous loopover-mcp stdio tool descriptions for LLM selection by @nghetienhiep in #6270
- feat(review): expose a repo's effective self-tuned gate thresholds via a read-only endpoint by @lourincedaging0-commits in #6307
- feat(mcp): compute loopover_lint_pr_text in-process from the shared engine by @nghetienhiep in #6308
- docs(ams): port DEPLOYMENT.md to a website docs page (docs.ams-deployment.tsx) by @oktofeesh1 in #6312
- docs(ams): port docs/operations-runbook.md to a website docs page (docs.ams-operations-runbook.tsx) by @oktofeesh1 in #6318
- feat(mcp): add
tools search <query>for fuzzy tool discovery by @nghetienhiep in #6317 - feat(mcp): compute loopover_check_slop_risk in-process from the shared engine by @nghetienhiep in #6329
- docs(ams): port docs/observability.md to a website docs page (docs.ams-observability.tsx) by @oktofeesh1 in #6331
- feat(registry): add subnet-funded pool association to the repo model (#6320) by @nghetienhiep in #6333
- feat(mcp): categorize and group loopover-mcp tools output (#6301) by @nghetienhiep in #6336
- docs(ams): port docs/unattended-scheduling.md to a website docs page (docs.ams-unattended-scheduling.tsx) by @oktofeesh1 in #6338
- feat(miner): add tenant-scoping columns to all four local ledger schemas by @JSONbored in #6340
- feat(review): add a visible caption under each Visual/Scroll preview thumbnail by @JSONbored in #6341
- feat(mcp): add telemetry enable/disable CLI command with persisted opt-in by @nghetienhiep in #6348
- docs(ams): port docs/sizing.md to a website docs page (docs.ams-sizing.tsx) by @oktofeesh1 in #6351
- feat(mcp): add a typed posthog telemetry wrapper for the remote server by @nghetienhiep in #6355
- feat(mcp): instrument the remote tool-dispatch chokepoint with PostHog events by @claytonlin1110 in #6358
- docs(ams): port docs/config-precedence.md to a website docs page (docs.ams-config-precedence.tsx) by @oktofeesh1 in #6360
🐛 Fixes
- feat(grafana): add additive maintainer review event panels by @james3773 in #6138
- fix(settings): parse PROTECTED_AUTOCLOSE_AUTHORS_EXTRA via the shared login-list parser (#audit-3.13) by @real-venus in #6214
- fix(queue): honor autoCloseExemptLogins in the repeated-draft-cycling review-evasion guard by @real-venus in #6217
- fix(engine): detect activity changes once the progress tail is full by @luciferlive112116 in #6218
- chore(signals): remove dead deriveContributionLanes superseded by onboarding-pack's contribution-lane model by @real-venus in #6220
- chore(miner): remove dead parseJsonFlag from portfolio-queue-cli by @dhgoal in #6198
- docs(miner): fix stale header comment in submission-freshness-check by @dhgoal in #6200
- fix(github): only swallow 404 in removePullRequestLabel (#6192) by @bohdansolovie in #6211
- chore(review): remove dead isIgnoredReviewAuthor wrapper (zero callers, thinly wraps decideReviewEligibility) by @real-venus in #6223
- fix(miner): expose the freeform idea feasibility gate via a CLI command by @nghetienhiep in #6224
- fix(engine): normalize classifyPortfolioConvergence's numeric inputs by @luciferlive112116 in #6225
- docs(review): stop claiming the self-improve D1 tables don't exist by @luciferlive112116 in #6232
- fix(settings): accept [bot]-suffixed logins in contributorBlacklist by @jaytbarimbao-collab in #6233
- docs(miner-ui): README no longer claims the data views are unshipped by @dhgoal in #6242
- fix(miner): exit 2, not 1, on a secret-mount failure by @dhgoal in #6248
- fix(miner): wrap pr-disposition-poller GitHub calls in fetchWithRetry (#4829) by @jaytbarimbao-collab in #6265
- fix(engine): converge gate-verdict + finding-severity calibration onto reviewer-consensus's zero-weight + malformed-repo handling by @real-venus in #6251
- chore(miner): remove 3 dead pre-unification governor gates superseded by the chokepoint ladder by @real-venus in #6278
- test(github): verify installation-token isolation under multi-tenant concurrency by @JSONbored in #6277
- test(queue): verify concurrent cross-tenant execution isolation by @JSONbored in #6299
- fix(ui): generate fumadocs-mdx collections/* via postinstall by @oktofeesh1 in #6310
- fix(security): redact Linear and session GitHub ciphertext in D1 export by @RealDiligent in #6309
- fix(mcp): complete tab-completion for
cache listby @luciferlive112116 in #6298 - fix(github): retry label and assignee writes on stale installation tokens by @bohdansolovie in #6306
- docs(selfhost): document Sentry once, matching the code's own default by @luciferlive112116 in #6315
- docs(db): guardrail listInstallations/listRepositories against tenant-facing misuse by @JSONbored in #6328
- fix(review): exclude bare .ts app-source files from isVisualPath by @JSONbored in #6330
- feat(selfhost): give sweep-watchdog and PR-reconciliation a per-repo opt-out by @JSONbored in #6319
- fix(ci): derive production-smoke MCP versions from package.json by @RealDiligent in #6334
- fix(review): make the visual-preview poll budget durable per head SHA by @JSONbored in #6335
- fix(selfhost): fail fast when a configured _FILE secret is unreadable by @RealDiligent in #6337
- refactor(mcp): consolidate local-path redaction into one shared module by @nghetienhiep in #6339
- fix(mcp): align env token precedence with the documented order by @nghetienhiep in #6342
- fix(selfhost): log blob-store path-traversal gets distinctly from misses by @RealDiligent in #6343
- fix(ci): exit non-zero when lockfile workspace sync misses by @RealDiligent in #6344
- fix(ci): share MCP tarball allowlist including shipped lib files by @RealDiligent in #6346
- fix(rees): reconstruct trailing-newline patches instead of failing closed (#6254) by @nickmopen in #6354
- fix(rees): use the shared diff-file-header predicate in api-break/caller-impact (#6255) by @nickmopen in #6356
- fix(selfhost): route boot-time advisories through console.error so Sentry can see them by @JSONbored in #6350
- chore(selfhost): remove dead nonConsumingRetryDelayMs export by @galuis116 in #6357
- fix(selfhost): move Sentry init before emptyConfigDirAdvisory so it can alert too by @JSONbored in #6359
- feat(miner): defend the coding agent's instructions against prompt injection in issue text by @JSONbored in #6345
Full Changelog: orb-v2.1.0-beta.3...orb-v2.1.0-beta.4