feat: v0.3.17 修复多项问题(sandbox/全局配置层/继承选项/配置刷新/附件提示/content_filter 错误处理)
- fix: sandbox: true → false(ESM preload 不兼容 sandbox 导致 window.metona 不可用,选择文件夹按钮无反应) - feat: 全局配置层(GlobalConfigService)— LLM/Agent 等配置跨工作空间共享,切换工作空间后不再丢失 - 读取时工作空间 DB 空值或默认值回退到全局 JSON - 写入时双写(DB + 全局 JSON) - 首次启动迁移旧配置到全局层 - fix: 工作空间继承选项显示条件放宽 + push 前校验避免覆盖目标已有文件(SOUL.md/agent.db) - fix: config:changed IPC 广播 + 前端监听,修改 Agent 配置后详情栏 maxIterations 实时刷新 - feat: 上传图片/文件时在 System Prompt 注入附件提示,避免 AI 在工作空间查找用户上传的文件 - feat: content_filter 错误识别(ContentFilterError)+ 友好提示,替代原始 JSON 错误体透传 - fix: JSDoc 注释中 llm.* / agent.* / onboarding.completed 中的 */ 被解析为注释结束符
This commit is contained in:
@@ -54,12 +54,12 @@ export class WindowManager {
|
||||
title: options.title ?? 'MetonaAI Desktop',
|
||||
webPreferences: {
|
||||
preload: join(__dirname, '../preload/preload.mjs'),
|
||||
// #37 修复: 启用沙箱,强化渲染进程隔离
|
||||
// preload.ts 仅使用 contextBridge/ipcRenderer(sandbox 下可用)和
|
||||
// @electron-toolkit/preload(兼容 sandbox),不依赖 fs/child_process 等 Node API,
|
||||
// 因此可安全启用 sandbox: true。启用后渲染进程无法直接访问 Node API,
|
||||
// 缩小恶意网页通过 preload 漏洞访问 fs/child_process 的攻击面。
|
||||
sandbox: true,
|
||||
// sandbox: false — preload 使用 ESM 格式(.mjs + import 语法),
|
||||
// Electron sandbox 不支持 ESM preload(官方 ESM 支持矩阵: Sandboxed = Unsupported)。
|
||||
// 若启用 sandbox: true,preload.mjs 的 import 语句无法解析,contextBridge 不执行,
|
||||
// window.metona 为 undefined,所有 IPC 调用静默失败。
|
||||
// 要启用 sandbox,需先将 preload 改为 CJS 格式 + require 语法(工程改动较大)。
|
||||
sandbox: false,
|
||||
contextIsolation: true,
|
||||
nodeIntegration: false,
|
||||
},
|
||||
|
||||
Reference in New Issue
Block a user