Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ Pick up anything labeled `ready-for-human` or `good first issue`. Leave `ready-f
## Branches and pull requests

- Work on a `feat/`, `fix/`, or `chore/` branch. Never push to `main`.
- `main` is the only long-lived branch. Releases are tags (`vX.Y.Z`), not branches.
- `main` is the only long-lived branch. Releases are tags (`vX.Y.Z`), not branches. How to pick the next version: [docs/release/macos.md](docs/release/macos.md#怎么选版本号).
- Open a PR. Merges use a merge commit (`gh pr merge --merge`), matching existing history.
- Dependent PRs use [`gh stack`](https://gh.io/stacks). Do not point one PR's base at another PR's branch by hand: deleting the lower branch after merge closes every PR based on it.
- Commit messages follow [Conventional Commits](https://www.conventionalcommits.org/) (`feat:`, `fix:`, `docs:`, `chore:`, …).
Expand Down
2 changes: 1 addition & 1 deletion apps/desktop/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@pace/desktop",
"version": "0.0.16",
"version": "0.1.0",
"private": true,
"license": "Apache-2.0",
"description": "The GUI for the Pi coding agent.",
Expand Down
59 changes: 59 additions & 0 deletions apps/desktop/src/entities/release/changelog.ts
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,65 @@ export type ChangelogRelease = {

// Ship release notes with the app so the history is also available offline.
export const changelogReleases: readonly ChangelogRelease[] = [
{
version: "0.1.0",
date: "2026-10-01",
title: "MCP servers, nested tools and Linux",
summary: "Manage MCP servers from Settings, see the tool calls that codemode makes on your behalf, and install Pace on Linux. This release ships Pi 0.99.1 and is the first version numbered by semantic versioning: new features now raise the minor version.",
url: "https://github.com/BubblePtr/pace/releases/tag/v0.1.0",
changes: [
{
kind: "added",
title: "MCP settings",
description: "Settings has a new MCP section for the servers in Pi's global mcp.json. See each server's status and tools, enable or disable it, change its exposure, sign in or out with OAuth in your browser, and add or remove stdio and HTTP servers. Changes apply to new sessions; a sign-in reaches running sessions on their next turn.",
},
{
kind: "added",
title: "Bundled Pi 0.99.1 with codemode, tool search and MCP",
description: "Sessions load Pi's built-in codemode, tool_search and MCP extensions, so the model can script several tool calls at once, search for tools on demand and call tools from MCP servers.",
},
{
kind: "added",
title: "Nested tool executions",
description: "Tool calls that codemode and similar tools start on their own appear under their parent call, with a nested call count, a live label such as Running codemode › server/tool, and failures surfaced on the parent. Trajectory's inspector lists them too, and MCP tools are shown as server/tool.",
},
{
kind: "added",
title: "Linux x64 builds",
description: "Every release now ships a Linux x64 AppImage, which updates in place, and a deb package, which is reinstalled for each new version. Linux uses the system window title bar.",
},
{
kind: "added",
title: "Line counts for each edit",
description: "Tool step rows show the total +N -M for a batch of edits, and each edit shows its own additions and deletions when expanded.",
},
{
kind: "added",
title: "Open any file from chat",
description: "File links in answers open in Files at the linked line even when the file has not changed, and local links render as file chips. Paths written as inline code, such as src/foo.ts:12, become links when the file exists in the checkout.",
},
{
kind: "improved",
title: "Continuous corners",
description: "Rounded corners use a squircle shape with an adjusted radius scale, so the interface keeps the same overall softness while circular buttons stay round.",
},
{
kind: "improved",
title: "Calmer animated icons",
description: "Animated icons share one 800ms duration, play only when the pointer actually enters them, no longer replay after navigation and no longer shrink when pressed.",
},
{
kind: "fixed",
title: "Chat file links respond",
description: "Clicking a chat link to an unchanged file no longer does nothing.",
},
{
kind: "fixed",
title: "Smaller session records",
description: "The full bash output that Pi 0.99 attaches for scripts, up to 1 MiB per call, is no longer written to the session journal or sent between processes.",
},
],
},
{
version: "0.0.16",
date: "2026-09-26",
Expand Down
2 changes: 1 addition & 1 deletion bun.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion docs/changelog.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ Settings Dialog 的 Changelog 分类展示正式发布的用户可感知变化

## 内容来源

唯一数据源是 `apps/desktop/src/entities/release/changelog.ts` 的 `changelogReleases`。内容随应用打包,因此断网也能阅读;不会在打开设置时请求 GitHub。当前构建收录 v0.0.1 至 v0.0.16,最新条目随 v0.0.16 发布。v0.0.16 的中文说明见 [发布说明](release/0.0.16.md),涵盖技能与提示模板标签、工作区文件引用、worktree 基础分支选择、诊断信息复制,以及菜单排版、项目错误、provider 检查和会话恢复修复。v0.0.15 的中文说明见 [发布说明](release/0.0.15.md),涵盖内置 Pi 0.87.1、按账号过滤可用模型、provider 连接检查、设置页刷新模型目录、按 provider 全选及模型选择器与设置页对齐。v0.0.14 的中文说明见 [发布说明](release/0.0.14.md),涵盖内置 Pi 0.86.0、会话内上下文变更通知、About 页 Pi 版本、首页 Pi 品牌色、Draft→Live 单一 composer 及 Finder 启动下的包管理修复。v0.0.13 的中文说明见 [发布说明](release/0.0.13.md),涵盖设置页列出全部 Pi provider、Radius 登录及 provider 卡片品牌标与过滤。v0.0.12 的中文说明见 [发布说明](release/0.0.12.md),涵盖排队消息拖拽重排与 steer、会话自动命名、Browser 空白启动及中断 run 结清修复。v0.0.11 的中文说明见 [发布说明](release/0.0.11.md),涵盖 Usage 成本驾驶舱、内置 Pi 0.85.1 及会话创建时的模型选择修复。v0.0.10 的中文说明见 [发布说明](release/0.0.10.md),涵盖 Trajectory 子会话深链、子代理停止控制及 Dock 提示位置修复。v0.0.9 的中文说明见 [发布说明](release/0.0.9.md),涵盖历史会话即时回放、根会话进程隔离及后台扩展免系统 Node。v0.0.8 的中文说明见 [发布说明](release/0.0.8.md),涵盖工具图标恢复静态、失败工具单行摘要及输入框层级修复。v0.0.7 的中文说明见 [发布说明](release/0.0.7.md),涵盖 Shell 动画图标、双栏 Header 对齐、Live Chat 抢占修复及系统 Node 支持后台扩展。v0.0.6 的中文说明见 [发布说明](release/0.0.6.md),涵盖会话列表按最近提交排序、列表头部简化及投影状态和标题宽度修复。v0.0.5 涵盖聊天文件链接、工作区自动刷新、会话恢复提示及界面和日志修复。v0.0.4 根据 [正式发布记录](https://github.com/BubblePtr/pace/releases/tag/v0.0.4) 和 [v0.0.3 至 v0.0.4 的实际改动](https://github.com/BubblePtr/pace/compare/v0.0.3...v0.0.4) 整理,UTC 发布日期为 2026-09-10,涵盖 Packages 市场、资源管理及 Changes/Files 面板改进。
唯一数据源是 `apps/desktop/src/entities/release/changelog.ts` 的 `changelogReleases`。内容随应用打包,因此断网也能阅读;不会在打开设置时请求 GitHub。当前构建收录 v0.0.1 至 v0.1.0,最新条目随 v0.1.0 发布。v0.1.0 的中文说明见 [发布说明](release/0.1.0.md),涵盖 MCP 设置、内置 Pi 0.99.1 与 codemode/tool_search/MCP、嵌套工具调用、Linux x64 安装包、每次编辑的行数、聊天文件链接,以及 squircle 圆角和动态图标调整;也是首个按语义化版本选号的版本。v0.0.16 的中文说明见 [发布说明](release/0.0.16.md),涵盖技能与提示模板标签、工作区文件引用、worktree 基础分支选择、诊断信息复制,以及菜单排版、项目错误、provider 检查和会话恢复修复。v0.0.15 的中文说明见 [发布说明](release/0.0.15.md),涵盖内置 Pi 0.87.1、按账号过滤可用模型、provider 连接检查、设置页刷新模型目录、按 provider 全选及模型选择器与设置页对齐。v0.0.14 的中文说明见 [发布说明](release/0.0.14.md),涵盖内置 Pi 0.86.0、会话内上下文变更通知、About 页 Pi 版本、首页 Pi 品牌色、Draft→Live 单一 composer 及 Finder 启动下的包管理修复。v0.0.13 的中文说明见 [发布说明](release/0.0.13.md),涵盖设置页列出全部 Pi provider、Radius 登录及 provider 卡片品牌标与过滤。v0.0.12 的中文说明见 [发布说明](release/0.0.12.md),涵盖排队消息拖拽重排与 steer、会话自动命名、Browser 空白启动及中断 run 结清修复。v0.0.11 的中文说明见 [发布说明](release/0.0.11.md),涵盖 Usage 成本驾驶舱、内置 Pi 0.85.1 及会话创建时的模型选择修复。v0.0.10 的中文说明见 [发布说明](release/0.0.10.md),涵盖 Trajectory 子会话深链、子代理停止控制及 Dock 提示位置修复。v0.0.9 的中文说明见 [发布说明](release/0.0.9.md),涵盖历史会话即时回放、根会话进程隔离及后台扩展免系统 Node。v0.0.8 的中文说明见 [发布说明](release/0.0.8.md),涵盖工具图标恢复静态、失败工具单行摘要及输入框层级修复。v0.0.7 的中文说明见 [发布说明](release/0.0.7.md),涵盖 Shell 动画图标、双栏 Header 对齐、Live Chat 抢占修复及系统 Node 支持后台扩展。v0.0.6 的中文说明见 [发布说明](release/0.0.6.md),涵盖会话列表按最近提交排序、列表头部简化及投影状态和标题宽度修复。v0.0.5 涵盖聊天文件链接、工作区自动刷新、会话恢复提示及界面和日志修复。v0.0.4 根据 [正式发布记录](https://github.com/BubblePtr/pace/releases/tag/v0.0.4) 和 [v0.0.3 至 v0.0.4 的实际改动](https://github.com/BubblePtr/pace/compare/v0.0.3...v0.0.4) 整理,UTC 发布日期为 2026-09-10,涵盖 Packages 市场、资源管理及 Changes/Files 面板改进。

页面文案沿用应用现有的英文界面。仅展示已发布功能,不把主干上的未发布变更或开发计划计入历史版本。每个版本附原始 GitHub Release 链接;桌面端通过已有 `browser_open_external` 通道打开系统浏览器,失败时在链接下提示重试。

Expand Down
37 changes: 37 additions & 0 deletions docs/release/0.1.0.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
# Pace 0.1.0

发布日期:2026-10-01

从这个版本起,Pace 按语义化版本发版:有新功能或不兼容变更时提升 minor,只有修复时提升 patch。此前的 0.0.x 一律只升 patch,0.1.0 是第一个按新规则选出的版本号(规则见 [macOS 签名与发布](macos.md#怎么选版本号))。

## 新功能

- MCP 设置:Settings 新增 **MCP** 分区,管理 Pi 全局 `mcp.json` 里的 MCP 服务器。可以查看每个服务器的连接状态(Connected / Needs sign-in / Failed / Disabled)和工具列表,启用或禁用、切换 exposure,通过浏览器完成 OAuth 登录与登出,添加 stdio 或 HTTP 服务器,以及删除服务器。配置改动对新会话生效;登录后,运行中的会话在下一轮就会用上新凭据。
- 内置 Pi 0.99.1:会话加载 Pi 自带的 codemode、tool_search 与 MCP 扩展,模型可以用脚本串联工具调用,按需搜索工具,并调用 MCP 服务器提供的工具。
- 嵌套工具调用:codemode 等工具在内部发起的工具调用显示在父调用下方。收起后显示 “N nested calls”,运行中显示 `Running codemode › server/tool…`,失败的嵌套调用会冒到父调用上;Trajectory 的检查器也会列出这些调用。MCP 工具名显示为 `server/tool`。
- Linux x64:每个版本同时发布 AppImage 与 deb。AppImage 支持应用内更新,deb 需要重新安装新版本。Linux 上使用系统窗口标题栏。
- 每次编辑的行数:工具步骤行显示整批编辑的合计 `+N -M`,展开后每次编辑各自显示增删行数。
- 打开聊天里的任意文件:聊天回答中的文件链接即使指向未修改的文件,也会在 Files 面板打开并定位到对应行。本地文件链接显示为带图标的文件标签;回答里以行内代码写出、且确实存在于工作区的路径(如 `src/foo.ts:12`)也可以点击。

## 改进

- 连续曲率圆角:界面圆角统一改为 squircle 形状,并调整圆角刻度,使整体圆润程度与之前一致;圆形按钮保持正圆。
- 动态图标更克制:所有动态图标的动画时长统一为 800ms,只在鼠标真正移入时播放,切换页面后不再自动重播,按下时不再缩放。

## 修复

- 聊天里的文件链接:指向未修改文件的链接点击后不再毫无反应。
- 会话记录体积:Pi 0.99 的 bash 结果附带的完整输出(最多 1 MiB)不再写入会话日志或进程间消息。

## 已知限制

- 在聊天里输入 `/mcp login` 仍无法登录,请改用 Settings → MCP 的 **Sign in**。
- 会话启动时的 MCP 连接问题暂不会在会话内提示,需到 Settings → MCP 查看([#416](https://github.com/BubblePtr/pace/issues/416))。

## 安装与升级

- macOS:支持 Apple Silicon Mac,要求 macOS 12 或更高版本。首次安装请下载 `Pace-0.1.0-arm64.dmg`。
- Linux:支持 x64。推荐下载 `Pace-0.1.0-x64.AppImage`,加上可执行权限后运行;Debian / Ubuntu 也可以安装 `Pace-0.1.0-x64.deb`。详见 [Linux 打包与发布](linux.md)。
- 已安装用户(macOS 与 Linux AppImage)可在 Settings → About & Updates 点击 **Check for updates**;下载完成后点击 **Restart to update**。

[完整变更](https://github.com/BubblePtr/pace/compare/v0.0.16...v0.1.0)
15 changes: 15 additions & 0 deletions docs/release/macos.md
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,21 @@ macOS 构建机器固定为 `macos-15`(GitHub 标准 ARM64 runner),并在

首版从 `0.0.1` 开始,标签为 `v0.0.1`。版本遵循 [SemVer 2.0.0](https://semver.org/lang/zh-CN/):兼容修复提升 PATCH,兼容的新功能提升 MINOR,不兼容的公共接口变更提升 MAJOR。`0.y.z` 属于初始开发阶段,尚不保证接口稳定。版本号由维护者根据变更内容决定,流水线不会在每次合入时自动升版。

#### 怎么选版本号

看自上一个 tag 以来合入 `main` 的全部变更,按其中级别最高的一项决定。`v0.0.1` 至 `v0.0.16` 不论内容一律只升 PATCH,不符合下面的规则;从 `v0.1.0` 起按规则执行。

| 本次包含 | `0.y.z` 阶段 | `1.0.0` 之后 |
|---|---|---|
| 不兼容变更:journal / 投影格式需要迁移或重建、配置或数据目录变更、移除功能、平台或最低系统要求收紧 | MINOR(`0.1.3` → `0.2.0`) | MAJOR |
| 用户可感知的新功能:新分区、新面板、新平台、新安装包、内置 Pi 升级带来新能力 | MINOR(`0.1.3` → `0.2.0`) | MINOR |
| 只有修复、性能、样式与文案打磨、内置 Pi 的兼容性补丁升级 | PATCH(`0.1.3` → `0.1.4`) | PATCH |

- 提交前缀只是线索:一条用户可感知的 `feat` 就足以升 MINOR;只影响内部的 `feat(backend)` 不算。`refactor`、`test`、`docs`、`chore` 不会单独触发发版。
- 提升 MINOR 时 PATCH 归零。不要为了“看起来改动小”而降级成 PATCH。
- `0.y` 阶段 MINOR 同时承担“可能不兼容”的含义,README 已经说明 journal 与投影格式可能在 minor 版本之间变化;发布说明里要写清楚需要用户做什么。
- `1.0.0` 在 journal / 投影格式与升级路径可以承诺稳定时发布,届时单独决定。

1. 在功能分支中同步修改根 `package.json` 与 `apps/desktop/package.json` 的 `version`,同步 `bun.lock` 中桌面 workspace 的版本,并运行 `bun install --frozen-lockfile` 验证后一同提交。两处清单版本都必须与 tag 去掉 `v` 后完全一致;其他内部 workspace 包无需同步升级。
2. 通过 PR 合并版本变更及 workflow。普通 PR 不自动执行 macOS 打包或 E2E;需要提前验证时,在 Actions 手动运行 `Validate macOS ARM64 (manual)`。下一步的标签发版流程会执行完整测试。
3. 从最新 `main` 创建并推送对应 tag。例如两处版本均为 `0.0.1` 时:
Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
"name": "pace",
"private": true,
"license": "Apache-2.0",
"version": "0.0.16",
"version": "0.1.0",
"type": "module",
"workspaces": [
"apps/*",
Expand Down
Loading