@rasensio/aidlc 1.21.0 → 1.23.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/commands/roadmap.d.ts.map +1 -1
- package/dist/commands/roadmap.js +19 -1
- package/dist/commands/roadmap.js.map +1 -1
- package/dist/commands/start.d.ts.map +1 -1
- package/dist/commands/start.js +31 -1
- package/dist/commands/start.js.map +1 -1
- package/dist/concurrency/common-dir.d.ts +13 -0
- package/dist/concurrency/common-dir.d.ts.map +1 -1
- package/dist/concurrency/common-dir.js +17 -1
- package/dist/concurrency/common-dir.js.map +1 -1
- package/dist/concurrency/detect.d.ts +28 -1
- package/dist/concurrency/detect.d.ts.map +1 -1
- package/dist/concurrency/detect.js +69 -5
- package/dist/concurrency/detect.js.map +1 -1
- package/dist/concurrency/types.d.ts +20 -0
- package/dist/concurrency/types.d.ts.map +1 -1
- package/dist/events/event-bus.d.ts +2 -0
- package/dist/events/event-bus.d.ts.map +1 -1
- package/dist/events/event-bus.js +76 -9
- package/dist/events/event-bus.js.map +1 -1
- package/dist/roadmap/paths.d.ts +99 -3
- package/dist/roadmap/paths.d.ts.map +1 -1
- package/dist/roadmap/paths.js +144 -17
- package/dist/roadmap/paths.js.map +1 -1
- package/dist/roadmap/sync/body.d.ts +109 -23
- package/dist/roadmap/sync/body.d.ts.map +1 -1
- package/dist/roadmap/sync/body.js +260 -23
- package/dist/roadmap/sync/body.js.map +1 -1
- package/dist/roadmap/sync/collect.d.ts +9 -0
- package/dist/roadmap/sync/collect.d.ts.map +1 -1
- package/dist/roadmap/sync/collect.js +48 -3
- package/dist/roadmap/sync/collect.js.map +1 -1
- package/dist/roadmap/sync/execute.d.ts.map +1 -1
- package/dist/roadmap/sync/execute.js +12 -2
- package/dist/roadmap/sync/execute.js.map +1 -1
- package/dist/roadmap/sync/gh.d.ts +10 -0
- package/dist/roadmap/sync/gh.d.ts.map +1 -1
- package/dist/roadmap/sync/gh.js +24 -0
- package/dist/roadmap/sync/gh.js.map +1 -1
- package/dist/roadmap/sync/markdown.d.ts +79 -0
- package/dist/roadmap/sync/markdown.d.ts.map +1 -0
- package/dist/roadmap/sync/markdown.js +165 -0
- package/dist/roadmap/sync/markdown.js.map +1 -0
- package/dist/roadmap/sync/marker.d.ts +10 -1
- package/dist/roadmap/sync/marker.d.ts.map +1 -1
- package/dist/roadmap/sync/marker.js +16 -1
- package/dist/roadmap/sync/marker.js.map +1 -1
- package/dist/roadmap/sync/plan.d.ts +7 -0
- package/dist/roadmap/sync/plan.d.ts.map +1 -1
- package/dist/roadmap/sync/plan.js +22 -4
- package/dist/roadmap/sync/plan.js.map +1 -1
- package/dist/roadmap/sync/render.d.ts.map +1 -1
- package/dist/roadmap/sync/render.js +2 -0
- package/dist/roadmap/sync/render.js.map +1 -1
- package/dist/roadmap/sync/sanitize.d.ts +56 -0
- package/dist/roadmap/sync/sanitize.d.ts.map +1 -0
- package/dist/roadmap/sync/sanitize.js +140 -0
- package/dist/roadmap/sync/sanitize.js.map +1 -0
- package/dist/roadmap/sync/types.d.ts +30 -2
- package/dist/roadmap/sync/types.d.ts.map +1 -1
- package/dist/roadmap/sync/types.js +9 -2
- package/dist/roadmap/sync/types.js.map +1 -1
- package/package.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"roadmap.d.ts","sourceRoot":"","sources":["../../src/commands/roadmap.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGzC,OAAO,EAAmB,KAAK,QAAQ,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"roadmap.d.ts","sourceRoot":"","sources":["../../src/commands/roadmap.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGzC,OAAO,EAAmB,KAAK,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAanE,OAAO,EAAmD,KAAK,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAKvG,gEAAgE;AAChE,MAAM,WAAW,WAAW;IAC1B,EAAE,CAAC,EAAE,QAAQ,CAAC;IACd,MAAM,CAAC,EAAE,QAAQ,CAAC;IAClB,6EAA6E;IAC7E,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7B,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7B,uEAAuE;IACvE,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,MAAM,WAAW,QAAQ;IACvB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAsBD;;;;;;;;;;;;;GAaG;AACH,wBAAsB,WAAW,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,CAkFrF;AAED,2EAA2E;AAC3E,wBAAsB,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,CAyBpF;AAuBD;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAyBzD"}
|
package/dist/commands/roadmap.js
CHANGED
|
@@ -26,7 +26,7 @@ import { collectItems } from '../roadmap/sync/collect.js';
|
|
|
26
26
|
import { notConfiguredMessage, readSyncConfig, withRepoOverride, } from '../roadmap/sync/config.js';
|
|
27
27
|
import { buildIssueMap, truncatedMessage } from '../roadmap/sync/discover.js';
|
|
28
28
|
import { applyPlan, renderExecReport } from '../roadmap/sync/execute.js';
|
|
29
|
-
import { ghPreflight, realGhRunner } from '../roadmap/sync/gh.js';
|
|
29
|
+
import { ghPreflight, realGhRunner, resolveNameWithOwner } from '../roadmap/sync/gh.js';
|
|
30
30
|
import { importIssue } from '../roadmap/sync/import.js';
|
|
31
31
|
import { planProjection } from '../roadmap/sync/plan.js';
|
|
32
32
|
import { confirmMessage, renderPlan } from '../roadmap/sync/render.js';
|
|
@@ -96,6 +96,7 @@ export async function syncCommand(opts, deps) {
|
|
|
96
96
|
issues: discovered.issues,
|
|
97
97
|
retireIneligible: opts.retireIneligible === true,
|
|
98
98
|
repoLabel: repoLabelOf(config),
|
|
99
|
+
bodyContext: { repo: resolveCoords(gh, config), itemPaths: collected.itemPaths },
|
|
99
100
|
});
|
|
100
101
|
if (planned.kind === 'refused') {
|
|
101
102
|
err(`Error: ${planned.error}\n`);
|
|
@@ -155,6 +156,23 @@ export async function importCommand(url, deps) {
|
|
|
155
156
|
function repoLabelOf(config) {
|
|
156
157
|
return config.repo ?? 'the current repository (resolved by gh)';
|
|
157
158
|
}
|
|
159
|
+
/**
|
|
160
|
+
* `owner`/`name` for permalinks, or null when it cannot be established.
|
|
161
|
+
*
|
|
162
|
+
* The configured coordinate is already validated to `owner/name` shape by `validateRepo`,
|
|
163
|
+
* so splitting it needs no second check. Only the unconfigured case costs a `gh` call, and
|
|
164
|
+
* only for hyperlinks — see `resolveNameWithOwner` for why a failure there degrades instead
|
|
165
|
+
* of refusing.
|
|
166
|
+
*/
|
|
167
|
+
function resolveCoords(gh, config) {
|
|
168
|
+
const coordinate = config.repo ?? resolveNameWithOwner(gh);
|
|
169
|
+
if (coordinate === null)
|
|
170
|
+
return null;
|
|
171
|
+
const slash = coordinate.indexOf('/');
|
|
172
|
+
if (slash <= 0 || slash === coordinate.length - 1)
|
|
173
|
+
return null;
|
|
174
|
+
return { owner: coordinate.slice(0, slash), name: coordinate.slice(slash + 1) };
|
|
175
|
+
}
|
|
158
176
|
/**
|
|
159
177
|
* Register the command group.
|
|
160
178
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"roadmap.js","sourceRoot":"","sources":["../../src/commands/roadmap.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAIH,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAiB,MAAM,mBAAmB,CAAC;AACnE,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC9D,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"roadmap.js","sourceRoot":"","sources":["../../src/commands/roadmap.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"start.d.ts","sourceRoot":"","sources":["../../src/commands/start.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"start.d.ts","sourceRoot":"","sources":["../../src/commands/start.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAoLpC;;GAEG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAyBpD"}
|
package/dist/commands/start.js
CHANGED
|
@@ -30,6 +30,7 @@ import { loadTemplates, resolveTemplate, phasesForScope, } from '../core/templat
|
|
|
30
30
|
import { saveSnapshot, createInstanceDir } from '../state/snapshot-store.js';
|
|
31
31
|
import { emit, loadActionsConfig } from '../events/event-bus.js';
|
|
32
32
|
import { openClaimStore } from '../concurrency/claim-store.js';
|
|
33
|
+
import { primaryWorkingTree } from '../concurrency/common-dir.js';
|
|
33
34
|
import { openRegistry, RegistryConflictError } from '../concurrency/registry.js';
|
|
34
35
|
import { detectConcurrency, loadConcurrencyConfig } from '../concurrency/detect.js';
|
|
35
36
|
import { resolveSessionIdentity } from '../concurrency/session-id.js';
|
|
@@ -266,7 +267,19 @@ async function runStart(templateArg, opts) {
|
|
|
266
267
|
const timeoutMinutes = loadClaimTimeoutMinutes(projectRoot);
|
|
267
268
|
const claimStore = openClaimStore(projectRoot, timeoutMinutes);
|
|
268
269
|
const session = resolveSessionIdentity(projectRoot);
|
|
269
|
-
const detection = detectConcurrency(claimStore, session.id, timeoutMinutes, projectRoot
|
|
270
|
+
const detection = detectConcurrency(claimStore, session.id, timeoutMinutes, projectRoot,
|
|
271
|
+
// `openClaimStore` has already resolved the common dir, so this costs nothing
|
|
272
|
+
// extra and keeps detect.ts free of a git subprocess (its NFR-1).
|
|
273
|
+
primaryWorkingTree(projectRoot));
|
|
274
|
+
/*
|
|
275
|
+
* Live claims that cannot collide are reported, not gated on
|
|
276
|
+
* (automation-verdicts/AC-9). Printed before the gate so it appears whether or
|
|
277
|
+
* not a gate follows — the point is that this is information, not a decision.
|
|
278
|
+
*/
|
|
279
|
+
for (const other of detection.elsewhere) {
|
|
280
|
+
process.stdout.write(`note: ${other.instance} is also in flight (session ${other.session}) in ${other.dir} — ` +
|
|
281
|
+
`separate working directory, nothing to collide on.\n`);
|
|
282
|
+
}
|
|
270
283
|
let choice = null;
|
|
271
284
|
if (opts.worktree)
|
|
272
285
|
choice = 'worktree';
|
|
@@ -279,6 +292,23 @@ async function runStart(templateArg, opts) {
|
|
|
279
292
|
return;
|
|
280
293
|
}
|
|
281
294
|
}
|
|
295
|
+
else if (concurrencyConfig.mode === 'forbid' && detection.elsewhere.length > 0) {
|
|
296
|
+
/*
|
|
297
|
+
* AC-12: `forbid` is unchanged — it still hard-stops on ANY live claim,
|
|
298
|
+
* sharing a working directory or not. Someone choosing a hard stop is
|
|
299
|
+
* choosing it for reasons this change does not second-guess, and the
|
|
300
|
+
* cost-attribution half of concurrency (overlapping claim windows making
|
|
301
|
+
* usage unattributable) is not fixed by comparing directories.
|
|
302
|
+
*
|
|
303
|
+
* Needs its own branch because `concurrencyGate` only runs when `busy`, and
|
|
304
|
+
* a non-sharing claim never sets `busy`.
|
|
305
|
+
*/
|
|
306
|
+
process.stderr.write(`Another session is live in this repository: ` +
|
|
307
|
+
`${detection.elsewhere.map((h) => `${h.instance} (${h.dir})`).join(', ')}\n` +
|
|
308
|
+
`concurrency.mode is 'forbid' — come back when the other instance is done.\n`);
|
|
309
|
+
process.exitCode = 1;
|
|
310
|
+
return;
|
|
311
|
+
}
|
|
282
312
|
// Registry entry is the cross-worktree creation arbiter (AC-24): exactly
|
|
283
313
|
// one of two racing `aidlc start` calls succeeds. Also makes the instance
|
|
284
314
|
// visible to other worktrees while unmerged (AC-15).
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"start.js","sourceRoot":"","sources":["../../src/commands/start.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"start.js","sourceRoot":"","sources":["../../src/commands/start.ts"],"names":[],"mappings":"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"}
|
|
@@ -14,6 +14,19 @@
|
|
|
14
14
|
* of the path it was reached through (e.g. macOS /var → /private/var).
|
|
15
15
|
*/
|
|
16
16
|
export declare function gitCommonDir(cwd: string): string | null;
|
|
17
|
+
/**
|
|
18
|
+
* The primary checkout's working tree for `cwd`, or null outside a git repo.
|
|
19
|
+
*
|
|
20
|
+
* All worktrees share one common dir — the primary checkout's `.git` — so its
|
|
21
|
+
* parent is the primary working tree.
|
|
22
|
+
*
|
|
23
|
+
* Lives here rather than in `roadmap/paths.ts` (which had the only copy) because
|
|
24
|
+
* the concurrency gate needs it too, to tell "this claim was recorded from the
|
|
25
|
+
* primary checkout" from "this claim was recorded somewhere that cannot collide
|
|
26
|
+
* with me" (automation-verdicts/AC-8). One resolution path, per this module's
|
|
27
|
+
* own DD1.
|
|
28
|
+
*/
|
|
29
|
+
export declare function primaryWorkingTree(cwd: string): string | null;
|
|
17
30
|
/**
|
|
18
31
|
* Resolve the writable coordination root `<common-dir>/aidlc/`, creating it
|
|
19
32
|
* on first use. Returns null outside a git repo (AC-5) or when the common
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"common-dir.d.ts","sourceRoot":"","sources":["../../src/concurrency/common-dir.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAMH;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAgBvD;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAW3D;AAED,8EAA8E;AAC9E,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAmBrD"}
|
|
1
|
+
{"version":3,"file":"common-dir.d.ts","sourceRoot":"","sources":["../../src/concurrency/common-dir.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAMH;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAgBvD;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAG7D;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAW3D;AAED,8EAA8E;AAC9E,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAmBrD"}
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
* resolution path (design DD1).
|
|
10
10
|
*/
|
|
11
11
|
import { accessSync, constants, existsSync, mkdirSync, realpathSync } from 'node:fs';
|
|
12
|
-
import { isAbsolute, join, resolve } from 'node:path';
|
|
12
|
+
import { dirname, isAbsolute, join, resolve } from 'node:path';
|
|
13
13
|
import { execFileSync } from 'node:child_process';
|
|
14
14
|
/**
|
|
15
15
|
* Resolve the git common dir for `cwd`, or null outside a git repo (AC-5).
|
|
@@ -35,6 +35,22 @@ export function gitCommonDir(cwd) {
|
|
|
35
35
|
return null;
|
|
36
36
|
}
|
|
37
37
|
}
|
|
38
|
+
/**
|
|
39
|
+
* The primary checkout's working tree for `cwd`, or null outside a git repo.
|
|
40
|
+
*
|
|
41
|
+
* All worktrees share one common dir — the primary checkout's `.git` — so its
|
|
42
|
+
* parent is the primary working tree.
|
|
43
|
+
*
|
|
44
|
+
* Lives here rather than in `roadmap/paths.ts` (which had the only copy) because
|
|
45
|
+
* the concurrency gate needs it too, to tell "this claim was recorded from the
|
|
46
|
+
* primary checkout" from "this claim was recorded somewhere that cannot collide
|
|
47
|
+
* with me" (automation-verdicts/AC-8). One resolution path, per this module's
|
|
48
|
+
* own DD1.
|
|
49
|
+
*/
|
|
50
|
+
export function primaryWorkingTree(cwd) {
|
|
51
|
+
const common = gitCommonDir(cwd);
|
|
52
|
+
return common === null ? null : dirname(common);
|
|
53
|
+
}
|
|
38
54
|
/**
|
|
39
55
|
* Resolve the writable coordination root `<common-dir>/aidlc/`, creating it
|
|
40
56
|
* on first use. Returns null outside a git repo (AC-5) or when the common
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"common-dir.js","sourceRoot":"","sources":["../../src/concurrency/common-dir.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACrF,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"common-dir.js","sourceRoot":"","sources":["../../src/concurrency/common-dir.ts"],"names":[],"mappings":"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"}
|
|
@@ -18,6 +18,33 @@ export declare function loadConcurrencyConfig(projectRoot: string): ConcurrencyC
|
|
|
18
18
|
* Detect other live sessions holding claims in this repository (AC-7).
|
|
19
19
|
* Staleness is `claim_timeout_minutes` — the one existing knob, no
|
|
20
20
|
* parallel threshold (idea decision 4).
|
|
21
|
+
*
|
|
22
|
+
* Splits live claims by whether they SHARE this session's working directory
|
|
23
|
+
* (automation-verdicts/AC-8). The gate exists because two sessions in one
|
|
24
|
+
* checkout collide on git — one's `git add -A` stages what the other left on
|
|
25
|
+
* disk, and creating a branch in place yanks the other session off its own. A
|
|
26
|
+
* session in its own worktree, on its own branch, can do none of that.
|
|
27
|
+
*
|
|
28
|
+
* Before this, the check asked "is another session live?" while meaning "does
|
|
29
|
+
* another session share my working directory?", and it got the one worktree
|
|
30
|
+
* comparison it had backwards: it excluded claims recorded from THIS path and
|
|
31
|
+
* blocked claims recorded from OTHER paths — so taking the gate's own
|
|
32
|
+
* recommendation (option 1, "start in a separate worktree") made every later
|
|
33
|
+
* start in the primary checkout hit the same block, and offered a worktree it
|
|
34
|
+
* did not need. Observed 2026-09-03 while releasing `single-clack-prompt-seam`,
|
|
35
|
+
* where none of the three offered options fit and the instance was created by
|
|
36
|
+
* hand.
|
|
37
|
+
*
|
|
38
|
+
* @param primaryRoot - The primary checkout's working tree, or null/undefined
|
|
39
|
+
* when the caller does not know. A claim with no `worktree_path` was recorded
|
|
40
|
+
* from the primary checkout; without knowing where that is we cannot rule out
|
|
41
|
+
* that it is here, so it is treated as sharing. That is the fail-safe
|
|
42
|
+
* direction and it is exactly today's behaviour.
|
|
43
|
+
*
|
|
44
|
+
* Passed in rather than resolved here to keep NFR-1: this function stays pure
|
|
45
|
+
* reads — one directory listing plus YAML parses — and adds no git subprocess.
|
|
46
|
+
* `openClaimStore` has already paid for one `git rev-parse` by the time this
|
|
47
|
+
* runs, so the caller has the answer for free.
|
|
21
48
|
*/
|
|
22
|
-
export declare function detectConcurrency(store: ClaimStore, ownSessionId: string, timeoutMinutes: number, projectRoot: string, now?: Date): Detection;
|
|
49
|
+
export declare function detectConcurrency(store: ClaimStore, ownSessionId: string, timeoutMinutes: number, projectRoot: string, primaryRoot?: string | null, now?: Date): Detection;
|
|
23
50
|
//# sourceMappingURL=detect.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"detect.d.ts","sourceRoot":"","sources":["../../src/concurrency/detect.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAKH,OAAO,EAAW,KAAK,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,EAAuB,KAAK,iBAAiB,EAAE,KAAK,SAAS,EAAE,MAAM,YAAY,CAAC;AAEzF,uEAAuE;AACvE,wBAAgB,qBAAqB,CAAC,WAAW,EAAE,MAAM,GAAG,iBAAiB,CAqB5E;AAED
|
|
1
|
+
{"version":3,"file":"detect.d.ts","sourceRoot":"","sources":["../../src/concurrency/detect.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAKH,OAAO,EAAW,KAAK,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,EAAuB,KAAK,iBAAiB,EAAE,KAAK,SAAS,EAAE,MAAM,YAAY,CAAC;AAEzF,uEAAuE;AACvE,wBAAgB,qBAAqB,CAAC,WAAW,EAAE,MAAM,GAAG,iBAAiB,CAqB5E;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,UAAU,EACjB,YAAY,EAAE,MAAM,EACpB,cAAc,EAAE,MAAM,EACtB,WAAW,EAAE,MAAM,EACnB,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,EAC3B,GAAG,GAAE,IAAiB,GACrB,SAAS,CAmDX"}
|
|
@@ -41,19 +41,83 @@ export function loadConcurrencyConfig(projectRoot) {
|
|
|
41
41
|
* Detect other live sessions holding claims in this repository (AC-7).
|
|
42
42
|
* Staleness is `claim_timeout_minutes` — the one existing knob, no
|
|
43
43
|
* parallel threshold (idea decision 4).
|
|
44
|
+
*
|
|
45
|
+
* Splits live claims by whether they SHARE this session's working directory
|
|
46
|
+
* (automation-verdicts/AC-8). The gate exists because two sessions in one
|
|
47
|
+
* checkout collide on git — one's `git add -A` stages what the other left on
|
|
48
|
+
* disk, and creating a branch in place yanks the other session off its own. A
|
|
49
|
+
* session in its own worktree, on its own branch, can do none of that.
|
|
50
|
+
*
|
|
51
|
+
* Before this, the check asked "is another session live?" while meaning "does
|
|
52
|
+
* another session share my working directory?", and it got the one worktree
|
|
53
|
+
* comparison it had backwards: it excluded claims recorded from THIS path and
|
|
54
|
+
* blocked claims recorded from OTHER paths — so taking the gate's own
|
|
55
|
+
* recommendation (option 1, "start in a separate worktree") made every later
|
|
56
|
+
* start in the primary checkout hit the same block, and offered a worktree it
|
|
57
|
+
* did not need. Observed 2026-09-03 while releasing `single-clack-prompt-seam`,
|
|
58
|
+
* where none of the three offered options fit and the instance was created by
|
|
59
|
+
* hand.
|
|
60
|
+
*
|
|
61
|
+
* @param primaryRoot - The primary checkout's working tree, or null/undefined
|
|
62
|
+
* when the caller does not know. A claim with no `worktree_path` was recorded
|
|
63
|
+
* from the primary checkout; without knowing where that is we cannot rule out
|
|
64
|
+
* that it is here, so it is treated as sharing. That is the fail-safe
|
|
65
|
+
* direction and it is exactly today's behaviour.
|
|
66
|
+
*
|
|
67
|
+
* Passed in rather than resolved here to keep NFR-1: this function stays pure
|
|
68
|
+
* reads — one directory listing plus YAML parses — and adds no git subprocess.
|
|
69
|
+
* `openClaimStore` has already paid for one `git rev-parse` by the time this
|
|
70
|
+
* runs, so the caller has the answer for free.
|
|
44
71
|
*/
|
|
45
|
-
export function detectConcurrency(store, ownSessionId, timeoutMinutes, projectRoot, now = new Date()) {
|
|
72
|
+
export function detectConcurrency(store, ownSessionId, timeoutMinutes, projectRoot, primaryRoot, now = new Date()) {
|
|
46
73
|
const holders = [];
|
|
74
|
+
const elsewhere = [];
|
|
47
75
|
const here = resolve(projectRoot);
|
|
76
|
+
const primary = primaryRoot ? resolve(primaryRoot) : null;
|
|
48
77
|
for (const [instance, claim] of store.list()) {
|
|
49
78
|
if (claim.session === ownSessionId)
|
|
50
79
|
continue;
|
|
51
|
-
if (claim.worktree_path && resolve(claim.worktree_path) === here)
|
|
52
|
-
continue;
|
|
53
80
|
if (isStale(claim, timeoutMinutes, now))
|
|
54
81
|
continue;
|
|
55
|
-
|
|
82
|
+
/*
|
|
83
|
+
* Own-worktree exclusion (design F2) — KEPT, deliberately, even though the
|
|
84
|
+
* sharing test below would otherwise classify it as a collision.
|
|
85
|
+
*
|
|
86
|
+
* A claim recorded from this exact working directory is almost certainly this
|
|
87
|
+
* session's own earlier one. Without `AIDLC_SESSION_ID` every invocation
|
|
88
|
+
* resolves a fresh synthetic `agent-<uuid>`, so the session-id check above
|
|
89
|
+
* does not recognise it, and dropping this line would make a session block on
|
|
90
|
+
* itself the moment it ran a second command in its own worktree.
|
|
91
|
+
*
|
|
92
|
+
* This does leave F2's original hole: two genuinely different sessions cd'd
|
|
93
|
+
* into the same worktree are not detected. That hole predates this change and
|
|
94
|
+
* closing it is a session-identity problem, not a working-directory one — the
|
|
95
|
+
* `no worktree_path` case below is the collision this gate was actually built
|
|
96
|
+
* for, and it still blocks.
|
|
97
|
+
*/
|
|
98
|
+
if (claim.worktree_path && resolve(claim.worktree_path) === here)
|
|
99
|
+
continue;
|
|
100
|
+
/*
|
|
101
|
+
* A claim's working directory is its `worktree_path` when it has one, and the
|
|
102
|
+
* primary checkout otherwise.
|
|
103
|
+
*
|
|
104
|
+
* AC-11: a `worktree_path` naming a directory that no longer exists is a
|
|
105
|
+
* claim on the primary checkout again — the worktree was removed and the
|
|
106
|
+
* claim outlived it. `existsSync` rather than `git worktree list`, both to
|
|
107
|
+
* keep NFR-1 and because `orphanedClaims` in claim-store.ts already
|
|
108
|
+
* establishes existence as this module's test for the same question.
|
|
109
|
+
*/
|
|
110
|
+
const recorded = claim.worktree_path ? resolve(claim.worktree_path) : null;
|
|
111
|
+
const claimDir = recorded !== null && existsSync(recorded) ? recorded : primary;
|
|
112
|
+
// claimDir === null means "the primary checkout, wherever that is" and we do
|
|
113
|
+
// not know — assume it could be here (fail safe).
|
|
114
|
+
if (claimDir === null || claimDir === here) {
|
|
115
|
+
holders.push({ instance, session: claim.session });
|
|
116
|
+
}
|
|
117
|
+
else {
|
|
118
|
+
elsewhere.push({ instance, session: claim.session, dir: claimDir });
|
|
119
|
+
}
|
|
56
120
|
}
|
|
57
|
-
return { busy: holders.length > 0, holders };
|
|
121
|
+
return { busy: holders.length > 0, holders, elsewhere };
|
|
58
122
|
}
|
|
59
123
|
//# sourceMappingURL=detect.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"detect.js","sourceRoot":"","sources":["../../src/concurrency/detect.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,KAAK,IAAI,SAAS,EAAE,MAAM,MAAM,CAAC;AAC1C,OAAO,EAAE,OAAO,EAAmB,MAAM,kBAAkB,CAAC;AAC5D,OAAO,EAAE,mBAAmB,EAA0C,MAAM,YAAY,CAAC;AAEzF,uEAAuE;AACvE,MAAM,UAAU,qBAAqB,CAAC,WAAmB;IACvD,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,EAAE,QAAQ,EAAE,aAAa,CAAC,CAAC;IAC9D,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC;QAAE,OAAO,mBAAmB,CAAC;IACxD,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,SAAS,CAAC,YAAY,CAAC,UAAU,EAAE,MAAM,CAAC,CAEjD,CAAC;QACT,MAAM,KAAK,GAAG,MAAM,EAAE,WAAW,CAAC;QAClC,IAAI,CAAC,KAAK;YAAE,OAAO,mBAAmB,CAAC;QACvC,MAAM,IAAI,GACR,KAAK,CAAC,IAAI,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,KAAK,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,gBAAgB;YAChF,CAAC,CAAC,KAAK,CAAC,IAAI;YACZ,CAAC,CAAC,mBAAmB,CAAC,IAAI,CAAC;QAC/B,MAAM,YAAY,GAChB,OAAO,KAAK,CAAC,YAAY,KAAK,QAAQ,IAAI,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,KAAK,EAAE;YACxE,CAAC,CAAC,KAAK,CAAC,YAAY;YACpB,CAAC,CAAC,mBAAmB,CAAC,YAAY,CAAC;QACvC,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC;IAChC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,mBAAmB,CAAC;IAC7B,CAAC;AACH,CAAC;AAED
|
|
1
|
+
{"version":3,"file":"detect.js","sourceRoot":"","sources":["../../src/concurrency/detect.ts"],"names":[],"mappings":"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"}
|
|
@@ -30,10 +30,30 @@ export interface ConcurrencyConfig {
|
|
|
30
30
|
export declare const DEFAULT_CONCURRENCY: ConcurrencyConfig;
|
|
31
31
|
/** Result of concurrency detection (AC-7). */
|
|
32
32
|
export interface Detection {
|
|
33
|
+
/** A blocking holder exists — i.e. `holders` is non-empty. */
|
|
33
34
|
busy: boolean;
|
|
35
|
+
/**
|
|
36
|
+
* Live claims that SHARE this session's working directory. These are the ones
|
|
37
|
+
* worth blocking on: two sessions in one checkout collide on git, not on state.
|
|
38
|
+
*/
|
|
34
39
|
holders: Array<{
|
|
35
40
|
instance: string;
|
|
36
41
|
session: string;
|
|
37
42
|
}>;
|
|
43
|
+
/**
|
|
44
|
+
* Live claims held from a DIFFERENT working directory — another worktree, or the
|
|
45
|
+
* primary checkout while this session is in a worktree
|
|
46
|
+
* (automation-verdicts/AC-9).
|
|
47
|
+
*
|
|
48
|
+
* They cannot collide, so they gate nothing. Reported rather than dropped:
|
|
49
|
+
* knowing another instance is in flight is useful even when it cannot
|
|
50
|
+
* interfere, and discarding them silently would be the same silent-verdict
|
|
51
|
+
* mistake in a new place.
|
|
52
|
+
*/
|
|
53
|
+
elsewhere: Array<{
|
|
54
|
+
instance: string;
|
|
55
|
+
session: string;
|
|
56
|
+
dir: string;
|
|
57
|
+
}>;
|
|
38
58
|
}
|
|
39
59
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/concurrency/types.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,gFAAgF;AAChF,MAAM,WAAW,KAAK;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,UAAU,GAAG,OAAO,CAAC;IAChC,yEAAyE;IACzE,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,8EAA8E;AAC9E,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,sEAAsE;IACtE,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,4DAA4D;AAC5D,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,gBAAgB,GAAG,QAAQ,GAAG,KAAK,CAAC;IAC1C,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,eAAO,MAAM,mBAAmB,EAAE,iBAGjC,CAAC;AAEF,8CAA8C;AAC9C,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,KAAK,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/concurrency/types.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,gFAAgF;AAChF,MAAM,WAAW,KAAK;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,UAAU,GAAG,OAAO,CAAC;IAChC,yEAAyE;IACzE,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,8EAA8E;AAC9E,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,sEAAsE;IACtE,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,4DAA4D;AAC5D,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,gBAAgB,GAAG,QAAQ,GAAG,KAAK,CAAC;IAC1C,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,eAAO,MAAM,mBAAmB,EAAE,iBAGjC,CAAC;AAEF,8CAA8C;AAC9C,MAAM,WAAW,SAAS;IACxB,8DAA8D;IAC9D,IAAI,EAAE,OAAO,CAAC;IACd;;;OAGG;IACH,OAAO,EAAE,KAAK,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACtD;;;;;;;;;OASG;IACH,SAAS,EAAE,KAAK,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACtE"}
|
|
@@ -39,6 +39,8 @@ export type BuiltInHandler = (event: EventPayload, config: Record<string, unknow
|
|
|
39
39
|
* Register a custom built-in action handler (for testing / extensibility).
|
|
40
40
|
*/
|
|
41
41
|
export declare function registerBuiltIn(name: string, handler: BuiltInHandler): void;
|
|
42
|
+
/** @see SHIPPED_BUILT_IN_IDS */
|
|
43
|
+
export declare function builtInActionIds(): string[];
|
|
42
44
|
/**
|
|
43
45
|
* Emit a lifecycle event, matching and executing enabled actions.
|
|
44
46
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"event-bus.d.ts","sourceRoot":"","sources":["../../src/events/event-bus.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAWH,OAAO,KAAK,EACV,aAAa,EAEb,YAAY,EACZ,cAAc,EAEf,MAAM,kBAAkB,CAAC;AAM1B;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAM9E;AAkDD;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,aAAa,GAAG,IAAI,CAyB3E;AAMD;;;;;GAKG;AACH,MAAM,MAAM,cAAc,GAAG,CAC3B,KAAK,EAAE,YAAY,EACnB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,KACxC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"event-bus.d.ts","sourceRoot":"","sources":["../../src/events/event-bus.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAWH,OAAO,KAAK,EACV,aAAa,EAEb,YAAY,EACZ,cAAc,EAEf,MAAM,kBAAkB,CAAC;AAM1B;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAM9E;AAkDD;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,aAAa,GAAG,IAAI,CAyB3E;AAMD;;;;;GAKG;AACH,MAAM,MAAM,cAAc,GAAG,CAC3B,KAAK,EAAE,YAAY,EACnB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,KACxC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAoM1C;;GAEG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,GAAG,IAAI,CAE3E;AAaD,gCAAgC;AAChC,wBAAgB,gBAAgB,IAAI,MAAM,EAAE,CAE3C;AAwFD;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,IAAI,CAClB,KAAK,EAAE,YAAY,EACnB,OAAO,EAAE,aAAa,GAAG,IAAI,EAC7B,IAAI,CAAC,EAAE;IAAE,MAAM,CAAC,EAAE,OAAO,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAA;CAAE,GAChD,cAAc,CA6ChB"}
|
package/dist/events/event-bus.js
CHANGED
|
@@ -15,7 +15,7 @@ import { execFileSync } from 'node:child_process';
|
|
|
15
15
|
import { parse } from 'yaml';
|
|
16
16
|
import { coordinationRoot } from '../concurrency/common-dir.js';
|
|
17
17
|
import { isRunCommandTrusted } from '../security/action-trust.js';
|
|
18
|
-
import {
|
|
18
|
+
import { findAllByPromotedTo, isoDate, moveItem, roadmapRoots } from '../roadmap/paths.js';
|
|
19
19
|
import { runCommand } from './run-command.js';
|
|
20
20
|
import { resolveProjectRoot } from '../core/project-root.js';
|
|
21
21
|
// ---------------------------------------------------------------------------
|
|
@@ -111,11 +111,32 @@ export function loadActionsConfig(actionsPath) {
|
|
|
111
111
|
}
|
|
112
112
|
return data;
|
|
113
113
|
}
|
|
114
|
+
/**
|
|
115
|
+
* THE REPORTING RULE for every handler below (automation-verdicts/AC-1).
|
|
116
|
+
*
|
|
117
|
+
* A handler that can return `{ success: true }` **without doing the thing it
|
|
118
|
+
* exists to do** must write one line naming what it looked for and what it
|
|
119
|
+
* found. Silence is only correct when nothing was owed.
|
|
120
|
+
*
|
|
121
|
+
* A silent no-op is indistinguishable from success. `roadmap-done` fired at
|
|
122
|
+
* completion, found no item because the item lived on a worktree branch, and
|
|
123
|
+
* printed nothing — while the transition printed `✓ Instance is complete` over
|
|
124
|
+
* it. Twice in three days, and the second time the lesson from the first was
|
|
125
|
+
* already written down in `.aidlc/guidance/lessons.md`. Non-blocking actions
|
|
126
|
+
* make this worse, not better: nothing else will ever mention it.
|
|
127
|
+
*
|
|
128
|
+
* Every handler is either subject to the rule or carries a one-line exemption
|
|
129
|
+
* saying why. `automation-verdicts.test.ts` asserts that inventory is total over
|
|
130
|
+
* this map, so a handler added later cannot skip the question.
|
|
131
|
+
*/
|
|
114
132
|
const builtInHandlers = {
|
|
115
133
|
/**
|
|
116
134
|
* git-branch: Create a git branch using a configurable naming pattern.
|
|
117
135
|
* Default pattern: `feature/{instance-name}`
|
|
118
136
|
* Fires on Implementation enter (matched by action config, not hardcoded here).
|
|
137
|
+
*
|
|
138
|
+
* Reporting rule: EXEMPT — no success-without-doing path. `execFileSync`
|
|
139
|
+
* either creates the branch or throws, and the throw becomes an error result.
|
|
119
140
|
*/
|
|
120
141
|
'git-branch': (event, config) => {
|
|
121
142
|
const pattern = config?.pattern ?? 'feature/{instance-name}';
|
|
@@ -137,6 +158,9 @@ const builtInHandlers = {
|
|
|
137
158
|
},
|
|
138
159
|
/**
|
|
139
160
|
* github-issue: Create or update a GitHub issue via `gh` CLI.
|
|
161
|
+
*
|
|
162
|
+
* Reporting rule: EXEMPT — always attempts the create; there is no path that
|
|
163
|
+
* succeeds without having tried.
|
|
140
164
|
*/
|
|
141
165
|
'github-issue': (event, config) => {
|
|
142
166
|
const title = config?.title ?? `[${event.template}] ${event.instance}`;
|
|
@@ -162,6 +186,12 @@ const builtInHandlers = {
|
|
|
162
186
|
* every correct completion would ask for a retrospective it already has —
|
|
163
187
|
* and the entry-point skill would offer a menu entry for finished work.
|
|
164
188
|
* Silent rather than announced: nothing is owed, so there is nothing to say.
|
|
189
|
+
*
|
|
190
|
+
* Reporting rule: EXEMPT, and deliberately so (automation-verdicts/AC-3). The
|
|
191
|
+
* no-op fires when `retrospective.md` already exists — that is finding the work
|
|
192
|
+
* *already done*, not finding nothing. Announcing it would ask for a
|
|
193
|
+
* retrospective the instance already has, which is the bug
|
|
194
|
+
* `instance-complete-never-fires` AC-7 fixed. Do not "make this consistent".
|
|
165
195
|
*/
|
|
166
196
|
'retro-pending': (event) => {
|
|
167
197
|
try {
|
|
@@ -189,22 +219,42 @@ const builtInHandlers = {
|
|
|
189
219
|
* arming it was a manual command.
|
|
190
220
|
*
|
|
191
221
|
* Cross-platform Node fs, not a shell script, for the reason recorded on
|
|
192
|
-
* `retro-pending`.
|
|
193
|
-
* roadmap existed, or started without
|
|
194
|
-
*
|
|
222
|
+
* `retro-pending`. Finding no item stays a SUCCESS — an instance created before
|
|
223
|
+
* the roadmap existed, or started without one, is a normal state and must not
|
|
224
|
+
* fail a completion.
|
|
225
|
+
*
|
|
226
|
+
* Reporting rule: APPLIES, and this handler is why the rule exists
|
|
227
|
+
* (automation-verdicts/AC-5). Every outcome prints one line, including "found
|
|
228
|
+
* nothing" — which is the one that cost two instances, because a silent
|
|
229
|
+
* `{ success: true }` reads exactly like a successful move underneath the
|
|
230
|
+
* transition's `✓ Instance is complete`.
|
|
195
231
|
*/
|
|
196
232
|
'roadmap-done': (event) => {
|
|
197
233
|
try {
|
|
198
234
|
// Resolved (cwd-project-root/AC-14). Actions fire from wherever the
|
|
199
|
-
// triggering command ran
|
|
200
|
-
// primary checkout
|
|
201
|
-
// and reports "no item", which this handler treats as success.
|
|
235
|
+
// triggering command ran; `findAllByPromotedTo` searches this working tree
|
|
236
|
+
// and the primary checkout from here.
|
|
202
237
|
const cwd = resolveProjectRoot();
|
|
203
|
-
const
|
|
204
|
-
if (
|
|
238
|
+
const matches = findAllByPromotedTo(cwd, event.instance);
|
|
239
|
+
if (matches.length === 0) {
|
|
240
|
+
// AC-5: name the roots, because "no item" and "looked in the wrong place"
|
|
241
|
+
// are the two explanations and only the roots tell them apart.
|
|
242
|
+
const roots = roadmapRoots(cwd);
|
|
243
|
+
process.stdout.write(`roadmap: no item names "${event.instance}" — nothing to file ` +
|
|
244
|
+
`(searched ${roots.length > 0 ? roots.join(', ') : 'no roadmap root; none found'})\n`);
|
|
205
245
|
return { success: true };
|
|
206
246
|
}
|
|
247
|
+
if (matches.length > 1) {
|
|
248
|
+
// AC-4: two checkouts both claim this instance. Resolve to the most
|
|
249
|
+
// specific (this working tree) but say so — a duplicate `promoted_to` is
|
|
250
|
+
// how `findByPromotedTo` silently strands the other item.
|
|
251
|
+
process.stdout.write(`roadmap: ${matches.length} items name "${event.instance}" ` +
|
|
252
|
+
`(${matches.map((m) => m.file).join(', ')}) — filing the first, ` +
|
|
253
|
+
`the rest need a hand\n`);
|
|
254
|
+
}
|
|
255
|
+
const item = matches[0];
|
|
207
256
|
if (item.status === 'done') {
|
|
257
|
+
process.stdout.write(`roadmap: ${item.filename} already in done/\n`);
|
|
208
258
|
return { success: true };
|
|
209
259
|
}
|
|
210
260
|
moveItem(item, cwd, 'done', isoDate());
|
|
@@ -217,6 +267,9 @@ const builtInHandlers = {
|
|
|
217
267
|
},
|
|
218
268
|
/**
|
|
219
269
|
* doc-update: Append to a configured documentation file.
|
|
270
|
+
*
|
|
271
|
+
* Reporting rule: EXEMPT — always appends. Every early return is an error, not
|
|
272
|
+
* a success-without-doing.
|
|
220
273
|
*/
|
|
221
274
|
'doc-update': (event, config) => {
|
|
222
275
|
const file = config?.file;
|
|
@@ -248,6 +301,20 @@ const builtInHandlers = {
|
|
|
248
301
|
export function registerBuiltIn(name, handler) {
|
|
249
302
|
builtInHandlers[name] = handler;
|
|
250
303
|
}
|
|
304
|
+
/**
|
|
305
|
+
* The SHIPPED built-in action ids.
|
|
306
|
+
*
|
|
307
|
+
* Frozen at module load, so ids added later by `registerBuiltIn` (tests,
|
|
308
|
+
* extensions) are excluded — the reporting-rule inventory
|
|
309
|
+
* (automation-verdicts/AC-2) has to be total over what this repo ships, and a
|
|
310
|
+
* test's throwaway handler is neither shipped nor something to write an exemption
|
|
311
|
+
* for.
|
|
312
|
+
*/
|
|
313
|
+
const SHIPPED_BUILT_IN_IDS = Object.freeze(Object.keys(builtInHandlers).sort());
|
|
314
|
+
/** @see SHIPPED_BUILT_IN_IDS */
|
|
315
|
+
export function builtInActionIds() {
|
|
316
|
+
return [...SHIPPED_BUILT_IN_IDS];
|
|
317
|
+
}
|
|
251
318
|
// ---------------------------------------------------------------------------
|
|
252
319
|
// Action matching
|
|
253
320
|
// ---------------------------------------------------------------------------
|