Skip to content

Releases: openpi-dev/openpi

OpenPI 0.5.0

Choose a tag to compare

@tt-a1i tt-a1i released this 02 Sep 01:12
Immutable release. Only release title and notes can be modified.
c5f93c6

What's Changed

  • fix(plan): route diff inspection through safe git tools by @CuSO41108 in #91
  • fix(workflow): fall back on malformed render details by @tt-a1i in #102
  • fix(tui): mute activity truncation ellipses by @tt-a1i in #103
  • fix(workflows): freeze settled launch cards by @tt-a1i in #104
  • feat(tui): unify child transcript rendering by @tt-a1i in #106
  • fix(tui): open workflow children as full pages by @tt-a1i in #113
  • fix(tui): align child transcript messages with Pi by @tt-a1i in #120
  • fix(ui): use Pi-native child tool renderers by @tt-a1i in #122
  • fix(ui): make child session pages read-only by @tt-a1i in #123
  • fix(capabilities): recognize leading Chinese delegation by @tt-a1i in #124
  • fix(workflows): fail closed on unknown persisted states by @tt-a1i in #125
  • docs(readme): refresh OpenPI launch hero by @tt-a1i in #133
  • docs(readme): explain the OpenPI launch promises by @tt-a1i in #135
  • fix(workflows): preserve pending result deliveries by @tt-a1i in #134
  • fix(setup): keep post-edit explicitly opt-in by @tt-a1i in #137
  • fix(workflows): bound structured result artifacts by @tt-a1i in #138
  • docs(readme): link the launch site by @tt-a1i in #142
  • fix(workflows): bound handoff metadata budgets by @testikun in #143
  • fix(workflows): reject missing assistant responses by @somewan820 in #146
  • refactor: isolate workspace cleanup guard by @sunsunsun-java in #145
  • refactor(setup): keep footerLines as the canonical footer state by @sunsunsun-java in #144
  • fix(workflows): reject lossy oversized args by @testikun in #200
  • refactor(setup): remove pi-intercom ownership by @sunsunsun-java in #148
  • fix(workflows): make agent startup abortable by @CuSO41108 in #147
  • refactor: 删除发布代码中的 test-only compatibility facades by @sunsunsun-java in #141
  • 清理冗余的 extension 级 TypeScript 配置 by @sunsunsun-java in #140
  • refactor(test): move suites into top-level tests directory by @somewan820 in #151
  • fix(workspace-cleanup-guard): block opaque rm targets by @sowen1023 in #201
  • test(subagents): bound manager status waits by @duanyuanzhe in #204
  • fix(sessions): bound preview loading and cache by @Sun-GLiang in #206
  • fix(workflows): bound stalled provider turns by @sowen1023 in #205
  • perf(sessions): bound Git stats to visible rows by @tt-a1i in #214
  • docs: add pull request template by @tt-a1i in #215
  • perf(subagents): stop retained child Git polling by @tt-a1i in #216
  • perf(workflows): incrementally project child progress by @tt-a1i in #217
  • fix(setup): reject oversized post-edit commands by @duanyuanzhe in #203
  • fix(setup): make episode closure observable by @tt-a1i in #209
  • ci: add npm release workflow by @junwu168 in #227
  • fix(workflows): make terminal delivery recoverable by @somewan820 in #208
  • docs: document linear git history by @somewan820 in #221
  • fix(background-terminals): harden output and process lifecycle by @somewan820 in #149
  • fix(file-search): define BinaryDownloadError and consolidate Effect layer provides (#170) by @hasak21 in #230
  • chore: add release managers as workflow owners by @tt-a1i in #273
  • chore: migrate canonical repository identity by @tt-a1i in #275
  • ci: pin workflow actions by commit SHA by @tt-a1i in #276
  • fix(workflows): persist late worktree cleanup provenance by @onychen in #237
  • feat(ci): notify Feishu for new pull requests by @junwu168 in #270
  • docs(workflows): clarify acceptance requiredEvidence type, limits, and usage (#207) by @hasak21 in #223
  • fix(workflows): reject failed acceptance during replay by @REI-330 in #225
  • perf(tui): index transcript tool pairing by @liwen-aaa in #232
  • fix(subagents): surface worktree cleanup failures by @627150795 in #258
  • perf(model-info): incrementally aggregate session metrics by @Sun-GLiang in #210
  • fix(workflows): bound settled run retention by @627150795 in #233
  • fix(context-pivot): clarify native no-history failures by @627150795 in #235
  • feat(contract): mechanize config provenance checks by @627150795 in #242
  • ci: centralize shared GitHub automation by @junwu168 in #279
  • fix(tui): stop settled strip redraw timers by @6iKUN6 in #220
  • ci: label pull requests by ownership area by @junwu168 in #289
  • test(workflows): cover canonical agent result handoffs by @yxr-2025 in #286
  • docs: adopt knowledge and evidence governance by @tt-a1i in #290
  • fix(setup): query Windows process start times by @qwertvgty in #218
  • fix(workflows): simplify completed workflow UI without losing delivery evidence by @yxr-2025 in #283
  • feat(tui): unify child tool activity views by @6iKUN6 in #292
  • fix(workflows): bound settled run retention by @smf-h in #239
  • fix(subagents): separate result display projection by @627150795 in #240
  • perf(workflows): skip binary diff for ignored repositories by @samsen3 in #298
  • docs(workflows): clarify evidence-free acceptance criteria by @627150795 in #229
  • fix(cron): reject oversized prompts by @SSK988I in #297
  • fix(issue-69): repair package docs and CRLF folding by @627150795 in #231
  • feat: 空输入时用 Ctrl+C 清除上下文 by @somewan820 in #281
  • perf: skip parent-only workflow extensions in child sessions by @Sun-GLiang in #224
  • fix(workflows): deprecate background launch alias by @sunsunsun-java in #139
  • fix(suggestions): enforce safe ghost IME reservation by @smf-h in #228
  • perf(workflows): append replay journal incrementally by @testikun in #318
  • test(skills): preserve native Pi loading and session lifecycle by @sowen1023 in #322
  • fix(repo): enforce LF checkouts across platforms by @yxr-2025 in #302
  • fix(subagents): harden Pi adapter lifecycle by @CuSO41108 in #219
  • fix(workflows): enforce sandbox execution timeout across async continuations (#285) by @hasak21 in #287
  • fix(workflows): enforce text projection line bounds by @JuiXiang in #331
  • feat(web): introduce initial external Web workbench framework by @somewan820 in #326
  • feat(web): add Pi-native /web launcher by @tt-a1i in #337
  • chore(release): 0.5.0 by @tt-a1i in #339

New Contributors

Read more

OpenPI 0.4.0

Choose a tag to compare

@tt-a1i tt-a1i released this 24 Aug 03:23
3b79362

What's Changed

  • feat: polish OpenPI UI and stabilize delegate tools by @tt-a1i in #52
  • feat(ui): dock pickers above the input and unify subagent status chrome by @tt-a1i in #53
  • feat(ui): quieter tool lines and relative paths in subagent transcripts by @tt-a1i in #54
  • feat(ui): spin the running state and quiet the spawn marker by @tt-a1i in #55
  • feat(ui): drop cost from the default footer layout by @tt-a1i in #56
  • feat(ui): breathe around docked pickers and declutter status glyphs by @tt-a1i in #57
  • feat(ui): small unicode icons for footer metrics by @tt-a1i in #58
  • feat(ui): aggregate the subagent strip when several runs are active by @tt-a1i in #59
  • fix: review batch — docs intent words, subagent watchdog, bin cache, workflow reader unification by @tt-a1i in #60
  • docs: define local development runtime workflow by @tt-a1i in #65
  • feat(user-input-fold): 超长用户输入在 transcript 里折叠显示 by @tt-a1i in #42
  • feat(git-read): read-only git_show/git_diff/git_log as child-safe tools by @tt-a1i in #66
  • feat(ui): 紧凑语义工具活动行 by @tt-a1i in #68
  • feat(ui): spinner and check glyphs for workflow status chrome by @tt-a1i in #77
  • ci: deduplicate pull request runs by @tt-a1i in #78
  • feat(ui): color edit stats and spin the pending activity row by @tt-a1i in #79
  • feat(ui): launch marker for the subagent spawn card by @tt-a1i in #80
  • feat(ui): drop the live tool name from subagent picker rows by @tt-a1i in #81
  • feat(input): highlight capability authorization keywords by @tt-a1i in #83
  • perf(subagents): bound the spawn tool schema by @tt-a1i in #85
  • fix(subagents): preserve short ids across reloads by @tt-a1i in #86
  • fix(ui): mute completed tool activity by @tt-a1i in #88
  • fix(subagents): preserve recoverable long results by @tt-a1i in #89
  • feat(workflows): release parent turns and harden large fan-out by @tt-a1i in #92
  • fix(workflows): expose call capacity in sandbox usage by @tt-a1i in #94
  • chore(release): 0.4.0 by @tt-a1i in #95
  • feat(ui): refine the default footer hierarchy by @tt-a1i in #98

Full Changelog: v0.3.1...v0.4.0

OpenPI 0.3.1

Choose a tag to compare

@tt-a1i tt-a1i released this 21 Aug 18:25
34f1e52

Highlights

  • Fixed openpi_load_tools JSON Schema compatibility with strict providers such as Kimi K3. Capability array items now explicitly declare type: "string".
  • Improved subagent result delivery: results completed while the parent is busy are delivered at the next idle boundary.

Verification

  • 746 Node tests and 29 Vitest tests passed.
  • Node.js 22 and 24 CI passed.
  • Kimi K3 completed a real request with OpenPI tools enabled.

Update with:

pi update npm:@tt-a1i/openpi

OpenPI 0.3.0

Choose a tag to compare

@tt-a1i tt-a1i released this 20 Aug 16:42

What's Changed

  • fix: batch Resume UI layer installation by @tt-a1i in #25
  • feat(footer): default to a one-line plain footer with a lighter layout by @tt-a1i in #26
  • fix: keep deferred subagent results in timeline order by @tt-a1i in #30
  • fix(subagents): release interactive turns while children run by @tt-a1i in #33
  • Plan Mode 三项改进:指示器内联、必定可退出、bash 按副作用判定 by @tt-a1i in #31
  • docs: define Pi-first agent contract by @tt-a1i in #35
  • fix(subagents): keep compact results status-only by @tt-a1i in #38
  • 子代理 UI 打磨:列表贴合内容、详情页去掉横线带、命令执行成块 by @tt-a1i in #36

Full Changelog: v0.2.0...v0.3.0

OpenPI 0.2.0

Choose a tag to compare

@tt-a1i tt-a1i released this 18 Aug 02:49
780c00b

OpenPI 0.2.0 makes ordinary sessions lighter and more Pi-native while keeping advanced capabilities available on demand.

Highlights

  • Zero-resident OpenPI tool surface by default. explicit discovery loads capability groups only after clear user intent.
  • Opt-in adaptive discovery. Users can enable a single compact openpi_load_tools gateway through /openpi-setup.
  • Pi-native execution by default. Ordinary runs retain Pi history, compaction, Bash output, provider loop, and explicit timeout behavior.
  • Workspace safety retained. Pre-existing paths remain protected from unapproved deletion while session-created scratch can be cleaned up normally.
  • Stable dynamic tool ownership. Setup, Plan, Goal, Tasks, Background, Subagent, Workflow, Search, and Context surfaces reconcile without hiding another extension's tools.
  • Setup lifecycle hardened. One successful /openpi-setup apply completes the episode; a later change starts a new episode.
  • Workflow guidance is progressively disclosed instead of remaining in every ordinary system prompt.

Install or upgrade

pi install npm:@tt-a1i/openpi

Then restart Pi or run /reload.

Validation

  • Node.js 22.19 and 24 CI passed
  • 713 Node tests and 29 Vitest tests passed
  • Packed-install Pi discovery smoke passed
  • npm tarball excludes tests, benchmark artifacts, research reports, and local caches

Full change review: #23