Let reviews be stopped, and fail stuck reviewers automatically

This commit is contained in:
Ian Gulliver
2026-10-17 07:24:08 -07:00
parent 00cd1ed958
commit 9b3f775dac
11 changed files with 397 additions and 220 deletions
+15 -1
View File
@@ -40,7 +40,21 @@ function stateText(r) {
}
}
export function reviewCard(r, taskId) {
return h("article", { class: `review ${r.state}` }, h("header", {}, h("span", { class: "review-snapshot" }, `snapshot #${r.snapshot_n}`), h("span", { class: `review-state ${r.state}` }, stateText(r)), h("time", { dateTime: r.created_at, title: r.created_at }, ago(r.created_at))), r.state === "failed" ? h("p", { class: "error-text" }, r.error) : null, r.state === "done" ? reviewResult(r, taskId) : null);
return h("article", { class: `review ${r.state}` }, h("header", {}, h("span", { class: "review-snapshot" }, `snapshot #${r.snapshot_n}`), h("span", { class: `review-state ${r.state}` }, stateText(r)), h("time", { dateTime: r.created_at, title: r.created_at }, ago(r.created_at)), r.state === "running" ? stopButton(r) : null), r.state === "failed" ? h("p", { class: "error-text" }, r.error) : null, r.state === "done" ? reviewResult(r, taskId) : null);
}
function stopButton(r) {
const b = h("button", { type: "button", class: "danger review-stop", title: "End the reviewer and record this review as failed" }, "Stop");
b.onclick = async () => {
b.disabled = true;
try {
await post("/api/reviews/{reviewId}/stop", { path: { reviewId: r.id } });
}
catch (err) {
b.disabled = false;
void showAlert(errorText(err));
}
};
return b;
}
function reviewResult(r, taskId) {
const res = (r.result ?? {});