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
- @CuSO41108 made their first contribution in #91
- @testikun made their first contribution in #143
- @somewan820 made their first contribution in #146
- @sunsunsun-java made their first contribution in #145
- @sowen1023 made their first contribution in #201
- @duanyuanzhe made their first contribution in #204
- @Sun-GLiang made their first contribution in #206
- @junwu168 made their first contribution in #227
- @hasak21 made their first contribution in #230
- @onychen made their first contribution in #237
- @REI-330 made their first contribution in #225
- @liwen-aaa made their first contribution in #232
- @627150795 made their first contribution in #258
- @6iKUN6 made their first contribution in #220
- @yxr-2025 made their first contribution in #286
- @qwertvgty made their first contribution in #218
- @smf-h made their first contribution in #239
- @samsen3 made their first contribution in #298
- @SSK988I made their first contribution in #297
- @JuiXiang made their first contribution in #331
Full Changelog: v0.4.0...v0.5.0