fix(eval): surface pending-merge branch and raw grader response in failures - #1704
Merged
Merged
Conversation
…ilures
Discovered during a live WiseTechAcademy.Evals v5 dogfood run:
- When a results auto-push hits a genuine content conflict,
directPushResultsWithDetails already pushes the local run to a temp
agentv/results-sync/... branch instead of dropping it (docs/adr/0007), but
the CLI warning only printed the block reason ("...resolve it with a GitHub
pull request") with no mention of the branch or its compare URL. That reads
as "results were lost" when they were not. Surface the pending_merge branch
name and compare URL in the warning.
- An LLM-rubric grader parse failure only carried the JSON.parse error (e.g.
`Unexpected identifier "This"`), discarding the raw model text. When a
grader is misconfigured to point at a non-JSON-returning target, the error
gives no clue what the model actually said. Include a truncated raw-response
preview in the skip reason.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Deploying agentv with
|
| Latest commit: |
bb16a8c
|
| Status: | ✅ Deploy successful! |
| Preview URL: | https://10d11372.agentv.pages.dev |
| Branch Preview URL: | https://fix-results-pending-merge-an.agentv.pages.dev |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Two diagnostics gaps found during a live dogfood of AgentV v5 against a real
downstream consumer (WiseTechGlobal/WiseTechAcademy.Evals, mid-migration to
v5).
Results auto-push conflict warning read as data loss. When
directPushResultsWithDetailshits a genuine results-content conflict onthe configured results branch, it already pushes the local run to a temp
agentv/results-sync/...branch instead of dropping it (perdocs/adr/0007-conflict-free-results-sync-without-force-push.md). ButmaybeAutoExportRunArtifactsonly printed the block reason ("...resolve itwith a GitHub pull request"), never the sync branch name or its compare
URL. A user seeing that warning has no way to tell the results actually
made it to a real, pushed branch. Fixed to print the
pending_mergebranchand compare URL when present.
LLM grader parse failures discarded the raw model response. A parse
failure only surfaced the
JSON.parseerror (e.g.Unexpected identifier "This"), not what the model actually said. This makes a genuinely usefulclass of failure — a grader misrouted at a non-JSON-returning target, or a
model ignoring the JSON-only instruction — much harder to diagnose than it
needs to be. Fixed to include a truncated raw-response preview in the skip
reason.
How this was found
Live dogfood run against WiseTechAcademy.Evals:
evals/ace-search-subset/n1.eval.yaml,real
defaulttarget (staging search CLI) + realopenaiLLM-rubric graders.JSON Parse error: Unexpected identifier "This"/"They"on both LLM-rubric graders. Root cause turned out to be on theconsumer side (their PR feat: add retry configuration with exponential backoff for AI providers #40 migration dropped
grader_target: graderfromtargets.yaml, so the grader silently self-graded against the search CLIinstead of the LLM target) — but AgentV's error message gave no hint of
this; only the raw-response preview added here would have shown "this
looks like a search answer, not a JSON verdict" immediately.
same-day dogfood runs had already advanced
agentv/results/v1), correctlyfell back to a sync branch, but the printed warning didn't say so.
Second (fixed) run passed at 97% with the corrected consumer-side config;
its console output demonstrates the new warning:
Full evidence (screenshots, README with root-cause writeup):
agentv-privatebranch
evidence/wisetechacademy-evals-agentv-v5-dogfood-2026-07-06.Validation
bun test packages/core/test/evaluation/graders.test.ts apps/cli/test/commands/results/remote-auto-export.test.ts— 68 pass, 0 fail (includes 4 new tests: 3 forformatPendingMergeWarnings, 1 regression for the raw-response preview).tsc --noEmitclean forapps/cliandpackages/core.biome checkclean on all touched files.Not done here (left for human review)
agentv/results/v1conflict banner ("Local and remote results historieshave diverged... resolve manually"). That's a different code path
(
apps/dashboard/src/lib/project-sync-status.ts/RunSourceToolbar.tsx,pull-based sync) than the one fixed here (push-based
eval runauto-export),and a real UI change rather than a message-plumbing fix. Flagging as a
follow-up rather than expanding this PR's scope.
Not merging — leaving open for review per this session's checkpoint policy.
🤖 Generated with Claude Code