fix(diagnostic): Abbrechen macht echten Cancel statt totem doctor --fix
Der cancel_request-Handler rief openclaw doctor --fix auf dem Container
aria-core auf, den es im aktuellen Stack nicht mehr gibt → der laufende
claude-Subprozess wurde nie gekillt, ARIA lief weiter. Jetzt sendet er
RVS cancel_request{hard:true} → Bridge → Proxy /cancel-all killt den Run.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -2499,14 +2499,18 @@ wss.on("connection", (ws) => {
|
|||||||
});
|
});
|
||||||
log("info", "server", `Datei gesendet: ${msg.name} (${msg.type})`);
|
log("info", "server", `Datei gesendet: ${msg.name} (${msg.type})`);
|
||||||
} else if (msg.action === "cancel_request") {
|
} else if (msg.action === "cancel_request") {
|
||||||
// Laufende Anfrage abbrechen — doctor --fix beendet stuck runs
|
// Laufende Anfrage abbrechen — ECHTER Cancel: RVS cancel_request (hard)
|
||||||
log("warn", "server", "Anfrage abgebrochen — fuehre doctor --fix aus");
|
// an die Bridge, die den Proxy-/cancel-all Side-Channel anruft und den
|
||||||
|
// laufenden claude-Subprozess killt. Das alte `openclaw doctor --fix`
|
||||||
|
// zielte auf den Container aria-core, den es nicht mehr gibt — es
|
||||||
|
// beendete den Run nie (ARIA lief munter weiter).
|
||||||
|
log("warn", "server", "Anfrage abgebrochen — cancel_request (hard) an Bridge/Proxy");
|
||||||
pendingMessageTime = 0;
|
pendingMessageTime = 0;
|
||||||
watchdogWarned = false;
|
watchdogWarned = false;
|
||||||
watchdogFixAttempted = false;
|
watchdogFixAttempted = false;
|
||||||
if (traceActive) traceEnd(false, "Vom Benutzer abgebrochen");
|
if (traceActive) traceEnd(false, "Vom Benutzer abgebrochen");
|
||||||
broadcast({ type: "agent_activity", activity: "idle" });
|
broadcast({ type: "agent_activity", activity: "idle" });
|
||||||
dockerExec("aria-core", "openclaw doctor --fix 2>/dev/null || true").catch(() => {});
|
sendToRVS_raw({ type: "cancel_request", payload: { hard: true, source: "diagnostic-cancel" }, timestamp: Date.now() });
|
||||||
} else if (msg.action === "aria_panic_stop") {
|
} else if (msg.action === "aria_panic_stop") {
|
||||||
// NOT-AUS aus ARIA-Live-View: lokales /api/cancel UND Hard-Kill via
|
// NOT-AUS aus ARIA-Live-View: lokales /api/cancel UND Hard-Kill via
|
||||||
// Bridge (die wiederum den Proxy-Side-Channel /cancel-all anruft).
|
// Bridge (die wiederum den Proxy-Side-Channel /cancel-all anruft).
|
||||||
|
|||||||
Reference in New Issue
Block a user