Repository navigation
Releases
Pi Star 0.1.0-rc.2
第二个预发布版本:代码、Diff 和终端改为项目级工作区,右侧工作台和终端恢复流程成型。
Added
- 项目级工作区:Code、Diff(原 Git)和 Terminal 按项目保存各自的标签页、布局与终端;
切换项目恢复对应工作区,切换标签或项目时接回仍然存活的 PTY。 - 右侧工作台:用项目 dock 取代原文件面板,Code/Diff/Terminal 可以拆分并选择方向与
内容;会话上下文设置移入 Settings。 - 终端多标签与递归分屏:支持项目级 terminal tabs、pane 拆分和比例调整;新 tab 从当前
pane 的 cwd 打开。 - 终端恢复:应用或服务重启后按最后保存的 cwd 创建新 shell;目录失效时回退项目根目录,
并提示恢复位置。Linux 通过/proc/<pid>/cwd跟踪实时目录,同时支持 shell 的 OSC 7 上报。 - 侧边栏与会话视图:新增 New 菜单和会话 artifacts 面板;Code/Diff/Terminal 成为项目视图。
- pi-web 0.15 客户端能力与 Models API:同步上游客户端功能与模型列表接口。
Changed
- 终端默认目录:从当前会话的 cwd 改为项目根目录,避免终端跟随会话落到其他项目;已有
pane 继续使用并恢复自己的 cwd。 - 工作台拆分流程:顶部收敛为一个“拆分窗格”按钮,旁边箭头显式选择方向;新窗格先选
视图,选定后不再切换。 - Code 空窗格:没有打开文件时自动展开文件树。
- Git 视图改名 Diff;项目操作收进侧边栏 New 菜单;移除侧边栏文件浏览器和 Web Push。
- 会话上下文设置:系统提示词与工具定义移入 Settings › 会话上下文,并去掉无意义的工具
注册数量。 - Agent 扩展改为 JavaScript:
agent-extension/index.ts、subagent.ts由tsc生成等价的
index.js、subagent.js(ES2022,无类型注解、注释保留),并加package.json声明 ESM;
Rust 的扩展探测、打包校验脚本与文档同步改为index.js,仍兼容.ts回退。 - 桌面应用:bundle identifier 更新为
net.quadhub.pi-star。
Fixed
-
Vite 开发代理的请求被判定 Untrusted origin:
/api代理原来用字符串 target,Vite 会
自动changeOrigin: true,把Host改写成 30151 而页面Origin仍是 30152,后端的
同源检查因此拒绝所有 POST(输入消息失败、新会话提示 Untrusted origin)。改为对象形式并
显式changeOrigin: false,保留页面自己的 Host。需要重启npm run dev。 -
模型选择器只列可用模型:
/api/models现在只返回有凭据的 provider(auth.json、
models.json 的apiKey,或<PROVIDER>_API_KEY环境变量),不再把models-store.json
里未配置的目录 provider 列出来;设置里的「模型定义」和输入框选择器因此一致。
?scope=all仍表示忽略enabledModels,但同样只含可用模型。 -
pi-web 侧聊不再出现在侧栏:识别
pi-web:side元数据,把侧聊折叠进父会话的 family,
pi-web 创建的Side chat不再被当成顶层 fork 显示;侧聊用量只算自身条目、内容搜索跳过,
删除父会话时一并删除。会话索引版本升到 2,旧缓存里的 fork 关系会重新解析。 -
对话右侧 minimap 触底:小地图不再只覆盖消息区,而是作为整列浮层延伸到页面底部
(输入框右侧原本就预留了 36px),锁图标和轨道都到页面底端;扩展状态栏同步留出右侧空间。 -
终端不再卡在
Terminal expired or closed:404 自动按保存的 cwd 重建,不再把死 id
当错误展示;切换标签或项目也不会重复启动 shell。 -
Code 文件标签关闭后被重新打开:FileViewer 的卸载保存只写回仍然存在的标签页,清空
Code 窗格后也不会被迟到的保存恢复。 -
终端切换目录:实时跟踪 shell cwd,重启后回到最后目录;保存目录不存在时回退项目根目录。
Pi Star 0.1.0-rc.1
首个公开预发布版本。
Added
- Rust 后端:用 Axum 实现 pi-web 的会话、Agent、文件、Git、终端、模型/Provider、
MCP、skills、plugins、subagents、认证与安全接口,运行时使用~/.pi/agent数据。 - Web UI:从 pi-web 迁移的 Vite/React 界面,保留主题、i18n、PWA、会话树、聊天、文件
预览、终端和设置面板。 - Agent 运行时:按会话选择
rpc(pi --mode rpc)或进程内quick(QuickPI)后端;
SSE 事件、prompt 队列、工具循环、压缩、分支、子代理、扩展 UI。 - 桌面应用:独立 Tauri 2 壳位于
app/,单实例、splash/错误页、原生主窗口、托盘、
开机自启动、关窗到托盘、崩溃退避重启与进程树清理。 - 内嵌前端:release 构建用
rust-embed把ui/dist编入pi-star;debug 读磁盘,
--ui-dir可显式覆盖。 - 自包含 pi 运行时:安装包携带固定版本的 Node、
@earendil-works/pi-coding-agent
1.4.0 生产依赖和agent-extension/;Windows 额外携带 MinGit,目标机器无需预装 Node/pi/Git。 - 跨平台打包:Linux deb/AppImage、Windows NSIS/MSI/portable zip、macOS .app/dmg;
macOS 支持 Developer ID 签名与可选公证。 - CI / Release:GitHub Actions 在 Linux/Windows/macOS 做编译与测试检查;
v*标签触发
三平台构建并创建 GitHub Release。 - Windows bash:优先使用内置 MinGit,其次探测系统 Git for Windows,支持
PI_STAR_BASH
覆盖,排除 WSL 启动器,不回退 cmd.exe。 - 侧边栏品牌:左侧栏顶部品牌区增加 Pi Star logo。
Changed
- 静态资源服务:
ServeDir替换为内置/磁盘双来源处理器,保留 SPA 回退、缓存头、
HEAD 与路径穿越防护;/api/health增加assets信息。 - 进程生命周期:新增
--exit-on-stdin-eof;stdout 只输出pi-star:生命周期事件,
日志写 stderr;端口占用输出bind-failed并以退出码 2 退出。 - 桌面端口:默认固定
30151(可用桌面偏好覆盖),保持 webview origin 稳定。 - Linux 分发:只发布桌面应用,不再单独发布 service 包。
Fixed
- 版本信息:欢迎页显示实际版本号与内置 pi 版本(
v0.1.0 · pi v1.4.0),不再显示
pi vpi-compatible-rust;最窄侧栏的版本浮层用 9px,容纳0.1.0-rc.1p1.4.0。 - 失效工作区:启动时记住的新会话目录失效不再卡在“无法打开工作区”;自动丢弃记忆并回到
默认工作区,显式?cwd=错误页提供重试与选择项目。 - macOS 公证:
stapler取票遇到 Apple CloudKit 瞬时网络错误(Error 65/68、NSURLError
-1005)时自动重试 4 次、间隔 20 秒,不再让已通过公证的 dmg 因取票抖动失败。 - Release 构建:Windows 下用 PowerShell 解压 Node/MinGit 的 zip,并给 GNU tar 加
--force-local,避免D:被当成远程主机;pi 依赖安装加--legacy-peer-deps,规避 npm 10
的edgesOut崩溃;Windows 运行时 staging 放在仓库同盘的app/pi-runtime,避免 Tauri
规范化资源路径时丢掉盘符(C:\pirt→\pirt)。NSIS 内容断言会先把 7-Zip 输出的
反斜杠归一化,避免把已打包的pi-runtime\node.exe误判为缺失。Windows artifact 只上传
安装包和便携 zip,便携 staging 放到临时目录;发布前清理同名 Release 的旧 assets,避免把
pi-runtime内数百个文件逐个上传导致 GitHub API 超时。 - 桌面壳被
SIGKILL时通过 stdin EOF 与进程组/Job Object 清理子进程树,避免孤儿进程。 - 桌面模式跳过 service worker/PWA 注册,避免 Tauri webview 的缓存行为干扰本地服务。
- Windows 安装包启用 long paths,避免内置
node_modules路径超限。