Problem
Once Generate is dirty-gated (shipping in better/bugs-perf), there's still no lightweight way to compare an incoming regeneration against unsaved edits — StageHistoryModal only diffs persisted runHistory.
Decision
Add a "view diff before replacing" confirm affordance in client/src/components/pipeline/stages/TextStagePanel.jsx using the existing InlineDiff component (already used in StageHistoryModal.jsx:140): when the user chooses to generate with unsaved edits, show the diff of current unsaved text vs the incoming result before committing it into the editor.
Acceptance
- Diff view reachable from the generate flow when edits exist; accepting applies, canceling preserves edits
Problem
Once Generate is dirty-gated (shipping in better/bugs-perf), there's still no lightweight way to compare an incoming regeneration against unsaved edits — StageHistoryModal only diffs persisted runHistory.
Decision
Add a "view diff before replacing" confirm affordance in
client/src/components/pipeline/stages/TextStagePanel.jsxusing the existing InlineDiff component (already used in StageHistoryModal.jsx:140): when the user chooses to generate with unsaved edits, show the diff of current unsaved text vs the incoming result before committing it into the editor.Acceptance