Skip to content

[bot] Merge master/17bcb5cc into rel/dev - #1711

Merged
yenkins-admin merged 2 commits into
rel/devfrom
snapshot-master-17bcb5cc-to-rel/dev
Aug 5, 2026
Merged

[bot] Merge master/17bcb5cc into rel/dev#1711
yenkins-admin merged 2 commits into
rel/devfrom
snapshot-master-17bcb5cc-to-rel/dev

Conversation

@yenkins-admin

Copy link
Copy Markdown
Contributor

🚀 Automated PR to perform merge from master into rel/dev with changes up to 17bcb5c (created by https://github.com/gooddata/gooddata-python-sdk/actions/runs/30970100815).

myhoai and others added 2 commits August 5, 2026 08:08
The visualization comparator required a ranking filter's `attribute` to match
exactly, but `attribute` is optional in the AAC schema -- gen-ai models it as
`NotRequired[str]` / `str | None` in all three of its ranking-filter types, and
when it is absent AFM ranks over every dimension of the result. On a chart with
exactly one dimension that is the same filter, so the comparator was stricter
than the product contract and failed correct answers.

Both Anthropic models consistently omit `attribute` while getting the metric and
top/bottom-N right, which made this the largest visualization failure cluster:
14 of 49 viz failures in run 30850362312 (opus48 9, sonnet46 3, bedrock 2). No
GPT combo is affected.

`_normalize_ranking_filter` now fills an omitted attribute in with the
visualization's sole dimension URI instead of comparing it as an empty string.
The substitution is gated on there being exactly ONE distinct dimension: with
two or more, omitting `attribute` ranks over the dimension tuple, which is a
genuinely different filter, so those stay strict.

It is applied to expected and actual alike, because datasets omit `attribute`
too -- without symmetry an agent that supplies the more precise filter would
fail against a fixture that omits it. Missing, None and "" now normalize
identically, so `attribute: null` no longer differs from an absent key.

Also make `validate_cross_references` return a score instead of raising. None,
"" and non-string values reached `.startswith()` / `dict.get()` and blew up with
AttributeError / TypeError mid-evaluation. This affected the `using` branch as
well as `attribute`. Its test asserts the expected verdict per malformed case
rather than comparing `ok` against the returned error-list length, which was a
tautology against an implementation that returns exactly `len(errors) == 0`;
confirmed non-vacuous by mutation.

Verified by re-scoring all 48 expected/actual pairs lifted from run 30850362312
with the patched module: 14 flip FAIL -> PASS, 0 checks that CI reported as True
became False. Note this raises opus48's pass rate ~4.5pp for comparator reasons,
not model ones.

JIRA: QA-28615
risk: nonprod

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
fix(gooddata-eval): make ranking attribute optional on 1-dim viz
@yenkins-admin
yenkins-admin merged commit 69ed975 into rel/dev Aug 5, 2026
1 check passed
@yenkins-admin
yenkins-admin deleted the snapshot-master-17bcb5cc-to-rel/dev branch August 5, 2026 02:42
@coderabbitai

coderabbitai Bot commented Aug 5, 2026

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: d6549819-f7a4-4135-9226-59393af7467b

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@codecov

codecov Bot commented Aug 5, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 88.88889% with 3 lines in your changes missing coverage. Please review.
✅ Project coverage is 78.40%. Comparing base (78904a0) to head (17bcb5c).
⚠️ Report is 540 commits behind head on rel/dev.

Files with missing lines Patch % Lines
...es/gooddata-eval/src/gooddata_eval/core/scoring.py 88.88% 3 Missing ⚠️
Additional details and impacted files
@@             Coverage Diff             @@
##           rel/dev    #1711      +/-   ##
===========================================
+ Coverage    78.34%   78.40%   +0.05%     
===========================================
  Files          271      271              
  Lines        18726    18741      +15     
===========================================
+ Hits         14671    14693      +22     
+ Misses        4055     4048       -7     

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants