fix: rollback in-memory key on store failure, add corrupted-data and rollback tests

This commit is contained in:
hugo committed 2026-03-01 13:20:16 +01:00
1 parent 226c9193d6
commit 4bd7e6cd99
4 files changed
+70 -11

No files matched your search

+8 -2
View File
@@ -127,10 +127,16 @@ export function registerChatHandlers(): void {
ipcMain.handle('chat:setApiKey', async (_, apiKey: string) => {
try {
const manager = await getOpenCodeManager();
const previousKey = manager.getApiKey();
manager.setApiKey(apiKey);
// Persist to encrypted storage
await getSecureKeyStore().store('opencode_api_key', apiKey);
// Persist to encrypted storage — roll back in-memory key on failure
try {
await getSecureKeyStore().store('opencode_api_key', apiKey);
} catch (storeError) {
manager.setApiKey(previousKey);
throw storeError;
}
return { success: true };
} catch (error) {