getMessages(sessionId: string){returndb.prepare('SELECT * FROM messages WHERE session_id = ? ORDER BY timestamp ASC').all(sessionId);}
未限制返回条数。超长会话(10000+ 消息,含大量图片 base64):
一次性加载到内存
主进程内存占用激增
IPC 传输阻塞
渲染进程 OOM
影响
超长会话无法加载
应用崩溃
建议修复
分页加载:
getMessages(sessionId: string,options:{limit?: number;offset?: number}={}){const{limit=200,offset=0}=options;returndb.prepare('SELECT * FROM messages WHERE session_id = ? ORDER BY timestamp ASC LIMIT ? OFFSET ?').all(sessionId,limit,offset);}
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
问题类型
缺陷 / 高 / 后端服务
文件位置
electron/services/session.service.ts问题描述
getMessages 实现:
未限制返回条数。超长会话(10000+ 消息,含大量图片 base64):
影响
建议修复
建议组合实施。
修复说明
文件:
electron/services/session.service.ts修复:
getMessages添加可选options: { limit?, offset? }参数支持分页。默认limit=0(不限制),保持向后兼容;调用者可传limit限制返回条数避免超长会话 OOM。验证:
tsc --noEmit类型检查通过。