v3.28.0 review: the batch failure classification
- A non-ValueError exception from the install run (a card removed mid-chain, a transport error) was recorded as a 'skipped' attempt with the error text - but the chain had started and died, which is a failure. Only a ValueError (a request/eligibility error: the preset's ISD keyset, the plan) is a skip now; anything else is a 'failed' record carrying its error. The PWA's failed row falls back to that error when there is no failing step / status word to show. - The panel's Clear button is disabled while a batch is active (the server refuses the clear with 409 anyway) - no pointless error alert. - api.md and the repo AGENTS document the two outcomes. Tests: a transport error mid-chain is a failure (and the card stays seen), the plan's input validation (the block size, a missing cap_hex), the failed row without a step, the shared ram_format field, and the Clear state. 915 frontend + 921 Python; sw cache simple-v438 (unchanged).
This commit is contained in:
+4
-1
@@ -10213,6 +10213,9 @@ function ramBatchRender() {
|
||||
stopBtn.textContent = phase === 'stopping' ? t('Stopping...') : t('Stop');
|
||||
stopBtn.disabled = phase === 'stopping';
|
||||
}
|
||||
// the server refuses a clear while the run is active
|
||||
const clearBtn = document.getElementById('ram-batch-clear');
|
||||
if (clearBtn) clearBtn.disabled = active;
|
||||
const stateEl = document.getElementById('ram-batch-state');
|
||||
if (stateEl) {
|
||||
if (!active) {
|
||||
@@ -10261,7 +10264,7 @@ function ramBatchAttemptsHtml(attempts) {
|
||||
const tone = a.result === 'installed' ? 'text-emerald-600 dark:text-emerald-400'
|
||||
: (a.result === 'failed' ? 'text-red-600 dark:text-red-400' : 'text-amber-600 dark:text-amber-400');
|
||||
const detail = a.result === 'failed'
|
||||
? [a.failed_step, a.por_sw || a.sw].filter(Boolean).join(' \u2014 ')
|
||||
? [a.failed_step, a.por_sw || a.sw || a.error].filter(Boolean).join(' \u2014 ')
|
||||
: (a.reason || '');
|
||||
html += '<tr class="border-b border-gray-100 dark:border-slate-800">'
|
||||
+ '<td class="py-0.5 pr-2 text-gray-400 dark:text-slate-500 whitespace-nowrap">' + esc(when) + '</td>'
|
||||
|
||||
Reference in New Issue
Block a user