Skip to content

[bot] Merge master/588b985d into rel/dev - #1746

Merged
yenkins-admin merged 7 commits into
rel/devfrom
snapshot-master-588b985d-to-rel/dev
Aug 20, 2026
Merged

[bot] Merge master/588b985d into rel/dev#1746
yenkins-admin merged 7 commits into
rel/devfrom
snapshot-master-588b985d-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 588b985 (created by https://github.com/gooddata/gooddata-python-sdk/actions/runs/32369569493).

Tomkess and others added 7 commits August 20, 2026 14:00
The SSE reasoning events were already being read to produce
reasoning_step_count, but the step text itself was discarded. Keep it
as reasoning_steps on ChatResult/ItemReport and surface it in the JSON
report so eval consumers can inspect the agent's actual reasoning
trace, not just how many steps it took.
Addresses CodeRabbit nitpick on PR #1708: a later run returning no
reasoning events must not clobber an earlier run's captured steps
(runner.py:120's `or` pattern, same as conversation_id/response_id).
…path

6001d2f wired ChatResult.reasoning_steps through runner.py's generic
single-turn path only. The agentic-CLI path (cli/agentic_runner.py ->
evaluate_agentic_*) builds its own ItemReport and never touched it, so
agentic_alert_skill/agentic_metric_skill/agentic_conversation items could
never produce a reasoning trace, no matter what the platform emitted.

Accumulates reasoning_steps across every send_message call in each of the
three evaluators' run loops, attaches it to the run/turn result, and
surfaces it from evaluate_agentic_* either as the return value (pass) or
as an attribute on the raised exception (fail) -- mirroring the existing
conversation_id-on-exception idiom in ChatClient.ask(). run_agentic_items
picks it up from either path onto ItemReport.reasoning_steps, which
json_report.py already serializes unconditionally.

general_question/guardrail/search_tool/visualization are left untouched --
their evaluate_agentic_* functions still return None, unchanged.
…agentic-CLI path

8010bd4 wired reasoning_steps through cli/agentic_runner.py -> evaluate_agentic_*,
but conversation_id/response_id stayed unset on ItemReport for every agentic kind
(agentic_alert_skill/agentic_metric_skill/agentic_conversation) -- each ChatResult
already carries both, and conversation_id was already threaded up to the
Alert/Metric/ConversationRunResult layer, but neither ever reached the top-level
evaluate_agentic_* return value or its failure exception, so run_agentic_items had
nothing to read.

Mirrors the reasoning_steps idiom exactly: widens each evaluate_agentic_*'s return
from list[str] to (reasoning_steps, conversation_id, response_id), attaches all
three to the raised exception on failure, and has run_agentic_items unpack either
form (tuple or the untouched kinds' bare list/None) onto ItemReport.conversation_id
/response_id. response_id is new at the RunResult layer for all three kinds --
captured as the last non-null value across a run's turns, same pattern already
used for reasoning_steps accumulation.

general_question/guardrail/search_tool/visualization untouched (already populated
via the single-turn runner.py path, not this one).

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
… dataclass

evaluate_agentic_alert_skill/metric_skill/conversation returned a bare
tuple[list[str], str, str | None], and _dispatch_agentic's return type
was a tuple | list[str] | None union unpacked via isinstance(outcome,
tuple). Introduced AgenticEvalOutcome (reasoning_steps, conversation_id,
response_id) in core/models.py and used it as the return type instead.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
…onse-ids

feat(gooddata-eval): capture conversation_id/response_id through the agentic-CLI path
feat(gooddata-eval): capture agent reasoning steps in ChatResult
@yenkins-admin
yenkins-admin merged commit 15e8df7 into rel/dev Aug 20, 2026
1 check passed
@yenkins-admin
yenkins-admin deleted the snapshot-master-588b985d-to-rel/dev branch August 20, 2026 12:35
@codecov

codecov Bot commented Aug 20, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 80.14%. Comparing base (47b3216) to head (588b985).
⚠️ Report is 565 commits behind head on rel/dev.

Additional details and impacted files
@@             Coverage Diff             @@
##           rel/dev    #1746      +/-   ##
===========================================
+ Coverage    79.73%   80.14%   +0.40%     
===========================================
  Files          272      272              
  Lines        19041    19101      +60     
===========================================
+ Hits         15183    15309     +126     
+ Misses        3858     3792      -66     

☔ 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