清理废弃模块并完善测试基础设施
This commit is contained in:
+15
-100
@@ -40,9 +40,7 @@ QtDesktopPet 是一个基于 Qt Widgets / C++17 的 Windows 桌面宠物项目
|
||||
- 提醒到点气泡提示、稍后提醒、拖动后延迟提示和隐藏时托盘通知
|
||||
- 提醒音效切换、试听、用户 wav 导入和删除
|
||||
- 天气查询 v1:Open-Meteo 天气源、城市解析、默认城市、公网 IP 定位兜底和模板回复
|
||||
- 本地文件操作 v1:读取文本文件、列出文件夹、复制、备份、重命名
|
||||
- 联网模式:输入框开关触发 AI Provider 原生联网能力,支持 OpenAI 官方 Web Search 和 Gemini Google Search grounding
|
||||
- 应用启动 v1:通过聊天打开已登记应用、开始菜单快捷方式或用户确认选择的 `.exe`
|
||||
- Windows 发布打包脚本和 Inno Setup 安装器脚本
|
||||
- Windows GUI 子系统,Release exe 双击不弹控制台窗口
|
||||
|
||||
@@ -50,9 +48,11 @@ QtDesktopPet 是一个基于 Qt Widgets / C++17 的 Windows 桌面宠物项目
|
||||
|
||||
- 长期性能压测记录
|
||||
- 发布包实机安装/卸载验证
|
||||
- 文件操作 zip 打包、删除、覆盖、移动、脚本/命令执行
|
||||
- 搜索网页全文抓取、长期缓存和浏览器自动打开网页
|
||||
- 应用启动脚本、命令行参数、管理员权限和跨平台应用发现
|
||||
|
||||
当前非目标:
|
||||
|
||||
- 本地文件访问、应用启动、命令执行和工作区 Agent;这些能力已从当前产品方向移除
|
||||
|
||||
## 技术栈
|
||||
|
||||
@@ -292,71 +292,6 @@ QStandardPaths::AppDataLocation/sounds/reminders/
|
||||
- 每月 31 号这类规则会跳过不存在该日期的月份,寻找下一个有效月份
|
||||
- 用户音效删除仅允许删除用户音效目录内的安全 sound id,内置音效和非法路径不会被删除
|
||||
|
||||
## 本地文件操作
|
||||
|
||||
本地文件操作通过聊天意图触发,但不会直接使用聊天文本里的路径。所有文件和文件夹都必须由用户在系统文件选择框中主动选择。
|
||||
|
||||
当前 v1 支持:
|
||||
|
||||
- 读取用户选择的常见文本文件:txt、md、log、json、csv、ini、xml、yaml
|
||||
- 列出用户选择的文件夹,最多显示前 200 项
|
||||
- 复制用户选择的文件到用户选择的目标文件夹
|
||||
- 为用户选择的文件创建同目录备份
|
||||
- 重命名用户选择的文件
|
||||
|
||||
安全规则:
|
||||
|
||||
- 写操作会先展示操作计划并要求确认
|
||||
- 不覆盖已有文件
|
||||
- 不删除文件
|
||||
- 不移动大量文件
|
||||
- 不执行脚本或命令
|
||||
- 不访问 Windows 系统目录
|
||||
- 拒绝符号链接或符号链接目录内的路径
|
||||
|
||||
暂不支持:
|
||||
|
||||
- zip 打包
|
||||
- 删除、覆盖、移动
|
||||
- 修改源码
|
||||
- 执行脚本或命令
|
||||
|
||||
## 本地工作区 Agent v1b 独立窗口
|
||||
|
||||
本地工作区 Agent 是旧文件操作 v1 的后续替代方向。当前已接入 v1a.1/v1b/v1b.5,并完成独立窗口化:工作区路径只保存在本次运行内,不执行任何写操作。
|
||||
|
||||
当前支持:
|
||||
|
||||
- `打开工作区 / 选择工作区`:用户主动选择一个目录后,程序扫描并建立内存索引
|
||||
- `当前工作区 / 扫描工作区`:查看当前工作区和重新扫描
|
||||
- `搜索 README / 搜索 main.cpp`:按文件名搜索,最多显示 30 个结果
|
||||
- `搜索包含 class 的文件 / 含class的文件 / 找一下含 class 的文件`:搜索文本内容,显示路径、行号和片段
|
||||
- `读取 main.cpp / 读取第一个`:读取工作区内文本文件,最多显示前 128KB
|
||||
- `总结这个文件 / 分析这个文件 / 解释 main.cpp / main.cpp 是干嘛的`:使用最近读取或指定工作区文件;AI 可用且空闲时补简短分析
|
||||
- `分析这个项目`:先显示本地结构摘要;AI 可用且空闲时再用独立工作区提示词补简短分析
|
||||
- `打开 README / 打开第一个`:打开工作区内普通文件,打开前二次确认
|
||||
- `打开 docs / 显示 main.cpp 所在位置 / 打开所在文件夹`:打开工作区内文件夹或文件所在目录
|
||||
- 独立 Agent 窗口:左侧展示文件结果、文本命中和上下文,中间展示用户任务、本地工具结果和 AI 分析,右侧展示选中项详情、文本命中详情、最近读取预览以及 v1c 预留的变更计划/Diff 空状态
|
||||
- 窗口入口:桌宠右键菜单、托盘菜单和全局快捷键,默认 `Alt+A`
|
||||
- 设置页 `Agent` 页:可启用/关闭窗口快捷键、修改快捷键、控制工作区命令完成后是否自动显示窗口
|
||||
|
||||
安全规则:
|
||||
|
||||
- 工作区只能由用户通过目录选择框选择
|
||||
- 拒绝 Windows 系统目录、符号链接目录和工作区外路径
|
||||
- 跳过 `.git`、`build`、`node_modules`、`dist`、`release_packages` 等目录
|
||||
- 默认拒绝读取 `.env`、密钥、凭证和包含 `secret/token/password/credential/private/api_key` 等关键词的敏感文件
|
||||
- 拒绝打开 `.exe/.bat/.cmd/.ps1/.vbs/.msi/.scr/.reg/.com/.pif/.lnk`
|
||||
- `读取文件` 这类泛泛请求仍走旧 `src/fileops/`;工作区读取建议使用 `读取 main.cpp` 或 `读取这个项目里的 README`
|
||||
- `打开工作区 / 选择工作区` 表示重新选择目录;查看状态使用 `当前工作区`
|
||||
- `创建 test.txt / 新建文件 / 写入 README / 修改 main.cpp / 修复 main.cpp / 优化 main.cpp` 当前只提示不支持,不弹读取文件选择框
|
||||
- 不执行命令,不创建/修改/移动/删除文件
|
||||
|
||||
完整施工计划见:
|
||||
|
||||
```text
|
||||
docs/agent/DesktopPet_本地工作区Agent_施工计划.md
|
||||
```
|
||||
|
||||
## 联网模式
|
||||
|
||||
@@ -388,38 +323,12 @@ QStandardPaths::AppConfigLocation/web_config.json
|
||||
- 结构化搜索 API 或自建联网后端。
|
||||
- 更细粒度的来源证据摘录和引用 UI。
|
||||
|
||||
## 应用启动
|
||||
## 当前能力边界
|
||||
|
||||
应用启动是独立能力,不归入本地文件操作。可通过聊天输入:
|
||||
为保持桌宠产品聚焦,当前版本已移除聊天驱动的本地文件操作、应用启动和工作区 Agent。相关聊天内容只会进入普通 AI 对话或现有的提醒/天气意图,不会弹出本地路径选择器、启动程序、扫描项目或执行命令。
|
||||
|
||||
```text
|
||||
打开 Codex
|
||||
启动酷狗音乐
|
||||
帮我打开 VSCode
|
||||
```
|
||||
应用自身的“开机自启动”仍保留,由设置页和安装器选项管理。旧版 `launcher_config.json` 与 `app_config.json` 中的 `agent` 字段不会再读取或写入,但程序不会主动删除用户目录中的旧文件。
|
||||
|
||||
配置保存到:
|
||||
|
||||
```text
|
||||
QStandardPaths::AppConfigLocation/launcher_config.json
|
||||
```
|
||||
|
||||
设置页“应用启动”支持:
|
||||
|
||||
- 启用或关闭应用启动
|
||||
- 未知应用允许用户手动选择 `.exe`
|
||||
- 登记应用名称和别名
|
||||
- 编辑、删除、测试启动已登记应用
|
||||
|
||||
安全边界:
|
||||
|
||||
- 启动前始终二次确认,确认内容包含应用名、路径、工作目录和来源
|
||||
- 只允许启动 `.exe` 或开始菜单 `.lnk` 快捷方式
|
||||
- 不执行 `.bat` / `.cmd` / `.ps1` / `.vbs` / `.js` / `.msi`
|
||||
- 不执行聊天文本里的命令
|
||||
- 不拼接聊天文本参数
|
||||
- 不以管理员权限启动
|
||||
- 手选 `.exe` 后可选择记住为当前名称,后续走登记应用匹配
|
||||
|
||||
## 配置和日志
|
||||
|
||||
@@ -437,7 +346,6 @@ ai_config.broken.yyyyMMdd-HHmmss.json
|
||||
conversation_history.broken.yyyyMMdd-HHmmss.json
|
||||
weather_config.broken.yyyyMMdd-HHmmss.json
|
||||
web_config.broken.yyyyMMdd-HHmmss.json
|
||||
launcher_config.broken.yyyyMMdd-HHmmss.json
|
||||
```
|
||||
|
||||
日志输出到文件,不输出到控制台:
|
||||
@@ -550,7 +458,7 @@ C:\Program Files (x86)\Inno Setup 6\ISCC.exe
|
||||
仓库提供开发用性能采样脚本,不进入普通用户发布包:
|
||||
|
||||
```powershell
|
||||
powershell -NoProfile -ExecutionPolicy Bypass -File tools/perf_sample.ps1
|
||||
powershell -NoProfile -ExecutionPolicy Bypass -File internal/qa/scripts/perf_sample.ps1 -Scenario idle-5m
|
||||
```
|
||||
|
||||
默认采样当前 `QtDesktopPet` 进程 5 分钟,每 5 秒一条,CSV 输出到:
|
||||
@@ -565,6 +473,13 @@ reports/perf/
|
||||
docs/performance_stability_check.md
|
||||
```
|
||||
|
||||
内部核心逻辑测试、静态检查、性能报告和长期测试记录说明见:
|
||||
|
||||
```text
|
||||
internal/qa/README.md
|
||||
docs/test-records/README.md
|
||||
```
|
||||
|
||||
发布包应排除 `tools/`、`docs/`、`reports/`、`build/`、`dist/`、`release_packages/` 和 `.git/`,只保留运行必需文件、`resources/characters/`、`resources/icons/`、`resources/sounds/`、`LICENSE` 和必要说明。
|
||||
|
||||
## AI 配置和聊天
|
||||
|
||||
Reference in New Issue
Block a user