specweave 3.1.7 → 3.1.8

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.
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "specweave",
3
- "version": "3.1.7",
3
+ "version": "3.1.8",
4
4
  "description": "Portable intent, specifications, task evidence, and handoffs across AI coding tools.",
5
5
  "owner": {
6
6
  "name": "Anton Abyzov",
@@ -12,7 +12,7 @@
12
12
  "description": "SpecWeave unified plugin — increment lifecycle (plan, work the ledger, verify, review, complete), cross-tool handoff, GitHub/Jira/ADO sync",
13
13
  "source": "./plugins/specweave",
14
14
  "category": "development",
15
- "version": "3.1.7",
15
+ "version": "3.1.8",
16
16
  "author": {
17
17
  "name": "Anton Abyzov",
18
18
  "email": "anton.abyzov@gmail.com"
package/bin/specweave.js CHANGED
@@ -106,6 +106,16 @@ program
106
106
  await resumeCommand(incrementId);
107
107
  });
108
108
 
109
+ program
110
+ .command('reopen <increment-id>')
111
+ .description('Correct a completed increment back to planned (never active); needs --reason and --workspace')
112
+ .option('-r, --reason <text>', 'Why it is reopened (kept in metadata.reopened)')
113
+ .option('--json', 'Print the result as JSON')
114
+ .action(async (incrementId, options) => {
115
+ const { reopenCommand } = await import('../dist/src/cli/commands/reopen.js');
116
+ process.exitCode = await reopenCommand(incrementId, options);
117
+ });
118
+
109
119
  program
110
120
  .command('abandon <increment-id>')
111
121
  .description('Abandon an increment')
@@ -0,0 +1,17 @@
1
+ /**
2
+ * CLI: `specweave --workspace <root> reopen <id> --reason <text>` — correct a
3
+ * completed increment back to planned. Never activates; see core/increment/reopen.
4
+ *
5
+ * Exit 0: reopened, or already reopened. 1: refused or failed (nothing written).
6
+ *
7
+ * @module cli/commands/reopen
8
+ */
9
+ export interface ReopenCommandOptions {
10
+ reason?: string;
11
+ json?: boolean;
12
+ /** Workspace root (tests); the CLI passes it through SPECWEAVE_WORKSPACE. */
13
+ workspace?: string;
14
+ env?: NodeJS.ProcessEnv;
15
+ }
16
+ export declare function reopenCommand(incrementId: string, opts?: ReopenCommandOptions): Promise<number>;
17
+ //# sourceMappingURL=reopen.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reopen.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/reopen.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAKH,MAAM,WAAW,oBAAoB;IACnC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,6EAA6E;IAC7E,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;CACzB;AAED,wBAAsB,aAAa,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,GAAE,oBAAyB,GAAG,OAAO,CAAC,MAAM,CAAC,CA+BzG"}
@@ -0,0 +1,46 @@
1
+ /**
2
+ * CLI: `specweave --workspace <root> reopen <id> --reason <text>` — correct a
3
+ * completed increment back to planned. Never activates; see core/increment/reopen.
4
+ *
5
+ * Exit 0: reopened, or already reopened. 1: refused or failed (nothing written).
6
+ *
7
+ * @module cli/commands/reopen
8
+ */
9
+ import chalk from 'chalk';
10
+ import { reopenIncrement, ReopenRefused } from '../../core/increment/reopen.js';
11
+ export async function reopenCommand(incrementId, opts = {}) {
12
+ const out = (s) => process.stdout.write(s + '\n');
13
+ let result;
14
+ try {
15
+ result = reopenIncrement({ incrementId, reason: opts.reason, workspace: opts.workspace, env: opts.env });
16
+ }
17
+ catch (e) {
18
+ const refused = e instanceof ReopenRefused;
19
+ const message = e instanceof Error ? e.message : String(e);
20
+ if (opts.json)
21
+ out(JSON.stringify({ error: refused ? e.code : 'failed', message, ...(refused && e.owners.length ? { owners: e.owners } : {}) }, null, 2));
22
+ else
23
+ process.stderr.write(chalk.red(`Not reopened: ${message}`) + '\n');
24
+ return 1;
25
+ }
26
+ if (opts.json) {
27
+ out(JSON.stringify(result, null, 2));
28
+ return 0;
29
+ }
30
+ if (result.unchanged) {
31
+ out(`${result.id} is already reopened (planned since ${result.at}, by ${result.by}). Nothing changed.`);
32
+ }
33
+ else {
34
+ out(chalk.green(`Reopened ${result.id}: completed → planned.`) + ` Reason: ${result.reason}`);
35
+ const closure = result.previous.approvedAt ? `closure of ${result.previous.approvedAt}` : 'closure';
36
+ out(chalk.gray(` The ${closure} is kept in metadata.reopened; the ledger and reports are unchanged.`));
37
+ }
38
+ if (result.unfinished.length) {
39
+ out(` Unfinished: ${result.unfinished.map((t) => `${t.task} ${t.status}${t.by ? ` (${t.by})` : ''}`).join(', ')}`);
40
+ }
41
+ const { count, limit } = result.active;
42
+ out(` Not active. Start it separately when there is capacity: specweave start ${result.id}` +
43
+ chalk.gray(` (${count} active${limit ? ` of ${limit}` : ''})`));
44
+ return 0;
45
+ }
46
+ //# sourceMappingURL=reopen.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reopen.js","sourceRoot":"","sources":["../../../../src/cli/commands/reopen.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,88 @@
1
+ /**
2
+ * `specweave reopen`: correct a completed increment back to `planned`.
3
+ *
4
+ * For an increment closed too early (source shipped, release or scope still
5
+ * open). It never activates: `specweave start` stays the separate step, so a
6
+ * workspace at capacity can still record the correction. Every check runs
7
+ * before anything is written, and a refusal changes nothing:
8
+ *
9
+ * 1. a reason (stored in the audit record);
10
+ * 2. an explicit workspace (`--workspace` or `SPECWEAVE_WORKSPACE`); the
11
+ * increment folder must really live inside it, and its metadata.json,
12
+ * spec.md and ledger.jsonl must be regular files, never symlinks;
13
+ * 3. status `completed`;
14
+ * 4. no task claimed, stale or blocked by another agent. Ownership moves only
15
+ * through `specweave task release`, never through this command.
16
+ *
17
+ * Nothing here goes through MetadataManager.read/write or ConfigManager: those
18
+ * persist schema and config repairs, which a refusal must not do. Reopens of
19
+ * one increment are serialized by an exclusive lock file. Ledger writers take
20
+ * no lock, so both new files are staged and flushed first, then the ledger,
21
+ * metadata and spec bytes are compared with the ones checked, and only renames
22
+ * follow. Any difference aborts with nothing changed. What remains is the gap
23
+ * between that compare and the renames; closing it needs every ledger writer
24
+ * to take the same lock.
25
+ *
26
+ * The ledger, reports/ and the spec body are left byte-identical; only the
27
+ * frontmatter `status:` line changes, and the closure moves into
28
+ * `metadata.reopened[]`.
29
+ *
30
+ * @module core/increment/reopen
31
+ */
32
+ import { IncrementStatus, type ReopenRecord } from '../types/increment-metadata.js';
33
+ import { type TaskLedgerStatus } from '../tasks/ledger.js';
34
+ export type ReopenRefusal = 'no-reason' | 'no-workspace' | 'not-found' | 'outside-workspace' | 'not-completed' | 'foreign-owner' | 'busy' | 'changed';
35
+ export declare class ReopenRefused extends Error {
36
+ readonly code: ReopenRefusal;
37
+ readonly owners: UnfinishedTask[];
38
+ constructor(code: ReopenRefusal, message: string, owners?: UnfinishedTask[]);
39
+ }
40
+ export interface UnfinishedTask {
41
+ task: string;
42
+ status: TaskLedgerStatus;
43
+ by?: string;
44
+ }
45
+ export interface ReopenResult {
46
+ id: string;
47
+ root: string;
48
+ from: IncrementStatus;
49
+ to: IncrementStatus.PLANNED;
50
+ at: string;
51
+ by: string;
52
+ reason: string;
53
+ /** The closure this reopen moved into `metadata.reopened[]`. */
54
+ previous: Pick<ReopenRecord, 'approvedAt' | 'closeReason' | 'readyForReviewAt'>;
55
+ unfinished: UnfinishedTask[];
56
+ /** True when the increment was already reopened and nothing was written. */
57
+ unchanged: boolean;
58
+ /** Active increments in the workspace and the advisory limit (0 = off). */
59
+ active: {
60
+ count: number;
61
+ limit: number;
62
+ };
63
+ }
64
+ export interface ReopenOptions {
65
+ incrementId: string;
66
+ reason?: string;
67
+ /** Workspace root; defaults to SPECWEAVE_WORKSPACE (bin/specweave.js sets it from --workspace). */
68
+ workspace?: string;
69
+ env?: NodeJS.ProcessEnv;
70
+ now?: Date;
71
+ /** Tests only: fault and race injection points in the commit. */
72
+ hooks?: {
73
+ /** After both temp files are staged, before the final re-check and the renames. */
74
+ beforeCommit?: () => void;
75
+ /** After spec.md is renamed into place, before metadata.json is. */
76
+ afterSpecCommit?: () => void;
77
+ /** During a rollback, after the restored spec.md is staged, before its compare and rename. */
78
+ beforeRestore?: () => void;
79
+ };
80
+ }
81
+ /**
82
+ * Set the frontmatter `status:` line, leaving every other byte as it was. A spec
83
+ * with no frontmatter, or no top-level status line in it, is returned unchanged:
84
+ * 3.0 specs keep their status in metadata.json only.
85
+ */
86
+ export declare function withFrontmatterStatus(content: string, status: string): string;
87
+ export declare function reopenIncrement(opts: ReopenOptions): ReopenResult;
88
+ //# sourceMappingURL=reopen.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reopen.d.ts","sourceRoot":"","sources":["../../../../src/core/increment/reopen.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAMH,OAAO,EACL,eAAe,EAGf,KAAK,YAAY,EAClB,MAAM,gCAAgC,CAAC;AAGxC,OAAO,EAA0C,KAAK,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAGnG,MAAM,MAAM,aAAa,GACrB,WAAW,GACX,cAAc,GACd,WAAW,GACX,mBAAmB,GACnB,eAAe,GACf,eAAe,GACf,MAAM,GACN,SAAS,CAAC;AAEd,qBAAa,aAAc,SAAQ,KAAK;IAC1B,QAAQ,CAAC,IAAI,EAAE,aAAa;IAAmB,QAAQ,CAAC,MAAM,EAAE,cAAc,EAAE;gBAAvE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,EAAW,MAAM,GAAE,cAAc,EAAO;CAIlG;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,gBAAgB,CAAC;IACzB,EAAE,CAAC,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,eAAe,CAAC;IACtB,EAAE,EAAE,eAAe,CAAC,OAAO,CAAC;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,gEAAgE;IAChE,QAAQ,EAAE,IAAI,CAAC,YAAY,EAAE,YAAY,GAAG,aAAa,GAAG,kBAAkB,CAAC,CAAC;IAChF,UAAU,EAAE,cAAc,EAAE,CAAC;IAC7B,4EAA4E;IAC5E,SAAS,EAAE,OAAO,CAAC;IACnB,2EAA2E;IAC3E,MAAM,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;CAC1C;AAED,MAAM,WAAW,aAAa;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,mGAAmG;IACnG,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IACxB,GAAG,CAAC,EAAE,IAAI,CAAC;IACX,iEAAiE;IACjE,KAAK,CAAC,EAAE;QACN,mFAAmF;QACnF,YAAY,CAAC,EAAE,MAAM,IAAI,CAAC;QAC1B,oEAAoE;QACpE,eAAe,CAAC,EAAE,MAAM,IAAI,CAAC;QAC7B,8FAA8F;QAC9F,aAAa,CAAC,EAAE,MAAM,IAAI,CAAC;KAC5B,CAAC;CACH;AAmID;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAW7E;AAkBD,wBAAgB,eAAe,CAAC,IAAI,EAAE,aAAa,GAAG,YAAY,CA4GjE"}
@@ -0,0 +1,321 @@
1
+ /**
2
+ * `specweave reopen`: correct a completed increment back to `planned`.
3
+ *
4
+ * For an increment closed too early (source shipped, release or scope still
5
+ * open). It never activates: `specweave start` stays the separate step, so a
6
+ * workspace at capacity can still record the correction. Every check runs
7
+ * before anything is written, and a refusal changes nothing:
8
+ *
9
+ * 1. a reason (stored in the audit record);
10
+ * 2. an explicit workspace (`--workspace` or `SPECWEAVE_WORKSPACE`); the
11
+ * increment folder must really live inside it, and its metadata.json,
12
+ * spec.md and ledger.jsonl must be regular files, never symlinks;
13
+ * 3. status `completed`;
14
+ * 4. no task claimed, stale or blocked by another agent. Ownership moves only
15
+ * through `specweave task release`, never through this command.
16
+ *
17
+ * Nothing here goes through MetadataManager.read/write or ConfigManager: those
18
+ * persist schema and config repairs, which a refusal must not do. Reopens of
19
+ * one increment are serialized by an exclusive lock file. Ledger writers take
20
+ * no lock, so both new files are staged and flushed first, then the ledger,
21
+ * metadata and spec bytes are compared with the ones checked, and only renames
22
+ * follow. Any difference aborts with nothing changed. What remains is the gap
23
+ * between that compare and the renames; closing it needs every ledger writer
24
+ * to take the same lock.
25
+ *
26
+ * The ledger, reports/ and the spec body are left byte-identical; only the
27
+ * frontmatter `status:` line changes, and the closure moves into
28
+ * `metadata.reopened[]`.
29
+ *
30
+ * @module core/increment/reopen
31
+ */
32
+ import * as fs from 'fs';
33
+ import * as path from 'path';
34
+ import { randomBytes } from 'crypto';
35
+ import { resolveDisciplineLimits } from './discipline-checker.js';
36
+ import { IncrementStatus, LEGACY_STATUS_MAP, countsTowardWipLimit, } from '../types/increment-metadata.js';
37
+ import { canonicalPath, isWithin } from '../workspace/context.js';
38
+ import { resolveIncrementId } from '../../utils/resolve-increment-id.js';
39
+ import { foldLedgerFile, getAgentId, ledgerPath } from '../tasks/ledger.js';
40
+ import { loadTaskBoard } from '../tasks/task-board.js';
41
+ export class ReopenRefused extends Error {
42
+ constructor(code, message, owners = []) {
43
+ super(message);
44
+ this.code = code;
45
+ this.owners = owners;
46
+ this.name = 'ReopenRefused';
47
+ }
48
+ }
49
+ const HELD = new Set(['claimed', 'stale', 'blocked']);
50
+ const LOCK_FILE = '.reopen.lock';
51
+ const CLOSURE_FIELDS = ['approvedAt', 'closeReason', 'readyForReviewAt'];
52
+ function normalStatus(raw) {
53
+ const status = typeof raw === 'string' ? raw : '';
54
+ return LEGACY_STATUS_MAP[status.toLowerCase()] ?? status;
55
+ }
56
+ function activeCount(root) {
57
+ const dir = path.join(root, '.specweave', 'increments');
58
+ let count = 0;
59
+ for (const entry of fs.readdirSync(dir, { withFileTypes: true })) {
60
+ if (!entry.isDirectory())
61
+ continue;
62
+ try {
63
+ const raw = JSON.parse(fs.readFileSync(path.join(dir, entry.name, 'metadata.json'), 'utf8'));
64
+ if (countsTowardWipLimit(normalStatus(raw?.status)))
65
+ count++;
66
+ }
67
+ catch { /* no or unreadable metadata: not active */ }
68
+ }
69
+ return count;
70
+ }
71
+ /** The advisory limit, read without ConfigManager (whose load migrates and rewrites config.json). */
72
+ function activeLimit(root) {
73
+ try {
74
+ const config = JSON.parse(fs.readFileSync(path.join(root, '.specweave', 'config.json'), 'utf8'));
75
+ return resolveDisciplineLimits(config?.limits).activeIncrements;
76
+ }
77
+ catch {
78
+ return resolveDisciplineLimits(undefined).activeIncrements;
79
+ }
80
+ }
81
+ /** Every task not done or skipped: spec tasks first, then ledger-only ids. */
82
+ function unfinishedTasks(incrementDir) {
83
+ const fold = foldLedgerFile(ledgerPath(incrementDir));
84
+ const out = [];
85
+ const seen = new Set();
86
+ try {
87
+ for (const t of loadTaskBoard(incrementDir).tasks) {
88
+ seen.add(t.id);
89
+ if (t.state.status !== 'done' && t.state.status !== 'skipped')
90
+ out.push({ task: t.id, status: t.state.status, by: t.state.by });
91
+ }
92
+ }
93
+ catch { /* unparsable tasks: the ledger alone still names the holders */ }
94
+ for (const [task, state] of fold.tasks) {
95
+ if (seen.has(task) || state.status === 'done' || state.status === 'skipped')
96
+ continue;
97
+ out.push({ task, status: state.status, by: state.by });
98
+ }
99
+ return out;
100
+ }
101
+ function workspaceRoot(selected) {
102
+ if (!selected?.trim()) {
103
+ throw new ReopenRefused('no-workspace', 'Reopening rewrites a closed increment: name its workspace with --workspace <root>.');
104
+ }
105
+ let root;
106
+ try {
107
+ root = canonicalPath(selected);
108
+ }
109
+ catch {
110
+ throw new ReopenRefused('not-found', `Workspace does not exist: ${selected}`);
111
+ }
112
+ if (!fs.existsSync(path.join(root, '.specweave', 'increments'))) {
113
+ throw new ReopenRefused('not-found', `No .specweave/increments in workspace ${root}`);
114
+ }
115
+ return root;
116
+ }
117
+ /** 'missing', 'file', or 'other' (a symlink, folder or device), without following links. */
118
+ function entryKind(file) {
119
+ try {
120
+ return fs.lstatSync(file).isFile() ? 'file' : 'other';
121
+ }
122
+ catch {
123
+ return 'missing';
124
+ }
125
+ }
126
+ function readOr(file, fallback) {
127
+ return entryKind(file) === 'file' ? fs.readFileSync(file, 'utf8') : fallback;
128
+ }
129
+ /**
130
+ * Write `content` to a fresh, flushed temp file next to `file`, ready to be
131
+ * renamed over it. The temp is created exclusively (O_CREAT|O_EXCL), so a
132
+ * planted file or symlink at that name makes the write fail instead of being
133
+ * followed.
134
+ */
135
+ function stageFile(file, content) {
136
+ const tmp = `${file}.${process.pid}.${randomBytes(6).toString('hex')}.tmp`;
137
+ const mode = fs.statSync(file).mode & 0o777;
138
+ const fd = fs.openSync(tmp, 'wx', mode);
139
+ try {
140
+ fs.writeFileSync(fd, content, 'utf8');
141
+ fs.fsyncSync(fd);
142
+ }
143
+ catch (e) {
144
+ fs.closeSync(fd);
145
+ fs.rmSync(tmp, { force: true });
146
+ throw e;
147
+ }
148
+ fs.closeSync(fd);
149
+ return tmp;
150
+ }
151
+ function replaceFile(file, content) {
152
+ fs.renameSync(stageFile(file, content), file);
153
+ }
154
+ /**
155
+ * Undo the spec.md status line after metadata.json could not be written, but
156
+ * only if spec.md still holds exactly what this reopen wrote: another writer's
157
+ * edit is never overwritten, it is reported instead.
158
+ */
159
+ function restoreSpec(specFile, specBefore, specAfter, cause, beforeRestore) {
160
+ const why = cause instanceof Error ? cause.message : String(cause);
161
+ let tmp;
162
+ try {
163
+ tmp = stageFile(specFile, specBefore);
164
+ }
165
+ catch (stageError) {
166
+ throw new Error(`${why}; restoring ${specFile} also failed: ${stageError instanceof Error ? stageError.message : String(stageError)}`);
167
+ }
168
+ try {
169
+ beforeRestore?.();
170
+ if (readOr(specFile, '') !== specAfter) {
171
+ throw new Error(`${why}; ${specFile} was edited by another writer meanwhile and is left as it is. Its frontmatter says status: planned while metadata.json still says completed: run specweave reopen again, or set the line back to completed.`);
172
+ }
173
+ fs.renameSync(tmp, specFile);
174
+ }
175
+ finally {
176
+ fs.rmSync(tmp, { force: true });
177
+ }
178
+ }
179
+ /**
180
+ * Set the frontmatter `status:` line, leaving every other byte as it was. A spec
181
+ * with no frontmatter, or no top-level status line in it, is returned unchanged:
182
+ * 3.0 specs keep their status in metadata.json only.
183
+ */
184
+ export function withFrontmatterStatus(content, status) {
185
+ const open = content.match(/^---(\r?\n)/);
186
+ if (!open)
187
+ return content;
188
+ const start = open[0].length;
189
+ const close = /(^|\r?\n)---[ \t]*(\r?\n|$)/g;
190
+ close.lastIndex = start - open[1].length;
191
+ const end = close.exec(content);
192
+ if (!end)
193
+ return content;
194
+ const frontmatter = content.slice(start, end.index);
195
+ const updated = frontmatter.replace(/^status:[^\r\n]*/m, `status: ${status}`);
196
+ return updated === frontmatter ? content : content.slice(0, start) + updated + content.slice(end.index);
197
+ }
198
+ function acquireLock(dir, id) {
199
+ const lock = path.join(dir, LOCK_FILE);
200
+ let fd;
201
+ try {
202
+ fd = fs.openSync(lock, 'wx');
203
+ }
204
+ catch (e) {
205
+ if (e.code === 'EEXIST') {
206
+ throw new ReopenRefused('busy', `Another reopen of ${id} is running (${lock}). If none is, delete that file and run again.`);
207
+ }
208
+ throw e;
209
+ }
210
+ fs.writeSync(fd, `${process.pid} ${new Date().toISOString()}\n`);
211
+ fs.closeSync(fd);
212
+ return () => fs.rmSync(lock, { force: true });
213
+ }
214
+ export function reopenIncrement(opts) {
215
+ const env = opts.env ?? process.env;
216
+ const reason = opts.reason?.trim() ?? '';
217
+ if (!reason)
218
+ throw new ReopenRefused('no-reason', 'Say why with --reason "<text>"; it is kept in metadata.reopened.');
219
+ const root = workspaceRoot(opts.workspace ?? env.SPECWEAVE_WORKSPACE);
220
+ const resolved = resolveIncrementId(opts.incrementId, root);
221
+ if (Array.isArray(resolved)) {
222
+ throw new ReopenRefused('not-found', `"${opts.incrementId}" matches ${resolved.join(', ')} in ${root}; use the full id.`);
223
+ }
224
+ if (!resolved)
225
+ throw new ReopenRefused('not-found', `No increment "${opts.incrementId}" in workspace ${root}.`);
226
+ const id = resolved;
227
+ const dir = canonicalPath(path.join(root, '.specweave', 'increments', id));
228
+ if (!isWithin(root, dir)) {
229
+ throw new ReopenRefused('outside-workspace', `${id} resolves outside workspace ${root} (${dir}); reopen it from the workspace that owns it.`);
230
+ }
231
+ const metadataFile = path.join(dir, 'metadata.json');
232
+ const specFile = path.join(dir, 'spec.md');
233
+ const ledgerFile = ledgerPath(dir);
234
+ for (const file of [metadataFile, specFile, ledgerFile]) {
235
+ if (entryKind(file) === 'other') {
236
+ throw new ReopenRefused('outside-workspace', `${file} is a symlink or not a regular file; reopen only rewrites real files inside the workspace.`);
237
+ }
238
+ }
239
+ if (entryKind(metadataFile) === 'missing') {
240
+ throw new ReopenRefused('not-completed', `${id} has no metadata.json, so it was never completed.`);
241
+ }
242
+ const release = acquireLock(dir, id);
243
+ try {
244
+ const metadataBefore = fs.readFileSync(metadataFile, 'utf8');
245
+ const raw = JSON.parse(metadataBefore);
246
+ const status = normalStatus(raw.status);
247
+ const limit = activeLimit(root);
248
+ if (status === IncrementStatus.PLANNED && Array.isArray(raw.reopened) && raw.reopened.length) {
249
+ const last = raw.reopened[raw.reopened.length - 1];
250
+ return {
251
+ id, root, from: IncrementStatus.COMPLETED, to: IncrementStatus.PLANNED, at: last.at, by: last.by, reason: last.reason,
252
+ previous: { approvedAt: last.approvedAt, closeReason: last.closeReason, readyForReviewAt: last.readyForReviewAt },
253
+ unfinished: unfinishedTasks(dir), unchanged: true, active: { count: activeCount(root), limit },
254
+ };
255
+ }
256
+ if (status !== IncrementStatus.COMPLETED) {
257
+ const hint = status === IncrementStatus.ABANDONED ? ' An abandoned increment comes back with specweave resume.' : '';
258
+ throw new ReopenRefused('not-completed', `${id} is ${status || 'unknown'}; only a completed increment can be reopened.${hint}`);
259
+ }
260
+ const by = getAgentId(env);
261
+ const ledgerBefore = readOr(ledgerFile, '');
262
+ const unfinished = unfinishedTasks(dir);
263
+ const foreign = unfinished.filter((t) => HELD.has(t.status) && t.by && t.by !== by);
264
+ if (foreign.length) {
265
+ throw new ReopenRefused('foreign-owner', `${id} has tasks held by another agent: ${foreign.map((t) => `${t.task} ${t.status} by ${t.by}`).join(', ')}. ` +
266
+ `Only that agent can reopen it (you are ${by}); ownership moves with specweave task release, not here.`, foreign);
267
+ }
268
+ const at = (opts.now ?? new Date()).toISOString();
269
+ const previous = {};
270
+ for (const key of CLOSURE_FIELDS)
271
+ if (raw[key])
272
+ previous[key] = raw[key];
273
+ const record = { from: IncrementStatus.COMPLETED, to: IncrementStatus.PLANNED, at, by, reason, ...previous };
274
+ const next = {
275
+ ...raw,
276
+ status: IncrementStatus.PLANNED,
277
+ lastActivity: at,
278
+ updated: at,
279
+ reopened: [...(Array.isArray(raw.reopened) ? raw.reopened : []), record],
280
+ };
281
+ for (const key of CLOSURE_FIELDS)
282
+ delete next[key];
283
+ const metadataAfter = JSON.stringify(next, null, 2) + (metadataBefore.endsWith('\n') ? '\n' : '');
284
+ const specBefore = entryKind(specFile) === 'file' ? fs.readFileSync(specFile, 'utf8') : undefined;
285
+ const specAfter = specBefore === undefined ? undefined : withFrontmatterStatus(specBefore, IncrementStatus.PLANNED);
286
+ const specChanged = specBefore !== undefined && specAfter !== specBefore;
287
+ // Stage and flush both files first, so the re-check below is followed only by renames.
288
+ const staged = [];
289
+ let specCommitted = false;
290
+ try {
291
+ const metadataTmp = stageFile(metadataFile, metadataAfter);
292
+ staged.push(metadataTmp);
293
+ const specTmp = specChanged ? stageFile(specFile, specAfter) : undefined;
294
+ if (specTmp)
295
+ staged.push(specTmp);
296
+ opts.hooks?.beforeCommit?.();
297
+ if (readOr(ledgerFile, '') !== ledgerBefore || fs.readFileSync(metadataFile, 'utf8') !== metadataBefore
298
+ || (specBefore !== undefined && readOr(specFile, '') !== specBefore)) {
299
+ throw new ReopenRefused('changed', `${id} changed while it was being reopened (a ledger, metadata or spec write); nothing was changed. Run it again.`);
300
+ }
301
+ if (specTmp) {
302
+ fs.renameSync(specTmp, specFile);
303
+ specCommitted = true;
304
+ opts.hooks?.afterSpecCommit?.();
305
+ }
306
+ fs.renameSync(metadataTmp, metadataFile);
307
+ }
308
+ catch (e) {
309
+ for (const tmp of staged)
310
+ fs.rmSync(tmp, { force: true });
311
+ if (specCommitted)
312
+ restoreSpec(specFile, specBefore, specAfter, e, opts.hooks?.beforeRestore);
313
+ throw e;
314
+ }
315
+ return { id, root, from: IncrementStatus.COMPLETED, to: IncrementStatus.PLANNED, at, by, reason, previous, unfinished, unchanged: false, active: { count: activeCount(root), limit } };
316
+ }
317
+ finally {
318
+ release();
319
+ }
320
+ }
321
+ //# sourceMappingURL=reopen.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reopen.js","sourceRoot":"","sources":["../../../../src/core/increment/reopen.ts"],"names":[],"mappings":"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"}
@@ -121,6 +121,24 @@ export interface IncrementMetadata {
121
121
  supersedes?: string;
122
122
  /** Parent increment id when this increment is a split-off / follow-up child. */
123
123
  parent?: string;
124
+ /**
125
+ * Each `specweave reopen` of this increment, oldest first. The closure it
126
+ * undid (`approvedAt`, `closeReason`, `readyForReviewAt`) moves here, so a
127
+ * reopened increment keeps its history without showing a completion date.
128
+ */
129
+ reopened?: ReopenRecord[];
130
+ }
131
+ /** One `specweave reopen`: completed → planned, never active. */
132
+ export interface ReopenRecord {
133
+ from: IncrementStatus.COMPLETED;
134
+ to: IncrementStatus.PLANNED;
135
+ at: string;
136
+ /** Agent id that ran the command (`SPECWEAVE_AGENT`, else `<tool>@<host>`). */
137
+ by: string;
138
+ reason: string;
139
+ approvedAt?: string;
140
+ closeReason?: string;
141
+ readyForReviewAt?: string;
124
142
  }
125
143
  /**
126
144
  * Statuses seen in the wild that are not part of the 2.0 vocabulary, mapped to
@@ -1 +1 @@
1
- {"version":3,"file":"increment-metadata.d.ts","sourceRoot":"","sources":["../../../../src/core/types/increment-metadata.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"increment-metadata.d.ts","sourceRoot":"","sources":["../../../../src/core/types/increment-metadata.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"increment-metadata.js","sourceRoot":"","sources":["../../../../src/core/types/increment-metadata.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"increment-metadata.js","sourceRoot":"","sources":["../../../../src/core/types/increment-metadata.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "specweave",
3
- "version": "3.1.7",
3
+ "version": "3.1.8",
4
4
  "description": "Keep intent, specifications, and verified progress portable across AI coding tools. A local live work board, append-only task evidence, explicit handoffs, and optional GitHub/Jira/Azure DevOps integrations.",
5
5
  "type": "module",
6
6
  "bin": {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "sw",
3
3
  "description": "Portable intent and verified progress across coding tools. Six core workflow skills plus opt-in grill-me, glossary, sync, project and jev, two default lifecycle hooks, and a deterministic CLI and live local dashboard.",
4
- "version": "3.1.7",
4
+ "version": "3.1.8",
5
5
  "author": {
6
6
  "name": "SpecWeave Team",
7
7
  "url": "https://spec-weave.com"