@lumenflow/cli 1.3.4 → 1.3.6
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/__tests__/release.test.js +283 -0
- package/dist/agent-issues-query.js +3 -2
- package/dist/agent-log-issue.js +2 -2
- package/dist/init.js +1 -1
- package/dist/mem-checkpoint.js +3 -7
- package/dist/mem-cleanup.js +2 -6
- package/dist/mem-create.js +3 -7
- package/dist/mem-inbox.js +3 -7
- package/dist/mem-init.js +5 -9
- package/dist/mem-ready.js +3 -7
- package/dist/mem-signal.js +3 -7
- package/dist/mem-start.js +3 -7
- package/dist/mem-summarize.js +2 -6
- package/dist/mem-triage.js +2 -6
- package/dist/metrics-snapshot.js +2 -2
- package/dist/orchestrate-init-status.js +3 -4
- package/dist/orchestrate-monitor.js +4 -5
- package/dist/release.js +416 -0
- package/dist/spawn-list.js +3 -3
- package/dist/wu-block.js +2 -2
- package/dist/wu-claim.js +9 -4
- package/dist/wu-create.js +1 -1
- package/dist/wu-done.js +17 -17
- package/dist/wu-release.js +142 -0
- package/dist/wu-repair.js +3 -3
- package/dist/wu-spawn.js +6 -6
- package/dist/wu-unblock.js +2 -2
- package/package.json +9 -7
- package/dist/gates.d.ts +0 -41
- package/dist/gates.d.ts.map +0 -1
- package/dist/gates.js.map +0 -1
- package/dist/initiative-add-wu.d.ts +0 -22
- package/dist/initiative-add-wu.d.ts.map +0 -1
- package/dist/initiative-add-wu.js.map +0 -1
- package/dist/initiative-create.d.ts +0 -28
- package/dist/initiative-create.d.ts.map +0 -1
- package/dist/initiative-create.js.map +0 -1
- package/dist/initiative-edit.d.ts +0 -34
- package/dist/initiative-edit.d.ts.map +0 -1
- package/dist/initiative-edit.js.map +0 -1
- package/dist/initiative-list.d.ts +0 -12
- package/dist/initiative-list.d.ts.map +0 -1
- package/dist/initiative-list.js.map +0 -1
- package/dist/initiative-status.d.ts +0 -11
- package/dist/initiative-status.d.ts.map +0 -1
- package/dist/initiative-status.js.map +0 -1
- package/dist/mem-checkpoint.d.ts +0 -16
- package/dist/mem-checkpoint.d.ts.map +0 -1
- package/dist/mem-checkpoint.js.map +0 -1
- package/dist/mem-cleanup.d.ts +0 -29
- package/dist/mem-cleanup.d.ts.map +0 -1
- package/dist/mem-cleanup.js.map +0 -1
- package/dist/mem-create.d.ts +0 -17
- package/dist/mem-create.d.ts.map +0 -1
- package/dist/mem-create.js.map +0 -1
- package/dist/mem-inbox.d.ts +0 -35
- package/dist/mem-inbox.d.ts.map +0 -1
- package/dist/mem-inbox.js.map +0 -1
- package/dist/mem-init.d.ts +0 -15
- package/dist/mem-init.d.ts.map +0 -1
- package/dist/mem-init.js.map +0 -1
- package/dist/mem-ready.d.ts +0 -16
- package/dist/mem-ready.d.ts.map +0 -1
- package/dist/mem-ready.js.map +0 -1
- package/dist/mem-signal.d.ts +0 -16
- package/dist/mem-signal.d.ts.map +0 -1
- package/dist/mem-signal.js.map +0 -1
- package/dist/mem-start.d.ts +0 -16
- package/dist/mem-start.d.ts.map +0 -1
- package/dist/mem-start.js.map +0 -1
- package/dist/mem-summarize.d.ts +0 -22
- package/dist/mem-summarize.d.ts.map +0 -1
- package/dist/mem-summarize.js.map +0 -1
- package/dist/mem-triage.d.ts +0 -22
- package/dist/mem-triage.d.ts.map +0 -1
- package/dist/mem-triage.js.map +0 -1
- package/dist/spawn-list.d.ts +0 -16
- package/dist/spawn-list.d.ts.map +0 -1
- package/dist/spawn-list.js.map +0 -1
- package/dist/wu-block.d.ts +0 -16
- package/dist/wu-block.d.ts.map +0 -1
- package/dist/wu-block.js.map +0 -1
- package/dist/wu-claim.d.ts +0 -32
- package/dist/wu-claim.d.ts.map +0 -1
- package/dist/wu-claim.js.map +0 -1
- package/dist/wu-cleanup.d.ts +0 -17
- package/dist/wu-cleanup.d.ts.map +0 -1
- package/dist/wu-cleanup.js.map +0 -1
- package/dist/wu-create.d.ts +0 -38
- package/dist/wu-create.d.ts.map +0 -1
- package/dist/wu-create.js.map +0 -1
- package/dist/wu-deps.d.ts +0 -13
- package/dist/wu-deps.d.ts.map +0 -1
- package/dist/wu-deps.js.map +0 -1
- package/dist/wu-done.d.ts +0 -153
- package/dist/wu-done.d.ts.map +0 -1
- package/dist/wu-done.js.map +0 -1
- package/dist/wu-edit.d.ts +0 -29
- package/dist/wu-edit.d.ts.map +0 -1
- package/dist/wu-edit.js.map +0 -1
- package/dist/wu-infer-lane.d.ts +0 -17
- package/dist/wu-infer-lane.d.ts.map +0 -1
- package/dist/wu-infer-lane.js.map +0 -1
- package/dist/wu-preflight.d.ts +0 -47
- package/dist/wu-preflight.d.ts.map +0 -1
- package/dist/wu-preflight.js.map +0 -1
- package/dist/wu-prune.d.ts +0 -16
- package/dist/wu-prune.d.ts.map +0 -1
- package/dist/wu-prune.js.map +0 -1
- package/dist/wu-repair.d.ts +0 -60
- package/dist/wu-repair.d.ts.map +0 -1
- package/dist/wu-repair.js.map +0 -1
- package/dist/wu-spawn-completion.d.ts +0 -10
- package/dist/wu-spawn.d.ts +0 -168
- package/dist/wu-spawn.d.ts.map +0 -1
- package/dist/wu-spawn.js.map +0 -1
- package/dist/wu-unblock.d.ts +0 -16
- package/dist/wu-unblock.d.ts.map +0 -1
- package/dist/wu-unblock.js.map +0 -1
- package/dist/wu-validate.d.ts +0 -16
- package/dist/wu-validate.d.ts.map +0 -1
- package/dist/wu-validate.js.map +0 -1
package/dist/wu-done.js
CHANGED
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
* 2) Pre-flight validation: run ALL pre-commit hooks before merge (prevents partial completion)
|
|
8
8
|
* 3) cd into worktree
|
|
9
9
|
* 4) Auto-update WU YAML/backlog/status to Done in worktree (unless --no-auto)
|
|
10
|
-
* 5) Create `.
|
|
10
|
+
* 5) Create `.lumenflow/stamps/WU-{id}.done` in worktree
|
|
11
11
|
* 6) Validate staged files against whitelist
|
|
12
12
|
* 7) Commit metadata changes in worktree (on lane branch)
|
|
13
13
|
* 8) cd back to main
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
* 10) Push to `main`
|
|
16
16
|
* 11) Remove the associated worktree (unless --no-remove)
|
|
17
17
|
* 12) Optionally delete the lane branch (with --delete-branch)
|
|
18
|
-
* 13) Emit telemetry to .
|
|
18
|
+
* 13) Emit telemetry to .lumenflow/flow.log
|
|
19
19
|
*
|
|
20
20
|
* Canonical sequence (Branch-Only mode - LEGACY):
|
|
21
21
|
* 1) Run gates on lane branch (in main checkout)
|
|
@@ -94,7 +94,7 @@ const MEMORY_CHECKPOINT_NOTES = {
|
|
|
94
94
|
};
|
|
95
95
|
const MEMORY_SIGNAL_WINDOW_MS = 60 * 60 * 1000; // 1 hour for recent signals
|
|
96
96
|
// Path constant for wu-events.jsonl (used in multiple places)
|
|
97
|
-
const WU_EVENTS_PATH = '.
|
|
97
|
+
const WU_EVENTS_PATH = '.lumenflow/state/wu-events.jsonl';
|
|
98
98
|
/**
|
|
99
99
|
* WU-1804: Preflight validation for claim metadata before gates.
|
|
100
100
|
*
|
|
@@ -118,7 +118,7 @@ async function validateClaimMetadataBeforeGates(id, worktreePath, yamlStatus) {
|
|
|
118
118
|
}
|
|
119
119
|
// Check 2: State store must show WU as in_progress
|
|
120
120
|
const resolvedWorktreePath = path.resolve(worktreePath);
|
|
121
|
-
const stateDir = path.join(resolvedWorktreePath, '.
|
|
121
|
+
const stateDir = path.join(resolvedWorktreePath, '.lumenflow', 'state');
|
|
122
122
|
const eventsPath = path.join(resolvedWorktreePath, WU_EVENTS_PATH);
|
|
123
123
|
try {
|
|
124
124
|
const store = new WUStateStore(stateDir);
|
|
@@ -247,7 +247,7 @@ export function buildGatesCommand(options) {
|
|
|
247
247
|
}
|
|
248
248
|
async function assertWorktreeWUInProgressInStateStore(id, worktreePath) {
|
|
249
249
|
const resolvedWorktreePath = path.resolve(worktreePath);
|
|
250
|
-
const stateDir = path.join(resolvedWorktreePath, '.
|
|
250
|
+
const stateDir = path.join(resolvedWorktreePath, '.lumenflow', 'state');
|
|
251
251
|
const eventsPath = path.join(resolvedWorktreePath, WU_EVENTS_PATH);
|
|
252
252
|
const store = new WUStateStore(stateDir);
|
|
253
253
|
try {
|
|
@@ -367,12 +367,12 @@ async function checkInboxForRecentSignals(id, baseDir = process.cwd()) {
|
|
|
367
367
|
* - Any error during update
|
|
368
368
|
*
|
|
369
369
|
* @param {string} id - WU ID being completed
|
|
370
|
-
* @param {string} baseDir - Base directory containing .
|
|
370
|
+
* @param {string} baseDir - Base directory containing .lumenflow/state/
|
|
371
371
|
* @returns {Promise<void>}
|
|
372
372
|
*/
|
|
373
373
|
export async function updateSpawnRegistryOnCompletion(id, baseDir = process.cwd()) {
|
|
374
374
|
try {
|
|
375
|
-
const store = new SpawnRegistryStore(path.join(baseDir, '.
|
|
375
|
+
const store = new SpawnRegistryStore(path.join(baseDir, '.lumenflow', 'state'));
|
|
376
376
|
await store.load();
|
|
377
377
|
const spawnEntry = store.getByTarget(id);
|
|
378
378
|
// Graceful skip if no spawn entry found (legacy WU)
|
|
@@ -684,7 +684,7 @@ async function ensureMainUpToDate() {
|
|
|
684
684
|
/**
|
|
685
685
|
* Tripwire check: Scan commands log for violations (WU-630 detective layer)
|
|
686
686
|
*
|
|
687
|
-
* Scans .
|
|
687
|
+
* Scans .lumenflow/commands.log for destructive git commands executed during
|
|
688
688
|
* this agent session. If violations are found, aborts wu:done and displays
|
|
689
689
|
* remediation guidance.
|
|
690
690
|
*
|
|
@@ -768,7 +768,7 @@ async function ensureNoAutoStagedOrNoop(paths) {
|
|
|
768
768
|
return { noop: false };
|
|
769
769
|
}
|
|
770
770
|
export function emitTelemetry(event) {
|
|
771
|
-
const logPath = path.join('.
|
|
771
|
+
const logPath = path.join('.lumenflow', 'flow.log');
|
|
772
772
|
const logDir = path.dirname(logPath);
|
|
773
773
|
if (!existsSync(logDir))
|
|
774
774
|
mkdirSync(logDir, { recursive: true });
|
|
@@ -776,7 +776,7 @@ export function emitTelemetry(event) {
|
|
|
776
776
|
appendFileSync(logPath, `${line}\n`, { encoding: FILE_SYSTEM.UTF8 });
|
|
777
777
|
}
|
|
778
778
|
async function auditSkipGates(id, reason, fixWU, worktreePath) {
|
|
779
|
-
const auditPath = path.join('.
|
|
779
|
+
const auditPath = path.join('.lumenflow', 'skip-gates-audit.log');
|
|
780
780
|
const auditDir = path.dirname(auditPath);
|
|
781
781
|
if (!existsSync(auditDir))
|
|
782
782
|
mkdirSync(auditDir, { recursive: true });
|
|
@@ -801,7 +801,7 @@ async function auditSkipGates(id, reason, fixWU, worktreePath) {
|
|
|
801
801
|
* Audit trail for --skip-cos-gates (COS v1.3 §7)
|
|
802
802
|
*/
|
|
803
803
|
async function auditSkipCosGates(id, reason) {
|
|
804
|
-
const auditPath = path.join('.
|
|
804
|
+
const auditPath = path.join('.lumenflow', 'skip-cos-gates-audit.log');
|
|
805
805
|
const auditDir = path.dirname(auditPath);
|
|
806
806
|
if (!existsSync(auditDir))
|
|
807
807
|
mkdirSync(auditDir, { recursive: true });
|
|
@@ -953,8 +953,8 @@ async function validateStagedFiles(id, isDocsOnly = false) {
|
|
|
953
953
|
// Whitelist exact matches
|
|
954
954
|
if (whitelist.includes(file))
|
|
955
955
|
return false;
|
|
956
|
-
// Whitelist .
|
|
957
|
-
if (file.startsWith('.
|
|
956
|
+
// Whitelist .lumenflow/stamps/** pattern
|
|
957
|
+
if (file.startsWith('.lumenflow/stamps/'))
|
|
958
958
|
return false;
|
|
959
959
|
// WU-1072: Whitelist apps/docs/**/*.mdx for auto-generated docs from turbo docs:generate
|
|
960
960
|
if (file.startsWith('apps/docs/') && file.endsWith('.mdx'))
|
|
@@ -967,7 +967,7 @@ async function validateStagedFiles(id, isDocsOnly = false) {
|
|
|
967
967
|
console.warn(`${LOG_PREFIX.DONE} Warning: other WU YAMLs are staged; proceeding and committing only current WU files.`);
|
|
968
968
|
}
|
|
969
969
|
else {
|
|
970
|
-
die(`Unexpected files staged (only current WU YAML, status.md, backlog.md, .
|
|
970
|
+
die(`Unexpected files staged (only current WU YAML, status.md, backlog.md, .lumenflow/stamps/<id>.done allowed):\n ${unexpected.join(`${STRING_LITERALS.NEWLINE} `)}`);
|
|
971
971
|
}
|
|
972
972
|
}
|
|
973
973
|
}
|
|
@@ -1349,7 +1349,7 @@ async function checkOwnership(id, doc, worktreePath, overrideOwner = false, over
|
|
|
1349
1349
|
* @param {object} auditEntry - Audit entry to log
|
|
1350
1350
|
*/
|
|
1351
1351
|
function auditOwnershipOverride(auditEntry) {
|
|
1352
|
-
const auditPath = path.join('.
|
|
1352
|
+
const auditPath = path.join('.lumenflow', 'ownership-override-audit.log');
|
|
1353
1353
|
const auditDir = path.dirname(auditPath);
|
|
1354
1354
|
if (!existsSync(auditDir))
|
|
1355
1355
|
mkdirSync(auditDir, { recursive: true });
|
|
@@ -2166,13 +2166,13 @@ export function printDocValidationNudge(id, changedDocPaths) {
|
|
|
2166
2166
|
* WU-1763: Load discoveries for a WU from memory store.
|
|
2167
2167
|
* Non-blocking - returns empty array on errors.
|
|
2168
2168
|
*
|
|
2169
|
-
* @param {string} baseDir - Base directory containing .
|
|
2169
|
+
* @param {string} baseDir - Base directory containing .lumenflow/memory/
|
|
2170
2170
|
* @param {string} wuId - WU ID to load discoveries for
|
|
2171
2171
|
* @returns {Promise<{count: number, ids: string[]}>} Discovery count and IDs
|
|
2172
2172
|
*/
|
|
2173
2173
|
async function loadDiscoveriesForWU(baseDir, wuId) {
|
|
2174
2174
|
try {
|
|
2175
|
-
const memory = await loadMemory(path.join(baseDir, '.
|
|
2175
|
+
const memory = await loadMemory(path.join(baseDir, '.lumenflow/memory'));
|
|
2176
2176
|
const wuNodes = memory.byWu.get(wuId) || [];
|
|
2177
2177
|
const discoveries = wuNodes.filter((node) => node.type === 'discovery');
|
|
2178
2178
|
return {
|
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* WU Release Command (WU-1080)
|
|
4
|
+
*
|
|
5
|
+
* Releases an orphaned WU from in_progress back to ready state.
|
|
6
|
+
* Use when an agent is interrupted mid-WU and the WU needs to be reclaimed.
|
|
7
|
+
*
|
|
8
|
+
* Sequence (micro-worktree pattern):
|
|
9
|
+
* 1) Validate WU is in_progress
|
|
10
|
+
* 2) Create micro-worktree from main
|
|
11
|
+
* 3) Append release event to state store
|
|
12
|
+
* 4) Regenerate backlog.md and status.md
|
|
13
|
+
* 5) Commit in micro-worktree, push directly to origin/main
|
|
14
|
+
* 6) Optionally remove the work worktree
|
|
15
|
+
*
|
|
16
|
+
* Usage:
|
|
17
|
+
* pnpm wu:release --id WU-1080 --reason "Agent interrupted"
|
|
18
|
+
*/
|
|
19
|
+
import { writeFileSync } from 'node:fs';
|
|
20
|
+
import path from 'node:path';
|
|
21
|
+
import { getGitForCwd } from '@lumenflow/core/dist/git-adapter.js';
|
|
22
|
+
import { die } from '@lumenflow/core/dist/error-handler.js';
|
|
23
|
+
import { generateBacklog, generateStatus } from '@lumenflow/core/dist/backlog-generator.js';
|
|
24
|
+
import { todayISO } from '@lumenflow/core/dist/date-utils.js';
|
|
25
|
+
import { createWUParser, WU_OPTIONS } from '@lumenflow/core/dist/arg-parser.js';
|
|
26
|
+
import { WU_PATHS } from '@lumenflow/core/dist/wu-paths.js';
|
|
27
|
+
import { readWU, writeWU, appendNote } from '@lumenflow/core/dist/wu-yaml.js';
|
|
28
|
+
import { REMOTES, BRANCHES, WU_STATUS, PATTERNS, FILE_SYSTEM, EXIT_CODES, MICRO_WORKTREE_OPERATIONS, } from '@lumenflow/core/dist/wu-constants.js';
|
|
29
|
+
import { ensureOnMain } from '@lumenflow/core/dist/wu-helpers.js';
|
|
30
|
+
import { withMicroWorktree } from '@lumenflow/core/dist/micro-worktree.js';
|
|
31
|
+
import { WUStateStore } from '@lumenflow/core/dist/wu-state-store.js';
|
|
32
|
+
import { releaseLaneLock } from '@lumenflow/core/dist/lane-lock.js';
|
|
33
|
+
const PREFIX = '[wu-release]';
|
|
34
|
+
async function main() {
|
|
35
|
+
const args = createWUParser({
|
|
36
|
+
name: 'wu-release',
|
|
37
|
+
description: 'Release an orphaned WU from in_progress back to ready state for reclaiming',
|
|
38
|
+
options: [WU_OPTIONS.id, WU_OPTIONS.reason],
|
|
39
|
+
required: ['id', 'reason'],
|
|
40
|
+
allowPositionalId: true,
|
|
41
|
+
});
|
|
42
|
+
const id = args.id.toUpperCase();
|
|
43
|
+
if (!PATTERNS.WU_ID.test(id))
|
|
44
|
+
die(`Invalid WU id '${args.id}'. Expected format WU-123`);
|
|
45
|
+
if (!args.reason) {
|
|
46
|
+
die('Reason is required for releasing a WU. Use --reason "..."');
|
|
47
|
+
}
|
|
48
|
+
await ensureOnMain(getGitForCwd());
|
|
49
|
+
// Read WU doc from main to validate state
|
|
50
|
+
const mainWUPath = WU_PATHS.WU(id);
|
|
51
|
+
let doc;
|
|
52
|
+
try {
|
|
53
|
+
doc = readWU(mainWUPath, id);
|
|
54
|
+
}
|
|
55
|
+
catch (error) {
|
|
56
|
+
die(`Failed to read WU ${id}: ${error.message}\n\n` +
|
|
57
|
+
`Options:\n` +
|
|
58
|
+
` 1. Check if WU file exists: ls -la ${mainWUPath}\n` +
|
|
59
|
+
` 2. Validate YAML syntax: pnpm wu:validate --id ${id}\n` +
|
|
60
|
+
` 3. Create WU if missing: pnpm wu:create --id ${id} --lane "<lane>" --title "..."`);
|
|
61
|
+
}
|
|
62
|
+
const title = doc.title || '';
|
|
63
|
+
const lane = doc.lane || 'Unknown';
|
|
64
|
+
// Validate current status is in_progress
|
|
65
|
+
const currentStatus = doc.status || WU_STATUS.READY;
|
|
66
|
+
if (currentStatus !== WU_STATUS.IN_PROGRESS) {
|
|
67
|
+
die(`Cannot release WU ${id}: current status is '${currentStatus}', expected 'in_progress'.\n\n` +
|
|
68
|
+
`The wu:release command is only for releasing orphaned WUs that are stuck in in_progress state.\n\n` +
|
|
69
|
+
`Current state transitions:\n` +
|
|
70
|
+
` - If status is 'ready': WU has not been claimed yet\n` +
|
|
71
|
+
` - If status is 'blocked': Use wu:unblock to resume work\n` +
|
|
72
|
+
` - If status is 'done': WU is already complete`);
|
|
73
|
+
}
|
|
74
|
+
const baseMsg = `wu(${id.toLowerCase()}): release`;
|
|
75
|
+
const commitMsg = `${baseMsg} — ${args.reason}`;
|
|
76
|
+
// Use micro-worktree pattern to avoid pre-commit hook blocking commits to main
|
|
77
|
+
await withMicroWorktree({
|
|
78
|
+
operation: MICRO_WORKTREE_OPERATIONS.WU_BLOCK, // Reuse block operation type
|
|
79
|
+
id,
|
|
80
|
+
logPrefix: PREFIX,
|
|
81
|
+
pushOnly: true, // Push directly to origin/main without touching local main
|
|
82
|
+
execute: async ({ worktreePath }) => {
|
|
83
|
+
// Build paths relative to micro-worktree
|
|
84
|
+
const microWUPath = path.join(worktreePath, WU_PATHS.WU(id));
|
|
85
|
+
const microStatusPath = path.join(worktreePath, WU_PATHS.STATUS());
|
|
86
|
+
const microBacklogPath = path.join(worktreePath, WU_PATHS.BACKLOG());
|
|
87
|
+
// Update WU YAML in micro-worktree - set status back to ready
|
|
88
|
+
const microDoc = readWU(microWUPath, id);
|
|
89
|
+
microDoc.status = WU_STATUS.READY;
|
|
90
|
+
const noteLine = `Released (${todayISO()}): ${args.reason}`;
|
|
91
|
+
appendNote(microDoc, noteLine);
|
|
92
|
+
writeWU(microWUPath, microDoc);
|
|
93
|
+
// Append release event to WUStateStore
|
|
94
|
+
const stateDir = path.join(worktreePath, '.lumenflow', 'state');
|
|
95
|
+
const store = new WUStateStore(stateDir);
|
|
96
|
+
await store.load();
|
|
97
|
+
await store.release(id, args.reason);
|
|
98
|
+
// Generate backlog.md and status.md from state store
|
|
99
|
+
const backlogContent = await generateBacklog(store);
|
|
100
|
+
writeFileSync(microBacklogPath, backlogContent, {
|
|
101
|
+
encoding: FILE_SYSTEM.UTF8,
|
|
102
|
+
});
|
|
103
|
+
const statusContent = await generateStatus(store);
|
|
104
|
+
writeFileSync(microStatusPath, statusContent, {
|
|
105
|
+
encoding: FILE_SYSTEM.UTF8,
|
|
106
|
+
});
|
|
107
|
+
return {
|
|
108
|
+
commitMessage: commitMsg,
|
|
109
|
+
files: [
|
|
110
|
+
WU_PATHS.WU(id),
|
|
111
|
+
WU_PATHS.STATUS(),
|
|
112
|
+
WU_PATHS.BACKLOG(),
|
|
113
|
+
'.lumenflow/state/wu-events.jsonl',
|
|
114
|
+
],
|
|
115
|
+
};
|
|
116
|
+
},
|
|
117
|
+
});
|
|
118
|
+
// Fetch to update local main tracking
|
|
119
|
+
await getGitForCwd().fetch(REMOTES.ORIGIN, BRANCHES.MAIN);
|
|
120
|
+
// Release lane lock so another WU can be claimed
|
|
121
|
+
try {
|
|
122
|
+
if (lane) {
|
|
123
|
+
const releaseResult = releaseLaneLock(lane, { wuId: id });
|
|
124
|
+
if (releaseResult.released && !releaseResult.notFound) {
|
|
125
|
+
console.log(`${PREFIX} Lane lock released for "${lane}"`);
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
catch (err) {
|
|
130
|
+
// Non-blocking: lock release failure should not block the release operation
|
|
131
|
+
console.warn(`${PREFIX} Warning: Could not release lane lock: ${err.message}`);
|
|
132
|
+
}
|
|
133
|
+
console.log(`\n${PREFIX} WU released and pushed.`);
|
|
134
|
+
console.log(`- WU: ${id} — ${title}`);
|
|
135
|
+
console.log(`- Status: in_progress → ready`);
|
|
136
|
+
console.log(`- Reason: ${args.reason}`);
|
|
137
|
+
console.log(`\n${PREFIX} The WU can now be reclaimed with: pnpm wu:claim --id ${id} --lane "${lane}"`);
|
|
138
|
+
}
|
|
139
|
+
main().catch((e) => {
|
|
140
|
+
console.error(e.message);
|
|
141
|
+
process.exit(EXIT_CODES.ERROR);
|
|
142
|
+
});
|
package/dist/wu-repair.js
CHANGED
|
@@ -161,12 +161,12 @@ function validateModeRequirements(options) {
|
|
|
161
161
|
* Run state file repair mode (WU-2240)
|
|
162
162
|
*
|
|
163
163
|
* @param {object} options - CLI options
|
|
164
|
-
* @param {string} [options.path] - Path to state file (defaults to .
|
|
164
|
+
* @param {string} [options.path] - Path to state file (defaults to .lumenflow/state/wu-events.jsonl)
|
|
165
165
|
* @returns {Promise<{success: boolean, exitCode: number}>}
|
|
166
166
|
*/
|
|
167
167
|
async function runStateRepairMode(options) {
|
|
168
|
-
// Default path is .
|
|
169
|
-
const defaultPath = path.join(process.cwd(), '.
|
|
168
|
+
// Default path is .lumenflow/state/wu-events.jsonl relative to cwd
|
|
169
|
+
const defaultPath = path.join(process.cwd(), '.lumenflow', 'state', WU_EVENTS_FILE_NAME);
|
|
170
170
|
const filePath = options.path || defaultPath;
|
|
171
171
|
console.log(`${PREFIX} Repairing state file: ${filePath}`);
|
|
172
172
|
try {
|
package/dist/wu-spawn.js
CHANGED
|
@@ -635,7 +635,7 @@ git rev-parse --show-toplevel
|
|
|
635
635
|
|
|
636
636
|
### Stamp Creation
|
|
637
637
|
|
|
638
|
-
When creating \`.
|
|
638
|
+
When creating \`.lumenflow/\` stamps or other artifacts:
|
|
639
639
|
|
|
640
640
|
1. **ALWAYS** create stamps in the **worktree**, not main
|
|
641
641
|
2. Use \`git rev-parse --show-toplevel\` to get the correct base path
|
|
@@ -644,11 +644,11 @@ When creating \`.beacon/\` stamps or other artifacts:
|
|
|
644
644
|
\`\`\`bash
|
|
645
645
|
# CORRECT: Create stamp in worktree
|
|
646
646
|
WORKTREE_ROOT=$(git rev-parse --show-toplevel)
|
|
647
|
-
mkdir -p "$WORKTREE_ROOT/.
|
|
648
|
-
touch "$WORKTREE_ROOT/.
|
|
647
|
+
mkdir -p "$WORKTREE_ROOT/.lumenflow/agent-runs"
|
|
648
|
+
touch "$WORKTREE_ROOT/.lumenflow/agent-runs/beacon-guardian.stamp"
|
|
649
649
|
|
|
650
650
|
# WRONG: Hardcoded path to main
|
|
651
|
-
# touch /path/to/main/.
|
|
651
|
+
# touch /path/to/main/.lumenflow/agent-runs/beacon-guardian.stamp
|
|
652
652
|
\`\`\`
|
|
653
653
|
|
|
654
654
|
### Why This Matters
|
|
@@ -774,7 +774,7 @@ cd worktrees/${laneSlug}-${id.toLowerCase()}
|
|
|
774
774
|
Then implement following all standards above.
|
|
775
775
|
|
|
776
776
|
**CRITICAL:** Never use \`git worktree add\` directly. Always use \`pnpm wu:claim\` to ensure:
|
|
777
|
-
- Event tracking in .
|
|
777
|
+
- Event tracking in .lumenflow/state/wu-events.jsonl
|
|
778
778
|
- Lane lock acquisition (WIP=1 enforcement)
|
|
779
779
|
- Session tracking for context recovery`;
|
|
780
780
|
}
|
|
@@ -1233,7 +1233,7 @@ async function main() {
|
|
|
1233
1233
|
parentWuId: args.parentWu,
|
|
1234
1234
|
targetWuId: id,
|
|
1235
1235
|
lane: doc.lane || 'Unknown',
|
|
1236
|
-
baseDir: '.
|
|
1236
|
+
baseDir: '.lumenflow/state',
|
|
1237
1237
|
});
|
|
1238
1238
|
const registryMessage = formatSpawnRecordedMessage(registryResult.spawnId, registryResult.error);
|
|
1239
1239
|
console.log(`\n${registryMessage}`);
|
package/dist/wu-unblock.js
CHANGED
|
@@ -187,7 +187,7 @@ async function main() {
|
|
|
187
187
|
appendNote(microDoc, noteLine);
|
|
188
188
|
writeWU(microWUPath, microDoc);
|
|
189
189
|
// WU-1574: Update state store first, then regenerate backlog.md from state
|
|
190
|
-
const stateDir = path.join(worktreePath, '.
|
|
190
|
+
const stateDir = path.join(worktreePath, '.lumenflow', 'state');
|
|
191
191
|
const store = new WUStateStore(stateDir);
|
|
192
192
|
await store.load();
|
|
193
193
|
await store.unblock(id);
|
|
@@ -206,7 +206,7 @@ async function main() {
|
|
|
206
206
|
WU_PATHS.WU(id),
|
|
207
207
|
WU_PATHS.STATUS(),
|
|
208
208
|
WU_PATHS.BACKLOG(),
|
|
209
|
-
'.
|
|
209
|
+
'.lumenflow/state/wu-events.jsonl',
|
|
210
210
|
],
|
|
211
211
|
};
|
|
212
212
|
},
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lumenflow/cli",
|
|
3
|
-
"version": "1.3.
|
|
3
|
+
"version": "1.3.6",
|
|
4
4
|
"description": "Command-line interface for LumenFlow workflow framework",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"lumenflow",
|
|
@@ -38,6 +38,7 @@
|
|
|
38
38
|
"wu-infer-lane": "./dist/wu-infer-lane.js",
|
|
39
39
|
"wu-delete": "./dist/wu-delete.js",
|
|
40
40
|
"wu-unlock-lane": "./dist/wu-unlock-lane.js",
|
|
41
|
+
"wu-release": "./dist/wu-release.js",
|
|
41
42
|
"mem-init": "./dist/mem-init.js",
|
|
42
43
|
"mem-checkpoint": "./dist/mem-checkpoint.js",
|
|
43
44
|
"mem-start": "./dist/mem-start.js",
|
|
@@ -68,7 +69,8 @@
|
|
|
68
69
|
"gates": "./dist/gates.js",
|
|
69
70
|
"lumenflow-gates": "./dist/gates.js",
|
|
70
71
|
"lumenflow-init": "./dist/init.js",
|
|
71
|
-
"lumenflow": "./dist/init.js"
|
|
72
|
+
"lumenflow": "./dist/init.js",
|
|
73
|
+
"lumenflow-release": "./dist/release.js"
|
|
72
74
|
},
|
|
73
75
|
"files": [
|
|
74
76
|
"dist",
|
|
@@ -85,11 +87,11 @@
|
|
|
85
87
|
"pretty-ms": "^9.2.0",
|
|
86
88
|
"simple-git": "^3.30.0",
|
|
87
89
|
"yaml": "^2.8.2",
|
|
88
|
-
"@lumenflow/core": "1.3.
|
|
89
|
-
"@lumenflow/
|
|
90
|
-
"@lumenflow/memory": "1.3.
|
|
91
|
-
"@lumenflow/
|
|
92
|
-
"@lumenflow/
|
|
90
|
+
"@lumenflow/core": "1.3.6",
|
|
91
|
+
"@lumenflow/metrics": "1.3.6",
|
|
92
|
+
"@lumenflow/memory": "1.3.6",
|
|
93
|
+
"@lumenflow/initiatives": "1.3.6",
|
|
94
|
+
"@lumenflow/agent": "1.3.6"
|
|
93
95
|
},
|
|
94
96
|
"devDependencies": {
|
|
95
97
|
"@vitest/coverage-v8": "^4.0.17",
|
package/dist/gates.d.ts
DELETED
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
/**
|
|
3
|
-
* Quality Gates Runner
|
|
4
|
-
*
|
|
5
|
-
* Runs quality gates with support for docs-only mode and incremental linting.
|
|
6
|
-
*
|
|
7
|
-
* WU-1304: Optimise ESLint gates performance
|
|
8
|
-
* - Uses incremental linting (only files changed since branching from main)
|
|
9
|
-
* - Full lint coverage maintained via CI workflow
|
|
10
|
-
*
|
|
11
|
-
* WU-1433: Coverage gate with mode flag
|
|
12
|
-
* - Checks coverage thresholds for hex core files (≥90% for application layer)
|
|
13
|
-
* - Mode: block (default) fails the gate, warn logs warnings only
|
|
14
|
-
* WU-2334: Changed default from warn to block for TDD enforcement
|
|
15
|
-
*
|
|
16
|
-
* WU-1610: Supabase docs linter
|
|
17
|
-
* - Verifies every table in migrations is documented in schema.md
|
|
18
|
-
* - Fails if any table is missing documentation
|
|
19
|
-
*
|
|
20
|
-
* For type:documentation WUs:
|
|
21
|
-
* - ✅ Run: format:check, spec:linter, prompts:lint, backlog-sync
|
|
22
|
-
* - ❌ Skip: lint, typecheck, supabase-docs:linter, tests, coverage (no code changed)
|
|
23
|
-
*
|
|
24
|
-
* WU-1920: Incremental test execution
|
|
25
|
-
* - Uses Vitest's --changed flag to run only tests for changed files
|
|
26
|
-
* - Full test suite maintained via CI workflow and --full-tests flag
|
|
27
|
-
*
|
|
28
|
-
* WU-2062: Tiered test execution for faster wu:done
|
|
29
|
-
* - Safety-critical tests (PHI, escalation, red-flag) ALWAYS run
|
|
30
|
-
* - Docs-only WUs: lint/typecheck only (auto-detected or --docs-only flag)
|
|
31
|
-
* - High-risk WUs (auth, PHI, RLS, migrations): run integration tests
|
|
32
|
-
* - Standard WUs: changed tests + safety-critical tests
|
|
33
|
-
*
|
|
34
|
-
* Usage:
|
|
35
|
-
* node tools/gates.mjs # Tiered gates (default)
|
|
36
|
-
* node tools/gates.mjs --docs-only # Docs-only gates
|
|
37
|
-
* node tools/gates.mjs --full-lint # Full lint (bypass incremental)
|
|
38
|
-
* node tools/gates.mjs --full-tests # Full tests (bypass incremental)
|
|
39
|
-
* node tools/gates.mjs --coverage-mode=block # Coverage gate in block mode
|
|
40
|
-
*/
|
|
41
|
-
export {};
|
package/dist/gates.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"gates.d.ts","sourceRoot":"","sources":["../src/gates.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG"}
|
package/dist/gates.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"gates.js","sourceRoot":"","sources":["../src/gates.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
/**
|
|
3
|
-
* Initiative Add WU Command (WU-1389)
|
|
4
|
-
*
|
|
5
|
-
* Links an existing WU to an initiative bidirectionally:
|
|
6
|
-
* 1. Adds `initiative: INIT-NNN` field to WU YAML
|
|
7
|
-
* 2. Adds WU ID to initiative `wus: []` array
|
|
8
|
-
*
|
|
9
|
-
* Uses micro-worktree isolation for atomic operations.
|
|
10
|
-
*
|
|
11
|
-
* Usage:
|
|
12
|
-
* pnpm initiative:add-wu --initiative INIT-001 --wu WU-123
|
|
13
|
-
*
|
|
14
|
-
* Features:
|
|
15
|
-
* - Validates both WU and initiative exist before modifying
|
|
16
|
-
* - Idempotent: no error if link already exists
|
|
17
|
-
* - Errors if WU is already linked to a different initiative
|
|
18
|
-
* - Atomic: both files updated in single commit
|
|
19
|
-
*
|
|
20
|
-
* Context: WU-1389 (initial implementation)
|
|
21
|
-
*/
|
|
22
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"initiative-add-wu.d.ts","sourceRoot":"","sources":["../src/initiative-add-wu.ts"],"names":[],"mappings":";AAEA;;;;;;;;;;;;;;;;;;;GAmBG"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"initiative-add-wu.js","sourceRoot":"","sources":["../src/initiative-add-wu.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
/**
|
|
3
|
-
* Initiative Create Helper (WU-1247, WU-1439)
|
|
4
|
-
*
|
|
5
|
-
* Race-safe Initiative creation using micro-worktree isolation.
|
|
6
|
-
*
|
|
7
|
-
* Canonical sequence:
|
|
8
|
-
* 1) Validate inputs (id, slug, title)
|
|
9
|
-
* 2) Ensure on main branch
|
|
10
|
-
* 3) Use micro-worktree to atomically:
|
|
11
|
-
* a) Create temp branch without switching main checkout
|
|
12
|
-
* b) Create INIT-{id}.yaml in micro-worktree
|
|
13
|
-
* c) Commit with "docs: create init-{id} for <title>" message
|
|
14
|
-
* d) Merge to main with ff-only (retry with rebase if needed)
|
|
15
|
-
* e) Push to origin/main
|
|
16
|
-
* f) Cleanup temp branch and micro-worktree
|
|
17
|
-
*
|
|
18
|
-
* Benefits:
|
|
19
|
-
* - Main checkout never modified (no impact on other agents)
|
|
20
|
-
* - Race conditions handled via rebase+retry (up to 3 attempts)
|
|
21
|
-
* - Cleanup guaranteed even on failure
|
|
22
|
-
*
|
|
23
|
-
* Usage:
|
|
24
|
-
* pnpm initiative:create --id INIT-001 --slug shock-protocol --title "Shock Protocol Implementation"
|
|
25
|
-
*
|
|
26
|
-
* Context: WU-1247 (original implementation), WU-1439 (micro-worktree migration)
|
|
27
|
-
*/
|
|
28
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"initiative-create.d.ts","sourceRoot":"","sources":["../src/initiative-create.ts"],"names":[],"mappings":";AAEA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"initiative-create.js","sourceRoot":"","sources":["../src/initiative-create.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
/**
|
|
3
|
-
* Initiative Edit Helper
|
|
4
|
-
*
|
|
5
|
-
* Race-safe Initiative editing using micro-worktree isolation (WU-1451).
|
|
6
|
-
*
|
|
7
|
-
* Enables editing Initiative YAML files with atomic commits, perfect for:
|
|
8
|
-
* - Updating initiative status
|
|
9
|
-
* - Setting blocked_by and blocked_reason
|
|
10
|
-
* - Unblocking initiatives
|
|
11
|
-
* - Adding lanes
|
|
12
|
-
* - Appending notes
|
|
13
|
-
* - Fixing malformed created dates (WU-2547)
|
|
14
|
-
*
|
|
15
|
-
* Uses the micro-worktree pattern with pushOnly mode (WU-1435):
|
|
16
|
-
* 1) Validate inputs (Initiative exists, status is valid enum)
|
|
17
|
-
* 2) Ensure main is clean and up-to-date with origin
|
|
18
|
-
* 3) Create temp branch WITHOUT switching (main checkout stays on main)
|
|
19
|
-
* 4) Create micro-worktree in /tmp pointing to temp branch
|
|
20
|
-
* 5) Apply edits in micro-worktree
|
|
21
|
-
* 6) Commit, push directly to origin/main
|
|
22
|
-
* 7) Cleanup temp branch and micro-worktree
|
|
23
|
-
*
|
|
24
|
-
* Usage:
|
|
25
|
-
* pnpm initiative:edit --id INIT-001 --status in_progress
|
|
26
|
-
* pnpm initiative:edit --id INIT-001 --blocked-by INIT-002 --blocked-reason "Waiting for Phase 1"
|
|
27
|
-
* pnpm initiative:edit --id INIT-001 --unblock
|
|
28
|
-
* pnpm initiative:edit --id INIT-001 --add-lane "Operations: Tooling"
|
|
29
|
-
* pnpm initiative:edit --id INIT-001 --notes "Phase 2 started"
|
|
30
|
-
*
|
|
31
|
-
* Part of WU-1451: Add initiative:edit command for updating initiative status and blockers
|
|
32
|
-
* @see {@link tools/lib/micro-worktree.mjs} - Shared micro-worktree logic
|
|
33
|
-
*/
|
|
34
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"initiative-edit.d.ts","sourceRoot":"","sources":["../src/initiative-edit.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG"}
|