fix: Codex 自动压缩不触发 —— 接管时链接模型目录(绝对路径)进 config.toml (hot 1.5.83)

This commit is contained in:
mac
2026-08-16 12:45:32 +08:00
parent e9a261482c
commit 1b687c01e9
50 changed files with 10885 additions and 1161 deletions
+28 -2
View File
@@ -12,15 +12,26 @@ contextBridge.exposeInMainWorld("api", {
// —— 技能商店(cocoloop 镜像)——
skillCatalog: () => ipcRenderer.invoke("skill-catalog"),
skillInstall: (skill) => ipcRenderer.invoke("skill-install", { skill }),
skillInstalled: () => ipcRenderer.invoke("skill-installed"),
skillInstalled: (opts) => ipcRenderer.invoke("skill-installed", opts || {}),
skillUninstall: (dir) => ipcRenderer.invoke("skill-uninstall", { dir }),
skillMigrate: () => ipcRenderer.invoke("skill-migrate"),
// —— 插件市场(tokendun 官方插件,自建 gitea)——
pluginCatalog: () => ipcRenderer.invoke("plugin-catalog"),
pluginInstall: (plugin) => ipcRenderer.invoke("plugin-install", { plugin }),
pluginInstalled: () => ipcRenderer.invoke("plugin-installed"),
pluginInstalled: (opts) => ipcRenderer.invoke("plugin-installed", opts || {}),
pluginUninstall: (rel) => ipcRenderer.invoke("plugin-uninstall", { rel }),
pluginMigrate: () => ipcRenderer.invoke("plugin-migrate"),
// —— Codex 安装器 ——
codexInstallerInfo: () => ipcRenderer.invoke("codex-installer-info"),
codexDownloadInstaller: (platform) => ipcRenderer.invoke("codex-download-installer", { platform }),
codexCancelInstallerDownload: (platform) => ipcRenderer.invoke("codex-cancel-installer-download", { platform }),
codexInstallWindows: () => ipcRenderer.invoke("codex-install-windows"),
codexInstallMac: () => ipcRenderer.invoke("codex-install-mac"),
onCodexInstallerProgress: (cb) => {
const handler = (_e, p) => cb(p);
ipcRenderer.on("codex-installer-progress", handler);
return () => ipcRenderer.removeListener("codex-installer-progress", handler);
},
// —— 热更新 ——
hotCheck: () => ipcRenderer.invoke("hot-check"),
hotApply: () => ipcRenderer.invoke("hot-apply"),
@@ -39,7 +50,11 @@ contextBridge.exposeInMainWorld("api", {
quitApp: () => ipcRenderer.invoke("app-quit"),
sessionsList: (opts) =>
ipcRenderer.invoke("sessions-list", typeof opts === "object" && opts !== null ? opts : { includeSubagent: !!opts }),
sessionsDataDirInfo: () => ipcRenderer.invoke("sessions-data-dir-info"),
sessionsDataDirSelect: () => ipcRenderer.invoke("sessions-data-dir-select"),
sessionsDataDirReset: () => ipcRenderer.invoke("sessions-data-dir-reset"),
sessionRead: (path) => ipcRenderer.invoke("session-read", { path }),
sessionDeletePermanently: (path) => ipcRenderer.invoke("session-delete-permanently", { path }),
sessionExport: (item) => ipcRenderer.invoke("session-export", { item }),
sessionsBackup: () => ipcRenderer.invoke("sessions-backup"),
sessionsImport: () => ipcRenderer.invoke("sessions-import"),
@@ -64,12 +79,14 @@ contextBridge.exposeInMainWorld("api", {
return () => ipcRenderer.removeListener("provider-sync-progress", handler);
},
routerStatus: () => ipcRenderer.invoke("router-status"),
routerDefaultConfig: () => ipcRenderer.invoke("router-default-config"),
routerUpsertGroup: (group) => ipcRenderer.invoke("router-upsert-group", { group }),
routerDeleteGroup: (id) => ipcRenderer.invoke("router-delete-group", { id }),
routerSetActive: (id) => ipcRenderer.invoke("router-set-active", { id }),
routerSetPort: (port) => ipcRenderer.invoke("router-set-port", { port }),
routerStart: () => ipcRenderer.invoke("router-start"),
routerStop: () => ipcRenderer.invoke("router-stop"),
routerDisableCodex: () => ipcRenderer.invoke("router-disable-codex"),
routerApplyCodex: () => ipcRenderer.invoke("router-apply-codex"),
routerApplyDirect: (id) => ipcRenderer.invoke("router-apply-direct", { id }),
routerApplyClaude: () => ipcRenderer.invoke("router-apply-claude"),
@@ -92,6 +109,14 @@ contextBridge.exposeInMainWorld("api", {
canvasRun: (kind, params) => ipcRenderer.invoke("canvas-run", { kind, params }),
canvasGroups: () => ipcRenderer.invoke("canvas-groups"),
canvasModels: (groupId) => ipcRenderer.invoke("canvas-models", { groupId }),
canvasWorkspaces: () => ipcRenderer.invoke("canvas-workspaces"),
canvasWorkspaceCreate: (name) => ipcRenderer.invoke("canvas-workspace-create", { name }),
canvasWorkspaceLoad: (id) => ipcRenderer.invoke("canvas-workspace-load", { id }),
canvasWorkspaceRename: (id, name) => ipcRenderer.invoke("canvas-workspace-rename", { id, name }),
canvasWorkspaceSave: (workspace) => ipcRenderer.invoke("canvas-workspace-save", { workspace }),
canvasWorkspaceSaveNow: (workspace) => ipcRenderer.send("canvas-workspace-save-now", workspace),
canvasMediaCache: (payload) => ipcRenderer.invoke("canvas-media-cache", payload || {}),
canvasMediaRead: (payload) => ipcRenderer.invoke("canvas-media-read", payload || {}),
// —— 多 Agent 员工团队生成 ——
teamGenerate: (params) => ipcRenderer.invoke("team-generate", params || {}),
teamPreview: (params) => ipcRenderer.invoke("team-preview", params || {}),
@@ -109,6 +134,7 @@ contextBridge.exposeInMainWorld("api", {
voiceStatus: () => ipcRenderer.invoke("voice-status"),
voiceConnect: (opts) => ipcRenderer.invoke("voice-connect", opts || {}),
voiceDisconnect: () => ipcRenderer.invoke("voice-disconnect"),
voiceRestartCodex: () => ipcRenderer.invoke("voice-restart-codex"),
voiceSttInfo: () => ipcRenderer.invoke("voice-stt-info"),
voiceProbeStt: () => ipcRenderer.invoke("voice-probe-stt"),
onVoiceStatus: (cb) => {