fix: address swarm review of consensus consolidation (PR #17)
Build & push image / build-and-push (pull_request) Successful in 6s
Build & push image / build-and-push (pull_request) Successful in 6s
From PR #17's own adversarial review (now running on the Phase-1 image — note the much cleaner, less-fragmented findings). Graded in gadfly-reports. - Never lose output (advisory invariant): run.sh writes a stub findings file when a model fails/skips under consolidation, so a failed model still shows (as failed) and an all-models-fail run still posts a comment. - Errored models excluded from the agreement denominator (modelFindings.Errored + allErrored); shown folded as "reviewer failed", not counted as clean. - Sliding cluster window: span [line,maxLine] widened by tolerance on both edges, so chains of nearby findings merge instead of splitting (fixes agreement under-counting). Clustering is now per-file (no global O(n²) scan). - Lone-finding headline threshold raised high -> critical (matches the docs); only consensus or a lone critical earns the headline, the rest fold. - findings_file_for appends a cksum so foo:bar vs foo/bar can't collide. - mdCell escapes the location cell + neutralizes backticks (table-injection); "No material issues" no longer shown when folded findings exist. - Removed dead cluster.detail; named findingRef type; single partition/agreed pass; writeFindingsOut MkdirAll; captureStdout defer-restore + close. Tests added: sliding-window chain merge, errored-denominator exclusion, lone HIGH folds. gofmt/vet/bash -n clean. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
+10
-1
@@ -235,7 +235,16 @@ case "${GADFLY_CONSOLIDATE:-auto}" in
|
||||
0) CONSOLIDATE=0 ;;
|
||||
*) [ "${#MODEL_LIST[@]}" -ge 2 ] && CONSOLIDATE=1 ;;
|
||||
esac
|
||||
findings_file_for() { echo "${FINDINGS_DIR}/$(echo "$1" | tr -c '[:alnum:]._-' '_').json"; }
|
||||
# A model spec can contain '/' and ':' (e.g. claude-code/opus, qwen3:14b), so
|
||||
# sanitize to a flat filename — but append a checksum of the raw spec so two
|
||||
# specs that sanitize the same (foo:bar vs foo/bar -> foo_bar) don't collide onto
|
||||
# one file and silently drop a model from the consensus.
|
||||
findings_file_for() {
|
||||
local safe sum
|
||||
safe="$(echo "$1" | tr -c '[:alnum:]._-' '_')"
|
||||
sum="$(printf '%s' "$1" | cksum | cut -d' ' -f1)"
|
||||
echo "${FINDINGS_DIR}/${safe}-${sum}.json"
|
||||
}
|
||||
if [ "$CONSOLIDATE" = "1" ]; then
|
||||
rm -rf "$FINDINGS_DIR"; mkdir -p "$FINDINGS_DIR"
|
||||
log "consolidation ON: ${#MODEL_LIST[@]} models -> one consensus comment"
|
||||
|
||||
Reference in New Issue
Block a user