Skip to content

fix(review): stop draft PRs from re-triggering AI review - #4014

Merged
JSONbored merged 1 commit into
mainfrom
config/gate-3999-4000-auto-review-and-labels
Jul 7, 2026
Merged

fix(review): stop draft PRs from re-triggering AI review#4014
JSONbored merged 1 commit into
mainfrom
config/gate-3999-4000-auto-review-and-labels

Conversation

@JSONbored

Copy link
Copy Markdown
Owner

Summary

  • review.auto_review.skip_drafts and skip_docs_only were fully implemented and wired but unset in this repo's own .gittensory.yml, so a push to a draft PR was still triggering a full AI review pass on every commit. Enables both for JSONbored/gittensory. Companion PRs will do the same for metagraphed and awesome-claude (config lives per-repo, can't be one PR).
  • Also updates the bundled fallback manifest constant (src/config/gittensory-repo-focus-manifest.ts) to keep it byte-identical with the root .gittensory.yml, per its own "keep aligned" header comment.

Part of #3999.

Closes #3999.

Scope

  • The PR title follows type(scope): short summary Conventional Commit format.
  • 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.

Validation

  • git diff --check
  • npm run actionlint (no workflow files touched)
  • npm run typecheck
  • npm run test:coverage — not run in full; this is a config/data-only change (no new logic branches). Ran the specific existing suite (test/unit/gittensory-focus-manifest.test.ts, 13/13 passing) confirming the bundled fallback constant still parses and matches the schema.
  • npm run test:workers (no Workers-pool-relevant code touched)
  • npm run build:mcp / npm run test:mcp-pack (not touched)
  • npm run ui:openapi:check (no API/schema change)
  • npm run ui:lint / ui:typecheck / ui:build (no UI files touched)
  • npm audit --audit-level=moderate — not re-run; no dependency changes in this PR.
  • npm run docs:drift-check and npm run selfhost:config-lint -- .gittensory.yml both pass, confirming the new review field parses and is recognized.
  • New or changed behavior has unit/integration tests for new branches, fallback paths, and sanitizer boundaries — N/A, no new logic, just enabling an existing, already-tested config path.

If any required check was skipped, explain why:

  • This PR only changes a YAML config value and a matching string constant — no src/ logic branches were added, so the full CI matrix (UI build/lint, MCP pack, Workers pool, etc.) isn't relevant to this diff. The two checks that are relevant (typecheck, the manifest-constant unit test) are green.

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 stays sanitized, low-noise, and does not imply compensation guarantees or optimization tactics.
  • Auth, cookie, CORS, GitHub App, Cloudflare, or session changes include negative-path tests — N/A.
  • API/OpenAPI/MCP behavior is updated and tested where needed — N/A.
  • UI changes use live API data — N/A, no UI change.
  • Visible UI changes include a UI Evidence section — N/A, no UI change.
  • Public docs/changelogs are updated where needed — no changelog edit (not a release-prep PR).

Notes

A push to a draft PR was silently re-running the full AI reviewer on
every commit, letting contributors iterate for free while tokens kept
burning. review.auto_review.skip_drafts already exists and is fully
wired (src/signals/focus-manifest.ts) but was unset. Also enables
skip_docs_only, since a docs-only PR never needs an AI pass.
@superagent-security

Copy link
Copy Markdown
Contributor

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

@JSONbored JSONbored self-assigned this Jul 7, 2026
@JSONbored
JSONbored merged commit b939b03 into main Jul 7, 2026
6 of 7 checks passed
@JSONbored
JSONbored deleted the config/gate-3999-4000-auto-review-and-labels branch July 7, 2026 10:11
@loopover-orb loopover-orb Bot added the gittensor:bug Gittensor-scored bug fix — scores a 0.05x multiplier. label Jul 7, 2026
@codecov

codecov Bot commented Jul 7, 2026

Copy link
Copy Markdown

❌ 57 Tests Failed:

Tests completed Failed Passed Skipped
10413 57 10356 7
View the top 3 failed test(s) by shortest run time
test/integration/api.test.ts > test/integration/api.test.ts
Stack Traces | 0s run time
Error: Failed to resolve entry for package "@jsonbored/gittensory-engine". The package may have incorrect main/module/exports specified in its package.json.
 ❯ .../gittensory-miner/lib/opportunity-fanout.js:2:1
 ❯ src/mcp/find-opportunities.ts:11:1
test/integration/maintainer-activation.test.ts > test/integration/maintainer-activation.test.ts
Stack Traces | 0s run time
Error: Failed to resolve entry for package "@jsonbored/gittensory-engine". The package may have incorrect main/module/exports specified in its package.json.
 ❯ .../gittensory-miner/lib/opportunity-fanout.js:2:1
 ❯ src/mcp/find-opportunities.ts:11:1
test/integration/orb-broker.test.ts > test/integration/orb-broker.test.ts
Stack Traces | 0s run time
Error: Failed to resolve entry for package "@jsonbored/gittensory-engine". The package may have incorrect main/module/exports specified in its package.json.
 ❯ .../gittensory-miner/lib/opportunity-fanout.js:2:1
 ❯ src/mcp/find-opportunities.ts:11:1
test/integration/orb-ingest.test.ts > test/integration/orb-ingest.test.ts
Stack Traces | 0s run time
Error: Failed to resolve entry for package "@jsonbored/gittensory-engine". The package may have incorrect main/module/exports specified in its package.json.
 ❯ .../gittensory-miner/lib/opportunity-fanout.js:2:1
 ❯ src/mcp/find-opportunities.ts:11:1
test/integration/orb-oauth.test.ts > test/integration/orb-oauth.test.ts
Stack Traces | 0s run time
Error: Failed to resolve entry for package "@jsonbored/gittensory-engine". The package may have incorrect main/module/exports specified in its package.json.
 ❯ .../gittensory-miner/lib/opportunity-fanout.js:2:1
 ❯ src/mcp/find-opportunities.ts:11:1
test/integration/orb-onboarding.test.ts > test/integration/orb-onboarding.test.ts
Stack Traces | 0s run time
Error: Failed to resolve entry for package "@jsonbored/gittensory-engine". The package may have incorrect main/module/exports specified in its package.json.
 ❯ .../gittensory-miner/lib/opportunity-fanout.js:2:1
 ❯ src/mcp/find-opportunities.ts:11:1
test/integration/orb-relay.test.ts > test/integration/orb-relay.test.ts
Stack Traces | 0s run time
Error: Failed to resolve entry for package "@jsonbored/gittensory-engine". The package may have incorrect main/module/exports specified in its package.json.
 ❯ .../gittensory-miner/lib/opportunity-fanout.js:2:1
 ❯ src/mcp/find-opportunities.ts:11:1
test/integration/orb-webhook.test.ts > test/integration/orb-webhook.test.ts
Stack Traces | 0s run time
Error: Failed to resolve entry for package "@jsonbored/gittensory-engine". The package may have incorrect main/module/exports specified in its package.json.
 ❯ .../gittensory-miner/lib/opportunity-fanout.js:2:1
 ❯ src/mcp/find-opportunities.ts:11:1
test/integration/public-quality-metrics-route-error.test.ts > test/integration/public-quality-metrics-route-error.test.ts
Stack Traces | 0s run time
Error: Failed to resolve entry for package "@jsonbored/gittensory-engine". The package may have incorrect main/module/exports specified in its package.json.
 ❯ .../gittensory-miner/lib/opportunity-fanout.js:2:1
 ❯ src/mcp/find-opportunities.ts:11:1
test/integration/public-stats-route-error.test.ts > test/integration/public-stats-route-error.test.ts
Stack Traces | 0s run time
Error: Failed to resolve entry for package "@jsonbored/gittensory-engine". The package may have incorrect main/module/exports specified in its package.json.
 ❯ .../gittensory-miner/lib/opportunity-fanout.js:2:1
 ❯ src/mcp/find-opportunities.ts:11:1
test/integration/public-stats-route.test.ts > test/integration/public-stats-route.test.ts
Stack Traces | 0s run time
Error: Failed to resolve entry for package "@jsonbored/gittensory-engine". The package may have incorrect main/module/exports specified in its package.json.
 ❯ .../gittensory-miner/lib/opportunity-fanout.js:2:1
 ❯ src/mcp/find-opportunities.ts:11:1
test/integration/routes-errors.test.ts > test/integration/routes-errors.test.ts
Stack Traces | 0s run time
Error: Failed to resolve entry for package "@jsonbored/gittensory-engine". The package may have incorrect main/module/exports specified in its package.json.
 ❯ .../gittensory-miner/lib/opportunity-fanout.js:2:1
 ❯ src/mcp/find-opportunities.ts:11:1
test/integration/subnet-interface.test.ts > test/integration/subnet-interface.test.ts
Stack Traces | 0s run time
Error: Failed to resolve entry for package "@jsonbored/gittensory-engine". The package may have incorrect main/module/exports specified in its package.json.
 ❯ .../gittensory-miner/lib/opportunity-fanout.js:2:1
 ❯ src/mcp/find-opportunities.ts:11:1
test/unit/access-boundary.test.ts > test/unit/access-boundary.test.ts
Stack Traces | 0s run time
Error: Failed to resolve entry for package "@jsonbored/gittensory-engine". The package may have incorrect main/module/exports specified in its package.json.
 ❯ .../gittensory-miner/lib/opportunity-fanout.js:2:1
 ❯ src/mcp/find-opportunities.ts:11:1
test/unit/ai-key-byok.test.ts > test/unit/ai-key-byok.test.ts
Stack Traces | 0s run time
Error: Failed to resolve entry for package "@jsonbored/gittensory-engine". The package may have incorrect main/module/exports specified in its package.json.
 ❯ .../gittensory-miner/lib/opportunity-fanout.js:2:1
 ❯ src/mcp/find-opportunities.ts:11:1
test/unit/docs-examples-schema.test.ts > test/unit/docs-examples-schema.test.ts
Stack Traces | 0s run time
Error: Failed to resolve entry for package "@jsonbored/gittensory-engine". The package may have incorrect main/module/exports specified in its package.json.
 ❯ .../gittensory-miner/lib/opportunity-fanout.js:2:1
 ❯ src/mcp/find-opportunities.ts:11:1
test/unit/draft.test.ts > test/unit/draft.test.ts
Stack Traces | 0s run time
Error: Failed to resolve entry for package "@jsonbored/gittensory-engine". The package may have incorrect main/module/exports specified in its package.json.
 ❯ .../gittensory-miner/lib/opportunity-fanout.js:2:1
 ❯ src/mcp/find-opportunities.ts:11:1
test/unit/index.test.ts > test/unit/index.test.ts
Stack Traces | 0s run time
Error: Failed to resolve entry for package "@jsonbored/gittensory-engine". The package may have incorrect main/module/exports specified in its package.json.
 ❯ .../gittensory-miner/lib/opportunity-fanout.js:2:1
 ❯ src/mcp/find-opportunities.ts:11:1
test/unit/issue-watch.test.ts > test/unit/issue-watch.test.ts
Stack Traces | 0s run time
Error: Failed to resolve entry for package "@jsonbored/gittensory-engine". The package may have incorrect main/module/exports specified in its package.json.
 ❯ .../gittensory-miner/lib/opportunity-fanout.js:2:1
 ❯ src/mcp/find-opportunities.ts:11:1
test/unit/linear-key.test.ts > test/unit/linear-key.test.ts
Stack Traces | 0s run time
Error: Failed to resolve entry for package "@jsonbored/gittensory-engine". The package may have incorrect main/module/exports specified in its package.json.
 ❯ .../gittensory-miner/lib/opportunity-fanout.js:2:1
 ❯ src/mcp/find-opportunities.ts:11:1
test/unit/mcp-automation-state.test.ts > test/unit/mcp-automation-state.test.ts
Stack Traces | 0s run time
Error: Failed to resolve entry for package "@jsonbored/gittensory-engine". The package may have incorrect main/module/exports specified in its package.json.
 ❯ .../gittensory-miner/lib/opportunity-fanout.js:2:1
 ❯ src/mcp/find-opportunities.ts:11:1
test/unit/mcp-check-slop-risk.test.ts > test/unit/mcp-check-slop-risk.test.ts
Stack Traces | 0s run time
Error: Failed to resolve entry for package "@jsonbored/gittensory-engine". The package may have incorrect main/module/exports specified in its package.json.
 ❯ .../gittensory-miner/lib/opportunity-fanout.js:2:1
 ❯ src/mcp/find-opportunities.ts:11:1
test/unit/mcp-fleet-analytics.test.ts > test/unit/mcp-fleet-analytics.test.ts
Stack Traces | 0s run time
Error: Failed to resolve entry for package "@jsonbored/gittensory-engine". The package may have incorrect main/module/exports specified in its package.json.
 ❯ .../gittensory-miner/lib/opportunity-fanout.js:2:1
 ❯ src/mcp/find-opportunities.ts:11:1
test/unit/mcp-miner-prompts.test.ts > test/unit/mcp-miner-prompts.test.ts
Stack Traces | 0s run time
Error: Failed to resolve entry for package "@jsonbored/gittensory-engine". The package may have incorrect main/module/exports specified in its package.json.
 ❯ .../gittensory-miner/lib/opportunity-fanout.js:2:1
 ❯ src/mcp/find-opportunities.ts:11:1
test/unit/mcp-notifications.test.ts > test/unit/mcp-notifications.test.ts
Stack Traces | 0s run time
Error: Failed to resolve entry for package "@jsonbored/gittensory-engine". The package may have incorrect main/module/exports specified in its package.json.
 ❯ .../gittensory-miner/lib/opportunity-fanout.js:2:1
 ❯ src/mcp/find-opportunities.ts:11:1
test/unit/mcp-output-schemas.test.ts > test/unit/mcp-output-schemas.test.ts
Stack Traces | 0s run time
Error: Failed to resolve entry for package "@jsonbored/gittensory-engine". The package may have incorrect main/module/exports specified in its package.json.
 ❯ .../gittensory-miner/lib/opportunity-fanout.js:2:1
 ❯ src/mcp/find-opportunities.ts:11:1
test/unit/mcp-plan-dag.test.ts > test/unit/mcp-plan-dag.test.ts
Stack Traces | 0s run time
Error: Failed to resolve entry for package "@jsonbored/gittensory-engine". The package may have incorrect main/module/exports specified in its package.json.
 ❯ .../gittensory-miner/lib/opportunity-fanout.js:2:1
 ❯ src/mcp/find-opportunities.ts:11:1
test/unit/mcp-planning-elicitation.test.ts > test/unit/mcp-planning-elicitation.test.ts
Stack Traces | 0s run time
Error: Failed to resolve entry for package "@jsonbored/gittensory-engine". The package may have incorrect main/module/exports specified in its package.json.
 ❯ .../gittensory-miner/lib/opportunity-fanout.js:2:1
 ❯ src/mcp/find-opportunities.ts:11:1
test/unit/mcp-predict-gate.test.ts > test/unit/mcp-predict-gate.test.ts
Stack Traces | 0s run time
Error: Failed to resolve entry for package "@jsonbored/gittensory-engine". The package may have incorrect main/module/exports specified in its package.json.
 ❯ .../gittensory-miner/lib/opportunity-fanout.js:2:1
 ❯ src/mcp/find-opportunities.ts:11:1
test/unit/mcp-refresh-repo-docs.test.ts > test/unit/mcp-refresh-repo-docs.test.ts
Stack Traces | 0s run time
Error: Failed to resolve entry for package "@jsonbored/gittensory-engine". The package may have incorrect main/module/exports specified in its package.json.
 ❯ .../gittensory-miner/lib/opportunity-fanout.js:2:1
 ❯ src/mcp/find-opportunities.ts:11:1
test/unit/mcp-run-local-scorer.test.ts > test/unit/mcp-run-local-scorer.test.ts
Stack Traces | 0s run time
Error: Failed to resolve entry for package "@jsonbored/gittensory-engine". The package may have incorrect main/module/exports specified in its package.json.
 ❯ .../gittensory-miner/lib/opportunity-fanout.js:2:1
 ❯ src/mcp/find-opportunities.ts:11:1
test/unit/mcp-suggest-boundary-tests.test.ts > test/unit/mcp-suggest-boundary-tests.test.ts
Stack Traces | 0s run time
Error: Failed to resolve entry for package "@jsonbored/gittensory-engine". The package may have incorrect main/module/exports specified in its package.json.
 ❯ .../gittensory-miner/lib/opportunity-fanout.js:2:1
 ❯ src/mcp/find-opportunities.ts:11:1
test/unit/mcp-upstream.test.ts > test/unit/mcp-upstream.test.ts
Stack Traces | 0s run time
Error: Failed to resolve entry for package "@jsonbored/gittensory-engine". The package may have incorrect main/module/exports specified in its package.json.
 ❯ .../gittensory-miner/lib/opportunity-fanout.js:2:1
 ❯ src/mcp/find-opportunities.ts:11:1
test/unit/mcp-write-tools.test.ts > test/unit/mcp-write-tools.test.ts
Stack Traces | 0s run time
Error: Failed to resolve entry for package "@jsonbored/gittensory-engine". The package may have incorrect main/module/exports specified in its package.json.
 ❯ .../gittensory-miner/lib/opportunity-fanout.js:2:1
 ❯ src/mcp/find-opportunities.ts:11:1
test/unit/ops-wire.test.ts > test/unit/ops-wire.test.ts
Stack Traces | 0s run time
Error: Failed to resolve entry for package "@jsonbored/gittensory-engine". The package may have incorrect main/module/exports specified in its package.json.
 ❯ .../gittensory-miner/lib/opportunity-fanout.js:2:1
 ❯ src/mcp/find-opportunities.ts:11:1
test/unit/parity-wire.test.ts > test/unit/parity-wire.test.ts
Stack Traces | 0s run time
Error: Failed to resolve entry for package "@jsonbored/gittensory-engine". The package may have incorrect main/module/exports specified in its package.json.
 ❯ .../gittensory-miner/lib/opportunity-fanout.js:2:1
 ❯ src/mcp/find-opportunities.ts:11:1
test/unit/plan-templates.test.ts > test/unit/plan-templates.test.ts
Stack Traces | 0s run time
Error: Failed to resolve entry for package "@jsonbored/gittensory-engine". The package may have incorrect main/module/exports specified in its package.json.
 ❯ .../gittensory-miner/lib/opportunity-fanout.js:2:1
 ❯ src/mcp/find-opportunities.ts:11:1
test/unit/retention.test.ts > test/unit/retention.test.ts
Stack Traces | 0s run time
Error: Failed to resolve entry for package "@jsonbored/gittensory-engine". The package may have incorrect main/module/exports specified in its package.json.
 ❯ .../gittensory-miner/lib/opportunity-fanout.js:2:1
 ❯ src/mcp/find-opportunities.ts:11:1
test/unit/routes-agent-approval.test.ts > test/unit/routes-agent-approval.test.ts
Stack Traces | 0s run time
Error: Failed to resolve entry for package "@jsonbored/gittensory-engine". The package may have incorrect main/module/exports specified in its package.json.
 ❯ .../gittensory-miner/lib/opportunity-fanout.js:2:1
 ❯ src/mcp/find-opportunities.ts:11:1
test/unit/routes-ai-byok.test.ts > test/unit/routes-ai-byok.test.ts
Stack Traces | 0s run time
Error: Failed to resolve entry for package "@jsonbored/gittensory-engine". The package may have incorrect main/module/exports specified in its package.json.
 ❯ .../gittensory-miner/lib/opportunity-fanout.js:2:1
 ❯ src/mcp/find-opportunities.ts:11:1
test/unit/routes-check-before-start.test.ts > test/unit/routes-check-before-start.test.ts
Stack Traces | 0s run time
Error: Failed to resolve entry for package "@jsonbored/gittensory-engine". The package may have incorrect main/module/exports specified in its package.json.
 ❯ .../gittensory-miner/lib/opportunity-fanout.js:2:1
 ❯ src/mcp/find-opportunities.ts:11:1
test/unit/routes-contributor-issue-draft.test.ts > test/unit/routes-contributor-issue-draft.test.ts
Stack Traces | 0s run time
Error: Failed to resolve entry for package "@jsonbored/gittensory-engine". The package may have incorrect main/module/exports specified in its package.json.
 ❯ .../gittensory-miner/lib/opportunity-fanout.js:2:1
 ❯ src/mcp/find-opportunities.ts:11:1
test/unit/routes-extension.test.ts > test/unit/routes-extension.test.ts
Stack Traces | 0s run time
Error: Failed to resolve entry for package "@jsonbored/gittensory-engine". The package may have incorrect main/module/exports specified in its package.json.
 ❯ .../gittensory-miner/lib/opportunity-fanout.js:2:1
 ❯ src/mcp/find-opportunities.ts:11:1
test/unit/routes-focus-manifest.test.ts > test/unit/routes-focus-manifest.test.ts
Stack Traces | 0s run time
Error: Failed to resolve entry for package "@jsonbored/gittensory-engine". The package may have incorrect main/module/exports specified in its package.json.
 ❯ .../gittensory-miner/lib/opportunity-fanout.js:2:1
 ❯ src/mcp/find-opportunities.ts:11:1
test/unit/routes-kill-switch.test.ts > test/unit/routes-kill-switch.test.ts
Stack Traces | 0s run time
Error: Failed to resolve entry for package "@jsonbored/gittensory-engine". The package may have incorrect main/module/exports specified in its package.json.
 ❯ .../gittensory-miner/lib/opportunity-fanout.js:2:1
 ❯ src/mcp/find-opportunities.ts:11:1
test/unit/routes-remediation-plan.test.ts > test/unit/routes-remediation-plan.test.ts
Stack Traces | 0s run time
Error: Failed to resolve entry for package "@jsonbored/gittensory-engine". The package may have incorrect main/module/exports specified in its package.json.
 ❯ .../gittensory-miner/lib/opportunity-fanout.js:2:1
 ❯ src/mcp/find-opportunities.ts:11:1
test/unit/routes-self-dogfood-registration-pack.test.ts > test/unit/routes-self-dogfood-registration-pack.test.ts
Stack Traces | 0s run time
Error: Failed to resolve entry for package "@jsonbored/gittensory-engine". The package may have incorrect main/module/exports specified in its package.json.
 ❯ .../gittensory-miner/lib/opportunity-fanout.js:2:1
 ❯ src/mcp/find-opportunities.ts:11:1
test/unit/routes-selfhost-dead-letter-queue.test.ts > test/unit/routes-selfhost-dead-letter-queue.test.ts
Stack Traces | 0s run time
Error: Failed to resolve entry for package "@jsonbored/gittensory-engine". The package may have incorrect main/module/exports specified in its package.json.
 ❯ .../gittensory-miner/lib/opportunity-fanout.js:2:1
 ❯ src/mcp/find-opportunities.ts:11:1
test/unit/mcp-server-telemetry.test.ts > MCP server telemetry > falls back when Hono does not expose an execution context
Stack Traces | 0.0127s run time
Error: Failed to resolve entry for package "@jsonbored/gittensory-engine". The package may have incorrect main/module/exports specified in its package.json.
 ❯ .../gittensory-miner/lib/opportunity-fanout.js:2:1
 ❯ src/mcp/find-opportunities.ts:11:1
test/unit/mcp-server-telemetry.test.ts > MCP server telemetry > records session-scoped MCP request errors without a tool name
Stack Traces | 0.0244s run time
Error: Failed to resolve entry for package "@jsonbored/gittensory-engine". The package may have incorrect main/module/exports specified in its package.json.
 ❯ .../gittensory-miner/lib/opportunity-fanout.js:2:1
 ❯ src/mcp/find-opportunities.ts:11:1
test/unit/config-templates.test.ts > config/examples review templates (#1682) > gittensory.full.yml body matches .gittensory.yml.example from WHERE IT LIVES onward
Stack Traces | 0.0252s run time
AssertionError: expected '# WHERE IT LIVES (first match wins):\…' to be '# WHERE IT LIVES (first match wins):\…' // Object.is equality

- Expected
+ Received

@@ -326,17 +326,10 @@
  # All values shown are the safe defaults; delete any line to inherit it.
  #
  # Review output controls. These tune review output without changing the
  # deterministic gate policy above. Omit the block to keep the byte-identical
  # defaults.
- #
- # SELF-HOST ONLY (`review.shared_config`, #2046): when `GITTENSORY_REPO_CONFIG_DIR` is mounted,
- # place a shared review base at `${GITTENSORY_REPO_CONFIG_DIR}/_shared/.gittensory.yml` (see
- # `config/examples/shared.gittensory.yml`). Per-repo `review:` keys overlay it field-by-field —
- # repo value wins when set, shared fills gaps, defaults stay byte-identical. Absent shared base is
- # the common case and changes nothing. A malformed shared base warns and is ignored (never blocks a
- # review). The loader records provenance at runtime in `review.sharedConfigSource` (not a YAML key).
  review:
    # Deterministic AI review eligibility filters (`review.auto_review`, #1954 / #2038–#2065). Each knob quietly
    # skips the advisory AI review for matching PRs — never a gate failure. When the Orb review check is enabled,
    # skipped PRs complete as "skipped" with a human-readable reason (see `evaluateAutoReviewSkipReason` in
    # `src/signals/focus-manifest.ts` and the public-surface `SKIP_SUMMARY.ignored_author` mapping in

 ❯ test/unit/config-templates.test.ts:36:57
test/unit/predicted-gate-engine-coverage.test.ts > predicted-gate engine module coverage (#2283) > exercises duplicate-winner election helpers
Stack Traces | 0.0303s run time
AssertionError: expected false to be true // Object.is equality

- Expected
+ Received

- true
+ false

 ❯ test/unit/predicted-gate-engine-coverage.test.ts:109:155
test/unit/mcp-server-telemetry.test.ts > MCP server telemetry > records sanitized error telemetry when the MCP transport handler throws
Stack Traces | 0.248s run time
Error: Failed to resolve entry for package "@jsonbored/gittensory-engine". The package may have incorrect main/module/exports specified in its package.json.
 ❯ .../gittensory-miner/lib/opportunity-fanout.js:2:1
 ❯ src/mcp/find-opportunities.ts:11:1
test/unit/queue.test.ts > auto-action convergence: end-to-end plan+execute for the general heuristic path (#selfhost-auto-action-convergence) > REGRESSION (#terminal-outcome-audit): an engaged holdonly breaker withholds a real would-merge AND increments the downgrade counter
Stack Traces | 0.843s run time
AssertionError: expected '# HELP gittensory_github_response_cac…' to contain 'gittensory_agent_disposition_total{ac…'

- Expected
+ Received

- gittensory_agent_disposition_total{action_class="hold",autonomy_level="observe",blocker_class="none"} 1
+ # HELP gittensory_github_response_cache_total GitHub response cache outcomes by response class.
+ # TYPE gittensory_github_response_cache_total counter
+ gittensory_github_response_cache_total{class="sensitive",result="bypassed"} 14
+ # HELP gittensory_pr_state_cache_total Pull-request state cache outcomes.
+ # TYPE gittensory_pr_state_cache_total counter
+ gittensory_pr_state_cache_total{field="write",result="set"} 1
+ # HELP gittensory_ci_state_cache_total CI-state snapshot cache outcomes.
+ # TYPE gittensory_ci_state_cache_total counter
+ gittensory_ci_state_cache_total{field="aggregate",result="miss"} 1
+ gittensory_ci_state_cache_total{field="write",result="set"} 2
+ gittensory_github_response_cache_total{class="disabled",result="bypassed"} 10
+ # HELP gittensory_github_graphql_cache_total GitHub GraphQL cache outcomes by response class.
+ # TYPE gittensory_github_graphql_cache_total counter
+ gittensory_github_graphql_cache_total{class="sensitive",result="bypassed"} 2
+ gittensory_ci_state_cache_total{field="aggregate",result="forced"} 1
+ # HELP gittensory_precision_breaker_downgrades_total Would-merge/would-close actions downgraded to a human hold by an accuracy circuit-breaker, by breaker direction.
+ # TYPE gittensory_precision_breaker_downgrades_total counter
+ gittensory_precision_breaker_downgrades_total{direction="merge"} 1
+ # HELP gittensory_agent_disposition_total Final agent disposition per PR pass (merge/close/hold), by repo, action class, blocker-code class, and autonomy level.
+ # TYPE gittensory_agent_disposition_total counter
+ gittensory_agent_disposition_total{action_class="hold",autonomy_level="observe",blocker_class="none",repo="redacted-1"} 1
+

 ❯ test/unit/queue.test.ts:27382:35
test/unit/queue.test.ts > auto-action convergence: end-to-end plan+execute for the general heuristic path (#selfhost-auto-action-convergence) > REGRESSION: a blocked contributor PR (plain gate failure) with close=auto is actually closed via the general heuristic-close path
Stack Traces | 0.888s run time
AssertionError: expected '# HELP gittensory_github_response_cac…' to contain 'gittensory_agent_disposition_total{ac…'

- Expected
+ Received

- gittensory_agent_disposition_total{action_class="close",autonomy_level="auto",blocker_class="missing_linked_issue"} 1
+ # HELP gittensory_github_response_cache_total GitHub response cache outcomes by response class.
+ # TYPE gittensory_github_response_cache_total counter
+ gittensory_github_response_cache_total{class="disabled",result="bypassed"} 11
+ gittensory_github_pull_request_files_fetch_total{caller="live_review"} 3
+ gittensory_github_response_cache_total{class="sensitive",result="bypassed"} 18
+ # HELP gittensory_pr_state_cache_total Pull-request state cache outcomes.
+ # TYPE gittensory_pr_state_cache_total counter
+ gittensory_pr_state_cache_total{field="mergeable_state",result="miss"} 1
+ gittensory_pr_state_cache_total{field="write",result="set"} 1
+ # HELP gittensory_ci_state_cache_total CI-state snapshot cache outcomes.
+ # TYPE gittensory_ci_state_cache_total counter
+ gittensory_ci_state_cache_total{field="aggregate",result="miss"} 1
+ gittensory_ci_state_cache_total{field="write",result="set"} 2
+ # HELP gittensory_github_graphql_cache_total GitHub GraphQL cache outcomes by response class.
+ # TYPE gittensory_github_graphql_cache_total counter
+ gittensory_github_graphql_cache_total{class="sensitive",result="bypassed"} 2
+ gittensory_ci_state_cache_total{field="aggregate",result="forced"} 1
+ # HELP gittensory_agent_disposition_total Final agent disposition per PR pass (merge/close/hold), by repo, action class, blocker-code class, and autonomy level.
+ # TYPE gittensory_agent_disposition_total counter
+ gittensory_agent_disposition_total{action_class="close",autonomy_level="auto",blocker_class="missing_linked_issue",repo="redacted-1"} 1
+

 ❯ test/unit/queue.test.ts:27137:35
test/unit/queue.test.ts > auto-action convergence: end-to-end plan+execute for the general heuristic path (#selfhost-auto-action-convergence) > a guardrail-path hold (neutral gate conclusion) records blocker_class=guardrail_hold, not 'none'
Stack Traces | 0.905s run time
AssertionError: expected '# HELP gittensory_github_response_cac…' to contain 'gittensory_agent_disposition_total{ac…'

- Expected
+ Received

- gittensory_agent_disposition_total{action_class="hold",autonomy_level="auto",blocker_class="guardrail_hold"} 1
+ # HELP gittensory_github_response_cache_total GitHub response cache outcomes by response class.
+ # TYPE gittensory_github_response_cache_total counter
+ gittensory_github_response_cache_total{class="disabled",result="bypassed"} 11
+ gittensory_github_pull_request_files_fetch_total{caller="live_review"} 1
+ gittensory_github_response_cache_total{class="sensitive",result="bypassed"} 17
+ # HELP gittensory_pr_state_cache_total Pull-request state cache outcomes.
+ # TYPE gittensory_pr_state_cache_total counter
+ gittensory_pr_state_cache_total{field="mergeable_state",result="miss"} 1
+ gittensory_pr_state_cache_total{field="write",result="set"} 1
+ # HELP gittensory_ci_state_cache_total CI-state snapshot cache outcomes.
+ # TYPE gittensory_ci_state_cache_total counter
+ gittensory_ci_state_cache_total{field="aggregate",result="miss"} 1
+ gittensory_ci_state_cache_total{field="write",result="set"} 2
+ # HELP gittensory_github_graphql_cache_total GitHub GraphQL cache outcomes by response class.
+ # TYPE gittensory_github_graphql_cache_total counter
+ gittensory_github_graphql_cache_total{class="sensitive",result="bypassed"} 2
+ gittensory_ci_state_cache_total{field="aggregate",result="forced"} 1
+ # HELP gittensory_agent_disposition_total Final agent disposition per PR pass (merge/close/hold), by repo, action class, blocker-code class, and autonomy level.
+ # TYPE gittensory_agent_disposition_total counter
+ gittensory_agent_disposition_total{action_class="hold",autonomy_level="auto",blocker_class="guardrail_hold",repo="redacted-1"} 1
+

 ❯ test/unit/queue.test.ts:27180:35
test/unit/queue.test.ts > auto-action convergence: end-to-end plan+execute for the general heuristic path (#selfhost-auto-action-convergence) > REGRESSION (#selfhost-backlog-convergence): a CI-pending PR defers, then merges once check_suite.completed reports CI green (convergence chain)
Stack Traces | 0.914s run time
AssertionError: expected '# HELP gittensory_github_response_cac…' to contain 'gittensory_agent_disposition_total{ac…'

- Expected
+ Received

- gittensory_agent_disposition_total{action_class="merge",autonomy_level="auto",blocker_class="none"} 1
+ # HELP gittensory_github_response_cache_total GitHub response cache outcomes by response class.
+ # TYPE gittensory_github_response_cache_total counter
+ gittensory_github_response_cache_total{class="sensitive",result="bypassed"} 16
+ # HELP gittensory_pr_state_cache_total Pull-request state cache outcomes.
+ # TYPE gittensory_pr_state_cache_total counter
+ gittensory_pr_state_cache_total{field="write",result="set"} 1
+ # HELP gittensory_ci_state_cache_total CI-state snapshot cache outcomes.
+ # TYPE gittensory_ci_state_cache_total counter
+ gittensory_ci_state_cache_total{field="aggregate",result="miss"} 1
+ gittensory_ci_state_cache_total{field="write",result="set"} 2
+ gittensory_github_response_cache_total{class="disabled",result="bypassed"} 9
+ # HELP gittensory_github_graphql_cache_total GitHub GraphQL cache outcomes by response class.
+ # TYPE gittensory_github_graphql_cache_total counter
+ gittensory_github_graphql_cache_total{class="sensitive",result="bypassed"} 2
+ gittensory_ci_state_cache_total{field="aggregate",result="forced"} 1
+ # HELP gittensory_agent_disposition_total Final agent disposition per PR pass (merge/close/hold), by repo, action class, blocker-code class, and autonomy level.
+ # TYPE gittensory_agent_disposition_total counter
+ gittensory_agent_disposition_total{action_class="merge",autonomy_level="auto",blocker_class="none",repo="redacted-1"} 1
+

 ❯ test/unit/queue.test.ts:27308:35

To view more test analytics, go to the Test Analytics Dashboard
📋 Got 3 mins? Take this short survey to help us improve Test Analytics.

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

Labels

gittensor:bug Gittensor-scored bug fix — scores a 0.05x multiplier.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

fix(review): configure review.auto_review (skip_drafts, skip_docs_only, size caps) across gated repos

1 participant