Skip to content

[bot] Merge master/8bc01a8a into rel/dev - #1945

Merged
yenkins-admin merged 4 commits into
rel/devfrom
snapshot-master-8bc01a8a-to-rel/dev
Nov 11, 2026
Merged

yenkins-admin merged 4 commits into
rel/devfrom
snapshot-master-8bc01a8a-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 8bc01a8 (created by https://github.com/gooddata/gooddata-python-sdk/actions/runs/43099316689).

chrisbonilla95 and others added 4 commits November 11, 2026 05:47
`TakeawayClient.request(ti)` holds the body, post and retry code that
`ask(item)` had, and `ask` now validates the item's `takeaway_input`
and delegates, so a caller without a `DatasetItem` can request a
takeaway. The transient-or-setup split moves from
`core/takeaway/evaluate.py` to the client module as `is_transient`, so
the agentic document skill can share it without importing the takeaway
entry point. No behaviour change for `document_takeaway`.

jira: LX-3246
risk: low
`editor_takeaway_input(document, page, takeaway)` reproduces gdc-ui's
`documentTakeawayRequest` for a v2 document: every visualization on the
page in layout order, deduplicated by id and filters, each under the
period on its own date dataset (or a document date filter with both ends
on that dataset in its place, or none when the widget ignores the period
or has no date dataset) plus the document's attribute and text filters,
`filterContext` empty, and the takeaway's and the document's
instructions trimmed. Pure, no network.

The document filters follow gen-ai's `report_filter_to_afm` rule for
rule: an attribute filter reads its elements from `uris`, else from
`values`, the shape the converter writes; a text filter on whole values
becomes an element filter and one on a fragment a
`matchAttributeFilter`; an exclusion of nothing and any other kind
(measure value filters) are left out, since the renderer draws no chart
differently for them. The function returns a reason instead when the
page has no visualization or a filter has no AFM form (an empty positive
selection, an unknown match operator or date granularity).
`maxCharacters` is left to the endpoint default and text variables are
sent as written.

jira: LX-3246
risk: low
When a v2 draft's `draft_document` result lists pages in
`takeaway_editor_page_ids` and the fixture states a narrative, the run
writes each unwritten takeaway on those pages through the takeaway
endpoint, the way the editor does, and grades the document with that
text. The copilot sends the document as code, so each request is built
from its declarative form (`aac_document_to_declarative`), which is
what the editor reads: the period lands on each chart's own date
dataset and the document filters arrive in the converter's shape. A
draft that does not convert fails the run with the converter's reason.
The published `document_part` stays the one the copilot sent. An empty
takeaway on any other page still fails as before, and a v1 draft or a
v2 draft without the field (every draft today) makes no request and is
graded unchanged.

A takeaway the endpoint does not write (`noData`, empty text) or whose
request the eval cannot build stays empty and adds a failure line that
says why. A non-transient 4xx (the takeaway flag off answers 404)
raises as a setup problem. A transient failure after the client's
retries leaves that takeaway empty and the fill goes on; the run is
ungraded (`fill_error`, like a judge error: out of pass@K and keeping
pass^K from holding) only when nothing but transient failures left a
takeaway empty, and otherwise fails on the summaries check. An item
whose every run is ungraded raises naming both sources. The count of
written takeaways is published as the diagnostic
`document_takeaways_by_editor` score and in the run detail. The
endpoint time counts toward `agent_s`.

jira: LX-3246
risk: low
feat(gooddata-eval): grade takeaways the copilot leaves to the editor
@yenkins-admin
yenkins-admin merged commit 528ad1c into rel/dev Nov 11, 2026
1 check passed
@yenkins-admin
yenkins-admin deleted the snapshot-master-8bc01a8a-to-rel/dev branch November 11, 2026 21:00
@codecov

codecov Bot commented Nov 11, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 94.38944% with 17 lines in your changes missing coverage. Please review.
✅ Project coverage is 86.52%. Comparing base (5f40cd0) to head (8bc01a8).
⚠️ Report is 650 commits behind head on rel/dev.

Files with missing lines Patch % Lines
...l/src/gooddata_eval/core/agentic/document_skill.py 94.85% 9 Missing ⚠️
...rc/gooddata_eval/core/agentic/_editor_takeaways.py 93.27% 8 Missing ⚠️
Additional details and impacted files
@@             Coverage Diff             @@
##           rel/dev    #1945      +/-   ##
===========================================
+ Coverage    86.44%   86.52%   +0.08%     
===========================================
  Files          348      349       +1     
  Lines        26670    26957     +287     
===========================================
+ Hits         23054    23324     +270     
- Misses        3616     3633      +17     

☔ 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.

2 participants