import QtQuick import qs.Commons import qs.Ui // RepairStage.qml - Confirming one repair. // // One stage of the claude-mode panel. Panel.qml hands itself in as `panel` // and owns all the state and actions; this file only draws them. Column { id: stage required property var panel width: parent.width visible: stage.panel.stage === "repair" && stage.panel.repairTarget !== null spacing: Style.space(7) Text { width: parent.width text: "Repair " + (stage.panel.repairTarget ? String(stage.panel.repairTarget.sessionId).substring(0, 8) : "") color: Color.popups.text font.family: stage.panel.uiFont font.pixelSize: Style.space(13) font.bold: true } Text { width: parent.width text: { if (!stage.panel.repairTarget) return "" var p = (stage.panel.repairTarget.providers || []).join(", ") return "This session took " + (p !== "" ? p + "'s" : "another provider's") + " output while the mode was switched under it, and Anthropic will not " + "resume it. Rolling it back to its last good message drops " + stage.panel.repairTarget.dropLines + " lines." } color: Color.muted wrapMode: Text.WordWrap lineHeight: 1.2 font.family: stage.panel.uiFont font.pixelSize: Style.space(10) } Text { width: parent.width text: "The original is backed up, the dropped turns are saved as Markdown, " + "and handed back to the session so it still knows what it did." color: Color.muted opacity: 0.85 wrapMode: Text.WordWrap lineHeight: 1.2 font.family: stage.panel.uiFont font.pixelSize: Style.space(10) } Flow { width: parent.width spacing: Style.space(7) PillButton { fontFamily: stage.panel.uiFont; label: "Repair it"; primary: true; onTriggered: stage.panel.doRepair() } PillButton { fontFamily: stage.panel.uiFont; label: "Cancel"; onTriggered: stage.panel.resetFlow() } } }