Files
myagents/desktop/electron/preload.js
T
Zhengshou Lai 2ac1c9750e refactor(desktop): code review fixes
- Shortcut: Cmd+Shift+C → Cmd+Shift+M (avoid Chrome DevTools conflict)
- Preload: onData/onExit now return cleanup functions (fix memory leak)
- PTY: resolve shell path at construction time, throw on missing claude CLI
- Terminal: remove allowProposedApi, dedupe resize listeners, add cleanup
- Main: debounce window move config writes (500ms), restart PTY on activate
- CSS: remove unused orbGlow keyframes
- Package: fix appId to com.apaam.myclaude, skip code signing, remove unused deps
2026-05-27 11:23:14 +08:00

29 lines
1.0 KiB
JavaScript

const { contextBridge, ipcRenderer } = require('electron')
const api = {
pty: {
write: (data) => ipcRenderer.send('pty:write', data),
resize: (cols, rows) => ipcRenderer.send('pty:resize', cols, rows),
onData: (callback) => {
const handler = (_event, data) => callback(data)
ipcRenderer.on('pty:data', handler)
return () => ipcRenderer.removeListener('pty:data', handler)
},
onExit: (callback) => {
const handler = (_event, code) => callback(code)
ipcRenderer.on('pty:exit', handler)
return () => ipcRenderer.removeListener('pty:exit', handler)
},
},
window: {
expand: () => ipcRenderer.send('window:expand'),
collapse: () => ipcRenderer.send('window:collapse'),
setPosition: (x, y) => ipcRenderer.send('window:set-position', x, y),
setIgnoreMouseEvents: (ignore) => ipcRenderer.send('window:set-ignore-mouse', ignore),
close: () => ipcRenderer.send('window:close'),
minimize: () => ipcRenderer.send('window:minimize'),
},
}
contextBridge.exposeInMainWorld('petAPI', api)