diff --git a/src/resources/extensions/gsd/auto-dispatch.ts b/src/resources/extensions/gsd/auto-dispatch.ts index 0abb5108f..1b495c417 100644 --- a/src/resources/extensions/gsd/auto-dispatch.ts +++ b/src/resources/extensions/gsd/auto-dispatch.ts @@ -178,7 +178,7 @@ export function incrementUatCount(basePath: string, mid: string, sid: string): n export function isVerificationNotApplicable(value: string): boolean { const v = (value ?? "").toLowerCase().trim().replace(/[.\s]+$/, ""); if (!v || v === "none") return true; - return /^(?:none[\s._-]*(?:required|needed|planned)?|n\/?a|not[\s._-]+(?:applicable|required|needed|provided)|no[\s._-]+operational[\s\S]*)$/i.test(v); + return /^(?:none(?:[\s._\u2014-]+[\s\S]*)?|n\/?a|not[\s._-]+(?:applicable|required|needed|provided)|no[\s._-]+operational[\s\S]*)$/i.test(v); } // ─── Rules ──────────────────────────────────────────────────────────────── diff --git a/src/resources/extensions/gsd/tests/verification-operational-gate.test.ts b/src/resources/extensions/gsd/tests/verification-operational-gate.test.ts index 3a17a5488..65a6779c3 100644 --- a/src/resources/extensions/gsd/tests/verification-operational-gate.test.ts +++ b/src/resources/extensions/gsd/tests/verification-operational-gate.test.ts @@ -32,6 +32,17 @@ test("isVerificationNotApplicable: 'None planned' is not applicable", () => { assert.equal(isVerificationNotApplicable("None planned"), true); }); +test("isVerificationNotApplicable: 'None — ' is not applicable (#3897)", () => { + assert.equal( + isVerificationNotApplicable("None — no new background jobs, workers, or lifecycle changes introduced."), + true, + ); +}); + +test("isVerificationNotApplicable: em dash without spaces is not applicable (#3897)", () => { + assert.equal(isVerificationNotApplicable("none—inline"), true); +}); + test("isVerificationNotApplicable: 'N/A' is not applicable", () => { assert.equal(isVerificationNotApplicable("N/A"), true); });