@lumenflow/core 2.15.2 → 2.17.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/filesystem-metrics.adapter.d.ts.map +1 -1
- package/dist/adapters/filesystem-metrics.adapter.js +17 -16
- package/dist/adapters/filesystem-metrics.adapter.js.map +1 -1
- package/dist/adapters/mock-dashboard-renderer.adapter.d.ts +86 -0
- package/dist/adapters/mock-dashboard-renderer.adapter.d.ts.map +1 -0
- package/dist/adapters/mock-dashboard-renderer.adapter.js +105 -0
- package/dist/adapters/mock-dashboard-renderer.adapter.js.map +1 -0
- package/dist/adapters/terminal-renderer.adapter.d.ts.map +1 -1
- package/dist/adapters/terminal-renderer.adapter.js +0 -2
- package/dist/adapters/terminal-renderer.adapter.js.map +1 -1
- package/dist/arg-parser.d.ts.map +1 -1
- package/dist/arg-parser.js +4 -3
- package/dist/arg-parser.js.map +1 -1
- package/dist/backlog-editor.js +1 -1
- package/dist/backlog-editor.js.map +1 -1
- package/dist/backlog-generator.d.ts.map +1 -1
- package/dist/backlog-generator.js +48 -21
- package/dist/backlog-generator.js.map +1 -1
- package/dist/backlog-parser.d.ts.map +1 -1
- package/dist/backlog-parser.js +0 -1
- package/dist/backlog-parser.js.map +1 -1
- package/dist/backlog-sync-validator.d.ts.map +1 -1
- package/dist/backlog-sync-validator.js +5 -3
- package/dist/backlog-sync-validator.js.map +1 -1
- package/dist/branch-check.d.ts.map +1 -1
- package/dist/branch-check.js +1 -0
- package/dist/branch-check.js.map +1 -1
- package/dist/cli/is-agent-branch.d.ts +2 -1
- package/dist/cli/is-agent-branch.d.ts.map +1 -1
- package/dist/cli/is-agent-branch.js +8 -1
- package/dist/cli/is-agent-branch.js.map +1 -1
- package/dist/code-path-validator.d.ts.map +1 -1
- package/dist/code-path-validator.js +2 -1
- package/dist/code-path-validator.js.map +1 -1
- package/dist/code-paths-overlap.js +1 -1
- package/dist/code-paths-overlap.js.map +1 -1
- package/dist/commands-logger.js +1 -1
- package/dist/commands-logger.js.map +1 -1
- package/dist/context/location-resolver.js +1 -1
- package/dist/context/location-resolver.js.map +1 -1
- package/dist/context-validation-integration.d.ts +1 -1
- package/dist/context-validation-integration.d.ts.map +1 -1
- package/dist/context-validation-integration.js +3 -2
- package/dist/context-validation-integration.js.map +1 -1
- package/dist/core/tool-runner.js +1 -1
- package/dist/core/tool-runner.js.map +1 -1
- package/dist/core/tool.schemas.d.ts +3 -3
- package/dist/core/tool.schemas.d.ts.map +1 -1
- package/dist/core/tool.schemas.js +1 -1
- package/dist/core/tool.schemas.js.map +1 -1
- package/dist/dependency-graph.js +1 -1
- package/dist/dependency-graph.js.map +1 -1
- package/dist/dependency-guard.js +1 -1
- package/dist/dependency-guard.js.map +1 -1
- package/dist/domain/context.schemas.d.ts +3 -3
- package/dist/domain/orchestration.constants.d.ts.map +1 -1
- package/dist/domain/orchestration.constants.js +7 -6
- package/dist/domain/orchestration.constants.js.map +1 -1
- package/dist/domain/validation.schemas.d.ts +1 -1
- package/dist/error-handler.d.ts +26 -2
- package/dist/error-handler.d.ts.map +1 -1
- package/dist/error-handler.js +36 -3
- package/dist/error-handler.js.map +1 -1
- package/dist/force-bypass-audit.d.ts.map +1 -1
- package/dist/force-bypass-audit.js +2 -0
- package/dist/force-bypass-audit.js.map +1 -1
- package/dist/git-context-extractor.d.ts.map +1 -1
- package/dist/git-context-extractor.js +1 -0
- package/dist/git-context-extractor.js.map +1 -1
- package/dist/index.d.ts +5 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -1
- package/dist/index.js.map +1 -1
- package/dist/invariants/check-automated-tests.js +2 -2
- package/dist/invariants/check-automated-tests.js.map +1 -1
- package/dist/invariants-runner.d.ts.map +1 -1
- package/dist/invariants-runner.js +3 -0
- package/dist/invariants-runner.js.map +1 -1
- package/dist/lumenflow-config-schema.d.ts.map +1 -1
- package/dist/lumenflow-config-schema.js +2 -1
- package/dist/lumenflow-config-schema.js.map +1 -1
- package/dist/migration-deployer.d.ts +1 -1
- package/dist/migration-deployer.d.ts.map +1 -1
- package/dist/migration-deployer.js +1 -1
- package/dist/migration-deployer.js.map +1 -1
- package/dist/patrol-loop.d.ts.map +1 -1
- package/dist/patrol-loop.js +9 -1
- package/dist/patrol-loop.js.map +1 -1
- package/dist/piped-command-detector.d.ts.map +1 -1
- package/dist/piped-command-detector.js +1 -0
- package/dist/piped-command-detector.js.map +1 -1
- package/dist/ports/core-tools.ports.d.ts +32 -17
- package/dist/ports/core-tools.ports.d.ts.map +1 -1
- package/dist/ports/wu-helpers.ports.d.ts +2 -0
- package/dist/ports/wu-helpers.ports.d.ts.map +1 -1
- package/dist/prompt-linter.d.ts +5 -0
- package/dist/prompt-linter.d.ts.map +1 -1
- package/dist/prompt-linter.js +8 -2
- package/dist/prompt-linter.js.map +1 -1
- package/dist/prompt-monitor.d.ts +5 -1
- package/dist/prompt-monitor.d.ts.map +1 -1
- package/dist/prompt-monitor.js +16 -8
- package/dist/prompt-monitor.js.map +1 -1
- package/dist/rebase-artifact-cleanup.d.ts.map +1 -1
- package/dist/rebase-artifact-cleanup.js +1 -1
- package/dist/rebase-artifact-cleanup.js.map +1 -1
- package/dist/rollback-utils.d.ts.map +1 -1
- package/dist/rollback-utils.js +0 -1
- package/dist/rollback-utils.js.map +1 -1
- package/dist/schemas/initiative-arg-validators.d.ts +1 -1
- package/dist/schemas/initiative-schemas.d.ts +3 -3
- package/dist/spawn-recovery.js +1 -1
- package/dist/spawn-recovery.js.map +1 -1
- package/dist/stamp-status-validator.d.ts.map +1 -1
- package/dist/stamp-status-validator.js +2 -1
- package/dist/stamp-status-validator.js.map +1 -1
- package/dist/stamp-tracking.d.ts +12 -0
- package/dist/stamp-tracking.d.ts.map +1 -0
- package/dist/stamp-tracking.js +41 -0
- package/dist/stamp-tracking.js.map +1 -0
- package/dist/stamp-utils.d.ts.map +1 -1
- package/dist/stamp-utils.js +0 -1
- package/dist/stamp-utils.js.map +1 -1
- package/dist/state-doctor-core.d.ts.map +1 -1
- package/dist/state-doctor-core.js +10 -9
- package/dist/state-doctor-core.js.map +1 -1
- package/dist/system-map-validator.d.ts.map +1 -1
- package/dist/system-map-validator.js +7 -3
- package/dist/system-map-validator.js.map +1 -1
- package/dist/telemetry.d.ts.map +1 -1
- package/dist/telemetry.js +3 -1
- package/dist/telemetry.js.map +1 -1
- package/dist/template-loader.d.ts.map +1 -1
- package/dist/template-loader.js +1 -0
- package/dist/template-loader.js.map +1 -1
- package/dist/token-counter.js +2 -6
- package/dist/token-counter.js.map +1 -1
- package/dist/usecases/compute-context.usecase.d.ts.map +1 -1
- package/dist/usecases/compute-context.usecase.js +2 -1
- package/dist/usecases/compute-context.usecase.js.map +1 -1
- package/dist/validators/wu-tasks.js +2 -2
- package/dist/validators/wu-tasks.js.map +1 -1
- package/dist/wu-backlog-updater.d.ts +1 -1
- package/dist/wu-backlog-updater.d.ts.map +1 -1
- package/dist/wu-backlog-updater.js +1 -1
- package/dist/wu-backlog-updater.js.map +1 -1
- package/dist/wu-claim-resume.d.ts.map +1 -1
- package/dist/wu-claim-resume.js +0 -1
- package/dist/wu-claim-resume.js.map +1 -1
- package/dist/wu-cli-constants.d.ts +426 -0
- package/dist/wu-cli-constants.d.ts.map +1 -0
- package/dist/wu-cli-constants.js +429 -0
- package/dist/wu-cli-constants.js.map +1 -0
- package/dist/wu-consistency-checker.d.ts +5 -1
- package/dist/wu-consistency-checker.d.ts.map +1 -1
- package/dist/wu-consistency-checker.js +133 -25
- package/dist/wu-consistency-checker.js.map +1 -1
- package/dist/wu-constants.d.ts +21 -1834
- package/dist/wu-constants.d.ts.map +1 -1
- package/dist/wu-constants.js +28 -1951
- package/dist/wu-constants.js.map +1 -1
- package/dist/wu-context-constants.d.ts +264 -0
- package/dist/wu-context-constants.d.ts.map +1 -0
- package/dist/wu-context-constants.js +259 -0
- package/dist/wu-context-constants.js.map +1 -0
- package/dist/wu-domain-constants.d.ts +305 -0
- package/dist/wu-domain-constants.d.ts.map +1 -0
- package/dist/wu-domain-constants.js +401 -0
- package/dist/wu-domain-constants.js.map +1 -0
- package/dist/wu-done-branch-only.d.ts.map +1 -1
- package/dist/wu-done-branch-only.js +2 -2
- package/dist/wu-done-branch-only.js.map +1 -1
- package/dist/wu-done-concurrent-merge.d.ts.map +1 -1
- package/dist/wu-done-concurrent-merge.js +12 -12
- package/dist/wu-done-concurrent-merge.js.map +1 -1
- package/dist/wu-done-docs-generate.d.ts.map +1 -1
- package/dist/wu-done-docs-generate.js +1 -0
- package/dist/wu-done-docs-generate.js.map +1 -1
- package/dist/wu-done-initiative-sync.d.ts +13 -0
- package/dist/wu-done-initiative-sync.d.ts.map +1 -0
- package/dist/wu-done-initiative-sync.js +218 -0
- package/dist/wu-done-initiative-sync.js.map +1 -0
- package/dist/wu-done-inputs.d.ts.map +1 -1
- package/dist/wu-done-inputs.js +2 -2
- package/dist/wu-done-inputs.js.map +1 -1
- package/dist/wu-done-messages.d.ts +1 -1
- package/dist/wu-done-messages.d.ts.map +1 -1
- package/dist/wu-done-messages.js +2 -2
- package/dist/wu-done-messages.js.map +1 -1
- package/dist/wu-done-metadata.d.ts +6 -2
- package/dist/wu-done-metadata.d.ts.map +1 -1
- package/dist/wu-done-metadata.js +31 -7
- package/dist/wu-done-metadata.js.map +1 -1
- package/dist/wu-done-pr.d.ts.map +1 -1
- package/dist/wu-done-pr.js +2 -1
- package/dist/wu-done-pr.js.map +1 -1
- package/dist/wu-done-validation.d.ts +3 -1
- package/dist/wu-done-validation.d.ts.map +1 -1
- package/dist/wu-done-validation.js +81 -13
- package/dist/wu-done-validation.js.map +1 -1
- package/dist/wu-done-worktree.d.ts +54 -0
- package/dist/wu-done-worktree.d.ts.map +1 -1
- package/dist/wu-done-worktree.js +166 -44
- package/dist/wu-done-worktree.js.map +1 -1
- package/dist/wu-events-cleanup.d.ts.map +1 -1
- package/dist/wu-events-cleanup.js +3 -2
- package/dist/wu-events-cleanup.js.map +1 -1
- package/dist/wu-git-constants.d.ts +172 -0
- package/dist/wu-git-constants.d.ts.map +1 -0
- package/dist/wu-git-constants.js +172 -0
- package/dist/wu-git-constants.js.map +1 -0
- package/dist/wu-helpers.js +1 -1
- package/dist/wu-helpers.js.map +1 -1
- package/dist/wu-lint.d.ts.map +1 -1
- package/dist/wu-lint.js +8 -1
- package/dist/wu-lint.js.map +1 -1
- package/dist/wu-list.d.ts.map +1 -1
- package/dist/wu-list.js +3 -2
- package/dist/wu-list.js.map +1 -1
- package/dist/wu-paths-constants.d.ts +311 -0
- package/dist/wu-paths-constants.d.ts.map +1 -0
- package/dist/wu-paths-constants.js +308 -0
- package/dist/wu-paths-constants.js.map +1 -0
- package/dist/wu-paths.d.ts +12 -0
- package/dist/wu-paths.d.ts.map +1 -1
- package/dist/wu-paths.js +7 -1
- package/dist/wu-paths.js.map +1 -1
- package/dist/wu-recovery.d.ts.map +1 -1
- package/dist/wu-recovery.js +2 -2
- package/dist/wu-recovery.js.map +1 -1
- package/dist/wu-repair-core.d.ts +1 -0
- package/dist/wu-repair-core.d.ts.map +1 -1
- package/dist/wu-repair-core.js +7 -3
- package/dist/wu-repair-core.js.map +1 -1
- package/dist/wu-schema.d.ts.map +1 -1
- package/dist/wu-schema.js +2 -2
- package/dist/wu-schema.js.map +1 -1
- package/dist/wu-spawn-helpers.d.ts.map +1 -1
- package/dist/wu-spawn-helpers.js +3 -2
- package/dist/wu-spawn-helpers.js.map +1 -1
- package/dist/wu-spawn.js +5 -5
- package/dist/wu-spawn.js.map +1 -1
- package/dist/wu-state-store.d.ts.map +1 -1
- package/dist/wu-state-store.js +20 -19
- package/dist/wu-state-store.js.map +1 -1
- package/dist/wu-status-transition.d.ts.map +1 -1
- package/dist/wu-status-transition.js +3 -26
- package/dist/wu-status-transition.js.map +1 -1
- package/dist/wu-status-updater.js +1 -1
- package/dist/wu-status-updater.js.map +1 -1
- package/dist/wu-statuses.d.ts +134 -0
- package/dist/wu-statuses.d.ts.map +1 -0
- package/dist/wu-statuses.js +149 -0
- package/dist/wu-statuses.js.map +1 -0
- package/dist/wu-transaction-collectors.d.ts.map +1 -1
- package/dist/wu-transaction-collectors.js +6 -3
- package/dist/wu-transaction-collectors.js.map +1 -1
- package/dist/wu-transaction.d.ts.map +1 -1
- package/dist/wu-transaction.js +1 -1
- package/dist/wu-transaction.js.map +1 -1
- package/dist/wu-ui-constants.d.ts +235 -0
- package/dist/wu-ui-constants.d.ts.map +1 -0
- package/dist/wu-ui-constants.js +235 -0
- package/dist/wu-ui-constants.js.map +1 -0
- package/dist/wu-validator.d.ts.map +1 -1
- package/dist/wu-validator.js +2 -1
- package/dist/wu-validator.js.map +1 -1
- package/dist/wu-yaml.js +1 -1
- package/dist/wu-yaml.js.map +1 -1
- package/package.json +80 -4
|
@@ -6,11 +6,13 @@ import { existsSync, readFileSync } from 'node:fs';
|
|
|
6
6
|
import { getGitForCwd } from './git-adapter.js';
|
|
7
7
|
import { parseYAML } from './wu-yaml.js';
|
|
8
8
|
import { die } from './error-handler.js';
|
|
9
|
-
import { BRANCHES, EMOJI, FILE_SYSTEM, GIT_COMMANDS, LOG_PREFIX, STRING_LITERALS, TEST_TYPES, VALIDATION, WU_TYPES, } from './wu-constants.js';
|
|
9
|
+
import { BRANCHES, DIRECTORIES, EMOJI, FILE_SYSTEM, GIT_COMMANDS, LUMENFLOW_PATHS, LOG_PREFIX, STRING_LITERALS, TEST_TYPES, VALIDATION, WU_TYPES, WU_STATUS, } from './wu-constants.js';
|
|
10
|
+
import { WU_PATHS } from './wu-paths.js';
|
|
10
11
|
import { PLACEHOLDER_SENTINEL } from './wu-schema.js';
|
|
11
12
|
import { resolveExposureDefault } from './wu-validation.js';
|
|
12
13
|
import { validateAutomatedTestRequirement } from './manual-test-validator.js';
|
|
13
14
|
import { isDocumentationPath } from './file-classifiers.js';
|
|
15
|
+
import { normalizeToDateString } from './date-utils.js';
|
|
14
16
|
export function applyExposureDefaults(doc) {
|
|
15
17
|
if (!doc || typeof doc !== 'object') {
|
|
16
18
|
return { applied: false };
|
|
@@ -154,6 +156,40 @@ export function validateSpecCompleteness(doc, _id) {
|
|
|
154
156
|
}
|
|
155
157
|
return { valid: errors.length === 0, errors };
|
|
156
158
|
}
|
|
159
|
+
function deriveStatusFromEventsContent(eventsContent, wuId) {
|
|
160
|
+
let status;
|
|
161
|
+
for (const line of eventsContent.split('\n')) {
|
|
162
|
+
if (!line.trim())
|
|
163
|
+
continue;
|
|
164
|
+
try {
|
|
165
|
+
const event = JSON.parse(line);
|
|
166
|
+
if (event.wuId !== wuId || !event.type)
|
|
167
|
+
continue;
|
|
168
|
+
switch (event.type) {
|
|
169
|
+
case 'claim':
|
|
170
|
+
case 'create':
|
|
171
|
+
status = WU_STATUS.IN_PROGRESS;
|
|
172
|
+
break;
|
|
173
|
+
case 'release':
|
|
174
|
+
status = WU_STATUS.READY;
|
|
175
|
+
break;
|
|
176
|
+
case 'complete':
|
|
177
|
+
status = WU_STATUS.DONE;
|
|
178
|
+
break;
|
|
179
|
+
case 'block':
|
|
180
|
+
status = WU_STATUS.BLOCKED;
|
|
181
|
+
break;
|
|
182
|
+
case 'unblock':
|
|
183
|
+
status = WU_STATUS.IN_PROGRESS;
|
|
184
|
+
break;
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
catch {
|
|
188
|
+
// Ignore malformed lines; other guards handle structural integrity.
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
return status;
|
|
192
|
+
}
|
|
157
193
|
/**
|
|
158
194
|
* WU-1617: Post-mutation validation for wu:done
|
|
159
195
|
*
|
|
@@ -161,8 +197,9 @@ export function validateSpecCompleteness(doc, _id) {
|
|
|
161
197
|
* 1. WU YAML has completed_at field with valid ISO datetime
|
|
162
198
|
* 2. WU YAML has locked: true
|
|
163
199
|
* 3. Stamp file exists
|
|
200
|
+
* 4. State store derives to done (when eventsPath is provided)
|
|
164
201
|
*/
|
|
165
|
-
export function validatePostMutation({ id, wuPath, stampPath }) {
|
|
202
|
+
export function validatePostMutation({ id, wuPath, stampPath, eventsPath = null }) {
|
|
166
203
|
const errors = [];
|
|
167
204
|
// Check stamp file exists
|
|
168
205
|
if (!existsSync(stampPath)) {
|
|
@@ -187,18 +224,50 @@ export function validatePostMutation({ id, wuPath, stampPath }) {
|
|
|
187
224
|
errors.push(`Invalid completed_at timestamp: ${doc.completed_at}`);
|
|
188
225
|
}
|
|
189
226
|
}
|
|
227
|
+
// Keep legacy completion date normalized for downstream tools.
|
|
228
|
+
if (!doc.completed) {
|
|
229
|
+
errors.push(`Missing required field 'completed' in ${id}.yaml`);
|
|
230
|
+
}
|
|
231
|
+
else {
|
|
232
|
+
const normalizedCompleted = normalizeToDateString(doc.completed);
|
|
233
|
+
if (!normalizedCompleted) {
|
|
234
|
+
errors.push(`Invalid completed date: ${doc.completed}`);
|
|
235
|
+
}
|
|
236
|
+
else if (normalizedCompleted !== doc.completed) {
|
|
237
|
+
errors.push(`Non-normalized completed date: ${doc.completed}`);
|
|
238
|
+
}
|
|
239
|
+
}
|
|
190
240
|
// Verify locked is true
|
|
191
241
|
if (doc.locked !== true) {
|
|
192
242
|
errors.push(`Missing or invalid 'locked' field in ${id}.yaml (expected: true, got: ${doc.locked})`);
|
|
193
243
|
}
|
|
194
244
|
// Verify status is done
|
|
195
|
-
if (doc.status !==
|
|
196
|
-
errors.push(`Invalid status in ${id}.yaml (expected: '
|
|
245
|
+
if (doc.status !== WU_STATUS.DONE) {
|
|
246
|
+
errors.push(`Invalid status in ${id}.yaml (expected: '${WU_STATUS.DONE}', got: '${doc.status}')`);
|
|
197
247
|
}
|
|
198
248
|
}
|
|
199
249
|
catch (err) {
|
|
200
250
|
errors.push(`Failed to parse WU YAML after mutation: ${err.message}`);
|
|
201
251
|
}
|
|
252
|
+
if (eventsPath) {
|
|
253
|
+
if (!existsSync(eventsPath)) {
|
|
254
|
+
errors.push(`State store file not found after mutation: ${eventsPath}`);
|
|
255
|
+
}
|
|
256
|
+
else {
|
|
257
|
+
try {
|
|
258
|
+
const eventsContent = readFileSync(eventsPath, {
|
|
259
|
+
encoding: FILE_SYSTEM.ENCODING,
|
|
260
|
+
});
|
|
261
|
+
const derivedStatus = deriveStatusFromEventsContent(eventsContent, id);
|
|
262
|
+
if (derivedStatus !== WU_STATUS.DONE) {
|
|
263
|
+
errors.push(`WU ${id} state store is '${derivedStatus ?? 'missing'}' after mutation (expected: '${WU_STATUS.DONE}')`);
|
|
264
|
+
}
|
|
265
|
+
}
|
|
266
|
+
catch (err) {
|
|
267
|
+
errors.push(`Failed to parse state store after mutation: ${err.message}`);
|
|
268
|
+
}
|
|
269
|
+
}
|
|
270
|
+
}
|
|
202
271
|
return { valid: errors.length === 0, errors };
|
|
203
272
|
}
|
|
204
273
|
/**
|
|
@@ -451,12 +520,12 @@ Context: WU-1153 prevents lost work from metadata rollbacks
|
|
|
451
520
|
* itself may create or modify during the completion workflow.
|
|
452
521
|
*/
|
|
453
522
|
export const METADATA_ALLOWLIST_PATTERNS = [
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
523
|
+
DIRECTORIES.STATUS_PATH,
|
|
524
|
+
DIRECTORIES.BACKLOG_PATH,
|
|
525
|
+
LUMENFLOW_PATHS.WU_EVENTS,
|
|
526
|
+
LUMENFLOW_PATHS.FLOW_LOG,
|
|
527
|
+
LUMENFLOW_PATHS.SKIP_GATES_AUDIT,
|
|
528
|
+
LUMENFLOW_PATHS.SKIP_COS_GATES_AUDIT,
|
|
460
529
|
// WU YAML and stamps are matched dynamically by WU ID (see isMetadataAllowlisted)
|
|
461
530
|
];
|
|
462
531
|
/**
|
|
@@ -476,12 +545,11 @@ function isMetadataAllowlisted(filePath, wuId) {
|
|
|
476
545
|
return true;
|
|
477
546
|
}
|
|
478
547
|
// Dynamic WU-specific patterns
|
|
479
|
-
|
|
480
|
-
if (filePath === wuYamlPattern) {
|
|
548
|
+
if (filePath === WU_PATHS.WU(wuId)) {
|
|
481
549
|
return true;
|
|
482
550
|
}
|
|
483
551
|
// Stamps directory (any stamp file is allowed during wu:done)
|
|
484
|
-
if (filePath.startsWith(
|
|
552
|
+
if (filePath.startsWith(`${LUMENFLOW_PATHS.STAMPS_DIR}/`)) {
|
|
485
553
|
return true;
|
|
486
554
|
}
|
|
487
555
|
return false;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wu-done-validation.js","sourceRoot":"","sources":["../src/wu-done-validation.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"wu-done-validation.js","sourceRoot":"","sources":["../src/wu-done-validation.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,GAAG,EAAE,MAAM,oBAAoB,CAAC;AACzC,OAAO,EACL,QAAQ,EACR,WAAW,EACX,KAAK,EACL,WAAW,EACX,YAAY,EACZ,eAAe,EACf,UAAU,EACV,eAAe,EACf,UAAU,EACV,UAAU,EACV,QAAQ,EACR,SAAS,GACV,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AACtD,OAAO,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAC5D,OAAO,EAAE,gCAAgC,EAAE,MAAM,4BAA4B,CAAC;AAC9E,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAOxD,MAAM,UAAU,qBAAqB,CAAC,GAAG;IACvC,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;QACpC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IAC5B,CAAC;IAED,IAAI,OAAO,GAAG,CAAC,QAAQ,KAAK,QAAQ,IAAI,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,CAAC,QAAQ,EAAE,CAAC;IACpD,CAAC;IAED,MAAM,eAAe,GAAG,sBAAsB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACzD,IAAI,CAAC,eAAe,EAAE,CAAC;QACrB,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IAC5B,CAAC;IAED,GAAG,CAAC,QAAQ,GAAG,eAAe,CAAC;IAC/B,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,eAAe,EAAE,CAAC;AACtD,CAAC;AAmBD,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAAC,GAAG,EAAE,EAAE,EAAE,UAAyC,EAAE;IAC/F,MAAM,EAAE,YAAY,GAAG,QAAQ,CAAC,IAAI,EAAE,YAAY,GAAG,IAAI,EAAE,GAAG,OAAO,CAAC;IACtE,MAAM,MAAM,GAAG,EAAE,CAAC;IAClB,MAAM,OAAO,GAAG,EAAE,CAAC;IACnB,MAAM,SAAS,GAAG,GAAG,CAAC,UAAU,IAAI,EAAE,CAAC;IAEvC,sEAAsE;IACtE,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC3B,OAAO,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,IAAI,IAAI,KAAK,CAAC,IAAI,kCAAkC,EAAE,EAAE,CAAC,CAAC;QACpF,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;IAClD,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,IAAI,eAAe,SAAS,CAAC,MAAM,sBAAsB,CAAC,CAAC;IAErF,wEAAwE;IACxE,oFAAoF;IACpF,IAAI,YAAY,IAAI,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;QAC7C,kDAAkD;QAClD,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;YACjC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;YACnD,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC1B,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACzB,CAAC;QACH,CAAC;QAED,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvB,MAAM,CAAC,IAAI,CACT,kCAAkC,OAAO,CAAC,MAAM,oCAAoC,OAAO;iBACxF,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;iBACtB,IAAI,CACH,eAAe,CAAC,OAAO,CACxB,yEAAyE,CAC7E,CAAC;QACJ,CAAC;IACH,CAAC;SAAM,CAAC;QACN,6EAA6E;QAC7E,IAAI,CAAC;YACH,MAAM,UAAU,GAAG,YAAY,EAAE,CAAC;YAElC,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;gBACjC,IAAI,CAAC;oBACH,mDAAmD;oBACnD,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,GAAG,CAAC,CAAC,YAAY,CAAC,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC;oBAE1F,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;wBACpC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;oBACzB,CAAC;gBACH,CAAC;gBAAC,MAAM,CAAC;oBACP,2CAA2C;oBAC3C,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACzB,CAAC;YACH,CAAC;YAED,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACvB,MAAM,CAAC,IAAI,CACT,kCAAkC,OAAO,CAAC,MAAM,yBAAyB,YAAY,MAAM,OAAO;qBAC/F,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;qBACtB,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,+CAA+C;oBAC7E,4DAA4D,YAAY,KAAK;oBAC7E,yDAAyD;oBACzD,gBAAgB;oBAChB,mDAAmD,YAAY,IAAI;oBACnE,6BAA6B,EAAE,+BAA+B;oBAC9D,2DAA2D;oBAC3D,0EAA0E,CAC7E,CAAC;YACJ,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,uDAAuD;YACvD,OAAO,CAAC,IAAI,CACV,GAAG,UAAU,CAAC,IAAI,IAAI,KAAK,CAAC,OAAO,mCAAmC,GAAG,CAAC,OAAO,EAAE,CACpF,CAAC;YACF,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;QAClD,CAAC;IACH,CAAC;IAED,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtB,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;IAC3C,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,IAAI,IAAI,KAAK,CAAC,OAAO,QAAQ,SAAS,CAAC,MAAM,sBAAsB,CAAC,CAAC;IAC/F,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;AAClD,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,wBAAwB,CAAC,GAAG,EAAE,GAAG;IAC/C,MAAM,MAAM,GAAG,EAAE,CAAC;IAElB,4CAA4C;IAC5C,IAAI,GAAG,CAAC,WAAW,IAAI,GAAG,CAAC,WAAW,CAAC,QAAQ,CAAC,oBAAoB,CAAC,EAAE,CAAC;QACtE,MAAM,CAAC,IAAI,CAAC,wBAAwB,oBAAoB,SAAS,CAAC,CAAC;IACrE,CAAC;IAED,+DAA+D;IAC/D,IAAI,GAAG,CAAC,UAAU,EAAE,CAAC;QACnB,MAAM,cAAc,GAAG,CAAC,KAAK,EAAE,EAAE;YAC/B,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;gBAC9B,OAAO,KAAK,CAAC,QAAQ,CAAC,oBAAoB,CAAC,CAAC;YAC9C,CAAC;YACD,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;gBACzB,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC;YACpD,CAAC;YACD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;gBAChD,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC;YACnE,CAAC;YACD,OAAO,KAAK,CAAC;QACf,CAAC,CAAC;QAEF,IAAI,cAAc,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC;YACnC,MAAM,CAAC,IAAI,CAAC,+BAA+B,oBAAoB,UAAU,CAAC,CAAC;QAC7E,CAAC;IACH,CAAC;IAED,mCAAmC;IACnC,IAAI,CAAC,GAAG,CAAC,WAAW,IAAI,GAAG,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,UAAU,CAAC,sBAAsB,EAAE,CAAC;QAC1F,MAAM,CAAC,IAAI,CACT,0BAA0B,GAAG,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC,MAAM,IAAI,CAAC,mBAAmB,UAAU,CAAC,sBAAsB,GAAG,CACrH,CAAC;IACJ,CAAC;IAED,6CAA6C;IAC7C,IAAI,GAAG,CAAC,IAAI,KAAK,QAAQ,CAAC,aAAa,IAAI,GAAG,CAAC,IAAI,KAAK,QAAQ,CAAC,OAAO,EAAE,CAAC;QACzE,IAAI,CAAC,GAAG,CAAC,UAAU,IAAI,GAAG,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACnD,MAAM,CAAC,IAAI,CAAC,+CAA+C,CAAC,CAAC;QAC/D,CAAC;QAED,uDAAuD;QACvD,yDAAyD;QACzD,MAAM,OAAO,GAAG,GAAG,CAAC,KAAK,IAAI,GAAG,CAAC,UAAU,IAAI,EAAE,CAAC;QAElD,qCAAqC;QACrC,MAAM,QAAQ,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC;QAE/D,MAAM,YAAY,GAAG,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;QACxD,MAAM,WAAW,GAAG,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;QACtD,MAAM,cAAc,GAAG,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC;QAC5D,MAAM,mBAAmB,GAAG,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC;QAEtE,IAAI,CAAC,CAAC,YAAY,IAAI,WAAW,IAAI,cAAc,IAAI,mBAAmB,CAAC,EAAE,CAAC;YAC5E,MAAM,CAAC,IAAI,CAAC,qEAAqE,CAAC,CAAC;QACrF,CAAC;QAED,yDAAyD;QACzD,iFAAiF;QACjF,MAAM,mBAAmB,GAAG,gCAAgC,CAAC,GAAG,CAAC,CAAC;QAClE,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,CAAC;YAC/B,MAAM,CAAC,IAAI,CAAC,GAAG,mBAAmB,CAAC,MAAM,CAAC,CAAC;QAC7C,CAAC;IACH,CAAC;IAED,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;AAChD,CAAC;AAED,SAAS,6BAA6B,CACpC,aAAqB,EACrB,IAAY;IAEZ,IAAI,MAA8D,CAAC;IAEnE,KAAK,MAAM,IAAI,IAAI,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;QAC7C,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;YAAE,SAAS;QAC3B,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAqC,CAAC;YACnE,IAAI,KAAK,CAAC,IAAI,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI;gBAAE,SAAS;YAEjD,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;gBACnB,KAAK,OAAO,CAAC;gBACb,KAAK,QAAQ;oBACX,MAAM,GAAG,SAAS,CAAC,WAAW,CAAC;oBAC/B,MAAM;gBACR,KAAK,SAAS;oBACZ,MAAM,GAAG,SAAS,CAAC,KAAK,CAAC;oBACzB,MAAM;gBACR,KAAK,UAAU;oBACb,MAAM,GAAG,SAAS,CAAC,IAAI,CAAC;oBACxB,MAAM;gBACR,KAAK,OAAO;oBACV,MAAM,GAAG,SAAS,CAAC,OAAO,CAAC;oBAC3B,MAAM;gBACR,KAAK,SAAS;oBACZ,MAAM,GAAG,SAAS,CAAC,WAAW,CAAC;oBAC/B,MAAM;YACV,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,oEAAoE;QACtE,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,oBAAoB,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,UAAU,GAAG,IAAI,EAAE;IAC/E,MAAM,MAAM,GAAG,EAAE,CAAC;IAElB,0BAA0B;IAC1B,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QAC3B,MAAM,CAAC,IAAI,CAAC,2BAA2B,SAAS,EAAE,CAAC,CAAC;IACtD,CAAC;IAED,2CAA2C;IAC3C,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;QACxB,MAAM,CAAC,IAAI,CAAC,qCAAqC,MAAM,EAAE,CAAC,CAAC;QAC3D,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;IAClC,CAAC;IAED,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,YAAY,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,WAAW,CAAC,QAA0B,EAAE,CAAC,CAAC;QAC3F,MAAM,GAAG,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC;QAE/B,uDAAuD;QACvD,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;YACtB,MAAM,CAAC,IAAI,CAAC,4CAA4C,EAAE,OAAO,CAAC,CAAC;QACrE,CAAC;aAAM,CAAC;YACN,qEAAqE;YACrE,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;YAC7C,IAAI,KAAK,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC;gBAC/B,MAAM,CAAC,IAAI,CAAC,mCAAmC,GAAG,CAAC,YAAY,EAAE,CAAC,CAAC;YACrE,CAAC;QACH,CAAC;QAED,+DAA+D;QAC/D,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC;YACnB,MAAM,CAAC,IAAI,CAAC,yCAAyC,EAAE,OAAO,CAAC,CAAC;QAClE,CAAC;aAAM,CAAC;YACN,MAAM,mBAAmB,GAAG,qBAAqB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YACjE,IAAI,CAAC,mBAAmB,EAAE,CAAC;gBACzB,MAAM,CAAC,IAAI,CAAC,2BAA2B,GAAG,CAAC,SAAS,EAAE,CAAC,CAAC;YAC1D,CAAC;iBAAM,IAAI,mBAAmB,KAAK,GAAG,CAAC,SAAS,EAAE,CAAC;gBACjD,MAAM,CAAC,IAAI,CAAC,kCAAkC,GAAG,CAAC,SAAS,EAAE,CAAC,CAAC;YACjE,CAAC;QACH,CAAC;QAED,wBAAwB;QACxB,IAAI,GAAG,CAAC,MAAM,KAAK,IAAI,EAAE,CAAC;YACxB,MAAM,CAAC,IAAI,CACT,wCAAwC,EAAE,+BAA+B,GAAG,CAAC,MAAM,GAAG,CACvF,CAAC;QACJ,CAAC;QAED,wBAAwB;QACxB,IAAI,GAAG,CAAC,MAAM,KAAK,SAAS,CAAC,IAAI,EAAE,CAAC;YAClC,MAAM,CAAC,IAAI,CACT,qBAAqB,EAAE,qBAAqB,SAAS,CAAC,IAAI,YAAY,GAAG,CAAC,MAAM,IAAI,CACrF,CAAC;QACJ,CAAC;IACH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,CAAC,IAAI,CAAC,2CAA2C,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;IACxE,CAAC;IAED,IAAI,UAAU,EAAE,CAAC;QACf,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YAC5B,MAAM,CAAC,IAAI,CAAC,8CAA8C,UAAU,EAAE,CAAC,CAAC;QAC1E,CAAC;aAAM,CAAC;YACN,IAAI,CAAC;gBACH,MAAM,aAAa,GAAG,YAAY,CAAC,UAAU,EAAE;oBAC7C,QAAQ,EAAE,WAAW,CAAC,QAA0B;iBACjD,CAAC,CAAC;gBACH,MAAM,aAAa,GAAG,6BAA6B,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC;gBACvE,IAAI,aAAa,KAAK,SAAS,CAAC,IAAI,EAAE,CAAC;oBACrC,MAAM,CAAC,IAAI,CACT,MAAM,EAAE,oBAAoB,aAAa,IAAI,SAAS,gCAAgC,SAAS,CAAC,IAAI,IAAI,CACzG,CAAC;gBACJ,CAAC;YACH,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,CAAC,IAAI,CAAC,+CAA+C,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;YAC5E,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;AAChD,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,yBAAyB,CAAC,EAAE;IAC1C,oDAAoD;IACpD,IAAI,EAAE,CAAC,IAAI,KAAK,QAAQ,CAAC,aAAa,IAAI,EAAE,CAAC,IAAI,KAAK,QAAQ,CAAC,OAAO,EAAE,CAAC;QACvE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;IACzB,CAAC;IAED,2CAA2C;IAC3C,MAAM,SAAS,GAAG,EAAE,CAAC,UAAU,IAAI,EAAE,CAAC;IACtC,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC3B,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;IACzB,CAAC;IAED,iDAAiD;IACjD,MAAM,cAAc,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC;IACtE,IAAI,CAAC,cAAc,EAAE,CAAC;QACpB,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;IACzB,CAAC;IAED,yDAAyD;IACzD,MAAM,OAAO,GAAG,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC;IAE/B,qCAAqC;IACrC,MAAM,QAAQ,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC;IAE/D,MAAM,YAAY,GAAG,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;IACxD,MAAM,WAAW,GAAG,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;IACtD,MAAM,cAAc,GAAG,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC;IAC5D,MAAM,mBAAmB,GAAG,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC;IAEtE,yBAAyB;IACzB,IAAI,CAAC,CAAC,YAAY,IAAI,WAAW,IAAI,cAAc,IAAI,mBAAmB,CAAC,EAAE,CAAC;QAC5E,OAAO;YACL,KAAK,EAAE,KAAK;YACZ,KAAK,EAAE,GAAG,EAAE,CAAC,EAAE,8GAA8G;SAC9H,CAAC;IACJ,CAAC;IAED,kFAAkF;IAClF,wDAAwD;IACxD,MAAM,mBAAmB,GAAG,gCAAgC,CAAC,EAAE,CAAC,CAAC;IACjE,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,CAAC;QAC/B,4EAA4E;QAC5E,MAAM,YAAY,GAChB,mBAAmB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,0BAA0B,CAAC;QAC9E,OAAO;YACL,KAAK,EAAE,KAAK;YACZ,KAAK,EAAE,GAAG,EAAE,CAAC,EAAE,KAAK,YAAY,EAAE;SACnC,CAAC;IACJ,CAAC;IAED,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AACzB,CAAC;AAED;;;;;;GAMG;AACH,MAAM,0BAA0B,GAAG;IACjC,iBAAiB;IACjB,UAAU;IACV,QAAQ;IACR,yBAAyB;IACzB,cAAc;IACd,QAAQ;IACR,eAAe;IACf,eAAe;CAChB,CAAC;AAEF;;;;;GAKG;AACH,SAAS,iBAAiB,CAAC,QAAQ;IACjC,IAAI,CAAC,QAAQ,IAAI,OAAO,QAAQ,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC5D,OAAO,0BAA0B,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;AAC9E,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gCAAgC,CAAC,EAAE;IACjD,MAAM,MAAM,GAAG,EAAE,CAAC;IAClB,MAAM,YAAY,GAAG,EAAE,CAAC;IAExB,kCAAkC;IAClC,IAAI,EAAE,CAAC,IAAI,KAAK,QAAQ,CAAC,aAAa,EAAE,CAAC;QACvC,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE,wBAAwB,EAAE,KAAK,EAAE,CAAC;IACxF,CAAC;IAED,wBAAwB;IACxB,MAAM,SAAS,GAAG,EAAE,CAAC,UAAU,CAAC;IAChC,IAAI,CAAC,SAAS,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE,wBAAwB,EAAE,KAAK,EAAE,CAAC;IACxF,CAAC;IAED,gDAAgD;IAChD,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;QACjC,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,EAAE,CAAC;YACjC,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC;IAED,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC5B,MAAM,SAAS,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjE,MAAM,CAAC,IAAI,CACT,oBAAoB,EAAE,CAAC,EAAE,qDAAqD,SAAS,EAAE,CAC1F,CAAC;QACF,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,wBAAwB,EAAE,IAAI,EAAE,CAAC;IAChF,CAAC;IAED,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE,wBAAwB,EAAE,KAAK,EAAE,CAAC;AACxF,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gCAAgC,CAAC,EAAE,EAAE,YAAY;IAC/D,OAAO;;;KAGJ,EAAE;;EAEL,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;;;;;;;;yBAQvB,EAAE;;;yBAGF,EAAE;;;;;;;;;;yCAUc,EAAE;CAC1C,CAAC;AACF,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,KAAK,UAAU,oCAAoC,CACxD,EAA2B,EAC3B,UAAgD,EAChD,UAAwC,EAAE;IAE1C,MAAM,EAAE,cAAc,GAAG,IAAI,EAAE,GAAG,OAAO,CAAC;IAC1C,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,MAAM,gBAAgB,GAAa,EAAE,CAAC;IAEtC,mCAAmC;IACnC,MAAM,SAAS,GAAG,EAAE,CAAC,UAAkC,CAAC;IACxD,IAAI,CAAC,SAAS,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzC,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,gBAAgB,EAAE,EAAE,EAAE,CAAC;IAC3D,CAAC;IAED,IAAI,CAAC;QACH,gDAAgD;QAChD,MAAM,SAAS,GAAG,MAAM,UAAU,CAAC,SAAS,EAAE,CAAC;QAE/C,oDAAoD;QACpD,MAAM,WAAW,GAAG,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QAExE,8DAA8D;QAC9D,MAAM,gBAAgB,GAAG,IAAI,GAAG,EAAU,CAAC;QAE3C,KAAK,MAAM,IAAI,IAAI,WAAW,EAAE,CAAC;YAC/B,+BAA+B;YAC/B,UAAU;YACV,qCAAqC;YACrC,qDAAqD;YACrD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;YAC1C,IAAI,KAAK,EAAE,CAAC;gBACV,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;gBAC1B,gBAAgB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YACjC,CAAC;QACH,CAAC;QAED,iDAAiD;QACjD,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;YACjC,IAAI,gBAAgB,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACnC,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAClC,CAAC;QACH,CAAC;QAED,sDAAsD;QACtD,IAAI,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAChC,MAAM,KAAK,GAAG,gBAAgB,CAAC,MAAM,CAAC;YACtC,MAAM,QAAQ,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAEpE,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,aAAa,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,wBAAwB,QAAQ,EAAE,CAAC,CAAC;YAE3F,IAAI,cAAc,EAAE,CAAC;gBACnB,MAAM,YAAY,GAAG,mCAAmC,CAAC,EAAE,CAAC,EAAY,EAAE,gBAAgB,CAAC,CAAC;gBAC5F,GAAG,CAAC,YAAY,CAAC,CAAC;YACpB,CAAC;QACH,CAAC;IACH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,wDAAwD;QACxD,OAAO,CAAC,IAAI,CACV,GAAG,UAAU,CAAC,IAAI,IAAI,KAAK,CAAC,OAAO,iDAAiD,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CACvI,CAAC;QACF,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,gBAAgB,EAAE,EAAE,EAAE,CAAC;IAC3D,CAAC;IAED,OAAO;QACL,KAAK,EAAE,MAAM,CAAC,MAAM,KAAK,CAAC;QAC1B,MAAM;QACN,gBAAgB;KACjB,CAAC;AACJ,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,mCAAmC,CACjD,IAAY,EACZ,gBAA0B;IAE1B,MAAM,KAAK,GAAG,gBAAgB,CAAC,MAAM,CAAC;IACtC,MAAM,QAAQ,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAEpE,OAAO;;;EAGP,KAAK,aAAa,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,QAAQ,IAAI;;EAEpD,QAAQ;;;;;;;;;eASK,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC;iCACR,IAAI;;;yBAGZ,IAAI;;;;;;CAM5B,CAAC;AACF,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAa;IACnD,WAAW,CAAC,WAAW;IACvB,WAAW,CAAC,YAAY;IACxB,eAAe,CAAC,SAAS;IACzB,eAAe,CAAC,QAAQ;IACxB,eAAe,CAAC,gBAAgB;IAChC,eAAe,CAAC,oBAAoB;IACpC,kFAAkF;CACnF,CAAC;AAEF;;;;;;;;;;GAUG;AACH,SAAS,qBAAqB,CAAC,QAAgB,EAAE,IAAY;IAC3D,mBAAmB;IACnB,IAAI,2BAA2B,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;QACnD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,+BAA+B;IAC/B,IAAI,QAAQ,KAAK,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;QACnC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,8DAA8D;IAC9D,IAAI,QAAQ,CAAC,UAAU,CAAC,GAAG,eAAe,CAAC,UAAU,GAAG,CAAC,EAAE,CAAC;QAC1D,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;;;;;;GAUG;AACH,SAAS,iBAAiB,CAAC,QAAgB,EAAE,SAAmB;IAC9D,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;QACjC,cAAc;QACd,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;YAC1B,OAAO,IAAI,CAAC;QACd,CAAC;QACD,iDAAiD;QACjD,IAAI,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,QAAQ,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC5D,OAAO,IAAI,CAAC;QACd,CAAC;QACD,6DAA6D;QAC7D,IAAI,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,QAAQ,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC5D,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;;;;GAQG;AACH,SAAS,kBAAkB,CAAC,IAAY;IACtC,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACpB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,qDAAqD;IACrD,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAE1C,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO,IAAI,CAAC;IACd,CAAC;IAED,2DAA2D;IAC3D,MAAM,UAAU,GAAG,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAC5C,IAAI,UAAU,KAAK,CAAC,CAAC,EAAE,CAAC;QACtB,OAAO,QAAQ,CAAC,SAAS,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC;IAC5C,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC;AAoBD,MAAM,UAAU,iBAAiB,CAC/B,eAAuB,EACvB,IAAY,EACZ,SAAmB;IAEnB,8EAA8E;IAC9E,0EAA0E;IAC1E,0CAA0C;IAC1C,MAAM,KAAK,GAAG,eAAe,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC;IAE7E,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,cAAc,EAAE,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE,CAAC;IAC/D,CAAC;IACD,MAAM,cAAc,GAAa,EAAE,CAAC;IACpC,MAAM,YAAY,GAAa,EAAE,CAAC;IAElC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,QAAQ,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC;QAC1C,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,SAAS;QACX,CAAC;QAED,mEAAmE;QACnE,IAAI,qBAAqB,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,iBAAiB,CAAC,QAAQ,EAAE,SAAS,CAAC,EAAE,CAAC;YACpF,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC9B,CAAC;aAAM,CAAC;YACN,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAChC,CAAC;IACH,CAAC;IAED,OAAO;QACL,KAAK,EAAE,cAAc,CAAC,MAAM,KAAK,CAAC;QAClC,cAAc;QACd,YAAY;KACb,CAAC;AACJ,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,0BAA0B,CAAC,IAAY,EAAE,cAAwB;IAC/E,MAAM,KAAK,GAAG,cAAc,CAAC,MAAM,CAAC;IACpC,MAAM,QAAQ,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAElE,OAAO,CACL,0CAA0C;QAC1C,GAAG,KAAK,sDAAsD;QAC9D,GAAG,QAAQ,MAAM;QACjB,eAAe,IAAI,iDAAiD;QACpE,0DAA0D;QAC1D,wBAAwB;QACxB,6CAA6C;QAC7C,gBAAgB,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI;QAC5C,yDAAyD;QACzD,kDAAkD;QAClD,wBAAwB,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM;QACtD,kDAAkD;QAClD,0BAA0B,IAAI,cAAc;QAC5C,2BAA2B;QAC3B,uBAAuB,IAAI,EAAE,CAC9B,CAAC;AACJ,CAAC"}
|
|
@@ -40,6 +40,21 @@
|
|
|
40
40
|
* @property {boolean} [recovered] - Whether zombie state was recovered
|
|
41
41
|
* @property {boolean} [cleanupSafe] - WU-1811: Whether worktree cleanup is safe (all steps succeeded)
|
|
42
42
|
*/
|
|
43
|
+
interface WorktreeMetadataPaths {
|
|
44
|
+
wuPath: string;
|
|
45
|
+
statusPath: string;
|
|
46
|
+
backlogPath: string;
|
|
47
|
+
stampsDir: string;
|
|
48
|
+
stampPath: string;
|
|
49
|
+
eventsPath: string;
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Resolve all metadata/state paths as absolute worktree-local paths.
|
|
53
|
+
*
|
|
54
|
+
* WU-1563: Prevents wu:done from writing lifecycle metadata into main checkout
|
|
55
|
+
* when worktree mode is active.
|
|
56
|
+
*/
|
|
57
|
+
export declare function resolveWorktreeMetadataPaths(worktreePath: string, id: string): WorktreeMetadataPaths;
|
|
43
58
|
/**
|
|
44
59
|
* Execute worktree mode completion
|
|
45
60
|
*
|
|
@@ -178,5 +193,44 @@ export declare function rollbackBranchOnMergeFailure(gitAdapter: any, preCommitS
|
|
|
178
193
|
success: boolean;
|
|
179
194
|
error: any;
|
|
180
195
|
}>;
|
|
196
|
+
/**
|
|
197
|
+
* WU-1577: Validate that local main is not behind origin/main before transaction.
|
|
198
|
+
*
|
|
199
|
+
* Defense-in-depth check inside the core layer. The CLI layer already has
|
|
200
|
+
* `ensureMainUpToDate()`, but this adds a guard directly before the
|
|
201
|
+
* transaction starts in `executeWorktreeCompletion()`. This prevents
|
|
202
|
+
* metadata leaks when the merge succeeds but the subsequent push fails
|
|
203
|
+
* because main was behind.
|
|
204
|
+
*
|
|
205
|
+
* Fail-open: if the fetch or comparison fails (network issue), returns valid=true
|
|
206
|
+
* to avoid blocking legitimate work when there's no remote.
|
|
207
|
+
*
|
|
208
|
+
* @param gitAdapter - Git adapter instance (must be in main checkout context)
|
|
209
|
+
* @returns Validation result with commitsBehind count
|
|
210
|
+
*/
|
|
211
|
+
export declare function validateMainNotBehindOrigin(gitAdapter: any): Promise<{
|
|
212
|
+
valid: boolean;
|
|
213
|
+
commitsBehind: number;
|
|
214
|
+
failOpen?: boolean;
|
|
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
|
+
}>;
|
|
181
235
|
export {};
|
|
182
236
|
//# 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;AAwEH;;;;;;;;;;;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;;;;;;;GA2mBtD;AAED;;;;;;GAMG;AACH,wBAAsB,gBAAgB,CAAC,MAAM,KAAA,mBA6B5C;AAwID;;;;;;;;;;GAUG;AACH,wBAAsB,gBAAgB,CAAC,MAAM,KAAA,EAAE,YAAY,KAAA,EAAE,IAAI,KAAA;;;;;;GAgGhE;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,iBAkB/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;AAwCD;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,6BAA6B,CACjD,UAAU,KAAA,EACV,eAAe,EAAE,MAAM,EACvB,IAAI,EAAE,MAAM,GACX,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAoB/C"}
|
package/dist/wu-done-worktree.js
CHANGED
|
@@ -23,7 +23,7 @@ import { writeFile } from 'node:fs/promises';
|
|
|
23
23
|
import { generateCommitMessage, collectMetadataToTransaction, stageAndFormatMetadata, defaultBranchFrom, branchExists, validatePostMutation, } from './wu-done-validators.js';
|
|
24
24
|
import { getGitForCwd, createGitForPath } from './git-adapter.js';
|
|
25
25
|
import { readWU, writeWU } from './wu-yaml.js';
|
|
26
|
-
import { WU_PATHS
|
|
26
|
+
import { WU_PATHS } from './wu-paths.js';
|
|
27
27
|
import { BRANCHES, REMOTES, THRESHOLDS, LOG_PREFIX, EMOJI, COMMIT_FORMATS, BOX, STRING_LITERALS, WU_STATUS, GIT_COMMANDS, GIT_FLAGS, LUMENFLOW_PATHS, } from './wu-constants.js';
|
|
28
28
|
import { RECOVERY, REBASE, PREFLIGHT, MERGE } from './wu-done-messages.js';
|
|
29
29
|
import { getDriftLevel, DRIFT_LEVELS } from './branch-drift.js';
|
|
@@ -49,34 +49,28 @@ import { WUTransaction, createTransactionSnapshot, restoreFromSnapshot } from '.
|
|
|
49
49
|
// WU-1749: Added prepareRecoveryWithSquash for zombie recovery flow
|
|
50
50
|
import { countPreviousCompletionAttempts, squashPreviousCompletionAttempts, prepareRecoveryWithSquash, } from './wu-done-retry-helpers.js';
|
|
51
51
|
// WU-1747: Import retry, lock, and checkpoint modules for concurrent load resilience
|
|
52
|
-
import { withRetry, createRetryConfig
|
|
52
|
+
import { withRetry, createRetryConfig } from './retry-strategy.js';
|
|
53
53
|
import { withMergeLock } from './merge-lock.js';
|
|
54
|
-
import {
|
|
54
|
+
import {} from './wu-checkpoint.js';
|
|
55
55
|
// WU-1749: Import state store constant for append-only file path
|
|
56
56
|
import { WU_EVENTS_FILE_NAME } from './wu-state-store.js';
|
|
57
57
|
import { validateWUEvent } from './wu-state-schema.js';
|
|
58
58
|
/**
|
|
59
|
-
*
|
|
60
|
-
*
|
|
61
|
-
*
|
|
62
|
-
*
|
|
63
|
-
* @property {string} title - WU title for commit message
|
|
64
|
-
* @property {boolean} isDocsOnly - Whether this is a docs-only WU
|
|
65
|
-
* @property {string} worktreePath - Path to worktree
|
|
66
|
-
* @property {number} maxCommitLength - Max commit header length from commitlint
|
|
67
|
-
* @property {function} validateStagedFiles - Staged files validator
|
|
68
|
-
* NOTE: recordTransactionState/rollbackTransaction removed in WU-1369 (atomic pattern)
|
|
69
|
-
*/
|
|
70
|
-
/**
|
|
71
|
-
* @typedef {Object} WorktreeResult
|
|
72
|
-
* @property {boolean} success - Whether completion succeeded
|
|
73
|
-
* @property {boolean} committed - Whether changes were committed
|
|
74
|
-
* @property {boolean} pushed - Whether changes were pushed
|
|
75
|
-
* @property {boolean} merged - Whether lane branch was merged (vs PR created)
|
|
76
|
-
* @property {string|null} prUrl - PR URL if PR mode was used
|
|
77
|
-
* @property {boolean} [recovered] - Whether zombie state was recovered
|
|
78
|
-
* @property {boolean} [cleanupSafe] - WU-1811: Whether worktree cleanup is safe (all steps succeeded)
|
|
59
|
+
* Resolve all metadata/state paths as absolute worktree-local paths.
|
|
60
|
+
*
|
|
61
|
+
* WU-1563: Prevents wu:done from writing lifecycle metadata into main checkout
|
|
62
|
+
* when worktree mode is active.
|
|
79
63
|
*/
|
|
64
|
+
export function resolveWorktreeMetadataPaths(worktreePath, id) {
|
|
65
|
+
return {
|
|
66
|
+
wuPath: path.join(worktreePath, WU_PATHS.WU(id)),
|
|
67
|
+
statusPath: path.join(worktreePath, WU_PATHS.STATUS()),
|
|
68
|
+
backlogPath: path.join(worktreePath, WU_PATHS.BACKLOG()),
|
|
69
|
+
stampsDir: path.join(worktreePath, WU_PATHS.STAMPS_DIR()),
|
|
70
|
+
stampPath: path.join(worktreePath, WU_PATHS.STAMP(id)),
|
|
71
|
+
eventsPath: path.join(worktreePath, LUMENFLOW_PATHS.STATE_DIR, WU_EVENTS_FILE_NAME),
|
|
72
|
+
};
|
|
73
|
+
}
|
|
80
74
|
/**
|
|
81
75
|
* Execute worktree mode completion
|
|
82
76
|
*
|
|
@@ -91,9 +85,8 @@ export async function executeWorktreeCompletion(context) {
|
|
|
91
85
|
const { id, args, docMain, title, isDocsOnly, worktreePath, maxCommitLength, validateStagedFiles,
|
|
92
86
|
// NOTE: recordTransactionState/rollbackTransaction removed in WU-1369 (atomic pattern)
|
|
93
87
|
} = context;
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
const metadataWUPath = path.join(worktreePath, 'docs', '04-operations', 'tasks', 'wu', `${id}.yaml`);
|
|
88
|
+
const worktreeMetadataPaths = resolveWorktreeMetadataPaths(worktreePath, id);
|
|
89
|
+
const metadataWUPath = worktreeMetadataPaths.wuPath;
|
|
97
90
|
// Read WU YAML and validate current state
|
|
98
91
|
const docForUpdate = readWU(metadataWUPath, id);
|
|
99
92
|
// Check for zombie state (recovery mode)
|
|
@@ -153,6 +146,11 @@ export async function executeWorktreeCompletion(context) {
|
|
|
153
146
|
const currentStatus = docForUpdate.status || WU_STATUS.IN_PROGRESS;
|
|
154
147
|
// Validate state transition
|
|
155
148
|
assertTransition(currentStatus, WU_STATUS.DONE, id);
|
|
149
|
+
// WU-1577: Abort early if local main is behind origin/main.
|
|
150
|
+
// This prevents metadata leaks: if merge succeeds but push fails because
|
|
151
|
+
// main is behind, wu-events.jsonl/backlog/status would leak onto local main.
|
|
152
|
+
// Must run BEFORE transaction to guarantee no files are modified.
|
|
153
|
+
await ensureMainNotBehindOrigin(originalCwd, id);
|
|
156
154
|
// WU-1369: Create atomic transaction for metadata updates
|
|
157
155
|
// This ensures NO files are modified if any validation fails
|
|
158
156
|
const transaction = new WUTransaction(id);
|
|
@@ -163,20 +161,24 @@ export async function executeWorktreeCompletion(context) {
|
|
|
163
161
|
// WU-1943: Track pre-commit SHA and git commit state for rollback on merge failure
|
|
164
162
|
let preCommitSha = null;
|
|
165
163
|
let gitCommitMade = false;
|
|
164
|
+
// WU-1577: Track pre-merge main SHA for rollback on push failure
|
|
165
|
+
let preMainMergeSha = null;
|
|
166
|
+
let mainMerged = false;
|
|
166
167
|
// WU-2310: Track snapshot for file rollback on git commit failure
|
|
167
168
|
/** @type {Map<string, string|null>|null} */
|
|
168
169
|
let transactionSnapshot = null;
|
|
170
|
+
let stagedMetadataAllowlist = [];
|
|
171
|
+
let initiativeMetadataPath = null;
|
|
169
172
|
try {
|
|
170
173
|
// WU-1541: Use explicit worktree paths and git adapter instead of process.chdir
|
|
171
174
|
console.log(`\n${LOG_PREFIX.DONE} Updating metadata in worktree: ${worktreePath}`);
|
|
172
175
|
const worktreeGit = createGitForPath(worktreePath);
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
const
|
|
176
|
-
const
|
|
177
|
-
const
|
|
178
|
-
const
|
|
179
|
-
const workingStampPath = path.join(workingStampsDir, `${id}.done`);
|
|
176
|
+
// WU-1563: Use absolute metadata paths rooted in worktreePath.
|
|
177
|
+
const workingWUPath = worktreeMetadataPaths.wuPath;
|
|
178
|
+
const workingStatusPath = worktreeMetadataPaths.statusPath;
|
|
179
|
+
const workingBacklogPath = worktreeMetadataPaths.backlogPath;
|
|
180
|
+
const workingStampsDir = worktreeMetadataPaths.stampsDir;
|
|
181
|
+
const workingStampPath = worktreeMetadataPaths.stampPath;
|
|
180
182
|
// ======================================================================
|
|
181
183
|
// PHASE 1: RUN ALL VALIDATIONS FIRST (before any file writes)
|
|
182
184
|
// WU-1369: This ensures no partial state on validation failure
|
|
@@ -226,7 +228,14 @@ export async function executeWorktreeCompletion(context) {
|
|
|
226
228
|
backlogPath: workingBacklogPath,
|
|
227
229
|
stampPath: workingStampPath,
|
|
228
230
|
transaction,
|
|
231
|
+
projectRoot: worktreePath,
|
|
229
232
|
});
|
|
233
|
+
const pendingWrites = transaction.getPendingWrites();
|
|
234
|
+
stagedMetadataAllowlist = pendingWrites
|
|
235
|
+
.map((write) => path.relative(worktreePath, write.path).split(path.sep).join('/'))
|
|
236
|
+
.filter((relativePath) => Boolean(relativePath) && !relativePath.startsWith('..') && !path.isAbsolute(relativePath));
|
|
237
|
+
const initiativeMetadataWrite = pendingWrites.find((write) => write.description === 'initiative YAML');
|
|
238
|
+
initiativeMetadataPath = initiativeMetadataWrite?.path ?? null;
|
|
230
239
|
// Validate the transaction itself
|
|
231
240
|
const txValidation = transaction.validate();
|
|
232
241
|
if (!txValidation.valid) {
|
|
@@ -239,15 +248,9 @@ export async function executeWorktreeCompletion(context) {
|
|
|
239
248
|
// ======================================================================
|
|
240
249
|
// WU-2310: Capture file state before transaction commit
|
|
241
250
|
// This allows rollback if git commit fails AFTER files are written
|
|
242
|
-
// WU-1541: Use absolute path via
|
|
243
|
-
const workingEventsPath =
|
|
244
|
-
const pathsToSnapshot =
|
|
245
|
-
workingWUPath,
|
|
246
|
-
workingStatusPath,
|
|
247
|
-
workingBacklogPath,
|
|
248
|
-
workingStampPath,
|
|
249
|
-
workingEventsPath,
|
|
250
|
-
];
|
|
251
|
+
// WU-1541: Use absolute path via worktree metadata paths instead of relative path after chdir
|
|
252
|
+
const workingEventsPath = worktreeMetadataPaths.eventsPath;
|
|
253
|
+
const pathsToSnapshot = Array.from(new Set(transaction.getPendingWrites().map((write) => write.path)));
|
|
251
254
|
transactionSnapshot = createTransactionSnapshot(pathsToSnapshot);
|
|
252
255
|
console.log(`${LOG_PREFIX.DONE} ${EMOJI.INFO} WU-2310: Snapshot captured for rollback`);
|
|
253
256
|
const commitResult = transaction.commit();
|
|
@@ -262,6 +265,7 @@ export async function executeWorktreeCompletion(context) {
|
|
|
262
265
|
id,
|
|
263
266
|
wuPath: workingWUPath,
|
|
264
267
|
stampPath: workingStampPath,
|
|
268
|
+
eventsPath: workingEventsPath,
|
|
265
269
|
});
|
|
266
270
|
if (!postMutationResult.valid) {
|
|
267
271
|
throw createValidationError(`Post-mutation validation failed:\n ${postMutationResult.errors.join('\n ')}`, { wuId: id, errors: postMutationResult.errors });
|
|
@@ -289,11 +293,12 @@ export async function executeWorktreeCompletion(context) {
|
|
|
289
293
|
statusPath: workingStatusPath,
|
|
290
294
|
backlogPath: workingBacklogPath,
|
|
291
295
|
stampsDir: workingStampsDir,
|
|
296
|
+
initiativePath: initiativeMetadataPath,
|
|
292
297
|
gitAdapter: worktreeGit,
|
|
293
298
|
repoRoot: worktreePath,
|
|
294
299
|
});
|
|
295
300
|
// Validate staged files
|
|
296
|
-
await validateStagedFiles(id, isDocsOnly);
|
|
301
|
+
await validateStagedFiles(id, isDocsOnly, { metadataAllowlist: stagedMetadataAllowlist });
|
|
297
302
|
// ======================================================================
|
|
298
303
|
// WU-1584 Fix #1: Squash previous completion attempts before new commit
|
|
299
304
|
// This prevents N duplicate commits when wu:done is retried N times
|
|
@@ -388,6 +393,24 @@ export async function executeWorktreeCompletion(context) {
|
|
|
388
393
|
// WU-1574: Backlog repair removed - state store architecture eliminates duplicates
|
|
389
394
|
// Backlog.md is always regenerated from wu-events.jsonl, not parsed/modified
|
|
390
395
|
console.log(MERGE.STARTING(laneBranch));
|
|
396
|
+
// WU-1554: Restore any dirty tracked files on main before ff-only merge.
|
|
397
|
+
// wu:done's preflight checks (state merge, config reads) may leave metadata
|
|
398
|
+
// files dirty on main, which causes git merge --ff-only to abort.
|
|
399
|
+
{
|
|
400
|
+
const gitMainForClean = createGitForPath(originalCwd);
|
|
401
|
+
try {
|
|
402
|
+
const mainStatus = await gitMainForClean.raw(['status', '--porcelain']);
|
|
403
|
+
if (mainStatus && mainStatus.trim()) {
|
|
404
|
+
await gitMainForClean.raw(['checkout', '--', '.']);
|
|
405
|
+
console.log(`${LOG_PREFIX.DONE} ${EMOJI.INFO} WU-1554: Restored dirty files on main for clean merge`);
|
|
406
|
+
}
|
|
407
|
+
}
|
|
408
|
+
catch {
|
|
409
|
+
// Non-fatal: if restore fails, the merge will catch it
|
|
410
|
+
}
|
|
411
|
+
}
|
|
412
|
+
// WU-1577: Capture main SHA before merge for rollback on push failure
|
|
413
|
+
preMainMergeSha = await createGitForPath(originalCwd).getCommitHash('HEAD');
|
|
391
414
|
// WU-1747: Wrap merge with lock for atomic operation under concurrent load
|
|
392
415
|
// WU-1749 Bug 2: Pass worktreePath and wuId for auto-rebase on retry
|
|
393
416
|
await withMergeLock(id, async () => {
|
|
@@ -395,6 +418,7 @@ export async function executeWorktreeCompletion(context) {
|
|
|
395
418
|
});
|
|
396
419
|
console.log(MERGE.ATOMIC_SUCCESS);
|
|
397
420
|
merged = true;
|
|
421
|
+
mainMerged = true;
|
|
398
422
|
}
|
|
399
423
|
// Sync/rebase before push (handles concurrent main advancement)
|
|
400
424
|
// WU-1541: Use createGitForPath(originalCwd) for main checkout operations
|
|
@@ -510,6 +534,9 @@ export async function executeWorktreeCompletion(context) {
|
|
|
510
534
|
console.log(`${LOG_PREFIX.DONE} ${EMOJI.WARNING} Rollback error: ${rollbackErr.message}`);
|
|
511
535
|
}
|
|
512
536
|
}
|
|
537
|
+
// WU-1577: If merge to main succeeded but push/rebase failed, rollback main
|
|
538
|
+
// This prevents wu-events.jsonl/backlog/status leaking onto local main
|
|
539
|
+
await maybeRollbackMain(mainMerged, preMainMergeSha, originalCwd, id);
|
|
513
540
|
console.log(`\n${BOX.TOP}`);
|
|
514
541
|
if (fileRollbackSuccess) {
|
|
515
542
|
console.log(`${BOX.SIDE} WU:DONE FAILED - FILES ROLLED BACK (WU-2310)`);
|
|
@@ -982,7 +1009,7 @@ export async function mergeLaneBranch(branch, options = {}) {
|
|
|
982
1009
|
// WU-1749 Bug 2: Now rebases lane branch on retry instead of just pulling main
|
|
983
1010
|
const retryConfig = createRetryConfig('wu_done', {
|
|
984
1011
|
maxAttempts: options.maxAttempts,
|
|
985
|
-
onRetry: async (attempt, error,
|
|
1012
|
+
onRetry: async (attempt, error, _delay) => {
|
|
986
1013
|
console.log(`${LOG_PREFIX.DONE} ${EMOJI.WARNING} Merge attempt ${attempt} failed: ${error.message}`);
|
|
987
1014
|
// WU-1749 Bug 2: Rebase lane branch onto new main instead of just pulling
|
|
988
1015
|
// This is required because ff-only merge will always fail if the lane branch
|
|
@@ -1097,4 +1124,99 @@ export async function rollbackBranchOnMergeFailure(gitAdapter, preCommitSha, wuI
|
|
|
1097
1124
|
return { success: false, error: error.message };
|
|
1098
1125
|
}
|
|
1099
1126
|
}
|
|
1127
|
+
/**
|
|
1128
|
+
* WU-1577: Validate that local main is not behind origin/main before transaction.
|
|
1129
|
+
*
|
|
1130
|
+
* Defense-in-depth check inside the core layer. The CLI layer already has
|
|
1131
|
+
* `ensureMainUpToDate()`, but this adds a guard directly before the
|
|
1132
|
+
* transaction starts in `executeWorktreeCompletion()`. This prevents
|
|
1133
|
+
* metadata leaks when the merge succeeds but the subsequent push fails
|
|
1134
|
+
* because main was behind.
|
|
1135
|
+
*
|
|
1136
|
+
* Fail-open: if the fetch or comparison fails (network issue), returns valid=true
|
|
1137
|
+
* to avoid blocking legitimate work when there's no remote.
|
|
1138
|
+
*
|
|
1139
|
+
* @param gitAdapter - Git adapter instance (must be in main checkout context)
|
|
1140
|
+
* @returns Validation result with commitsBehind count
|
|
1141
|
+
*/
|
|
1142
|
+
export async function validateMainNotBehindOrigin(gitAdapter) {
|
|
1143
|
+
try {
|
|
1144
|
+
await gitAdapter.fetch(REMOTES.ORIGIN, BRANCHES.MAIN);
|
|
1145
|
+
const localSha = await gitAdapter.getCommitHash(BRANCHES.MAIN);
|
|
1146
|
+
const remoteSha = await gitAdapter.getCommitHash(`${REMOTES.ORIGIN}/${BRANCHES.MAIN}`);
|
|
1147
|
+
if (localSha === remoteSha) {
|
|
1148
|
+
return { valid: true, commitsBehind: 0 };
|
|
1149
|
+
}
|
|
1150
|
+
const behindRaw = await gitAdapter.revList([
|
|
1151
|
+
'--count',
|
|
1152
|
+
`${BRANCHES.MAIN}..${REMOTES.ORIGIN}/${BRANCHES.MAIN}`,
|
|
1153
|
+
]);
|
|
1154
|
+
const commitsBehind = Number(behindRaw.trim()) || 0;
|
|
1155
|
+
if (commitsBehind > 0) {
|
|
1156
|
+
return { valid: false, commitsBehind };
|
|
1157
|
+
}
|
|
1158
|
+
// Local is ahead of remote (not behind) — valid
|
|
1159
|
+
return { valid: true, commitsBehind: 0 };
|
|
1160
|
+
}
|
|
1161
|
+
catch {
|
|
1162
|
+
// Fail-open: network error or no remote — allow wu:done to proceed
|
|
1163
|
+
return { valid: true, commitsBehind: 0, failOpen: true };
|
|
1164
|
+
}
|
|
1165
|
+
}
|
|
1166
|
+
/**
|
|
1167
|
+
* WU-1577: Helper that throws if local main is behind origin.
|
|
1168
|
+
* Extracted from executeWorktreeCompletion to keep cognitive complexity in check.
|
|
1169
|
+
*/
|
|
1170
|
+
async function ensureMainNotBehindOrigin(mainCheckoutPath, wuId) {
|
|
1171
|
+
const gitMainPreCheck = createGitForPath(mainCheckoutPath);
|
|
1172
|
+
const result = await validateMainNotBehindOrigin(gitMainPreCheck);
|
|
1173
|
+
if (!result.valid) {
|
|
1174
|
+
throw createError(ErrorCodes.GIT_ERROR, `Local main is ${result.commitsBehind} commit(s) behind origin/main.\n\n` +
|
|
1175
|
+
`wu:done aborted BEFORE any writes to prevent metadata leaks (WU-1577).\n\n` +
|
|
1176
|
+
`Fix: git pull origin main\n` +
|
|
1177
|
+
`Then retry: pnpm wu:done --id ${wuId}`, { wuId, commitsBehind: result.commitsBehind });
|
|
1178
|
+
}
|
|
1179
|
+
}
|
|
1180
|
+
/**
|
|
1181
|
+
* WU-1577: Conditionally rollback main if merge was done but push failed.
|
|
1182
|
+
* Extracted from the catch block to keep cognitive complexity low.
|
|
1183
|
+
*/
|
|
1184
|
+
async function maybeRollbackMain(mainMerged, preMainMergeSha, mainCheckoutPath, wuId) {
|
|
1185
|
+
if (!mainMerged || !preMainMergeSha)
|
|
1186
|
+
return;
|
|
1187
|
+
try {
|
|
1188
|
+
const gitMainForRollback = createGitForPath(mainCheckoutPath);
|
|
1189
|
+
await rollbackMainAfterMergeFailure(gitMainForRollback, preMainMergeSha, wuId);
|
|
1190
|
+
}
|
|
1191
|
+
catch (err) {
|
|
1192
|
+
console.log(`${LOG_PREFIX.DONE} ${EMOJI.WARNING} WU-1577: Main rollback error: ${err.message}`);
|
|
1193
|
+
}
|
|
1194
|
+
}
|
|
1195
|
+
/**
|
|
1196
|
+
* WU-1577: Rollback main checkout to pre-merge SHA after merge/push failure.
|
|
1197
|
+
*
|
|
1198
|
+
* When executeWorktreeCompletion() merges the lane branch into local main
|
|
1199
|
+
* (ff-only) but the subsequent pull --rebase or push fails, main is left
|
|
1200
|
+
* with leaked metadata (wu-events.jsonl complete event, backlog, status).
|
|
1201
|
+
* This function resets main to its pre-merge state so no metadata leaks.
|
|
1202
|
+
*
|
|
1203
|
+
* Best-effort: never throws. Returns success/failure status for logging.
|
|
1204
|
+
*
|
|
1205
|
+
* @param gitAdapter - Git adapter instance (must be in main checkout context)
|
|
1206
|
+
* @param preMainMergeSha - SHA to reset to (captured before merge)
|
|
1207
|
+
* @param wuId - WU ID for logging
|
|
1208
|
+
* @returns Rollback result
|
|
1209
|
+
*/
|
|
1210
|
+
export async function rollbackMainAfterMergeFailure(gitAdapter, preMainMergeSha, wuId) {
|
|
1211
|
+
try {
|
|
1212
|
+
console.log(`${LOG_PREFIX.DONE} ${EMOJI.WARNING} WU-1577: Rolling back main to pre-merge state for ${wuId}...`);
|
|
1213
|
+
await gitAdapter.reset(preMainMergeSha, { hard: true });
|
|
1214
|
+
console.log(`${LOG_PREFIX.DONE} ${EMOJI.SUCCESS} WU-1577: Main rollback complete — no metadata leaked`);
|
|
1215
|
+
return { success: true };
|
|
1216
|
+
}
|
|
1217
|
+
catch (error) {
|
|
1218
|
+
console.log(`${LOG_PREFIX.DONE} ${EMOJI.WARNING} WU-1577: Could not rollback main for ${wuId}: ${error.message}`);
|
|
1219
|
+
return { success: false, error: error.message };
|
|
1220
|
+
}
|
|
1221
|
+
}
|
|
1100
1222
|
//# sourceMappingURL=wu-done-worktree.js.map
|