Releases: JSONbored/loopover
Release list
engine: v3.1.0
3.1.0 (2026-07-14)
Features
- engine: add a load-testing harness for iterate-loop under concurrent load (#5781) (4b6b5c6), closes #5224
- engine: extract content-lane's pure leaf modules to loopover-engine (#5775) (60ed3cd), closes #4880
- engine: extract settings leaf modules to loopover-engine (#5779) (b570c11), closes #4879
- engine: per-tenant configuration layer (#5804) (1fd8519), closes #4787
- engine: per-tenant resource quota evaluation (#5801) (db74aa3), closes #4796
- mcp: add the idea-intake bridge and loopover_intake_idea tool (#5792) (d60481e), closes #4798
- mcp: deliver a completed loop iteration as a customer results payload (#5797) (9b3f4b2), closes #4801
- mcp: evaluate when a rented loop should escalate to a human (#5806) (90f477e)
- mcp: route ideas through intake into a loop claim plan (#5795) (48d2a39), closes #4799
- mcp: stream loop progress to the customer via a progress snapshot (#5798) (96b8c42), closes #4800
- miner: honor kill-switch mid-attempt during iterate-loop (#5799) (3525e95)
Fixes
- engine: clamp rate-limit retryAfterMs to at most one window on a backward clock (#5855) (f35e354), closes #5829
- rebrand: full-cutover rename miner/AMS per-repo and operator config filenames (#5765) (c93569d)
- rebrand: full-cutover rename remaining internal gittensory runtime identifiers (#5761) (75450f1)
- signals: require a code file before manifest_missing_tests fires (#5852) (ad011d3)
engine: v3.0.0
3.0.0 (2026-07-14)
⚠ BREAKING CHANGES
- build: every gittensory-prefixed directory under apps/ and packages/ is now loopover-prefixed, and the two extension packages' npm names changed from @jsonbored/gittensory-* to @loopover/*. No dual-path/alias, per the epic's full-cutover mandate.
Features
engine: v2.0.0
2.0.0 (2026-07-14)
⚠ BREAKING CHANGES
- miner: the miner's default config directory and every gittensory_miner_* Prometheus metric name changed; no dual-read/alias, per the epic's full-cutover mandate (#5705). A self-hoster's existing ~/.config/gittensory-miner state does not migrate automatically.
- github: the bot no longer recognizes @gittensory as a command trigger anywhere -- only @Loopover works. Any saved PR-comment template, bookmark, or muscle-memory referencing @gittensory must be updated to @Loopover .
- miner: every GITTENSORY_MINER_/GITTENSORY_API_TOKEN_FILE/ GITTENSORY_MCP_TOKEN_FILE/GITTENSORY_MEM_LIMIT/GITTENSORY_REPORTING_ env var an existing self-hosted AMS/miner deployment sets must be renamed to its LOOPOVER_ equivalent -- the old names are no longer read.
- remove gittensory-engine's settings.gateCheckMode yml back-compat parsing (#5373) (#5463)
Features
- commands: add @gittensory chat <question> — grounded LLM Q&A via local Ollama (#4985) (a086033), closes #4595
- commands: intent-classification router for unrecognized @gittensory mentions (#5036) (f8f281b)
- commands: let a PR's own author use chat when rate limiting is active (#5087) (9b307d8), closes #5084
- commands: make @gittensory chat's frontier fallback configurable (#4595 follow-up) (#5015) (9429030)
- github: rename the @gittensory bot mention command to @loopover (#5715) (40e6cdf)
- miner-governor: build a real production runSlopAssessment implementation (#5133) (#5140) (e7d95a9)
- miner-governor: closed-loop discovery re-entry trigger (#2338) (#5051) (d7e38d6)
- miner-governor: dry-run-by-default enforcement + fail-closed chokepoint (#2342, #2340) (#5014) (4719f2c)
- miner-governor: enforce non-convergence + budget/turn/termination halts (#2347) (#4989) (51208ce)
- miner-governor: gated-submission trigger requiring predicted-gate PASS + slop-under-threshold (#5045) (e6efe87)
- miner-governor: global + per-repo kill-switch (#2341) (#5012) (dcc1601)
- miner-governor: iterate-loop stop/abandon/handoff policy (#5040) (e446f0c)
- miner-governor: kill-switch propagation into the manage/loop subsystem (#2339) (#5057) (a21a8ad)
- miner-governor: local create->score->self-review->decide iterate-loop orchestrator (#2333) (#5044) (c51fe41)
- miner-governor: self-plagiarism throttle across the miner's own repos (#4972) (f0fa765)
- miner-governor: self-reputation throttle from own outcome history (#4983) (7bbf529), closes #2346
- miner-governor: self-review adapter wiring diffs through predicted-gate + slop (#2334) (#5034) (214b4c3)
- miner-governor: wire rate-limit + jittered backoff into live write enforcement (#2344) (#4984) (f175e0c)
- miner-hands: parse Claude Code's JSON error envelope in the CLI-subprocess driver (#5168) (#5256) (45a3741)
- miner-hands: parse Codex's JSONL stdout for its real error object in the CLI-subprocess driver (#5169) (#5262) (183e655)
- miner-hands: two-tier stalled-output fast-fail timeout for the CLI-subprocess driver (#5167) (#5251) (cae277e)
- miner-hands: wire real self-plagiarism data into the Governor chokepoint (#5706) (40ce138), closes #5676
- miner: add .gittensory-ams.yml operator execution-policy config (#5249) (f92b298)
- miner: build a real SelfReviewContext fetcher (#5145) (#5235) (7a423be)
- miner: extract and persist real coding-agent token usage (#5658) (1e0ac6c)
- miner: persist coding-agent provider + real cost on the attempt log (#5637) (941c300)
- miner: rename GITTENSORY_MINER_/GITTENSORY_ env vars to LOOPOVER_MINER_/LOOPOVER_ (#5707) (6714f0c), closes #5705
- miner: wire attempt-metering.ts into the iterate loop for a real mid-attempt budget abort (#5437) (30a6ffb)
- miner: wire claim-conflict resolution end-to-end (#5480) (7109bf2)
- miner: wire the real runMinerAttempt call into attempt-cli.js (#5261) (f3f1f2b)
- rees: add real before/after complexity-delta analyzer (#4758) ([6af9d77](https://github.com/JSONbored/g...
gittensory-orb orb-v0.6.0-beta.3
Gittensory Orb container image:
docker pull ghcr.io/jsonbored/loopover-selfhost:orb-v0.6.0-beta.3Multi-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@0.6.0-beta.3.
#4770: ghcr.io/jsonbored/gittensory-selfhost:orb-v0.6.0-beta.3 (the pre-rename name)
still resolves to this identical build/digest during the deprecation window -- no action needed if
you're already pinned to it. Track eventual removal via #4777.
What's Changed
🚀 Features
- feat(miner): add a committed benchmark suite for discovery ranking and the local-store path by @galuis116 in #5615
- feat(miner-extension): add a standard icon set to the manifest by @davion-knight in #5617
- feat(miner-extension): live-fetch ranked candidates from the local miner UI by @JSONbored in #5622
🐛 Fixes
- feat(loopover): flip PUBLIC_API_ORIGIN to api.loopover.ai by @JSONbored in #5618
- feat(miner): persist ranked-candidates snapshots and serve them locally by @JSONbored in #5619
Full Changelog: orb-v0.6.0-beta.2...orb-v0.6.0-beta.3
gittensory-orb orb-v0.6.0-beta.2
Gittensory Orb container image:
docker pull ghcr.io/jsonbored/loopover-selfhost:orb-v0.6.0-beta.2Multi-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@0.6.0-beta.2.
#4770: ghcr.io/jsonbored/gittensory-selfhost:orb-v0.6.0-beta.2 (the pre-rename name)
still resolves to this identical build/digest during the deprecation window -- no action needed if
you're already pinned to it. Track eventual removal via #4777.
What's Changed
🚀 Features
- docs(miner): add an 'Observing your miner' Grafana/ledger observability guide by @davion-knight in #5424
- feat(miner): retry a transient 5xx in the discovery fanout by @real-venus in #5425
- feat(miner): wire per-repo kill switch, real claim-ledger, and CI-status observation by @JSONbored in #5429
- feat(miner): paginate discovery fetches via the GitHub Link header (#4831) by @cleanjunc in #5442
- feat(miner-extension): dynamic toolbar badge for local cache state by @davion-knight in #5449
- docs(miner): add coding-agent credential troubleshooting table (#5175) by @andriypolanski in #5451
- docs(miner): add coding-agent docs page by @luckydicer in #5444
- feat(observability): add a Grafana Sentry datasource for in-Grafana issue visualization by @JSONbored in #5453
- feat(miner): wire attempt-metering.ts into the iterate loop for a real mid-attempt budget abort by @JSONbored in #5437
- feat(miner): surface rate-limit telemetry in discover output (#4837) by @cleanjunc in #5461
- feat(miner-selfimprove): wire the historical-replay scorer into the Phase 7 calibration loop (#4248) by @andriypolanski in #5462
- test(miner): add real concurrent-process races test for claim-ledger and portfolio-queue by @galuis116 in #5464
- feat(miner): throttle discovery concurrency as rate-limit budget drops by @real-venus in #5467
- test(miner): add real crash-recovery test for portfolio-queue stuck items by @galuis116 in #5469
- feat(miner): add a calibration-report CLI command by @real-venus in #5460
- feat(miner): add a metrics command that renders prediction-calibration Prometheus text (#4838) by @cleanjunc in #5470
- feat(miner): de-hardcode discovery from gittensory's own conventions (#4784) by @andriypolanski in #5472
- feat(miner): add repo stack auto-detection (#4785) by @andriypolanski in #5477
- feat(miner): wire claim-conflict resolution end-to-end by @JSONbored in #5480
- feat(miner): add a ledger metrics command that renders event-ledger Prometheus text (#4841) by @cleanjunc in #5486
- feat(miner): add signal and crash handling to the CLI (#4826) by @andriypolanski in #5484
- feat(miner): cache policy docs with conditional-GET revalidation by @JSONbored in #5508
- feat(miner-extension): show a last-synced label on the opportunity badge by @galuis116 in #5518
- feat(miner): add queue release/requeue escape-hatch subcommands (#4828) by @carlh7777 in #5520
- feat(miner-extension): reject oversized pasted ranked-candidates JSON before saving by @galuis116 in #5530
- feat(miner): add a gittensory-miner migrate command for the local stores by @galuis116 in #5538
- feat(miner): add --dry-run to attempt and loop by @JSONbored in #5527
- test(miner): shared contract suite across the read-only AMS MCP tools by @jaytbarimbao-collab in #5521
- docs(miner): document all sixteen local SQLite stores in DEPLOYMENT.md (#4870) by @carlh7777 in #5524
- feat(miner): publish operational files (DEPLOYMENT.md, docs, Dockerfile, schema) in the npm package (#4874) by @carlh7777 in #5528
- feat(miner): add --dry-run to the remaining local-mutating CLI commands by @JSONbored in #5532
- feat(miner): add a fleet-mode AMS host Terraform starter module by @davion-knight in #5549
- feat(miner): add a level-aware logging abstraction for the CLI (#4835) by @cleanjunc in #5550
- feat(miner): add --dry-run to governor pause/resume by @JSONbored in #5553
- feat(observability): add a prediction-calibration-drift alert rule for the miner by @milosde111 in #5557
- feat(miner): add GITHUB_TOKEN_FILE secret-mount indirection for fleet mode by @galuis116 in #5560
- test(miner): add true CLI end-to-end integration tests by @jsdevninja in #5565
- feat(miner): add a right-to-be-forgotten purge command across the local ledgers by @JSONbored in #5568
- feat(miner-ui): add live refresh to run-history and portfolio views by @galuis116 in #5570
- feat(miner-ui): surface claim, event, and governor ledger data by @davion-knight in #5574
- feat(miner-extension): add workspace package and CI wiring by @jsdevninja in #5567
- test(miner): add regression coverage for the two-tier stalled-output timeout by @nickmopen in #5575
- feat(miner-extension): grant loopback host permissions for local miner-ui access (#4860) by @andriypolanski in #5578
- feat(miner-ui): rebuild the Overview page from live miner state by @davion-knight in #5577
- docs(miner): add unattended scheduling & failure-alerting guidance by @nickmopen in #5592
- feat(miner): add portfolio-queue Prometheus metrics + stuck/backlog alerts by @JSONbored in #5603
- feat(miner): add governor rate-limit/budget Prometheus metrics + pressure alerts by @JSONbored in #5604
- feat(miner-ui): require a same-origin session cookie on the local API by @JSONbored in #5605
- docs(miner): document opt-in Prometheus textfile-collector export by @JSONbored in #5608
- feat(miner-ui): add a systemd unit for running miner-ui as a persistent service by @joaovictor91123 in #5610
- feat(miner-ui): add governor pause/resume controls by @JSONbored in #5611
🐛 Fixes
- fix(scripts): build gittensory-engine before typecheck in test:ci/validate by @JSONbored in #5408
- feat(ui): dual-read browser localStorage keys during the rebrand by @JSONbored in #5405
- docs: rename AI-contributor tooling and meta-docs for LoopOver by @JSONbored in #5431
- fix(miner): close two blind spots in the DEPLOYMENT.md docs-accuracy audit by @JSONbored in #5435
- chore(types): mark gateCheckMode @deprecated at every declaration site by @JSONbored in #5430
- feat(observability): translate browserless's JSON metrics into Prometheus text by @JSONbored in #5436
- chore(types): widen gateCheckMode to optional, drop internal-only passthroughs by @JSONbored in #5440
- feat(db): drop the dead gate_check_mode column by @JSONbored in #5446
- refactor(rebrand): consolidate and rename hardcoded User-Agent literals by @JSONbored in #5445
- fix(miner): status --json reports the real installed engine version by @JSONbored in #5447
- test: drop inert gateCheckMode fixture noise (#5373) by @JSONbored in #5448
- chore(api): drop gateCheckMode from registration-readiness and settings-preview responses by @JSONbored in #5454
- chore(activation): replace gateCheckMode with reviewCheckMode on the maintainer-activation surface by @JSONbored in #5455
- chore(ci): remove dead self-hosted-runner label, rename release-notes brand prose by @JSONbored in https://github.com/J...
gittensory-orb orb-v0.6.0-beta.1
Gittensory Orb container image:
docker pull ghcr.io/jsonbored/gittensory-selfhost:orb-v0.6.0-beta.1Multi-arch (linux/amd64 + linux/arm64). See https://gittensory.aethereal.dev/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@0.6.0-beta.1.
What's Changed
🚀 Features
- feat(analytics): surface org-wide slop-band calibration + dashboard card (#2196) by @dhgoal in #5126
- feat(review-stats): add finding acceptance-rate signal to the maintainer stats feed (#1967) by @carlh7777 in #5127
- feat(miner-governor): build production CodingAgentDriver construction (#5131) by @JSONbored in #5138
- feat(ui): gate-outcome breakdown card (#2203) by @andriypolanski in #5098
- feat(analytics): add aggregate queue-health to the maintainer quality dashboard (#2201) by @dhgoal in #5141
- feat(miner-governor): build a real production runSlopAssessment implementation (#5133) by @JSONbored in #5140
- feat(miner): wire the attempt CLI subcommand's real dependencies (#5132) by @JSONbored in #5152
- feat(miner): add lease + expiry sweep to reclaim stuck portfolio-queue items by @nickmopen in #5202
- feat(miner): wire real git worktree preparation into the attempt pipeline (#5132) by @JSONbored in #5237
- feat(miner): wire the batch claimer and telemetry exporter into the CLI by @nickmopen in #5242
- feat(miner): scaffold the gittensory-miner MCP stdio server by @jaytbarimbao-collab in #5254
- feat(miner-deployment): add Kubernetes StatefulSet + Secret example for AMS fleet-mode by @davion-knight in #5258
- feat(miner-hands): parse Claude Code's JSON error envelope in the CLI-subprocess driver (#5168) by @joaovictor91123 in #5256
- feat(miner-hands): parse Codex's JSONL stdout for its real error object in the CLI-subprocess driver (#5169) by @joaovictor91123 in #5262
- feat(miner): wire the real runMinerAttempt call into attempt-cli.js by @JSONbored in #5261
- feat(ui): analytics dashboard time-window selector (#2199) by @RealDiligent in #5268
- feat(miner): expose the portfolio-queue dashboard as a read-only MCP tool by @jaytbarimbao-collab in #5298
- feat(miner-deployment): add docker-compose.miner.yml for AMS fleet mode by @davion-knight in #5299
- feat(miner): generated env-var reference with CI drift check (#5179) by @RealDiligent in #5295
- feat(miner): surface a codex auth-freshness remediation detail in doctor (#5166) by @joaovictor91123 in #5297
- feat(miner): build the autonomous supervising loop by @JSONbored in #5303
- feat(ci): bring miner package under Codecov patch gate (#4864) by @andriypolanski in #5305
- feat(observability): register 26 missing metrics, add memory limits to 4 more services by @JSONbored in #5310
- feat(miner): surface the resolved coding-agent-driver provider and CLI presence in status --json (#5164) by @joaovictor91123 in #5312
- feat(miner): expose the claim ledger as a read-only MCP tool by @jaytbarimbao-collab in #5326
- feat(miner): add a systemd bare-host service example for the miner loop by @jaytbarimbao-collab in #5350
- feat(miner-mcp): event-ledger audit feed tool (#5158) by @andriypolanski in #5348
- feat(miner): add a .gittensory-miner.env.example starter file by @jaytbarimbao-collab in #5357
- test(miner): lock in doctor four-state coding-agent CLI matrix (#5195) by @andriypolanski in #5360
- feat(miner): expose per-repo run-state as a read-only MCP tool by @jaytbarimbao-collab in #5363
- feat(miner): add schema-version migration runner across local stores by @real-venus in #5364
- feat(miner): expose the persisted plan store via read-only MCP tools by @jaytbarimbao-collab in #5371
- feat(miner): add store integrity checks and ledger retention by @real-venus in #5388
- feat(mcp): wire gittensory_feasibility_gate's claimStatus to the local claim ledger (#5157) by @joaovictor91123 in #5389
- docs(miner): operational runbook for local SQLite state (#4875) by @andriypolanski in #5390
- feat(observability): provision Grafana datasources for AMS local SQLite ledgers by @davion-knight in #5397
- feat(miner): validate config content in doctor, not just its path by @real-venus in #5402
- feat(miner): expose governor decisions via a read-only, payload-redacted MCP tool by @jaytbarimbao-collab in #5413
- feat(miner): audit DEPLOYMENT.md env vars, paths, and CLI subcommands against source by @e11734937-beep in #5414
- feat(miner): expose status/doctor diagnostics via a read-only MCP tool by @jaytbarimbao-collab in #5415
- docs(miner): add MCP client config example combining gittensory-mcp and gittensory-miner-mcp by @joaovictor91123 in #5416
- docs(miner): cross-reference the MCP tool surface from coding-agent-driver.md by @joaovictor91123 in #5418
- feat(miner): retry a transient 5xx around the CI and gate-verdict pollers by @real-venus in #5420
- fix(miner): add optional token verification to init by @luckydicer in #5422
- docs(miner): document coding-agent env vars by @luckydicer in #5423
- feat(observability): scrape REES metrics + add a dedicated REES Grafana dashboard by @JSONbored in #5412
- feat(miner-ui): add an optional ORB/Grafana footer link to the root layout by @davion-knight in #5403
🐛 Fixes
- fix(selfhost): make Docker Compose secret files readable by the container by @JSONbored in #5124
- fix(review): guard contributor screenshot fetches by @JSONbored in #4976
- fix(public-stats): redact sparse accuracy trend counts by @JSONbored in #4979
- fix(miner): isolate cli agent credential paths by @JSONbored in #4981
- fix(miner-ui): restrict run-state API to loopback by @JSONbored in #4982
- fix(review): keep screenshots allowlist-bound by @JSONbored in #4990
- fix(github): require repo stats allowlist by @JSONbored in #4978
- fix(selfhost): remove Claude reviewer tools by @JSONbored in #5105
- fix(chat): restrict grounding to public summaries by @JSONbored in #5106
- fix(miner): honor iterate loop execution mode by @JSONbored in #5108
- fix(review): scope gittensor opt-in to installed repos by @JSONbored in #5110
- fix(review): bound impact-map query cache retention by @JSONbored in #4992
- fix(review): avoid overlapping screenshot table extraction by @JSONbored in #4993
- fix(miner-governor): disambiguate self-plagiarism ties by @JSONbored in #5104
- fix(commands): authorize intent routing before AI classification by @JSONbored in #5107
- fix(selfhost): exclude compose secrets from Docker builds by @JSONbored in #5143
- fix(miner): fail closed for CLI drivers when house-rule hooks are supplied by @JSONbored in #5142
- fix(release): pin stable ORB tag to merge commit by @JSONbored in #5148
- fix(chat): redact private lane signals from Q&A by @JSONbored in #5149
- ci: run UI validation for packages/gittensory-ui-kit changes by @JSONbored in #5150
- fix(selfhost): validate ready retry settings by @JSONbored in https://github.com/JSONbored...
gittensory-orb orb-v0.4.0
Gittensory Orb container image:
docker pull ghcr.io/jsonbored/gittensory-selfhost:orb-v0.4.0Multi-arch (linux/amd64 + linux/arm64). See https://gittensory.aethereal.dev/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@0.4.0.
What's Changed
🐛 Fixes
- fix(selfhost): widen GitHub-native id columns to bigint on Postgres by @JSONbored in #5060
- feat(review): scope the live auto-tune breaker to miner-originated PRs independently (#2352) by @JSONbored in #5061
🧹 Other Changes
- feat(release): automate the ORB stable-release channel with a standing Release PR by @JSONbored in #5063
- fix(observability): name captured errors so Sentry titles describe the failure by @JSONbored in #5064
- test(settings): fix a spy call-count flake in selftune-readback.test.ts by @JSONbored in #5068
- feat(review): personalize predicted-gate readiness by contributor calibration history (#2349) by @JSONbored in #5069
- fix(release): allow an empty commit when cutting the ORB stable Release PR by @JSONbored in #5067
Full Changelog: orb-v0.4.0-beta.28...orb-v0.4.0
gittensory-orb orb-v0.4.1-beta.3
Gittensory Orb container image:
docker pull ghcr.io/jsonbored/gittensory-selfhost:orb-v0.4.1-beta.3Multi-arch (linux/amd64 + linux/arm64). See https://gittensory.aethereal.dev/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@0.4.1-beta.3.
What's Changed
🐛 Fixes
- feat(miner-governor): shape the gated open-pr submission payload from a handoff (#2337) by @JSONbored in #5091
- fix(miner-governor): wire buildHouseRulesPreToolUseHook into a real driver-construction call site by @JSONbored in #5082
- fix(commands): require an open, non-draft PR for chat's pr_author grant by @JSONbored in #5094
🧹 Other Changes
- fix(review): gate the auto-tune breaker on reversal-weighted precision (#2348) by @JSONbored in #5088
- fix(selfhost): retry the container health-status check, not just /ready by @JSONbored in #5090
Full Changelog: orb-v0.4.1-beta.2...orb-v0.4.1-beta.3
gittensory-orb orb-v0.4.1-beta.2
Gittensory Orb container image:
docker pull ghcr.io/jsonbored/gittensory-selfhost:orb-v0.4.1-beta.2Multi-arch (linux/amd64 + linux/arm64). See https://gittensory.aethereal.dev/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@0.4.1-beta.2.
What's Changed
🐛 Fixes
- fix(linear): stop fuzzy matching workspace milestones by @JSONbored in #4977
- feat(miner-governor): kill-switch propagation into the manage/loop subsystem (#2339) by @JSONbored in #5057
- fix(commands): give ask/chat their own fresh reply comment by @JSONbored in #5077
- feat(miner-governor): dry-run-by-default enforcement + fail-closed chokepoint (#2342, #2340) by @JSONbored in #5014
- fix(stats): scope reuse trend to public repos by @JSONbored in #4991
- feat(commands): let a PR's own author use chat when rate limiting is active by @JSONbored in #5087
🧹 Other Changes
- fix(selfhost): stop claude-code from treating its own review call as an interactive plan or a prompt injection by @JSONbored in #5080
- feat(review): add a [BETA] chat usage collapsible to the PR comment by @JSONbored in #5081
- feat(review): fleet-wide gaming-pattern detector for the self-host orb fleet (#2350) by @JSONbored in #5083
- fix(selfhost): retry the /ready probe in selfhost-post-update-check.sh instead of a single attempt by @JSONbored in #5086
Full Changelog: orb-v0.4.1-beta.1...orb-v0.4.1-beta.2
gittensory-orb orb-v0.4.1-beta.1
Gittensory Orb container image:
docker pull ghcr.io/jsonbored/gittensory-selfhost:orb-v0.4.1-beta.1Multi-arch (linux/amd64 + linux/arm64). See https://gittensory.aethereal.dev/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@0.4.1-beta.1.
What's Changed
🐛 Fixes
- fix(selfhost): widen 2 more GitHub-id columns found via a live-schema sweep by @JSONbored in #5062
- feat(miner-governor): closed-loop discovery re-entry trigger (#2338) by @JSONbored in #5051
🧹 Other Changes
- fix(review): log a bounded response snippet on unparseable AI output by @JSONbored in #5073
- fix(review): stop one oversized RAG chunk from failing its whole embedding batch by @JSONbored in #5074
- chore(orb): bump manifest target version to 0.4.1 by @JSONbored in #5075
Full Changelog: orb-v0.4.0...orb-v0.4.1-beta.1