Fix container remove timeouts and make force-remove reliable.
Release rolling / release (push) Successful in 9m13s

Lifecycle RPCs now use a 120s operation timeout, remove cleans up
stats/terminal/log streams then SIGKILLs before force-remove, and the
UI awaits the request instead of a fragile 30s wait race.
This commit is contained in:
Raven Scott
2026-07-15 14:12:13 -04:00
parent 1cb85e2cee
commit bbf0607aaf
9 changed files with 235 additions and 41 deletions
+17
View File
@@ -106,3 +106,20 @@ test('presentError can suppress toast when job drawer owns UI', (t) => {
t.is(opts.toast, false)
t.is(opts.tray, false)
})
test('RPC timeout is operation timeout not connection problem', (t) => {
const err = new Error('timeout of 30000ms exceeded')
err.code = 'TIMEOUT_EXCEEDED'
const info = explainError(err, 'removeContainer')
t.is(info.code, 'TIMEOUT_EXCEEDED')
t.ok(/timed out|timeout/i.test(info.title + info.message))
t.absent(/connection problem/i.test(info.title))
t.ok(/refresh|retry|docker/i.test(info.recovery))
})
test('timeout message without code is not connection problem', (t) => {
const err = new Error('timeout of 120000ms exceeded')
const info = explainError(err, 'removeContainer')
t.ok(/timed out|timeout/i.test(info.title))
t.absent(/connection problem/i.test(info.title))
})