@lumenflow/cli 2.12.0 → 2.14.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.
Files changed (37) hide show
  1. package/README.md +105 -105
  2. package/dist/gates-graceful-degradation.js +151 -0
  3. package/dist/gates-graceful-degradation.js.map +1 -0
  4. package/dist/gates.js +90 -5
  5. package/dist/gates.js.map +1 -1
  6. package/dist/hooks/enforcement-checks.js +104 -37
  7. package/dist/hooks/enforcement-checks.js.map +1 -1
  8. package/dist/hooks/enforcement-generator.js +229 -28
  9. package/dist/hooks/enforcement-generator.js.map +1 -1
  10. package/dist/hooks/enforcement-sync.js +4 -1
  11. package/dist/hooks/enforcement-sync.js.map +1 -1
  12. package/dist/init.js +160 -13
  13. package/dist/init.js.map +1 -1
  14. package/dist/initiative-edit.js +3 -2
  15. package/dist/initiative-edit.js.map +1 -1
  16. package/dist/lifecycle-regression-harness.js +179 -0
  17. package/dist/lifecycle-regression-harness.js.map +1 -0
  18. package/dist/mem-recover.js +0 -0
  19. package/dist/public-manifest.js +7 -0
  20. package/dist/public-manifest.js.map +1 -1
  21. package/dist/wu-claim-mode.js +80 -0
  22. package/dist/wu-claim-mode.js.map +1 -0
  23. package/dist/wu-claim.js +163 -9
  24. package/dist/wu-claim.js.map +1 -1
  25. package/dist/wu-create.js +5 -1
  26. package/dist/wu-create.js.map +1 -1
  27. package/dist/wu-delete.js +196 -60
  28. package/dist/wu-delete.js.map +1 -1
  29. package/dist/wu-done.js +99 -17
  30. package/dist/wu-done.js.map +1 -1
  31. package/dist/wu-edit.js +5 -4
  32. package/dist/wu-edit.js.map +1 -1
  33. package/dist/wu-prep.js +122 -27
  34. package/dist/wu-prep.js.map +1 -1
  35. package/package.json +7 -6
  36. package/templates/vendors/claude/.claude/hooks/enforce-worktree.sh +78 -17
  37. package/templates/vendors/claude/.claude/hooks/session-start-recovery.sh +30 -0
@@ -0,0 +1,179 @@
1
+ import { existsSync } from 'node:fs';
2
+ import { mkdir, readdir, readFile, unlink, writeFile } from 'node:fs/promises';
3
+ import { join } from 'node:path';
4
+ import { diagnoseState, } from '@lumenflow/core/dist/state-doctor-core.js';
5
+ import { generateBacklog, generateStatus } from '@lumenflow/core/dist/backlog-generator.js';
6
+ import { WU_STATUS } from '@lumenflow/core/dist/wu-constants.js';
7
+ import { WUStateStore, WU_EVENTS_FILE_NAME } from '@lumenflow/core/dist/wu-state-store.js';
8
+ import { parseYAML, stringifyYAML } from '@lumenflow/core/dist/wu-yaml.js';
9
+ const PATHS = {
10
+ wuDir: join('docs', '04-operations', 'tasks', 'wu'),
11
+ stateDir: join('.lumenflow', 'state'),
12
+ stampsDir: join('.lumenflow', 'stamps'),
13
+ };
14
+ export class LifecycleHarnessError extends Error {
15
+ stage;
16
+ constructor(stage, message, cause) {
17
+ super(`[${stage}] ${message}`);
18
+ this.name = 'LifecycleHarnessError';
19
+ this.stage = stage;
20
+ if (cause) {
21
+ this.cause = cause;
22
+ }
23
+ }
24
+ }
25
+ async function withStage(stage, fn) {
26
+ try {
27
+ return await fn();
28
+ }
29
+ catch (error) {
30
+ if (error instanceof LifecycleHarnessError) {
31
+ throw error;
32
+ }
33
+ throw new LifecycleHarnessError(stage, error instanceof Error ? error.message : String(error), error);
34
+ }
35
+ }
36
+ function assertStage(condition, stage, message) {
37
+ if (!condition) {
38
+ throw new LifecycleHarnessError(stage, message);
39
+ }
40
+ }
41
+ function wuPath(projectDir, wuId) {
42
+ return join(projectDir, PATHS.wuDir, `${wuId}.yaml`);
43
+ }
44
+ function eventsPath(projectDir) {
45
+ return join(projectDir, PATHS.stateDir, WU_EVENTS_FILE_NAME);
46
+ }
47
+ async function readEvents(projectDir) {
48
+ const eventFile = eventsPath(projectDir);
49
+ if (!existsSync(eventFile))
50
+ return [];
51
+ const lines = (await readFile(eventFile, 'utf8'))
52
+ .split('\n')
53
+ .filter((line) => line.trim().length > 0);
54
+ return lines.map((line) => JSON.parse(line));
55
+ }
56
+ async function writeEvents(projectDir, events) {
57
+ const eventFile = eventsPath(projectDir);
58
+ const payload = events.map((event) => JSON.stringify(event)).join('\n');
59
+ await writeFile(eventFile, payload.length > 0 ? `${payload}\n` : '', 'utf8');
60
+ }
61
+ async function createDoctorDeps(projectDir) {
62
+ return {
63
+ listWUs: async () => {
64
+ const dir = join(projectDir, PATHS.wuDir);
65
+ if (!existsSync(dir))
66
+ return [];
67
+ const entries = await readdir(dir);
68
+ const docs = [];
69
+ for (const file of entries) {
70
+ if (!file.endsWith('.yaml'))
71
+ continue;
72
+ const parsed = parseYAML(await readFile(join(dir, file), 'utf8'));
73
+ docs.push({
74
+ id: String(parsed.id),
75
+ status: String(parsed.status),
76
+ lane: parsed.lane ? String(parsed.lane) : undefined,
77
+ title: parsed.title ? String(parsed.title) : undefined,
78
+ });
79
+ }
80
+ return docs;
81
+ },
82
+ listStamps: async () => {
83
+ const dir = join(projectDir, PATHS.stampsDir);
84
+ if (!existsSync(dir))
85
+ return [];
86
+ const entries = await readdir(dir);
87
+ return entries
88
+ .filter((file) => file.endsWith('.done'))
89
+ .map((file) => file.replace('.done', ''));
90
+ },
91
+ listSignals: async () => [],
92
+ listEvents: async () => {
93
+ const events = await readEvents(projectDir);
94
+ return events.map((event) => ({
95
+ wuId: String(event.wuId ?? event.wu_id ?? ''),
96
+ type: String(event.type ?? ''),
97
+ timestamp: event.timestamp ? String(event.timestamp) : undefined,
98
+ lane: event.lane ? String(event.lane) : undefined,
99
+ title: event.title ? String(event.title) : undefined,
100
+ reason: event.reason ? String(event.reason) : undefined,
101
+ }));
102
+ },
103
+ removeEvent: async (wuId) => {
104
+ const events = await readEvents(projectDir);
105
+ const filtered = events.filter((event) => String(event.wuId ?? event.wu_id ?? '') !== wuId);
106
+ await writeEvents(projectDir, filtered);
107
+ },
108
+ };
109
+ }
110
+ export async function runLifecycleRegressionHarness(options) {
111
+ const { projectDir, wuId, lane, title, skipDoctorFix = false } = options;
112
+ const stageOrder = [];
113
+ const stateDir = join(projectDir, PATHS.stateDir);
114
+ const wuDir = join(projectDir, PATHS.wuDir);
115
+ await mkdir(wuDir, { recursive: true });
116
+ await mkdir(stateDir, { recursive: true });
117
+ await mkdir(join(projectDir, PATHS.stampsDir), { recursive: true });
118
+ await withStage('create', async () => {
119
+ stageOrder.push('create');
120
+ const doc = {
121
+ id: wuId,
122
+ title,
123
+ lane,
124
+ type: 'refactor',
125
+ status: WU_STATUS.READY,
126
+ priority: 'P2',
127
+ created: '2026-02-07',
128
+ description: 'Lifecycle harness test WU',
129
+ acceptance: ['Create, claim, complete, delete, doctor'],
130
+ code_paths: ['packages/@lumenflow/cli/src/lifecycle-regression-harness.ts'],
131
+ tests: { manual: ['Run lifecycle harness test'], unit: [], e2e: [] },
132
+ exposure: 'backend-only',
133
+ };
134
+ await writeFile(wuPath(projectDir, wuId), stringifyYAML(doc), 'utf8');
135
+ assertStage(existsSync(wuPath(projectDir, wuId)), 'create', `expected ${wuId}.yaml to exist`);
136
+ });
137
+ const store = new WUStateStore(stateDir);
138
+ await store.load();
139
+ await withStage('claim', async () => {
140
+ stageOrder.push('claim');
141
+ await store.claim(wuId, lane, title);
142
+ const current = store.getWUState(wuId);
143
+ assertStage(current?.status === WU_STATUS.IN_PROGRESS, 'claim', `expected ${wuId} status to be in_progress after claim`);
144
+ });
145
+ await withStage('done', async () => {
146
+ stageOrder.push('done');
147
+ await store.complete(wuId);
148
+ const current = store.getWUState(wuId);
149
+ assertStage(current?.status === WU_STATUS.DONE, 'done', `expected ${wuId} status to be done`);
150
+ });
151
+ await withStage('delete', async () => {
152
+ stageOrder.push('delete');
153
+ await unlink(wuPath(projectDir, wuId));
154
+ assertStage(!existsSync(wuPath(projectDir, wuId)), 'delete', `expected ${wuId}.yaml to be deleted`);
155
+ });
156
+ const diagnosis = await withStage('doctor', async () => {
157
+ stageOrder.push('doctor');
158
+ const deps = await createDoctorDeps(projectDir);
159
+ const result = await diagnoseState(projectDir, deps, { fix: !skipDoctorFix });
160
+ const verification = skipDoctorFix
161
+ ? result
162
+ : await diagnoseState(projectDir, await createDoctorDeps(projectDir), { fix: false });
163
+ assertStage(verification.summary.brokenEvents === 0, 'doctor', `expected no Broken Event issues after doctor (found ${verification.summary.brokenEvents})`);
164
+ return verification;
165
+ });
166
+ const cleanStore = new WUStateStore(stateDir);
167
+ await cleanStore.load();
168
+ const backlogProjection = await generateBacklog(cleanStore, { projectRoot: projectDir, wuDir });
169
+ const statusProjection = await generateStatus(cleanStore);
170
+ assertStage(!backlogProjection.includes(wuId), 'doctor', `expected backlog projection to exclude deleted ${wuId}`);
171
+ assertStage(!statusProjection.includes(wuId), 'doctor', `expected status projection to exclude deleted ${wuId}`);
172
+ return {
173
+ stageOrder,
174
+ diagnosis,
175
+ backlogProjection,
176
+ statusProjection,
177
+ };
178
+ }
179
+ //# sourceMappingURL=lifecycle-regression-harness.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lifecycle-regression-harness.js","sourceRoot":"","sources":["../src/lifecycle-regression-harness.ts"],"names":[],"mappings":"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"}
File without changes
@@ -337,6 +337,13 @@ export const PUBLIC_MANIFEST = [
337
337
  description: 'Delete/archive a memory node',
338
338
  category: COMMAND_CATEGORIES.MEMORY_SESSIONS,
339
339
  },
340
+ {
341
+ name: 'mem:recover',
342
+ binName: 'mem-recover',
343
+ binPath: './dist/mem-recover.js',
344
+ description: 'Generate recovery context after compaction',
345
+ category: COMMAND_CATEGORIES.MEMORY_SESSIONS,
346
+ },
340
347
  {
341
348
  name: 'signal:cleanup',
342
349
  binName: 'signal-cleanup',
@@ -1 +1 @@
1
- {"version":3,"file":"public-manifest.js","sourceRoot":"","sources":["../src/public-manifest.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"public-manifest.js","sourceRoot":"","sources":["../src/public-manifest.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,80 @@
1
+ /**
2
+ * @file wu-claim-mode.ts
3
+ * @description Mode resolution for wu:claim command
4
+ *
5
+ * WU-1491: Pure function that resolves CLI flag combinations into a claimed mode.
6
+ *
7
+ * Mode matrix:
8
+ * - default (no flags) -> worktree
9
+ * - --branch-only -> branch-only
10
+ * - --pr-mode -> worktree-pr
11
+ * - --cloud -> branch-pr
12
+ * - --branch-only --pr-mode -> branch-pr
13
+ * - --cloud --branch-only -> error (conflicting)
14
+ * - --cloud --pr-mode -> branch-pr (pr-mode redundant with cloud)
15
+ */
16
+ import { CLAIMED_MODES } from '@lumenflow/core/dist/wu-constants.js';
17
+ /**
18
+ * Resolve CLI flag combination into a claimed mode with guard requirements.
19
+ *
20
+ * @param flags - CLI flags from parsed arguments
21
+ * @returns Resolution result with mode and guard requirements
22
+ */
23
+ export function resolveClaimMode(flags) {
24
+ const { branchOnly, prMode, cloud } = flags;
25
+ // Conflict: --cloud and --branch-only are mutually exclusive
26
+ // --cloud implies branch-pr directly; --branch-only without --pr-mode means branch-only
27
+ if (cloud && branchOnly) {
28
+ return {
29
+ error: 'Conflicting flags: --cloud and --branch-only cannot be used together. ' +
30
+ 'Use --cloud for branch-pr mode, or --branch-only for branch-only mode.',
31
+ skipBranchOnlySingletonGuard: false,
32
+ requireLaneLock: true,
33
+ requireLaneWipCheck: true,
34
+ };
35
+ }
36
+ // --cloud -> branch-pr (regardless of --pr-mode, which is redundant)
37
+ if (cloud) {
38
+ return {
39
+ mode: CLAIMED_MODES.BRANCH_PR,
40
+ skipBranchOnlySingletonGuard: true,
41
+ requireLaneLock: true,
42
+ requireLaneWipCheck: true,
43
+ };
44
+ }
45
+ // --branch-only --pr-mode -> branch-pr
46
+ if (branchOnly && prMode) {
47
+ return {
48
+ mode: CLAIMED_MODES.BRANCH_PR,
49
+ skipBranchOnlySingletonGuard: true,
50
+ requireLaneLock: true,
51
+ requireLaneWipCheck: true,
52
+ };
53
+ }
54
+ // --branch-only -> branch-only (requires singleton guard)
55
+ if (branchOnly) {
56
+ return {
57
+ mode: CLAIMED_MODES.BRANCH_ONLY,
58
+ skipBranchOnlySingletonGuard: false,
59
+ requireLaneLock: true,
60
+ requireLaneWipCheck: true,
61
+ };
62
+ }
63
+ // --pr-mode -> worktree-pr
64
+ if (prMode) {
65
+ return {
66
+ mode: CLAIMED_MODES.WORKTREE_PR,
67
+ skipBranchOnlySingletonGuard: true,
68
+ requireLaneLock: true,
69
+ requireLaneWipCheck: true,
70
+ };
71
+ }
72
+ // Default -> worktree
73
+ return {
74
+ mode: CLAIMED_MODES.WORKTREE,
75
+ skipBranchOnlySingletonGuard: true,
76
+ requireLaneLock: true,
77
+ requireLaneWipCheck: true,
78
+ };
79
+ }
80
+ //# sourceMappingURL=wu-claim-mode.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wu-claim-mode.js","sourceRoot":"","sources":["../src/wu-claim-mode.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,sCAAsC,CAAC;AA2BrE;;;;;GAKG;AACH,MAAM,UAAU,gBAAgB,CAAC,KAAqB;IACpD,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,KAAK,CAAC;IAE5C,6DAA6D;IAC7D,wFAAwF;IACxF,IAAI,KAAK,IAAI,UAAU,EAAE,CAAC;QACxB,OAAO;YACL,KAAK,EACH,wEAAwE;gBACxE,wEAAwE;YAC1E,4BAA4B,EAAE,KAAK;YACnC,eAAe,EAAE,IAAI;YACrB,mBAAmB,EAAE,IAAI;SAC1B,CAAC;IACJ,CAAC;IAED,qEAAqE;IACrE,IAAI,KAAK,EAAE,CAAC;QACV,OAAO;YACL,IAAI,EAAE,aAAa,CAAC,SAAS;YAC7B,4BAA4B,EAAE,IAAI;YAClC,eAAe,EAAE,IAAI;YACrB,mBAAmB,EAAE,IAAI;SAC1B,CAAC;IACJ,CAAC;IAED,uCAAuC;IACvC,IAAI,UAAU,IAAI,MAAM,EAAE,CAAC;QACzB,OAAO;YACL,IAAI,EAAE,aAAa,CAAC,SAAS;YAC7B,4BAA4B,EAAE,IAAI;YAClC,eAAe,EAAE,IAAI;YACrB,mBAAmB,EAAE,IAAI;SAC1B,CAAC;IACJ,CAAC;IAED,0DAA0D;IAC1D,IAAI,UAAU,EAAE,CAAC;QACf,OAAO;YACL,IAAI,EAAE,aAAa,CAAC,WAAW;YAC/B,4BAA4B,EAAE,KAAK;YACnC,eAAe,EAAE,IAAI;YACrB,mBAAmB,EAAE,IAAI;SAC1B,CAAC;IACJ,CAAC;IAED,2BAA2B;IAC3B,IAAI,MAAM,EAAE,CAAC;QACX,OAAO;YACL,IAAI,EAAE,aAAa,CAAC,WAAW;YAC/B,4BAA4B,EAAE,IAAI;YAClC,eAAe,EAAE,IAAI;YACrB,mBAAmB,EAAE,IAAI;SAC1B,CAAC;IACJ,CAAC;IAED,sBAAsB;IACtB,OAAO;QACL,IAAI,EAAE,aAAa,CAAC,QAAQ;QAC5B,4BAA4B,EAAE,IAAI;QAClC,eAAe,EAAE,IAAI;QACrB,mBAAmB,EAAE,IAAI;KAC1B,CAAC;AACJ,CAAC"}
package/dist/wu-claim.js CHANGED
@@ -35,6 +35,10 @@ import { detectConflicts } from '@lumenflow/core/dist/code-paths-overlap.js';
35
35
  import { getGitForCwd, createGitForPath } from '@lumenflow/core/dist/git-adapter.js';
36
36
  import { die } from '@lumenflow/core/dist/error-handler.js';
37
37
  import { createWUParser, WU_OPTIONS } from '@lumenflow/core/dist/arg-parser.js';
38
+ // WU-1491: Mode resolution for --cloud and flag combinations
39
+ import { resolveClaimMode } from './wu-claim-mode.js';
40
+ // WU-1495: Cloud auto-detection from config-driven env signals
41
+ import { detectCloudMode } from '@lumenflow/core/dist/cloud-detect.js';
38
42
  import { WU_PATHS, getStateStoreDirFromBacklog } from '@lumenflow/core/dist/wu-paths.js';
39
43
  import { BRANCHES, REMOTES, WU_STATUS, CLAIMED_MODES, STATUS_SECTIONS, PATTERNS, toKebab, LOG_PREFIX, GIT_REFS, MICRO_WORKTREE_OPERATIONS, COMMIT_FORMATS, EMOJI, FILE_SYSTEM, STRING_LITERALS, LUMENFLOW_PATHS, } from '@lumenflow/core/dist/wu-constants.js';
40
44
  import { withMicroWorktree } from '@lumenflow/core/dist/micro-worktree.js';
@@ -49,6 +53,7 @@ import { surfaceUnreadSignals } from './hooks/enforcement-generator.js';
49
53
  import { getConfig } from '@lumenflow/core/dist/lumenflow-config.js';
50
54
  import { detectFixableIssues, applyFixes, autoFixWUYaml, formatIssues, } from '@lumenflow/core/dist/wu-yaml-fixer.js';
51
55
  import { validateSpecCompleteness } from '@lumenflow/core/dist/wu-done-validators.js';
56
+ import { hasManualTests, isDocsOrProcessType } from '@lumenflow/core/dist/wu-type-helpers.js';
52
57
  import { getAssignedEmail } from '@lumenflow/core/dist/wu-claim-helpers.js';
53
58
  import { symlinkNodeModules, symlinkNestedNodeModules, } from '@lumenflow/core/dist/worktree-symlink.js';
54
59
  // WU-1572: Import WUStateStore for event-sourced state tracking
@@ -110,6 +115,49 @@ async function ensureCleanOrClaimOnlyWhenNoAuto() {
110
115
  }
111
116
  }
112
117
  const PREFIX = LOG_PREFIX.CLAIM;
118
+ /**
119
+ * WU-1508: Enforce tests.manual at claim time for non-doc/process WUs.
120
+ * This is non-bypassable (independent of --allow-incomplete) to fail early.
121
+ */
122
+ export function validateManualTestsForClaim(doc, id) {
123
+ if (isDocsOrProcessType(doc?.type)) {
124
+ return { valid: true };
125
+ }
126
+ if (hasManualTests(doc?.tests)) {
127
+ return { valid: true };
128
+ }
129
+ return {
130
+ valid: false,
131
+ error: `${id}: Missing required tests.manual for non-documentation WU.\n` +
132
+ `Add at least one manual verification step under tests.manual before claiming.`,
133
+ };
134
+ }
135
+ /**
136
+ * WU-1521: Build a rolled-back version of a WU YAML doc by stripping claim metadata.
137
+ *
138
+ * When wu:claim fails after pushing YAML changes to origin/main but before
139
+ * worktree creation succeeds, this function produces a clean doc that can be
140
+ * written back to reset the WU to 'ready' state, enabling a clean retry.
141
+ *
142
+ * Pure function: does not mutate the input doc.
143
+ *
144
+ * @param doc - The claimed WU YAML document to roll back
145
+ * @returns A new document with status=ready and claim metadata removed
146
+ */
147
+ export function buildRollbackYamlDoc(doc) {
148
+ // Shallow-copy to avoid mutating the original
149
+ const rolled = { ...doc };
150
+ // Reset status back to ready
151
+ rolled.status = WU_STATUS.READY;
152
+ // Remove claim-specific metadata fields
153
+ delete rolled.claimed_mode;
154
+ delete rolled.claimed_at;
155
+ delete rolled.worktree_path;
156
+ delete rolled.baseline_main_sha;
157
+ delete rolled.session_id;
158
+ delete rolled.assigned_to;
159
+ return rolled;
160
+ }
113
161
  /**
114
162
  * Pre-flight validation: Check WU file exists and is valid BEFORE any git operations
115
163
  * Prevents zombie worktrees when WU YAML is missing or malformed
@@ -531,6 +579,77 @@ async function applyCanonicalClaimUpdate(ctx, sessionId) {
531
579
  console.log(`${PREFIX} Canonical claim state updated on origin/main`);
532
580
  return updatedTitle;
533
581
  }
582
+ /**
583
+ * WU-1521: Rollback canonical claim state on origin/main after partial failure.
584
+ *
585
+ * When wu:claim pushes YAML changes to origin/main (via applyCanonicalClaimUpdate)
586
+ * but then fails to create the worktree or branch, this function reverses the claim
587
+ * by writing the WU YAML back to 'ready' status and emitting a 'release' event
588
+ * to the state store. This ensures re-running wu:claim succeeds without wu:repair.
589
+ *
590
+ * Uses a push-only micro-worktree to atomically update origin/main.
591
+ *
592
+ * @param id - WU ID (e.g., 'WU-1521')
593
+ * @param lane - Lane name for the release event
594
+ * @param title - WU title for the release event
595
+ */
596
+ async function rollbackCanonicalClaim(id, lane, title) {
597
+ console.log(`${PREFIX} Rolling back canonical claim for ${id}...`);
598
+ try {
599
+ await withMicroWorktree({
600
+ operation: MICRO_WORKTREE_OPERATIONS.WU_CLAIM,
601
+ id,
602
+ logPrefix: PREFIX,
603
+ pushOnly: true,
604
+ execute: async ({ worktreePath }) => {
605
+ const microWUPath = path.join(worktreePath, WU_PATHS.WU(id));
606
+ // Read the current (claimed) YAML from the micro-worktree
607
+ const text = await readFile(microWUPath, {
608
+ encoding: FILE_SYSTEM.UTF8,
609
+ });
610
+ const doc = parseYAML(text);
611
+ // Build the rolled-back doc and write it
612
+ const rolledBackDoc = buildRollbackYamlDoc(doc);
613
+ const out = stringifyYAML(rolledBackDoc);
614
+ await writeFile(microWUPath, out, {
615
+ encoding: FILE_SYSTEM.UTF8,
616
+ });
617
+ // Emit a release event to the state store so the claim event is reversed
618
+ const microBacklogPath = path.join(worktreePath, WU_PATHS.BACKLOG());
619
+ const stateDir = getStateStoreDirFromBacklog(microBacklogPath);
620
+ const store = new WUStateStore(stateDir);
621
+ await store.load();
622
+ await store.release(id, `Rollback: wu:claim failed after canonical update`);
623
+ // Regenerate backlog.md and status.md from the corrected state
624
+ const backlogContent = await generateBacklog(store);
625
+ await writeFile(microBacklogPath, backlogContent, {
626
+ encoding: FILE_SYSTEM.UTF8,
627
+ });
628
+ const microStatusPath = path.join(worktreePath, WU_PATHS.STATUS());
629
+ const statusContent = await generateStatus(store);
630
+ await writeFile(microStatusPath, statusContent, {
631
+ encoding: FILE_SYSTEM.UTF8,
632
+ });
633
+ return {
634
+ commitMessage: `wu(${id.toLowerCase()}): rollback claim after partial failure`,
635
+ files: [
636
+ WU_PATHS.WU(id),
637
+ WU_PATHS.STATUS(),
638
+ WU_PATHS.BACKLOG(),
639
+ LUMENFLOW_PATHS.WU_EVENTS,
640
+ ],
641
+ };
642
+ },
643
+ });
644
+ console.log(`${PREFIX} Canonical claim rolled back for ${id}`);
645
+ }
646
+ catch (rollbackErr) {
647
+ // Rollback failure should not mask the original error.
648
+ // Log the rollback failure but let the original error propagate.
649
+ console.error(`${PREFIX} WARNING: Failed to rollback canonical claim for ${id}: ${rollbackErr.message}`);
650
+ console.error(`${PREFIX} Manual recovery required: pnpm wu:repair --id ${id} --claim`);
651
+ }
652
+ }
534
653
  async function readWUTitle(id) {
535
654
  const p = WU_PATHS.WU(id);
536
655
  // Check file exists
@@ -1191,6 +1310,7 @@ async function main() {
1191
1310
  WU_OPTIONS.fix,
1192
1311
  WU_OPTIONS.reason,
1193
1312
  WU_OPTIONS.allowIncomplete,
1313
+ WU_OPTIONS.cloud, // WU-1491: Cloud/branch-pr mode for cloud agents
1194
1314
  WU_OPTIONS.resume, // WU-2411: Agent handoff flag
1195
1315
  WU_OPTIONS.skipSetup, // WU-1023: Skip auto-setup for fast claims
1196
1316
  WU_OPTIONS.noPush, // Skip pushing claim state/branch (air-gapped)
@@ -1237,6 +1357,10 @@ async function main() {
1237
1357
  const BACKLOG_PATH = WU_PATHS.BACKLOG();
1238
1358
  // PRE-FLIGHT VALIDATION (on post-pull data)
1239
1359
  const doc = preflightValidateWU(WU_PATH, id);
1360
+ const manualTestsCheck = validateManualTestsForClaim(doc, id);
1361
+ if (!manualTestsCheck.valid) {
1362
+ die(manualTestsCheck.error);
1363
+ }
1240
1364
  await handleOrphanCheck(args.lane, id);
1241
1365
  validateLaneFormatWithError(args.lane);
1242
1366
  // WU-1187: Check for WIP justification when WIP > 1 (soft enforcement - warning only)
@@ -1312,6 +1436,9 @@ async function main() {
1312
1436
  // WU-1808: Wrap claim execution in try/finally to ensure lock release on failure
1313
1437
  // If claim fails after lock acquisition, the lane would be blocked without this cleanup
1314
1438
  let claimSucceeded = false;
1439
+ // WU-1521: Track canonical claim push state for rollback in finally block
1440
+ let canonicalClaimPushed = false;
1441
+ let claimTitle = '';
1315
1442
  try {
1316
1443
  // Code paths overlap detection (WU-901)
1317
1444
  handleCodePathOverlap(WU_PATH, STATUS_PATH, id, args);
@@ -1321,16 +1448,31 @@ async function main() {
1321
1448
  const title = (await readWUTitle(id)) || '';
1322
1449
  const branch = args.branch || `lane/${laneK}/${idK}`;
1323
1450
  const worktree = args.worktree || `worktrees/${laneK}-${idK}`;
1324
- // Determine claimed mode based on flags (no nested ternaries for sonarjs compliance)
1325
- let claimedMode = CLAIMED_MODES.WORKTREE;
1326
- if (args.branchOnly) {
1327
- claimedMode = CLAIMED_MODES.BRANCH_ONLY;
1451
+ // WU-1495: Cloud auto-detection from config-driven env signals
1452
+ // Detection precedence: --cloud flag > LUMENFLOW_CLOUD=1 > env_signals (opt-in)
1453
+ const config = getConfig();
1454
+ const cloudDetection = detectCloudMode({
1455
+ cloudFlag: Boolean(args.cloud),
1456
+ env: process.env,
1457
+ config: config.cloud,
1458
+ });
1459
+ const effectiveCloud = cloudDetection.isCloud;
1460
+ if (cloudDetection.isCloud && !args.cloud) {
1461
+ console.log(`${PREFIX} Cloud mode auto-detected (source: ${cloudDetection.source}${cloudDetection.matchedSignal ? `, signal: ${cloudDetection.matchedSignal}` : ''})`);
1328
1462
  }
1329
- else if (args.prMode) {
1330
- claimedMode = CLAIMED_MODES.WORKTREE_PR;
1463
+ // WU-1491: Resolve claimed mode from flag combination
1464
+ const modeResult = resolveClaimMode({
1465
+ branchOnly: args.branchOnly,
1466
+ prMode: args.prMode,
1467
+ cloud: effectiveCloud,
1468
+ });
1469
+ if (modeResult.error) {
1470
+ die(modeResult.error);
1331
1471
  }
1332
- // Branch-Only mode validation
1333
- if (args.branchOnly) {
1472
+ const claimedMode = modeResult.mode;
1473
+ // Branch-Only singleton guard: only for pure branch-only mode (not branch-pr)
1474
+ // branch-pr skips this guard because it supports parallel agents via PR isolation
1475
+ if (!modeResult.skipBranchOnlySingletonGuard) {
1334
1476
  await validateBranchOnlyMode(STATUS_PATH, id);
1335
1477
  }
1336
1478
  // Check if remote branch already exists (prevents duplicate global claims)
@@ -1404,8 +1546,13 @@ async function main() {
1404
1546
  stagedChanges,
1405
1547
  };
1406
1548
  let updatedTitle = title;
1549
+ claimTitle = title;
1407
1550
  if (!args.noPush) {
1408
1551
  updatedTitle = (await applyCanonicalClaimUpdate(baseCtx, sessionId)) || updatedTitle;
1552
+ // WU-1521: Mark that canonical claim was pushed to origin/main
1553
+ // If claim fails after this point, the finally block will rollback
1554
+ canonicalClaimPushed = true;
1555
+ claimTitle = updatedTitle || title;
1409
1556
  // Refresh origin/main after push-only update so worktrees start from canonical state
1410
1557
  await getGitForCwd().fetch(REMOTES.ORIGIN, BRANCHES.MAIN);
1411
1558
  }
@@ -1414,7 +1561,9 @@ async function main() {
1414
1561
  sessionId,
1415
1562
  updatedTitle,
1416
1563
  };
1417
- if (args.branchOnly) {
1564
+ // WU-1491: Route to correct mode handler
1565
+ // branch-pr uses branch-only workflow (no worktree) but with branch-pr claimed_mode
1566
+ if (claimedMode === CLAIMED_MODES.BRANCH_ONLY || claimedMode === CLAIMED_MODES.BRANCH_PR) {
1418
1567
  await claimBranchOnlyMode(ctx);
1419
1568
  }
1420
1569
  else {
@@ -1427,6 +1576,11 @@ async function main() {
1427
1576
  // WU-1808: Release lane lock if claim did not complete successfully
1428
1577
  // This prevents orphan locks from blocking the lane when claim crashes or fails
1429
1578
  if (!claimSucceeded) {
1579
+ // WU-1521: Rollback canonical claim state if it was pushed to origin/main
1580
+ // This ensures re-running wu:claim succeeds without needing wu:repair
1581
+ if (canonicalClaimPushed) {
1582
+ await rollbackCanonicalClaim(id, args.lane, claimTitle);
1583
+ }
1430
1584
  console.log(`${PREFIX} Claim did not complete - releasing lane lock...`);
1431
1585
  const releaseResult = releaseLaneLock(args.lane, { wuId: id });
1432
1586
  if (releaseResult.released && !releaseResult.notFound) {