@lumenflow/core 3.7.0 → 3.8.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.
|
@@ -10,6 +10,7 @@
|
|
|
10
10
|
* Exemptions:
|
|
11
11
|
* - type: documentation only
|
|
12
12
|
* - code_paths containing only documentation/config files (no code files)
|
|
13
|
+
* - WU-2273: notes containing tdd-exception: marker (explicit opt-out)
|
|
13
14
|
*
|
|
14
15
|
* @see {@link packages/@lumenflow/cli/src/lib/wu-done-validators.ts} - Integration point
|
|
15
16
|
* @see {@link config.directories.completeGuidePath} - TDD requirements
|
|
@@ -20,6 +21,7 @@ interface WuDocForTests {
|
|
|
20
21
|
code_paths?: unknown;
|
|
21
22
|
tests?: unknown;
|
|
22
23
|
test_paths?: unknown;
|
|
24
|
+
notes?: unknown;
|
|
23
25
|
}
|
|
24
26
|
/**
|
|
25
27
|
* Path prefixes for hex core code requiring automated tests.
|
|
@@ -66,6 +68,9 @@ export declare function containsHexCoreCode(codePaths: unknown): boolean;
|
|
|
66
68
|
* Check if a WU is exempt from automated test requirement.
|
|
67
69
|
*
|
|
68
70
|
* WU-2332: Only type: 'documentation' is exempt.
|
|
71
|
+
* WU-2273: Also exempt if notes contain tdd-exception: marker,
|
|
72
|
+
* aligning wu:done with wu:prep behavior.
|
|
73
|
+
*
|
|
69
74
|
* Lane-based exemptions have been removed - test requirements
|
|
70
75
|
* are now based on file types in code_paths.
|
|
71
76
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manual-test-validator.d.ts","sourceRoot":"","sources":["../src/manual-test-validator.ts"],"names":[],"mappings":";AAGA
|
|
1
|
+
{"version":3,"file":"manual-test-validator.d.ts","sourceRoot":"","sources":["../src/manual-test-validator.ts"],"names":[],"mappings":";AAGA;;;;;;;;;;;;;;;GAeG;AAKH,oDAAoD;AACpD,UAAU,aAAa;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAyBD;;;;;;;;GAQG;AACH,eAAO,MAAM,sBAAsB,mBAIjC,CAAC;AAEH;;;;;GAKG;AACH,eAAO,MAAM,YAAY,kBAAoB,CAAC;AAE9C;;;;;GAKG;AACH,eAAO,MAAM,YAAY,mBAA0C,CAAC;AAYpE;;;;;;;;GAQG;AACH,wBAAgB,UAAU,CAAC,QAAQ,EAAE,MAAM,WA0B1C;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,OAAO,WASrD;AAyBD;;;;;;;;;;;;GAYG;AACH,wBAAgB,0BAA0B,CAAC,GAAG,EAAE,aAAa,GAAG,IAAI,GAAG,SAAS,WAe/E;AAuCD;;;;;;;;;;GAUG;AACH,wBAAgB,gCAAgC,CAAC,GAAG,EAAE,aAAa,GAAG,IAAI,GAAG,SAAS;;;EAoCrF"}
|
|
@@ -12,6 +12,7 @@
|
|
|
12
12
|
* Exemptions:
|
|
13
13
|
* - type: documentation only
|
|
14
14
|
* - code_paths containing only documentation/config files (no code files)
|
|
15
|
+
* - WU-2273: notes containing tdd-exception: marker (explicit opt-out)
|
|
15
16
|
*
|
|
16
17
|
* @see {@link packages/@lumenflow/cli/src/lib/wu-done-validators.ts} - Integration point
|
|
17
18
|
* @see {@link config.directories.completeGuidePath} - TDD requirements
|
|
@@ -66,6 +67,15 @@ export const EXEMPT_LANES = Object.freeze([]);
|
|
|
66
67
|
* @constant {string[]}
|
|
67
68
|
*/
|
|
68
69
|
export const EXEMPT_TYPES = Object.freeze([WU_TYPES.DOCUMENTATION]);
|
|
70
|
+
/**
|
|
71
|
+
* Marker prefix in WU notes that explicitly opts out of automated test requirement.
|
|
72
|
+
* Must match the marker used by wu:prep (packages/@lumenflow/cli/src/wu-prep.ts).
|
|
73
|
+
*
|
|
74
|
+
* WU-2273: Ensures wu:done and wu:prep agree on tdd-exception behavior.
|
|
75
|
+
*
|
|
76
|
+
* @constant {string}
|
|
77
|
+
*/
|
|
78
|
+
const TDD_EXCEPTION_MARKER = 'tdd-exception:';
|
|
69
79
|
/**
|
|
70
80
|
* Determine if a file path represents a code file requiring automated tests.
|
|
71
81
|
*
|
|
@@ -113,10 +123,33 @@ export function containsHexCoreCode(codePaths) {
|
|
|
113
123
|
return HEX_CORE_CODE_PATTERNS.some((pattern) => path.startsWith(pattern));
|
|
114
124
|
});
|
|
115
125
|
}
|
|
126
|
+
/**
|
|
127
|
+
* Check if WU notes contain an explicit tdd-exception marker.
|
|
128
|
+
*
|
|
129
|
+
* Supports both string and array-of-strings notes formats.
|
|
130
|
+
* Uses case-insensitive matching consistent with wu:prep behavior.
|
|
131
|
+
*
|
|
132
|
+
* WU-2273: Extracted to share logic with isExemptFromAutomatedTests.
|
|
133
|
+
*
|
|
134
|
+
* @param {unknown} notes - WU notes field (string, string[], or other)
|
|
135
|
+
* @returns {boolean} True if notes contain the tdd-exception marker
|
|
136
|
+
*/
|
|
137
|
+
function hasDocumentedTddException(notes) {
|
|
138
|
+
if (typeof notes === 'string') {
|
|
139
|
+
return notes.toLowerCase().includes(TDD_EXCEPTION_MARKER);
|
|
140
|
+
}
|
|
141
|
+
if (Array.isArray(notes)) {
|
|
142
|
+
return notes.some((entry) => typeof entry === 'string' && hasDocumentedTddException(entry));
|
|
143
|
+
}
|
|
144
|
+
return false;
|
|
145
|
+
}
|
|
116
146
|
/**
|
|
117
147
|
* Check if a WU is exempt from automated test requirement.
|
|
118
148
|
*
|
|
119
149
|
* WU-2332: Only type: 'documentation' is exempt.
|
|
150
|
+
* WU-2273: Also exempt if notes contain tdd-exception: marker,
|
|
151
|
+
* aligning wu:done with wu:prep behavior.
|
|
152
|
+
*
|
|
120
153
|
* Lane-based exemptions have been removed - test requirements
|
|
121
154
|
* are now based on file types in code_paths.
|
|
122
155
|
*
|
|
@@ -126,11 +159,15 @@ export function containsHexCoreCode(codePaths) {
|
|
|
126
159
|
export function isExemptFromAutomatedTests(doc) {
|
|
127
160
|
if (!doc)
|
|
128
161
|
return false;
|
|
129
|
-
//
|
|
162
|
+
// type: documentation is exempt
|
|
130
163
|
const type = doc.type || '';
|
|
131
164
|
if (typeof type === 'string' && EXEMPT_TYPES.includes(type)) {
|
|
132
165
|
return true;
|
|
133
166
|
}
|
|
167
|
+
// WU-2273: tdd-exception: in notes is an explicit opt-out
|
|
168
|
+
if (hasDocumentedTddException(doc.notes)) {
|
|
169
|
+
return true;
|
|
170
|
+
}
|
|
134
171
|
return false;
|
|
135
172
|
}
|
|
136
173
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manual-test-validator.js","sourceRoot":"","sources":["../src/manual-test-validator.ts"],"names":[],"mappings":";AACA,iCAAiC;AACjC,yCAAyC;AACzC
|
|
1
|
+
{"version":3,"file":"manual-test-validator.js","sourceRoot":"","sources":["../src/manual-test-validator.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lumenflow/core",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.8.0",
|
|
4
4
|
"description": "Core WU lifecycle tools for LumenFlow workflow framework",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"lumenflow",
|
|
@@ -194,7 +194,7 @@
|
|
|
194
194
|
"vitest": "^4.0.18"
|
|
195
195
|
},
|
|
196
196
|
"peerDependencies": {
|
|
197
|
-
"@lumenflow/memory": "3.
|
|
197
|
+
"@lumenflow/memory": "3.8.0"
|
|
198
198
|
},
|
|
199
199
|
"peerDependenciesMeta": {
|
|
200
200
|
"@lumenflow/memory": {
|