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:
@@ -214,6 +214,16 @@ esac
|
||||
# --- assemble + post final comment (with run time) --------------------------
|
||||
ELAPSED="$(( $(date +%s) - START_TS ))"
|
||||
DUR="$(fmt_duration "$ELAPSED")"
|
||||
|
||||
# Consolidating: the binary writes its findings file on success. If it failed or
|
||||
# was skipped (no file, or an empty one), write a stub so this model still shows
|
||||
# up in the consensus (as failed) and an all-models-fail run still posts a
|
||||
# comment — never silently drop a model or the whole review.
|
||||
if [ "$CONSOLIDATE" = "1" ] && [ -n "${GADFLY_FINDINGS_OUT:-}" ] && [ ! -s "${GADFLY_FINDINGS_OUT}" ]; then
|
||||
jq -n --arg model "$MODEL" --arg provider "$MODEL_PROVIDER" --arg md "$REVIEW" \
|
||||
'{model:$model, provider:$provider, verdict:"reviewer failed", errored:true, markdown:$md, findings:[]}' \
|
||||
> "${GADFLY_FINDINGS_OUT}" 2>/dev/null || true
|
||||
fi
|
||||
# When consolidating, the binary has written this model's findings to
|
||||
# GADFLY_FINDINGS_OUT; the consensus comment is posted by entrypoint.sh after the
|
||||
# whole swarm finishes, so this model posts no comment of its own.
|
||||
|
||||
Reference in New Issue
Block a user