diff --git a/config/examples/loopover.full.yml b/config/examples/loopover.full.yml index 0730f2eb6b..6b03c90bc5 100644 --- a/config/examples/loopover.full.yml +++ b/config/examples/loopover.full.yml @@ -121,6 +121,9 @@ publicNotes: # block — the finding can become a hard `LoopOver Gate` blocker # (always confirmed-contributor-gated). gate: + # Percent (0-20) of would-auto-close PRs randomly HELD for human adjudication instead of closing -- + # the randomized holdout behind the unbiased close-precision estimate (#8831). 0/absent disables. + # closeAuditHoldoutPct: 5 # Legacy check-run publish switch (#5355) — despite the name, this does NOT turn the deterministic # gate itself on or off. Gate evaluation, comments, labels, audit records, spend, and autonomous # merge/close all run identically whether this is true, false, or unset; the per-dimension modes diff --git a/src/selfhost/metrics.ts b/src/selfhost/metrics.ts index a2b93e5452..d4258acd31 100644 --- a/src/selfhost/metrics.ts +++ b/src/selfhost/metrics.ts @@ -168,6 +168,7 @@ export const DEFAULT_METRIC_META: readonly (readonly [string, MetricMeta])[] = [ ["loopover_orb_relay_malformed_events_total", { help: "Orb relay batch entries dropped for missing/mistyped required fields (deliveryId/eventName/rawBody).", type: "counter" }], ["loopover_orb_relay_register_total", { help: "Orb relay registration attempts, by mode and result (registered/recovered/failed).", type: "counter" }], ["loopover_pr_outcomes_total", { help: "Recorded PR gate outcomes, by decision.", type: "counter" }], + ["loopover_close_audit_holdouts_total", { help: "Would-auto-close PRs diverted to human adjudication by the close-audit holdout (#8831).", type: "counter" }], ["loopover_public_origin_acknowledged", { help: "1 when the configured public origin is acknowledged as reachable; 0 otherwise.", type: "gauge" }], ["loopover_repo_culture_profile_cache_hit_total", { help: "Repo-culture-profile cache hits.", type: "counter" }], ["loopover_repo_culture_profile_cache_miss_total", { help: "Repo-culture-profile cache misses.", type: "counter" }],