specweave 3.1.6 → 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.
Files changed (33) hide show
  1. package/.claude-plugin/marketplace.json +2 -2
  2. package/bin/specweave.js +11 -1
  3. package/dist/src/cli/commands/reopen.d.ts +17 -0
  4. package/dist/src/cli/commands/reopen.d.ts.map +1 -0
  5. package/dist/src/cli/commands/reopen.js +46 -0
  6. package/dist/src/cli/commands/reopen.js.map +1 -0
  7. package/dist/src/cli/helpers/init/gitignore-generator.d.ts.map +1 -1
  8. package/dist/src/cli/helpers/init/gitignore-generator.js +1 -0
  9. package/dist/src/cli/helpers/init/gitignore-generator.js.map +1 -1
  10. package/dist/src/core/hooks/handlers/require-increment.d.ts.map +1 -1
  11. package/dist/src/core/hooks/handlers/require-increment.js +11 -6
  12. package/dist/src/core/hooks/handlers/require-increment.js.map +1 -1
  13. package/dist/src/core/increment/reopen.d.ts +88 -0
  14. package/dist/src/core/increment/reopen.d.ts.map +1 -0
  15. package/dist/src/core/increment/reopen.js +321 -0
  16. package/dist/src/core/increment/reopen.js.map +1 -0
  17. package/dist/src/core/session/nested-repos.d.ts +16 -4
  18. package/dist/src/core/session/nested-repos.d.ts.map +1 -1
  19. package/dist/src/core/session/nested-repos.js +85 -23
  20. package/dist/src/core/session/nested-repos.js.map +1 -1
  21. package/dist/src/core/tasks/verify-runner.d.ts +21 -0
  22. package/dist/src/core/tasks/verify-runner.d.ts.map +1 -1
  23. package/dist/src/core/tasks/verify-runner.js +9 -4
  24. package/dist/src/core/tasks/verify-runner.js.map +1 -1
  25. package/dist/src/core/types/increment-metadata.d.ts +18 -0
  26. package/dist/src/core/types/increment-metadata.d.ts.map +1 -1
  27. package/dist/src/core/types/increment-metadata.js.map +1 -1
  28. package/package.json +1 -1
  29. package/plugins/specweave/.claude-plugin/plugin.json +1 -1
  30. package/plugins/specweave/skills/do/SKILL.md +1 -1
  31. package/plugins/specweave/skills/handoff/SKILL.md +2 -2
  32. package/src/templates/.gitignore.template +1 -0
  33. package/src/templates/AGENTS.md.template +2 -2
@@ -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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"}
@@ -2,9 +2,9 @@
2
2
  * Nested-repo scan for `specweave handoff --all` (read-only).
3
3
  *
4
4
  * An umbrella workspace keeps product code in its own Git checkouts under
5
- * `repositories/<org>/<repo>`, usually gitignored by the umbrella, so the
6
- * umbrella's own `git status` never sees them. This module lists every
7
- * checkout there (plus the worktrees Git knows about for each, wherever they
5
+ * `repositories/<org>/<repo>` (or any nested folder with its own `.git`),
6
+ * usually gitignored by the umbrella, so the umbrella's own `git status`
7
+ * never sees them. This module lists every checkout there (plus the worktrees Git knows about for each, wherever they
8
8
  * live, and the workspace root itself) and reports the ones holding work that
9
9
  * exists only on this machine: uncommitted files, commits ahead of the
10
10
  * upstream, or a branch with no remote.
@@ -65,7 +65,19 @@ export interface NestedRepoScan {
65
65
  /** Checkouts with local-only work, sorted by path. */
66
66
  flagged: CheckoutState[];
67
67
  }
68
- /** `repositories/<org>/<repo>` checkouts (and a checkout directly at `repositories/<repo>`). */
68
+ /** How deep below the root nested checkouts are looked for (`repositories/<org>/<repo>` is 3). */
69
+ export declare const NESTED_DEPTH = 3;
70
+ /** Most directories one discovery reads, so a huge plain folder cannot stall a command. */
71
+ export declare const NESTED_DIR_BUDGET = 5000;
72
+ /**
73
+ * Nested Git checkouts under a workspace root: the repositories registered in
74
+ * `.specweave/config.json`, then any folder up to {@link NESTED_DEPTH} levels
75
+ * down that has a `.git` folder or file, whatever it is named
76
+ * (`repositories/<org>/<repo>`, `apps/api`, `my-service`). The walk stays
77
+ * inside the root, stops at the first checkout on each path, and lists each
78
+ * real path once, preferring a registered or non-symlinked path over an
79
+ * alias. The root itself is not listed.
80
+ */
69
81
  export declare function findNestedCheckouts(root: string): string[];
70
82
  /** Increment ids (4 digits, not part of a longer number) that appear in the text. */
71
83
  export declare function matchIncrementIds(text: string, ids: string[]): string[];
@@ -1 +1 @@
1
- {"version":3,"file":"nested-repos.d.ts","sourceRoot":"","sources":["../../../../src/core/session/nested-repos.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAOH,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,aAAa;IAC5B,qCAAqC;IACrC,IAAI,EAAE,MAAM,CAAC;IACb,uEAAuE;IACvE,OAAO,EAAE,MAAM,CAAC;IAChB,oCAAoC;IACpC,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,OAAO,CAAC;IAClB,+CAA+C;IAC/C,GAAG,EAAE,MAAM,CAAC;IACZ,2CAA2C;IAC3C,KAAK,EAAE,MAAM,CAAC;IACd,sFAAsF;IACtF,KAAK,EAAE,MAAM,CAAC;IACd,mEAAmE;IACnE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,iFAAiF;IACjF,QAAQ,EAAE,OAAO,CAAC;IAClB,mCAAmC;IACnC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,mDAAmD;IACnD,EAAE,CAAC,EAAE,eAAe,CAAC;IACrB,8DAA8D;IAC9D,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,kFAAkF;IAClF,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,MAAM,MAAM,QAAQ,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,eAAe,GAAG,SAAS,CAAC,CAAC;AAE7F,MAAM,WAAW,WAAW;IAC1B,yDAAyD;IACzD,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,kFAAkF;IAClF,QAAQ,CAAC,EAAE,QAAQ,GAAG,KAAK,CAAC;IAC5B,0CAA0C;IAC1C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,iEAAiE;IACjE,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,MAAM,WAAW,cAAc;IAC7B,4CAA4C;IAC5C,OAAO,EAAE,MAAM,CAAC;IAChB,sDAAsD;IACtD,OAAO,EAAE,aAAa,EAAE,CAAC;CAC1B;AAiCD,gGAAgG;AAChG,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAW1D;AASD,qFAAqF;AACrF,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAEvE;AAED,+FAA+F;AAC/F,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAA;CAAE,CAkBhJ;AAED,kFAAkF;AAClF,wBAAsB,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,YAAY,GAAE,MAAM,EAAO,GAAG,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,CA+C3H;AAED,uGAAuG;AACvG,eAAO,MAAM,UAAU,EAAE,QAUxB,CAAC;AAmBF;;;GAGG;AACH,wBAAsB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,GAAE,WAAgB,GAAG,OAAO,CAAC,cAAc,CAAC,CAiCnG"}
1
+ {"version":3,"file":"nested-repos.d.ts","sourceRoot":"","sources":["../../../../src/core/session/nested-repos.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAOH,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,aAAa;IAC5B,qCAAqC;IACrC,IAAI,EAAE,MAAM,CAAC;IACb,uEAAuE;IACvE,OAAO,EAAE,MAAM,CAAC;IAChB,oCAAoC;IACpC,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,OAAO,CAAC;IAClB,+CAA+C;IAC/C,GAAG,EAAE,MAAM,CAAC;IACZ,2CAA2C;IAC3C,KAAK,EAAE,MAAM,CAAC;IACd,sFAAsF;IACtF,KAAK,EAAE,MAAM,CAAC;IACd,mEAAmE;IACnE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,iFAAiF;IACjF,QAAQ,EAAE,OAAO,CAAC;IAClB,mCAAmC;IACnC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,mDAAmD;IACnD,EAAE,CAAC,EAAE,eAAe,CAAC;IACrB,8DAA8D;IAC9D,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,kFAAkF;IAClF,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,MAAM,MAAM,QAAQ,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,eAAe,GAAG,SAAS,CAAC,CAAC;AAE7F,MAAM,WAAW,WAAW;IAC1B,yDAAyD;IACzD,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,kFAAkF;IAClF,QAAQ,CAAC,EAAE,QAAQ,GAAG,KAAK,CAAC;IAC5B,0CAA0C;IAC1C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,iEAAiE;IACjE,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,MAAM,WAAW,cAAc;IAC7B,4CAA4C;IAC5C,OAAO,EAAE,MAAM,CAAC;IAChB,sDAAsD;IACtD,OAAO,EAAE,aAAa,EAAE,CAAC;CAC1B;AA4BD,kGAAkG;AAClG,eAAO,MAAM,YAAY,IAAI,CAAC;AAC9B,2FAA2F;AAC3F,eAAO,MAAM,iBAAiB,OAAO,CAAC;AA+BtC;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CA2B1D;AASD,qFAAqF;AACrF,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAEvE;AAED,+FAA+F;AAC/F,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAA;CAAE,CAkBhJ;AAED,kFAAkF;AAClF,wBAAsB,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,YAAY,GAAE,MAAM,EAAO,GAAG,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,CA+C3H;AAED,uGAAuG;AACvG,eAAO,MAAM,UAAU,EAAE,QAUxB,CAAC;AAmBF;;;GAGG;AACH,wBAAsB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,GAAE,WAAgB,GAAG,OAAO,CAAC,cAAc,CAAC,CAiCnG"}
@@ -2,9 +2,9 @@
2
2
  * Nested-repo scan for `specweave handoff --all` (read-only).
3
3
  *
4
4
  * An umbrella workspace keeps product code in its own Git checkouts under
5
- * `repositories/<org>/<repo>`, usually gitignored by the umbrella, so the
6
- * umbrella's own `git status` never sees them. This module lists every
7
- * checkout there (plus the worktrees Git knows about for each, wherever they
5
+ * `repositories/<org>/<repo>` (or any nested folder with its own `.git`),
6
+ * usually gitignored by the umbrella, so the umbrella's own `git status`
7
+ * never sees them. This module lists every checkout there (plus the worktrees Git knows about for each, wherever they
8
8
  * live, and the workspace root itself) and reports the ones holding work that
9
9
  * exists only on this machine: uncommitted files, commits ahead of the
10
10
  * upstream, or a branch with no remote.
@@ -39,43 +39,105 @@ function isCheckout(dir) {
39
39
  return false;
40
40
  }
41
41
  }
42
- function listDirs(dir) {
42
+ function real(p) {
43
43
  try {
44
- return fs.readdirSync(dir, { withFileTypes: true })
45
- .filter((d) => d.isDirectory() && !d.name.startsWith('.'))
46
- .map((d) => path.join(dir, d.name));
44
+ return fs.realpathSync(p);
47
45
  }
48
46
  catch {
49
- return [];
47
+ return path.resolve(p);
50
48
  }
51
49
  }
52
- function real(p) {
50
+ /** Folders that hold dependencies or build output, never a project's own checkout. */
51
+ const SKIP_DIRS = new Set(['node_modules', 'vendor', 'dist', 'build', 'target', 'out', 'coverage', 'Pods', 'bower_components', '__pycache__']);
52
+ /** How deep below the root nested checkouts are looked for (`repositories/<org>/<repo>` is 3). */
53
+ export const NESTED_DEPTH = 3;
54
+ /** Most directories one discovery reads, so a huge plain folder cannot stall a command. */
55
+ export const NESTED_DIR_BUDGET = 5000;
56
+ function isWithin(child, parent) {
57
+ const rel = path.relative(parent, child);
58
+ return rel === '' || (!rel.startsWith('..') && !path.isAbsolute(rel));
59
+ }
60
+ /**
61
+ * Child folders to descend into: real directories, plus symlinked ones that
62
+ * resolve inside the root. Dot folders are skipped, and dependency or build
63
+ * folders unless they are checkouts themselves.
64
+ */
65
+ function childDirs(dir, rootReal) {
66
+ let entries;
53
67
  try {
54
- return fs.realpathSync(p);
68
+ entries = fs.readdirSync(dir, { withFileTypes: true });
55
69
  }
56
70
  catch {
57
- return path.resolve(p);
71
+ return [];
72
+ }
73
+ const out = [];
74
+ for (const d of entries) {
75
+ if (d.name.startsWith('.'))
76
+ continue;
77
+ const full = path.join(dir, d.name);
78
+ // A dependency or build folder is only kept when it is itself a checkout; the walk never descends into it.
79
+ if (SKIP_DIRS.has(d.name) && !isCheckout(full))
80
+ continue;
81
+ if (d.isDirectory()) {
82
+ out.push({ path: full, link: false });
83
+ continue;
84
+ }
85
+ if (!d.isSymbolicLink())
86
+ continue;
87
+ try {
88
+ const target = fs.realpathSync(full);
89
+ if (isWithin(target, rootReal) && fs.statSync(target).isDirectory())
90
+ out.push({ path: full, link: true });
91
+ }
92
+ catch { /* dangling link */ }
58
93
  }
94
+ return out.sort((x, y) => x.path.localeCompare(y.path));
59
95
  }
60
- /** `repositories/<org>/<repo>` checkouts (and a checkout directly at `repositories/<repo>`). */
96
+ /**
97
+ * Nested Git checkouts under a workspace root: the repositories registered in
98
+ * `.specweave/config.json`, then any folder up to {@link NESTED_DEPTH} levels
99
+ * down that has a `.git` folder or file, whatever it is named
100
+ * (`repositories/<org>/<repo>`, `apps/api`, `my-service`). The walk stays
101
+ * inside the root, stops at the first checkout on each path, and lists each
102
+ * real path once, preferring a registered or non-symlinked path over an
103
+ * alias. The root itself is not listed.
104
+ */
61
105
  export function findNestedCheckouts(root) {
62
- const base = path.join(root, 'repositories');
63
- const found = [];
106
+ const rootReal = real(root);
107
+ // real path -> [display path, rank]; lower rank wins (registered, direct, via symlink).
108
+ const found = new Map();
109
+ const record = (p, rank) => {
110
+ const key = real(p);
111
+ if (key === rootReal)
112
+ return;
113
+ const prev = found.get(key);
114
+ if (!prev || rank < prev[1])
115
+ found.set(key, [p, rank]);
116
+ };
64
117
  if (fs.existsSync(path.join(root, '.specweave', 'config.json'))) {
65
118
  for (const repo of registeredRepositories(root))
66
119
  if (isCheckout(repo.absolutePath))
67
- found.push(repo.absolutePath);
120
+ record(repo.absolutePath, 0);
68
121
  }
69
- for (const first of listDirs(base)) {
70
- if (isCheckout(first)) {
71
- found.push(first);
72
- continue;
122
+ let budget = NESTED_DIR_BUDGET;
123
+ let level = childDirs(root, rootReal);
124
+ for (let depth = 1; depth <= NESTED_DEPTH && level.length > 0; depth++) {
125
+ const next = [];
126
+ for (const dir of level) {
127
+ if (budget-- <= 0)
128
+ break;
129
+ if (isCheckout(dir.path)) {
130
+ record(dir.path, dir.link ? 2 : 1);
131
+ continue;
132
+ }
133
+ if (depth < NESTED_DEPTH) {
134
+ for (const child of childDirs(dir.path, rootReal))
135
+ next.push({ path: child.path, link: dir.link || child.link });
136
+ }
73
137
  }
74
- for (const second of listDirs(first))
75
- if (isCheckout(second))
76
- found.push(second);
138
+ level = next;
77
139
  }
78
- return [...new Map(found.map(p => [real(p), p])).values()].sort();
140
+ return [...found.values()].map(([p]) => p).sort();
79
141
  }
80
142
  /** Worktrees Git records for a checkout (absolute paths, the checkout itself included). */
81
143
  async function listWorktrees(dir) {
@@ -1 +1 @@
1
- {"version":3,"file":"nested-repos.js","sourceRoot":"","sources":["../../../../src/core/session/nested-repos.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"nested-repos.js","sourceRoot":"","sources":["../../../../src/core/session/nested-repos.ts"],"names":[],"mappings":"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"}
@@ -31,6 +31,7 @@ export interface VerifyReport {
31
31
  acs: {
32
32
  total: number;
33
33
  done: number;
34
+ items?: VerifyAcItem[];
34
35
  };
35
36
  tasks: {
36
37
  total: number;
@@ -51,12 +52,32 @@ export interface VerifyReport {
51
52
  }
52
53
  /** Message (and verify.md line) when there is nothing to run. */
53
54
  export declare const NO_COMMANDS_MESSAGE = "no test commands configured";
55
+ /**
56
+ * One AC in verify.json: whether it counts as done for the close gate, how
57
+ * that was decided, and the tasks that cite it with their ledger status.
58
+ * Readers use it to trace an AC to its tasks; `done` is declared status, not
59
+ * proof that a test exercised it.
60
+ */
61
+ export interface VerifyAcItem {
62
+ id: string;
63
+ done: boolean;
64
+ via: 'checkbox' | 'ledger' | 'none';
65
+ tasks: Array<{
66
+ id: string;
67
+ status: string;
68
+ }>;
69
+ }
54
70
  export interface AcEntry {
55
71
  id: string;
56
72
  done: boolean;
57
73
  text: string;
58
74
  /** How `done` was decided: ticked in spec.md, or every covering task is done in the ledger. */
59
75
  via?: 'checkbox' | 'ledger';
76
+ /** Tasks that cite this AC, with their ledger status (set by deriveAcStatus). */
77
+ tasks?: Array<{
78
+ id: string;
79
+ status: string;
80
+ }>;
60
81
  }
61
82
  /** One-line human summary of open ACs, or undefined when nothing is open. */
62
83
  export declare function describeUncheckedAcs(acs: {
@@ -1 +1 @@
1
- {"version":3,"file":"verify-runner.d.ts","sourceRoot":"","sources":["../../../../src/core/tasks/verify-runner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"verify-runner.d.ts","sourceRoot":"","sources":["../../../../src/core/tasks/verify-runner.ts"],"names":[],"mappings":"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"}