Summary

Resolves #1010

/claim #1010

  • Adds a new “Annotate” bulk action button (MessageSquarePlus icon) to the traces/spans action panel toolbar
  • Clicking the button opens a BulkAnnotateDialog that displays all configured feedback definitions (numerical, boolean, categorical)
  • Users can set scores for any combination of feedback definitions, then apply them all at once to every selected trace/span
  • The dialog shows a loading state while scores are being applied and displays a success toast on completion

How it works

  1. Select multiple traces/spans using the existing checkbox selection in the table
  2. Click the new “Annotate” button in the toolbar (appears next to the “Add tags” button)
  3. In the dialog, set feedback scores using the same input controls as the single-trace annotation sidebar (numerical inputs, boolean toggles, categorical selects/toggles)
  4. Click “Apply to N traces” to submit all scores to all selected traces

Implementation details

  • New component: BulkAnnotateDialog in apps/opik-frontend/src/components/pages-shared/traces/BulkAnnotateDialog/
  • Modified component: TracesActionsPanel - added the annotate button and dialog integration
  • Reuses the existing useTraceFeedbackScoreSetMutation hook for applying scores (same API as single-trace annotation)
  • Supports all three feedback definition types: numerical, boolean, and categorical
  • Follows the same dialog pattern as AddTagDialog and other bulk action dialogs in the codebase
  • Uses the existing FeedbackScoresEditor UI patterns (ColoredTagNew, DebounceInput, ToggleGroup, SelectBox) for consistent look and feel

Test plan

  • Select multiple traces in a project, verify the “Annotate” button becomes enabled
  • Open the dialog, verify all feedback definitions from Configuration are displayed
  • Set a numerical score, verify it appears in the scores to apply
  • Set a boolean score (true/false toggle), verify it works
  • Set a categorical score, verify the dropdown/toggle works
  • Clear a score using the X button, verify it is removed
  • Click “Apply”, verify scores are applied to all selected traces
  • Verify the success toast shows the correct count
  • Verify the dialog closes after successful application
  • Verify scores appear on each trace’s feedback scores column
  • Test with spans view as well (not just traces)
  • Verify the button is disabled when no traces are selected

🤖 Generated with Claude Code

Claim

Total prize pool $100
Total paid $0
Status Pending
Submitted February 12, 2026
Last updated February 12, 2026

Contributors

BU

buildingvibes

@buildingvibes

100%

Sponsors

MO

molaminsillah05

@molaminsillah05

$50
CO

Comet

@comet-ml

$50