@lumenflow/core 3.5.1 → 3.6.1
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/arg-parser.d.ts.map +1 -1
- package/dist/arg-parser.js +23 -0
- package/dist/arg-parser.js.map +1 -1
- package/dist/config-contract.d.ts +22 -0
- package/dist/config-contract.d.ts.map +1 -1
- package/dist/config-contract.js +43 -0
- package/dist/config-contract.js.map +1 -1
- package/dist/core/tool.schemas.d.ts +2 -2
- package/dist/git-adapter.d.ts +23 -0
- package/dist/git-adapter.d.ts.map +1 -1
- package/dist/git-adapter.js +53 -0
- package/dist/git-adapter.js.map +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/lane-checker.d.ts.map +1 -1
- package/dist/lane-checker.js +21 -9
- package/dist/lane-checker.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 +2 -0
- package/dist/lumenflow-config.js.map +1 -1
- package/dist/micro-worktree-shared.d.ts +22 -1
- package/dist/micro-worktree-shared.d.ts.map +1 -1
- package/dist/micro-worktree-shared.js +32 -3
- package/dist/micro-worktree-shared.js.map +1 -1
- package/dist/micro-worktree.d.ts.map +1 -1
- package/dist/micro-worktree.js +7 -20
- package/dist/micro-worktree.js.map +1 -1
- package/dist/ports/index.d.ts +1 -0
- package/dist/ports/index.d.ts.map +1 -1
- package/dist/ports/index.js +1 -0
- package/dist/ports/index.js.map +1 -1
- package/dist/ports/sync-validator.ports.d.ts +52 -0
- package/dist/ports/sync-validator.ports.d.ts.map +1 -0
- package/dist/ports/sync-validator.ports.js +4 -0
- package/dist/ports/sync-validator.ports.js.map +1 -0
- package/dist/ports/wu-helpers.ports.d.ts +2 -13
- package/dist/ports/wu-helpers.ports.d.ts.map +1 -1
- package/dist/schemas/flow-arg-validators.d.ts +2 -2
- package/dist/schemas/flow-schemas.d.ts +4 -4
- package/dist/schemas/workspace-config.d.ts +15 -4
- package/dist/schemas/workspace-config.d.ts.map +1 -1
- package/dist/schemas/workspace-config.js +14 -2
- package/dist/schemas/workspace-config.js.map +1 -1
- package/dist/schemas/wu-lifecycle-arg-validators.d.ts +2 -0
- package/dist/schemas/wu-lifecycle-arg-validators.d.ts.map +1 -1
- package/dist/schemas/wu-lifecycle-schemas.d.ts +4 -1
- 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/sync-validator.d.ts +36 -0
- package/dist/sync-validator.d.ts.map +1 -0
- package/dist/sync-validator.js +77 -0
- package/dist/sync-validator.js.map +1 -0
- package/dist/telemetry.d.ts +19 -0
- package/dist/telemetry.d.ts.map +1 -1
- package/dist/telemetry.js +40 -0
- package/dist/telemetry.js.map +1 -1
- package/dist/wu-done-inputs.d.ts.map +1 -1
- package/dist/wu-done-inputs.js +1 -0
- package/dist/wu-done-inputs.js.map +1 -1
- package/dist/wu-done-main-sync.d.ts +4 -32
- package/dist/wu-done-main-sync.d.ts.map +1 -1
- package/dist/wu-done-main-sync.js +3 -61
- package/dist/wu-done-main-sync.js.map +1 -1
- package/dist/wu-done-worktree-services.d.ts +2 -5
- package/dist/wu-done-worktree-services.d.ts.map +1 -1
- package/dist/wu-done-worktree-services.js +10 -11
- package/dist/wu-done-worktree-services.js.map +1 -1
- package/dist/wu-duplicate-id-detector.d.ts +64 -0
- package/dist/wu-duplicate-id-detector.d.ts.map +1 -0
- package/dist/wu-duplicate-id-detector.js +334 -0
- package/dist/wu-duplicate-id-detector.js.map +1 -0
- package/dist/wu-helpers.d.ts +1 -16
- package/dist/wu-helpers.d.ts.map +1 -1
- package/dist/wu-helpers.js +2 -22
- package/dist/wu-helpers.js.map +1 -1
- package/dist/wu-id-generator.d.ts +96 -2
- package/dist/wu-id-generator.d.ts.map +1 -1
- package/dist/wu-id-generator.js +224 -11
- package/dist/wu-id-generator.js.map +1 -1
- package/dist/wu-repair-core.d.ts +16 -0
- package/dist/wu-repair-core.d.ts.map +1 -1
- package/dist/wu-repair-core.js +56 -0
- package/dist/wu-repair-core.js.map +1 -1
- package/package.json +5 -2
|
@@ -0,0 +1,334 @@
|
|
|
1
|
+
// Copyright (c) 2026 Hellmai Ltd
|
|
2
|
+
// SPDX-License-Identifier: AGPL-3.0-only
|
|
3
|
+
/**
|
|
4
|
+
* WU Duplicate ID Detector and Repair (WU-2213)
|
|
5
|
+
*
|
|
6
|
+
* Detects ID collisions across YAML specs, stamps, and event stream.
|
|
7
|
+
* Provides dry-run detection and apply-mode repair with ID remapping.
|
|
8
|
+
*
|
|
9
|
+
* Design:
|
|
10
|
+
* - Detection: Scan all WU YAML files, index by `id` field
|
|
11
|
+
* - Collision: Multiple files claiming the same `id`
|
|
12
|
+
* - Repair: Assign new ID to duplicates, update references everywhere
|
|
13
|
+
* - Report: Emit mapping of old -> new IDs and all touched files
|
|
14
|
+
*
|
|
15
|
+
* @see {@link ./wu-repair-core.ts} - Unified repair CLI router
|
|
16
|
+
*/
|
|
17
|
+
import { readdirSync, readFileSync, writeFileSync, existsSync, renameSync } from 'node:fs';
|
|
18
|
+
import path from 'node:path';
|
|
19
|
+
import { parse, stringify } from 'yaml';
|
|
20
|
+
import { getConfig } from './lumenflow-config.js';
|
|
21
|
+
import { WU_STATUS } from './wu-statuses.js';
|
|
22
|
+
const WU_YAML_EXTENSION = '.yaml';
|
|
23
|
+
const WU_ID_PREFIX = 'WU-';
|
|
24
|
+
const STAMP_SUFFIX = '.done';
|
|
25
|
+
const EVENTS_FILE = 'wu-events.jsonl';
|
|
26
|
+
/**
|
|
27
|
+
* Scan all YAML files in the WU directory and index by ID.
|
|
28
|
+
*
|
|
29
|
+
* @param wuDirAbsolute - Absolute path to the WU YAML directory
|
|
30
|
+
* @returns Map of WU ID -> array of file paths claiming that ID
|
|
31
|
+
*/
|
|
32
|
+
function scanYamlFiles(wuDirAbsolute) {
|
|
33
|
+
const idToFiles = new Map();
|
|
34
|
+
if (!existsSync(wuDirAbsolute)) {
|
|
35
|
+
return idToFiles;
|
|
36
|
+
}
|
|
37
|
+
const entries = readdirSync(wuDirAbsolute);
|
|
38
|
+
for (const entry of entries) {
|
|
39
|
+
if (!entry.endsWith(WU_YAML_EXTENSION))
|
|
40
|
+
continue;
|
|
41
|
+
const fullPath = path.join(wuDirAbsolute, entry);
|
|
42
|
+
try {
|
|
43
|
+
const content = readFileSync(fullPath, 'utf-8');
|
|
44
|
+
const doc = parse(content);
|
|
45
|
+
if (!doc || typeof doc.id !== 'string')
|
|
46
|
+
continue;
|
|
47
|
+
const id = doc.id;
|
|
48
|
+
const existing = idToFiles.get(id) ?? [];
|
|
49
|
+
existing.push(fullPath);
|
|
50
|
+
idToFiles.set(id, existing);
|
|
51
|
+
}
|
|
52
|
+
catch {
|
|
53
|
+
// Skip unparseable files
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
return idToFiles;
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Find stamp files for a given WU ID.
|
|
60
|
+
*
|
|
61
|
+
* @param stampsDirAbsolute - Absolute path to stamps directory
|
|
62
|
+
* @param id - WU ID to search for
|
|
63
|
+
* @returns Array of matching stamp file paths
|
|
64
|
+
*/
|
|
65
|
+
function findStamps(stampsDirAbsolute, id) {
|
|
66
|
+
const stampFile = path.join(stampsDirAbsolute, `${id}${STAMP_SUFFIX}`);
|
|
67
|
+
if (existsSync(stampFile)) {
|
|
68
|
+
return [stampFile];
|
|
69
|
+
}
|
|
70
|
+
return [];
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Find events for a given WU ID in the events file.
|
|
74
|
+
*
|
|
75
|
+
* @param eventsFileAbsolute - Absolute path to wu-events.jsonl
|
|
76
|
+
* @param id - WU ID to search for
|
|
77
|
+
* @returns Array of matching events with their line numbers
|
|
78
|
+
*/
|
|
79
|
+
function findEvents(eventsFileAbsolute, id) {
|
|
80
|
+
if (!existsSync(eventsFileAbsolute)) {
|
|
81
|
+
return [];
|
|
82
|
+
}
|
|
83
|
+
const content = readFileSync(eventsFileAbsolute, 'utf-8');
|
|
84
|
+
const lines = content.split('\n');
|
|
85
|
+
const results = [];
|
|
86
|
+
for (let i = 0; i < lines.length; i++) {
|
|
87
|
+
const line = lines[i]?.trim();
|
|
88
|
+
if (!line)
|
|
89
|
+
continue;
|
|
90
|
+
try {
|
|
91
|
+
const event = JSON.parse(line);
|
|
92
|
+
if (event.wuId === id) {
|
|
93
|
+
results.push({ line: i + 1, event });
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
catch {
|
|
97
|
+
// Skip malformed lines
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
return results;
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* Detect duplicate WU IDs across YAML files, stamps, and events.
|
|
104
|
+
*
|
|
105
|
+
* @param projectRoot - Absolute path to the project root
|
|
106
|
+
* @returns Detection report
|
|
107
|
+
*/
|
|
108
|
+
export async function detectDuplicateIds(projectRoot) {
|
|
109
|
+
const config = getConfig({ projectRoot });
|
|
110
|
+
const wuDirAbsolute = path.join(projectRoot, config.directories.wuDir);
|
|
111
|
+
const stampsDirAbsolute = path.join(projectRoot, config.state.stampsDir);
|
|
112
|
+
const eventsFileAbsolute = path.join(projectRoot, config.state.stateDir, EVENTS_FILE);
|
|
113
|
+
const idToFiles = scanYamlFiles(wuDirAbsolute);
|
|
114
|
+
const duplicates = [];
|
|
115
|
+
let totalWUs = 0;
|
|
116
|
+
for (const [id, files] of idToFiles) {
|
|
117
|
+
totalWUs += files.length;
|
|
118
|
+
if (files.length > 1) {
|
|
119
|
+
duplicates.push({
|
|
120
|
+
id,
|
|
121
|
+
files,
|
|
122
|
+
stamps: findStamps(stampsDirAbsolute, id),
|
|
123
|
+
events: findEvents(eventsFileAbsolute, id),
|
|
124
|
+
});
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
// Count unique WU IDs with single files
|
|
128
|
+
for (const [, files] of idToFiles) {
|
|
129
|
+
if (files.length === 1) {
|
|
130
|
+
// Already counted via totalWUs above
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
return { totalWUs, duplicates };
|
|
134
|
+
}
|
|
135
|
+
/**
|
|
136
|
+
* Find the next available WU ID that does not conflict with existing IDs.
|
|
137
|
+
*
|
|
138
|
+
* @param existingIds - Set of all existing WU IDs
|
|
139
|
+
* @returns A new unique WU ID
|
|
140
|
+
*/
|
|
141
|
+
function nextAvailableId(existingIds) {
|
|
142
|
+
let candidate = 1;
|
|
143
|
+
while (existingIds.has(`${WU_ID_PREFIX}${candidate}`)) {
|
|
144
|
+
candidate++;
|
|
145
|
+
}
|
|
146
|
+
return `${WU_ID_PREFIX}${candidate}`;
|
|
147
|
+
}
|
|
148
|
+
/**
|
|
149
|
+
* Choose which file is the "canonical" one (keeps the original ID).
|
|
150
|
+
* Heuristic: the file whose filename matches the ID pattern gets priority.
|
|
151
|
+
* E.g., WU-1.yaml is canonical over WU-1-copy.yaml for id: WU-1.
|
|
152
|
+
*
|
|
153
|
+
* @param id - The duplicate WU ID
|
|
154
|
+
* @param files - Files claiming that ID
|
|
155
|
+
* @returns Index of the canonical file
|
|
156
|
+
*/
|
|
157
|
+
function chooseCanonical(id, files) {
|
|
158
|
+
const expectedFilename = `${id}${WU_YAML_EXTENSION}`;
|
|
159
|
+
for (let i = 0; i < files.length; i++) {
|
|
160
|
+
if (path.basename(files[i]) === expectedFilename) {
|
|
161
|
+
return i;
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
// Fallback: first file is canonical
|
|
165
|
+
return 0;
|
|
166
|
+
}
|
|
167
|
+
/**
|
|
168
|
+
* Collect all existing WU IDs from the directory.
|
|
169
|
+
*
|
|
170
|
+
* @param wuDirAbsolute - Absolute path to WU directory
|
|
171
|
+
* @returns Set of all WU IDs
|
|
172
|
+
*/
|
|
173
|
+
function collectAllIds(wuDirAbsolute) {
|
|
174
|
+
const ids = new Set();
|
|
175
|
+
if (!existsSync(wuDirAbsolute))
|
|
176
|
+
return ids;
|
|
177
|
+
const entries = readdirSync(wuDirAbsolute);
|
|
178
|
+
for (const entry of entries) {
|
|
179
|
+
if (!entry.endsWith(WU_YAML_EXTENSION))
|
|
180
|
+
continue;
|
|
181
|
+
const fullPath = path.join(wuDirAbsolute, entry);
|
|
182
|
+
try {
|
|
183
|
+
const content = readFileSync(fullPath, 'utf-8');
|
|
184
|
+
const doc = parse(content);
|
|
185
|
+
if (doc && typeof doc.id === 'string') {
|
|
186
|
+
ids.add(doc.id);
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
catch {
|
|
190
|
+
// Skip
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
return ids;
|
|
194
|
+
}
|
|
195
|
+
/**
|
|
196
|
+
* Update events in wu-events.jsonl for remapped IDs.
|
|
197
|
+
* Only updates events that match the duplicate's context (lane/title).
|
|
198
|
+
*
|
|
199
|
+
* @param eventsFileAbsolute - Path to events file
|
|
200
|
+
* @param oldId - Old WU ID
|
|
201
|
+
* @param newId - New WU ID
|
|
202
|
+
* @param duplicateLane - Lane of the duplicate WU (to disambiguate events)
|
|
203
|
+
* @returns true if the file was modified
|
|
204
|
+
*/
|
|
205
|
+
function updateEvents(eventsFileAbsolute, oldId, newId, duplicateLane) {
|
|
206
|
+
if (!existsSync(eventsFileAbsolute))
|
|
207
|
+
return false;
|
|
208
|
+
const content = readFileSync(eventsFileAbsolute, 'utf-8');
|
|
209
|
+
const lines = content.split('\n');
|
|
210
|
+
let modified = false;
|
|
211
|
+
const newLines = [];
|
|
212
|
+
for (const rawLine of lines) {
|
|
213
|
+
const line = rawLine.trim();
|
|
214
|
+
if (!line) {
|
|
215
|
+
newLines.push(rawLine);
|
|
216
|
+
continue;
|
|
217
|
+
}
|
|
218
|
+
try {
|
|
219
|
+
const event = JSON.parse(line);
|
|
220
|
+
if (event.wuId === oldId) {
|
|
221
|
+
// If we have lane info, only remap events matching the duplicate's lane
|
|
222
|
+
if (duplicateLane && typeof event.lane === 'string' && event.lane !== duplicateLane) {
|
|
223
|
+
newLines.push(rawLine);
|
|
224
|
+
continue;
|
|
225
|
+
}
|
|
226
|
+
event.wuId = newId;
|
|
227
|
+
newLines.push(JSON.stringify(event));
|
|
228
|
+
modified = true;
|
|
229
|
+
}
|
|
230
|
+
else {
|
|
231
|
+
newLines.push(rawLine);
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
catch {
|
|
235
|
+
newLines.push(rawLine);
|
|
236
|
+
}
|
|
237
|
+
}
|
|
238
|
+
if (modified) {
|
|
239
|
+
writeFileSync(eventsFileAbsolute, newLines.join('\n'), 'utf-8');
|
|
240
|
+
}
|
|
241
|
+
return modified;
|
|
242
|
+
}
|
|
243
|
+
/**
|
|
244
|
+
* Repair duplicate WU IDs.
|
|
245
|
+
*
|
|
246
|
+
* For each collision group, the canonical file (matching filename) keeps its ID.
|
|
247
|
+
* All other files get a new unique ID. References (blocked_by, dependencies, blocks)
|
|
248
|
+
* in other WU files are updated. Stamps and events are updated accordingly.
|
|
249
|
+
*
|
|
250
|
+
* @param projectRoot - Absolute path to the project root
|
|
251
|
+
* @param options - Repair options (apply: true to actually mutate files)
|
|
252
|
+
* @returns Repair result with mappings
|
|
253
|
+
*/
|
|
254
|
+
export async function repairDuplicateIds(projectRoot, options) {
|
|
255
|
+
const report = await detectDuplicateIds(projectRoot);
|
|
256
|
+
if (report.duplicates.length === 0) {
|
|
257
|
+
return { applied: false, mappings: [] };
|
|
258
|
+
}
|
|
259
|
+
const config = getConfig({ projectRoot });
|
|
260
|
+
const wuDirAbsolute = path.join(projectRoot, config.directories.wuDir);
|
|
261
|
+
const stampsDirAbsolute = path.join(projectRoot, config.state.stampsDir);
|
|
262
|
+
const eventsFileAbsolute = path.join(projectRoot, config.state.stateDir, EVENTS_FILE);
|
|
263
|
+
const allIds = collectAllIds(wuDirAbsolute);
|
|
264
|
+
const mappings = [];
|
|
265
|
+
for (const group of report.duplicates) {
|
|
266
|
+
const canonicalIdx = chooseCanonical(group.id, group.files);
|
|
267
|
+
for (let i = 0; i < group.files.length; i++) {
|
|
268
|
+
if (i === canonicalIdx)
|
|
269
|
+
continue; // Keep canonical as-is
|
|
270
|
+
const duplicateFile = group.files[i];
|
|
271
|
+
const newId = nextAvailableId(allIds);
|
|
272
|
+
allIds.add(newId); // Track so next call gets a different ID
|
|
273
|
+
if (!options.apply) {
|
|
274
|
+
// Dry-run: just record the mapping
|
|
275
|
+
mappings.push({
|
|
276
|
+
oldId: group.id,
|
|
277
|
+
newId,
|
|
278
|
+
renamedFile: duplicateFile,
|
|
279
|
+
touchedFiles: [],
|
|
280
|
+
});
|
|
281
|
+
continue;
|
|
282
|
+
}
|
|
283
|
+
const touchedFiles = [];
|
|
284
|
+
// 1. Update the duplicate YAML file
|
|
285
|
+
try {
|
|
286
|
+
const content = readFileSync(duplicateFile, 'utf-8');
|
|
287
|
+
const doc = parse(content);
|
|
288
|
+
const duplicateLane = typeof doc.lane === 'string' ? doc.lane : undefined;
|
|
289
|
+
doc.id = newId;
|
|
290
|
+
writeFileSync(duplicateFile, stringify(doc, { lineWidth: 0 }), 'utf-8');
|
|
291
|
+
touchedFiles.push(duplicateFile);
|
|
292
|
+
// 2. Rename the file to match the new ID
|
|
293
|
+
const newFilePath = path.join(wuDirAbsolute, `${newId}${WU_YAML_EXTENSION}`);
|
|
294
|
+
renameSync(duplicateFile, newFilePath);
|
|
295
|
+
touchedFiles[touchedFiles.length - 1] = newFilePath;
|
|
296
|
+
// 3. Update references in other WU files
|
|
297
|
+
// Note: Only references that pointed to the OLD id and were meant for
|
|
298
|
+
// the duplicate need updating. Since we can't always determine intent,
|
|
299
|
+
// we DON'T update references to the canonical ID in other files.
|
|
300
|
+
// The canonical keeps its ID; the duplicate gets a new one.
|
|
301
|
+
// References in other files still point to the canonical correctly.
|
|
302
|
+
// 4. Update stamps if the duplicate had a done stamp
|
|
303
|
+
const oldStampPath = path.join(stampsDirAbsolute, `${group.id}${STAMP_SUFFIX}`);
|
|
304
|
+
const newStampPath = path.join(stampsDirAbsolute, `${newId}${STAMP_SUFFIX}`);
|
|
305
|
+
if (existsSync(oldStampPath)) {
|
|
306
|
+
// Don't rename the stamp -- it belongs to the canonical.
|
|
307
|
+
// Instead, create a new stamp for the duplicate if it was marked done.
|
|
308
|
+
if (doc.status === WU_STATUS.DONE) {
|
|
309
|
+
writeFileSync(newStampPath, '', 'utf-8');
|
|
310
|
+
touchedFiles.push(newStampPath);
|
|
311
|
+
}
|
|
312
|
+
}
|
|
313
|
+
// 5. Update events for the duplicate
|
|
314
|
+
if (updateEvents(eventsFileAbsolute, group.id, newId, duplicateLane)) {
|
|
315
|
+
touchedFiles.push(eventsFileAbsolute);
|
|
316
|
+
}
|
|
317
|
+
mappings.push({
|
|
318
|
+
oldId: group.id,
|
|
319
|
+
newId,
|
|
320
|
+
renamedFile: newFilePath,
|
|
321
|
+
touchedFiles,
|
|
322
|
+
});
|
|
323
|
+
}
|
|
324
|
+
catch {
|
|
325
|
+
// Skip files that can't be processed
|
|
326
|
+
}
|
|
327
|
+
}
|
|
328
|
+
}
|
|
329
|
+
return {
|
|
330
|
+
applied: options.apply,
|
|
331
|
+
mappings,
|
|
332
|
+
};
|
|
333
|
+
}
|
|
334
|
+
//# sourceMappingURL=wu-duplicate-id-detector.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wu-duplicate-id-detector.js","sourceRoot":"","sources":["../src/wu-duplicate-id-detector.ts"],"names":[],"mappings":"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"}
|
package/dist/wu-helpers.d.ts
CHANGED
|
@@ -14,7 +14,6 @@ interface ParsedWUYaml {
|
|
|
14
14
|
[key: string]: unknown;
|
|
15
15
|
}
|
|
16
16
|
type EnsureOnMainGitAdapter = Pick<IWuGitAdapter, 'getCurrentBranch'>;
|
|
17
|
-
type EnsureMainUpToDateGitAdapter = Pick<IWuGitAdapter, 'fetch' | 'getCommitHash'>;
|
|
18
17
|
type RunOptions = Omit<ExecSyncOptionsWithStringEncoding, 'encoding'>;
|
|
19
18
|
/**
|
|
20
19
|
* Validate WU ID format
|
|
@@ -115,19 +114,5 @@ export declare function extractWUFromCommitMessage(message: string | null | unde
|
|
|
115
114
|
* @throws {Error} If not on main branch and not an agent branch
|
|
116
115
|
*/
|
|
117
116
|
export declare function ensureOnMain(git: EnsureOnMainGitAdapter): Promise<void>;
|
|
118
|
-
|
|
119
|
-
* Ensure main branch is up to date with origin.
|
|
120
|
-
*
|
|
121
|
-
* Centralized from duplicated ensureMainUpToDate() functions across wu-* scripts (WU-1256).
|
|
122
|
-
*
|
|
123
|
-
* @param {object} git - Git adapter with async fetch() and getCommitHash() methods
|
|
124
|
-
* @param {string} [scriptName='wu'] - Script name for logging
|
|
125
|
-
* @param {object} [options] - Options
|
|
126
|
-
* @param {boolean} [options.skipRemote=false] - WU-1653: Skip remote check (requireRemote=false)
|
|
127
|
-
* @throws {Error} If main is out of sync with origin
|
|
128
|
-
*/
|
|
129
|
-
export declare function ensureMainUpToDate(git: EnsureMainUpToDateGitAdapter, _scriptName?: string, { skipRemote }?: {
|
|
130
|
-
skipRemote?: boolean;
|
|
131
|
-
}): Promise<void>;
|
|
132
|
-
export {};
|
|
117
|
+
export { ensureMainUpToDate } from './sync-validator.js';
|
|
133
118
|
//# sourceMappingURL=wu-helpers.d.ts.map
|
package/dist/wu-helpers.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wu-helpers.d.ts","sourceRoot":"","sources":["../src/wu-helpers.ts"],"names":[],"mappings":";AAGA;;;;;;;GAOG;AAEH,OAAO,EAAY,KAAK,iCAAiC,EAAE,MAAM,oBAAoB,CAAC;AAQtF,OAAO,KAAK,EACV,uBAAuB,EACvB,aAAa,EACb,oBAAoB,EACrB,MAAM,6BAA6B,CAAC;AAErC,UAAU,YAAY;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,KAAK,sBAAsB,GAAG,IAAI,CAAC,aAAa,EAAE,kBAAkB,CAAC,CAAC;AACtE,KAAK,
|
|
1
|
+
{"version":3,"file":"wu-helpers.d.ts","sourceRoot":"","sources":["../src/wu-helpers.ts"],"names":[],"mappings":";AAGA;;;;;;;GAOG;AAEH,OAAO,EAAY,KAAK,iCAAiC,EAAE,MAAM,oBAAoB,CAAC;AAQtF,OAAO,KAAK,EACV,uBAAuB,EACvB,aAAa,EACb,oBAAoB,EACrB,MAAM,6BAA6B,CAAC;AAErC,UAAU,YAAY;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,KAAK,sBAAsB,GAAG,IAAI,CAAC,aAAa,EAAE,kBAAkB,CAAC,CAAC;AACtE,KAAK,UAAU,GAAG,IAAI,CAAC,iCAAiC,EAAE,UAAU,CAAC,CAAC;AAGtE;;;;;;;;;;;;;GAaG;AACH,wBAAgB,kBAAkB,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAInD;AAED;;;;;GAKG;AACH,wBAAgB,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,GAAE,UAAe,GAAG,MAAM,CAM9D;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,kBAE/B;AAED;;;;GAIG;AACH,wBAAgB,aAAa,WAK5B;AAED;;;;GAIG;AACH,wBAAgB,cAAc,YAM7B;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,GAAG,IAAI,CAQpF;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,uBAAuB,CAuB7F;AAED;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,GAAG,IAAI,CAc5D;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAC3B,IAAI,EAAE,MAAM,EACZ,eAAe,GAAE,MAAM,EAA+B,GACrD,oBAAoB,CA6BtB;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAQzE;AAED;;;;;;;;GAQG;AACH,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,GAAG,IAAI,CAiB5F;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,YAAY,CAAC,GAAG,EAAE,sBAAsB,GAAG,OAAO,CAAC,IAAI,CAAC,CAgB7E;AAED,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC"}
|
package/dist/wu-helpers.js
CHANGED
|
@@ -13,7 +13,7 @@ import { execSync } from 'node:child_process';
|
|
|
13
13
|
import { existsSync, readFileSync } from 'node:fs';
|
|
14
14
|
import path from 'node:path';
|
|
15
15
|
import { parse } from 'yaml';
|
|
16
|
-
import { BRANCHES, DIRECTORIES,
|
|
16
|
+
import { BRANCHES, DIRECTORIES, STDIO, REAL_GIT, PATTERNS } from './wu-constants.js';
|
|
17
17
|
import { die, createError, ErrorCodes } from './error-handler.js';
|
|
18
18
|
import { isAgentBranchWithDetails } from './branch-check.js';
|
|
19
19
|
import { createWuPaths } from './wu-paths.js';
|
|
@@ -248,25 +248,5 @@ export async function ensureOnMain(git) {
|
|
|
248
248
|
throw createError(ErrorCodes.BRANCH_ERROR, `Run from shared checkout on '${BRANCHES.MAIN}' (found '${branch}')`);
|
|
249
249
|
}
|
|
250
250
|
}
|
|
251
|
-
|
|
252
|
-
* Ensure main branch is up to date with origin.
|
|
253
|
-
*
|
|
254
|
-
* Centralized from duplicated ensureMainUpToDate() functions across wu-* scripts (WU-1256).
|
|
255
|
-
*
|
|
256
|
-
* @param {object} git - Git adapter with async fetch() and getCommitHash() methods
|
|
257
|
-
* @param {string} [scriptName='wu'] - Script name for logging
|
|
258
|
-
* @param {object} [options] - Options
|
|
259
|
-
* @param {boolean} [options.skipRemote=false] - WU-1653: Skip remote check (requireRemote=false)
|
|
260
|
-
* @throws {Error} If main is out of sync with origin
|
|
261
|
-
*/
|
|
262
|
-
export async function ensureMainUpToDate(git, _scriptName = 'wu', { skipRemote = false } = {}) {
|
|
263
|
-
if (skipRemote)
|
|
264
|
-
return;
|
|
265
|
-
await git.fetch(REMOTES.ORIGIN, BRANCHES.MAIN);
|
|
266
|
-
const localMain = await git.getCommitHash(BRANCHES.MAIN);
|
|
267
|
-
const remoteMain = await git.getCommitHash(`${REMOTES.ORIGIN}/${BRANCHES.MAIN}`);
|
|
268
|
-
if (localMain !== remoteMain) {
|
|
269
|
-
throw createError(ErrorCodes.BRANCH_ERROR, `Main branch is out of sync with origin.\n\nRun: git pull ${REMOTES.ORIGIN} ${BRANCHES.MAIN}`);
|
|
270
|
-
}
|
|
271
|
-
}
|
|
251
|
+
export { ensureMainUpToDate } from './sync-validator.js';
|
|
272
252
|
//# sourceMappingURL=wu-helpers.js.map
|
package/dist/wu-helpers.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wu-helpers.js","sourceRoot":"","sources":["../src/wu-helpers.ts"],"names":[],"mappings":";AACA,iCAAiC;AACjC,yCAAyC;AACzC;;;;;;;GAOG;AAEH,OAAO,EAAE,QAAQ,EAA0C,MAAM,oBAAoB,CAAC;AACtF,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,KAAK,EAAE,MAAM,MAAM,CAAC;AAC7B,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,
|
|
1
|
+
{"version":3,"file":"wu-helpers.js","sourceRoot":"","sources":["../src/wu-helpers.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import type { IWuIdGitAdapter } from './ports/sync-validator.ports.js';
|
|
2
|
+
export type { IWuIdGitAdapter } from './ports/sync-validator.ports.js';
|
|
1
3
|
/** WU ID prefix constant */
|
|
2
4
|
export declare const WU_ID_PREFIX = "WU-";
|
|
3
5
|
/**
|
|
@@ -6,13 +8,34 @@ export declare const WU_ID_PREFIX = "WU-";
|
|
|
6
8
|
* Supports formats:
|
|
7
9
|
* - WU-123 (direct ID)
|
|
8
10
|
* - WU-123.yaml (filename)
|
|
11
|
+
* - WU-123.done (stamp filename)
|
|
9
12
|
*
|
|
10
13
|
* @param wuIdOrFilename - WU ID or filename to parse
|
|
11
14
|
* @returns Numeric ID or null if invalid format
|
|
12
15
|
*/
|
|
13
16
|
export declare function parseWuIdNumber(wuIdOrFilename: string): number | null;
|
|
14
17
|
/**
|
|
15
|
-
*
|
|
18
|
+
* Extract the highest WU ID number from a list of filenames.
|
|
19
|
+
*
|
|
20
|
+
* WU-2208: Utility function used by both local and remote scanning.
|
|
21
|
+
* Handles both .yaml and .done suffixes.
|
|
22
|
+
*
|
|
23
|
+
* @param entries - Array of filenames to scan
|
|
24
|
+
* @returns Highest WU ID number or 0 if none found
|
|
25
|
+
*/
|
|
26
|
+
export declare function extractHighestIdFromEntries(entries: string[]): number;
|
|
27
|
+
/**
|
|
28
|
+
* Extract the highest WU ID number from wu-events.jsonl content.
|
|
29
|
+
*
|
|
30
|
+
* WU-2208: Parses JSONL lines and extracts wuId fields.
|
|
31
|
+
* Malformed lines are silently skipped (events files may have corruption).
|
|
32
|
+
*
|
|
33
|
+
* @param eventsContent - Raw content of wu-events.jsonl
|
|
34
|
+
* @returns Highest WU ID number or 0 if none found
|
|
35
|
+
*/
|
|
36
|
+
export declare function getHighestWuIdFromEvents(eventsContent: string): number;
|
|
37
|
+
/**
|
|
38
|
+
* Get the highest WU ID number from the local WU directory.
|
|
16
39
|
*
|
|
17
40
|
* Scans all WU-*.yaml files and returns the highest numeric ID found.
|
|
18
41
|
* Returns 0 if directory doesn't exist or contains no valid WU files.
|
|
@@ -47,5 +70,76 @@ interface GenerateOptions {
|
|
|
47
70
|
* @throws Error if max retries exceeded
|
|
48
71
|
*/
|
|
49
72
|
export declare function generateWuIdWithRetry(options?: GenerateOptions): Promise<string>;
|
|
50
|
-
|
|
73
|
+
/** Options for push collision retry (WU-2209) */
|
|
74
|
+
export interface PushCollisionRetryOptions {
|
|
75
|
+
/** Git adapter for remote operations */
|
|
76
|
+
git: IWuIdGitAdapter;
|
|
77
|
+
/**
|
|
78
|
+
* Callback that performs the wu:create transaction for a given WU ID.
|
|
79
|
+
* Should throw on push failure.
|
|
80
|
+
*/
|
|
81
|
+
createFn: (wuId: string) => Promise<void>;
|
|
82
|
+
/** Maximum number of retries (default: 3) */
|
|
83
|
+
maxRetries?: number;
|
|
84
|
+
/** Base delay in ms for exponential backoff (default: 200) */
|
|
85
|
+
baseDelayMs?: number;
|
|
86
|
+
/** Git ref for remote state (default: 'origin/main') */
|
|
87
|
+
remoteRef?: string;
|
|
88
|
+
}
|
|
89
|
+
/** Result from push collision retry */
|
|
90
|
+
export interface PushCollisionRetryResult {
|
|
91
|
+
/** The WU ID that was successfully created */
|
|
92
|
+
wuId: string;
|
|
93
|
+
/** Number of attempts taken (1 = success on first try) */
|
|
94
|
+
attempts: number;
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Retry wu:create on push collision with fresh ID regeneration.
|
|
98
|
+
*
|
|
99
|
+
* WU-2209: Handles the TOCTOU race where two machines fetch simultaneously,
|
|
100
|
+
* both see the same highest ID, both generate the same next ID. On push
|
|
101
|
+
* failure (non-fast-forward / duplicate detected):
|
|
102
|
+
* 1. Fetch latest remote state
|
|
103
|
+
* 2. Regenerate ID from fresh scan
|
|
104
|
+
* 3. Rewrite YAML with new ID
|
|
105
|
+
* 4. Re-commit and re-push
|
|
106
|
+
*
|
|
107
|
+
* Non-push errors (e.g., YAML syntax errors) are re-thrown immediately
|
|
108
|
+
* without retry.
|
|
109
|
+
*
|
|
110
|
+
* @param options - Retry configuration
|
|
111
|
+
* @returns Result with the final WU ID and attempt count
|
|
112
|
+
* @throws Error if max retries exceeded or non-retryable error occurs
|
|
113
|
+
*/
|
|
114
|
+
export declare function retryCreateOnPushCollision(options: PushCollisionRetryOptions): Promise<PushCollisionRetryResult>;
|
|
115
|
+
/** Options for remote-aware ID generation */
|
|
116
|
+
export interface RemoteAwareIdOptions {
|
|
117
|
+
/** Git adapter for remote operations */
|
|
118
|
+
git: IWuIdGitAdapter;
|
|
119
|
+
/** Skip remote fetch and use local-only (default: false) */
|
|
120
|
+
offline?: boolean;
|
|
121
|
+
/** Git ref for remote state (default: 'origin/main') */
|
|
122
|
+
remoteRef?: string;
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* Get the highest WU ID considering both local and remote state.
|
|
126
|
+
*
|
|
127
|
+
* WU-2208: Scans 5 sources for the highest WU ID:
|
|
128
|
+
* 1. Local YAML directory (docs/04-operations/tasks/wu/)
|
|
129
|
+
* 2. Local stamps directory (.lumenflow/stamps/)
|
|
130
|
+
* 3. Remote YAML directory at ref (origin/main)
|
|
131
|
+
* 4. Remote stamps directory at ref (origin/main)
|
|
132
|
+
* 5. Remote wu-events.jsonl at ref (origin/main)
|
|
133
|
+
*
|
|
134
|
+
* When offline=true, only local sources (1, 2) are scanned and a warning
|
|
135
|
+
* is printed to stderr.
|
|
136
|
+
*
|
|
137
|
+
* When remote operations fail (network error, no remote), falls back to
|
|
138
|
+
* local-only with a warning. This ensures the function never blocks
|
|
139
|
+
* on transient network issues.
|
|
140
|
+
*
|
|
141
|
+
* @param options - Configuration including git adapter and offline flag
|
|
142
|
+
* @returns Highest WU ID number across all scanned sources
|
|
143
|
+
*/
|
|
144
|
+
export declare function getHighestWuIdRemoteAware(options: RemoteAwareIdOptions): Promise<number>;
|
|
51
145
|
//# sourceMappingURL=wu-id-generator.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wu-id-generator.d.ts","sourceRoot":"","sources":["../src/wu-id-generator.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"wu-id-generator.d.ts","sourceRoot":"","sources":["../src/wu-id-generator.ts"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAGvE,YAAY,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAEvE,4BAA4B;AAC5B,eAAO,MAAM,YAAY,QAAQ,CAAC;AAiBlC;;;;;;;;;;GAUG;AACH,wBAAgB,eAAe,CAAC,cAAc,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAqBrE;AAED;;;;;;;;GAQG;AACH,wBAAgB,2BAA2B,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,MAAM,CASrE;AAED;;;;;;;;GAQG;AACH,wBAAgB,wBAAwB,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,CAyBtE;AAED;;;;;;;GAOG;AACH,wBAAgB,cAAc,IAAI,MAAM,CASvC;AAqBD;;;;;;;GAOG;AACH,wBAAgB,WAAW,IAAI,MAAM,CAGpC;AAED,wCAAwC;AACxC,UAAU,eAAe;IACvB,oDAAoD;IACpD,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,qBAAqB,CAAC,OAAO,GAAE,eAAoB,GAAG,OAAO,CAAC,MAAM,CAAC,CAqB1F;AAqBD,iDAAiD;AACjD,MAAM,WAAW,yBAAyB;IACxC,wCAAwC;IACxC,GAAG,EAAE,eAAe,CAAC;IACrB;;;OAGG;IACH,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1C,6CAA6C;IAC7C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,8DAA8D;IAC9D,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,wDAAwD;IACxD,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,uCAAuC;AACvC,MAAM,WAAW,wBAAwB;IACvC,8CAA8C;IAC9C,IAAI,EAAE,MAAM,CAAC;IACb,0DAA0D;IAC1D,QAAQ,EAAE,MAAM,CAAC;CAClB;AAYD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAsB,0BAA0B,CAC9C,OAAO,EAAE,yBAAyB,GACjC,OAAO,CAAC,wBAAwB,CAAC,CA2DnC;AAED,6CAA6C;AAC7C,MAAM,WAAW,oBAAoB;IACnC,wCAAwC;IACxC,GAAG,EAAE,eAAe,CAAC;IACrB,4DAA4D;IAC5D,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,wDAAwD;IACxD,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAsB,yBAAyB,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,MAAM,CAAC,CAmD9F"}
|