Skip to content

5. 演进时间线

5.1 概要

维度 事实
仓库寿命 12 天(2025-08-09 → 2026-08-11)
总 commit 5,650(含 merges 5333 不含)
Release 数 v0.5.3–v0.84.1(≈ 100 个 minor 方向)
关键说明 用户取消"找 MVP"任务;本节只回答"它怎么走到现在"

历史全部来自:git log --unshallow + git log 解析。 数据采集于 2026-08-11(/tmp/pi-snap 受控副本,HEAD = 2a9b4eb)。

5.2 大版节点

Release 时间 SHA (first commit) 备注
v0.5.3 2025-08-09 3a9c3a2ed 仓库首发 commit 时的版本号——继承自单仓库前身
v0.5.4 2025-08-09 f579a3f11 修 lockstep versioning
v0.5.5 2025-08-09 db86195dd 添加 tool call metrics ⚒ counter
v0.5.6 / 0.5.7 2025-08-09 9fee30607 / 832b20b1 修全局安装与符号间距
v0.7.16 2025-11-17 (略) ⚠️ 间隔 ≈ 3 个月空白——从单包迁到 monorepo 后又长时间未发布
v0.10.0 2025-11-27 932f48b0e 进入"重新活跃"周期
v0.20.0 2025-12-12 a5268d2aa 大约半个月密集迭代 → v0.20
v0.30.0 2025-12-26 cb6310e15 自动 session migration
v0.40.0 2026-01-09 070ef9c77 持续小步快跑
v0.50.0 2026-01-26 453e104d3 进入第二季度
v0.60.0 2026-03-18 b0026866b 三个月跨越
v0.70.0 2026-04-24 612be54c2
v0.80.0 2026-06-23 f08e968c8 第一次出现 Armin Ronacher 作为 release commit 作者
v0.84.0 2026-08-06 a5f43bf8a
v0.84.1 2026-08-07 (release commit) 当前
main HEAD 2026-08-11 2a9b4ebc6 工作前沿

5.3 各包首次出现

第一次 commit 涉及它 备注
tui 2025-08-09T17:18:38 (a74c5da1) monorepo 创即刻存在
agent (旧 pi-agent) 2025-08-09T17:18:38 紧接着 cli 出现
telemetry 2025-08-10+ 几乎立刻
ai 2025-08-17T20:18:45 ⏱ 晚了 8 天才独立成包
protocol / client / server 较晚才出现 在 RPC 化阶段引入
session-backends 较晚才出现 用于 session 持久化
evals 较晚才出现 用于 benchmark

你可能想知道的:"pi-ai 是后建独立包的"——这意味着早期版本里 LLM 适配代码是埋在 pi-agent 内的。这是一个值得被记住的演化事实

5.4 关键事件线

Phase I:单包 → monorepo 整合(2025-08-09)

a74c5da1  2025-08-09 17:18  Mario Zechner
            "Initial monorepo setup with npm workspaces and dual TypeScript configuration"

这是历史第一笔——同时把所有 package 一次创建出来(前 5 个包)。

Phase II:早期 bug 修复(2025-08-09 当天)

c615f3f0  17:27  Fix npm publishing warnings and clean up package.json files
d304f377d 18:02  Fix pi-agent CLI execution issue when installed globally
42dc46a51 18:05  Fix process.cwd() error when running from deleted directory
3a9c3a2ed 19:26  v0.5.3 - Fix missing scripts directory in published package

典型过程:拆库 → 暴露问题 → 立即修 → 发版。

Phase III:reasoning token 支持(2025-08-10)

2025-08-10 00:32  agent: Add reasoning token support for OpenAI reasoning models
2025-08-10 01:46  feat(agent): Comprehensive reasoning token support across providers
2025-08-10 01:56  docs: Fix outdated Gemini thinking content notes
2025-08-10 02:13  docs: Improve reasoning support table clarity

叙事:OpenAI o1 系列的 reasoning_effort 在 PR 前两天刚被公开,Pi 团队 "一天之内" 把 reasoning token 普及到所有 provider。

Phase IV:TUI 差分渲染成熟(2025-08-10~11)

2025-08-10 22:33  tui-double-buffer: Implement smart differential rendering with terminal abstraction
2025-08-11 00:57  tui: Fix differential rendering to preserve scrollback buffer
2025-08-11 01:13  tui: Implement surgical differential rendering for minimal redraws
2025-08-11 01:34  fix(tui): Trigger initial render when start() is called
2025-08-11 02:31  fix(tui): Container change detection for proper differential rendering
2025-08-11 14:17  fix(tui): Fix garbled output when content exceeds viewport

叙事:他们重写了 TUI 渲染核心——从"全量重绘"变成"外科手术式最小重绘",保留 scrollback buffer。这是个大且完整的重构

Phase V:3 个月停顿(2025-08 ~ 2025-11)

仓库仍然在 commit(agent / tool / fix / refactor 等),但 没有 release commit。这暗示一个"持续打磨、没有用户可用 release"的状态。 这种模式在 OSS 早期是常见的——是开发者内部用,等到某个里程碑才公开发布。

Phase VI:再次活跃(2025-11-17+)

2025-11-17 14:12  Release v0.7.16  ← 第一个新 release
2025-11-21 03:12  Release v0.8.0
2025-11-21 21:58  Release v0.9.0
2025-11-27 01:33  Release v0.10.0
...

从此进入了"每日多个 release"的状态

Phase VII:arm 加入 release(2026-06+)

2026-06-23 19:30  Armin Ronacher  Release v0.80.0
2026-08-06 12:32  Armin Ronacher  Release v0.84.0

叙事:Armin Ronacher(著名 Python / Rust / Flask 贡献者)开始接管 release。Mario Zechner 仍是主开发者,但 release 操作转移到 Armin。

Phase VIII:最近 2 周——agent 文档大重构(2026-08)

2026-08-11 13:21  Mario Zechner  docs(agent): introduce the three stores before the worked examples
2026-08-11 13:27  ... restructure build order into parallel storage and runtime tracks
2026-08-11 13:35  ... fix broken code fence in crash example
2026-08-11 13:49  ... resolve providers and tools at dispatch, drop lease machinery
2026-08-11 13:50  ... drop historical placement-payload rationale
2026-08-11 13:51  ... clarify register references vs immutable snapshots
2026-08-11 13:53  ... re-mint legacy ids at import, drop redundant register paragraph
2026-08-11 13:55  ... tighten identity section
2026-08-11 14:01  ... reword cancellation triage note
2026-08-11 14:03  ... drop historical changes appendix
2026-08-11 14:11  ... replace historical rationale with direct statements
2026-08-11 14:25  ... consolidate harness spec into harness.md
2026-08-11 14:32  ... one sqlite file per session, search becomes external
2026-08-11 14:43  ... add seq-ranged usage ledger scan
2026-08-11 14:53  ... specify optional pull-based search service
2026-08-11 14:58  ... make search a standalone service, open metadata-filter question
2026-08-11 15:21  ... add table of contents
2026-08-11 15:29  ... consolidate harness spec into harness.md
2026-08-11 14:57  Michael Renner  docs: document terminal-specific fullscreen mouse behavior (#7965)

叙事:8月11日一整天,Mario 把 docs(agent) 大规模重构——"one sqlite file per session, search becomes external"、"drop historical rationale"、"drop lease machinery",这是一个写文档的过程,但其中暗含架构变更(如 sqlite 单文件化、search 外部化)注意:这些 commit 的真实影响我目前未做深入 diff 阅读。

5.5 贡献者分布

贡献者 commit 数 角色判定
Mario Zechner 3,292 主创 + 主开发者
Armin Ronacher 515 release 主导(v0.80 起)
github-actions[bot] 172 CI 自动化
Christian Klotz 111 contributor
David Brailovsky 107 contributor
Cristina Poncela Cubeiro 107 contributor
Vegard Stikbakke 95 contributor
Helmut Januschka 66 contributor
Aliou Diallo 56 contributor
Sviatoslav Abakumov 44 contributor

5.6 演进总结

  • 持续小步快跑:v0.10 之后大致 0.5–2 天一个 release
  • 稳定版本策略:所有子包 lockstep 升号(scripts/sync-versions.js
  • 无 git tag 范式:所有 version 通过 GitHub Releases;本地 git tag 列表为空
  • TUI 大重构:8/10–11 完成外科手术式 differential rendering
  • agent-core → pi-ai 拆分:第 8 天后独立 ai 包
  • Armin 加入 release:v0.80 起 release 由 Armin Ronacher 提交
  • ⚠️ 8 月 11 日 agent 文档大重构:含潜在架构改动,未核实
  • ⚠️ 3 个月空白(2025-08 → 2025-11):仓库活跃、无 release,模式待解释

5.7 未完成的演进问题(建议作为 Phase 9 deep dive 后续)

  1. v0.30 的 "Add automatic session migration for v0.30.0 bug" 实际解决了什么?
  2. v0.40 → v0.50 → v0.60 → v0.70 的每个 minor 之间的"破坏性变更"具体是什么?
  3. 最近的 docs(agent) 重构实际涉及哪些代码变更?是否引入新模块?
  4. "scoped transport" 何时被引入、与什么 GitHub Issue 相关?
  5. 是不是从 Pi 进入 armature 化?v0.70–0.80 之间是否发生过 RPC 优先 vs Local 优先的架构决策?