Skip to content

【已审核】fix(agent): 附加文件/文件夹类型选择改用 Proma 自身弹窗 - #1467

Open
climashscape wants to merge 1 commit into
proma-ai:mainfrom
climashscape:fix/attach-dialog-native-ui
Open

【已审核】fix(agent): 附加文件/文件夹类型选择改用 Proma 自身弹窗#1467
climashscape wants to merge 1 commit into
proma-ai:mainfrom
climashscape:fix/attach-dialog-native-ui

Conversation

@climashscape

Copy link
Copy Markdown
Contributor

概述

Composer 输入工具栏的「附加文件或文件夹」按钮在 Windows/Linux 上会先弹出 Electron 系统原生 MessageBox(dialog.showMessageBox)选择"文件/文件夹"类型,再打开系统文件选择器——系统弹窗与 Proma 自身 UI 风格割裂(Windows 原生对话框外观)。本 PR 将类型选择移到渲染层,用 Proma 自己的 Dialog(新增 AttachmentContentDialog)完成,主进程按类型直接打开对应系统选择器,体验统一。

改动

  • apps/electron/src/main/lib/attachment-service.tsopenFileOrFolderDialog(type: 'file' | 'folder') 改为必传类型,删除系统 MessageBox 分支,按类型直接打开多选选择器(file:openFile+multiSelections+FILE_FILTERS;folder:openDirectory+multiSelections);新增运行时 type 守卫,防止非法值被静默当作 folder
  • apps/electron/src/main/ipc.ts:handler 透传 type
  • apps/electron/src/preload/index.ts:API 签名加 type 参数并透传
  • apps/electron/src/renderer/components/agent/AgentView.tsxhandleAttachContent 改为打开 Proma 类型弹窗;新增 handleAttachContentType(含双击重入锁,防止退出动画期间连点重复打开选择器);附件/目录处理逻辑逐字复用原实现
  • apps/electron/src/renderer/components/agent/AttachmentContentDialog.tsx(新增):Proma 风格类型选择弹窗——标题「附加文件或文件夹」、DialogDescription「请选择要附加的内容类型」、三个按钮(取消 ghost / 文件 default+autoFocus / 文件夹 outline),文件为默认操作(与原系统 MessageBox defaultId=0 语义一致)
  • packages/shared/src/types/agent.ts:通道注释同步为"类型由渲染层 Dialog 决定"

测试

  • bun run typecheck:全部 6 包 exit 0
  • BDD 自审(4 个独立角度子会话并行):正确性/安全/边界、UX/a11y/主题、平台布局/回归、代码质量/一致性,均通过;审查发现项已修复(双击重入锁、焦点与视觉主按钮统一、组件惯例 named export、注释同步)
  • Playwright 模拟验证:Proma 亮/暗主题弹窗与系统 MessageBox 视觉对比,风格统一协调
  • 未做 Windows 实时 UI 验证(需人工 bun run dev 确认弹窗外观与交互链路)

紧急度

常规

备注

  • macOS 行为变化(有意取舍):原先 macOS 一步混合选择文件+文件夹(openFile+openDirectory),现统一为先选类型再打开对应选择器;附带收益是 macOS 文件模式现在也带 FILE_FILTERS 过滤
  • 文件多选、文件夹多选、大文件引用、跳过提示等原有行为全部保留
  • 无关联 upstream issue

@climashscape
climashscape marked this pull request as ready for review August 6, 2026 12:25
@climashscape climashscape changed the title 【等待审核】fix(agent): 附加文件/文件夹类型选择改用 Proma 自身弹窗 【已审核】fix(agent): 附加文件/文件夹类型选择改用 Proma 自身弹窗 Aug 6, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant