reasoning: require structural progress for supported meaning

This commit is contained in:
2026-08-11 12:32:03 +01:00
parent 3b868b266e
commit 6adcd817e1
4 changed files with 244 additions and 2 deletions
+9 -1
View File
@@ -881,7 +881,15 @@ export function validateGraphUpdate(graph, update) {
update.removedEdgeIds.length > 0;
if (!hasMeaningfulChange) {
errors.push("Update contains no meaningful change");
// Specific diagnostic for the semantic-only no-op case: populated userSupportedMeaning with zero structural mutation.
// The validator does NOT determine whether meaning is "new" or "consequential" — it only observes that meaning exists without structural expression.
if (update.answerMeaning?.userSupportedMeaning) {
errors.push(
"answerMeaning.userSupportedMeaning is populated, but the proposal contains no graph mutation. answerMeaning alone does not constitute graph progress.",
);
} else {
errors.push("Update contains no meaningful change");
}
}
// Reject oversized input