mirror of
https://github.com/pewdiepie-archdaemon/odysseus.git
synced 2026-06-17 02:05:22 -04:00
fix(cookbook): open() no longer crashes when a task has a diagnosis (#4417)
_showDiagnosis referenced an undefined `body` (left over from the refactor that moved the diagnosis text into the toolbar), throwing a ReferenceError whenever a failed task rendered fix buttons. Because open() wraps its render in try/finally with no catch, the throw escaped before the modal was un-hidden, so the whole Cookbook silently failed to open. - cookbook-diagnosis.js: append the fixes row to `diag` (the in-scope container) instead of the removed `body` element. - cookbook.js: guard the render passes in open() so one broken task card can't leave the entire panel stuck hidden. Fixes #4406
This commit is contained in:
committed by
GitHub
parent
dd20c2bc75
commit
497f455da6
@@ -757,7 +757,7 @@ export function _showDiagnosis(panel, diagnosis, sourceText) {
|
|||||||
});
|
});
|
||||||
row.appendChild(btn);
|
row.appendChild(btn);
|
||||||
}
|
}
|
||||||
body.appendChild(row);
|
diag.appendChild(row);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -2462,10 +2462,13 @@ export async function open(opts) {
|
|||||||
// returned before hydration — and since close/reopen doesn't reset the page,
|
// returned before hydration — and since close/reopen doesn't reset the page,
|
||||||
// only a full reload recovered it. Re-rendering is cheap and the in-progress
|
// only a full reload recovered it. Re-rendering is cheap and the in-progress
|
||||||
// Running tab is rendered separately just below.
|
// Running tab is rendered separately just below.
|
||||||
_renderRecipes();
|
// Guard the render passes: a single broken task card must not throw out of
|
||||||
|
// open() and leave the modal stuck hidden (it has no catch, so the panel
|
||||||
|
// would silently never appear). Show the window regardless; log and move on.
|
||||||
|
try { _renderRecipes(); } catch (e) { console.error('[cookbook] renderRecipes failed', e); }
|
||||||
_rendered = true;
|
_rendered = true;
|
||||||
_clearCookbookNotif();
|
_clearCookbookNotif();
|
||||||
_renderRunningTab();
|
try { _renderRunningTab(); } catch (e) { console.error('[cookbook] renderRunningTab failed', e); }
|
||||||
// Self-heal: revive any download tasks whose tmux session is still alive
|
// Self-heal: revive any download tasks whose tmux session is still alive
|
||||||
// but were persisted as done/error (covers the "restarted server while a
|
// but were persisted as done/error (covers the "restarted server while a
|
||||||
// big multi-shard download was in flight" case — the task survived in
|
// big multi-shard download was in flight" case — the task survived in
|
||||||
|
|||||||
Reference in New Issue
Block a user