3.7 KiB
3.7 KiB
路线图与版本自省
每个版本完成后在此追加"自省":缺什么、哪里不好、下一版怎么补。
版本计划
| 版本 | 主题 | 内容 |
|---|---|---|
| v0.1.0 | 骨架 + 聊天链路 | monorepo、electron-vite 三进程、pi SDK 嵌主进程、IPC 事件转发、聊天 UI(流式文本 + thinking 折叠)、停止/排队基础 |
| v0.2.0 | 会话管理 | 会话列表/新建/恢复/重命名/删除、分支(New session / Edit from here)、运行状态与用量展示 |
| v0.3.0 | 模型与设置 | 模型选择、Provider/API key 管理(写入 ~/.pi auth)、系统提示词自定义、连通性测试 |
| v0.4.0 | 工具与审批 | 工具调用卡片(参数/结果折叠展示)、tool_call 拦截 → Approval Card、defineTool 业务工具骨架(本地可跑的演示工具) |
| v0.5.0 | 打磨 | 深浅主题、GSAP 动效细节、快捷键、错误态/空态、队列可视化、自动滚动策略 |
| 未来 | electron-builder 打包与自动更新、i18n(中/英)、sqlite 持久化与迁移、本地备份恢复、CDP 插件、热点词/生成/模板业务插件、手动模式编排 UI、RPC 子进程隔离模式 |
v0.1.0 — 骨架 + 聊天链路
交付:
- pnpm monorepo(
apps/desktop+docs/;后端/后台/数据库按约定未创建) - Electron 44 + electron-vite 5 + React 19 + Tailwind v4 + GSAP + lucide-react
- 主进程 ESM(
.mjs)内嵌 pi SDK 0.85.0(@earendil-works/*全部 external,运行时从 node_modules 加载);preload 输出.cjs - IPC:
agent:send/steer/stop/state+agent:event事件流(delta 40ms 合批,参考 pi-web 节流经验) - UI:侧栏(品牌/模型状态/上下文用量/成本/版本)、聊天区(用户气泡、流式助手文本 + 光标、thinking 折叠、工具卡片含参数/结果)、输入区(自适应高度、Enter 发送/Shift+Enter 换行、流式时排队提示 + 停止按钮)、空状态建议词、错误条 + 自动重试条
- 会话复用
~/.pi/agent(与用户已装的 pi CLI 互通) - 验证:typecheck 通过、build 通过、应用启动 UI 截图核验通过、pi SDK 冒烟脚本通过(无凭据时错误干净传播)
自省(v0.1.0 → 指导 v0.2+):
- 真实 LLM 往返未验证——本机
~/.pi/agent/auth.json为空对象,无任何 API key;模型解析为unknown/unknown(pi 的 fallback)。需要用户配 key(pi /login或等 v0.3 设置界面)后复测流式/工具/思考链路。 - 会话管理完全缺失——重启后不恢复历史;侧栏列表是占位框。v0.2 用
SessionManager(list/open/create/rename/delete + 分支)补齐,pi 会话文件在~/.pi/agent/sessions/<encoded-cwd>/下按 cwd=home 分组,要注意 cwd 策略(固定 home 还是工作区选择)。 - 工具面过宽——当前默认
read/bash/edit/write全开(冒烟已证实)。按架构 D2/D6,v0.4 收窄为业务工具白名单。 - Markdown 渲染极简——只有 fenced code/行内 code/加粗;标题、列表、链接、表格都没有,长回复可读性差。排 v0.5。
- 无 SSE 之外的流控——超长回复没有虚拟化,消息多后可能卡;先记录,v0.5 评估虚拟滚动。
- 坑位记录:pi-coding-agent 0.85.0 漏声明
@earendil-works/pi-server依赖(已手动补装);electron-vite 5 需显式external: ['electron', /^@earendil-works\//];"type":"module"下 preload 必须.cjs;PowerShell 改写含中文的源文件会毁编码(统一用写入工具)。 - 交互验证受限——computer-use 无法激活该窗口(虚拟显示),键盘链路未实测;已用截图 + Node 冒烟双层验证替代,后续版本需人工过一遍键盘操作。