Commit Graph
14 Commits
Author SHA1 Message Date
shenmo7192 d949d278cb feat(chat): 会话重命名与删除
- 侧栏右键菜单:重命名、删除
- 删除后自动选中相邻会话,流式输出中先取消请求
2026-10-30 20:26:13 +08:00
shenmo7192 46263e70d7 test(chat): MCP 工具循环端到端测试
- tests/api/fake_openai.py:假 OpenAI 流式接口,先返回 tool_call 再返回文本
- tests/chattest.cpp:真实 ChatClient + McpManager 走完 请求→工具→回填→回答
- fix(mcp): 回调应收到 JSON-RPC 的 result,而不是整个响应包(否则工具结果为空)
- 两个无头测试均通过
2026-10-30 20:25:37 +08:00
shenmo7192 ba7f57c7d5 feat(i18n): 翻译加载与 .qm 构建
- 启动时按 locale 加载 gxde-ai-see_<locale>.qm(用户数据目录 / /usr/share)
- translations/gxde-ai-see_en.ts 翻译模板,lupdate/lrelease 接入 CMake 并安装
- README 补充翻译流程
2026-10-30 20:23:15 +08:00
shenmo7192 77a4369cd6 feat(chat): MCP stdio 工具接入
- McpServer:启动进程、initialize、tools/list、tools/call
- McpManager:多服务器、工具名冲突处理、OpenAI function 定义
- ChatClient:请求携带 tools,流式累积 tool_calls,结束后交回上层
- ChatWindow:工具调用循环(最多 5 轮)、scaffold 消息、设置里的 MCP JSON 编辑
- 无头自测 gxde-ai-see-mcptest + tests/mcp/test_server.py 验证通过
2026-10-30 20:22:14 +08:00
shenmo7192 c7865fcbf0 feat(chat): Markdown 渲染与消息复制
- 助手消息支持标题、粗体、行内代码、代码块、链接、列表
- 每条助手消息新增「复制」链接
2026-10-30 20:20:18 +08:00
shenmo7192 1fa1ff45f6 feat(staging): 删除动画与拖动排序
- 删除:右移淡出 200ms(OutCubic)后移除
- 拖动排序:允许把条目拖回列表,按落点移动并持久化
- 自身拖拽不再被当作外部拖入
2026-10-30 20:19:36 +08:00
shenmo7192 d69326bc6f feat(app): 不支持传送门的环境只提示一次并保持待命
- --daemon 启动时检测 org.gxde.Portal,缺失则发一次桌面通知
- 记录 warned/unsupportedEnv,避免 gxde-k9 反复拉起时重复提示
2026-10-30 20:17:25 +08:00
shenmo7192 07f215bb34 feat(chat,panel): 对话增强与面板窗口管理;chore: debian 打包
Chat:
- 消息操作:编辑用户消息、重试、从任意回复分支
- 上下文:条数设置 + 超出自动压缩(摘要旧消息)
- 关于对话框;侧栏更多菜单

Panel:
- 拖动边框移动、拖顶部调整高度,位置/高度持久化
- 右键菜单:固定位置、恢复默认位置、固定大小、全屏时隐藏(预留)、
  开机自启与保活(写入 gxde-k9 .slimy)、清空暂存区、关于、退出

Packaging:
- debian/(control/rules/changelog/copyright/source format)
- README 构建与使用说明、CHANGELOG.md
2026-10-30 20:16:09 +08:00
shenmo7192 e3c8da1a3f feat(chat,todo): 小埃同学对话窗口与待办窗口
Chat:
- DTK2 窗口:左侧会话列表 + 右侧对话区 + 输入框
- DeepSeek / 自定义 API,SSE 流式输出,首字即显示
- 会话持久化到 chat.json,新建/切换/标题自动生成
- 设置对话框:API Key、API 地址、模型、系统提示,含开通指引
- 拖放:左侧空白=新建对话,左侧会话=指定会话,右侧对话区=当前会话
- Ctrl+Enter 发送,错误以消息形式回显

Todo:
- 待办窗口(layer-shell,不抢焦点、不进 dock),复选框/删除/新建
- 待办持久化 todo.json,--todo 打开,独立 desktop 入口

其他:
- desktop 入口改为打开对话窗口,--chat 参数
- 单实例消息支持 show/todo/chat
2026-10-30 20:12:31 +08:00
shenmo7192 150a49af2f docs(plan): 内容工厂链接分类与问问小埃的拖放交互 2026-10-30 20:09:14 +08:00
shenmo7192 3a73a8c5d1 feat(factory): 内容工厂与链接处理
- 第三栏内容工厂:按拖入类型展示动作,动作按钮本身可接收 drop
- 链接分类:http(s) 按扩展名判定图片/音视频/文档/压缩包/网页
- http 链接动作:打开、下载、另存为、复制、Markdown、复制文件名、待办、问小埃
- 非标准 scheme:尝试打开、复制;thunder 解析 base64 真实地址,magnet 解析 dn
- 文字动作:ICU 分词、正则提取链接、朗读(spd-say)、复制、待办
- 文件/图片动作:打开、提取文字(占位)、生成描述、保存图片、复制路径、待办
- Downloader:异步下载到 XDG 下载目录 / 另存为,面板 toast 提示
- TodoModel:持久化到 todo.json,供「添加到待办」使用
- 无头自测 gxde-ai-see-selftest:链接分类/分词/提取链接/动作匹配
- 合成器 portal 自测脚本 tests/portal(虚拟指针 + GTK 源/目标)
2026-10-30 20:09:01 +08:00
shenmo7192 68d3eb1a24 feat(portal): 接入合成器传送门,暂存区固定/消耗语义
- 新增 PortalClient:org.gxde.Portal 的 BeginPortal / CancelPortal 与 drag 信号
- 传送门区域悬停 150ms 后打开合成器 overview;无窗口/不支持时给出提示
- 拖拽开始时自动弹出面板(120ms 延迟,mime 过滤),拖拽结束自动收起
- 暂存区每行新增固定按钮;默认拖出后消耗,固定后保留;取消拖拽不消耗
- 拒绝自身拖拽落入暂存区,避免重复条目
2026-10-30 19:55:25 +08:00
shenmo7192 f9204a03d1 feat(m1): 应用骨架、传送门面板与暂存区
- CMake 构建(Qt6 + dtk2widget + LayerShellQt)
- 单实例 / --daemon / --show
- DBlur 双栏面板:传送门 + 暂存区,layer-shell 定位,不抢焦点
- 暂存区模型:文件/文字/图片、去重、JSON 持久化、文件消失清理
- 列表委托:复选框、缩略图、名称、hover 关闭按钮
- 全选 / 反选 / 删除选中
- 应用图标(多尺寸 hicolor)与 desktop 入口
- 方案更新:确认 layer-shell + 遮挡自动隐藏
2026-10-30 19:47:07 +08:00
shenmo7192 472af9722e docs: 初始设计方案与 README
- docs/PLAN.md: GXDE 小埃同学 v0.2 方案(传送门原生 drop、暂存区、内容工厂、待办、Chat、k9)
- README.md: 项目介绍
- LICENSE: GPL-3.0-or-later
2026-10-30 19:37:02 +08:00