You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
[OPIK-7791] [QA] Add e2e specs for JSON-looking judge prompts (OPIK-8250)
Two specs proposed by the 2.2.50 -> 2.2.51 release QA side flow, from flows a
human verified on staging first.
online-evaluation-json-looking-judge-prompts.spec.ts covers
@cap:online-evaluation.list-rules: a project holding a prose control rule plus
six judge prompts that open with '[' still lists every rule over the
project-scoped API, keeps the workspace-wide (sampler-shared) listing at 200,
and renders a row per rule with no 5xx from the evaluators endpoint.
online-evaluation-judge-prompt-round-trip.spec.ts covers
@cap:online-evaluation.edit-rule: an example-array-then-prose prompt reads back
byte-exact over the API and in the edit dialog, and survives a no-op dialog
save; a genuine content_array message still reads back structured, with its
image_url url and detail intact, after a no-op re-save.
The estate cannot reach these shapes through the create-rule dialog, which only
emits the canned templates, so both specs seed over REST. Supporting additions:
createLlmJudgeRule / findAutomationRuleEvaluatorsPage / getLlmJudgeMessages /
resaveAutomationRuleFromReadBack on the backend client, and
openEditDialogByName / readPromptMessageText / submitDialog / cancelDialog on
OnlineEvaluationPage.
Generated by the release QA side flow. Needs human review before merge.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
python-rule-scores: { covered: true, tier: t1-smoke, note: "deterministic 3x1.0 / 2x0.0; t2 also covers sub-path mappings over non-object sections and the 400-class classification of a metric that exits 0 without a result line" }
list-rules: { covered: true, tier: t2-cuj, note: "project-scoped and workspace-wide listing over a project holding six bracket-opening judge prompts, plus the rules page rendering a row for each" }
sampling-rate: { covered: true, tier: t2-cuj, note: "50% rule vs 100% control over one 30-trace batch, binomial band 15-85%; plus a 0%-rate rule at trigger_scope=both, which must skip every SDK trace and still score experiment/playground/optimization ones" }
661
663
clone-rule: { covered: false }
662
-
edit-rule: { covered: false }
664
+
# Scoped: the edit dialog is opened, its hydrated prompt asserted byte-exact,
665
+
# and submitted unchanged so the save round trip is real. Editing a FIELD
666
+
# through the dialog (renaming, changing the model, rewriting the prompt) is
667
+
# still uncovered.
668
+
edit-rule: { covered: true, tier: t2-cuj, note: "dialog hydration + no-op re-save preserve a judge prompt byte-for-byte, in both the plain-string and content_array shapes; editing a field through the dialog is not covered" }
663
669
enable-disable-rule: { covered: true, tier: t2-cuj, note: "edit-dialog switch; control rule proves scoring stopped, then resumed" }
0 commit comments