-
Notifications
You must be signed in to change notification settings - Fork 0
chore: sync workflow templates #332
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -531,6 +531,7 @@ def extract_verification_data(comment_body: str) -> VerificationData: | |
| # Extract provider verdicts (from comparison reports) | ||
| lines = comment_body.splitlines() | ||
| in_provider_table = False | ||
| provider_summary_concerns: list[str] = [] | ||
| for line in lines: | ||
| if re.search( | ||
| r"\|\s*Provider\s*\|\s*Model\s*\|\s*Verdict\s*\|\s*Confidence", | ||
|
|
@@ -556,11 +557,17 @@ def extract_verification_data(comment_body: str) -> VerificationData: | |
| verdict = cols[2] | ||
| confidence_text = cols[3] | ||
| confidence = _parse_confidence_value(confidence_text) | ||
| data.provider_verdicts[provider] = { | ||
| summary_text = cols[4].strip() if len(cols) >= 5 else "" | ||
| entry = { | ||
| "model": model, | ||
| "verdict": verdict.strip(), | ||
| "confidence": confidence, | ||
| } | ||
| if summary_text: | ||
| entry["summary"] = summary_text | ||
| if verdict.strip().upper() != "PASS": | ||
| provider_summary_concerns.append(summary_text) | ||
| data.provider_verdicts[provider] = entry | ||
|
|
||
| # Extract verdicts from provider detail sections as a fallback. | ||
| current_provider = None | ||
|
|
@@ -665,6 +672,8 @@ def extract_verification_data(comment_body: str) -> VerificationData: | |
| if concern and len(concern) > 15: | ||
| all_concerns.append(concern) | ||
|
|
||
| all_concerns.extend(provider_summary_concerns) | ||
|
|
||
| # Deduplicate while preserving order, and filter out spurious entries | ||
| seen: set[str] = set() | ||
| data.concerns = [] | ||
|
|
@@ -1475,6 +1484,33 @@ def _generate_without_llm( | |
| body_parts.append(f"- {concern}") | ||
| body_parts.extend(["", "</details>"]) | ||
|
|
||
| body_parts.extend( | ||
| [ | ||
| "", | ||
| "## verify:compare Analysis", | ||
| "", | ||
| f"- Resolved verdict: {verdict}", | ||
| ] | ||
| ) | ||
| for concern in blocking_concerns[:10]: | ||
| body_parts.append(f"- Concern: {concern}") | ||
| for concern in advisory_concerns[:10]: | ||
| body_parts.append(f"- Advisory: {concern}") | ||
|
|
||
| body_parts.extend( | ||
| [ | ||
| "", | ||
| "## verify:compare Evidence", | ||
| "", | ||
| ] | ||
| ) | ||
|
Comment on lines
+1487
to
+1506
|
||
| for provider, data in verification_data.provider_verdicts.items(): | ||
| evidence = f"- {provider}: {data.get('verdict', 'Unknown')} @ {data.get('confidence', 0)}%" | ||
| summary = data.get("summary") | ||
| if summary: | ||
| evidence += f" ({summary})" | ||
| body_parts.append(evidence) | ||
|
Comment on lines
+1507
to
+1512
|
||
|
|
||
| # Add background context in collapsible section | ||
| body_parts.extend( | ||
| [ | ||
|
|
||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
When extracting the Provider Summary table,
summary_textcan be the placeholder "N/A" (see pr_verifier’s table generation). As written, non-PASS rows will add "N/A" intoprovider_summary_concerns, which then becomes a top-level concern and can generate noisy follow-up tasks. Consider skipping placeholder/empty summaries (e.g., "N/A"), and applying a minimum-length or other sanity filter similar to the other concern extraction paths before appending.