fix: DB backup on schema change, MCP child cleanup, codex models, usage providers OOM

- Backup DB only on real SCHEMA_VERSION change, not every app version bump
- Kill idle MCP stdio bridge children to prevent orphan process leaks
- Add getDistinctProviders to avoid loading every row JSON blob (OOM fix)
- Update codex model list (gpt-5.6 sol/terra/luna, drop 5.3 codex variants)
- Reorder Claude default models (fable first)

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
decolua
2026-07-10 13:08:58 +07:00
co-authored by Cursor
parent 0270f6ea70
commit b25e10160d
13 changed files with 371 additions and 45 deletions
+15 -1
View File
@@ -153,6 +153,20 @@ function unregisterSession(name, sid) {
const entry = getStore().get(name);
if (!entry) return;
entry.sessions.delete(sid);
// No sessions left → kill child to avoid idle orphan process leak.
if (entry.sessions.size === 0) {
try { entry.proc.kill(); } catch { /* ignore */ }
getStore().delete(name);
}
}
// Kill all spawned MCP children — called on app shutdown to prevent orphans.
function killAllBridges() {
const store = getStore();
for (const [name, entry] of store) {
try { entry.proc.kill(); } catch { /* ignore */ }
store.delete(name);
}
}
function sendToChild(name, jsonRpc) {
@@ -166,4 +180,4 @@ function isRunning(name) {
return !!(entry?.proc && !entry.proc.killed && entry.proc.exitCode === null);
}
module.exports = { getOrSpawn, registerSession, unregisterSession, sendToChild, isRunning, findPlugin };
module.exports = { getOrSpawn, registerSession, unregisterSession, sendToChild, isRunning, findPlugin, killAllBridges };