@telora/daemon 0.23.14 → 0.23.16
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/build-info.json +5 -3
- package/dist/backends/agent-backend.d.ts +8 -1
- package/dist/backends/agent-backend.d.ts.map +1 -1
- package/dist/backends/claude/claude-backend.d.ts.map +1 -1
- package/dist/backends/claude/claude-backend.js +4 -0
- package/dist/backends/claude/claude-backend.js.map +1 -1
- package/dist/backends/claude/one-shot-model.d.ts +11 -0
- package/dist/backends/claude/one-shot-model.d.ts.map +1 -1
- package/dist/backends/claude/one-shot-model.js +7 -4
- package/dist/backends/claude/one-shot-model.js.map +1 -1
- package/dist/backends/claude/one-shot-session.d.ts +15 -0
- package/dist/backends/claude/one-shot-session.d.ts.map +1 -0
- package/dist/backends/claude/one-shot-session.js +120 -0
- package/dist/backends/claude/one-shot-session.js.map +1 -0
- package/dist/backends/codex/codex-backend.d.ts.map +1 -1
- package/dist/backends/codex/codex-backend.js +10 -0
- package/dist/backends/codex/codex-backend.js.map +1 -1
- package/dist/ci/candidate-ref.d.ts +28 -0
- package/dist/ci/candidate-ref.d.ts.map +1 -0
- package/dist/ci/candidate-ref.js +81 -0
- package/dist/ci/candidate-ref.js.map +1 -0
- package/dist/ci/ci-sensor-loop.d.ts.map +1 -1
- package/dist/ci/ci-sensor-loop.js +2 -1
- package/dist/ci/ci-sensor-loop.js.map +1 -1
- package/dist/ci/ci-status-git.d.ts +9 -0
- package/dist/ci/ci-status-git.d.ts.map +1 -1
- package/dist/ci/ci-status-git.js +16 -2
- package/dist/ci/ci-status-git.js.map +1 -1
- package/dist/ci/ci-status.d.ts.map +1 -1
- package/dist/ci/ci-status.js +5 -1
- package/dist/ci/ci-status.js.map +1 -1
- package/dist/completion/state-cascade/state-cascade.d.ts +14 -1
- package/dist/completion/state-cascade/state-cascade.d.ts.map +1 -1
- package/dist/completion/state-cascade/state-cascade.js +26 -1
- package/dist/completion/state-cascade/state-cascade.js.map +1 -1
- package/dist/completion/team-exit/merge-phase.d.ts +11 -10
- package/dist/completion/team-exit/merge-phase.d.ts.map +1 -1
- package/dist/completion/team-exit/merge-phase.js +10 -10
- package/dist/completion/team-exit/merge-phase.js.map +1 -1
- package/dist/completion/team-teardown/team-lifecycle.d.ts +4 -3
- package/dist/completion/team-teardown/team-lifecycle.d.ts.map +1 -1
- package/dist/completion/team-teardown/team-lifecycle.js +8 -8
- package/dist/completion/team-teardown/team-lifecycle.js.map +1 -1
- package/dist/composition/execution-git-context.d.ts.map +1 -1
- package/dist/composition/execution-git-context.js +2 -0
- package/dist/composition/execution-git-context.js.map +1 -1
- package/dist/composition/execution-merge-context.d.ts +11 -3
- package/dist/composition/execution-merge-context.d.ts.map +1 -1
- package/dist/composition/execution-merge-context.js +60 -12
- package/dist/composition/execution-merge-context.js.map +1 -1
- package/dist/composition/process-close-context.js +3 -3
- package/dist/composition/process-close-context.js.map +1 -1
- package/dist/composition/state-cascade-context.d.ts.map +1 -1
- package/dist/composition/state-cascade-context.js +10 -2
- package/dist/composition/state-cascade-context.js.map +1 -1
- package/dist/composition/team-lifecycle-context.js +3 -3
- package/dist/composition/team-lifecycle-context.js.map +1 -1
- package/dist/composition/verification-context.d.ts.map +1 -1
- package/dist/composition/verification-context.js +4 -23
- package/dist/composition/verification-context.js.map +1 -1
- package/dist/config/model-resolution.d.ts +25 -1
- package/dist/config/model-resolution.d.ts.map +1 -1
- package/dist/config/model-resolution.js +26 -1
- package/dist/config/model-resolution.js.map +1 -1
- package/dist/delivery/delivery-merge-ops.d.ts +2 -0
- package/dist/delivery/delivery-merge-ops.d.ts.map +1 -1
- package/dist/delivery/delivery-merge-ops.js +2 -2
- package/dist/delivery/delivery-merge-ops.js.map +1 -1
- package/dist/delivery/delivery-reconciler.d.ts +9 -0
- package/dist/delivery/delivery-reconciler.d.ts.map +1 -1
- package/dist/delivery/delivery-reconciler.js +42 -31
- package/dist/delivery/delivery-reconciler.js.map +1 -1
- package/dist/focus/focus-executor.d.ts.map +1 -1
- package/dist/focus/focus-executor.js +1 -0
- package/dist/focus/focus-executor.js.map +1 -1
- package/dist/focus/focus-poller-spawn.d.ts.map +1 -1
- package/dist/focus/focus-poller-spawn.js +3 -1
- package/dist/focus/focus-poller-spawn.js.map +1 -1
- package/dist/focus/focus-spawn-decision.d.ts.map +1 -1
- package/dist/focus/focus-spawn-decision.js +1 -0
- package/dist/focus/focus-spawn-decision.js.map +1 -1
- package/dist/git/index.d.ts.map +1 -1
- package/dist/git/index.js +2 -1
- package/dist/git/index.js.map +1 -1
- package/dist/git/merge.d.ts +12 -2
- package/dist/git/merge.d.ts.map +1 -1
- package/dist/git/merge.js +32 -33
- package/dist/git/merge.js.map +1 -1
- package/dist/merge/approval-gate-state.d.ts.map +1 -1
- package/dist/merge/approval-gate-state.js +8 -7
- package/dist/merge/approval-gate-state.js.map +1 -1
- package/dist/merge/candidate-rework.d.ts +44 -0
- package/dist/merge/candidate-rework.d.ts.map +1 -0
- package/dist/merge/candidate-rework.js +152 -0
- package/dist/merge/candidate-rework.js.map +1 -0
- package/dist/merge/completion-hold-record.d.ts +20 -0
- package/dist/merge/completion-hold-record.d.ts.map +1 -0
- package/dist/merge/completion-hold-record.js +130 -0
- package/dist/merge/completion-hold-record.js.map +1 -0
- package/dist/merge/completion-merge-driver.d.ts +96 -0
- package/dist/merge/completion-merge-driver.d.ts.map +1 -0
- package/dist/merge/completion-merge-driver.js +94 -0
- package/dist/merge/completion-merge-driver.js.map +1 -0
- package/dist/merge/completion-merge-gate.d.ts +71 -0
- package/dist/merge/completion-merge-gate.d.ts.map +1 -0
- package/dist/merge/completion-merge-gate.js +185 -0
- package/dist/merge/completion-merge-gate.js.map +1 -0
- package/dist/merge/completion-merge-pending.d.ts +30 -0
- package/dist/merge/completion-merge-pending.d.ts.map +1 -0
- package/dist/merge/completion-merge-pending.js +75 -0
- package/dist/merge/completion-merge-pending.js.map +1 -0
- package/dist/merge/focus-merge.d.ts +21 -6
- package/dist/merge/focus-merge.d.ts.map +1 -1
- package/dist/merge/focus-merge.js +65 -45
- package/dist/merge/focus-merge.js.map +1 -1
- package/dist/merge/focus-worktree-removal.d.ts +6 -6
- package/dist/merge/focus-worktree-removal.d.ts.map +1 -1
- package/dist/merge/focus-worktree-removal.js +10 -6
- package/dist/merge/focus-worktree-removal.js.map +1 -1
- package/dist/merge/merge-back-conflict.d.ts.map +1 -1
- package/dist/merge/merge-back-conflict.js +2 -0
- package/dist/merge/merge-back-conflict.js.map +1 -1
- package/dist/merge/merge-back-followup.d.ts.map +1 -1
- package/dist/merge/merge-back-followup.js +7 -0
- package/dist/merge/merge-back-followup.js.map +1 -1
- package/dist/merge/merge-back-loop.d.ts +36 -14
- package/dist/merge/merge-back-loop.d.ts.map +1 -1
- package/dist/merge/merge-back-loop.js +109 -66
- package/dist/merge/merge-back-loop.js.map +1 -1
- package/dist/merge/merge-gate-coverage.d.ts +9 -61
- package/dist/merge/merge-gate-coverage.d.ts.map +1 -1
- package/dist/merge/merge-gate-coverage.js +33 -167
- package/dist/merge/merge-gate-coverage.js.map +1 -1
- package/dist/nexus/escalation-bridge.d.ts.map +1 -1
- package/dist/nexus/escalation-bridge.js +2 -1
- package/dist/nexus/escalation-bridge.js.map +1 -1
- package/dist/nexus/file-escalation.d.ts.map +1 -1
- package/dist/nexus/file-escalation.js +5 -1
- package/dist/nexus/file-escalation.js.map +1 -1
- package/dist/queries/api-client/shared.js +1 -1
- package/dist/queries/deliveries/deliveries.d.ts.map +1 -1
- package/dist/queries/deliveries/deliveries.js +1 -0
- package/dist/queries/deliveries/deliveries.js.map +1 -1
- package/dist/queries/delivery-gate-state/delivery-gate-state.js +1 -1
- package/dist/queries/delivery-gate-state/verify-own-holds.d.ts +10 -3
- package/dist/queries/delivery-gate-state/verify-own-holds.d.ts.map +1 -1
- package/dist/queries/delivery-gate-state/verify-own-holds.js +2 -0
- package/dist/queries/delivery-gate-state/verify-own-holds.js.map +1 -1
- package/dist/queries/escalations/cause-key.d.ts.map +1 -1
- package/dist/queries/escalations/cause-key.js +1 -0
- package/dist/queries/escalations/cause-key.js.map +1 -1
- package/dist/queries/escalations/escalations.d.ts.map +1 -1
- package/dist/queries/escalations/escalations.js +2 -1
- package/dist/queries/escalations/escalations.js.map +1 -1
- package/dist/queries/focuses/focus-discovery.d.ts +14 -0
- package/dist/queries/focuses/focus-discovery.d.ts.map +1 -1
- package/dist/queries/focuses/focus-discovery.js +4 -0
- package/dist/queries/focuses/focus-discovery.js.map +1 -1
- package/dist/queries/focuses/focuses.d.ts +12 -2
- package/dist/queries/focuses/focuses.d.ts.map +1 -1
- package/dist/queries/focuses/focuses.js +24 -3
- package/dist/queries/focuses/focuses.js.map +1 -1
- package/dist/queries/org-config/local-models.d.ts.map +1 -1
- package/dist/queries/org-config/local-models.js +2 -1
- package/dist/queries/org-config/local-models.js.map +1 -1
- package/dist/queries/wire-schemas/schemas.d.ts +48 -0
- package/dist/queries/wire-schemas/schemas.d.ts.map +1 -1
- package/dist/queries/wire-schemas/schemas.js +15 -0
- package/dist/queries/wire-schemas/schemas.js.map +1 -1
- package/dist/spawn/model-routing.d.ts +13 -8
- package/dist/spawn/model-routing.d.ts.map +1 -1
- package/dist/spawn/model-routing.js +14 -8
- package/dist/spawn/model-routing.js.map +1 -1
- package/dist/spawn/review-hold-park.d.ts.map +1 -1
- package/dist/spawn/review-hold-park.js +1 -0
- package/dist/spawn/review-hold-park.js.map +1 -1
- package/dist/spawn/spawn-decision.d.ts +7 -0
- package/dist/spawn/spawn-decision.d.ts.map +1 -1
- package/dist/spawn/spawn-decision.js.map +1 -1
- package/dist/supervision/agent-resolvable-retirement.d.ts +1 -1
- package/dist/supervision/agent-resolvable-retirement.d.ts.map +1 -1
- package/dist/supervision/agent-resolvable-retirement.js +2 -1
- package/dist/supervision/agent-resolvable-retirement.js.map +1 -1
- package/dist/supervision/escalation-filing.js +1 -1
- package/dist/supervision/incident-correlation.d.ts +3 -0
- package/dist/supervision/incident-correlation.d.ts.map +1 -1
- package/dist/supervision/incident-correlation.js +4 -0
- package/dist/supervision/incident-correlation.js.map +1 -1
- package/dist/supervision/null-role-spawn.d.ts.map +1 -1
- package/dist/supervision/null-role-spawn.js +1 -0
- package/dist/supervision/null-role-spawn.js.map +1 -1
- package/dist/supervision/spawn-cooldown.js +1 -1
- package/dist/supervision/stop-rows-work-holds.d.ts +4 -4
- package/dist/supervision/stop-rows-work-holds.d.ts.map +1 -1
- package/dist/supervision/stop-rows-work-holds.js +17 -15
- package/dist/supervision/stop-rows-work-holds.js.map +1 -1
- package/dist/testing/fixtures/api-client.js +1 -1
- package/dist/testing/fixtures/index.d.ts.map +1 -1
- package/dist/testing/fixtures/index.js +3 -1
- package/dist/testing/fixtures/index.js.map +1 -1
- package/dist/testing/fixtures/judge-session.d.ts +14 -0
- package/dist/testing/fixtures/judge-session.d.ts.map +1 -0
- package/dist/testing/fixtures/judge-session.js +10 -0
- package/dist/testing/fixtures/judge-session.js.map +1 -0
- package/dist/types/focus.d.ts +9 -0
- package/dist/types/focus.d.ts.map +1 -1
- package/dist/types/index.js +1 -1
- package/dist/verify/effect-reconciliation/judge-invoker.d.ts +14 -4
- package/dist/verify/effect-reconciliation/judge-invoker.d.ts.map +1 -1
- package/dist/verify/effect-reconciliation/judge-invoker.js +30 -12
- package/dist/verify/effect-reconciliation/judge-invoker.js.map +1 -1
- package/dist/verify/effect-reconciliation/verify-reconciliation.d.ts +18 -5
- package/dist/verify/effect-reconciliation/verify-reconciliation.d.ts.map +1 -1
- package/dist/verify/effect-reconciliation/verify-reconciliation.js +75 -18
- package/dist/verify/effect-reconciliation/verify-reconciliation.js.map +1 -1
- package/dist/verify/effect-reconciliation/verify-restatement.js +1 -1
- package/dist/verify/engine/verification-deps.js +1 -1
- package/dist/verify/engine/verification-engine.js +1 -1
- package/dist/verify/gate-config/verification-config.js +1 -1
- package/dist/verify/inspection-strategies/verification-strategies.js +1 -1
- package/dist/verify/inspection-strategies/verification-strategies.js.map +1 -1
- package/dist/verify/outcome-routing/incurable-model-hold.d.ts +9 -3
- package/dist/verify/outcome-routing/incurable-model-hold.d.ts.map +1 -1
- package/dist/verify/outcome-routing/incurable-model-hold.js +18 -5
- package/dist/verify/outcome-routing/incurable-model-hold.js.map +1 -1
- package/dist/verify/outcome-routing/repeating-model-hold.d.ts +30 -0
- package/dist/verify/outcome-routing/repeating-model-hold.d.ts.map +1 -0
- package/dist/verify/outcome-routing/repeating-model-hold.js +135 -0
- package/dist/verify/outcome-routing/repeating-model-hold.js.map +1 -0
- package/dist/verify/outcome-routing/verification-history-reset.d.ts.map +1 -1
- package/dist/verify/outcome-routing/verification-history-reset.js +1 -0
- package/dist/verify/outcome-routing/verification-history-reset.js.map +1 -1
- package/dist/verify/outcome-routing/verification-model-unavailable-hold.d.ts +10 -4
- package/dist/verify/outcome-routing/verification-model-unavailable-hold.d.ts.map +1 -1
- package/dist/verify/outcome-routing/verification-model-unavailable-hold.js +24 -6
- package/dist/verify/outcome-routing/verification-model-unavailable-hold.js.map +1 -1
- package/dist/verify/run-selection/default-on-guards.js +1 -1
- package/dist/verify/run-selection/pre-review-gate-dispatch.d.ts +4 -3
- package/dist/verify/run-selection/pre-review-gate-dispatch.d.ts.map +1 -1
- package/dist/verify/run-selection/pre-review-gate-dispatch.js +23 -7
- package/dist/verify/run-selection/pre-review-gate-dispatch.js.map +1 -1
- package/dist/verify/run-selection/verification-default-on.js +1 -1
- package/dist/verify/run-selection/verification-default-on.js.map +1 -1
- package/dist/worktree/provision.d.ts.map +1 -1
- package/dist/worktree/provision.js +1 -0
- package/dist/worktree/provision.js.map +1 -1
- package/dist/worktree/safety.d.ts.map +1 -1
- package/dist/worktree/safety.js +1 -0
- package/dist/worktree/safety.js.map +1 -1
- package/package.json +3 -3
|
@@ -5,8 +5,9 @@
|
|
|
5
5
|
// packages/daemon/src/merge/resolver-exhausted-observation.test.ts
|
|
6
6
|
// PINNED-BY-END
|
|
7
7
|
import { branchHasUnmergedCommits } from '../worktree/index.js';
|
|
8
|
-
import { runGitSync } from '../git/index.js';
|
|
9
8
|
import { configForProduct } from '../config/config.js';
|
|
9
|
+
import { focusCompletionHold } from './completion-merge-gate.js';
|
|
10
|
+
import { driveCompletionMergeStep } from './completion-merge-driver.js';
|
|
10
11
|
import { getActiveFocuses } from '../queries/focuses/focus-discovery.js';
|
|
11
12
|
import { focusBlockageCauseKey } from '../queries/escalations/cause-key.js';
|
|
12
13
|
import { classifyMergeFailure } from './merge-failure-classify.js';
|
|
@@ -17,6 +18,12 @@ import { createLogger } from '../log/daemon-log.js';
|
|
|
17
18
|
const log = createLogger({ module: 'merge-back-loop' });
|
|
18
19
|
// ── Stuck-branch escalation kind (Delivery 4) ─────────────────────────
|
|
19
20
|
export const STUCK_FOCUS_BRANCH_KIND = 'stuck_focus_branch';
|
|
21
|
+
/**
|
|
22
|
+
* A deterministic merge failure repeating past the signal window. Its own kind,
|
|
23
|
+
* not stuck_focus_branch: that kind means a COMPLETED focus whose merge was held
|
|
24
|
+
* past the stuck threshold, and nothing else files it.
|
|
25
|
+
*/
|
|
26
|
+
export const MERGE_FAILURE_REPEATING_KIND = 'merge_failure_repeating';
|
|
20
27
|
const EMPTY_ATTEMPT_STATE = {
|
|
21
28
|
lastSuccessAt: null,
|
|
22
29
|
lastFailureAt: null,
|
|
@@ -90,24 +97,6 @@ function readStuckBranchThresholdMs(env) {
|
|
|
90
97
|
// Sourced from the typed env-config (validated at startup; default 24h).
|
|
91
98
|
return loadEnvConfig(env).TELORA_STUCK_BRANCH_THRESHOLD_HOURS * 3_600_000;
|
|
92
99
|
}
|
|
93
|
-
/**
|
|
94
|
-
* Read the unix-epoch milliseconds timestamp of the oldest commit on
|
|
95
|
-
* `branchName` not yet present on `targetBranch`. Returns null if there
|
|
96
|
-
* are no unmerged commits or the git invocation fails.
|
|
97
|
-
*/
|
|
98
|
-
export function getOldestUnmergedCommitMs(branchName, targetBranch, repoPath) {
|
|
99
|
-
const result = runGitSync(['log', '--format=%ct', `${targetBranch}..${branchName}`], repoPath);
|
|
100
|
-
if (!result.success)
|
|
101
|
-
return null;
|
|
102
|
-
const lines = result.output.trim().split('\n').filter(Boolean);
|
|
103
|
-
if (lines.length === 0)
|
|
104
|
-
return null;
|
|
105
|
-
// git log lists newest-first; the last line is the oldest commit.
|
|
106
|
-
const seconds = Number.parseInt(lines[lines.length - 1], 10);
|
|
107
|
-
if (!Number.isFinite(seconds) || Number.isNaN(seconds))
|
|
108
|
-
return null;
|
|
109
|
-
return seconds * 1000;
|
|
110
|
-
}
|
|
111
100
|
/**
|
|
112
101
|
* Enumerate focus branches with commits ahead of integration.
|
|
113
102
|
*
|
|
@@ -270,23 +259,38 @@ function summarizeAttempts(state) {
|
|
|
270
259
|
return 'No merge attempts recorded since daemon startup.';
|
|
271
260
|
return parts.join('; ');
|
|
272
261
|
}
|
|
262
|
+
/**
|
|
263
|
+
* When a COMPLETED focus's integration merge was first held, from its durable
|
|
264
|
+
* record (merge/completion-hold-record.ts): stamped the first tick the focus is
|
|
265
|
+
* seen complete, read back after, so a restart neither resets nor re-arms it and
|
|
266
|
+
* no delivery row write moves it. A focus that is not complete is not held --
|
|
267
|
+
* under completion-only merging a branch ahead of integration while its focus
|
|
268
|
+
* codes is normal, never stuck -- so its record is cleared and this is null.
|
|
269
|
+
*/
|
|
270
|
+
export function completionHeldSince(info, deliveries, now, hold) {
|
|
271
|
+
if (deliveries.length === 0 || focusCompletionHold(deliveries) !== null) {
|
|
272
|
+
hold.clear(info.productId, info.focusId);
|
|
273
|
+
return null;
|
|
274
|
+
}
|
|
275
|
+
return hold.stamp(info.productId, info.focusId, now);
|
|
276
|
+
}
|
|
273
277
|
/**
|
|
274
278
|
* Decide whether to file a stuck-branch escalation for this branch.
|
|
275
279
|
*
|
|
276
280
|
* Conditions (all must hold):
|
|
277
|
-
* -
|
|
278
|
-
*
|
|
281
|
+
* - the focus is COMPLETE and its integration merge has been held longer than
|
|
282
|
+
* the threshold, counted from the first hold (completionHeldSince)
|
|
279
283
|
* - worktree is NOT being written
|
|
280
284
|
* - no successful merge attempt has been recorded within the threshold window
|
|
281
285
|
* - no open OR dismissed stuck_focus_branch escalation carries this branch's
|
|
282
286
|
* cause key (idempotency + dismissal memory, enforced by the shared gate)
|
|
283
287
|
*/
|
|
284
|
-
async function maybeFileStuckBranchEscalation(info,
|
|
288
|
+
async function maybeFileStuckBranchEscalation(info, heldSinceMs, worktreeActive, thresholdMs, now, fileEscalation) {
|
|
285
289
|
if (worktreeActive)
|
|
286
290
|
return;
|
|
287
|
-
if (
|
|
291
|
+
if (heldSinceMs == null)
|
|
288
292
|
return;
|
|
289
|
-
if (now -
|
|
293
|
+
if (now - heldSinceMs <= thresholdMs)
|
|
290
294
|
return;
|
|
291
295
|
const state = branchAttempts.get(info.branchName);
|
|
292
296
|
if (state?.lastSuccessAt && now - state.lastSuccessAt <= thresholdMs)
|
|
@@ -294,11 +298,11 @@ async function maybeFileStuckBranchEscalation(info, oldestUnmergedMs, worktreeAc
|
|
|
294
298
|
// Per-branch cause key: one open row per stuck branch; a dismissed one keeps it
|
|
295
299
|
// silent until the branch merges (dedup + dismissal memory in one gate).
|
|
296
300
|
const causeKey = focusBlockageCauseKey(STUCK_FOCUS_BRANCH_KIND, info.focusId, info.branchName);
|
|
297
|
-
const ageHours = Math.floor((now -
|
|
298
|
-
const description = `
|
|
301
|
+
const ageHours = Math.floor((now - heldSinceMs) / 3_600_000);
|
|
302
|
+
const description = `The completed focus's integration merge has been held for ~${ageHours}h with no successful merge.\n\n` +
|
|
299
303
|
`**Focus:** ${info.focusName}\n` +
|
|
300
304
|
`**Branch:** ${info.branchName}\n` +
|
|
301
|
-
`**
|
|
305
|
+
`**Held since:** ${new Date(heldSinceMs).toISOString()} (first tick the focus was complete and held)\n` +
|
|
302
306
|
`**Recent attempts:** ${summarizeAttempts(state)}`;
|
|
303
307
|
try {
|
|
304
308
|
await fileEscalation({
|
|
@@ -321,7 +325,7 @@ async function maybeFileStuckBranchEscalation(info, oldestUnmergedMs, worktreeAc
|
|
|
321
325
|
// branch_name is the dedup discriminator for this branch-scoped class
|
|
322
326
|
// (findPendingEscalationForBranch reads it); there is no branch column.
|
|
323
327
|
branch_name: info.branchName,
|
|
324
|
-
|
|
328
|
+
held_since_ts: heldSinceMs,
|
|
325
329
|
last_failure_reason: state?.lastFailureReason ?? null,
|
|
326
330
|
},
|
|
327
331
|
});
|
|
@@ -336,17 +340,21 @@ async function maybeFileStuckBranchEscalation(info, oldestUnmergedMs, worktreeAc
|
|
|
336
340
|
* cause absorbed as a symptom onto another open row of the focus (over this tick's pending read).
|
|
337
341
|
*/
|
|
338
342
|
async function resolveStuckBranchEscalations(info, pending, deps) {
|
|
339
|
-
const
|
|
340
|
-
const
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
343
|
+
const kinds = [STUCK_FOCUS_BRANCH_KIND, MERGE_FAILURE_REPEATING_KIND];
|
|
344
|
+
const matches = kinds.flatMap((kind) => {
|
|
345
|
+
const match = findPendingEscalationForBranch(pending, kind, info.branchName);
|
|
346
|
+
return match ? [{ kind, id: match.id }] : [];
|
|
347
|
+
});
|
|
348
|
+
const clearing = { causeKeys: kinds.map((kind) => focusBlockageCauseKey(kind, info.focusId, info.branchName)), scope: { focusId: info.focusId }, resolutionClass: 'auto_swept' };
|
|
349
|
+
await deps.retireAbsorbedSymptoms(clearing, { rows: pending, skipIds: matches.map((m) => m.id) });
|
|
350
|
+
for (const { kind, id } of matches) {
|
|
351
|
+
try {
|
|
352
|
+
await deps.markEscalationResolved(id, 'auto_swept', 'Branch merged automatically by merge-back-loop');
|
|
353
|
+
log.info(`Auto-resolved ${kind} escalation ${id} for ${info.branchName}`);
|
|
354
|
+
}
|
|
355
|
+
catch (err) {
|
|
356
|
+
log.warn(`[merge-back-loop] markEscalationResolved failed for ${id}:`, err.message);
|
|
357
|
+
}
|
|
350
358
|
}
|
|
351
359
|
}
|
|
352
360
|
/** Human-readable one-liner for a deterministic merge-failure condition. */
|
|
@@ -375,9 +383,10 @@ function describeDeterministicRemedy(failureClass, branch) {
|
|
|
375
383
|
* Signal a DETERMINISTIC merge failure that has repeated identically for at least
|
|
376
384
|
* the signal window. Unlike the aged-out stuck-branch escalation (24h threshold),
|
|
377
385
|
* this fires within minutes: the failure is self-inflicted and unclearable by
|
|
378
|
-
* retrying, so waiting a day serves nothing. Files
|
|
379
|
-
*
|
|
380
|
-
*
|
|
386
|
+
* retrying, so waiting a day serves nothing. Files its OWN kind
|
|
387
|
+
* (MERGE_FAILURE_REPEATING_KIND, one cause-keyed open row per branch): a
|
|
388
|
+
* stuck_focus_branch filing is reserved for a completed focus held past the
|
|
389
|
+
* stuck threshold. Returns true when a signal was filed.
|
|
381
390
|
*/
|
|
382
391
|
async function maybeSignalDeterministicRepeat(info, state, failureClass, now, signalMs, fileEscalation) {
|
|
383
392
|
// Only after the SAME condition has repeated (>=2) AND persisted past the
|
|
@@ -386,7 +395,7 @@ async function maybeSignalDeterministicRepeat(info, state, failureClass, now, si
|
|
|
386
395
|
return false;
|
|
387
396
|
if (state.firstRepeatAt == null || now - state.firstRepeatAt < signalMs)
|
|
388
397
|
return false;
|
|
389
|
-
const causeKey = focusBlockageCauseKey(
|
|
398
|
+
const causeKey = focusBlockageCauseKey(MERGE_FAILURE_REPEATING_KIND, info.focusId, info.branchName);
|
|
390
399
|
const minutes = Math.floor((now - state.firstRepeatAt) / 60_000);
|
|
391
400
|
const description = `Merge-back for focus "${info.focusName}" branch ${info.branchName} has FAILED IDENTICALLY ` +
|
|
392
401
|
`(${failureClass}) ${state.repeatCount} times over ~${minutes}m -- ` +
|
|
@@ -405,7 +414,7 @@ async function maybeSignalDeterministicRepeat(info, state, failureClass, now, si
|
|
|
405
414
|
description,
|
|
406
415
|
whatWasTried: summarizeAttempts(state),
|
|
407
416
|
helpNeeded: describeDeterministicRemedy(failureClass, info.branchName),
|
|
408
|
-
escalationKind:
|
|
417
|
+
escalationKind: MERGE_FAILURE_REPEATING_KIND,
|
|
409
418
|
metadata: {
|
|
410
419
|
branch_name: info.branchName,
|
|
411
420
|
failure_class: failureClass,
|
|
@@ -415,7 +424,7 @@ async function maybeSignalDeterministicRepeat(info, state, failureClass, now, si
|
|
|
415
424
|
},
|
|
416
425
|
});
|
|
417
426
|
log.warn(`[merge-back-loop] SIGNAL: ${info.branchName} deterministic ${failureClass} x${state.repeatCount} ` +
|
|
418
|
-
`(~${minutes}m); filed
|
|
427
|
+
`(~${minutes}m); filed merge_failure_repeating and throttling.`);
|
|
419
428
|
return true;
|
|
420
429
|
}
|
|
421
430
|
catch (err) {
|
|
@@ -444,6 +453,44 @@ async function handleMergeFailure(info, rec, now, signalMs, fileEscalation) {
|
|
|
444
453
|
`(repeat ${state.repeatCount}); handled by the conflict / stuck-branch paths, not throttled.`);
|
|
445
454
|
}
|
|
446
455
|
}
|
|
456
|
+
/**
|
|
457
|
+
* The focus's deliveries ([] when unreadable) and the stuck clock: when this
|
|
458
|
+
* completed focus's merge was first held (null while it codes, or unread).
|
|
459
|
+
*/
|
|
460
|
+
async function readFocusDeliveries(info, now, deps) {
|
|
461
|
+
try {
|
|
462
|
+
const deliveries = await deps.getFocusDeliveries(info.focusId);
|
|
463
|
+
return { deliveries, heldSince: completionHeldSince(info, deliveries, now, deps.completionHold) };
|
|
464
|
+
}
|
|
465
|
+
catch (err) {
|
|
466
|
+
log.warn(`[merge-back-loop] getFocusDeliveries failed for ${info.focusId}:`, err.message);
|
|
467
|
+
return { deliveries: [], heldSince: null };
|
|
468
|
+
}
|
|
469
|
+
}
|
|
470
|
+
/**
|
|
471
|
+
* A held completion merge: drive the step the hold names (merge/completion-merge-driver.ts),
|
|
472
|
+
* then let the stuck-branch surface judge the hold.
|
|
473
|
+
*/
|
|
474
|
+
async function holdOnCompletionGate(config, info, gate, heldSinceMs, thresholdMs, now, deps) {
|
|
475
|
+
log.debug(`[merge-back-loop] skip ${info.branchName}: ${gate.hold} -- held off ${config.integrationBranch}`);
|
|
476
|
+
if (gate.incomplete) {
|
|
477
|
+
// The gate re-read the deliveries and the focus is not complete (it re-opened
|
|
478
|
+
// since this tick's snapshot): the snapshot's hold is stale -- end it, file nothing.
|
|
479
|
+
deps.completionHold.clear(info.productId, info.focusId);
|
|
480
|
+
return;
|
|
481
|
+
}
|
|
482
|
+
if (gate.next && gate.headSha) {
|
|
483
|
+
const productConfig = configForProduct(config, { id: info.productId, repoPath: info.repoPath });
|
|
484
|
+
const step = await driveCompletionMergeStep(info, gate.next, gate.headSha, deps.completionMergeDriver(productConfig, info));
|
|
485
|
+
if (step.reworked) {
|
|
486
|
+
// The step returned the focus to coding: it is no longer complete, so its
|
|
487
|
+
// hold is over -- the pre-step snapshot must not file it as stuck.
|
|
488
|
+
deps.completionHold.clear(info.productId, info.focusId);
|
|
489
|
+
return;
|
|
490
|
+
}
|
|
491
|
+
}
|
|
492
|
+
await maybeFileStuckBranchEscalation(info, heldSinceMs, false, thresholdMs, now, deps.fileEscalation);
|
|
493
|
+
}
|
|
447
494
|
/**
|
|
448
495
|
* Run one merge-back tick across all products in the daemon config.
|
|
449
496
|
*
|
|
@@ -490,6 +537,11 @@ export async function runMergeBackTick(config, deps) {
|
|
|
490
537
|
log.debug(`skip ${info.branchName}: read-only focus`);
|
|
491
538
|
continue;
|
|
492
539
|
}
|
|
540
|
+
// The deliveries -- and with them the completion-hold clock -- are read BEFORE
|
|
541
|
+
// any skip: a re-opened focus (its team writing, its worktree dirty, a conflict
|
|
542
|
+
// record open) must clear its first hold, or its next completion would read
|
|
543
|
+
// the old instant and file stuck at once.
|
|
544
|
+
const { deliveries, heldSince } = await readFocusDeliveries(info, now, deps);
|
|
493
545
|
// Gate 0.5: throttle. A branch whose last failure was deterministic and
|
|
494
546
|
// unclearable is backed off so it does not re-attempt every 30s tick; it
|
|
495
547
|
// becomes eligible again once the throttle window elapses (state may have
|
|
@@ -529,24 +581,15 @@ export async function runMergeBackTick(config, deps) {
|
|
|
529
581
|
await deps.followUpMergeBackConflict(configForProduct(config, { id: info.productId, repoPath: info.repoPath }), info);
|
|
530
582
|
continue;
|
|
531
583
|
}
|
|
532
|
-
// Gather worked deliveries (see WORKED_STATUSES).
|
|
533
|
-
let deliveries = [];
|
|
534
|
-
try {
|
|
535
|
-
deliveries = await deps.getFocusDeliveries(info.focusId);
|
|
536
|
-
}
|
|
537
|
-
catch (err) {
|
|
538
|
-
log.warn(`[merge-back-loop] getFocusDeliveries failed for ${info.focusId}:`, err.message);
|
|
539
|
-
}
|
|
584
|
+
// Gather worked deliveries (see WORKED_STATUSES); read above, before any skip.
|
|
540
585
|
const allDeliveryIds = deliveries.map((d) => d.id);
|
|
541
586
|
const workedDeliveryIds = deliveries.filter((d) => WORKED_STATUSES.has(d.executionStatus ?? '')).map((d) => d.id);
|
|
542
587
|
if (allDeliveryIds.length === 0) {
|
|
543
588
|
// Degenerate case: branch is ahead but the focus has no deliveries
|
|
544
|
-
// (e.g., orphaned branch with no focus row).
|
|
545
|
-
//
|
|
589
|
+
// (e.g., orphaned branch with no focus row). Not a completed focus, so
|
|
590
|
+
// not a held completion merge: skip, and file nothing.
|
|
546
591
|
counts.skipped += 1;
|
|
547
592
|
log.debug(`skip ${info.branchName}: focus has no deliveries`);
|
|
548
|
-
const oldestMs = deps.getOldestUnmergedCommitMs(info.branchName, config.integrationBranch, info.repoPath);
|
|
549
|
-
await maybeFileStuckBranchEscalation(info, oldestMs, writeSignal.active, thresholdMs, now, deps.fileEscalation);
|
|
550
593
|
continue;
|
|
551
594
|
}
|
|
552
595
|
// Gate 4: merge-eligibility. A focus whose deliveries are ALL still in
|
|
@@ -568,14 +611,14 @@ export async function runMergeBackTick(config, deps) {
|
|
|
568
611
|
log.debug(`[merge-back-loop] skip ${info.branchName}: no verify/done delivery (deliveries still coding) -- waiting for the review gate`);
|
|
569
612
|
continue;
|
|
570
613
|
}
|
|
571
|
-
// Gate 4.5:
|
|
572
|
-
//
|
|
614
|
+
// Gate 4.5: the completion merge gate. A held completion merge names the step
|
|
615
|
+
// that advances it (merge-out, candidate push, CI wait, re-work); this loop is
|
|
616
|
+
// the one driver of those steps (merge/completion-merge-driver.ts).
|
|
573
617
|
const target = { organizationId: info.organizationId, productId: info.productId, focusId: info.focusId, branchName: info.branchName, integrationBranch: config.integrationBranch, repoPath: info.repoPath };
|
|
574
618
|
const gate = await deps.readMergeGate(target);
|
|
575
619
|
if (gate.hold !== null) {
|
|
576
620
|
counts.skipped += 1;
|
|
577
|
-
|
|
578
|
-
await maybeFileStuckBranchEscalation(info, deps.getOldestUnmergedCommitMs(info.branchName, config.integrationBranch, info.repoPath), false, thresholdMs, now, deps.fileEscalation);
|
|
621
|
+
await holdOnCompletionGate(config, info, gate, heldSince, thresholdMs, now, deps);
|
|
579
622
|
continue;
|
|
580
623
|
}
|
|
581
624
|
// Pass ALL delivery IDs as knownDeliveryIds so mergeFocusBranch's
|
|
@@ -587,7 +630,7 @@ export async function runMergeBackTick(config, deps) {
|
|
|
587
630
|
const productConfig = configForProduct(config, { id: info.productId, repoPath: info.repoPath });
|
|
588
631
|
let mergeResult;
|
|
589
632
|
try {
|
|
590
|
-
mergeResult = await deps.mergeFocusBranch(productConfig, teamState, /* sessionId */ '', info.branchName, workedDeliveryIds);
|
|
633
|
+
mergeResult = await deps.mergeFocusBranch(productConfig, teamState, /* sessionId */ '', info.branchName, workedDeliveryIds, gate.candidateSha);
|
|
591
634
|
}
|
|
592
635
|
catch (err) {
|
|
593
636
|
counts.conflicts += 1;
|
|
@@ -599,6 +642,7 @@ export async function runMergeBackTick(config, deps) {
|
|
|
599
642
|
if (mergeResult.mergeSucceeded) {
|
|
600
643
|
counts.merged += 1;
|
|
601
644
|
recordSuccess(info, config.integrationBranch, gate.admittedBy, now);
|
|
645
|
+
deps.completionHold.clear(info.productId, info.focusId);
|
|
602
646
|
await resolveStuckBranchEscalations(info, pending, deps);
|
|
603
647
|
}
|
|
604
648
|
else {
|
|
@@ -607,10 +651,9 @@ export async function runMergeBackTick(config, deps) {
|
|
|
607
651
|
// Deterministic conditions (hook rejection / dirty worktree) are throttled
|
|
608
652
|
// and signalled within minutes; every failure logs its condition + action.
|
|
609
653
|
await handleMergeFailure(info, rec, now, signalMs, deps.fileEscalation);
|
|
610
|
-
// Re-evaluate stuck-branch escalation: a persistent failure
|
|
611
|
-
//
|
|
612
|
-
|
|
613
|
-
await maybeFileStuckBranchEscalation(info, oldestMs, writeSignal.active, thresholdMs, now, deps.fileEscalation);
|
|
654
|
+
// Re-evaluate stuck-branch escalation: a persistent failure of the completed
|
|
655
|
+
// focus's merge surfaces as 'stuck' once its hold ages out (shared cause key).
|
|
656
|
+
await maybeFileStuckBranchEscalation(info, heldSince, writeSignal.active, thresholdMs, now, deps.fileEscalation);
|
|
614
657
|
}
|
|
615
658
|
}
|
|
616
659
|
log.info(`[merge-back-loop] tick: ${counts.scanned} branches scanned, ${counts.merged} merged, ${counts.skipped} skipped, ${counts.conflicts} conflicts`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"merge-back-loop.js","sourceRoot":"","sources":["../../src/merge/merge-back-loop.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"merge-back-loop.js","sourceRoot":"","sources":["../../src/merge/merge-back-loop.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import type { ApprovalGateState } from './approval-gate-state.js';
|
|
2
1
|
/** One commit the merge would add to integration. */
|
|
3
2
|
export interface UnmergedCommit {
|
|
4
3
|
sha: string;
|
|
@@ -14,7 +13,7 @@ export interface UnmergedCommit {
|
|
|
14
13
|
/** A commit that passed one of the focus's gates, and the unmerged commits it contains. */
|
|
15
14
|
export interface GatedAnchor {
|
|
16
15
|
sha: string;
|
|
17
|
-
source: 'approved_review' | 'auto_approval'
|
|
16
|
+
source: 'approved_review' | 'auto_approval';
|
|
18
17
|
/** The anchor's ancestry not on integration, the anchor itself included. */
|
|
19
18
|
contains: ReadonlySet<string>;
|
|
20
19
|
}
|
|
@@ -25,28 +24,6 @@ export interface MergeGateCoverage {
|
|
|
25
24
|
/** The daemon captures among `ungated`. */
|
|
26
25
|
ungatedWipCaptures: UnmergedCommit[];
|
|
27
26
|
}
|
|
28
|
-
/** An approval the gate state at its commit kept from anchoring. */
|
|
29
|
-
export interface RefusedApproval {
|
|
30
|
-
sha: string;
|
|
31
|
-
state: 'failed' | 'pending';
|
|
32
|
-
}
|
|
33
|
-
export type MergeGateCoverageResult = {
|
|
34
|
-
kind: 'unreadable';
|
|
35
|
-
reason: string;
|
|
36
|
-
} | {
|
|
37
|
-
kind: 'judged';
|
|
38
|
-
coverage: MergeGateCoverage;
|
|
39
|
-
/** The anchors that gate at least one judged commit. */
|
|
40
|
-
anchors: GatedAnchor[];
|
|
41
|
-
refusedApproval: RefusedApproval | null;
|
|
42
|
-
};
|
|
43
|
-
/** A merge the gate holds, with why; or one it admits, with the anchors that admitted it. */
|
|
44
|
-
export type MergeGateDecision = {
|
|
45
|
-
hold: string;
|
|
46
|
-
} | {
|
|
47
|
-
hold: null;
|
|
48
|
-
admittedBy: string;
|
|
49
|
-
};
|
|
50
27
|
/** The focus branch a merge would send, and where. */
|
|
51
28
|
export interface MergeGateTarget {
|
|
52
29
|
organizationId: string;
|
|
@@ -60,22 +37,6 @@ export interface MergeGateTarget {
|
|
|
60
37
|
export type BranchMergeGateTarget = Omit<MergeGateTarget, 'focusId'> & {
|
|
61
38
|
focusId: string | null;
|
|
62
39
|
};
|
|
63
|
-
/**
|
|
64
|
-
* Injected reads. The production binding (git, the product-api and the verdict
|
|
65
|
-
* record) is built at the composition root (composition/execution-merge-context.ts).
|
|
66
|
-
*/
|
|
67
|
-
export interface MergeGateCoverageDeps {
|
|
68
|
-
/** integration..branch, newest first; null when git cannot list it. */
|
|
69
|
-
listUnmergedCommits: (repoPath: string, integrationBranch: string, branchName: string) => UnmergedCommit[] | null;
|
|
70
|
-
/** The anchor's full sha and its unmerged ancestry; null when git cannot resolve the sha. */
|
|
71
|
-
resolveAnchor: (repoPath: string, integrationBranch: string, sha: string) => Omit<GatedAnchor, 'source'> | null;
|
|
72
|
-
/** The commit the focus's newest current approval judged, null when none; throws when unreadable. */
|
|
73
|
-
readApprovedReviewSha: (target: MergeGateTarget) => Promise<string | null>;
|
|
74
|
-
/** Whether a passing deterministic verdict is recorded for the commit; throws when unreadable. */
|
|
75
|
-
hasPassingVerdict: (target: MergeGateTarget, sha: string) => boolean;
|
|
76
|
-
/** The gate state at the commit an approval judged; throws when unreadable. */
|
|
77
|
-
judgeApprovalGate: (target: MergeGateTarget, sha: string) => Promise<ApprovalGateState>;
|
|
78
|
-
}
|
|
79
40
|
/** True for a commit the daemon wrote to capture an agent's uncommitted work. Pure. */
|
|
80
41
|
export declare function isDaemonWipCapture(commit: Pick<UnmergedCommit, 'subject'>): boolean;
|
|
81
42
|
/** Which judged commits -- every commit but a proven-clean merge -- the anchors leave ungated. Pure. */
|
|
@@ -92,27 +53,14 @@ export declare function isCleanMerge(repoPath: string, sha: string, parentCount:
|
|
|
92
53
|
export declare function listUnmergedCommits(repoPath: string, integrationBranch: string, branchName: string): UnmergedCommit[] | null;
|
|
93
54
|
/** The anchor's full sha and its ancestry not on integration; null for a malformed or unknown sha. */
|
|
94
55
|
export declare function resolveGatedAnchor(repoPath: string, integrationBranch: string, sha: string): Omit<GatedAnchor, 'source'> | null;
|
|
56
|
+
/** The branch's head sha; null when git cannot resolve it. */
|
|
57
|
+
export declare function resolveBranchHead(repoPath: string, branchName: string): string | null;
|
|
58
|
+
/** Whether `ancestor` is an ancestor-or-equal of `descendant`; false when git cannot tell (e.g. an unfetched tip). */
|
|
59
|
+
export declare function isAncestorCommit(repoPath: string, ancestor: string, descendant: string): boolean;
|
|
95
60
|
/**
|
|
96
|
-
*
|
|
97
|
-
* read
|
|
98
|
-
*
|
|
99
|
-
* when some commit is still ungated after that, and anchors only as the gate
|
|
100
|
-
* state at its commit allows (see the module header). Any unreadable input
|
|
101
|
-
* returns 'unreadable' (the caller holds the merge).
|
|
102
|
-
*/
|
|
103
|
-
export declare function evaluateMergeGateCoverage(target: MergeGateTarget, deps: MergeGateCoverageDeps): Promise<MergeGateCoverageResult>;
|
|
104
|
-
/** Why the merge must hold, or null when it may proceed. Pure. */
|
|
105
|
-
export declare function mergeGateHoldReason(result: MergeGateCoverageResult): string | null;
|
|
106
|
-
/** The anchors that admitted a judged merge, for its log line, e.g. `anchors: passing_verdict 1c3e3e506`. Pure. */
|
|
107
|
-
export declare function mergeGateAdmission(anchors: readonly Pick<GatedAnchor, 'sha' | 'source'>[]): string;
|
|
108
|
-
/** Hold with the reason, or admit with the anchors that admitted the merge. Pure. */
|
|
109
|
-
export declare function mergeGateDecision(result: MergeGateCoverageResult): MergeGateDecision;
|
|
110
|
-
/** Whether a merge of `target` holds (and why) or is admitted (and by what). Never throws: a failed read holds. */
|
|
111
|
-
export declare function readMergeGateDecision(target: MergeGateTarget, deps: MergeGateCoverageDeps): Promise<MergeGateDecision>;
|
|
112
|
-
/**
|
|
113
|
-
* The decision for a merge of a branch whose focus may be unknown. With no focus
|
|
114
|
-
* there is no verdict or approving review to read, so every non-merge commit is
|
|
115
|
-
* ungated and the merge holds.
|
|
61
|
+
* The integration tip a completion merge must contain: the REMOTE tip (a scoped
|
|
62
|
+
* read-only ls-remote) when the repo has an origin, else the local branch.
|
|
63
|
+
* Null when unreadable.
|
|
116
64
|
*/
|
|
117
|
-
export declare function
|
|
65
|
+
export declare function resolveGateIntegrationTip(repoPath: string, integrationBranch: string): string | null;
|
|
118
66
|
//# sourceMappingURL=merge-gate-coverage.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"merge-gate-coverage.d.ts","sourceRoot":"","sources":["../../src/merge/merge-gate-coverage.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"merge-gate-coverage.d.ts","sourceRoot":"","sources":["../../src/merge/merge-gate-coverage.ts"],"names":[],"mappings":"AAqCA,qDAAqD;AACrD,MAAM,WAAW,cAAc;IAC7B,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,qFAAqF;IACrF,OAAO,EAAE,OAAO,CAAC;IACjB;;;OAGG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,2FAA2F;AAC3F,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,iBAAiB,GAAG,eAAe,CAAC;IAC5C,4EAA4E;IAC5E,QAAQ,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;CAC/B;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,OAAO,CAAC;IAClB,sGAAsG;IACtG,OAAO,EAAE,cAAc,EAAE,CAAC;IAC1B,2CAA2C;IAC3C,kBAAkB,EAAE,cAAc,EAAE,CAAC;CACtC;AAED,sDAAsD;AACtD,MAAM,WAAW,eAAe;IAC9B,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,6FAA6F;AAC7F,MAAM,MAAM,qBAAqB,GAAG,IAAI,CAAC,eAAe,EAAE,SAAS,CAAC,GAAG;IAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,CAAC;AAKlG,uFAAuF;AACvF,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,IAAI,CAAC,cAAc,EAAE,SAAS,CAAC,GAAG,OAAO,CAEnF;AAQD,wGAAwG;AACxG,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,SAAS,cAAc,EAAE,EAAE,OAAO,EAAE,SAAS,WAAW,EAAE,GAAG,iBAAiB,CAI7H;AAED;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAIxF;AAED,mHAAmH;AACnH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,cAAc,EAAE,GAAG,IAAI,CAoB5H;AAED,sGAAsG;AACtG,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC,GAAG,IAAI,CAO/H;AAED,8DAA8D;AAC9D,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAIrF;AAED,sHAAsH;AACtH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAEhG;AAED;;;;GAIG;AACH,wBAAgB,yBAAyB,CAAC,QAAQ,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAQpG"}
|