-
[OPIK-5428] [BE][FE] fix: show traces for all compared experiments on Go to logs (#6939)
发布于
2026-06-02 10:41:41 +00:00 - [OPIK-5428] [BE][FE] fix: show traces for all compared experiments on Go to logs
Add FieldType.STRING_EXACT_LIST (exact-match id field that also supports
IN/NOT_IN) and reassign TraceField.EXPERIMENT_ID to it, so traces can be
filtered by multiple experiment ids. The FE Compare Experiments "Go to logs"
button now emits a single experiment_id IN filter built from all compared
experiment ids instead of only the baseline.Co-Authored-By: Claude Opus 4.8 noreply@anthropic.com
- fix(filters): add 'in' operator to automation rule schemas
Keeps the rule-dialog Zod operator enum in sync with the FilterOperator
union after adding the multi-value 'in' operator.Co-Authored-By: Claude Opus 4.8 noreply@anthropic.com
- fix(filters): reject all-blank STRING_EXACT_LIST values
Require at least one non-blank token after comma-splitting so an IN/NOT_IN
value like " , ," is rejected at validation instead of binding an empty array.Co-Authored-By: Claude Opus 4.8 noreply@anthropic.com
- test(filters): cover STRING_EXACT_LIST in FilterTestUtils switches
Add the new field type to the value/key/invalid-value switch expressions so
the backend test module compiles (the non-exhaustive switch broke testCompile
and cascaded into every integration/SDK CI job).Co-Authored-By: Claude Opus 4.8 noreply@anthropic.com
- test(traces): add experiment_id IN filter integration test
Mirrors whenFilterExperimentIdEquals: links two traces to two experiments
and asserts an experiment_id IN filter returns traces from both. Verifies
STRING_EXACT_LIST end-to-end through the trace query subquery.Co-Authored-By: Claude Opus 4.8 noreply@anthropic.com
- feat(traces): experiment multi-select for the logs experiment filter
Replace the free-text experiment_id value input in the trace logs sidebar
with the experiment multi-select (project-scoped, shows names), restricted to
a single "is one of" (IN) operator. Unifies v2 single-experiment callers
(TrialDetails) on the IN helper so they render in the same control.Co-Authored-By: Claude Opus 4.8 noreply@anthropic.com
- refactor(traces): move experiment filter wrapper next to ExperimentsSelectBox
Relocate the filter keyComponent adapter into the ExperimentsSelectBox folder
and rename to ExperimentsSelectBoxFilterWrapper.Co-Authored-By: Claude Opus 4.8 noreply@anthropic.com
- refactor(filters): dedicated experiment_ids field with STRING_LIST type
Per review: instead of widening experiment_id's type, add a separate
experiment_ids filter field of a new STRING_LIST type that supports only
IN/NOT_IN (mirrors the input/input_json precedent). experiment_id stays
STRING_EXACT so v1'sexperiment_id = Xfilters keep working with no
migration. Both fields map to the same experiment_items subquery.FE: generateExperimentIdsFilter + the trace logs experiment filter now use
the experiment_ids field.Co-Authored-By: Claude Opus 4.8 noreply@anthropic.com
- refactor(filters): use COLUMN_EXPERIMENT_IDS constant for the field id
Define COLUMN_EXPERIMENT_IDS in types/shared.ts next to COLUMN_EXPERIMENT_ID
and use it for the experiment_ids filter field/column instead of reaching for
the dashboards' EXPERIMENT_IDS_FILTER_FIELD.Co-Authored-By: Claude Opus 4.8 noreply@anthropic.com
Co-authored-by: Claude Opus 4.8 noreply@anthropic.com
下载附件