@telora/daemon 0.22.233 → 0.22.245
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 +4 -3
- package/dist/backends/index.d.ts.map +1 -1
- package/dist/backends/index.js +1 -0
- package/dist/backends/index.js.map +1 -1
- package/dist/ci/ci-red-attribution.js +1 -1
- package/dist/ci/ci-red-attribution.js.map +1 -1
- package/dist/ci/ci-status-git.js +1 -1
- package/dist/ci/ci-status-git.js.map +1 -1
- package/dist/completion/detector.d.ts.map +1 -1
- package/dist/completion/detector.js +1 -0
- package/dist/completion/detector.js.map +1 -1
- package/dist/completion/escalations.d.ts.map +1 -1
- package/dist/completion/escalations.js +1 -0
- package/dist/completion/escalations.js.map +1 -1
- package/dist/completion/event-entry-phases.d.ts.map +1 -1
- package/dist/completion/event-entry-phases.js +13 -11
- package/dist/completion/event-entry-phases.js.map +1 -1
- package/dist/completion/event-phases.d.ts.map +1 -1
- package/dist/completion/event-phases.js +16 -15
- package/dist/completion/event-phases.js.map +1 -1
- package/dist/completion/merge-phase.d.ts +4 -4
- package/dist/completion/merge-phase.d.ts.map +1 -1
- package/dist/completion/merge-phase.js +10 -7
- package/dist/completion/merge-phase.js.map +1 -1
- package/dist/completion/review-breaker-hold.d.ts +107 -0
- package/dist/completion/review-breaker-hold.d.ts.map +1 -0
- package/dist/completion/review-breaker-hold.js +127 -0
- package/dist/completion/review-breaker-hold.js.map +1 -0
- package/dist/completion/review-exit-escalations.d.ts +9 -1
- package/dist/completion/review-exit-escalations.d.ts.map +1 -1
- package/dist/completion/review-exit-escalations.js +14 -3
- package/dist/completion/review-exit-escalations.js.map +1 -1
- package/dist/completion/review-exit-phase.d.ts.map +1 -1
- package/dist/completion/review-exit-phase.js +2 -2
- package/dist/completion/review-exit-phase.js.map +1 -1
- package/dist/completion/state-cascade.d.ts +14 -12
- package/dist/completion/state-cascade.d.ts.map +1 -1
- package/dist/completion/state-cascade.js +28 -19
- package/dist/completion/state-cascade.js.map +1 -1
- package/dist/completion/status-advance-phase.d.ts +3 -0
- package/dist/completion/status-advance-phase.d.ts.map +1 -1
- package/dist/completion/status-advance-phase.js +2 -1
- package/dist/completion/status-advance-phase.js.map +1 -1
- package/dist/completion/team-lifecycle.d.ts +3 -3
- package/dist/completion/team-lifecycle.d.ts.map +1 -1
- package/dist/completion/team-lifecycle.js +6 -5
- package/dist/completion/team-lifecycle.js.map +1 -1
- package/dist/completion/team-progress-measure.d.ts.map +1 -1
- package/dist/completion/team-progress-measure.js +1 -0
- package/dist/completion/team-progress-measure.js.map +1 -1
- package/dist/delivery/delivery-advance-block.d.ts +17 -4
- package/dist/delivery/delivery-advance-block.d.ts.map +1 -1
- package/dist/delivery/delivery-advance-block.js +203 -173
- package/dist/delivery/delivery-advance-block.js.map +1 -1
- package/dist/focus/advance-hold.d.ts +55 -0
- package/dist/focus/advance-hold.d.ts.map +1 -0
- package/dist/focus/advance-hold.js +155 -0
- package/dist/focus/advance-hold.js.map +1 -0
- package/dist/focus/focus-spawn-decision.d.ts +17 -6
- package/dist/focus/focus-spawn-decision.d.ts.map +1 -1
- package/dist/focus/focus-spawn-decision.js +6 -6
- package/dist/focus/focus-spawn-decision.js.map +1 -1
- package/dist/focus/focus-team-state.js +1 -1
- package/dist/focus/focus-worktree-state.d.ts.map +1 -1
- package/dist/focus/focus-worktree-state.js +1 -0
- package/dist/focus/focus-worktree-state.js.map +1 -1
- package/dist/focus/listener-auto-advance.d.ts +14 -0
- package/dist/focus/listener-auto-advance.d.ts.map +1 -1
- package/dist/focus/listener-auto-advance.js +13 -10
- package/dist/focus/listener-auto-advance.js.map +1 -1
- package/dist/focus/listener-spawn.d.ts.map +1 -1
- package/dist/focus/listener-spawn.js +18 -29
- package/dist/focus/listener-spawn.js.map +1 -1
- package/dist/focus/listener-state.d.ts.map +1 -1
- package/dist/focus/listener-state.js +1 -0
- package/dist/focus/listener-state.js.map +1 -1
- package/dist/focus/listener.d.ts.map +1 -1
- package/dist/focus/listener.js +10 -4
- package/dist/focus/listener.js.map +1 -1
- package/dist/focus/pending-spawn-pass-deps.d.ts +3 -0
- package/dist/focus/pending-spawn-pass-deps.d.ts.map +1 -1
- package/dist/focus/pending-spawn-pass-deps.js +1 -0
- package/dist/focus/pending-spawn-pass-deps.js.map +1 -1
- package/dist/focus/ready-focus-spawn-action.d.ts +29 -0
- package/dist/focus/ready-focus-spawn-action.d.ts.map +1 -0
- package/dist/focus/ready-focus-spawn-action.js +32 -0
- package/dist/focus/ready-focus-spawn-action.js.map +1 -0
- package/dist/focus/ready-focus-team-work.d.ts +18 -0
- package/dist/focus/ready-focus-team-work.d.ts.map +1 -0
- package/dist/focus/ready-focus-team-work.js +59 -0
- package/dist/focus/ready-focus-team-work.js.map +1 -0
- package/dist/focus/team-actionable-work.d.ts +56 -6
- package/dist/focus/team-actionable-work.d.ts.map +1 -1
- package/dist/focus/team-actionable-work.js +56 -9
- package/dist/focus/team-actionable-work.js.map +1 -1
- package/dist/git/types.d.ts.map +1 -1
- package/dist/git/types.js +1 -0
- package/dist/git/types.js.map +1 -1
- package/dist/merge/approval-gate-state.d.ts +24 -0
- package/dist/merge/approval-gate-state.d.ts.map +1 -0
- package/dist/merge/approval-gate-state.js +67 -0
- package/dist/merge/approval-gate-state.js.map +1 -0
- package/dist/merge/focus-merge.d.ts +3 -3
- package/dist/merge/focus-merge.d.ts.map +1 -1
- package/dist/merge/focus-merge.js +6 -6
- package/dist/merge/focus-merge.js.map +1 -1
- package/dist/merge/merge-back-loop.d.ts +3 -3
- package/dist/merge/merge-back-loop.d.ts.map +1 -1
- package/dist/merge/merge-back-loop.js +10 -10
- package/dist/merge/merge-back-loop.js.map +1 -1
- package/dist/merge/merge-gate-coverage.d.ts +32 -9
- package/dist/merge/merge-gate-coverage.d.ts.map +1 -1
- package/dist/merge/merge-gate-coverage.js +69 -18
- package/dist/merge/merge-gate-coverage.js.map +1 -1
- package/dist/nexus/return.d.ts +44 -1
- package/dist/nexus/return.d.ts.map +1 -1
- package/dist/nexus/return.js +42 -0
- package/dist/nexus/return.js.map +1 -1
- package/dist/prompt/focus-prompt-builder.d.ts +10 -8
- package/dist/prompt/focus-prompt-builder.d.ts.map +1 -1
- package/dist/prompt/focus-prompt-builder.js +19 -10
- package/dist/prompt/focus-prompt-builder.js.map +1 -1
- package/dist/prompt-sections/execution-sections.d.ts.map +1 -1
- package/dist/prompt-sections/execution-sections.js +10 -0
- package/dist/prompt-sections/execution-sections.js.map +1 -1
- package/dist/queries/deliveries.js +1 -1
- package/dist/queries/deliveries.js.map +1 -1
- package/dist/queries/delivery-gate-holds.d.ts +78 -0
- package/dist/queries/delivery-gate-holds.d.ts.map +1 -0
- package/dist/queries/delivery-gate-holds.js +5 -0
- package/dist/queries/delivery-gate-holds.js.map +1 -0
- package/dist/queries/delivery-gate-state.d.ts +17 -60
- package/dist/queries/delivery-gate-state.d.ts.map +1 -1
- package/dist/queries/delivery-gate-state.js +8 -3
- package/dist/queries/delivery-gate-state.js.map +1 -1
- package/dist/queries/escalations.d.ts +2 -1
- package/dist/queries/escalations.d.ts.map +1 -1
- package/dist/queries/escalations.js +3 -3
- package/dist/queries/escalations.js.map +1 -1
- package/dist/queries/focus-criteria-standing.d.ts +2 -2
- package/dist/queries/focus-discovery.js +1 -1
- package/dist/queries/focus-discovery.js.map +1 -1
- package/dist/queries/focuses.d.ts.map +1 -1
- package/dist/queries/focuses.js +1 -0
- package/dist/queries/focuses.js.map +1 -1
- package/dist/queries/issues.d.ts.map +1 -1
- package/dist/queries/issues.js +1 -0
- package/dist/queries/issues.js.map +1 -1
- package/dist/queries/shared.js +1 -1
- package/dist/queries/workflows.d.ts.map +1 -1
- package/dist/queries/workflows.js +1 -0
- package/dist/queries/workflows.js.map +1 -1
- package/dist/spawn/helpers.d.ts.map +1 -1
- package/dist/spawn/helpers.js +1 -0
- package/dist/spawn/helpers.js.map +1 -1
- package/dist/spawn/idle-work-stamp.d.ts +13 -7
- package/dist/spawn/idle-work-stamp.d.ts.map +1 -1
- package/dist/spawn/idle-work-stamp.js +22 -11
- package/dist/spawn/idle-work-stamp.js.map +1 -1
- package/dist/spawn/lead-continuation.d.ts.map +1 -1
- package/dist/spawn/lead-continuation.js +13 -11
- package/dist/spawn/lead-continuation.js.map +1 -1
- package/dist/spawn/spawn-cooldown.js +1 -1
- package/dist/testing/fixtures/index.js +1 -1
- package/dist/testing/fixtures/merge-log-capture.d.ts +5 -0
- package/dist/testing/fixtures/merge-log-capture.d.ts.map +1 -0
- package/dist/testing/fixtures/merge-log-capture.js +35 -0
- package/dist/testing/fixtures/merge-log-capture.js.map +1 -0
- package/dist/testing/fixtures/pending-spawn-world.js +1 -1
- package/dist/testing/fixtures/pending-spawn-world.js.map +1 -1
- package/dist/types/index.js +1 -1
- package/dist/verify/commit-gate-configured.d.ts.map +1 -1
- package/dist/verify/commit-gate-configured.js +1 -0
- package/dist/verify/commit-gate-configured.js.map +1 -1
- package/dist/verify/gate-process-group.d.ts +40 -0
- package/dist/verify/gate-process-group.d.ts.map +1 -0
- package/dist/verify/gate-process-group.js +91 -0
- package/dist/verify/gate-process-group.js.map +1 -0
- package/dist/verify/no-verdict-record.d.ts +103 -0
- package/dist/verify/no-verdict-record.d.ts.map +1 -0
- package/dist/verify/no-verdict-record.js +218 -0
- package/dist/verify/no-verdict-record.js.map +1 -0
- package/dist/verify/timed-out-rendered-verdict.d.ts +40 -0
- package/dist/verify/timed-out-rendered-verdict.d.ts.map +1 -0
- package/dist/verify/timed-out-rendered-verdict.js +52 -0
- package/dist/verify/timed-out-rendered-verdict.js.map +1 -0
- package/dist/verify/verification-attribution-base.js +1 -1
- package/dist/verify/verification-attribution-base.js.map +1 -1
- package/dist/verify/verification-attribution.js +2 -2
- package/dist/verify/verification-attribution.js.map +1 -1
- package/dist/verify/verification-baseline-run.d.ts.map +1 -1
- package/dist/verify/verification-baseline-run.js +5 -7
- package/dist/verify/verification-baseline-run.js.map +1 -1
- package/dist/verify/verification-baseline.js +1 -1
- package/dist/verify/verification-baseline.js.map +1 -1
- package/dist/verify/verification-checkout.js +1 -1
- package/dist/verify/verification-checkout.js.map +1 -1
- package/dist/verify/verification-commit-sharing.d.ts.map +1 -1
- package/dist/verify/verification-commit-sharing.js +93 -10
- package/dist/verify/verification-commit-sharing.js.map +1 -1
- package/dist/verify/verification-default-on.js +1 -1
- package/dist/verify/verification-default-on.js.map +1 -1
- package/dist/verify/verification-deps-default.d.ts.map +1 -1
- package/dist/verify/verification-deps-default.js +2 -0
- package/dist/verify/verification-deps-default.js.map +1 -1
- package/dist/verify/verification-deps.d.ts +8 -0
- package/dist/verify/verification-deps.d.ts.map +1 -1
- package/dist/verify/verification-deterministic.d.ts +8 -0
- package/dist/verify/verification-deterministic.d.ts.map +1 -1
- package/dist/verify/verification-deterministic.js +3 -6
- package/dist/verify/verification-deterministic.js.map +1 -1
- package/dist/worktree/provision.d.ts +6 -5
- package/dist/worktree/provision.d.ts.map +1 -1
- package/dist/worktree/provision.js +13 -8
- package/dist/worktree/provision.js.map +1 -1
- package/dist/worktree/verify-interlock.d.ts.map +1 -1
- package/dist/worktree/verify-interlock.js +2 -0
- package/dist/worktree/verify-interlock.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { type ApprovalGateState } from './approval-gate-state.js';
|
|
1
2
|
/** One commit the merge would add to integration. */
|
|
2
3
|
export interface UnmergedCommit {
|
|
3
4
|
sha: string;
|
|
@@ -13,7 +14,7 @@ export interface UnmergedCommit {
|
|
|
13
14
|
/** A commit that passed one of the focus's gates, and the unmerged commits it contains. */
|
|
14
15
|
export interface GatedAnchor {
|
|
15
16
|
sha: string;
|
|
16
|
-
source: 'approved_review' | 'passing_verdict';
|
|
17
|
+
source: 'approved_review' | 'auto_approval' | 'passing_verdict';
|
|
17
18
|
/** The anchor's ancestry not on integration, the anchor itself included. */
|
|
18
19
|
contains: ReadonlySet<string>;
|
|
19
20
|
}
|
|
@@ -24,13 +25,28 @@ export interface MergeGateCoverage {
|
|
|
24
25
|
/** The daemon captures among `ungated`. */
|
|
25
26
|
ungatedWipCaptures: UnmergedCommit[];
|
|
26
27
|
}
|
|
28
|
+
export type { ApprovalGateState };
|
|
29
|
+
/** An approval the gate state at its commit kept from anchoring. */
|
|
30
|
+
export interface RefusedApproval {
|
|
31
|
+
sha: string;
|
|
32
|
+
state: 'failed' | 'pending';
|
|
33
|
+
}
|
|
27
34
|
export type MergeGateCoverageResult = {
|
|
28
35
|
kind: 'unreadable';
|
|
29
36
|
reason: string;
|
|
30
37
|
} | {
|
|
31
38
|
kind: 'judged';
|
|
32
39
|
coverage: MergeGateCoverage;
|
|
40
|
+
/** The anchors that gate at least one judged commit. */
|
|
33
41
|
anchors: GatedAnchor[];
|
|
42
|
+
refusedApproval: RefusedApproval | null;
|
|
43
|
+
};
|
|
44
|
+
/** A merge the gate holds, with why; or one it admits, with the anchors that admitted it. */
|
|
45
|
+
export type MergeGateDecision = {
|
|
46
|
+
hold: string;
|
|
47
|
+
} | {
|
|
48
|
+
hold: null;
|
|
49
|
+
admittedBy: string;
|
|
34
50
|
};
|
|
35
51
|
/** The focus branch a merge would send, and where. */
|
|
36
52
|
export interface MergeGateTarget {
|
|
@@ -55,6 +71,8 @@ export interface MergeGateCoverageDeps {
|
|
|
55
71
|
readApprovedReviewSha: (target: MergeGateTarget) => Promise<string | null>;
|
|
56
72
|
/** Whether a passing deterministic verdict is recorded for the commit; throws when unreadable. */
|
|
57
73
|
hasPassingVerdict: (target: MergeGateTarget, sha: string) => boolean;
|
|
74
|
+
/** The gate state at the commit an approval judged; throws when unreadable. */
|
|
75
|
+
judgeApprovalGate: (target: MergeGateTarget, sha: string) => Promise<ApprovalGateState>;
|
|
58
76
|
}
|
|
59
77
|
/** True for a commit the daemon wrote to capture an agent's uncommitted work. Pure. */
|
|
60
78
|
export declare function isDaemonWipCapture(commit: Pick<UnmergedCommit, 'subject'>): boolean;
|
|
@@ -77,18 +95,23 @@ export declare function defaultMergeGateCoverageDeps(): MergeGateCoverageDeps;
|
|
|
77
95
|
* Judge the commits a merge of `target` would add. Verdicts (local records) are
|
|
78
96
|
* read newest-first only for commits no anchor already contains, stopping once
|
|
79
97
|
* everything is gated; the approving review (a product-api read) is read only
|
|
80
|
-
* when some commit is still ungated after that
|
|
81
|
-
*
|
|
98
|
+
* when some commit is still ungated after that, and anchors only as the gate
|
|
99
|
+
* state at its commit allows (see the module header). Any unreadable input
|
|
100
|
+
* returns 'unreadable' (the caller holds the merge).
|
|
82
101
|
*/
|
|
83
102
|
export declare function evaluateMergeGateCoverage(target: MergeGateTarget, deps?: MergeGateCoverageDeps): Promise<MergeGateCoverageResult>;
|
|
84
103
|
/** Why the merge must hold, or null when it may proceed. Pure. */
|
|
85
104
|
export declare function mergeGateHoldReason(result: MergeGateCoverageResult): string | null;
|
|
86
|
-
/** The
|
|
87
|
-
export declare function
|
|
105
|
+
/** The anchors that admitted a judged merge, for its log line, e.g. `anchors: passing_verdict 1c3e3e506`. Pure. */
|
|
106
|
+
export declare function mergeGateAdmission(anchors: readonly Pick<GatedAnchor, 'sha' | 'source'>[]): string;
|
|
107
|
+
/** Hold with the reason, or admit with the anchors that admitted the merge. Pure. */
|
|
108
|
+
export declare function mergeGateDecision(result: MergeGateCoverageResult): MergeGateDecision;
|
|
109
|
+
/** Whether a merge of `target` holds (and why) or is admitted (and by what). Never throws: a failed read holds. */
|
|
110
|
+
export declare function readMergeGateDecision(target: MergeGateTarget, deps?: MergeGateCoverageDeps): Promise<MergeGateDecision>;
|
|
88
111
|
/**
|
|
89
|
-
* The
|
|
90
|
-
*
|
|
91
|
-
*
|
|
112
|
+
* The decision for a merge of a branch whose focus may be unknown. With no focus
|
|
113
|
+
* there is no verdict or approving review to read, so every non-merge commit is
|
|
114
|
+
* ungated and the merge holds.
|
|
92
115
|
*/
|
|
93
|
-
export declare function
|
|
116
|
+
export declare function readMergeGateDecisionForBranch(target: BranchMergeGateTarget, deps?: MergeGateCoverageDeps): Promise<MergeGateDecision>;
|
|
94
117
|
//# 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":"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"}
|
|
@@ -37,6 +37,16 @@
|
|
|
37
37
|
* coverage watermark (product_focuses.reviewed_through_sha) is NOT an anchor:
|
|
38
38
|
* it advances for a gaps_found review too, so it would authorize the window a
|
|
39
39
|
* review found defective.
|
|
40
|
+
* An approval anchors only where the deterministic gate did not fail at the
|
|
41
|
+
* commit it judged (merge/approval-gate-state.ts): a focus_reviews approval
|
|
42
|
+
* anchors when the verdict recorded there passed, or when none is recorded and
|
|
43
|
+
* no gate is configured for the focus -- a product with no gate still merges on
|
|
44
|
+
* review. A FAILED verdict there, or none yet where a gate is configured,
|
|
45
|
+
* anchors nothing, and the hold names it: review_complete cannot see verdicts
|
|
46
|
+
* (host-local files) and no failure revokes an approval, so on 2026-09-25 a
|
|
47
|
+
* review approved 1c3e3e506 three minutes after its gate failed and the
|
|
48
|
+
* teardown merged it to integration. An auto-approval anchors as before: it is
|
|
49
|
+
* recorded only after the done-route passed the verdict gate.
|
|
40
50
|
* A daemon capture of uncommitted agent work (the worktree/safety.ts subjects)
|
|
41
51
|
* is never gated by itself -- a verify tick or a review spawn that lands on the
|
|
42
52
|
* capture as HEAD judges half-finished work -- so it is covered only by a LATER
|
|
@@ -51,13 +61,16 @@
|
|
|
51
61
|
* (merge/focus-merge.ts checkResolvedMergeConflicts). A branch no focus row
|
|
52
62
|
* names has no verdict or review to read, so nothing on it is gated.
|
|
53
63
|
* An input that cannot be read holds the merge (fail closed); the caller's next
|
|
54
|
-
* tick or exit asks again.
|
|
64
|
+
* tick or exit asks again. A merge the gate admits names the anchors that
|
|
65
|
+
* admitted it (mergeGateAdmission) in the caller's merge log line, so why a commit
|
|
66
|
+
* reached integration is read, not reconstructed by elimination.
|
|
55
67
|
*
|
|
56
68
|
* @module merge-gate-coverage
|
|
57
69
|
*/
|
|
58
70
|
import { listReviewAutoApprovals } from '../completion/review-auto-approval-record.js';
|
|
59
71
|
import { runGitSync } from '../git/types.js';
|
|
60
72
|
import { readLatestApprovedReviewSha } from '../queries/focus-review-approval.js';
|
|
73
|
+
import { judgeApprovalGateState } from './approval-gate-state.js';
|
|
61
74
|
import { readCommitVerdict } from '../verify/commit-verdict-record.js';
|
|
62
75
|
import { SAFETY_COMMIT_SUBJECT_PREFIX, WIP_CAPTURE_SUBJECT_PREFIX } from '../worktree/safety.js';
|
|
63
76
|
const SHA_RE = /^[0-9a-f]{7,64}$/i;
|
|
@@ -132,14 +145,16 @@ export function defaultMergeGateCoverageDeps() {
|
|
|
132
145
|
autoApprovals: listReviewAutoApprovals(target.productId, target.focusId),
|
|
133
146
|
}),
|
|
134
147
|
hasPassingVerdict: (target, sha) => readCommitVerdict(target.productId, target.focusId, sha)?.outcome === 'passed',
|
|
148
|
+
judgeApprovalGate: (target, sha) => judgeApprovalGateState(target, sha),
|
|
135
149
|
};
|
|
136
150
|
}
|
|
137
151
|
/**
|
|
138
152
|
* Judge the commits a merge of `target` would add. Verdicts (local records) are
|
|
139
153
|
* read newest-first only for commits no anchor already contains, stopping once
|
|
140
154
|
* everything is gated; the approving review (a product-api read) is read only
|
|
141
|
-
* when some commit is still ungated after that
|
|
142
|
-
*
|
|
155
|
+
* when some commit is still ungated after that, and anchors only as the gate
|
|
156
|
+
* state at its commit allows (see the module header). Any unreadable input
|
|
157
|
+
* returns 'unreadable' (the caller holds the merge).
|
|
143
158
|
*/
|
|
144
159
|
export async function evaluateMergeGateCoverage(target, deps = defaultMergeGateCoverageDeps()) {
|
|
145
160
|
const { repoPath, integrationBranch, branchName } = target;
|
|
@@ -167,17 +182,33 @@ export async function evaluateMergeGateCoverage(target, deps = defaultMergeGateC
|
|
|
167
182
|
return { kind: 'unreadable', reason: `the verdict for ${commit.sha.slice(0, 9)} could not be read: ${err.message}` };
|
|
168
183
|
}
|
|
169
184
|
}
|
|
185
|
+
let refusedApproval = null;
|
|
170
186
|
if (!allGated()) {
|
|
187
|
+
let approved;
|
|
171
188
|
try {
|
|
172
|
-
|
|
173
|
-
if (approved)
|
|
174
|
-
addAnchor(approved, 'approved_review');
|
|
189
|
+
approved = await deps.readApprovedReviewSha(target);
|
|
175
190
|
}
|
|
176
191
|
catch (err) {
|
|
177
192
|
return { kind: 'unreadable', reason: `the focus's approving review could not be read: ${err.message}` };
|
|
178
193
|
}
|
|
194
|
+
const resolved = approved ? deps.resolveAnchor(repoPath, integrationBranch, approved) : null;
|
|
195
|
+
if (resolved) {
|
|
196
|
+
let state;
|
|
197
|
+
try {
|
|
198
|
+
state = await deps.judgeApprovalGate(target, resolved.sha);
|
|
199
|
+
}
|
|
200
|
+
catch (err) {
|
|
201
|
+
return { kind: 'unreadable', reason: `the gate verdict at approved ${resolved.sha.slice(0, 9)} could not be read: ${err.message}` };
|
|
202
|
+
}
|
|
203
|
+
if (state === 'failed' || state === 'pending')
|
|
204
|
+
refusedApproval = { sha: resolved.sha, state };
|
|
205
|
+
else
|
|
206
|
+
anchors.push({ ...resolved, source: state === 'auto_approval' ? 'auto_approval' : 'approved_review' });
|
|
207
|
+
}
|
|
179
208
|
}
|
|
180
|
-
|
|
209
|
+
const judged = commits.filter((c) => !(c.isMerge && c.cleanMerge === true));
|
|
210
|
+
const gating = anchors.filter((a) => judged.some((c) => anchorGates(a, c)));
|
|
211
|
+
return { kind: 'judged', coverage: judgeMergeGateCoverage(commits, anchors), anchors: gating, refusedApproval };
|
|
181
212
|
}
|
|
182
213
|
/** Why the merge must hold, or null when it may proceed. Pure. */
|
|
183
214
|
export function mergeGateHoldReason(result) {
|
|
@@ -189,30 +220,50 @@ export function mergeGateHoldReason(result) {
|
|
|
189
220
|
const captures = ungatedWipCaptures.length === 0
|
|
190
221
|
? ''
|
|
191
222
|
: `, including ${ungatedWipCaptures.length} daemon WIP capture(s) (${ungatedWipCaptures.map((c) => c.sha.slice(0, 9)).join(', ')})`;
|
|
192
|
-
|
|
223
|
+
const refused = result.refusedApproval;
|
|
224
|
+
const approval = refused === null
|
|
225
|
+
? ''
|
|
226
|
+
: `; the approving review at ${refused.sha.slice(0, 9)} anchors nothing: ${refused.state === 'failed'
|
|
227
|
+
? 'the gate verdict there FAILED'
|
|
228
|
+
: 'no gate verdict is recorded there yet and a gate is configured for the focus'}`;
|
|
229
|
+
return `${ungated.length} commit(s) not past the focus's review or verify gate${captures}${approval}`;
|
|
230
|
+
}
|
|
231
|
+
/** The anchors that admitted a judged merge, for its log line, e.g. `anchors: passing_verdict 1c3e3e506`. Pure. */
|
|
232
|
+
export function mergeGateAdmission(anchors) {
|
|
233
|
+
if (anchors.length === 0)
|
|
234
|
+
return 'anchors: none (no judged commits)';
|
|
235
|
+
return `anchors: ${anchors.map((a) => `${a.source} ${a.sha.slice(0, 9)}`).join(', ')}`;
|
|
236
|
+
}
|
|
237
|
+
/** Hold with the reason, or admit with the anchors that admitted the merge. Pure. */
|
|
238
|
+
export function mergeGateDecision(result) {
|
|
239
|
+
const hold = mergeGateHoldReason(result);
|
|
240
|
+
if (hold !== null || result.kind !== 'judged')
|
|
241
|
+
return { hold: hold ?? 'its gate coverage could not be read' };
|
|
242
|
+
return { hold: null, admittedBy: mergeGateAdmission(result.anchors) };
|
|
193
243
|
}
|
|
194
|
-
/**
|
|
195
|
-
export async function
|
|
244
|
+
/** Whether a merge of `target` holds (and why) or is admitted (and by what). Never throws: a failed read holds. */
|
|
245
|
+
export async function readMergeGateDecision(target, deps = defaultMergeGateCoverageDeps()) {
|
|
196
246
|
try {
|
|
197
|
-
return
|
|
247
|
+
return mergeGateDecision(await evaluateMergeGateCoverage(target, deps));
|
|
198
248
|
}
|
|
199
249
|
catch (err) {
|
|
200
|
-
return
|
|
250
|
+
return mergeGateDecision({ kind: 'unreadable', reason: err.message });
|
|
201
251
|
}
|
|
202
252
|
}
|
|
203
253
|
/**
|
|
204
|
-
* The
|
|
205
|
-
*
|
|
206
|
-
*
|
|
254
|
+
* The decision for a merge of a branch whose focus may be unknown. With no focus
|
|
255
|
+
* there is no verdict or approving review to read, so every non-merge commit is
|
|
256
|
+
* ungated and the merge holds.
|
|
207
257
|
*/
|
|
208
|
-
export function
|
|
258
|
+
export function readMergeGateDecisionForBranch(target, deps = defaultMergeGateCoverageDeps()) {
|
|
209
259
|
const { focusId, ...rest } = target;
|
|
210
260
|
if (focusId !== null)
|
|
211
|
-
return
|
|
212
|
-
return
|
|
261
|
+
return readMergeGateDecision({ ...rest, focusId }, deps);
|
|
262
|
+
return readMergeGateDecision({ ...rest, focusId: '' }, {
|
|
213
263
|
...deps,
|
|
214
264
|
readApprovedReviewSha: async () => null,
|
|
215
265
|
hasPassingVerdict: () => false,
|
|
266
|
+
judgeApprovalGate: async () => 'pending',
|
|
216
267
|
});
|
|
217
268
|
}
|
|
218
269
|
//# sourceMappingURL=merge-gate-coverage.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"merge-gate-coverage.js","sourceRoot":"","sources":["../../src/merge/merge-gate-coverage.ts"],"names":[],"mappings":"AAAA,8FAA8F;AAC9F,2EAA2E;AAC3E,gEAAgE;AAChE,qEAAqE;AACrE,2DAA2D;AAC3D,oEAAoE;AACpE,gEAAgE;AAChE,gBAAgB;AAEhB
|
|
1
|
+
{"version":3,"file":"merge-gate-coverage.js","sourceRoot":"","sources":["../../src/merge/merge-gate-coverage.ts"],"names":[],"mappings":"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"}
|
package/dist/nexus/return.d.ts
CHANGED
|
@@ -9,7 +9,11 @@
|
|
|
9
9
|
* (product_request_resolve) advances the request to 'closed' ONLY when the
|
|
10
10
|
* materialized delivery's execution_status is 'done' (it passed the verify
|
|
11
11
|
* gate); any other delivery state is a no-op. So merely calling resolve
|
|
12
|
-
* every tick converges the request the moment B's work lands.
|
|
12
|
+
* every tick converges the request the moment B's work lands. Once the
|
|
13
|
+
* request's answering FOCUS has ended the stamped delivery decides nothing:
|
|
14
|
+
* complete closes the request, cancelled declines it -- decided in the
|
|
15
|
+
* database at the focus's own transition (resolveRequestsOfEndedFoci is the
|
|
16
|
+
* org-wide backstop).
|
|
13
17
|
*
|
|
14
18
|
* SOURCE side -- the requesting work that waits on an outgoing request is
|
|
15
19
|
* held while the request is open, released when it closes, and handed back
|
|
@@ -181,8 +185,47 @@ export declare function defaultNexusAutoDeliverDeps(_config: DaemonConfig): Nexu
|
|
|
181
185
|
* reopen. The delivery-status gate still owns the actual close; this pass only
|
|
182
186
|
* removes the volunteer-deliver dependency. Best-effort + per-request try/catch,
|
|
183
187
|
* mirroring the rest of the return pass.
|
|
188
|
+
*
|
|
189
|
+
* Scope: this pass serves a request whose answering focus is still IN FLIGHT
|
|
190
|
+
* (its stamped delivery reached done first). Once the focus COMPLETES, findings
|
|
191
|
+
* are derived in the database at the focus's own transition
|
|
192
|
+
* (end_request_answered_by_focus): from the latest completed review summary,
|
|
193
|
+
* else the done deliveries and their acceptance criteria, stamped delivery or
|
|
194
|
+
* not -- so a completed focus never waits on this pass.
|
|
184
195
|
*/
|
|
185
196
|
export declare function autoDeliverCompletedRequests(config: DaemonConfig, deps?: NexusAutoDeliverDeps): Promise<void>;
|
|
197
|
+
/** What the ended-foci sweep reports (product_request_resolve_ended_foci). */
|
|
198
|
+
export interface EndedFociSweep {
|
|
199
|
+
evaluated: number;
|
|
200
|
+
closed: number;
|
|
201
|
+
declined: number;
|
|
202
|
+
held: number;
|
|
203
|
+
failed: number;
|
|
204
|
+
}
|
|
205
|
+
/** Deps for the ended-foci backstop; separate so it does not grow NexusReturnDeps. */
|
|
206
|
+
export interface NexusEndedFociDeps {
|
|
207
|
+
/** Re-evaluate every in_progress request in the org whose answering focus has ended. */
|
|
208
|
+
sweepEndedFoci: () => Promise<EndedFociSweep>;
|
|
209
|
+
log?: (msg: string) => void;
|
|
210
|
+
}
|
|
211
|
+
/** Production ended-foci deps over callApi. */
|
|
212
|
+
export declare function defaultNexusEndedFociDeps(_config: DaemonConfig): NexusEndedFociDeps;
|
|
213
|
+
/**
|
|
214
|
+
* The BACKSTOP for "a request ends when the focus that answers it ends".
|
|
215
|
+
*
|
|
216
|
+
* The rule runs in the database at the focus's own transition (a trigger on
|
|
217
|
+
* product_focuses), whichever writer set the status and whether or not the
|
|
218
|
+
* TARGET product runs a daemon. Two cases have no transition left to wait for:
|
|
219
|
+
* a request a gate held at the transition (an open question or operator
|
|
220
|
+
* escalation, which clears on some other row later), and a request whose focus
|
|
221
|
+
* ended before the rule existed. This sweep re-evaluates both, org-wide, every
|
|
222
|
+
* tick -- ANY daemon in the org calling it is enough, which is the point: the
|
|
223
|
+
* per-product resolve pass above never ran for a target with no daemon.
|
|
224
|
+
*
|
|
225
|
+
* Cannot double-end a request: the server acts only on in_progress. Best-effort:
|
|
226
|
+
* a failure is logged and the next tick retries.
|
|
227
|
+
*/
|
|
228
|
+
export declare function resolveRequestsOfEndedFoci(config: DaemonConfig, deps?: NexusEndedFociDeps): Promise<void>;
|
|
186
229
|
/**
|
|
187
230
|
* Poll one product for return-path loop closure. Runs both sides:
|
|
188
231
|
* TARGET -- resolve materialized in_progress incoming requests (server gates
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"return.d.ts","sourceRoot":"","sources":["../../src/nexus/return.ts"],"names":[],"mappings":"AAKA
|
|
1
|
+
{"version":3,"file":"return.d.ts","sourceRoot":"","sources":["../../src/nexus/return.ts"],"names":[],"mappings":"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"}
|
package/dist/nexus/return.js
CHANGED
|
@@ -157,6 +157,13 @@ export function defaultNexusAutoDeliverDeps(_config) {
|
|
|
157
157
|
* reopen. The delivery-status gate still owns the actual close; this pass only
|
|
158
158
|
* removes the volunteer-deliver dependency. Best-effort + per-request try/catch,
|
|
159
159
|
* mirroring the rest of the return pass.
|
|
160
|
+
*
|
|
161
|
+
* Scope: this pass serves a request whose answering focus is still IN FLIGHT
|
|
162
|
+
* (its stamped delivery reached done first). Once the focus COMPLETES, findings
|
|
163
|
+
* are derived in the database at the focus's own transition
|
|
164
|
+
* (end_request_answered_by_focus): from the latest completed review summary,
|
|
165
|
+
* else the done deliveries and their acceptance criteria, stamped delivery or
|
|
166
|
+
* not -- so a completed focus never waits on this pass.
|
|
160
167
|
*/
|
|
161
168
|
export async function autoDeliverCompletedRequests(config, deps = defaultNexusAutoDeliverDeps(config)) {
|
|
162
169
|
const productId = config.productId;
|
|
@@ -187,6 +194,41 @@ export async function autoDeliverCompletedRequests(config, deps = defaultNexusAu
|
|
|
187
194
|
}
|
|
188
195
|
}
|
|
189
196
|
}
|
|
197
|
+
/** Production ended-foci deps over callApi. */
|
|
198
|
+
export function defaultNexusEndedFociDeps(_config) {
|
|
199
|
+
return {
|
|
200
|
+
sweepEndedFoci: () => callApi('product_request_resolve_ended_foci', {}),
|
|
201
|
+
log: (msg) => dlog.info(msg),
|
|
202
|
+
};
|
|
203
|
+
}
|
|
204
|
+
/**
|
|
205
|
+
* The BACKSTOP for "a request ends when the focus that answers it ends".
|
|
206
|
+
*
|
|
207
|
+
* The rule runs in the database at the focus's own transition (a trigger on
|
|
208
|
+
* product_focuses), whichever writer set the status and whether or not the
|
|
209
|
+
* TARGET product runs a daemon. Two cases have no transition left to wait for:
|
|
210
|
+
* a request a gate held at the transition (an open question or operator
|
|
211
|
+
* escalation, which clears on some other row later), and a request whose focus
|
|
212
|
+
* ended before the rule existed. This sweep re-evaluates both, org-wide, every
|
|
213
|
+
* tick -- ANY daemon in the org calling it is enough, which is the point: the
|
|
214
|
+
* per-product resolve pass above never ran for a target with no daemon.
|
|
215
|
+
*
|
|
216
|
+
* Cannot double-end a request: the server acts only on in_progress. Best-effort:
|
|
217
|
+
* a failure is logged and the next tick retries.
|
|
218
|
+
*/
|
|
219
|
+
export async function resolveRequestsOfEndedFoci(config, deps = defaultNexusEndedFociDeps(config)) {
|
|
220
|
+
const log = deps.log ?? ((msg) => dlog.info(msg));
|
|
221
|
+
try {
|
|
222
|
+
const sweep = await deps.sweepEndedFoci();
|
|
223
|
+
if (sweep.closed > 0 || sweep.declined > 0 || sweep.failed > 0) {
|
|
224
|
+
log(`[nexus] ended-foci sweep: closed ${sweep.closed}, declined ${sweep.declined}, ` +
|
|
225
|
+
`held ${sweep.held}, failed ${sweep.failed} of ${sweep.evaluated} request(s) whose answering focus ended`);
|
|
226
|
+
}
|
|
227
|
+
}
|
|
228
|
+
catch (err) {
|
|
229
|
+
log(`[nexus] ended-foci sweep failed: ${err.message}`);
|
|
230
|
+
}
|
|
231
|
+
}
|
|
190
232
|
/**
|
|
191
233
|
* Poll one product for return-path loop closure. Runs both sides:
|
|
192
234
|
* TARGET -- resolve materialized in_progress incoming requests (server gates
|
package/dist/nexus/return.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"return.js","sourceRoot":"","sources":["../../src/nexus/return.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"return.js","sourceRoot":"","sources":["../../src/nexus/return.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,18 +7,20 @@
|
|
|
7
7
|
* the role framework).
|
|
8
8
|
*/
|
|
9
9
|
import type { FocusDeliveryInfo, FocusIssueInfo } from '../types/index.js';
|
|
10
|
-
import {
|
|
10
|
+
import type { ArmFacts } from '../focus/recorded-new-intent.js';
|
|
11
11
|
export type { DeploymentProfileSnapshotContext, FocusTeamPromptContext } from './team-prompt-base.js';
|
|
12
12
|
export { buildFocusTeamPrompt } from './team-prompt-base.js';
|
|
13
13
|
/**
|
|
14
|
-
* Build a re-engagement message listing
|
|
15
|
-
*
|
|
14
|
+
* Build a re-engagement message listing the deliveries that still hold team
|
|
15
|
+
* work -- an open work issue on an agent-actionable delivery, or a `planning`
|
|
16
|
+
* delivery to scope (deliveriesWithTeamWork, focus/team-actionable-work.ts).
|
|
16
17
|
*
|
|
17
|
-
*
|
|
18
|
-
*
|
|
19
|
-
*
|
|
20
|
-
*
|
|
21
|
-
*
|
|
18
|
+
* Callers pass their non-terminal set; the builder names only the deliveries in
|
|
19
|
+
* it that hold work. A coding delivery whose every issue is Done is the
|
|
20
|
+
* daemon's to advance: naming it under "Scope, Finish, or Cancel" hands the
|
|
21
|
+
* team a delivery with nothing on it to do, and a lead told that repeatedly
|
|
22
|
+
* escalates to a human for a status it cannot set (Tinker Tailor, 2026-09-25).
|
|
23
|
+
* Used by the scope-coverage guard and the lead continuation turn.
|
|
22
24
|
*/
|
|
23
25
|
export declare function buildReEngagementMessage(nonTerminalDeliveries: FocusDeliveryInfo[], issues: FocusIssueInfo[], armFacts?: ArmFacts | null): string;
|
|
24
26
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"focus-prompt-builder.d.ts","sourceRoot":"","sources":["../../src/prompt/focus-prompt-builder.ts"],"names":[],"mappings":"AAkBA;;;;;;;GAOG;AAEH,OAAO,KAAK,EACV,iBAAiB,EACjB,cAAc,EACf,MAAM,mBAAmB,CAAC;AAI3B,OAAO,
|
|
1
|
+
{"version":3,"file":"focus-prompt-builder.d.ts","sourceRoot":"","sources":["../../src/prompt/focus-prompt-builder.ts"],"names":[],"mappings":"AAkBA;;;;;;;GAOG;AAEH,OAAO,KAAK,EACV,iBAAiB,EACjB,cAAc,EACf,MAAM,mBAAmB,CAAC;AAI3B,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iCAAiC,CAAC;AAKhE,YAAY,EAAE,gCAAgC,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AACtG,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAE7D;;;;;;;;;;;GAWG;AACH,wBAAgB,wBAAwB,CACtC,qBAAqB,EAAE,iBAAiB,EAAE,EAC1C,MAAM,EAAE,cAAc,EAAE,EACxB,QAAQ,CAAC,EAAE,QAAQ,GAAG,IAAI,GACzB,MAAM,CAoDR;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAC9B,UAAU,EAAE,iBAAiB,EAAE,EAC/B,MAAM,EAAE,cAAc,EAAE,EACxB,gBAAgB,EAAE,GAAG,CAAC,MAAM,CAAC,GAC5B,MAAM,CAqER"}
|
|
@@ -18,17 +18,20 @@
|
|
|
18
18
|
import { isStatusAgentActionable } from '../workflow/stage-classifier.js';
|
|
19
19
|
import { buildIssueCountLine, buildContextGroupLine, buildStandaloneIssueLine, buildVerificationFailureLines, buildShortfallReconciliationLines } from './prompt-listing.js';
|
|
20
20
|
import { formatGateVerdictHeadline, gateVerdictFromGateState } from '../prompt-sections/gate-verdict-section.js';
|
|
21
|
-
import {
|
|
21
|
+
import { deliveriesWithTeamWork } from '../focus/team-actionable-work.js';
|
|
22
|
+
import { OPEN_ISSUE_STATUSES } from '../shell/constants.js';
|
|
22
23
|
export { buildFocusTeamPrompt } from './team-prompt-base.js';
|
|
23
24
|
/**
|
|
24
|
-
* Build a re-engagement message listing
|
|
25
|
-
*
|
|
25
|
+
* Build a re-engagement message listing the deliveries that still hold team
|
|
26
|
+
* work -- an open work issue on an agent-actionable delivery, or a `planning`
|
|
27
|
+
* delivery to scope (deliveriesWithTeamWork, focus/team-actionable-work.ts).
|
|
26
28
|
*
|
|
27
|
-
*
|
|
28
|
-
*
|
|
29
|
-
*
|
|
30
|
-
*
|
|
31
|
-
*
|
|
29
|
+
* Callers pass their non-terminal set; the builder names only the deliveries in
|
|
30
|
+
* it that hold work. A coding delivery whose every issue is Done is the
|
|
31
|
+
* daemon's to advance: naming it under "Scope, Finish, or Cancel" hands the
|
|
32
|
+
* team a delivery with nothing on it to do, and a lead told that repeatedly
|
|
33
|
+
* escalates to a human for a status it cannot set (Tinker Tailor, 2026-09-25).
|
|
34
|
+
* Used by the scope-coverage guard and the lead continuation turn.
|
|
32
35
|
*/
|
|
33
36
|
export function buildReEngagementMessage(nonTerminalDeliveries, issues, armFacts) {
|
|
34
37
|
// Callers already exclude a delivery RECORDED as new intent under the live
|
|
@@ -37,11 +40,11 @@ export function buildReEngagementMessage(nonTerminalDeliveries, issues, armFacts
|
|
|
37
40
|
// work the record/queue rule refuses to queue. A caller that regains a
|
|
38
41
|
// recorded delivery would resurrect the nudge loop, so the builder refuses to
|
|
39
42
|
// render one whenever it is given the arm facts to recognise it.
|
|
40
|
-
nonTerminalDeliveries =
|
|
43
|
+
nonTerminalDeliveries = deliveriesWithTeamWork(nonTerminalDeliveries, issues, { armFacts, planningIsWork: true });
|
|
41
44
|
const parts = [];
|
|
42
45
|
parts.push('## Remaining Work -- Scope, Finish, or Cancel');
|
|
43
46
|
parts.push('');
|
|
44
|
-
parts.push('The focus still has
|
|
47
|
+
parts.push('The focus still has deliveries holding open work. The team must');
|
|
45
48
|
parts.push('finish, scope, or cancel each one before the focus can wind');
|
|
46
49
|
parts.push('down. Do not exit. Pick the highest-priority delivery (lowest');
|
|
47
50
|
parts.push('priorityRank) and continue from there.');
|
|
@@ -65,6 +68,12 @@ export function buildReEngagementMessage(nonTerminalDeliveries, issues, armFacts
|
|
|
65
68
|
}
|
|
66
69
|
else {
|
|
67
70
|
parts.push(buildIssueCountLine(workIssues));
|
|
71
|
+
// Name the open work itself: a count alone tells the lead there is work
|
|
72
|
+
// but not which issue to pick up.
|
|
73
|
+
for (const issue of workIssues) {
|
|
74
|
+
if (OPEN_ISSUE_STATUSES.has(issue.status))
|
|
75
|
+
parts.push(buildStandaloneIssueLine(issue));
|
|
76
|
+
}
|
|
68
77
|
}
|
|
69
78
|
parts.push('');
|
|
70
79
|
}
|