更新记录Changelog
每个版本的变更记录,与源码仓库 changes/ 目录同源;程序内的新版本提示也链接到本页。
What changed in each release, mirroring the changes/ directory of the source repository. The in-app update notice links here too.
0.1.2statusline 插件与修复簇(2026-08-19)statusline plugin & fix wave (2026-08-19)
主线:第四个第一方插件 rpi-ext-statusline 落地、一批交互与模型运行时缺陷修复、/changelog 接入真实更新日志、subagents skill 文档按结构化入口本地化(ADR-0021)。
Highlights: the fourth official plugin rpi-ext-statusline, a wave of interactive and model-runtime fixes, a real /changelog, and the subagents skill docs localized to the structured entry points (ADR-0021).
第一方插件(新)Official plugin (new)
- rpi-ext-statusline:CC 兼容脚本式自定义 statusline(L0 原生插件)。
settings.json写statusLine键即启用(命令 + padding/裁剪参数),两档 placement;脚本按 CC statusline JSON 协议 stdin/stdout 驱动,零新增 ABI。含实机追补:切换模型/思考档位/分支即时刷新、新会话 transcript latch 竞态修复、数据指纹轮询自愈。rpi-ext-statusline: a Claude-Code-compatible script-driven statusline (native L0 plugin). Adding astatusLinekey tosettings.jsonenables it (command plus padding/trim options) with two placements; the script speaks the CC statusline JSON protocol over stdin/stdout with zero new ABI. Hardened in the field: instant refresh on model / thinking-level / branch switches, a transcript latch race fix for new sessions, and data-fingerprint polling self-healing.
修复Fixes
/new与/resume切换 session 后 extension host 丢失 UI bridge——mcp 状态栏消失、MCP 工具审批被静默拒绝(#1)。Extension host lost the UI bridge after/new//resumesession switches — the mcp status line disappeared and MCP tool approvals were silently rejected (#1).models.json配置 apiKey 后仍强制要求auth.json——字面 key 被误当环境变量名,改按上游 config-value DSL 解析(#3)。A literalapiKeyinmodels.jsonstill requiredauth.json— literal keys were misread as environment-variable names; now parsed with the upstream config-value DSL (#3)./changelog恒显示 "No changelog entries found."——changelog 资产从未落地;现CHANGELOG.md嵌入二进制 +parseChangelog移植 + onboarding 显示半链(#5)。/changelogalways showed "No changelog entries found." — the changelog asset never shipped.CHANGELOG.mdis now embedded into the binary, with theparseChangelogport and the onboarding display half-chain (#5).model_select事件从未发出——切换后捕获 previous 恒等短路。Themodel_selectevent was never emitted — the post-switch capture short-circuited on an identicalprevious.- onboarding 启动 header 品牌残留:上游 "Pi" 逐字文案改 rpi 实际能力表述,去掉 rpi 未带的 docs 查询承诺、指向官网(#7)。Onboarding header branding leftovers: verbatim upstream "Pi" copy rewritten to Rpi's actual capabilities, dropping the docs-query promise Rpi does not ship and pointing to the website (#7).
内部Internal
- subagents 编排 skill 文档与 prompt 模板按结构化入口本地化(ADR-0021):去除
workflowScript教学与未实现机制段落,安装侧.rpi-layout-versionmarker 自动升级旧版;工具描述补齐tasks/steps组合入口(ADR-0018 决策 5)。Subagents orchestration skill docs and prompt templates localized to the structured entry points (ADR-0021):workflowScriptteaching and unimplemented-mechanism sections removed, an install-side.rpi-layout-versionmarker upgrades older copies automatically; tool descriptions now document thetasks/stepscomposition entries (ADR-0018 decision 5). - registry / package_manager / package_command rustfmt 清账(纯格式化)。rustfmt cleanup across registry / package_manager / package_command (formatting only).
0.1.1插件生态与上游对齐(2026-08-16)Plugin ecosystem & upstream alignment (2026-08-16)
三大主线:对齐上游 Pi v0.84.1(T17–T32,parity freeze)、三个常用 Pi 插件的 Rust 移植落地(TE01–TE11)、扩展分发与安装链路打通。 Three main lines: alignment with upstream Pi v0.84.1 (T17–T32, parity freeze), the Rust ports of three popular Pi plugins (TE01–TE11), and the extension distribution & install pipeline.
扩展分发与安装(新)Extension distribution & install (new)
rpi install <name>[@<range>]:registry 渠道——裸名解析 revpi.dev 索引,semver 选版(精确 /^/~,缺省最新),安装前预检rpiAbi与minHostVersion;下载 GitHub 直连优先、官网边缘代理回退,sha256 以官网索引记录校验,不匹配立即中止不换源。rpi install <name>[@<range>]: the registry channel — a bare name resolves against the revpi.dev index, semver selection (exact /^/~, default latest), withrpiAbiandminHostVersionpreflight; downloads prefer GitHub direct with the site edge proxy as fallback, sha256 verified against the site index and any mismatch aborts without switching sources.rpi install github:<owner>/<repo>[@<tag>]:直指 GitHub Release artifact(未收录/私有插件),校验退化为 Release 自带 sidecar 并明示完整性级别差异。rpi install github:<owner>/<repo>[@<tag>]: points straight at a GitHub Release artifact (uncatalogued/private plugins); verification degrades to the release's own sidecar, with the integrity-level difference stated up front..rpix打包格式:gzip tar,含rpi-extension.json+ 载体 +SHA256SUMS;逐文件校验、原子替换到~/.rpi/agent/extensions/<name>/(或-l项目级)。The.rpixformat: a gzip tar containingrpi-extension.json, the carrier, andSHA256SUMS; per-file verification and an atomic replace into~/.rpi/agent/extensions/<name>/(or project-level with-l).- 信任提示:install/update 展示 author 与 capabilities 全表;L0 原生插件(无沙箱、全 OS 权限)显著警告,需确认或
--yes。Trust prompts: install/update show the author and the full capabilities table; native L0 plugins (no sandbox, full OS access) carry a prominent warning and need confirmation or--yes. remove/list/update全链路支持;RPI_REGISTRY_URL可注入镜像/测试地址,off整体禁用。remove/list/updateacross the whole chain;RPI_REGISTRY_URLcan inject a mirror/test endpoint andoffdisables everything.- 第一方插件随主版本发布:CI 将官方插件各自打成
.rpix(Windows x64 / macOS arm64 / Linux x64 与 arm64 glibc;musl 主机无法加载原生扩展,不出插件包),与本体同一 Release 发布、版本锁步,官网索引自动收录并标「官方插件」。Official plugins ship with each release: CI packs every official plugin as a.rpix(Windows x64 / macOS arm64 / Linux x64 & arm64 glibc; musl hosts cannot load native extensions, so no plugin packages there), published in the same GitHub Release as the binary, version-locked, and auto-listed in the site index as official. - revpi.dev 新增
/api/extensions/索引 API、/extensions/download/下载代理(白名单 + 边缘回源)与插件目录页。revpi.dev gained the/api/extensions/index API, the/extensions/download/proxy (allowlist + edge fetch), and the plugin catalog page.
第一方插件移植(TE01–TE11)Official plugin ports (TE01–TE11)
- rpi-ext-mcp-adapter(pi-mcp-adapter v2.24.0):MCP 客户端——配置三源合并、stdio/SSE/HTTP 三传输、OAuth 全流程、代理与 direct 工具、懒连接与会话恢复、状态行与结果折叠渲染;parity 对拍证据链。rpi-ext-mcp-adapter (pi-mcp-adapter v2.24.0): the MCP client — three-source config merge, stdio/SSE/HTTP transports, the full OAuth flow, proxy and direct tools, lazy connect with session resume, status line and collapsible result rendering; parity evidence chain included.
- rpi-ext-subagents(pi-subagents v0.48.0):
subagent工具——六内置 agents 与四级发现、fresh/fork、组合编排与后台异步、worktree 隔离、acceptance gates、supervisor 通道、流式进度与 TUI 可视化、/run/subagents/subagents-doctor;对拍全 MATCH。rpi-ext-subagents (pi-subagents v0.48.0): thesubagenttool — six builtin agents with four-level discovery, fresh/fork contexts, composition and background async, worktree isolation, acceptance gates, the supervisor channel, streaming progress with TUI visibility, and/run/subagents/subagents-doctor; full MATCH on parity runs. - rpi-ext-smart-fetch(agent-smart-fetch v0.3.17):
web_fetch全管线——batch 并发、meta refresh / alternate 回退、流式下载、进度事件流与组件树渲染。rpi-ext-smart-fetch (agent-smart-fetch v0.3.17): the fullweb_fetchpipeline — batch concurrency, meta-refresh / alternate fallbacks, streaming downloads, progress event streams, and component-tree rendering. - 扩展 ABI 补齐(ADR-0015):
unregisterTool/toolUpdate双载体,完全 additive,RPI_ABI_VERSION保持 1。Extension ABI completion (ADR-0015):unregisterTool/toolUpdateon both carriers, fully additive,RPI_ABI_VERSIONstays 1.
上游对齐 Pi v0.84.1(T17–T32)Upstream alignment with Pi v0.84.1 (T17–T32)
- rpi-ai:v0.84 消息类型与请求选项、流终止语义、provider 修复与 compat 扩展、models refresh 事务化与 OAuth、auth 命令族、新 provider 与模型目录。rpi-ai: v0.84 message types and request options, stream-termination semantics, provider fixes and compat extensions, transactional models refresh with OAuth, the auth command family, and new providers with model catalogs.
- 主路径:JSON/RPC delta 线格式与 stdout 背压、会话行为簇、资源加载与包管理。Main paths: JSON/RPC delta wire format with stdout backpressure, session behavior fixes, resource loading, and package management.
- rpi-agent:agent 循环微行为与 compaction 契约。rpi-agent: agent-loop micro-behaviors and the compaction contract.
- rpi-tui:渲染器 trait 化重构、行为修正簇(即时渲染 / grapheme / OSC8 / 键位 / Windows)、LaTeX 与 Mermaid、布局引擎、全屏渲染(alt screen / mouse / kitty)、UI 模式接线与 parity freeze。rpi-tui: the renderer trait refactor, a behavior-fix cluster (instant rendering / graphemes / OSC8 / keybindings / Windows), LaTeX and Mermaid, the layout engine, fullscreen rendering (alt screen / mouse / kitty), UI-mode wiring, and the parity freeze.
- 扩展 API 面同步上游 12 项(ADR-0013)。12 extension-API items synced with upstream (ADR-0013).
行为变更Behavior changes
- 移除 npm/pnpm/yarn/bun 自更新分支(ADR-0011 修订):二进制为唯一发行渠道,
update --self恒走真自更新;npm:扩展包安装不受影响。The npm/pnpm/yarn/bun self-update branches are gone (ADR-0011 revision): the binary is the only distribution channel andupdate --selfalways performs a true self-update;npm:extension-package installs are unaffected. - CI 构建改为仅 tag 触发,分支推送不再自动构建。CI builds now trigger on tags only; branch pushes no longer build.
修复Fixes
- 主屏渲染器超宽行 panic 杀死运行中会话、满宽行宽度分歧换行漂移花屏——超宽行改截断继续渲染(诊断快照照写
rpi-crash.log并注明渲染已继续);emoji 字体回退按 2 列渲染的风险字符(✓ 类)计入悲观宽度,满宽风险行保守截断消除行漂移(ADR-0020 / D-086)。The main-screen renderer panicked on overwide lines, killing live sessions, and full-width lines drifted into garbled wraps — overwide lines are now truncated with rendering continuing (diagnostic snapshots still go torpi-crash.logwith a note); fallback-glyph risk characters (✓ and friends) rendered two cells wide are counted pessimistically, and risky full-width lines are conservatively truncated to kill the drift (ADR-0020 / D-086). - $$ / \[ 公式块内孤行 =/- 被解析成 setext 标题,公式在进入数学渲染前被切断损毁——修复为 parse 前 shadow source 等长改写(块内孤行运算符替换为等长
.字节喂解析器,渲染与 LaTeX 输入仍用原始源),修复后与上游逐字节对拍一致;关闭 renderLatex 开关时保持原行为(D-078 补记)。Lone=/-lines inside$$/\[blocks parsed as setext headings, corrupting formulas before math rendering — fixed by an equal-length shadow-source rewrite before parsing (the lone operator is replaced with.bytes for the parser while rendering and LaTeX input keep the original source); byte-for-byte parity with upstream after the fix, and the original behavior is kept when renderLatex is off (D-078 follow-up). - LaTeX 遇符号表不认识的命令时整块公式回退原文(单符号一票否决),
\blacksquare(QED 证明结束符,LLM 数学输出高频)即触发——按 KaTeX 清单盘点 270 个常用宏实测 78 项缺口后全量补全:62 条符号映射 + 带参宏与subarray环境的终端降级渲染;映射一律跟随 KaTeX,与上游 ground truth 对拍不破(T29 后续,D-087)。A single unknown LaTeX command made the whole formula fall back to raw text;\blacksquare(the QED marker, frequent in LLM math output) was enough to trigger it — audited 270 common macros against the KaTeX list, found 78 gaps, and filled them all: 62 symbol mappings plus terminal-degraded rendering for parameterized macros and thesubarrayenvironment; mappings follow KaTeX and parity against upstream ground truth holds (T29 follow-up, D-087). - 词级 diff 的 trim 边界以字节索引 +1 推进,token 末字符为多字节 UTF-8(中文/全角)时切片落在字符中间,edit 渲染含此类内容的 diff 即 panic 杀死渲染线程——改按末字符长度推进,补多字节回归用例,与 jsdiff 8.0.4 参考向量对拍保持一致。Word-diff trim advanced its boundary by one byte, so a multi-byte UTF-8 final character (CJK/full-width) put the slice mid-character and rendering an edited diff with such content panicked the render thread — now advances by the final character's length, with multibyte regression cases added and parity against jsdiff 8.0.4 reference vectors preserved.
- 多 native 插件共载失败(abi_stable 按类型 memoize 根因,改 per-path 加载)。Multiple native plugins failed to co-load (abi_stable memoizing by type at the root; now loaded per-path).
- SSE 行上限对齐 10MiB(8KiB 上限误吞大行响应)。The SSE line cap aligned to 10 MiB (the 8 KiB cap was dropping large-line responses).
- 全屏热切换输入失效、/settings 两处卡死。Input loss after fullscreen hot-switching and two /settings freezes.
- file_processor 测试命名竞态;bash 结果截断警告行按终端宽度换行。A file_processor test-name race; the bash result-truncation warning now wraps to terminal width.
官网(revpi.dev)Website (revpi.dev)
- Release 镜像改 Function 边缘代理回源(零存储),404/502
no-store;安装脚本托管站点根。Release mirrors moved to a Function edge proxy with origin fetch (zero storage), 404/502 servedno-store; installer scripts hosted at the site root. - 首页三平台安装面板;docs 快速开始重构;移动端导航与布局修复;favicon。Three-platform install panel on the landing page; quickstart restructured; mobile nav and layout fixes; favicon.
- docs 新增配置参考页:全部设置键、默认值与作用域,含请求超时与重试、隐私开关、环境变量。New configuration reference in docs: every settings key with defaults and scope, including request timeouts and retries, privacy switches, and environment variables.
0.1.0首个版本(2026-08-15)Initial release (2026-08-15)
- 终端 AI 编程助手的完整功能:多轮对话、内置工具、会话管理。The complete terminal AI coding assistant: multi-turn chat, built-in tools, session management.
- 交互 / 一次性问答 / RPC 三种运行模式。Three run modes: interactive, one-shot (
--print) and RPC. - 内置 38 家模型服务商。38 built-in model providers.
- 插件系统:WebAssembly 与原生动态库,支持热重载。Plugin system: WebAssembly and native dynamic libraries, with hot reload.
- 会话导出 HTML 与链接分享。Session export to HTML and link sharing.