feat: 路由不再开机自动接管 + 保存分组即写直连配置 + 官方登录完整备份 (v1.5.16)
- 启动不再自动 router.start():只想用其它功能的用户不再被接管 - 新增 applyDirectToCodex():保存 responses 中转分组即把直连配置写进 config.toml+auth.json(非本地路由),重启 Codex 即用;本地路由降级为 '启用本地路由(高级)'显式选项 - chat 协议转换分组(DeepSeek/GLM/Kimi)保存时只提示需启用路由,不自动起 - 新增 snapshotOfficialLogin():首次接管前完整快照官方 auth.json(含OAuth tokens)+config.toml(router.json加密存+落盘副本);restoreDirect 优先用它 100%还原官方登录态,并清理 td-direct 残段 - setActive 按 isRunning 分流:路由在跑走本地路由秒切,否则写直连需重启 - 隔离测试:登录态21/21 + Mac custom回归9/9 全绿 - 版本 1.5.15 → 1.5.16 Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
+11
-7
@@ -213,15 +213,13 @@ app.whenReady().then(async () => {
|
||||
if (mainWindow && !mainWindow.isDestroyed()) mainWindow.webContents.send("memory-changed");
|
||||
},
|
||||
});
|
||||
// 有分组就自动启动本地路由
|
||||
// 启动时不再自动接管/启动本地路由:用户可能只想用其它功能。
|
||||
// 保存分组已直接写 Codex 直连配置;只有用户显式「启用本地路由」才 start() 路由进程。
|
||||
// 仅刷新一次托盘菜单以反映当前分组/状态(不 start)。
|
||||
try {
|
||||
const st = router.status();
|
||||
if (st.groups.length) {
|
||||
await router.start();
|
||||
rebuildTrayMenu();
|
||||
}
|
||||
rebuildTrayMenu();
|
||||
} catch (e) {
|
||||
log(`本地路由启动失败:${e.message || e}`);
|
||||
log(`刷新托盘失败:${e.message || e}`);
|
||||
}
|
||||
try {
|
||||
const r = migrateLegacySkills();
|
||||
@@ -1303,6 +1301,12 @@ ipcMain.handle("router-apply-codex", async () => {
|
||||
rebuildTrayMenu();
|
||||
return { ...r, status: router.status() };
|
||||
});
|
||||
// 把指定分组的直连中转配置写进 Codex(不经路由、不起进程)
|
||||
ipcMain.handle("router-apply-direct", async (_e, { id } = {}) => {
|
||||
const r = router.applyDirectToCodex(id);
|
||||
rebuildTrayMenu();
|
||||
return { ...r, status: router.status() };
|
||||
});
|
||||
ipcMain.handle("router-snippet", async () => router.codexSnippet());
|
||||
ipcMain.handle("router-apply-claude", async () => {
|
||||
const r = router.applyToClaudeCode();
|
||||
|
||||
Reference in New Issue
Block a user