fix(gsd): revert unknown artifact check to warn-and-proceed

Blocking on "unknown" from hasImplementationArtifacts broke real-world
auto-mode in projects without clean git merge-bases (single-branch,
fresh repos, detached HEAD). The auto-loop silently stopped at
completing-milestone with no visible error.

Reverted to warn-and-proceed for "unknown" — only "absent" (confirmed
no implementation files) blocks completion. This matches the original
fail-open behavior for inconclusive git checks.
This commit is contained in:
Jeremy 2026-04-07 15:34:46 -05:00
parent 01f5557520
commit 5cfc865040
2 changed files with 2 additions and 7 deletions

View file

@ -776,11 +776,7 @@ export const DISPATCH_RULES: DispatchRule[] = [
};
}
if (artifactCheck === "unknown") {
return {
action: "stop",
reason: `Cannot verify implementation artifacts for milestone ${mid}: git check was inconclusive. Resolve git issues and retry.`,
level: "error",
};
logWarning("dispatch", `Implementation artifact check inconclusive for ${mid} — proceeding (git context unavailable)`);
}
// Verification class compliance: if operational verification was planned,

View file

@ -393,8 +393,7 @@ export function verifyExpectedArtifact(
// A milestone with only .gsd/ plan files and zero implementation code is
// not genuinely complete — the LLM wrote plan files but skipped actual work.
if (unitType === "complete-milestone") {
const artifactResult = hasImplementationArtifacts(base);
if (artifactResult === "absent" || artifactResult === "unknown") return false;
if (hasImplementationArtifacts(base) === "absent") return false;
}
return true;