Defer OpenCode restarts for config mutations
Co-authored-by: Serhii Dziupin <makeittech@users.noreply.github.com>
This commit is contained in:
co-authored by
Serhii Dziupin
parent
824d1fbbf4
commit
775da6e9f4
@@ -0,0 +1,44 @@
|
||||
/**
|
||||
* Shared response shapes for OpenCode config mutations.
|
||||
*
|
||||
* Settings writes persist to disk immediately but defer the OpenCode restart
|
||||
* so the UI can accumulate pending changes and apply them once via
|
||||
* POST /api/config/reload ("Apply & Restart OpenCode").
|
||||
*/
|
||||
|
||||
export function buildDeferredRestartResponse(message) {
|
||||
return {
|
||||
success: true,
|
||||
requiresReload: false,
|
||||
requiresRestart: true,
|
||||
restartDeferred: true,
|
||||
message,
|
||||
};
|
||||
}
|
||||
|
||||
export function buildExternalManualRestartResponse(message) {
|
||||
return {
|
||||
success: true,
|
||||
requiresReload: false,
|
||||
requiresManualRestart: true,
|
||||
message,
|
||||
};
|
||||
}
|
||||
|
||||
export function buildConfigMutationResponse(refreshResult, { liveMessage, manualRestartMessage, deferredMessage }) {
|
||||
if (refreshResult && refreshResult.external) {
|
||||
return buildExternalManualRestartResponse(manualRestartMessage);
|
||||
}
|
||||
|
||||
// When callers skip the live refresh (deferred apply flow), report a pending restart.
|
||||
if (!refreshResult || refreshResult.deferred === true) {
|
||||
return buildDeferredRestartResponse(deferredMessage || liveMessage);
|
||||
}
|
||||
|
||||
return {
|
||||
success: true,
|
||||
requiresReload: true,
|
||||
message: liveMessage,
|
||||
reloadDelayMs: refreshResult.reloadDelayMs,
|
||||
};
|
||||
}
|
||||
Reference in New Issue
Block a user