@cat-factory/orchestration 0.210.0 → 0.211.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/modules/board/riskPolicySelectionGuard.d.ts.map +1 -1
- package/dist/modules/board/riskPolicySelectionGuard.js +2 -0
- package/dist/modules/board/riskPolicySelectionGuard.js.map +1 -1
- package/dist/modules/execution/MergeResolver.d.ts +8 -1
- package/dist/modules/execution/MergeResolver.d.ts.map +1 -1
- package/dist/modules/execution/MergeResolver.js +102 -57
- package/dist/modules/execution/MergeResolver.js.map +1 -1
- package/dist/modules/execution/RunMergePolicy.d.ts +16 -1
- package/dist/modules/execution/RunMergePolicy.d.ts.map +1 -1
- package/dist/modules/execution/RunMergePolicy.js +21 -0
- package/dist/modules/execution/RunMergePolicy.js.map +1 -1
- package/dist/modules/execution/StepDecisionController.d.ts +35 -4
- package/dist/modules/execution/StepDecisionController.d.ts.map +1 -1
- package/dist/modules/execution/StepDecisionController.js +57 -10
- package/dist/modules/execution/StepDecisionController.js.map +1 -1
- package/dist/modules/execution/policy-types.d.ts +8 -1
- package/dist/modules/execution/policy-types.d.ts.map +1 -1
- package/dist/modules/merge/RiskPolicyService.d.ts.map +1 -1
- package/dist/modules/merge/RiskPolicyService.js +12 -2
- package/dist/modules/merge/RiskPolicyService.js.map +1 -1
- package/package.json +11 -11
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"riskPolicySelectionGuard.d.ts","sourceRoot":"","sources":["../../../src/modules/board/riskPolicySelectionGuard.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAA8B,MAAM,wBAAwB,CAAA;AAExF,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAA;AAI/D;;;;;;;;;;;;;GAaG;AACH,MAAM,WAAW,wBAAwB;IACvC;;;;;OAKG;IACH,eAAe,CAAC,KAAK,EAAE;QACrB,WAAW,EAAE,MAAM,CAAA;QACnB,KAAK,EAAE,cAAc,CAAA;QACrB,SAAS,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAA;QACpC,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAA;KAClC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;CAClB;
|
|
1
|
+
{"version":3,"file":"riskPolicySelectionGuard.d.ts","sourceRoot":"","sources":["../../../src/modules/board/riskPolicySelectionGuard.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAA8B,MAAM,wBAAwB,CAAA;AAExF,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAA;AAI/D;;;;;;;;;;;;;GAaG;AACH,MAAM,WAAW,wBAAwB;IACvC;;;;;OAKG;IACH,eAAe,CAAC,KAAK,EAAE;QACrB,WAAW,EAAE,MAAM,CAAA;QACnB,KAAK,EAAE,cAAc,CAAA;QACrB,SAAS,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAA;QACpC,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAA;KAClC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;CAClB;AAeD,wBAAgB,8BAA8B,CAAC,IAAI,EAAE;IACnD,oBAAoB,CAAC,EAAE,oBAAoB,CAAA;CAC5C,GAAG,wBAAwB,CAyB3B"}
|
|
@@ -5,6 +5,8 @@ import { resolveRiskPolicy } from '../merge/riskPolicyResolution.js';
|
|
|
5
5
|
const REFUSAL_MESSAGE = {
|
|
6
6
|
relaxes_role_sandbox: 'This task runs sandboxed for your role, and the merge policy you picked does not. Ask a ' +
|
|
7
7
|
'workspace admin to change the policy or to run this task themselves.',
|
|
8
|
+
relaxes_role_submission_allowlist: 'The merge policy you picked would let your role land kinds of change this task holds it ' +
|
|
9
|
+
'back from. Ask a workspace admin to change the policy or to run this task themselves.',
|
|
8
10
|
relaxes_role_class_rule: 'The merge policy you picked auto-merges changes your role is held to review on this task. ' +
|
|
9
11
|
'Ask a workspace admin to change the policy or to run this task themselves.',
|
|
10
12
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"riskPolicySelectionGuard.js","sourceRoot":"","sources":["../../../src/modules/board/riskPolicySelectionGuard.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,yBAAyB,EAAE,MAAM,wBAAwB,CAAA;AAElE,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAA;AA+BpE,kFAAkF;AAClF,MAAM,eAAe,GAA+C;IAClE,oBAAoB,EAClB,0FAA0F;QAC1F,sEAAsE;IACxE,uBAAuB,EACrB,4FAA4F;QAC5F,4EAA4E;CAC/E,CAAA;AAED,MAAM,UAAU,8BAA8B,CAAC,IAE9C;IACC,OAAO;QACL,KAAK,CAAC,eAAe,CAAC,KAAK;YACzB,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,KAAK,CAAA;YACvD,2FAA2F;YAC3F,uFAAuF;YACvF,kFAAkF;YAClF,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,aAAa;gBAAE,OAAM;YAC9C,IAAI,CAAC,SAAS,IAAI,EAAE,CAAC,KAAK,CAAC,MAAM,IAAI,EAAE,CAAC;gBAAE,OAAM;YAChD,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;gBACnC,iBAAiB,CAAC;oBAChB,UAAU,EAAE,IAAI,CAAC,oBAAoB;oBACrC,WAAW;oBACX,YAAY,EAAE,SAAS;iBACxB,CAAC;gBACF,iBAAiB,CAAC;oBAChB,UAAU,EAAE,IAAI,CAAC,oBAAoB;oBACrC,WAAW;oBACX,YAAY,EAAE,MAAM;iBACrB,CAAC;aACH,CAAC,CAAA;YACF,MAAM,OAAO,GAAG,yBAAyB,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,CAAA;YAC9D,IAAI,OAAO;gBAAE,MAAM,IAAI,cAAc,CAAC,eAAe,CAAC,OAAO,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAA;QACtF,CAAC;KACF,CAAA;AACH,CAAC"}
|
|
1
|
+
{"version":3,"file":"riskPolicySelectionGuard.js","sourceRoot":"","sources":["../../../src/modules/board/riskPolicySelectionGuard.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,yBAAyB,EAAE,MAAM,wBAAwB,CAAA;AAElE,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAA;AA+BpE,kFAAkF;AAClF,MAAM,eAAe,GAA+C;IAClE,oBAAoB,EAClB,0FAA0F;QAC1F,sEAAsE;IACxE,iCAAiC,EAC/B,0FAA0F;QAC1F,uFAAuF;IACzF,uBAAuB,EACrB,4FAA4F;QAC5F,4EAA4E;CAC/E,CAAA;AAED,MAAM,UAAU,8BAA8B,CAAC,IAE9C;IACC,OAAO;QACL,KAAK,CAAC,eAAe,CAAC,KAAK;YACzB,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,KAAK,CAAA;YACvD,2FAA2F;YAC3F,uFAAuF;YACvF,kFAAkF;YAClF,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,aAAa;gBAAE,OAAM;YAC9C,IAAI,CAAC,SAAS,IAAI,EAAE,CAAC,KAAK,CAAC,MAAM,IAAI,EAAE,CAAC;gBAAE,OAAM;YAChD,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;gBACnC,iBAAiB,CAAC;oBAChB,UAAU,EAAE,IAAI,CAAC,oBAAoB;oBACrC,WAAW;oBACX,YAAY,EAAE,SAAS;iBACxB,CAAC;gBACF,iBAAiB,CAAC;oBAChB,UAAU,EAAE,IAAI,CAAC,oBAAoB;oBACrC,WAAW;oBACX,YAAY,EAAE,MAAM;iBACrB,CAAC;aACH,CAAC,CAAA;YACF,MAAM,OAAO,GAAG,yBAAyB,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,CAAA;YAC9D,IAAI,OAAO;gBAAE,MAAM,IAAI,cAAc,CAAC,eAAe,CAAC,OAAO,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAA;QACtF,CAAC;KACF,CAAA;AACH,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { Block, BlockRepository, ClassRulesByRole, ExecutionInstance, MergeClassRules, MergeDecision } from '@cat-factory/kernel';
|
|
1
|
+
import type { Block, BlockRepository, ClassRulesByRole, ExecutionInstance, MergeClassRules, MergeDecision, SubmissionClassesByRole } from '@cat-factory/kernel';
|
|
2
2
|
import type { NotificationService } from '../notifications/NotificationService.js';
|
|
3
3
|
import type { MergeTrackRecordService } from '../merge/MergeTrackRecordService.js';
|
|
4
4
|
/** The auto-merge ceilings the resolver compares a merger assessment against. */
|
|
@@ -23,6 +23,13 @@ interface MergeThresholds {
|
|
|
23
23
|
* rules put it.
|
|
24
24
|
*/
|
|
25
25
|
classRulesByRole?: ClassRulesByRole;
|
|
26
|
+
/**
|
|
27
|
+
* Per-role allowlist of the change classes this preset will land at all. Orthogonal to
|
|
28
|
+
* {@link classRulesByRole} and applied ABOVE it: a class the rules would auto-merge is still
|
|
29
|
+
* refused when it is outside the initiator's allowlist. An absent map (or an absent role
|
|
30
|
+
* entry) is unrestricted.
|
|
31
|
+
*/
|
|
32
|
+
submissionClassesByRole?: SubmissionClassesByRole;
|
|
26
33
|
}
|
|
27
34
|
/**
|
|
28
35
|
* The outcome of {@link MergeResolverDeps.finalizeMerge} — a task's real merge over ALL its
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MergeResolver.d.ts","sourceRoot":"","sources":["../../../src/modules/execution/MergeResolver.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,KAAK,EACL,eAAe,EAEf,gBAAgB,EAChB,iBAAiB,
|
|
1
|
+
{"version":3,"file":"MergeResolver.d.ts","sourceRoot":"","sources":["../../../src/modules/execution/MergeResolver.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,KAAK,EACL,eAAe,EAEf,gBAAgB,EAChB,iBAAiB,EAIjB,eAAe,EACf,aAAa,EACb,uBAAuB,EACxB,MAAM,qBAAqB,CAAA;AAQ5B,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yCAAyC,CAAA;AAClF,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,qCAAqC,CAAA;AAOlF,iFAAiF;AACjF,UAAU,eAAe;IACvB,qFAAqF;IACrF,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,qFAAqF;IACrF,IAAI,EAAE,MAAM,CAAA;IACZ,aAAa,EAAE,MAAM,CAAA;IACrB,OAAO,EAAE,MAAM,CAAA;IACf,SAAS,EAAE,MAAM,CAAA;IACjB,wFAAwF;IACxF,gBAAgB,EAAE,OAAO,CAAA;IACzB;;;OAGG;IACH,UAAU,CAAC,EAAE,eAAe,CAAA;IAC5B;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,gBAAgB,CAAA;IACnC;;;;;OAKG;IACH,uBAAuB,CAAC,EAAE,uBAAuB,CAAA;CAClD;AAiHD;;;;;;;GAOG;AACH,MAAM,MAAM,mBAAmB,GAC3B;IAAE,IAAI,EAAE,QAAQ,CAAA;CAAE,GAClB;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,MAAM,EAAE,MAAM,EAAE,CAAC;IAAC,QAAQ,EAAE,MAAM,EAAE,CAAA;CAAE,CAAA;AAE7D,iGAAiG;AACjG,MAAM,WAAW,iBAAiB;IAChC,eAAe,EAAE,eAAe,CAAA;IAChC,mBAAmB,CAAC,EAAE,mBAAmB,CAAA;IACzC,6FAA6F;IAC7F,iBAAiB,EAAE,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,KAAK,OAAO,CAAC,eAAe,CAAC,CAAA;IAClF;;;;OAIG;IACH,aAAa,EAAE,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,mBAAmB,CAAC,CAAA;IACrF;;;;;OAKG;IACH,gBAAgB,CAAC,EAAE,uBAAuB,CAAA;CAC3C;AAED;;;;;;;GAOG;AACH,qBAAa,aAAa;IACZ,OAAO,CAAC,QAAQ,CAAC,IAAI;IAAjC,YAA6B,IAAI,EAAE,iBAAiB,EAAI;IAExD;;;;;OAKG;IACG,iBAAiB,CACrB,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,iBAAiB,EAC3B,aAAa,EAAE,OAAO,GACrB,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,CAmK/B;IAED;;;;;;OAMG;IACH,OAAO,CAAC,QAAQ,CAAC,YAAY,CAG3B;IAEF;;;;;;;;;;;;OAYG;YACW,mBAAmB;IAcjC,oFAAoF;YACtE,gBAAgB;CA+C/B"}
|
|
@@ -1,8 +1,62 @@
|
|
|
1
|
-
import { isDryRun, parseMergeAssessment, resolveRoleScopedMergeClassRule, } from '@cat-factory/contracts';
|
|
1
|
+
import { isDryRun, parseMergeAssessment, resolveRoleScopedMergeClassRule, submissionAllowedForRole, submissionAllowlistForRole, } from '@cat-factory/contracts';
|
|
2
2
|
/** Format a 0..1 score as a rounded percentage for notification copy. */
|
|
3
3
|
function pct(score) {
|
|
4
4
|
return `${Math.round(score * 100)}%`;
|
|
5
5
|
}
|
|
6
|
+
/**
|
|
7
|
+
* The auto-merge precedence ladder, most-significant first:
|
|
8
|
+
*
|
|
9
|
+
* 1. A DRY RUN merges nothing, whatever else says. It outranks even `autoMergeEnabled` because
|
|
10
|
+
* it is a property of the RUN rather than of the policy: the person who started it was never
|
|
11
|
+
* authorised to land this work, so no preset can consent on their behalf.
|
|
12
|
+
* 2. The initiator's SUBMISSION ALLOWLIST, when their role carries one and this run's class is
|
|
13
|
+
* outside it. Beside `dry_run` and above the master switch for the same reason: it is about
|
|
14
|
+
* WHO started the run. What separates it from a `never` class rule is that it also refuses
|
|
15
|
+
* the MANUAL merge, so it is a bar on landing rather than a demand for review.
|
|
16
|
+
* 3. `autoMergeEnabled: false`, the master switch. "Manual review only" stays manual and a
|
|
17
|
+
* class rule can NEVER override it.
|
|
18
|
+
* 4. The class rule AS NARROWED BY THE INITIATOR'S ROLE: `always` merges regardless of the
|
|
19
|
+
* scores, and regardless of the rationale backstop, because an explicit operator policy
|
|
20
|
+
* keyed on a DETERMINISTIC backend classification outranks the agent's self-report; `never`
|
|
21
|
+
* always routes to a human. A role entry can only push this arm toward `never`.
|
|
22
|
+
* 5. The credibility + threshold comparison.
|
|
23
|
+
*
|
|
24
|
+
* The review reason is derived HERE, in the same order and from the same inputs, because the two
|
|
25
|
+
* used to be written twice and the pair has to agree: a decision that declines to merge on one
|
|
26
|
+
* rung and blames another sends the reader to edit a setting that had no part in the outcome.
|
|
27
|
+
* Every rung is kept apart from its neighbours because each needs a DIFFERENT fix. `dry_run` is
|
|
28
|
+
* fixed by re-running live, `submission_not_allowed` by a teammate on a permitted tier or a wider
|
|
29
|
+
* allowlist, `role_requires_review` by any reviewer, `class_requires_review` by editing the class
|
|
30
|
+
* rule, and `no_rationale` (scores but no explanation) is not `no_assessment` (no scores at all).
|
|
31
|
+
*/
|
|
32
|
+
function resolveMergePrecedence(input) {
|
|
33
|
+
const { effectiveRule } = input;
|
|
34
|
+
const merge = !input.dryRun &&
|
|
35
|
+
input.submissionAllowed &&
|
|
36
|
+
input.autoMergeEnabled &&
|
|
37
|
+
(effectiveRule === 'always' ||
|
|
38
|
+
(effectiveRule !== 'never' && input.credible && input.withinThresholds));
|
|
39
|
+
return {
|
|
40
|
+
merge,
|
|
41
|
+
mergeReason: effectiveRule === 'always' ? 'class_auto_merge' : 'within_thresholds',
|
|
42
|
+
reviewReason: reviewReasonFor(input),
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
/** Why review is needed, in the same order {@link resolveMergePrecedence} applies. */
|
|
46
|
+
function reviewReasonFor(input) {
|
|
47
|
+
if (input.dryRun)
|
|
48
|
+
return 'dry_run';
|
|
49
|
+
if (!input.submissionAllowed)
|
|
50
|
+
return 'submission_not_allowed';
|
|
51
|
+
if (!input.autoMergeEnabled)
|
|
52
|
+
return 'auto_merge_disabled';
|
|
53
|
+
if (input.effectiveRule === 'never') {
|
|
54
|
+
return input.narrowedByRole ? 'role_requires_review' : 'class_requires_review';
|
|
55
|
+
}
|
|
56
|
+
if (!input.hasAssessment)
|
|
57
|
+
return 'no_assessment';
|
|
58
|
+
return input.credible ? 'exceeded_thresholds' : 'no_rationale';
|
|
59
|
+
}
|
|
6
60
|
/** The assessment axes that exceed their preset ceiling (empty when all are within). */
|
|
7
61
|
function exceededAxesOf(assessment, preset) {
|
|
8
62
|
const axes = [];
|
|
@@ -73,6 +127,13 @@ export class MergeResolver {
|
|
|
73
127
|
// the mode was settled and pinned at start, so a preset edited mid-flight cannot un-sandbox a
|
|
74
128
|
// run a human is already reviewing (nor sandbox one that has been merging all along).
|
|
75
129
|
const dryRun = isDryRun(instance.mode);
|
|
130
|
+
// Whether this run's TIER may land this KIND of change at all. Read alongside the class rule
|
|
131
|
+
// rather than folded into it: the two are orthogonal and both apply, and this one is a bar on
|
|
132
|
+
// landing where a class rule only decides how much review landing takes. `unknown` passes
|
|
133
|
+
// straight through (an unreadable diff is an outage, not evidence), as does a role with no
|
|
134
|
+
// authored allowlist and a run with no pinned role at all.
|
|
135
|
+
const submissionAllowlist = submissionAllowlistForRole(preset.submissionClassesByRole, instance.initiatedByRole);
|
|
136
|
+
const submissionAllowed = submissionAllowedForRole(preset.submissionClassesByRole, instance.initiatedByRole, classification.changeClass);
|
|
76
137
|
const thresholds = {
|
|
77
138
|
presetName: preset.name,
|
|
78
139
|
maxComplexity: preset.maxComplexity,
|
|
@@ -84,6 +145,11 @@ export class MergeResolver {
|
|
|
84
145
|
// Recorded only when the role CHANGED the outcome, so its presence always means "this
|
|
85
146
|
// would have gone differently for someone else" rather than "a role was involved".
|
|
86
147
|
...(narrowedByRole ? { roleRule: effectiveRule } : {}),
|
|
148
|
+
// Recorded whenever the role IS scoped, not only when the scope refused this PR: an
|
|
149
|
+
// allowlist that permitted this class is what explains why the same role's next PR on
|
|
150
|
+
// another class will not land, and reporting it only on the refusal would make the
|
|
151
|
+
// permission read as an absence of policy.
|
|
152
|
+
...(submissionAllowlist ? { submissionClasses: [...submissionAllowlist] } : {}),
|
|
87
153
|
};
|
|
88
154
|
const base = {
|
|
89
155
|
assessment: assessment ?? undefined,
|
|
@@ -98,22 +164,26 @@ export class MergeResolver {
|
|
|
98
164
|
// check is the engine-side backstop so those can never silently merge.
|
|
99
165
|
const credible = assessment !== null && assessment.rationale.trim() !== '';
|
|
100
166
|
const exceededAxes = assessment ? exceededAxesOf(assessment, preset) : [];
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
//
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
167
|
+
const { merge: within, mergeReason, reviewReason, } = resolveMergePrecedence({
|
|
168
|
+
dryRun,
|
|
169
|
+
submissionAllowed,
|
|
170
|
+
autoMergeEnabled: preset.autoMergeEnabled,
|
|
171
|
+
effectiveRule,
|
|
172
|
+
narrowedByRole,
|
|
173
|
+
hasAssessment: assessment !== null,
|
|
174
|
+
credible,
|
|
175
|
+
withinThresholds: exceededAxes.length === 0,
|
|
176
|
+
});
|
|
177
|
+
// What a review card this outcome raises needs beyond the assessment. Built once: the two
|
|
178
|
+
// raise sites below differ only in WHY they were reached, and a card that named a different
|
|
179
|
+
// cause on the merge-failure path than on the refusal path would be reporting the resolver's
|
|
180
|
+
// control flow rather than the run's policy.
|
|
181
|
+
const cardContext = (recordId) => ({
|
|
182
|
+
changeClass: classification.changeClass,
|
|
183
|
+
...(recordId ? { recordId } : {}),
|
|
184
|
+
dryRun,
|
|
185
|
+
submissionBlocked: !submissionAllowed,
|
|
186
|
+
});
|
|
117
187
|
const record = (decision) => this.deps.mergeTrackRecord?.recordDecision(workspaceId, {
|
|
118
188
|
block,
|
|
119
189
|
executionId: instance.id,
|
|
@@ -140,46 +210,13 @@ export class MergeResolver {
|
|
|
140
210
|
// Auto-merge failed outright (e.g. branch protection / conflict, or the first PR of a
|
|
141
211
|
// multi-repo task): fall through to a review notification so a human can sort it out.
|
|
142
212
|
const pending = await record('pending_review');
|
|
143
|
-
await this.raiseReviewAndBlock(workspaceId, instance, block, assessment,
|
|
144
|
-
changeClass: classification.changeClass,
|
|
145
|
-
recordId: pending?.id,
|
|
146
|
-
dryRun,
|
|
147
|
-
});
|
|
213
|
+
await this.raiseReviewAndBlock(workspaceId, instance, block, assessment, cardContext(pending?.id));
|
|
148
214
|
return { ...base, outcome: 'awaiting_review', reason: 'merge_failed', exceededAxes };
|
|
149
215
|
}
|
|
150
216
|
}
|
|
151
217
|
const pending = await record('pending_review');
|
|
152
|
-
await this.raiseReviewAndBlock(workspaceId, instance, block, assessment,
|
|
153
|
-
|
|
154
|
-
recordId: pending?.id,
|
|
155
|
-
dryRun,
|
|
156
|
-
});
|
|
157
|
-
// Classify WHY review is needed, most-specific first, so the banner is precise, in the SAME
|
|
158
|
-
// order the auto-merge branch above applies. A missing/unparseable assessment
|
|
159
|
-
// (`no_assessment`) is distinct from one that returned scores but no rationale
|
|
160
|
-
// (`no_rationale`): the latter DID produce visible scores, so the banner must not claim there
|
|
161
|
-
// was no assessment at all.
|
|
162
|
-
//
|
|
163
|
-
// `dry_run` tops the ladder for the reason it tops the precedence: a sandboxed run's scores
|
|
164
|
-
// were never consulted, so reporting it as `exceeded_thresholds` (or as `auto_merge_disabled`,
|
|
165
|
-
// on a preset that would happily have merged it) sends someone to edit a ceiling that had no
|
|
166
|
-
// part in the outcome. `role_requires_review` is likewise kept apart from
|
|
167
|
-
// `class_requires_review` even though both mean "the rule says never": one is fixed by editing
|
|
168
|
-
// the class rule, the other by a teammate on a higher tier merging the PR as it stands.
|
|
169
|
-
const reason = dryRun
|
|
170
|
-
? 'dry_run'
|
|
171
|
-
: !preset.autoMergeEnabled
|
|
172
|
-
? 'auto_merge_disabled'
|
|
173
|
-
: effectiveRule === 'never'
|
|
174
|
-
? narrowedByRole
|
|
175
|
-
? 'role_requires_review'
|
|
176
|
-
: 'class_requires_review'
|
|
177
|
-
: assessment === null
|
|
178
|
-
? 'no_assessment'
|
|
179
|
-
: !credible
|
|
180
|
-
? 'no_rationale'
|
|
181
|
-
: 'exceeded_thresholds';
|
|
182
|
-
return { ...base, outcome: 'awaiting_review', reason, exceededAxes };
|
|
218
|
+
await this.raiseReviewAndBlock(workspaceId, instance, block, assessment, cardContext(pending?.id));
|
|
219
|
+
return { ...base, outcome: 'awaiting_review', reason: reviewReason, exceededAxes };
|
|
183
220
|
}
|
|
184
221
|
/**
|
|
185
222
|
* The track-record context a review card carries so the human can tag in the same tap.
|
|
@@ -227,10 +264,18 @@ export class MergeResolver {
|
|
|
227
264
|
const body = track.dryRun
|
|
228
265
|
? `This was a dry run, so its PR was left open for a human regardless of the assessment.` +
|
|
229
266
|
(scores && assessment ? ` The merger scored it ${scores}. ${assessment.rationale}` : '')
|
|
230
|
-
:
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
267
|
+
: // Same rule as the sandbox: name the policy that actually held the PR back rather than
|
|
268
|
+
// the scores nobody consulted. It deliberately does NOT claim the change cannot land: the
|
|
269
|
+
// PR is real, and a teammate whose role may land this class can merge it from here.
|
|
270
|
+
track.submissionBlocked
|
|
271
|
+
? `This task's merge policy does not let the role that started this run land ` +
|
|
272
|
+
`${track.changeClass === 'unknown' ? 'this' : `a \`${track.changeClass}\``} change, so ` +
|
|
273
|
+
`its PR was left open regardless of the assessment.` +
|
|
274
|
+
(scores && assessment ? ` The merger scored it ${scores}. ${assessment.rationale}` : '')
|
|
275
|
+
: assessment
|
|
276
|
+
? `The merger scored this PR outside the task's auto-merge thresholds ` +
|
|
277
|
+
`(${scores}). ${assessment.rationale}`
|
|
278
|
+
: `The merger could not produce a valid assessment for this PR. Review and merge manually.`;
|
|
234
279
|
await this.deps.notificationService.raise(workspaceId, {
|
|
235
280
|
type: 'merge_review',
|
|
236
281
|
blockId: block.id,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MergeResolver.js","sourceRoot":"","sources":["../../../src/modules/execution/MergeResolver.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"MergeResolver.js","sourceRoot":"","sources":["../../../src/modules/execution/MergeResolver.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { Block, GroupCacheHandle, ReviewEffort, RiskPolicyCacheValue, RiskPolicyRepository } from '@cat-factory/kernel';
|
|
1
|
+
import type { Block, ChangeClass, GroupCacheHandle, ReviewEffort, RiskPolicyCacheValue, RiskPolicyRepository } from '@cat-factory/kernel';
|
|
2
2
|
import type { MergeTrackRecordService } from '../merge/MergeTrackRecordService.js';
|
|
3
3
|
import type { ResolvedRunRiskPolicy } from './policy-types.js';
|
|
4
4
|
/** The collaborators the merge-policy layer needs; nothing else on the engine. */
|
|
@@ -48,6 +48,21 @@ export declare class RunMergePolicy {
|
|
|
48
48
|
* this will apply when the run settles.
|
|
49
49
|
*/
|
|
50
50
|
resolve(workspaceId: string, block: Block): Promise<ResolvedRunRiskPolicy>;
|
|
51
|
+
/**
|
|
52
|
+
* The DETERMINISTIC change class of a block's open pull request, for a policy decision that
|
|
53
|
+
* needs it outside the merger step (the manual-merge guard).
|
|
54
|
+
*
|
|
55
|
+
* One VCS call, and `unknown` whenever the class cannot be established: no repository wired,
|
|
56
|
+
* no PR number, a provider outage. That degradation is the whole reason this is worth a named
|
|
57
|
+
* method rather than an inline `?.classify(...)`: every consumer of a class MUST treat
|
|
58
|
+
* `unknown` as inert, and a call site that reached for the classification directly would be
|
|
59
|
+
* one `??` away from reading an outage as a policy verdict.
|
|
60
|
+
*
|
|
61
|
+
* Deliberately re-classifies rather than reading the class back off the recorded merge
|
|
62
|
+
* decision: a decision row is not guaranteed to exist on every path that reaches the merge
|
|
63
|
+
* route (a pipeline with no `merger` step raises `pipeline_complete` and records nothing).
|
|
64
|
+
*/
|
|
65
|
+
classifyChangeClass(workspaceId: string, block: Block): Promise<ChangeClass>;
|
|
51
66
|
/**
|
|
52
67
|
* Settle the block's latest merge track record as `human_merged`, tagging the reviewer effort
|
|
53
68
|
* when one was supplied. Resolved by BLOCK (not by run) because the merge controls that reach
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RunMergePolicy.d.ts","sourceRoot":"","sources":["../../../src/modules/execution/RunMergePolicy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,KAAK,EACL,gBAAgB,EAChB,YAAY,EACZ,oBAAoB,EACpB,oBAAoB,EACrB,MAAM,qBAAqB,CAAA;AAC5B,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,qCAAqC,CAAA;AAElF,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAA;AAE9D,kFAAkF;AAClF,MAAM,WAAW,kBAAkB;IACjC;;;OAGG;IACH,oBAAoB,CAAC,EAAE,oBAAoB,CAAA;IAC3C;;;;OAIG;IACH,eAAe,CAAC,EAAE,gBAAgB,CAAC,oBAAoB,CAAC,CAAA;IACxD;;;OAGG;IACH,gBAAgB,CAAC,EAAE,uBAAuB,CAAA;CAC3C;AAED;;;;;;;;;;;;;GAaG;AACH,qBAAa,cAAc;IACb,OAAO,CAAC,QAAQ,CAAC,IAAI;IAAjC,YAA6B,IAAI,EAAE,kBAAkB,EAAI;IAEzD;;;;;;;;;OASG;IACG,OAAO,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAO/E;IAED;;;;OAIG;IACG,gBAAgB,CACpB,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,EACf,YAAY,CAAC,EAAE,YAAY,GAAG,IAAI,GACjC,OAAO,CAAC,IAAI,CAAC,CAUf;IAED;;;;OAIG;IACG,eAAe,CAAC,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAM7E;CACF"}
|
|
1
|
+
{"version":3,"file":"RunMergePolicy.d.ts","sourceRoot":"","sources":["../../../src/modules/execution/RunMergePolicy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,KAAK,EACL,WAAW,EACX,gBAAgB,EAChB,YAAY,EACZ,oBAAoB,EACpB,oBAAoB,EACrB,MAAM,qBAAqB,CAAA;AAC5B,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,qCAAqC,CAAA;AAElF,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAA;AAE9D,kFAAkF;AAClF,MAAM,WAAW,kBAAkB;IACjC;;;OAGG;IACH,oBAAoB,CAAC,EAAE,oBAAoB,CAAA;IAC3C;;;;OAIG;IACH,eAAe,CAAC,EAAE,gBAAgB,CAAC,oBAAoB,CAAC,CAAA;IACxD;;;OAGG;IACH,gBAAgB,CAAC,EAAE,uBAAuB,CAAA;CAC3C;AAED;;;;;;;;;;;;;GAaG;AACH,qBAAa,cAAc;IACb,OAAO,CAAC,QAAQ,CAAC,IAAI;IAAjC,YAA6B,IAAI,EAAE,kBAAkB,EAAI;IAEzD;;;;;;;;;OASG;IACG,OAAO,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAO/E;IAED;;;;;;;;;;;;;OAaG;IACG,mBAAmB,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,WAAW,CAAC,CAKjF;IAED;;;;OAIG;IACG,gBAAgB,CACpB,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,EACf,YAAY,CAAC,EAAE,YAAY,GAAG,IAAI,GACjC,OAAO,CAAC,IAAI,CAAC,CAUf;IAED;;;;OAIG;IACG,eAAe,CAAC,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAM7E;CACF"}
|
|
@@ -36,6 +36,27 @@ export class RunMergePolicy {
|
|
|
36
36
|
read: cachedRiskPolicyRead(this.deps.riskPolicyCache, workspaceId),
|
|
37
37
|
});
|
|
38
38
|
}
|
|
39
|
+
/**
|
|
40
|
+
* The DETERMINISTIC change class of a block's open pull request, for a policy decision that
|
|
41
|
+
* needs it outside the merger step (the manual-merge guard).
|
|
42
|
+
*
|
|
43
|
+
* One VCS call, and `unknown` whenever the class cannot be established: no repository wired,
|
|
44
|
+
* no PR number, a provider outage. That degradation is the whole reason this is worth a named
|
|
45
|
+
* method rather than an inline `?.classify(...)`: every consumer of a class MUST treat
|
|
46
|
+
* `unknown` as inert, and a call site that reached for the classification directly would be
|
|
47
|
+
* one `??` away from reading an outage as a policy verdict.
|
|
48
|
+
*
|
|
49
|
+
* Deliberately re-classifies rather than reading the class back off the recorded merge
|
|
50
|
+
* decision: a decision row is not guaranteed to exist on every path that reaches the merge
|
|
51
|
+
* route (a pipeline with no `merger` step raises `pipeline_complete` and records nothing).
|
|
52
|
+
*/
|
|
53
|
+
async classifyChangeClass(workspaceId, block) {
|
|
54
|
+
const svc = this.deps.mergeTrackRecord;
|
|
55
|
+
if (!svc)
|
|
56
|
+
return 'unknown';
|
|
57
|
+
// `classify` is best-effort by construction and already degrades to `unknown` on any fault.
|
|
58
|
+
return (await svc.classify(workspaceId, block)).changeClass;
|
|
59
|
+
}
|
|
39
60
|
/**
|
|
40
61
|
* Settle the block's latest merge track record as `human_merged`, tagging the reviewer effort
|
|
41
62
|
* when one was supplied. Resolved by BLOCK (not by run) because the merge controls that reach
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RunMergePolicy.js","sourceRoot":"","sources":["../../../src/modules/execution/RunMergePolicy.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"RunMergePolicy.js","sourceRoot":"","sources":["../../../src/modules/execution/RunMergePolicy.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAA;AAuB1F;;;;;;;;;;;;;GAaG;AACH,MAAM,OAAO,cAAc;IACI,IAAI;IAAjC,YAA6B,IAAwB;oBAAxB,IAAI;IAAuB,CAAC;IAEzD;;;;;;;;;OASG;IACH,KAAK,CAAC,OAAO,CAAC,WAAmB,EAAE,KAAY;QAC7C,OAAO,iBAAiB,CAAC;YACvB,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,oBAAoB;YAC1C,WAAW;YACX,YAAY,EAAE,KAAK,CAAC,YAAY;YAChC,IAAI,EAAE,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,WAAW,CAAC;SACnE,CAAC,CAAA;IACJ,CAAC;IAED;;;;;;;;;;;;;OAaG;IACH,KAAK,CAAC,mBAAmB,CAAC,WAAmB,EAAE,KAAY;QACzD,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAA;QACtC,IAAI,CAAC,GAAG;YAAE,OAAO,SAAS,CAAA;QAC1B,4FAA4F;QAC5F,OAAO,CAAC,MAAM,GAAG,CAAC,QAAQ,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC,CAAC,WAAW,CAAA;IAC7D,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,gBAAgB,CACpB,WAAmB,EACnB,OAAe,EACf,YAAkC;QAElC,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAA;QACtC,IAAI,CAAC,GAAG;YAAE,OAAM;QAChB,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,gBAAgB,CAAC,WAAW,EAAE,OAAO,CAAC,CAAA;YAC/D,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW;gBAAE,OAAM;YAC1C,MAAM,GAAG,CAAC,eAAe,CAAC,WAAW,EAAE,MAAM,CAAC,WAAW,EAAE,cAAc,EAAE,YAAY,CAAC,CAAA;QAC1F,CAAC;QAAC,MAAM,CAAC;YACP,mCAAmC;QACrC,CAAC;IACH,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,eAAe,CAAC,WAAmB,EAAE,WAAmB;QAC5D,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,eAAe,CAAC,WAAW,EAAE,WAAW,EAAE,UAAU,CAAC,CAAA;QACzF,CAAC;QAAC,MAAM,CAAC;YACP,mCAAmC;QACrC,CAAC;IACH,CAAC;CACF"}
|
|
@@ -116,12 +116,23 @@ export declare class StepDecisionController {
|
|
|
116
116
|
* downstream breaks. The record settle runs AFTER the merge and is best-effort inside the
|
|
117
117
|
* service, so no part of this feature can fail or block a merge.
|
|
118
118
|
*
|
|
119
|
-
* A DRY RUN's PR is refused here
|
|
120
|
-
*
|
|
121
|
-
*
|
|
122
|
-
*
|
|
119
|
+
* A DRY RUN's PR is refused here, and so is one whose initiator's role may not land this class
|
|
120
|
+
* of change. Without those the two policies are decorative: `MergeResolver` declining to
|
|
121
|
+
* auto-merge only to leave a `merge_review` card whose own action lands the change would let a
|
|
122
|
+
* run that was never authorised to merge do exactly that, one tap later and through the surface
|
|
123
|
+
* the policy exists to guard.
|
|
123
124
|
*/
|
|
124
125
|
mergePr(workspaceId: string, blockId: string, reviewEffort?: ReviewEffort | null): Promise<Block>;
|
|
126
|
+
/**
|
|
127
|
+
* The two policies that refuse the PLATFORM merge path outright, checked in the same order
|
|
128
|
+
* `MergeResolver` applies them so the manual exit and the automatic one can never disagree
|
|
129
|
+
* about which one held a PR back.
|
|
130
|
+
*
|
|
131
|
+
* The run is loaded ONCE and handed to both. Both read state off the run that opened this PR
|
|
132
|
+
* (its mode, and the tier it was admitted under), and re-reading it per guard would be a second
|
|
133
|
+
* point-read of the same row for no second fact.
|
|
134
|
+
*/
|
|
135
|
+
private assertPlatformMayMerge;
|
|
125
136
|
/**
|
|
126
137
|
* Refuse the platform merge path for a PR a DRY RUN produced.
|
|
127
138
|
*
|
|
@@ -137,6 +148,26 @@ export declare class StepDecisionController {
|
|
|
137
148
|
* this mode guarantees is that the PLATFORM will not do it on a sandboxed run's behalf.
|
|
138
149
|
*/
|
|
139
150
|
private assertNotDryRun;
|
|
151
|
+
/**
|
|
152
|
+
* Refuse the platform merge path when the run's initiator holds a role whose merge preset
|
|
153
|
+
* allowlists which change classes it may land, and this PR's class is outside that list.
|
|
154
|
+
*
|
|
155
|
+
* The sibling of {@link assertNotDryRun}, and the reason this policy is more than a `never`
|
|
156
|
+
* class rule: a rule routes to a human, but the human it routes to may be the initiator, so
|
|
157
|
+
* without this exit a scoped role would land exactly what the allowlist withholds, one tap
|
|
158
|
+
* later, from the card their own run raised.
|
|
159
|
+
*
|
|
160
|
+
* The class is only knowable at merge time, so the order below is load-bearing: the allowlist
|
|
161
|
+
* is read first and the classification (one VCS call) is paid for ONLY when a scoped role is
|
|
162
|
+
* actually on the other side of it. An unattributed run and an unscoped role therefore cost
|
|
163
|
+
* this guard a preset read and nothing else.
|
|
164
|
+
*
|
|
165
|
+
* The refusal deliberately does NOT claim the change cannot land: the PR is real, a teammate
|
|
166
|
+
* whose role may land this class can merge it from here, and someone with write access on the
|
|
167
|
+
* host can always merge it there. Unlike the sandbox, re-running the task changes nothing (the
|
|
168
|
+
* same role would produce the same refusal), so the copy must not suggest it.
|
|
169
|
+
*/
|
|
170
|
+
private assertSubmissionAllowed;
|
|
140
171
|
/**
|
|
141
172
|
* Record that a human DECLINED to merge — they dismissed the review card rather than acting on
|
|
142
173
|
* it, so the class's rollup counts a rejection instead of a forever-`pending_review` row.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StepDecisionController.d.ts","sourceRoot":"","sources":["../../../src/modules/execution/StepDecisionController.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,gBAAgB,EACrB,KAAK,KAAK,EACV,KAAK,eAAe,EACpB,KAAK,KAAK,EAEV,KAAK,iBAAiB,EAEtB,KAAK,mBAAmB,EAExB,KAAK,SAAS,EAId,KAAK,iBAAiB,EACtB,KAAK,UAAU,EAEhB,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EAAE,KAAK,iBAAiB,EAAqC,MAAM,qBAAqB,CAAA;
|
|
1
|
+
{"version":3,"file":"StepDecisionController.d.ts","sourceRoot":"","sources":["../../../src/modules/execution/StepDecisionController.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { ConflictError, ForbiddenError, NotFoundError, ValidationError, assertFound, } from '@cat-factory/kernel';
|
|
2
2
|
import { companionTargets, isCompanionKind } from '@cat-factory/agents';
|
|
3
3
|
import { foldGateApproval, isAsyncAgentExecutor, refuseGateResolution } from '@cat-factory/kernel';
|
|
4
|
-
import { isDryRun } from '@cat-factory/contracts';
|
|
4
|
+
import { isDryRun, submissionAllowedForRole, submissionAllowlistForRole, } from '@cat-factory/contracts';
|
|
5
5
|
import { HUMAN_REVIEW_AGENT_KIND } from './ci.logic.js';
|
|
6
6
|
import { dedicatedParkSurface } from './step-park.logic.js';
|
|
7
7
|
/**
|
|
@@ -405,10 +405,11 @@ export class StepDecisionController {
|
|
|
405
405
|
* downstream breaks. The record settle runs AFTER the merge and is best-effort inside the
|
|
406
406
|
* service, so no part of this feature can fail or block a merge.
|
|
407
407
|
*
|
|
408
|
-
* A DRY RUN's PR is refused here
|
|
409
|
-
*
|
|
410
|
-
*
|
|
411
|
-
*
|
|
408
|
+
* A DRY RUN's PR is refused here, and so is one whose initiator's role may not land this class
|
|
409
|
+
* of change. Without those the two policies are decorative: `MergeResolver` declining to
|
|
410
|
+
* auto-merge only to leave a `merge_review` card whose own action lands the change would let a
|
|
411
|
+
* run that was never authorised to merge do exactly that, one tap later and through the surface
|
|
412
|
+
* the policy exists to guard.
|
|
412
413
|
*/
|
|
413
414
|
async mergePr(workspaceId, blockId, reviewEffort) {
|
|
414
415
|
await this.deps.requireWorkspace(workspaceId);
|
|
@@ -416,11 +417,27 @@ export class StepDecisionController {
|
|
|
416
417
|
if (block.status !== 'pr_ready') {
|
|
417
418
|
throw new ConflictError(`Block '${blockId}' has no PR awaiting merge`, 'no_pr_to_merge');
|
|
418
419
|
}
|
|
419
|
-
await this.
|
|
420
|
+
await this.assertPlatformMayMerge(workspaceId, block);
|
|
420
421
|
await this.deps.finalizeMerge(workspaceId, blockId);
|
|
421
422
|
await this.deps.mergePolicy.recordHumanMerge(workspaceId, blockId, reviewEffort);
|
|
422
423
|
return this.deps.requireBlock(workspaceId, blockId);
|
|
423
424
|
}
|
|
425
|
+
/**
|
|
426
|
+
* The two policies that refuse the PLATFORM merge path outright, checked in the same order
|
|
427
|
+
* `MergeResolver` applies them so the manual exit and the automatic one can never disagree
|
|
428
|
+
* about which one held a PR back.
|
|
429
|
+
*
|
|
430
|
+
* The run is loaded ONCE and handed to both. Both read state off the run that opened this PR
|
|
431
|
+
* (its mode, and the tier it was admitted under), and re-reading it per guard would be a second
|
|
432
|
+
* point-read of the same row for no second fact.
|
|
433
|
+
*/
|
|
434
|
+
async assertPlatformMayMerge(workspaceId, block) {
|
|
435
|
+
const instance = block.executionId
|
|
436
|
+
? await this.deps.executionRepository.get(workspaceId, block.executionId)
|
|
437
|
+
: null;
|
|
438
|
+
this.assertNotDryRun(block, instance);
|
|
439
|
+
await this.assertSubmissionAllowed(workspaceId, block, instance);
|
|
440
|
+
}
|
|
424
441
|
/**
|
|
425
442
|
* Refuse the platform merge path for a PR a DRY RUN produced.
|
|
426
443
|
*
|
|
@@ -435,15 +452,45 @@ export class StepDecisionController {
|
|
|
435
452
|
* real PR on the host, and someone with write access there can always merge it by hand. What
|
|
436
453
|
* this mode guarantees is that the PLATFORM will not do it on a sandboxed run's behalf.
|
|
437
454
|
*/
|
|
438
|
-
|
|
439
|
-
if (!block.executionId)
|
|
440
|
-
return;
|
|
441
|
-
const instance = await this.deps.executionRepository.get(workspaceId, block.executionId);
|
|
455
|
+
assertNotDryRun(block, instance) {
|
|
442
456
|
if (!isDryRun(instance?.mode))
|
|
443
457
|
return;
|
|
444
458
|
throw new ConflictError('This pull request came from a dry run, so it cannot be merged from here. Start the task ' +
|
|
445
459
|
'again as a live run to produce a pull request this workspace will merge.', 'dry_run_not_mergeable', { executionId: block.executionId });
|
|
446
460
|
}
|
|
461
|
+
/**
|
|
462
|
+
* Refuse the platform merge path when the run's initiator holds a role whose merge preset
|
|
463
|
+
* allowlists which change classes it may land, and this PR's class is outside that list.
|
|
464
|
+
*
|
|
465
|
+
* The sibling of {@link assertNotDryRun}, and the reason this policy is more than a `never`
|
|
466
|
+
* class rule: a rule routes to a human, but the human it routes to may be the initiator, so
|
|
467
|
+
* without this exit a scoped role would land exactly what the allowlist withholds, one tap
|
|
468
|
+
* later, from the card their own run raised.
|
|
469
|
+
*
|
|
470
|
+
* The class is only knowable at merge time, so the order below is load-bearing: the allowlist
|
|
471
|
+
* is read first and the classification (one VCS call) is paid for ONLY when a scoped role is
|
|
472
|
+
* actually on the other side of it. An unattributed run and an unscoped role therefore cost
|
|
473
|
+
* this guard a preset read and nothing else.
|
|
474
|
+
*
|
|
475
|
+
* The refusal deliberately does NOT claim the change cannot land: the PR is real, a teammate
|
|
476
|
+
* whose role may land this class can merge it from here, and someone with write access on the
|
|
477
|
+
* host can always merge it there. Unlike the sandbox, re-running the task changes nothing (the
|
|
478
|
+
* same role would produce the same refusal), so the copy must not suggest it.
|
|
479
|
+
*/
|
|
480
|
+
async assertSubmissionAllowed(workspaceId, block, instance) {
|
|
481
|
+
const role = instance?.initiatedByRole;
|
|
482
|
+
if (!role)
|
|
483
|
+
return;
|
|
484
|
+
const preset = await this.deps.mergePolicy.resolve(workspaceId, block);
|
|
485
|
+
if (!submissionAllowlistForRole(preset.submissionClassesByRole, role))
|
|
486
|
+
return;
|
|
487
|
+
const changeClass = await this.deps.mergePolicy.classifyChangeClass(workspaceId, block);
|
|
488
|
+
if (submissionAllowedForRole(preset.submissionClassesByRole, role, changeClass))
|
|
489
|
+
return;
|
|
490
|
+
throw new ConflictError(`This task's merge policy does not let a ${role} land a ${changeClass} change, so this ` +
|
|
491
|
+
'pull request cannot be merged from here. A teammate whose role may land this kind of ' +
|
|
492
|
+
'change can merge it, or an admin can widen the merge policy.', 'submission_not_allowed', { executionId: block.executionId, role, changeClass });
|
|
493
|
+
}
|
|
447
494
|
/**
|
|
448
495
|
* Record that a human DECLINED to merge — they dismissed the review card rather than acting on
|
|
449
496
|
* it, so the class's rollup counts a rejection instead of a forever-`pending_review` row.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StepDecisionController.js","sourceRoot":"","sources":["../../../src/modules/execution/StepDecisionController.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"StepDecisionController.js","sourceRoot":"","sources":["../../../src/modules/execution/StepDecisionController.ts"],"names":[],"mappings":"AAAA,OAAO,EAML,aAAa,EAEb,cAAc,EAEd,aAAa,EAGb,eAAe,EAIf,WAAW,GACZ,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EAA0B,gBAAgB,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AAC/F,OAAO,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAA;AAClG,OAAO,EACL,QAAQ,EACR,wBAAwB,EACxB,0BAA0B,GAC3B,MAAM,wBAAwB,CAAA;AAE/B,OAAO,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAA;AACvD,OAAO,EAA6B,oBAAoB,EAAE,MAAM,sBAAsB,CAAA;AAqCtF;;;;;;;;;;;GAWG;AACH;;;;;;;GAOG;AACH,MAAM,sBAAsB,GAAyC;IACnE,YAAY,EACV,yHAAyH;IAC3H,qBAAqB,EACnB,kFAAkF;IACpF,gBAAgB,EAAE,6EAA6E;IAC/F,UAAU,EAAE,6EAA6E;IACzF,YAAY,EACV,oGAAoG;IACtG,qBAAqB,EACnB,0GAA0G;IAC5G,SAAS,EAAE,2EAA2E;IACtF,eAAe,EACb,uFAAuF;IACzF,YAAY,EACV,iHAAiH;IACnH,8FAA8F;IAC9F,qDAAqD;IACrD,eAAe,EACb,8GAA8G;CACjH,CAAA;AAED,MAAM,OAAO,sBAAsB;IACJ,IAAI;IAAjC,YAA6B,IAAgC;oBAAhC,IAAI;IAA+B,CAAC;IAEjE;;;;;;;;;;;OAWG;IACK,sBAAsB,CAAC,QAA2B,EAAE,IAAkB;QAC5E,MAAM,OAAO,GAAG,oBAAoB,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAA;QACjF,IAAI,CAAC,OAAO;YAAE,OAAM;QACpB,MAAM,IAAI,aAAa,CACrB,sBAAsB,CAAC,OAAO,CAAC;QAC/B,yFAAyF;QACzF,0FAA0F;QAC1F,6FAA6F;QAC7F,uFAAuF;QACvF,yFAAyF;QACzF,kBAAkB;QAClB,OAAO,KAAK,YAAY,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,SAAS,CAC3D,CAAA;IACH,CAAC;IAED;;;;;;;;OAQG;IACK,kBAAkB,CAAC,QAAsB,EAAE,KAAgB;QACjE,MAAM,OAAO,GAAG,oBAAoB,CAAC,QAAQ,CAAC,cAAc,EAAE,KAAK,CAAC,CAAA;QACpE,IAAI,CAAC,OAAO;YAAE,OAAM;QACpB,MAAM,IAAI,cAAc,CACtB,OAAO,KAAK,iCAAiC;YAC3C,CAAC,CAAC,6JAA6J;YAC/J,CAAC,CAAC,mDAAmD,EACvD,EAAE,MAAM,EAAE,OAAO,EAAE,CACpB,CAAA;IACH,CAAC;IACD;;;;;;;;;;;;OAYG;IACH,KAAK,CAAC,qBAAqB,CACzB,WAAmB,EACnB,OAAe,EACf,YAAoB;QAEpB,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,WAAW,EAAE,OAAO,CAAC,CAAA;QACvE,IAAI,CAAC,KAAK,EAAE,WAAW,EAAE,CAAC;YACxB,MAAM,IAAI,aAAa,CAAC,kDAAkD,CAAC,CAAA;QAC7E,CAAC;QACD,sFAAsF;QACtF,uFAAuF;QACvF,yFAAyF;QACzF,qEAAqE;QACrE,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,cAAc,CAC7D,WAAW,EACX,KAAK,CAAC,WAAW,EACjB,CAAC,IAAI,EAAE,EAAE;YACP,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;YACzC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,SAAS,KAAK,uBAAuB,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;gBACtE,MAAM,IAAI,aAAa,CAAC,kDAAkD,CAAC,CAAA;YAC7E,CAAC;YACD,sFAAsF;YACtF,wFAAwF;YACxF,wFAAwF;YACxF,yFAAyF;YACzF,sBAAsB;YACtB,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;YAC5D,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC;gBACrE,MAAM,IAAI,aAAa,CACrB,kHAAkH,CACnH,CAAA;YACH,CAAC;YACD,IAAI,CAAC,IAAI,CAAC,UAAU,GAAG,EAAE,YAAY,EAAE,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,EAAE,CAAA;YAClE,yFAAyF;YACzF,2BAA2B;YAC3B,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS;gBAAE,IAAI,CAAC,MAAM,GAAG,SAAS,CAAA;QACxD,CAAC,CACF,CAAA;QACD,MAAM,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAA;QACnE,oFAAoF;QACpF,IAAI,QAAQ,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YAClC,MAAM,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,WAAW,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAA;QAC/D,CAAC;QACD,OAAO,QAAQ,CAAA;IACjB,CAAC,CAAC,gFAAgF;IAClF,KAAK,CAAC,eAAe,CACnB,WAAmB,EACnB,WAAmB,EACnB,UAAkB,EAClB,MAAc;QAEd,MAAM,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAA;QAC7C,mFAAmF;QACnF,8EAA8E;QAC9E,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,cAAc,CAC7D,WAAW,EACX,WAAW,EACX,KAAK,EAAE,IAAI,EAAE,EAAE;YACb,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE,EAAE,KAAK,UAAU,CAAC,CAAA;YAClE,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ;gBAAE,MAAM,IAAI,aAAa,CAAC,UAAU,EAAE,UAAU,CAAC,CAAA;YAC5E,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,MAAM,CAAA;YAC7B,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,CAAA;YACnC,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS;gBAAE,IAAI,CAAC,MAAM,GAAG,SAAS,CAAA;YACtD,MAAM,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,mBAAmB,CAAC,WAAW,EAAE,IAAI,EAAE,aAAa,CAAC,CAAA;QACvF,CAAC,CACF,CAAA;QACD,6EAA6E;QAC7E,6EAA6E;QAC7E,4DAA4D;QAC5D,MAAM,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,WAAW,EAAE,QAAQ,CAAC,EAAE,EAAE,UAAU,EAAE,MAAM,CAAC,CAAA;QACvF,MAAM,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAA;QACnE,OAAO,QAAQ,CAAA;IACjB,CAAC;IAED;;;;;;;;;;;;;OAaG;IACH,KAAK,CAAC,WAAW,CACf,WAAmB,EACnB,WAAmB,EACnB,UAAkB,EAClB,IAAI,GAA0B,EAAE,EAChC,KAAgB;QAEhB,MAAM,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAA;QAC7C,mFAAmF;QACnF,mFAAmF;QACnF,oFAAoF;QACpF,oFAAoF;QACpF,oFAAoF;QACpF,+BAA+B;QAC/B,IAAI,SAAS,GAAG,CAAC,CAAC,CAAA;QAClB,IAAI,eAAe,GAAG,KAAK,CAAA;QAC3B,0FAA0F;QAC1F,yFAAyF;QACzF,+EAA+E;QAC/E,IAAI,cAAc,GAAG,KAAK,CAAA;QAC1B,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,cAAc,CAC7D,WAAW,EACX,WAAW,EACX,CAAC,IAAI,EAAE,EAAE;YACP,eAAe,GAAG,KAAK,CAAA;YACvB,cAAc,GAAG,KAAK,CAAA;YACtB,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE,EAAE,KAAK,UAAU,CAAC,CAAA;YACtE,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAA;YAClC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ;gBAAE,MAAM,IAAI,aAAa,CAAC,UAAU,EAAE,UAAU,CAAC,CAAA;YAC5E,IAAI,CAAC,sBAAsB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;YACvC,qFAAqF;YACrF,qFAAqF;YACrF,uFAAuF;YACvF,yEAAyE;YACzE,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;gBACxC,eAAe,GAAG,IAAI,CAAA;gBACtB,OAAM;YACR,CAAC;YACD,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAA;YAC7C,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;gBACxC,MAAM,IAAI,aAAa,CAAC,aAAa,UAAU,gBAAgB,CAAC,CAAA;YAClE,CAAC;YACD,IAAI,IAAI,CAAC,MAAM,KAAK,QAAQ,IAAI,IAAI,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;gBACvD,MAAM,IAAI,aAAa,CAAC,cAAc,WAAW,gBAAgB,IAAI,CAAC,MAAM,EAAE,CAAC,CAAA;YACjF,CAAC;YAED,wFAAwF;YACxF,0FAA0F;YAC1F,oFAAoF;YACpF,yFAAyF;YACzF,kDAAkD;YAClD,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,gBAAgB,CAC/C,IAAI,CAAC,QAAQ,EACb,KAAK,EACL,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CACtB,CAAA;YACD,yEAAyE;YACzE,wFAAwF;YACxF,0DAA0D;YAC1D,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;gBAChC,+EAA+E;gBAC/E,oFAAoF;gBACpF,gFAAgF;gBAChF,6EAA6E;gBAC7E,+EAA+E;gBAC/E,6EAA6E;gBAC7E,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;oBAC1B,MAAM,IAAI,eAAe,CACvB,kFAAkF;wBAChF,gFAAgF;wBAChF,qBAAqB,EACvB,EAAE,MAAM,EAAE,uBAAuB,EAAE,CACpC,CAAA;gBACH,CAAC;gBACD,wFAAwF;gBACxF,wFAAwF;gBACxF,sFAAsF;gBACtF,wFAAwF;gBACxF,mFAAmF;gBACnF,2EAA2E;gBAC3E,IAAI,CAAC,SAAS,EAAE,CAAC;oBACf,MAAM,IAAI,eAAe,CACvB,oFAAoF;wBAClF,6EAA6E;wBAC7E,iFAAiF,EACnF,EAAE,MAAM,EAAE,oCAAoC,EAAE,CACjD,CAAA;gBACH,CAAC;gBACD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAA;gBAC3B,IAAI,CAAC,QAAQ,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAA;YACxC,CAAC;YACD,IAAI,CAAC,QAAQ,CAAC,SAAS,GAAG,SAAS,CAAA;YACnC,IAAI,CAAC,SAAS,EAAE,CAAC;gBACf,cAAc,GAAG,IAAI,CAAA;gBACrB,OAAM;YACR,CAAC;YACD,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,UAAU,CAAA;YACjC,oFAAoF;YACpF,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,kBAAkB,CAAC,IAAI,EAAE,SAAS,CAAC,CAAA;QAC/D,CAAC,CACF,CAAA;QACD,IAAI,eAAe;YAAE,OAAO,QAAQ,CAAA;QACpC,IAAI,cAAc,EAAE,CAAC;YACnB,yFAAyF;YACzF,iFAAiF;YACjF,EAAE;YACF,4FAA4F;YAC5F,6FAA6F;YAC7F,4FAA4F;YAC5F,uEAAuE;YACvE,MAAM,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,WAAW,EAAE,QAAQ,EAAE,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC,CAAA;YAC7F,OAAO,QAAQ,CAAA;QACjB,CAAC;QACD,MAAM,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,kBAAkB,CAAC,WAAW,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAA;QACpF,OAAO,QAAQ,CAAA;IACjB,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,kBAAkB,CACtB,WAAmB,EACnB,WAAmB,EACnB,UAAkB,EAClB,MAA6D,EAC7D,KAAgB;QAEhB,MAAM,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAA;QAC7C,gFAAgF;QAChF,oFAAoF;QACpF,yEAAyE;QACzE,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,cAAc,CAC7D,WAAW,EACX,WAAW,EACX,CAAC,IAAI,EAAE,EAAE;YACP,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE,EAAE,KAAK,UAAU,CAAC,CAAA;YAClE,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ;gBAAE,MAAM,IAAI,aAAa,CAAC,UAAU,EAAE,UAAU,CAAC,CAAA;YAC5E,IAAI,CAAC,sBAAsB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;YACvC,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;gBACxC,MAAM,IAAI,aAAa,CAAC,aAAa,UAAU,uBAAuB,CAAC,CAAA;YACzE,CAAC;YACD,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;gBACxC,MAAM,IAAI,aAAa,CAAC,aAAa,UAAU,gBAAgB,CAAC,CAAA;YAClE,CAAC;YACD,6EAA6E;YAC7E,kEAAkE;YAClE,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,mBAAmB,EAAE,CAAC;gBACjD,MAAM,IAAI,aAAa,CAAC,aAAa,UAAU,2BAA2B,CAAC,CAAA;YAC7E,CAAC;YACD,wFAAwF;YACxF,uFAAuF;YACvF,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAA;YAE7C,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE,EAAE,KAAK,UAAU,CAAC,CAAA;YAE5E,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,mBAAmB,CAAA;YAC1C,IAAI,CAAC,QAAQ,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAA;YACxC,IAAI,CAAC,QAAQ,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAA;YAE9E,kFAAkF;YAClF,8EAA8E;YAC9E,gFAAgF;YAChF,iEAAiE;YACjE,IAAI,eAAe,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,EAAE,CAAC;gBACjE,MAAM,OAAO,GAAG,gBAAgB,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAA;gBAC7E,IAAI,aAAa,GAAG,CAAC,CAAC,CAAA;gBACtB,KAAK,IAAI,CAAC,GAAG,SAAS,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;oBACxC,IAAI,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAE,CAAC,SAAS,CAAC,EAAE,CAAC;wBAC/C,aAAa,GAAG,CAAC,CAAA;wBACjB,MAAK;oBACP,CAAC;gBACH,CAAC;gBACD,MAAM,QAAQ,GAAG,aAAa,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAE,CAAC,CAAC,CAAC,SAAS,CAAA;gBAC5E,IAAI,QAAQ,EAAE,CAAC;oBACb,2EAA2E;oBAC3E,4EAA4E;oBAC5E,+EAA+E;oBAC/E,MAAM,gBAAgB,GAAG,QAAQ,CAAC,MAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAA;oBAClE,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,oBAAoB,CAAC,IAAI,EAAE,aAAa,EAAE,SAAS,EAAE;wBACvE,gBAAgB;wBAChB,QAAQ,EAAE,MAAM,CAAC,QAAQ,IAAI,EAAE;wBAC/B,GAAG,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;qBAClE,CAAC,CAAA;oBACF,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS;wBAAE,IAAI,CAAC,MAAM,GAAG,SAAS,CAAA;oBACtD,OAAM;gBACR,CAAC;YACH,CAAC;YAED,2EAA2E;YAC3E,4EAA4E;YAC5E,IAAI,CAAC,KAAK,GAAG,SAAS,CAAA;YACtB,8EAA8E;YAC9E,4EAA4E;YAC5E,IAAI,CAAC,SAAS,GAAG,IAAI,CAAA;YACrB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAA;YACtB,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,CAAA;YACnC,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS;gBAAE,IAAI,CAAC,MAAM,GAAG,SAAS,CAAA;QACxD,CAAC,CACF,CAAA;QACD,MAAM,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,cAAc,CACvC,WAAW,EACX,QAAQ,CAAC,EAAE,EACX,UAAU,EACV,mBAAmB,CACpB,CAAA;QACD,MAAM,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAA;QACnE,OAAO,QAAQ,CAAA;IACjB,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,UAAU,CACd,WAAmB,EACnB,WAAmB,EACnB,UAAkB,EAClB,MAA0B,EAC1B,KAAgB;QAEhB,MAAM,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAA;QAC7C,oFAAoF;QACpF,+EAA+E;QAC/E,8EAA8E;QAC9E,IAAI,eAAe,GAAG,KAAK,CAAA;QAC3B,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,cAAc,CAC7D,WAAW,EACX,WAAW,EACX,CAAC,IAAI,EAAE,EAAE;YACP,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE,EAAE,KAAK,UAAU,CAAC,CAAA;YAClE,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ;gBAAE,MAAM,IAAI,aAAa,CAAC,UAAU,EAAE,UAAU,CAAC,CAAA;YAC5E,IAAI,CAAC,sBAAsB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;YACvC,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;gBACxC,MAAM,IAAI,aAAa,CAAC,aAAa,UAAU,uBAAuB,CAAC,CAAA;YACzE,CAAC;YACD,6EAA6E;YAC7E,wEAAwE;YACxE,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,mBAAmB,EAAE,CAAC;gBACjD,MAAM,IAAI,aAAa,CAAC,aAAa,UAAU,mBAAmB,CAAC,CAAA;YACrE,CAAC;YACD,wFAAwF;YACxF,yFAAyF;YACzF,wFAAwF;YACxF,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;gBACxC,eAAe,GAAG,IAAI,CAAA;gBACtB,OAAM;YACR,CAAC;YACD,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAA;YAC7C,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,UAAU,CAAA;YACjC,IAAI,MAAM;gBAAE,IAAI,CAAC,QAAQ,CAAC,QAAQ,GAAG,MAAM,CAAA;QAC7C,CAAC,CACF,CAAA;QACD,IAAI,eAAe;YAAE,OAAO,QAAQ,CAAA;QACpC,MAAM,OAAO,GAAG,MAAM;YACpB,CAAC,CAAC,qCAAqC,MAAM,EAAE;YAC/C,CAAC,CAAC,qDAAqD,CAAA;QACzD,kFAAkF;QAClF,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,WAAW,EAAE,OAAO,EAAE,UAAU,CAAC,CAAA;QACtE,8EAA8E;QAC9E,MAAM,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,WAAW,EAAE,QAAQ,CAAC,EAAE,EAAE,UAAU,EAAE,UAAU,CAAC,CAAA;QAC3F,OAAO,WAAW,CAChB,MAAM,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,WAAW,EAAE,WAAW,CAAC,EACjE,WAAW,EACX,WAAW,CACZ,CAAA;IACH,CAAC;IAED;;;;;;;;;;;;;;OAcG;IACH,KAAK,CAAC,OAAO,CACX,WAAmB,EACnB,OAAe,EACf,YAAkC;QAElC,MAAM,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAA;QAC7C,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,OAAO,CAAC,CAAA;QAChE,IAAI,KAAK,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;YAChC,MAAM,IAAI,aAAa,CAAC,UAAU,OAAO,4BAA4B,EAAE,gBAAgB,CAAC,CAAA;QAC1F,CAAC;QACD,MAAM,IAAI,CAAC,sBAAsB,CAAC,WAAW,EAAE,KAAK,CAAC,CAAA;QACrD,MAAM,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE,OAAO,CAAC,CAAA;QACnD,MAAM,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,WAAW,EAAE,OAAO,EAAE,YAAY,CAAC,CAAA;QAChF,OAAO,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,OAAO,CAAC,CAAA;IACrD,CAAC;IAED;;;;;;;;OAQG;IACK,KAAK,CAAC,sBAAsB,CAAC,WAAmB,EAAE,KAAY;QACpE,MAAM,QAAQ,GAAG,KAAK,CAAC,WAAW;YAChC,CAAC,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,WAAW,EAAE,KAAK,CAAC,WAAW,CAAC;YACzE,CAAC,CAAC,IAAI,CAAA;QACR,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAA;QACrC,MAAM,IAAI,CAAC,uBAAuB,CAAC,WAAW,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAA;IAClE,CAAC;IAED;;;;;;;;;;;;;OAaG;IACK,eAAe,CAAC,KAAY,EAAE,QAAkC;QACtE,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC;YAAE,OAAM;QACrC,MAAM,IAAI,aAAa,CACrB,0FAA0F;YACxF,0EAA0E,EAC5E,uBAAuB,EACvB,EAAE,WAAW,EAAE,KAAK,CAAC,WAAW,EAAE,CACnC,CAAA;IACH,CAAC;IAED;;;;;;;;;;;;;;;;;;OAkBG;IACK,KAAK,CAAC,uBAAuB,CACnC,WAAmB,EACnB,KAAY,EACZ,QAAkC;QAElC,MAAM,IAAI,GAAG,QAAQ,EAAE,eAAe,CAAA;QACtC,IAAI,CAAC,IAAI;YAAE,OAAM;QACjB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,CAAC,CAAA;QACtE,IAAI,CAAC,0BAA0B,CAAC,MAAM,CAAC,uBAAuB,EAAE,IAAI,CAAC;YAAE,OAAM;QAC7E,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,mBAAmB,CAAC,WAAW,EAAE,KAAK,CAAC,CAAA;QACvF,IAAI,wBAAwB,CAAC,MAAM,CAAC,uBAAuB,EAAE,IAAI,EAAE,WAAW,CAAC;YAAE,OAAM;QACvF,MAAM,IAAI,aAAa,CACrB,2CAA2C,IAAI,WAAW,WAAW,mBAAmB;YACtF,uFAAuF;YACvF,8DAA8D,EAChE,wBAAwB,EACxB,EAAE,WAAW,EAAE,KAAK,CAAC,WAAW,EAAE,IAAI,EAAE,WAAW,EAAE,CACtD,CAAA;IACH,CAAC;IAED;;;OAGG;IACH,oBAAoB,CAAC,WAAmB,EAAE,WAAmB;QAC3D,OAAO,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,WAAW,EAAE,WAAW,CAAC,CAAA;IACxE,CAAC;CACF"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { ClassRulesByRole, MergeClassRules, RequirementConcernLevel, StepGating, WorkspaceRole } from '@cat-factory/kernel';
|
|
1
|
+
import type { ClassRulesByRole, MergeClassRules, RequirementConcernLevel, StepGating, SubmissionClassesByRole, WorkspaceRole } from '@cat-factory/kernel';
|
|
2
2
|
/**
|
|
3
3
|
* The effective risk/merge policy for one run, as {@link RunMergePolicy.resolve} resolves it
|
|
4
4
|
* (the block's selected preset, else the workspace default, else the built-in
|
|
@@ -49,5 +49,12 @@ export interface ResolvedRunRiskPolicy {
|
|
|
49
49
|
* run must stay sandboxed even if the role is un-listed mid-flight.
|
|
50
50
|
*/
|
|
51
51
|
dryRunRoles?: readonly WorkspaceRole[];
|
|
52
|
+
/**
|
|
53
|
+
* Per-ROLE allowlist of the change classes this preset will land at all. Read at MERGE time
|
|
54
|
+
* rather than at start (the opposite of `dryRunRoles` above), because the class is derived from
|
|
55
|
+
* the pull request's changed files and does not exist until there is a pull request. That is
|
|
56
|
+
* not a weaker guarantee, only a later one: opening the PR was never the harm, landing it is.
|
|
57
|
+
*/
|
|
58
|
+
submissionClassesByRole?: SubmissionClassesByRole;
|
|
52
59
|
}
|
|
53
60
|
//# sourceMappingURL=policy-types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"policy-types.d.ts","sourceRoot":"","sources":["../../../src/modules/execution/policy-types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,gBAAgB,EAChB,eAAe,EACf,uBAAuB,EACvB,UAAU,EACV,aAAa,EACd,MAAM,qBAAqB,CAAA;AAE5B;;;;;;;;GAQG;AACH,MAAM,WAAW,qBAAqB;IACpC;;;;OAIG;IACH,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,IAAI,EAAE,MAAM,CAAA;IACZ,aAAa,EAAE,MAAM,CAAA;IACrB,OAAO,EAAE,MAAM,CAAA;IACf,SAAS,EAAE,MAAM,CAAA;IACjB,aAAa,EAAE,MAAM,CAAA;IACrB,wBAAwB,EAAE,MAAM,CAAA;IAChC,4BAA4B,EAAE,uBAAuB,CAAA;IACrD,0BAA0B,EAAE,MAAM,CAAA;IAClC,yBAAyB,EAAE,MAAM,CAAA;IACjC,kBAAkB,EAAE,MAAM,CAAA;IAC1B,uBAAuB,EAAE,MAAM,CAAA;IAC/B,uFAAuF;IACvF,aAAa,EAAE,MAAM,CAAA;IACrB,eAAe,EAAE,MAAM,CAAA;IACvB,gBAAgB,EAAE,OAAO,CAAA;IACzB,YAAY,CAAC,EAAE,UAAU,GAAG,IAAI,CAAA;IAChC;;;OAGG;IACH,UAAU,CAAC,EAAE,eAAe,CAAA;IAC5B;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,gBAAgB,CAAA;IACnC;;;;;OAKG;IACH,WAAW,CAAC,EAAE,SAAS,aAAa,EAAE,CAAA;
|
|
1
|
+
{"version":3,"file":"policy-types.d.ts","sourceRoot":"","sources":["../../../src/modules/execution/policy-types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,gBAAgB,EAChB,eAAe,EACf,uBAAuB,EACvB,UAAU,EACV,uBAAuB,EACvB,aAAa,EACd,MAAM,qBAAqB,CAAA;AAE5B;;;;;;;;GAQG;AACH,MAAM,WAAW,qBAAqB;IACpC;;;;OAIG;IACH,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,IAAI,EAAE,MAAM,CAAA;IACZ,aAAa,EAAE,MAAM,CAAA;IACrB,OAAO,EAAE,MAAM,CAAA;IACf,SAAS,EAAE,MAAM,CAAA;IACjB,aAAa,EAAE,MAAM,CAAA;IACrB,wBAAwB,EAAE,MAAM,CAAA;IAChC,4BAA4B,EAAE,uBAAuB,CAAA;IACrD,0BAA0B,EAAE,MAAM,CAAA;IAClC,yBAAyB,EAAE,MAAM,CAAA;IACjC,kBAAkB,EAAE,MAAM,CAAA;IAC1B,uBAAuB,EAAE,MAAM,CAAA;IAC/B,uFAAuF;IACvF,aAAa,EAAE,MAAM,CAAA;IACrB,eAAe,EAAE,MAAM,CAAA;IACvB,gBAAgB,EAAE,OAAO,CAAA;IACzB,YAAY,CAAC,EAAE,UAAU,GAAG,IAAI,CAAA;IAChC;;;OAGG;IACH,UAAU,CAAC,EAAE,eAAe,CAAA;IAC5B;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,gBAAgB,CAAA;IACnC;;;;;OAKG;IACH,WAAW,CAAC,EAAE,SAAS,aAAa,EAAE,CAAA;IACtC;;;;;OAKG;IACH,uBAAuB,CAAC,EAAE,uBAAuB,CAAA;CAClD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RiskPolicyService.d.ts","sourceRoot":"","sources":["../../../src/modules/merge/RiskPolicyService.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,KAAK,EACL,qBAAqB,EACrB,gBAAgB,EAChB,WAAW,EACX,oBAAoB,EACpB,UAAU,EACV,oBAAoB,EACpB,qBAAqB,EACrB,mBAAmB,EACpB,MAAM,qBAAqB,CAAA;AAU5B,MAAM,WAAW,6BAA6B;IAC5C,oBAAoB,EAAE,oBAAoB,CAAA;IAC1C,mBAAmB,EAAE,mBAAmB,CAAA;IACxC,WAAW,EAAE,WAAW,CAAA;IACxB,KAAK,EAAE,KAAK,CAAA;IACZ;;;;OAIG;IACH,eAAe,CAAC,EAAE,gBAAgB,CAAC,oBAAoB,CAAC,CAAA;CACzD;AAED;;;;;;;;GAQG;AACH,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAsB;IAC9C,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAqB;IACzD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAa;IACzC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAO;IAC7B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAwC;IAE/D,YAAY,IAAI,EAAE,6BAA6B,EAM9C;IAED;;;;OAIG;YACW,UAAU;IAIxB,kFAAkF;IAC5E,IAAI,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC,CAIrD;IAED,uFAAuF;IACjF,MAAM,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,qBAAqB,GAAG,OAAO,CAAC,UAAU,CAAC,
|
|
1
|
+
{"version":3,"file":"RiskPolicyService.d.ts","sourceRoot":"","sources":["../../../src/modules/merge/RiskPolicyService.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,KAAK,EACL,qBAAqB,EACrB,gBAAgB,EAChB,WAAW,EACX,oBAAoB,EACpB,UAAU,EACV,oBAAoB,EACpB,qBAAqB,EACrB,mBAAmB,EACpB,MAAM,qBAAqB,CAAA;AAU5B,MAAM,WAAW,6BAA6B;IAC5C,oBAAoB,EAAE,oBAAoB,CAAA;IAC1C,mBAAmB,EAAE,mBAAmB,CAAA;IACxC,WAAW,EAAE,WAAW,CAAA;IACxB,KAAK,EAAE,KAAK,CAAA;IACZ;;;;OAIG;IACH,eAAe,CAAC,EAAE,gBAAgB,CAAC,oBAAoB,CAAC,CAAA;CACzD;AAED;;;;;;;;GAQG;AACH,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAsB;IAC9C,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAqB;IACzD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAa;IACzC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAO;IAC7B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAwC;IAE/D,YAAY,IAAI,EAAE,6BAA6B,EAM9C;IAED;;;;OAIG;YACW,UAAU;IAIxB,kFAAkF;IAC5E,IAAI,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC,CAIrD;IAED,uFAAuF;IACjF,MAAM,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,qBAAqB,GAAG,OAAO,CAAC,UAAU,CAAC,CA+BnF;IAED,+EAA+E;IACzE,MAAM,CAAC,WAAW,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,qBAAqB,GAAG,OAAO,CAAC,UAAU,CAAC,CAmD/F;IAED,6DAA6D;IACvD,MAAM,CAAC,WAAW,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAQ3D;IAED;;;;;;;;;;;OAWG;IACG,MAAM,CAAC,WAAW,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAuBjE;IAED,sFAAsF;YACxE,YAAY;IAiB1B,2FAA2F;IAC3F,OAAO,CAAC,QAAQ;CA0BjB"}
|
|
@@ -59,6 +59,7 @@ export class RiskPolicyService {
|
|
|
59
59
|
classRules: input.classRules,
|
|
60
60
|
classRulesByRole: input.classRulesByRole,
|
|
61
61
|
dryRunRoles: input.dryRunRoles,
|
|
62
|
+
submissionClassesByRole: input.submissionClassesByRole,
|
|
62
63
|
// The very first preset must be the default; otherwise honour the request.
|
|
63
64
|
isDefault: existing.length === 0 ? true : input.isDefault,
|
|
64
65
|
createdAt: this.clock.now(),
|
|
@@ -103,9 +104,17 @@ export class RiskPolicyService {
|
|
|
103
104
|
...(patch.judgeMaxBounces !== undefined ? { judgeMaxBounces: patch.judgeMaxBounces } : {}),
|
|
104
105
|
...(patch.autoMergeEnabled !== undefined ? { autoMergeEnabled: patch.autoMergeEnabled } : {}),
|
|
105
106
|
...(patch.forkDecision !== undefined ? { forkDecision: patch.forkDecision } : {}),
|
|
106
|
-
//
|
|
107
|
-
// omission from the submitted set (there is no "delete
|
|
107
|
+
// Each of the three role/class maps replaces the whole stored value rather than merging,
|
|
108
|
+
// so clearing one entry is a plain omission from the submitted set (there is no "delete
|
|
109
|
+
// this one key" wire shape). All three are applied here, and an editor that submits the
|
|
110
|
+
// full map every save depends on it: a patch field the service drops is indistinguishable
|
|
111
|
+
// from a save that worked, right up until the operator reloads the settings panel.
|
|
108
112
|
...(patch.classRules !== undefined ? { classRules: patch.classRules } : {}),
|
|
113
|
+
...(patch.classRulesByRole !== undefined ? { classRulesByRole: patch.classRulesByRole } : {}),
|
|
114
|
+
...(patch.dryRunRoles !== undefined ? { dryRunRoles: patch.dryRunRoles } : {}),
|
|
115
|
+
...(patch.submissionClassesByRole !== undefined
|
|
116
|
+
? { submissionClassesByRole: patch.submissionClassesByRole }
|
|
117
|
+
: {}),
|
|
109
118
|
...(patch.isDefault !== undefined ? { isDefault: patch.isDefault } : {}),
|
|
110
119
|
};
|
|
111
120
|
await this.presets.upsert(workspaceId, updated);
|
|
@@ -195,6 +204,7 @@ export class RiskPolicyService {
|
|
|
195
204
|
forkDecision: seed.forkDecision,
|
|
196
205
|
classRulesByRole: seed.classRulesByRole,
|
|
197
206
|
dryRunRoles: seed.dryRunRoles,
|
|
207
|
+
submissionClassesByRole: seed.submissionClassesByRole,
|
|
198
208
|
classRules: seed.classRules,
|
|
199
209
|
isDefault: seed.isDefault,
|
|
200
210
|
version: seed.version,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RiskPolicyService.js","sourceRoot":"","sources":["../../../src/modules/merge/RiskPolicyService.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"RiskPolicyService.js","sourceRoot":"","sources":["../../../src/modules/merge/RiskPolicyService.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cat-factory/orchestration",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.211.0",
|
|
4
4
|
"description": "Delivery-workflow engine for the Agent Architecture Board (execution, bootstrap, pipelines, board, boardScan, requirements, and composition root).",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -25,20 +25,20 @@
|
|
|
25
25
|
},
|
|
26
26
|
"dependencies": {
|
|
27
27
|
"ai": "^7.0.51",
|
|
28
|
-
"@cat-factory/agents": "0.112.
|
|
29
|
-
"@cat-factory/caching": "0.14.
|
|
30
|
-
"@cat-factory/contracts": "0.
|
|
31
|
-
"@cat-factory/integrations": "0.130.
|
|
32
|
-
"@cat-factory/kernel": "0.
|
|
33
|
-
"@cat-factory/prompt-fragments": "0.15.
|
|
34
|
-
"@cat-factory/sandbox": "0.11.
|
|
35
|
-
"@cat-factory/spend": "0.15.
|
|
36
|
-
"@cat-factory/workspaces": "0.21.
|
|
28
|
+
"@cat-factory/agents": "0.112.5",
|
|
29
|
+
"@cat-factory/caching": "0.14.25",
|
|
30
|
+
"@cat-factory/contracts": "0.244.0",
|
|
31
|
+
"@cat-factory/integrations": "0.130.1",
|
|
32
|
+
"@cat-factory/kernel": "0.243.0",
|
|
33
|
+
"@cat-factory/prompt-fragments": "0.15.70",
|
|
34
|
+
"@cat-factory/sandbox": "0.11.66",
|
|
35
|
+
"@cat-factory/spend": "0.15.7",
|
|
36
|
+
"@cat-factory/workspaces": "0.21.59"
|
|
37
37
|
},
|
|
38
38
|
"devDependencies": {
|
|
39
39
|
"typescript": "7.0.2",
|
|
40
40
|
"vitest": "^4.1.10",
|
|
41
|
-
"@cat-factory/sandbox-fixtures": "0.7.
|
|
41
|
+
"@cat-factory/sandbox-fixtures": "0.7.278"
|
|
42
42
|
},
|
|
43
43
|
"scripts": {
|
|
44
44
|
"build": "tsc -b tsconfig.build.json",
|