@@ -27223,7 +27223,7 @@ describe("auto-action convergence: end-to-end plan+execute for the general heuri
2722327223 // #terminal-outcome-audit: the disposition counter's "close" action_class, with the actual gate-blocker
2722427224 // code (missing_linked_issue, from the default linkedIssueGateMode:block + no-linked-issue body) as the
2722527225 // bounded blocker_class -- proof this reaches the real gate.blockers, not just a hardcoded label.
27226- expect(await renderMetrics()).toContain('gittensory_agent_disposition_total{action_class="close",autonomy_level="auto",blocker_class="missing_linked_issue"} 1');
27226+ expect(await renderMetrics()).toContain('gittensory_agent_disposition_total{action_class="close",autonomy_level="auto",blocker_class="missing_linked_issue",repo="redacted-1" } 1');
2722727227 const nativeDecision = await env.DB.prepare("select decision, summary, source from review_audit where event_type = 'gate_decision' and target_id = ?").bind(`${REPO}#60`).first<{ decision: string; summary: string; source: string }>();
2722827228 expect(nativeDecision).toMatchObject({ decision: "close", summary: "missing_linked_issue", source: "gittensory-native" });
2722927229 });
@@ -27266,7 +27266,7 @@ describe("auto-action convergence: end-to-end plan+execute for the general heuri
2726627266
2726727267 expect(seen.merged).toBe(false);
2726827268 expect(seen.closed).toBe(false);
27269- expect(await renderMetrics()).toContain('gittensory_agent_disposition_total{action_class="hold",autonomy_level="auto",blocker_class="guardrail_hold"} 1');
27269+ expect(await renderMetrics()).toContain('gittensory_agent_disposition_total{action_class="hold",autonomy_level="auto",blocker_class="guardrail_hold",repo="redacted-1" } 1');
2727027270 const holdAudit = await env.DB.prepare("select metadata_json from audit_events where event_type = 'agent.action.hold' order by created_at desc limit 1").first<{ metadata_json: string }>();
2727127271 expect(JSON.parse(holdAudit?.metadata_json ?? "{}")).toMatchObject({
2727227272 repoFullName: REPO,
@@ -27394,7 +27394,7 @@ describe("auto-action convergence: end-to-end plan+execute for the general heuri
2739427394 const mergeAudit = await env.DB.prepare("select count(*) as n from audit_events where event_type = 'agent.action.merge'").first<{ n: number }>();
2739527395 expect(mergeAudit?.n).toBeGreaterThanOrEqual(1);
2739627396 // #terminal-outcome-audit: the disposition counter's "merge" action_class, on the actual live call site.
27397- expect(await renderMetrics()).toContain('gittensory_agent_disposition_total{action_class="merge",autonomy_level="auto",blocker_class="none"} 1');
27397+ expect(await renderMetrics()).toContain('gittensory_agent_disposition_total{action_class="merge",autonomy_level="auto",blocker_class="none",repo="redacted-1" } 1');
2739827398 });
2739927399
2740027400 // #terminal-outcome-audit: end-to-end proof that the LIVE runAgentMaintenancePlanAndExecute call site (not just
@@ -27468,7 +27468,7 @@ describe("auto-action convergence: end-to-end plan+execute for the general heuri
2746827468 // early return -- this is the exact "hold, but no audit_events row at all" shape (the breaker downgrade
2746927469 // leaves no merge/close action) that previously had zero aggregate signal. close autonomy is unset in this
2747027470 // repo's settings (only merge/approve are configured), so it resolves to the default "observe".
27471- expect(await renderMetrics()).toContain('gittensory_agent_disposition_total{action_class="hold",autonomy_level="observe",blocker_class="none"} 1');
27471+ expect(await renderMetrics()).toContain('gittensory_agent_disposition_total{action_class="hold",autonomy_level="observe",blocker_class="none",repo="redacted-1" } 1');
2747227472 const holdAudit = await env.DB.prepare("select detail, metadata_json from audit_events where event_type = 'agent.action.hold' order by created_at desc limit 1").first<{ detail: string; metadata_json: string }>();
2747327473 expect(holdAudit?.detail).toBe("auto-action held by precision circuit breaker");
2747427474 expect(JSON.parse(holdAudit?.metadata_json ?? "{}")).toMatchObject({
0 commit comments