Audit trail of every approved refinement and the original generation. Each entry shows the diff,
who approved it, the resulting margin shift, and whether the change was promoted to the training pool.
Reads from GET /api/estimate/refinements?sessionId=X.
laborLineExamples (drywall category)
estimateBefore and estimateAfter — full snapshots, not just diffs. The diff view here is computed client-side from the structured changes[] array on the record.appliedToTraining from the schema. Clicking it could deep-link to the Training Data dashboard filtered to the lines this refinement promoted.chatTranscript. Clicking "View chat transcript" opens an inline modal showing the actual back-and-forth.