Accumulate OpenCode settings restarts behind Apply & Restart

Defer OpenCode reloads after settings mutations, track pending changes,
and expose a top-right Apply & Restart OpenCode action with a counter so
sessions stay available until the user explicitly applies.

Co-authored-by: Serhii Dziupin <makeittech@users.noreply.github.com>
This commit is contained in:
Cursor Agent
2026-08-03 06:56:38 +00:00
co-authored by Serhii Dziupin
parent 775da6e9f4
commit 57819dd164
31 changed files with 869 additions and 167 deletions
@@ -0,0 +1,27 @@
import { describe, expect, test } from 'bun:test';
import {
buildDeferredRestartResponse,
buildExternalManualRestartResponse,
} from './config-mutation-response.js';
describe('config mutation response helpers', () => {
test('buildDeferredRestartResponse marks restart as deferred', () => {
expect(buildDeferredRestartResponse('Saved. Restart OpenCode to apply.')).toEqual({
success: true,
requiresReload: false,
requiresRestart: true,
restartDeferred: true,
message: 'Saved. Restart OpenCode to apply.',
});
});
test('buildExternalManualRestartResponse asks for external restart', () => {
expect(buildExternalManualRestartResponse('Restart your server.')).toEqual({
success: true,
requiresReload: false,
requiresManualRestart: true,
message: 'Restart your server.',
});
});
});