发布

  • [NA] [FE] Add thumbs up/down feedback for OpikAssist conversations (#4846)

    frostbyte_neo 发布于 2026-01-23 16:37:53 +00:00

    • [NA] [FE] Add thumbs up/down feedback for OpikAssist conversations

    Implement session-level feedback feature for OpikAssist:

    • Add TraceSessionFeedback component with thumbs up/down buttons
    • Show only selected button after user feedback
    • Position feedback below final AI message
    • Frontend-only cache persists across trace switches
    • Clear feedback when conversation is cleared or panel closed
    • Backend API mutations for analytics tracking (PUT/DELETE endpoints)

    Files added:

    • useTraceAnalyzerFeedbackSetMutation.ts
    • useTraceAnalyzerFeedbackDeleteMutation.ts
    • TraceSessionFeedback.tsx

    Files modified:

    • ai-assistant.ts (added SESSION_FEEDBACK_VALUE enum)
    • TraceAIViewer.tsx (integrated feedback with cache management)
    • Revision 2: Address PR review feedback - add error rollback and improve error messages

    Fix optimistic update rollback on mutation errors:

    • Capture previous feedback state before optimistic update
    • Add onError callbacks to both SET and DELETE mutations
    • Rollback to previous state if backend request fails
    • Prevents UI from showing unpersisted feedback

    Improve error message handling:

    • Add fallback error messages when backend returns no message
    • Set mutation: 'Failed to update feedback. Please try again.'
    • Delete mutation: 'Failed to remove feedback. Please try again.'
    • Ensures users always receive actionable error guidance

    Files modified:

    • TraceSessionFeedback.tsx (added rollback logic)
    • useTraceAnalyzerFeedbackSetMutation.ts (improved error message)
    • useTraceAnalyzerFeedbackDeleteMutation.ts (improved error message)
    • Revision 3: Refactor TraceSessionFeedback to use single TooltipProvider

    Consolidate duplicate TooltipProvider wrappers:

    • Remove TooltipProvider from both conditional branches
    • Wrap entire component return with single TooltipProvider
    • Convert early return pattern to ternary operator
    • Inline state comparison (removed isLike variable)

    Benefits:

    • Single source of truth for tooltip configuration
    • Easier maintenance for future tooltip changes
    • Cleaner component structure

    No functional changes - all existing behavior preserved.

    下载附件