@zhuk/spego 0.16.0 → 0.16.1
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/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,10 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [0.16.1] - 2026-07-28
|
|
4
|
+
|
|
5
|
+
### Fixed
|
|
6
|
+
- OpenSpec change discovery no longer requires a `.openspec.yaml` marker file in every change directory — a `proposal.md` alone is now sufficient. Changes created by openspec workflows that never write the marker were previously invisible to `spego board`/`spego epics`/`spego groom`, with no warning surfaced (the mirror just reported an empty, clean board).
|
|
7
|
+
|
|
3
8
|
## [0.16.0] - 2026-07-23
|
|
4
9
|
|
|
5
10
|
### Added
|
|
@@ -36,28 +36,38 @@ async function listDirEntries(dir) {
|
|
|
36
36
|
return [];
|
|
37
37
|
}
|
|
38
38
|
}
|
|
39
|
-
async function
|
|
40
|
-
let s;
|
|
39
|
+
async function fileExists(fullPath) {
|
|
41
40
|
try {
|
|
42
|
-
|
|
41
|
+
return (await stat(fullPath)).isFile();
|
|
43
42
|
}
|
|
44
43
|
catch {
|
|
45
44
|
return false;
|
|
46
45
|
}
|
|
47
|
-
|
|
48
|
-
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* A directory is a change if it carries either the openspec `.openspec.yaml`
|
|
49
|
+
* marker or a `proposal.md` — the marker is written by only some openspec
|
|
50
|
+
* CLI/workflow paths, `proposal.md` is universal across all of them.
|
|
51
|
+
*/
|
|
52
|
+
async function isChangeDir(fullPath) {
|
|
53
|
+
let s;
|
|
49
54
|
try {
|
|
50
|
-
|
|
55
|
+
s = await stat(fullPath);
|
|
51
56
|
}
|
|
52
57
|
catch {
|
|
53
58
|
return false;
|
|
54
59
|
}
|
|
60
|
+
if (!s.isDirectory())
|
|
61
|
+
return false;
|
|
62
|
+
if (await fileExists(join(fullPath, 'proposal.md')))
|
|
63
|
+
return true;
|
|
64
|
+
return fileExists(join(fullPath, META_FILE));
|
|
55
65
|
}
|
|
56
66
|
async function discoverFlatChanges(changesDir, projectRoot) {
|
|
57
67
|
const entries = await listDirEntries(changesDir);
|
|
58
68
|
const discovered = await Promise.all(entries.map(async (entry) => {
|
|
59
69
|
const fullPath = join(changesDir, entry);
|
|
60
|
-
if (!(await
|
|
70
|
+
if (!(await isChangeDir(fullPath)))
|
|
61
71
|
return null;
|
|
62
72
|
const raw = await readFile(join(fullPath, META_FILE), 'utf8').catch(() => '');
|
|
63
73
|
const archived = /^(?:archived:\s*true)\s*$/m.test(raw);
|
|
@@ -74,7 +84,7 @@ async function discoverArchivedChanges(archiveDir, projectRoot) {
|
|
|
74
84
|
const entries = await listDirEntries(archiveDir);
|
|
75
85
|
const discovered = await Promise.all(entries.map(async (entry) => {
|
|
76
86
|
const fullPath = join(archiveDir, entry);
|
|
77
|
-
if (!(await
|
|
87
|
+
if (!(await isChangeDir(fullPath)))
|
|
78
88
|
return null;
|
|
79
89
|
return {
|
|
80
90
|
name: entry.replace(ARCHIVE_NAME_PREFIX, ''),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openspec-discover.js","sourceRoot":"","sources":["../../src/delivery/openspec-discover.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAC3D,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,MAAM,YAAY,GAAG,UAAU,CAAC;AAChC,MAAM,WAAW,GAAG,aAAa,CAAC;AAClC,MAAM,WAAW,GAAG,SAAS,CAAC;AAC9B,MAAM,WAAW,GAAG,SAAS,CAAC;AAC9B,MAAM,SAAS,GAAG,gBAAgB,CAAC;AACnC,MAAM,mBAAmB,GAAG,qBAAqB,CAAC;AAQlD,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,WAAmB;IACvD,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,EAAE,YAAY,EAAE,WAAW,CAAC,CAAC;IACzD,IAAI,CAAC;QACH,MAAM,CAAC,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,CAAC;QAC1B,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE;YAAE,MAAM,IAAI,UAAU,CAAC,wBAAwB,EAAE,8BAA8B,CAAC,CAAC;IAClG,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,GAAG,YAAY,UAAU;YAAE,MAAM,GAAG,CAAC;QACzC,MAAM,IAAI,UAAU,CAAC,wBAAwB,EAAE,8BAA8B,EAAE;YAC7E,IAAI,EAAE,wDAAwD;SAC/D,CAAC,CAAC;IACL,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,WAAmB;IACvD,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,EAAE,YAAY,EAAE,WAAW,CAAC,CAAC;IAChE,MAAM,IAAI,GAAG,MAAM,mBAAmB,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;IAChE,MAAM,QAAQ,GAAG,MAAM,uBAAuB,CAAC,IAAI,CAAC,UAAU,EAAE,WAAW,CAAC,EAAE,WAAW,CAAC,CAAC;IAC3F,OAAO,CAAC,GAAG,IAAI,EAAE,GAAG,QAAQ,CAAC,CAAC;AAChC,CAAC;AAED,KAAK,UAAU,cAAc,CAAC,GAAW;IACvC,IAAI,CAAC;QACH,OAAO,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC;IAC5B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED,KAAK,UAAU,WAAW,CAAC,QAAgB;IACzC,IAAI,CAAC,CAAC;IACN,IAAI,CAAC;QACH,CAAC,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC3B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,CAAC,CAAC,CAAC,WAAW,EAAE;QAAE,OAAO,KAAK,CAAC;IACnC,IAAI,
|
|
1
|
+
{"version":3,"file":"openspec-discover.js","sourceRoot":"","sources":["../../src/delivery/openspec-discover.ts"],"names":[],"mappings":"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"}
|