mirror of
https://gitcode.com/JianFeeeee/HomeAgent.git
synced 2026-09-21 09:28:14 +00:00
性能(卡死修复, 已部署本机验证 GPU 91%->14%):
- reasoning_content 懒加载: 折叠正文不再 marked.parse, 点击展开时才解析
- 星图动画仅"星图"子面板激活才跑, 12fps限制, 关抗锯齿+pixelRatio=1, 粒子3000->1200
- renderAll/refreshAll 非chat视图跳过聊天整块重建
- switchView(chat) 多段延迟滚动到底部(修复进入停在顶部)
设备桥(配置与连接解耦, 为远程homed被控做准备):
- 设备桥改由 gui-prefs.json 的 deviceBridge{enabled,gateway,token} 驱动, 不再依赖 type=device 连接
- 新增 IPC device-bridge:get/set (状态查询+动态启停), preload 暴露 deviceBridge API
- whenReady 按 prefs 启动设备桥
待后续: 设备页UI入口(renderDevices 本机卡片仍被 conn.type!==device 条件挡住, 需改为始终显示+调用 device-bridge:set)
49 lines
1.6 KiB
JavaScript
49 lines
1.6 KiB
JavaScript
const { contextBridge, ipcRenderer } = require("electron");
|
|
|
|
contextBridge.exposeInMainWorld("homeagent", {
|
|
win: {
|
|
minimize: () => ipcRenderer.invoke("window:minimize"),
|
|
toggleMaximize: () => ipcRenderer.invoke("window:toggleMaximize"),
|
|
close: () => ipcRenderer.invoke("window:close"),
|
|
},
|
|
connections: {
|
|
list: () => ipcRenderer.invoke("connections:list"),
|
|
add: (conn) => ipcRenderer.invoke("connections:add", conn),
|
|
update: (id, updates) =>
|
|
ipcRenderer.invoke("connections:update", { id, updates }),
|
|
delete: (id) => ipcRenderer.invoke("connections:delete", id),
|
|
setCurrent: (id) => ipcRenderer.invoke("connections:setCurrent", id),
|
|
},
|
|
cli: {
|
|
request: (socketPath, apiKey, line) =>
|
|
ipcRenderer.invoke("cli:request", { socketPath, apiKey, line }),
|
|
},
|
|
webui: {
|
|
setAuth: (url, cookie, headers, username, password) =>
|
|
ipcRenderer.invoke("webui:setAuth", {
|
|
url,
|
|
cookie,
|
|
headers,
|
|
username,
|
|
password,
|
|
}),
|
|
openLogin: (url, username, password) =>
|
|
ipcRenderer.invoke("webui:openLogin", { url, username, password }),
|
|
onLoginResult: (cb) =>
|
|
ipcRenderer.on("webui:login-result", (_e, d) => cb(d)),
|
|
},
|
|
cacheBg: (src) => ipcRenderer.invoke("bg:cache", { src }),
|
|
log: (m) => ipcRenderer.invoke("log:r", m),
|
|
prefs: {
|
|
get: () => ipcRenderer.invoke("prefs:get"),
|
|
set: (p) => ipcRenderer.invoke("prefs:set", p),
|
|
},
|
|
device: {
|
|
identity: () => ipcRenderer.invoke("device:identity"),
|
|
},
|
|
deviceBridge: {
|
|
get: () => ipcRenderer.invoke("device-bridge:get"),
|
|
set: (cfg) => ipcRenderer.invoke("device-bridge:set", cfg),
|
|
},
|
|
});
|