@lumenflow/cli 4.12.4 → 4.13.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/wu-block.js +110 -105
- package/dist/wu-block.js.map +1 -1
- package/dist/wu-command-harness.js +58 -0
- package/dist/wu-command-harness.js.map +1 -0
- package/dist/wu-create.js +76 -61
- package/dist/wu-create.js.map +1 -1
- package/dist/wu-delete.js +103 -88
- package/dist/wu-delete.js.map +1 -1
- package/dist/wu-edit.js +92 -71
- package/dist/wu-edit.js.map +1 -1
- package/dist/wu-prep.js +49 -19
- package/dist/wu-prep.js.map +1 -1
- package/dist/wu-release.js +90 -68
- package/dist/wu-release.js.map +1 -1
- package/dist/wu-rename.js +42 -30
- package/dist/wu-rename.js.map +1 -1
- package/package.json +8 -8
- package/packs/agent-runtime/.turbo/turbo-build.log +1 -1
- package/packs/agent-runtime/package.json +1 -1
- package/packs/sidekick/.turbo/turbo-build.log +1 -1
- package/packs/sidekick/package.json +1 -1
- package/packs/software-delivery/.turbo/turbo-build.log +1 -1
- package/packs/software-delivery/package.json +1 -1
package/dist/wu-block.js
CHANGED
|
@@ -31,7 +31,7 @@ import { BRANCHES, REMOTES, WU_STATUS, STATUS_SECTIONS, PATTERNS, LOG_PREFIX, FI
|
|
|
31
31
|
import { ensureOnMain } from '@lumenflow/core/wu-helpers';
|
|
32
32
|
import { resolveWuEventsRelativePath } from './state-path-resolvers.js';
|
|
33
33
|
import { ensureStaged } from '@lumenflow/core/git-staged-validator';
|
|
34
|
-
import { withMicroWorktree
|
|
34
|
+
import { withMicroWorktree } from '@lumenflow/core/micro-worktree';
|
|
35
35
|
import { WUStateStore } from '@lumenflow/core/wu-state-store';
|
|
36
36
|
// WU-1603: Atomic lane locking - release lock when WU is blocked
|
|
37
37
|
import { releaseLaneLock } from '@lumenflow/core/lane-lock';
|
|
@@ -39,34 +39,11 @@ import { releaseLaneLock } from '@lumenflow/core/lane-lock';
|
|
|
39
39
|
import { getLockPolicyForLane } from '@lumenflow/core/lane-checker';
|
|
40
40
|
import { shouldUseBranchPrStatePath } from './wu-state-cloud.js';
|
|
41
41
|
import { runCLI } from './cli-entry-point.js';
|
|
42
|
+
import { runWuMutationCommand } from './wu-command-harness.js';
|
|
42
43
|
import { assertStateMutationOwnership } from './wu-state-mutation-ownership.js';
|
|
43
44
|
// ensureOnMain() moved to wu-helpers.ts (WU-1256)
|
|
44
45
|
// ensureStaged() moved to git-staged-validator.ts (WU-1341)
|
|
45
46
|
// defaultWorktreeFrom() moved to wu-paths.ts (WU-1341)
|
|
46
|
-
/**
|
|
47
|
-
* WU-1365: Execute a function with LUMENFLOW_WU_TOOL set, restoring afterwards
|
|
48
|
-
*
|
|
49
|
-
* Sets the LUMENFLOW_WU_TOOL env var to allow pre-push hook bypass, then
|
|
50
|
-
* restores the original value (or deletes it) after execution completes.
|
|
51
|
-
*
|
|
52
|
-
* @param toolName - Value to set for LUMENFLOW_WU_TOOL
|
|
53
|
-
* @param fn - Async function to execute
|
|
54
|
-
*/
|
|
55
|
-
async function withWuToolEnv(toolName, fn) {
|
|
56
|
-
const previousWuTool = process.env[LUMENFLOW_WU_TOOL_ENV];
|
|
57
|
-
process.env[LUMENFLOW_WU_TOOL_ENV] = toolName;
|
|
58
|
-
try {
|
|
59
|
-
return await fn();
|
|
60
|
-
}
|
|
61
|
-
finally {
|
|
62
|
-
if (previousWuTool === undefined) {
|
|
63
|
-
Reflect.deleteProperty(process.env, LUMENFLOW_WU_TOOL_ENV);
|
|
64
|
-
}
|
|
65
|
-
else {
|
|
66
|
-
process.env[LUMENFLOW_WU_TOOL_ENV] = previousWuTool;
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
47
|
export function shouldUseBranchPrBlockPath(doc) {
|
|
71
48
|
return shouldUseBranchPrStatePath(doc);
|
|
72
49
|
}
|
|
@@ -214,6 +191,7 @@ export async function main() {
|
|
|
214
191
|
` 3. Create WU if missing: pnpm wu:create --id ${id} --lane "<lane>" --title "..."`);
|
|
215
192
|
}
|
|
216
193
|
const title = typeof doc.title === 'string' ? doc.title : '';
|
|
194
|
+
const lane = typeof doc.lane === 'string' ? doc.lane : undefined;
|
|
217
195
|
const branchPrPath = shouldUseBranchPrBlockPath(doc);
|
|
218
196
|
await assertStateMutationOwnership({
|
|
219
197
|
wuId: id,
|
|
@@ -241,94 +219,121 @@ export async function main() {
|
|
|
241
219
|
}
|
|
242
220
|
const baseMsg = `wu(${id.toLowerCase()}): block`;
|
|
243
221
|
const commitMsg = args.reason ? `${baseMsg} — ${args.reason}` : baseMsg;
|
|
222
|
+
const telemetryContext = {
|
|
223
|
+
script: 'wu-block',
|
|
224
|
+
wuId: id,
|
|
225
|
+
lane,
|
|
226
|
+
};
|
|
244
227
|
if (!args.noAuto) {
|
|
245
228
|
if (branchPrPath) {
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
229
|
+
await runWuMutationCommand({
|
|
230
|
+
context: telemetryContext,
|
|
231
|
+
step: 'blocked',
|
|
232
|
+
success: { mode: 'branch-pr', no_auto: false },
|
|
233
|
+
failure: { mode: 'branch-pr', no_auto: false },
|
|
234
|
+
execute: async () => {
|
|
235
|
+
const currentBranch = await getGitForCwd().getCurrentBranch();
|
|
236
|
+
const claimedBranch = typeof doc.claimed_branch === 'string' ? doc.claimed_branch : '';
|
|
237
|
+
if (claimedBranch && currentBranch !== claimedBranch) {
|
|
238
|
+
die(`Cannot block branch-pr WU ${id}: current branch does not match claimed_branch.\n\n` +
|
|
239
|
+
`Current branch: ${currentBranch}\n` +
|
|
240
|
+
`Claimed branch: ${claimedBranch}`);
|
|
241
|
+
}
|
|
242
|
+
doc.status = WU_STATUS.BLOCKED;
|
|
243
|
+
const noteLine = args.reason
|
|
244
|
+
? `Blocked (${todayISO()}): ${args.reason}`
|
|
245
|
+
: `Blocked (${todayISO()})`;
|
|
246
|
+
appendNote(doc, noteLine);
|
|
247
|
+
writeWU(mainWUPath, doc);
|
|
248
|
+
await moveFromInProgressToBlocked(WU_PATHS.STATUS(), id, title, args.reason);
|
|
249
|
+
await regenerateBacklogFromState(WU_PATHS.BACKLOG());
|
|
250
|
+
const stateDir = getStateStoreDirFromBacklog(WU_PATHS.BACKLOG());
|
|
251
|
+
const store = new WUStateStore(stateDir);
|
|
252
|
+
await store.load();
|
|
253
|
+
await store.block(id, args.reason || 'No reason provided');
|
|
254
|
+
await getGitForCwd().add([
|
|
255
|
+
WU_PATHS.WU(id),
|
|
256
|
+
WU_PATHS.STATUS(),
|
|
257
|
+
WU_PATHS.BACKLOG(),
|
|
258
|
+
resolveWuEventsRelativePath(process.cwd()),
|
|
259
|
+
]);
|
|
260
|
+
await getGitForCwd().commit(commitMsg);
|
|
261
|
+
await getGitForCwd().push(REMOTES.ORIGIN, currentBranch);
|
|
262
|
+
},
|
|
263
|
+
});
|
|
273
264
|
}
|
|
274
265
|
else {
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
266
|
+
await runWuMutationCommand({
|
|
267
|
+
context: telemetryContext,
|
|
268
|
+
step: 'blocked',
|
|
269
|
+
toolName: MICRO_WORKTREE_OPERATIONS.WU_BLOCK,
|
|
270
|
+
success: { mode: 'micro-worktree', no_auto: false },
|
|
271
|
+
failure: { mode: 'micro-worktree', no_auto: false },
|
|
272
|
+
execute: async () => {
|
|
273
|
+
// Use micro-worktree pattern to avoid pre-commit hook blocking commits to main
|
|
274
|
+
await withMicroWorktree({
|
|
275
|
+
operation: MICRO_WORKTREE_OPERATIONS.WU_BLOCK,
|
|
276
|
+
id,
|
|
277
|
+
logPrefix: LOG_PREFIX.BLOCK,
|
|
278
|
+
pushOnly: true, // Push directly to origin/main without touching local main
|
|
279
|
+
execute: async ({ worktreePath }) => {
|
|
280
|
+
// Build paths relative to micro-worktree
|
|
281
|
+
const microWUPath = path.join(worktreePath, WU_PATHS.WU(id));
|
|
282
|
+
const microStatusPath = path.join(worktreePath, WU_PATHS.STATUS());
|
|
283
|
+
const microBacklogPath = path.join(worktreePath, WU_PATHS.BACKLOG());
|
|
284
|
+
// Update WU YAML in micro-worktree
|
|
285
|
+
const microDoc = readWU(microWUPath, id);
|
|
286
|
+
microDoc.status = WU_STATUS.BLOCKED;
|
|
287
|
+
const noteLine = args.reason
|
|
288
|
+
? `Blocked (${todayISO()}): ${args.reason}`
|
|
289
|
+
: `Blocked (${todayISO()})`;
|
|
290
|
+
appendNote(microDoc, noteLine);
|
|
291
|
+
writeWU(microWUPath, microDoc);
|
|
292
|
+
// Update status.md in micro-worktree
|
|
293
|
+
await moveFromInProgressToBlocked(microStatusPath, id, title, args.reason);
|
|
294
|
+
// Update backlog.md in micro-worktree (WU-1574: regenerate from state store)
|
|
295
|
+
await regenerateBacklogFromState(microBacklogPath);
|
|
296
|
+
// Append block event to WUStateStore (WU-1573)
|
|
297
|
+
const stateDir = getStateStoreDirFromBacklog(microBacklogPath);
|
|
298
|
+
const store = new WUStateStore(stateDir);
|
|
299
|
+
await store.load();
|
|
300
|
+
await store.block(id, args.reason || 'No reason provided');
|
|
301
|
+
return {
|
|
302
|
+
commitMessage: commitMsg,
|
|
303
|
+
files: [
|
|
304
|
+
WU_PATHS.WU(id),
|
|
305
|
+
WU_PATHS.STATUS(),
|
|
306
|
+
WU_PATHS.BACKLOG(),
|
|
307
|
+
resolveWuEventsRelativePath(worktreePath),
|
|
308
|
+
],
|
|
309
|
+
};
|
|
310
|
+
},
|
|
311
|
+
});
|
|
312
|
+
// Fetch to update local main tracking
|
|
313
|
+
await getGitForCwd().fetch(REMOTES.ORIGIN, BRANCHES.MAIN);
|
|
314
|
+
},
|
|
318
315
|
});
|
|
319
316
|
}
|
|
320
317
|
}
|
|
321
318
|
else {
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
319
|
+
await runWuMutationCommand({
|
|
320
|
+
context: telemetryContext,
|
|
321
|
+
step: 'blocked',
|
|
322
|
+
success: { mode: branchPrPath ? 'branch-pr' : 'manual', no_auto: true },
|
|
323
|
+
failure: { mode: branchPrPath ? 'branch-pr' : 'manual', no_auto: true },
|
|
324
|
+
execute: async () => {
|
|
325
|
+
// Manual mode: expect files already staged
|
|
326
|
+
ensureStaged([mainWUPath, WU_PATHS.STATUS(), WU_PATHS.BACKLOG()]);
|
|
327
|
+
await getGitForCwd().commit(commitMsg);
|
|
328
|
+
if (branchPrPath) {
|
|
329
|
+
const currentBranch = await getGitForCwd().getCurrentBranch();
|
|
330
|
+
await getGitForCwd().push(REMOTES.ORIGIN, currentBranch);
|
|
331
|
+
}
|
|
332
|
+
else {
|
|
333
|
+
await getGitForCwd().push(REMOTES.ORIGIN, BRANCHES.MAIN);
|
|
334
|
+
}
|
|
335
|
+
},
|
|
336
|
+
});
|
|
332
337
|
}
|
|
333
338
|
await handleWorktreeRemoval(args, doc);
|
|
334
339
|
// WU-1325: Release lane lock when WU is blocked (only for lock_policy=active)
|
package/dist/wu-block.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wu-block.js","sourceRoot":"","sources":["../src/wu-block.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"wu-block.js","sourceRoot":"","sources":["../src/wu-block.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
// Copyright (c) 2026 Hellmai Ltd
|
|
2
|
+
// SPDX-License-Identifier: AGPL-3.0-only
|
|
3
|
+
import { getErrorMessage } from '@lumenflow/core/error-handler';
|
|
4
|
+
import { LUMENFLOW_WU_TOOL_ENV } from '@lumenflow/core/micro-worktree';
|
|
5
|
+
import { emitWUFlowEvent } from '@lumenflow/core/telemetry';
|
|
6
|
+
function resolveEventFields(builder, value) {
|
|
7
|
+
if (!builder) {
|
|
8
|
+
return {};
|
|
9
|
+
}
|
|
10
|
+
return typeof builder === 'function' ? builder(value) : builder;
|
|
11
|
+
}
|
|
12
|
+
export function emitWuCommandEvent(context, event) {
|
|
13
|
+
emitWUFlowEvent({
|
|
14
|
+
script: context.script,
|
|
15
|
+
...(context.wuId ? { wu_id: context.wuId } : {}),
|
|
16
|
+
...(context.lane ? { lane: context.lane } : {}),
|
|
17
|
+
...event,
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
export async function withWuToolEnv(toolName, fn) {
|
|
21
|
+
const previousWuTool = process.env[LUMENFLOW_WU_TOOL_ENV];
|
|
22
|
+
process.env[LUMENFLOW_WU_TOOL_ENV] = toolName;
|
|
23
|
+
try {
|
|
24
|
+
return await fn();
|
|
25
|
+
}
|
|
26
|
+
finally {
|
|
27
|
+
if (previousWuTool === undefined) {
|
|
28
|
+
Reflect.deleteProperty(process.env, LUMENFLOW_WU_TOOL_ENV);
|
|
29
|
+
}
|
|
30
|
+
else {
|
|
31
|
+
process.env[LUMENFLOW_WU_TOOL_ENV] = previousWuTool;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
export async function runWuMutationCommand(options) {
|
|
36
|
+
const execute = typeof options.toolName === 'string' && options.toolName.length > 0
|
|
37
|
+
? () => withWuToolEnv(options.toolName, options.execute)
|
|
38
|
+
: options.execute;
|
|
39
|
+
try {
|
|
40
|
+
const result = await execute();
|
|
41
|
+
emitWuCommandEvent(options.context, {
|
|
42
|
+
step: options.step,
|
|
43
|
+
outcome: 'success',
|
|
44
|
+
...resolveEventFields(options.success, result),
|
|
45
|
+
});
|
|
46
|
+
return result;
|
|
47
|
+
}
|
|
48
|
+
catch (error) {
|
|
49
|
+
emitWuCommandEvent(options.context, {
|
|
50
|
+
step: options.step,
|
|
51
|
+
outcome: 'error',
|
|
52
|
+
error_message: getErrorMessage(error),
|
|
53
|
+
...resolveEventFields(options.failure, error),
|
|
54
|
+
});
|
|
55
|
+
throw error;
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
//# sourceMappingURL=wu-command-harness.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wu-command-harness.js","sourceRoot":"","sources":["../src/wu-command-harness.ts"],"names":[],"mappings":"AAAA,iCAAiC;AACjC,yCAAyC;AAEzC,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAC;AACvE,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAoB5D,SAAS,kBAAkB,CACzB,OAA6C,EAC7C,KAAQ;IAER,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,OAAO,OAAO,OAAO,KAAK,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;AAClE,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,OAAyB,EAAE,KAA2B;IACvF,eAAe,CAAC;QACd,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAChD,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/C,GAAG,KAAK;KACT,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CAAI,QAAgB,EAAE,EAAoB;IAC3E,MAAM,cAAc,GAAG,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;IAC1D,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,GAAG,QAAQ,CAAC;IAC9C,IAAI,CAAC;QACH,OAAO,MAAM,EAAE,EAAE,CAAC;IACpB,CAAC;YAAS,CAAC;QACT,IAAI,cAAc,KAAK,SAAS,EAAE,CAAC;YACjC,OAAO,CAAC,cAAc,CAAC,OAAO,CAAC,GAAG,EAAE,qBAAqB,CAAC,CAAC;QAC7D,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,GAAG,cAAc,CAAC;QACtD,CAAC;IACH,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAI,OAAuC;IACnF,MAAM,OAAO,GACX,OAAO,OAAO,CAAC,QAAQ,KAAK,QAAQ,IAAI,OAAO,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC;QACjE,CAAC,CAAC,GAAG,EAAE,CAAC,aAAa,CAAC,OAAO,CAAC,QAAkB,EAAE,OAAO,CAAC,OAAO,CAAC;QAClE,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC;IAEtB,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,OAAO,EAAE,CAAC;QAC/B,kBAAkB,CAAC,OAAO,CAAC,OAAO,EAAE;YAClC,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,OAAO,EAAE,SAAS;YAClB,GAAG,kBAAkB,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM,CAAC;SAC/C,CAAC,CAAC;QACH,OAAO,MAAM,CAAC;IAChB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,kBAAkB,CAAC,OAAO,CAAC,OAAO,EAAE;YAClC,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,OAAO,EAAE,OAAO;YAChB,aAAa,EAAE,eAAe,CAAC,KAAK,CAAC;YACrC,GAAG,kBAAkB,CAAC,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC;SAC9C,CAAC,CAAC;QACH,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC"}
|
package/dist/wu-create.js
CHANGED
|
@@ -60,6 +60,7 @@ import { emitSizingAdvisory } from './wu-create-sizing-advisory.js';
|
|
|
60
60
|
import { validateSizingEstimate } from './wu-sizing-validation.js';
|
|
61
61
|
import { flushWuLifecycleSync } from './wu-lifecycle-sync/service.js';
|
|
62
62
|
import { WU_LIFECYCLE_COMMANDS } from './wu-lifecycle-sync/constants.js';
|
|
63
|
+
import { runWuMutationCommand } from './wu-command-harness.js';
|
|
63
64
|
// Re-export public API for backward compatibility (tests import from wu-create.js)
|
|
64
65
|
export { validateCreateSpec } from './wu-create-validation.js';
|
|
65
66
|
export { buildWUContent } from './wu-create-content.js';
|
|
@@ -621,6 +622,10 @@ export async function main() {
|
|
|
621
622
|
try {
|
|
622
623
|
const priority = args.priority || DEFAULT_PRIORITY;
|
|
623
624
|
const type = effectiveType;
|
|
625
|
+
const telemetryContext = {
|
|
626
|
+
script: OPERATION_NAME,
|
|
627
|
+
lane: args.lane,
|
|
628
|
+
};
|
|
624
629
|
// WU-1590: Shared create options for both paths
|
|
625
630
|
const createOpts = {
|
|
626
631
|
// Initiative system fields (WU-1247)
|
|
@@ -651,18 +656,26 @@ export async function main() {
|
|
|
651
656
|
sizingEstimate: resolvedSizingEstimate,
|
|
652
657
|
};
|
|
653
658
|
if (cloudCtx.skipMicroWorktree) {
|
|
654
|
-
|
|
655
|
-
|
|
656
|
-
|
|
657
|
-
|
|
658
|
-
|
|
659
|
-
|
|
660
|
-
|
|
661
|
-
|
|
662
|
-
|
|
663
|
-
|
|
664
|
-
|
|
665
|
-
|
|
659
|
+
await runWuMutationCommand({
|
|
660
|
+
context: telemetryContext,
|
|
661
|
+
step: 'created',
|
|
662
|
+
success: { mode: 'cloud-branch', auto_generated_id: isAutoGeneratedId, wu_id: wuId },
|
|
663
|
+
failure: { mode: 'cloud-branch', auto_generated_id: isAutoGeneratedId, wu_id: wuId },
|
|
664
|
+
execute: async () => {
|
|
665
|
+
// WU-1590: Cloud path - write and commit directly on current branch
|
|
666
|
+
const cwd = process.cwd();
|
|
667
|
+
const wuPath = createWUYamlInWorktree(cwd, wuId, args.lane, args.title, priority, type, createOpts);
|
|
668
|
+
const backlogPath = updateBacklogInWorktree(cwd, wuId, args.lane, args.title);
|
|
669
|
+
const shortTitle = truncateTitle(args.title);
|
|
670
|
+
const commitMessage = COMMIT_FORMATS.CREATE(wuId, shortTitle);
|
|
671
|
+
await commitCloudCreateArtifacts({
|
|
672
|
+
git: getGitForCwd(),
|
|
673
|
+
wuPath,
|
|
674
|
+
backlogPath,
|
|
675
|
+
commitMessage,
|
|
676
|
+
targetBranch: cloudCtx.targetBranch,
|
|
677
|
+
});
|
|
678
|
+
},
|
|
666
679
|
});
|
|
667
680
|
console.log(`${LOG_PREFIX} Cloud mode: committed WU spec on ${cloudCtx.targetBranch}`);
|
|
668
681
|
}
|
|
@@ -671,11 +684,24 @@ export async function main() {
|
|
|
671
684
|
// Wraps the micro-worktree transaction so that on push failure due to
|
|
672
685
|
// duplicate ID (TOCTOU race), it re-fetches remote, regenerates the ID,
|
|
673
686
|
// and retries the entire create-commit-push cycle.
|
|
674
|
-
const
|
|
675
|
-
|
|
676
|
-
|
|
677
|
-
|
|
687
|
+
const result = await runWuMutationCommand({
|
|
688
|
+
context: telemetryContext,
|
|
689
|
+
step: 'created',
|
|
690
|
+
toolName: OPERATION_NAME,
|
|
691
|
+
success: (createResult) => ({
|
|
692
|
+
mode: 'micro-worktree',
|
|
693
|
+
auto_generated_id: true,
|
|
694
|
+
retry_attempts: createResult.attempts,
|
|
695
|
+
wu_id: createResult.wuId,
|
|
696
|
+
}),
|
|
697
|
+
failure: { mode: 'micro-worktree', auto_generated_id: true, wu_id: wuId },
|
|
698
|
+
execute: async () => retryCreateOnPushCollision({
|
|
678
699
|
git: getGitForCwd(),
|
|
700
|
+
// WU-2571: Thread the canonical wu_id config so retry-generated
|
|
701
|
+
// ids stay zero-padded. Previously the retry helper built ids as
|
|
702
|
+
// `${WU_ID_PREFIX}${highest + 1}`, silently bypassing the
|
|
703
|
+
// canonicalization applied above for the explicit-id path.
|
|
704
|
+
wuIdConfig,
|
|
679
705
|
createFn: async (retryWuId) => {
|
|
680
706
|
await withMicroWorktree({
|
|
681
707
|
operation: OPERATION_NAME,
|
|
@@ -694,55 +720,44 @@ export async function main() {
|
|
|
694
720
|
});
|
|
695
721
|
},
|
|
696
722
|
maxRetries: 3,
|
|
697
|
-
})
|
|
698
|
-
|
|
699
|
-
|
|
700
|
-
|
|
701
|
-
|
|
702
|
-
}
|
|
703
|
-
}
|
|
704
|
-
finally {
|
|
705
|
-
if (previousWuTool === undefined) {
|
|
706
|
-
delete process.env[ENV_VARS.WU_TOOL];
|
|
707
|
-
}
|
|
708
|
-
else {
|
|
709
|
-
process.env[ENV_VARS.WU_TOOL] = previousWuTool;
|
|
710
|
-
}
|
|
723
|
+
}),
|
|
724
|
+
});
|
|
725
|
+
// Update wuId in case it was regenerated during retry
|
|
726
|
+
wuId = result.wuId;
|
|
727
|
+
if (result.attempts > 1) {
|
|
728
|
+
console.log(`${LOG_PREFIX} Resolved push collision after ${result.attempts} attempts (final ID: ${wuId})`);
|
|
711
729
|
}
|
|
712
730
|
}
|
|
713
731
|
else {
|
|
714
732
|
// Standard path: micro-worktree isolation (explicit --id provided, no collision retry)
|
|
715
|
-
|
|
716
|
-
|
|
717
|
-
|
|
718
|
-
|
|
719
|
-
|
|
720
|
-
|
|
721
|
-
|
|
722
|
-
|
|
723
|
-
|
|
724
|
-
|
|
725
|
-
|
|
726
|
-
|
|
727
|
-
|
|
728
|
-
|
|
729
|
-
|
|
730
|
-
|
|
731
|
-
|
|
732
|
-
|
|
733
|
-
|
|
734
|
-
|
|
735
|
-
|
|
736
|
-
|
|
737
|
-
|
|
738
|
-
|
|
739
|
-
|
|
740
|
-
|
|
741
|
-
}
|
|
742
|
-
|
|
743
|
-
process.env[ENV_VARS.WU_TOOL] = previousWuTool;
|
|
744
|
-
}
|
|
745
|
-
}
|
|
733
|
+
await runWuMutationCommand({
|
|
734
|
+
context: telemetryContext,
|
|
735
|
+
step: 'created',
|
|
736
|
+
toolName: OPERATION_NAME,
|
|
737
|
+
success: { mode: 'micro-worktree', auto_generated_id: false, wu_id: wuId },
|
|
738
|
+
failure: { mode: 'micro-worktree', auto_generated_id: false, wu_id: wuId },
|
|
739
|
+
execute: async () => {
|
|
740
|
+
await withMicroWorktree({
|
|
741
|
+
operation: OPERATION_NAME,
|
|
742
|
+
id: wuId,
|
|
743
|
+
logPrefix: LOG_PREFIX,
|
|
744
|
+
execute: async ({ worktreePath }) => {
|
|
745
|
+
// Create WU YAML in micro-worktree
|
|
746
|
+
const wuPath = createWUYamlInWorktree(worktreePath, wuId, args.lane, args.title, priority, type, createOpts);
|
|
747
|
+
// Update backlog.md in micro-worktree
|
|
748
|
+
const backlogPath = updateBacklogInWorktree(worktreePath, wuId, args.lane, args.title);
|
|
749
|
+
// Build commit message
|
|
750
|
+
const shortTitle = truncateTitle(args.title);
|
|
751
|
+
const commitMessage = COMMIT_FORMATS.CREATE(wuId, shortTitle);
|
|
752
|
+
// Return commit message and files to commit
|
|
753
|
+
return {
|
|
754
|
+
commitMessage,
|
|
755
|
+
files: [wuPath, backlogPath],
|
|
756
|
+
};
|
|
757
|
+
},
|
|
758
|
+
});
|
|
759
|
+
},
|
|
760
|
+
});
|
|
746
761
|
}
|
|
747
762
|
console.log(`\n${LOG_PREFIX} Transaction complete!`);
|
|
748
763
|
console.log(`\nWU ${wuId} created successfully:`);
|