You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Match forced-stop Summary text exactly, not by substring
Salvage classifiers matched free-text Summary substrings ('no
progress', 'cancelled', etc), so a SUCCESSFUL report whose Summary
happened to contain those words was recorded as a forced stop,
hard-blocking identical re-dispatch. forcedStopReport's summaries are
now a single FORCED_STOP_SUMMARIES lookup shared by both the producer
and the isXxxSubAgentReport classifiers, which compare against it with
exact equality instead of .includes.
A typed marker on the report would need a schema change (CL-6786,
human-gated, out of scope) so this tightens to exact string matching
instead.
? "Stopped: worker narrated instead of writing a report envelope."
471
-
: "Turn budget reached before finishing.";
474
+
constsummary=FORCED_STOP_SUMMARIES[reason];
472
475
constblockers=
473
476
reason==="no-progress"
474
477
? "Identical tool-call fingerprint repeated consecutively; parent must not re-dispatch the identical brief (it will be refused) — tighten success_criteria/do_not or change approach."
@@ -506,34 +509,40 @@ export function forcedStopReport(
506
509
});
507
510
}
508
511
512
+
/**
513
+
* True when a report's Summary is exactly the forced-stop text for `reason`
514
+
* (CL-6704: exact match, not a free-text substring — a successful report
515
+
* whose Summary happens to mention the same words must not classify as a
0 commit comments