@lumenflow/core 2.18.2 → 2.19.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/adapters/terminal-renderer.adapter.d.ts.map +1 -1
- package/dist/adapters/terminal-renderer.adapter.js +6 -4
- package/dist/adapters/terminal-renderer.adapter.js.map +1 -1
- package/dist/atomic-merge.d.ts +21 -0
- package/dist/atomic-merge.d.ts.map +1 -0
- package/dist/atomic-merge.js +83 -0
- package/dist/atomic-merge.js.map +1 -0
- package/dist/delegation-escalation.d.ts +91 -0
- package/dist/delegation-escalation.d.ts.map +1 -0
- package/dist/delegation-escalation.js +258 -0
- package/dist/delegation-escalation.js.map +1 -0
- package/dist/delegation-monitor.d.ts +230 -0
- package/dist/delegation-monitor.d.ts.map +1 -0
- package/dist/delegation-monitor.js +675 -0
- package/dist/delegation-monitor.js.map +1 -0
- package/dist/delegation-recovery.d.ts +83 -0
- package/dist/delegation-recovery.d.ts.map +1 -0
- package/dist/delegation-recovery.js +299 -0
- package/dist/delegation-recovery.js.map +1 -0
- package/dist/delegation-registry-schema.d.ts +80 -0
- package/dist/delegation-registry-schema.d.ts.map +1 -0
- package/dist/delegation-registry-schema.js +91 -0
- package/dist/delegation-registry-schema.js.map +1 -0
- package/dist/delegation-registry-store.d.ts +159 -0
- package/dist/delegation-registry-store.d.ts.map +1 -0
- package/dist/delegation-registry-store.js +299 -0
- package/dist/delegation-registry-store.js.map +1 -0
- package/dist/delegation-tree.d.ts +57 -0
- package/dist/delegation-tree.d.ts.map +1 -0
- package/dist/delegation-tree.js +203 -0
- package/dist/delegation-tree.js.map +1 -0
- package/dist/gates-agent-mode.d.ts +25 -0
- package/dist/gates-agent-mode.d.ts.map +1 -1
- package/dist/gates-agent-mode.js +41 -0
- package/dist/gates-agent-mode.js.map +1 -1
- package/dist/index.d.ts +10 -7
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +14 -9
- package/dist/index.js.map +1 -1
- package/dist/lumenflow-config-schema.d.ts +9 -3
- package/dist/lumenflow-config-schema.d.ts.map +1 -1
- package/dist/lumenflow-config-schema.js +18 -3
- package/dist/lumenflow-config-schema.js.map +1 -1
- package/dist/lumenflow-config.d.ts +2 -0
- package/dist/lumenflow-config.d.ts.map +1 -1
- package/dist/lumenflow-config.js +1 -0
- package/dist/lumenflow-config.js.map +1 -1
- package/dist/micro-worktree-shared.d.ts +134 -0
- package/dist/micro-worktree-shared.d.ts.map +1 -0
- package/dist/micro-worktree-shared.js +350 -0
- package/dist/micro-worktree-shared.js.map +1 -0
- package/dist/micro-worktree.d.ts +4 -273
- package/dist/micro-worktree.d.ts.map +1 -1
- package/dist/micro-worktree.js +17 -549
- package/dist/micro-worktree.js.map +1 -1
- package/dist/rollback-utils.d.ts +52 -0
- package/dist/rollback-utils.d.ts.map +1 -1
- package/dist/rollback-utils.js +111 -0
- package/dist/rollback-utils.js.map +1 -1
- package/dist/schemas/index.d.ts +3 -3
- package/dist/schemas/index.d.ts.map +1 -1
- package/dist/schemas/index.js +6 -6
- package/dist/schemas/index.js.map +1 -1
- package/dist/schemas/initiative-arg-validators.d.ts +1 -0
- package/dist/schemas/initiative-arg-validators.d.ts.map +1 -1
- package/dist/schemas/initiative-schemas.d.ts +3 -1
- package/dist/schemas/initiative-schemas.d.ts.map +1 -1
- package/dist/schemas/initiative-schemas.js +2 -1
- package/dist/schemas/initiative-schemas.js.map +1 -1
- package/dist/schemas/setup-arg-validators.d.ts +4 -4
- package/dist/schemas/setup-arg-validators.d.ts.map +1 -1
- package/dist/schemas/setup-arg-validators.js +6 -6
- package/dist/schemas/setup-arg-validators.js.map +1 -1
- package/dist/schemas/setup-schemas.d.ts +7 -7
- package/dist/schemas/setup-schemas.d.ts.map +1 -1
- package/dist/schemas/setup-schemas.js +10 -10
- package/dist/schemas/setup-schemas.js.map +1 -1
- package/dist/schemas/wu-lifecycle-arg-validators.d.ts +2 -1
- package/dist/schemas/wu-lifecycle-arg-validators.d.ts.map +1 -1
- package/dist/schemas/wu-lifecycle-schemas.d.ts +5 -3
- package/dist/schemas/wu-lifecycle-schemas.d.ts.map +1 -1
- package/dist/schemas/wu-lifecycle-schemas.js +5 -1
- package/dist/schemas/wu-lifecycle-schemas.js.map +1 -1
- package/dist/template-loader.d.ts +7 -3
- package/dist/template-loader.d.ts.map +1 -1
- package/dist/template-loader.js +22 -6
- package/dist/template-loader.js.map +1 -1
- package/dist/wu-consistency-checker.d.ts +1 -0
- package/dist/wu-consistency-checker.d.ts.map +1 -1
- package/dist/wu-consistency-checker.js +31 -2
- package/dist/wu-consistency-checker.js.map +1 -1
- package/dist/wu-context-constants.d.ts +0 -2
- package/dist/wu-context-constants.d.ts.map +1 -1
- package/dist/wu-context-constants.js +0 -2
- package/dist/wu-context-constants.js.map +1 -1
- package/dist/wu-done-branch-only.d.ts +2 -11
- package/dist/wu-done-branch-only.d.ts.map +1 -1
- package/dist/wu-done-branch-only.js +81 -45
- package/dist/wu-done-branch-only.js.map +1 -1
- package/dist/wu-done-cleanup.js +33 -1
- package/dist/wu-done-cleanup.js.map +1 -1
- package/dist/wu-done-initiative-sync.d.ts.map +1 -1
- package/dist/wu-done-initiative-sync.js +20 -5
- package/dist/wu-done-initiative-sync.js.map +1 -1
- package/dist/wu-done-machine.d.ts +175 -0
- package/dist/wu-done-machine.d.ts.map +1 -0
- package/dist/wu-done-machine.js +225 -0
- package/dist/wu-done-machine.js.map +1 -0
- package/dist/wu-done-metadata.d.ts.map +1 -1
- package/dist/wu-done-metadata.js +3 -1
- package/dist/wu-done-metadata.js.map +1 -1
- package/dist/wu-done-validation.d.ts +0 -37
- package/dist/wu-done-validation.d.ts.map +1 -1
- package/dist/wu-done-validation.js +1 -155
- package/dist/wu-done-validation.js.map +1 -1
- package/dist/wu-done-validators.d.ts +1 -2
- package/dist/wu-done-validators.d.ts.map +1 -1
- package/dist/wu-done-validators.js +1 -3
- package/dist/wu-done-validators.js.map +1 -1
- package/dist/wu-done-worktree-services.d.ts +191 -0
- package/dist/wu-done-worktree-services.d.ts.map +1 -0
- package/dist/wu-done-worktree-services.js +273 -0
- package/dist/wu-done-worktree-services.js.map +1 -0
- package/dist/wu-done-worktree.d.ts +0 -19
- package/dist/wu-done-worktree.d.ts.map +1 -1
- package/dist/wu-done-worktree.js +165 -118
- package/dist/wu-done-worktree.js.map +1 -1
- package/dist/wu-git-constants.d.ts +4 -0
- package/dist/wu-git-constants.d.ts.map +1 -1
- package/dist/wu-git-constants.js +4 -0
- package/dist/wu-git-constants.js.map +1 -1
- package/dist/wu-helpers.d.ts +5 -1
- package/dist/wu-helpers.d.ts.map +1 -1
- package/dist/wu-helpers.js +5 -1
- package/dist/wu-helpers.js.map +1 -1
- package/dist/wu-lint.d.ts +24 -0
- package/dist/wu-lint.d.ts.map +1 -1
- package/dist/wu-lint.js +48 -1
- package/dist/wu-lint.js.map +1 -1
- package/dist/wu-paths-constants.d.ts +3 -3
- package/dist/wu-paths-constants.d.ts.map +1 -1
- package/dist/wu-paths-constants.js +3 -3
- package/dist/wu-paths-constants.js.map +1 -1
- package/dist/wu-recovery.d.ts +89 -0
- package/dist/wu-recovery.d.ts.map +1 -1
- package/dist/wu-recovery.js +118 -0
- package/dist/wu-recovery.js.map +1 -1
- package/dist/wu-schema.d.ts +6 -6
- package/dist/wu-spawn-context.d.ts +1 -1
- package/dist/wu-spawn-context.d.ts.map +1 -1
- package/dist/wu-spawn-context.js +8 -2
- package/dist/wu-spawn-context.js.map +1 -1
- package/dist/wu-spawn-helpers.js +2 -2
- package/dist/wu-spawn-helpers.js.map +1 -1
- package/dist/wu-state-schema.d.ts +12 -12
- package/dist/wu-state-schema.d.ts.map +1 -1
- package/dist/wu-state-schema.js +10 -10
- package/dist/wu-state-schema.js.map +1 -1
- package/dist/wu-state-store.d.ts +10 -4
- package/dist/wu-state-store.d.ts.map +1 -1
- package/dist/wu-state-store.js +309 -11
- package/dist/wu-state-store.js.map +1 -1
- package/dist/wu-transaction.d.ts +21 -0
- package/dist/wu-transaction.d.ts.map +1 -1
- package/dist/wu-transaction.js +17 -0
- package/dist/wu-transaction.js.map +1 -1
- package/package.json +15 -9
|
@@ -0,0 +1,273 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* WU-1664: Extracted wu:done worktree completion services for state-driven execution.
|
|
3
|
+
*
|
|
4
|
+
* Each exported service function corresponds to a pipeline state from the XState
|
|
5
|
+
* wu:done machine (WU-1662). Services receive explicit dependencies and return
|
|
6
|
+
* typed results, enabling the state-machine orchestrator (WU-1663) to invoke them
|
|
7
|
+
* independently without changing branch-only or public completion semantics.
|
|
8
|
+
*
|
|
9
|
+
* Pipeline state mapping:
|
|
10
|
+
* validateWorktreeState -> validating
|
|
11
|
+
* prepareTransaction -> preparing
|
|
12
|
+
* commitTransaction -> committing
|
|
13
|
+
* mergeToMain -> merging + pushing (atomic merge combines both)
|
|
14
|
+
* finalizeCompletion -> cleaningUp
|
|
15
|
+
*
|
|
16
|
+
* @module wu-done-worktree-services
|
|
17
|
+
*/
|
|
18
|
+
import path from 'node:path';
|
|
19
|
+
import { collectMetadataToTransaction, stageAndFormatMetadata, generateCommitMessage, defaultBranchFrom, branchExists, validatePostMutation, } from './wu-done-validators.js';
|
|
20
|
+
import { validateDoneWU, validateAndNormalizeWUYAML } from './wu-schema.js';
|
|
21
|
+
import { assertTransition } from './state-machine.js';
|
|
22
|
+
import { validateMainNotBehindOrigin, resolveWorktreeMetadataPaths } from './wu-done-worktree.js';
|
|
23
|
+
import { emitLaneSignalForCompletion } from './wu-done-branch-only.js';
|
|
24
|
+
import { WU_DONE_COMPLETION_MODES } from './wu-done-pr.js';
|
|
25
|
+
import { clearRecoveryAttempts, detectZombieState } from './wu-recovery.js';
|
|
26
|
+
import { countPreviousCompletionAttempts, squashPreviousCompletionAttempts, } from './wu-done-retry-helpers.js';
|
|
27
|
+
import { WUTransaction, createTransactionSnapshot, restoreFromSnapshot } from './wu-transaction.js';
|
|
28
|
+
import { maybeRegenerateAndStageDocs } from './wu-done-docs-generate.js';
|
|
29
|
+
import { withMergeLock } from './merge-lock.js';
|
|
30
|
+
import { withAtomicMerge } from './atomic-merge.js';
|
|
31
|
+
import { BRANCHES, LOG_PREFIX, WU_STATUS } from './wu-constants.js';
|
|
32
|
+
import { createError, ErrorCodes } from './error-handler.js';
|
|
33
|
+
import { createValidationError } from './wu-done-errors.js';
|
|
34
|
+
/**
|
|
35
|
+
* Validate worktree state for wu:done completion.
|
|
36
|
+
*
|
|
37
|
+
* Checks:
|
|
38
|
+
* 1. WU status can transition to done
|
|
39
|
+
* 2. Local main is not behind origin/main
|
|
40
|
+
* 3. WU YAML schema is valid and normalizable
|
|
41
|
+
* 4. Done-specific completeness (acceptance, code_paths, etc.)
|
|
42
|
+
* 5. Zombie state detection
|
|
43
|
+
*
|
|
44
|
+
* @param input - Validation inputs
|
|
45
|
+
* @returns Validation result with error details
|
|
46
|
+
*/
|
|
47
|
+
export async function validateWorktreeState(input) {
|
|
48
|
+
const { wuId, worktreePath, doc, gitAdapterForMain } = input;
|
|
49
|
+
const errors = [];
|
|
50
|
+
let zombieDetected = false;
|
|
51
|
+
let normalizedDoc = doc;
|
|
52
|
+
// Check for zombie state (status=done in worktree)
|
|
53
|
+
if (detectZombieState(doc, worktreePath)) {
|
|
54
|
+
zombieDetected = true;
|
|
55
|
+
// Zombie detection is informational; the caller decides how to handle it
|
|
56
|
+
return { valid: true, errors: [], zombieDetected, normalizedDoc: doc };
|
|
57
|
+
}
|
|
58
|
+
// Validate state transition
|
|
59
|
+
const currentStatus = doc.status || WU_STATUS.IN_PROGRESS;
|
|
60
|
+
try {
|
|
61
|
+
assertTransition(currentStatus, WU_STATUS.DONE, wuId);
|
|
62
|
+
}
|
|
63
|
+
catch (err) {
|
|
64
|
+
errors.push(`State transition invalid: ${err.message}`);
|
|
65
|
+
return { valid: false, errors, zombieDetected };
|
|
66
|
+
}
|
|
67
|
+
// Check main is not behind origin
|
|
68
|
+
try {
|
|
69
|
+
const mainResult = await validateMainNotBehindOrigin(gitAdapterForMain);
|
|
70
|
+
if (!mainResult.valid) {
|
|
71
|
+
errors.push(`Local main is ${mainResult.commitsBehind} commit(s) behind origin/main. ` +
|
|
72
|
+
`Fix: git pull origin main`);
|
|
73
|
+
return { valid: false, errors, zombieDetected };
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
catch {
|
|
77
|
+
// Fail-open for network errors
|
|
78
|
+
}
|
|
79
|
+
// Validate and normalize WU YAML schema
|
|
80
|
+
const normalizeResult = validateAndNormalizeWUYAML(doc);
|
|
81
|
+
if (!normalizeResult.valid) {
|
|
82
|
+
errors.push(`WU YAML validation failed: ${normalizeResult.errors.join('; ')}`);
|
|
83
|
+
return { valid: false, errors, zombieDetected };
|
|
84
|
+
}
|
|
85
|
+
normalizedDoc = normalizeResult.normalized;
|
|
86
|
+
// Validate done-specific completeness
|
|
87
|
+
const completenessResult = validateDoneWU(normalizedDoc);
|
|
88
|
+
if (!completenessResult.valid) {
|
|
89
|
+
errors.push(`Spec incomplete: ${completenessResult.errors.join('; ')}`);
|
|
90
|
+
return { valid: false, errors, zombieDetected };
|
|
91
|
+
}
|
|
92
|
+
return { valid: true, errors: [], zombieDetected, normalizedDoc };
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Prepare the metadata transaction for wu:done completion.
|
|
96
|
+
*
|
|
97
|
+
* Collects all metadata changes (WU YAML, status, backlog, stamp, events)
|
|
98
|
+
* into a WUTransaction without writing any files. The transaction can then
|
|
99
|
+
* be committed atomically by the commitTransaction service.
|
|
100
|
+
*
|
|
101
|
+
* @param input - Preparation inputs
|
|
102
|
+
* @returns Transaction and metadata allowlist
|
|
103
|
+
*/
|
|
104
|
+
export async function prepareTransaction(input) {
|
|
105
|
+
const { wuId, title, doc, worktreePath } = input;
|
|
106
|
+
const metaPaths = resolveWorktreeMetadataPaths(worktreePath, wuId);
|
|
107
|
+
const transaction = new WUTransaction(wuId);
|
|
108
|
+
await collectMetadataToTransaction({
|
|
109
|
+
id: wuId,
|
|
110
|
+
title,
|
|
111
|
+
doc,
|
|
112
|
+
wuPath: metaPaths.wuPath,
|
|
113
|
+
statusPath: metaPaths.statusPath,
|
|
114
|
+
backlogPath: metaPaths.backlogPath,
|
|
115
|
+
stampPath: metaPaths.stampPath,
|
|
116
|
+
transaction,
|
|
117
|
+
projectRoot: worktreePath,
|
|
118
|
+
});
|
|
119
|
+
// Build the staged metadata allowlist from pending writes
|
|
120
|
+
const pendingWrites = transaction.getPendingWrites();
|
|
121
|
+
const stagedMetadataAllowlist = pendingWrites
|
|
122
|
+
.map((write) => path.relative(worktreePath, write.path).split(path.sep).join('/'))
|
|
123
|
+
.filter((relativePath) => Boolean(relativePath) && !relativePath.startsWith('..') && !path.isAbsolute(relativePath));
|
|
124
|
+
const initiativeMetadataWrite = pendingWrites.find((write) => write.description === 'initiative YAML');
|
|
125
|
+
const initiativeMetadataPath = initiativeMetadataWrite?.path ?? null;
|
|
126
|
+
// Validate the transaction
|
|
127
|
+
const txValidation = transaction.validate();
|
|
128
|
+
if (!txValidation.valid) {
|
|
129
|
+
throw createError(ErrorCodes.TRANSACTION_ERROR, `Transaction validation failed:\n ${txValidation.errors.join('\n ')}`, { wuId });
|
|
130
|
+
}
|
|
131
|
+
return { transaction, stagedMetadataAllowlist, initiativeMetadataPath };
|
|
132
|
+
}
|
|
133
|
+
/**
|
|
134
|
+
* Commit the metadata transaction and create a git commit in the worktree.
|
|
135
|
+
*
|
|
136
|
+
* Steps:
|
|
137
|
+
* 1. Create a file snapshot (for rollback)
|
|
138
|
+
* 2. Commit the transaction (write files)
|
|
139
|
+
* 3. Run post-mutation validation
|
|
140
|
+
* 4. Regenerate docs if needed
|
|
141
|
+
* 5. Stage and format metadata
|
|
142
|
+
* 6. Squash previous completion attempts
|
|
143
|
+
* 7. Create the git commit
|
|
144
|
+
*
|
|
145
|
+
* @param input - Commit inputs
|
|
146
|
+
* @returns Commit result with pre-commit SHA for rollback
|
|
147
|
+
*/
|
|
148
|
+
export async function commitTransaction(input) {
|
|
149
|
+
const { wuId, title, transaction, worktreePath, worktreeGit, doc, maxCommitLength, isDocsOnly, stagedMetadataAllowlist, initiativeMetadataPath, validateStagedFiles, } = input;
|
|
150
|
+
const metaPaths = resolveWorktreeMetadataPaths(worktreePath, wuId);
|
|
151
|
+
// Snapshot for rollback
|
|
152
|
+
const pathsToSnapshot = Array.from(new Set(transaction.getPendingWrites().map((write) => write.path)));
|
|
153
|
+
const transactionSnapshot = createTransactionSnapshot(pathsToSnapshot);
|
|
154
|
+
// Atomic transaction commit (write files)
|
|
155
|
+
const commitResult = transaction.commit();
|
|
156
|
+
if (!commitResult.success) {
|
|
157
|
+
throw createError(ErrorCodes.TRANSACTION_ERROR, `Transaction commit failed: ${commitResult.failed.map((f) => f.path).join(', ')}`, { wuId });
|
|
158
|
+
}
|
|
159
|
+
// Post-mutation validation
|
|
160
|
+
const postResult = validatePostMutation({
|
|
161
|
+
id: wuId,
|
|
162
|
+
wuPath: metaPaths.wuPath,
|
|
163
|
+
stampPath: metaPaths.stampPath,
|
|
164
|
+
eventsPath: metaPaths.eventsPath,
|
|
165
|
+
});
|
|
166
|
+
if (!postResult.valid) {
|
|
167
|
+
// Rollback files on post-mutation failure
|
|
168
|
+
restoreFromSnapshot(transactionSnapshot);
|
|
169
|
+
throw createValidationError(`Post-mutation validation failed: ${postResult.errors.join('; ')}`, { wuId });
|
|
170
|
+
}
|
|
171
|
+
// Regenerate docs
|
|
172
|
+
await maybeRegenerateAndStageDocs({
|
|
173
|
+
baseBranch: BRANCHES.MAIN,
|
|
174
|
+
repoRoot: worktreePath,
|
|
175
|
+
});
|
|
176
|
+
// Stage and format metadata
|
|
177
|
+
await stageAndFormatMetadata({
|
|
178
|
+
id: wuId,
|
|
179
|
+
wuPath: metaPaths.wuPath,
|
|
180
|
+
statusPath: metaPaths.statusPath,
|
|
181
|
+
backlogPath: metaPaths.backlogPath,
|
|
182
|
+
stampsDir: metaPaths.stampsDir,
|
|
183
|
+
initiativePath: initiativeMetadataPath ?? undefined,
|
|
184
|
+
gitAdapter: worktreeGit,
|
|
185
|
+
repoRoot: worktreePath,
|
|
186
|
+
});
|
|
187
|
+
// Validate staged files
|
|
188
|
+
await validateStagedFiles(wuId, isDocsOnly, {
|
|
189
|
+
metadataAllowlist: stagedMetadataAllowlist,
|
|
190
|
+
});
|
|
191
|
+
// Squash previous completion attempts (WU-1584)
|
|
192
|
+
const previousAttempts = await countPreviousCompletionAttempts(wuId, worktreeGit);
|
|
193
|
+
if (previousAttempts > 0) {
|
|
194
|
+
await squashPreviousCompletionAttempts(wuId, previousAttempts, worktreeGit);
|
|
195
|
+
}
|
|
196
|
+
// Generate commit message and commit
|
|
197
|
+
const laneBranch = await defaultBranchFrom(doc);
|
|
198
|
+
const msg = generateCommitMessage(wuId, title, maxCommitLength, {
|
|
199
|
+
branch: laneBranch ?? undefined,
|
|
200
|
+
worktreePath,
|
|
201
|
+
});
|
|
202
|
+
const preCommitSha = await worktreeGit.getCommitHash('HEAD');
|
|
203
|
+
await worktreeGit.commit(msg);
|
|
204
|
+
return { committed: true, preCommitSha };
|
|
205
|
+
}
|
|
206
|
+
/**
|
|
207
|
+
* Merge the lane branch to main (or create a PR in PR mode).
|
|
208
|
+
*
|
|
209
|
+
* Uses the atomic merge path which creates a temporary worktree for the
|
|
210
|
+
* merge+push operation, keeping the live main checkout untouched.
|
|
211
|
+
*
|
|
212
|
+
* @param input - Merge inputs
|
|
213
|
+
* @returns Merge result with PR URL if applicable
|
|
214
|
+
*/
|
|
215
|
+
export async function mergeToMain(input) {
|
|
216
|
+
const { wuId, doc, args } = input;
|
|
217
|
+
if (args.noMerge) {
|
|
218
|
+
return { merged: false, prUrl: null };
|
|
219
|
+
}
|
|
220
|
+
const laneBranch = await defaultBranchFrom(doc);
|
|
221
|
+
if (!laneBranch || !(await branchExists(laneBranch))) {
|
|
222
|
+
throw createError(ErrorCodes.BRANCH_ERROR, `Lane branch not found: ${laneBranch}`, {
|
|
223
|
+
wuId,
|
|
224
|
+
laneBranch,
|
|
225
|
+
});
|
|
226
|
+
}
|
|
227
|
+
if (args.prMode) {
|
|
228
|
+
// PR mode: import and use createPR
|
|
229
|
+
const { createPR, printPRCreatedMessage } = await import('./wu-done-pr.js');
|
|
230
|
+
const prResult = await createPR({
|
|
231
|
+
branch: laneBranch,
|
|
232
|
+
id: wuId,
|
|
233
|
+
title: doc.title || wuId,
|
|
234
|
+
doc,
|
|
235
|
+
draft: args.prDraft,
|
|
236
|
+
});
|
|
237
|
+
const prUrl = prResult.success && prResult.prUrl ? prResult.prUrl : null;
|
|
238
|
+
if (prUrl) {
|
|
239
|
+
printPRCreatedMessage(prUrl, wuId);
|
|
240
|
+
}
|
|
241
|
+
return { merged: false, prUrl };
|
|
242
|
+
}
|
|
243
|
+
// Default mode: atomic merge + push
|
|
244
|
+
await withMergeLock(wuId, async () => {
|
|
245
|
+
await withAtomicMerge({
|
|
246
|
+
id: wuId,
|
|
247
|
+
laneBranch,
|
|
248
|
+
command: `pnpm wu:done --id ${wuId}`,
|
|
249
|
+
logPrefix: LOG_PREFIX.DONE,
|
|
250
|
+
});
|
|
251
|
+
});
|
|
252
|
+
return { merged: true, prUrl: null };
|
|
253
|
+
}
|
|
254
|
+
/**
|
|
255
|
+
* Finalize the completion by clearing recovery state and emitting telemetry.
|
|
256
|
+
*
|
|
257
|
+
* @param input - Finalization inputs
|
|
258
|
+
* @returns Finalization result
|
|
259
|
+
*/
|
|
260
|
+
export async function finalizeCompletion(input) {
|
|
261
|
+
const { wuId, doc, laneBranch } = input;
|
|
262
|
+
// Clear recovery attempts on successful completion
|
|
263
|
+
clearRecoveryAttempts(wuId);
|
|
264
|
+
// Passive lane telemetry (fail-open)
|
|
265
|
+
await emitLaneSignalForCompletion({
|
|
266
|
+
wuId,
|
|
267
|
+
lane: doc.lane,
|
|
268
|
+
laneBranch,
|
|
269
|
+
completionMode: WU_DONE_COMPLETION_MODES.WORKTREE,
|
|
270
|
+
});
|
|
271
|
+
return { finalized: true };
|
|
272
|
+
}
|
|
273
|
+
//# sourceMappingURL=wu-done-worktree-services.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wu-done-worktree-services.js","sourceRoot":"","sources":["../src/wu-done-worktree-services.ts"],"names":[],"mappings":"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"}
|
|
@@ -213,24 +213,5 @@ export declare function validateMainNotBehindOrigin(gitAdapter: any): Promise<{
|
|
|
213
213
|
commitsBehind: number;
|
|
214
214
|
failOpen?: boolean;
|
|
215
215
|
}>;
|
|
216
|
-
/**
|
|
217
|
-
* WU-1577: Rollback main checkout to pre-merge SHA after merge/push failure.
|
|
218
|
-
*
|
|
219
|
-
* When executeWorktreeCompletion() merges the lane branch into local main
|
|
220
|
-
* (ff-only) but the subsequent pull --rebase or push fails, main is left
|
|
221
|
-
* with leaked metadata (wu-events.jsonl complete event, backlog, status).
|
|
222
|
-
* This function resets main to its pre-merge state so no metadata leaks.
|
|
223
|
-
*
|
|
224
|
-
* Best-effort: never throws. Returns success/failure status for logging.
|
|
225
|
-
*
|
|
226
|
-
* @param gitAdapter - Git adapter instance (must be in main checkout context)
|
|
227
|
-
* @param preMainMergeSha - SHA to reset to (captured before merge)
|
|
228
|
-
* @param wuId - WU ID for logging
|
|
229
|
-
* @returns Rollback result
|
|
230
|
-
*/
|
|
231
|
-
export declare function rollbackMainAfterMergeFailure(gitAdapter: any, preMainMergeSha: string, wuId: string): Promise<{
|
|
232
|
-
success: boolean;
|
|
233
|
-
error?: string;
|
|
234
|
-
}>;
|
|
235
216
|
export {};
|
|
236
217
|
//# sourceMappingURL=wu-done-worktree.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wu-done-worktree.d.ts","sourceRoot":"","sources":["../src/wu-done-worktree.ts"],"names":[],"mappings":";AAEA;;;;;;;;;;;;;;;;;;GAkBG;
|
|
1
|
+
{"version":3,"file":"wu-done-worktree.d.ts","sourceRoot":"","sources":["../src/wu-done-worktree.ts"],"names":[],"mappings":";AAEA;;;;;;;;;;;;;;;;;;GAkBG;AA8EH;;;;;;;;;;;GAWG;AAEH;;;;;;;;;GASG;AAEH,UAAU,qBAAqB;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;;;;GAKG;AACH,wBAAgB,4BAA4B,CAC1C,YAAY,EAAE,MAAM,EACpB,EAAE,EAAE,MAAM,GACT,qBAAqB,CASvB;AAED;;;;;;GAMG;AACH,wBAAsB,yBAAyB,CAAC,OAAO,KAAA;;;;;;;GAukBtD;AAED;;;;;;GAMG;AACH,wBAAsB,gBAAgB,CAAC,MAAM,KAAA,mBA6B5C;AAmND;;;;;;;;;;GAUG;AACH,wBAAsB,gBAAgB,CAAC,MAAM,KAAA,EAAE,YAAY,KAAA,EAAE,IAAI,KAAA;;;;;;GAkJhE;AAED;;;;;;;;GAQG;AACH,UAAU,kBAAkB;IAC1B,uCAAuC;IACvC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,qDAAqD;IACrD,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,mDAAmD;IACnD,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB;AAED,wBAAsB,qBAAqB,CAAC,MAAM,KAAA,EAAE,OAAO,GAAE,kBAAuB,iBAgDnF;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,iBAAiB,CAAC,MAAM,KAAA,EAAE,OAAO,GAAE,kBAAuB,iBAyD/E;AAED;;;;;GAKG;AACH,wBAAsB,mBAAmB,CAAC,MAAM,KAAA,iBAgD/C;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,eAAe,CAAC,MAAM,KAAA,EAAE,GAAG,MAAO,iBAwDvD;AAWD;;;;;;;;;;GAUG;AACH,UAAU,sBAAuB,SAAQ,kBAAkB;IACzD,kCAAkC;IAClC,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,wBAAsB,eAAe,CAAC,MAAM,KAAA,EAAE,OAAO,GAAE,sBAA2B,iBA6FjF;AAED;;;;;;;;;GASG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,KAAA,EAAE,KAAK,KAAA,WAMhD;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,4BAA4B,CAAC,UAAU,KAAA,EAAE,YAAY,KAAA,EAAE,IAAI,KAAA;;;;;;GAsBhF;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,2BAA2B,CAC/C,UAAU,KAAA,GACT,OAAO,CAAC;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,aAAa,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC,CA2BxE"}
|