@piagent/platform 1.48.4 → 1.48.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (61) hide show
  1. package/CHANGELOG.md +9 -0
  2. package/docs/command-reference-vietnamese.md +2 -2
  3. package/docs/distribution-standard.md +6 -6
  4. package/docs/operator-manual-vietnamese.md +7 -7
  5. package/docs/publishing-for-teams.md +1 -0
  6. package/docs/release-install-policy.md +2 -2
  7. package/docs/team-onboarding.md +2 -2
  8. package/docs-site/architecture.html +1 -1
  9. package/docs-site/assets/search-en.json +1 -1
  10. package/docs-site/assets/search-vi.json +1 -1
  11. package/docs-site/benchmark.html +1 -1
  12. package/docs-site/commands.html +1 -1
  13. package/docs-site/context-engine.html +1 -1
  14. package/docs-site/ecosystem.html +1 -1
  15. package/docs-site/en/architecture.html +1 -1
  16. package/docs-site/en/benchmark.html +1 -1
  17. package/docs-site/en/commands.html +1 -1
  18. package/docs-site/en/context-engine.html +1 -1
  19. package/docs-site/en/ecosystem.html +1 -1
  20. package/docs-site/en/index.html +9 -9
  21. package/docs-site/en/mcp-approval.html +1 -1
  22. package/docs-site/en/mcp-auth.html +1 -1
  23. package/docs-site/en/mcp-servers.html +1 -1
  24. package/docs-site/en/mcp.html +1 -1
  25. package/docs-site/en/permissions.html +1 -1
  26. package/docs-site/en/profiles.html +1 -1
  27. package/docs-site/en/quickstart.html +1 -1
  28. package/docs-site/en/runtime.html +1 -1
  29. package/docs-site/en/scope.html +1 -1
  30. package/docs-site/en/security.html +1 -1
  31. package/docs-site/en/team.html +1 -1
  32. package/docs-site/en/update.html +3 -3
  33. package/docs-site/en/whats-new.html +25 -15
  34. package/docs-site/en/windows.html +1 -1
  35. package/docs-site/en/workflows.html +1 -1
  36. package/docs-site/index.html +9 -9
  37. package/docs-site/mcp-approval.html +1 -1
  38. package/docs-site/mcp-auth.html +1 -1
  39. package/docs-site/mcp-servers.html +1 -1
  40. package/docs-site/mcp.html +1 -1
  41. package/docs-site/permissions.html +1 -1
  42. package/docs-site/profiles.html +1 -1
  43. package/docs-site/quickstart.html +1 -1
  44. package/docs-site/releases.json +26 -0
  45. package/docs-site/runtime.html +1 -1
  46. package/docs-site/scope.html +1 -1
  47. package/docs-site/security.html +1 -1
  48. package/docs-site/team.html +1 -1
  49. package/docs-site/update.html +3 -3
  50. package/docs-site/whats-new.html +25 -15
  51. package/docs-site/windows.html +1 -1
  52. package/docs-site/workflows.html +1 -1
  53. package/evals/private-holdout-v1/public-exposure.v2.json +2 -2
  54. package/package.json +1 -1
  55. package/packages/piagent-core/managed/review-snapshot-request.mjs +3 -1
  56. package/packages/piagent-core/managed/runtime-snapshot.mjs +63 -0
  57. package/packages/piagent-core/managed/terminal-boundary.mjs +4 -2
  58. package/packages/piagent-core/managed/tool-boundary.mjs +7 -7
  59. package/packages/piagent-core/managed/ts-diagnostics.mjs +1 -1
  60. package/packages/piagent-core/managed/workflow.mjs +2 -1
  61. package/packages/piagent-core/package.json +1 -1
@@ -37,7 +37,7 @@
37
37
  <span class="brand-mark"><img src="/assets/piagent-logo.svg" alt="" width="28" height="28" /></span>
38
38
  <span class="brand-name"><b>Piagent</b> <span>Platform</span></span>
39
39
  </a>
40
- <a class="version-badge" href="/en/whats-new" data-docs-version="v1.48.4" title="v1.48.4 docs · EN"><span class="dot"></span>v1.48.4</a>
40
+ <a class="version-badge" href="/en/whats-new" data-docs-version="v1.48.5" title="v1.48.5 docs · EN"><span class="dot"></span>v1.48.5</a>
41
41
  <nav class="top-nav" aria-label="Documentation">
42
42
  <a href="/en/quickstart">Docs</a>
43
43
  <a href="/en/whats-new">Changelog</a>
@@ -37,7 +37,7 @@
37
37
  <span class="brand-mark"><img src="/assets/piagent-logo.svg" alt="" width="28" height="28" /></span>
38
38
  <span class="brand-name"><b>Piagent</b> <span>Platform</span></span>
39
39
  </a>
40
- <a class="version-badge" href="/en/whats-new" data-docs-version="v1.48.4" title="v1.48.4 docs · EN"><span class="dot"></span>v1.48.4</a>
40
+ <a class="version-badge" href="/en/whats-new" data-docs-version="v1.48.5" title="v1.48.5 docs · EN"><span class="dot"></span>v1.48.5</a>
41
41
  <nav class="top-nav" aria-label="Documentation">
42
42
  <a href="/en/quickstart">Docs</a>
43
43
  <a href="/en/whats-new">Changelog</a>
@@ -37,7 +37,7 @@
37
37
  <span class="brand-mark"><img src="/assets/piagent-logo.svg" alt="" width="28" height="28" /></span>
38
38
  <span class="brand-name"><b>Piagent</b> <span>Platform</span></span>
39
39
  </a>
40
- <a class="version-badge" href="/en/whats-new" data-docs-version="v1.48.4" title="v1.48.4 docs · EN"><span class="dot"></span>v1.48.4</a>
40
+ <a class="version-badge" href="/en/whats-new" data-docs-version="v1.48.5" title="v1.48.5 docs · EN"><span class="dot"></span>v1.48.5</a>
41
41
  <nav class="top-nav" aria-label="Documentation">
42
42
  <a href="/en/quickstart">Docs</a>
43
43
  <a href="/en/whats-new">Changelog</a>
@@ -37,7 +37,7 @@
37
37
  <span class="brand-mark"><img src="/assets/piagent-logo.svg" alt="" width="28" height="28" /></span>
38
38
  <span class="brand-name"><b>Piagent</b> <span>Platform</span></span>
39
39
  </a>
40
- <a class="version-badge" href="/en/whats-new" data-docs-version="v1.48.4" title="v1.48.4 docs · EN"><span class="dot"></span>v1.48.4</a>
40
+ <a class="version-badge" href="/en/whats-new" data-docs-version="v1.48.5" title="v1.48.5 docs · EN"><span class="dot"></span>v1.48.5</a>
41
41
  <nav class="top-nav" aria-label="Documentation">
42
42
  <a href="/en/quickstart" aria-current="page">Docs</a>
43
43
  <a href="/en/whats-new">Changelog</a>
@@ -37,7 +37,7 @@
37
37
  <span class="brand-mark"><img src="/assets/piagent-logo.svg" alt="" width="28" height="28" /></span>
38
38
  <span class="brand-name"><b>Piagent</b> <span>Platform</span></span>
39
39
  </a>
40
- <a class="version-badge" href="/en/whats-new" data-docs-version="v1.48.4" title="v1.48.4 docs · EN"><span class="dot"></span>v1.48.4</a>
40
+ <a class="version-badge" href="/en/whats-new" data-docs-version="v1.48.5" title="v1.48.5 docs · EN"><span class="dot"></span>v1.48.5</a>
41
41
  <nav class="top-nav" aria-label="Documentation">
42
42
  <a href="/en/quickstart">Docs</a>
43
43
  <a href="/en/whats-new">Changelog</a>
@@ -37,7 +37,7 @@
37
37
  <span class="brand-mark"><img src="/assets/piagent-logo.svg" alt="" width="28" height="28" /></span>
38
38
  <span class="brand-name"><b>Piagent</b> <span>Platform</span></span>
39
39
  </a>
40
- <a class="version-badge" href="/en/whats-new" data-docs-version="v1.48.4" title="v1.48.4 docs · EN"><span class="dot"></span>v1.48.4</a>
40
+ <a class="version-badge" href="/en/whats-new" data-docs-version="v1.48.5" title="v1.48.5 docs · EN"><span class="dot"></span>v1.48.5</a>
41
41
  <nav class="top-nav" aria-label="Documentation">
42
42
  <a href="/en/quickstart">Docs</a>
43
43
  <a href="/en/whats-new">Changelog</a>
@@ -37,7 +37,7 @@
37
37
  <span class="brand-mark"><img src="/assets/piagent-logo.svg" alt="" width="28" height="28" /></span>
38
38
  <span class="brand-name"><b>Piagent</b> <span>Platform</span></span>
39
39
  </a>
40
- <a class="version-badge" href="/en/whats-new" data-docs-version="v1.48.4" title="v1.48.4 docs · EN"><span class="dot"></span>v1.48.4</a>
40
+ <a class="version-badge" href="/en/whats-new" data-docs-version="v1.48.5" title="v1.48.5 docs · EN"><span class="dot"></span>v1.48.5</a>
41
41
  <nav class="top-nav" aria-label="Documentation">
42
42
  <a href="/en/quickstart">Docs</a>
43
43
  <a href="/en/whats-new">Changelog</a>
@@ -37,7 +37,7 @@
37
37
  <span class="brand-mark"><img src="/assets/piagent-logo.svg" alt="" width="28" height="28" /></span>
38
38
  <span class="brand-name"><b>Piagent</b> <span>Platform</span></span>
39
39
  </a>
40
- <a class="version-badge" href="/en/whats-new" data-docs-version="v1.48.4" title="v1.48.4 docs · EN"><span class="dot"></span>v1.48.4</a>
40
+ <a class="version-badge" href="/en/whats-new" data-docs-version="v1.48.5" title="v1.48.5 docs · EN"><span class="dot"></span>v1.48.5</a>
41
41
  <nav class="top-nav" aria-label="Documentation">
42
42
  <a href="/en/quickstart">Docs</a>
43
43
  <a href="/en/whats-new">Changelog</a>
@@ -37,7 +37,7 @@
37
37
  <span class="brand-mark"><img src="/assets/piagent-logo.svg" alt="" width="28" height="28" /></span>
38
38
  <span class="brand-name"><b>Piagent</b> <span>Platform</span></span>
39
39
  </a>
40
- <a class="version-badge" href="/en/whats-new" data-docs-version="v1.48.4" title="v1.48.4 docs · EN"><span class="dot"></span>v1.48.4</a>
40
+ <a class="version-badge" href="/en/whats-new" data-docs-version="v1.48.5" title="v1.48.5 docs · EN"><span class="dot"></span>v1.48.5</a>
41
41
  <nav class="top-nav" aria-label="Documentation">
42
42
  <a href="/en/quickstart">Docs</a>
43
43
  <a href="/en/whats-new">Changelog</a>
@@ -153,9 +153,9 @@
153
153
  <h2 id="pin-for-a-team">Pin one release for a team</h2>
154
154
  <p>For a team rollout, install the exact Pi host and platform release, then run the installer in stable mode. The <code>--dry-run</code> step prints what would change.</p>
155
155
  <div class="command-card">
156
- <header><span>Pinned install</span><button class="clip-btn" data-clip="npm install -g --ignore-scripts @earendil-works/pi-coding-agent@1.3.0&#10;npm install -g --ignore-scripts @piagent/platform@1.48.4&#10;piagent-install --stable --dry-run&#10;piagent-install --stable">Copy</button></header>
156
+ <header><span>Pinned install</span><button class="clip-btn" data-clip="npm install -g --ignore-scripts @earendil-works/pi-coding-agent@1.3.0&#10;npm install -g --ignore-scripts @piagent/platform@1.48.5&#10;piagent-install --stable --dry-run&#10;piagent-install --stable">Copy</button></header>
157
157
  <pre><code>npm install -g --ignore-scripts @earendil-works/pi-coding-agent@1.3.0
158
- npm install -g --ignore-scripts @piagent/platform@1.48.4
158
+ npm install -g --ignore-scripts @piagent/platform@1.48.5
159
159
  piagent-install --stable --dry-run
160
160
  piagent-install --stable</code></pre>
161
161
  </div>
@@ -37,7 +37,7 @@
37
37
  <span class="brand-mark"><img src="/assets/piagent-logo.svg" alt="" width="28" height="28" /></span>
38
38
  <span class="brand-name"><b>Piagent</b> <span>Platform</span></span>
39
39
  </a>
40
- <a class="version-badge" href="/en/whats-new" data-docs-version="v1.48.4" title="v1.48.4 docs · EN"><span class="dot"></span>v1.48.4</a>
40
+ <a class="version-badge" href="/en/whats-new" data-docs-version="v1.48.5" title="v1.48.5 docs · EN"><span class="dot"></span>v1.48.5</a>
41
41
  <nav class="top-nav" aria-label="Documentation">
42
42
  <a href="/en/quickstart">Docs</a>
43
43
  <a href="/en/whats-new" aria-current="page">Changelog</a>
@@ -108,7 +108,18 @@
108
108
  <div class="release-filter" role="toolbar" aria-label="Filter by kind of change"><button type="button" data-filter-kind="all" aria-pressed="true">All</button><button type="button" data-filter-kind="new" aria-pressed="false">New</button><button type="button" data-filter-kind="improved" aria-pressed="false">Improved</button><button type="button" data-filter-kind="fixed" aria-pressed="false">Fixed</button><button type="button" data-filter-kind="security" aria-pressed="false">Security</button></div>
109
109
  <section class="section releases" data-releases>
110
110
  <h2 id="latest" class="sr-only">Latest</h2>
111
- <article class="release latest" id="v1-48-4" data-release>
111
+ <article class="release latest" id="v1-48-5" data-release>
112
+ <div class="release-meta"><a class="release-version" href="#v1-48-5">v1.48.5</a><time class="release-date" datetime="2026-10-31">Oct 31, 2026</time></div>
113
+ <div class="release-body">
114
+ <h3 data-toc-skip id="v1-48-5-title">A running task keeps its tools when Piagent is updated</h3>
115
+ <p>Updating Piagent while a company task runs no longer stops its tools: the task finishes on the release it started with, then the Terminal loads the new one.</p>
116
+ <ul class="release-items">
117
+ <li data-kind="fixed"><span class="kind kind-fixed">Fixed</span><span>A company task running across piagent-update no longer fails every tool with managed-runtime-changed: its sandbox runs a private, still verified copy of the release it started with.</span></li>
118
+ <li data-kind="fixed"><span class="kind kind-fixed">Fixed</span><span>A turn whose code could not be read is no longer reported as code changed unless a real edit happened.</span></li>
119
+ </ul>
120
+ </div>
121
+ </article>
122
+ <article class="release" id="v1-48-4" data-release>
112
123
  <div class="release-meta"><a class="release-version" href="#v1-48-4">v1.48.4</a><time class="release-date" datetime="2026-10-30">Oct 30, 2026</time></div>
113
124
  <div class="release-body">
114
125
  <h3 data-toc-skip id="v1-48-4-title">/reload keeps a company Terminal working; a new release never interrupts your next message</h3>
@@ -410,24 +421,23 @@
410
421
  </ul>
411
422
  </div>
412
423
  </article>
413
- <article class="release" id="v1-43-3" data-release>
414
- <div class="release-meta"><a class="release-version" href="#v1-43-3">v1.43.3</a><time class="release-date" datetime="2026-10-26">Oct 26, 2026</time></div>
415
- <div class="release-body">
416
- <h3 data-toc-skip id="v1-43-3-title">Your workflow, with adaptive backend and frontend support <span class="tag">not published</span></h3>
417
- <p>Tagged but not published: Linux WebUI history checks exposed scroll and observer races. Superseded by 1.43.4.</p>
418
- <ul class="release-items">
419
- <li data-kind="new"><span class="kind kind-new">New</span><span>Bounded discovery maps frontend/backend packages and repositories inside the conversation folder and suggests relevant local checks, refreshed each task.</span></li>
420
- <li data-kind="new"><span class="kind kind-new">New</span><span>Optional workflow context remembers task-specific canonical requirement, plan and task references across reopening, shares them read-only with helpers, and supports switching or clearing.</span></li>
421
- <li data-kind="improved"><span class="kind kind-improved">Improved</span><span>Lifecycle guidance adapts to the chosen workflow and stopping point, without mandatory spec files or automatic release gates. Skills never grant access or waive verification, review or deployment approval.</span></li>
422
- </ul>
423
- </div>
424
- </article>
425
424
  </section>
426
425
  <section class="section archive">
427
426
  <h2 id="archive">Earlier releases</h2>
428
427
  <p class="section-lead">Older releases, grouped by month. Open a month to see every change.</p>
429
428
  <details class="release-archive">
430
- <summary><span>October 2026</span><span class="archive-count">67</span></summary>
429
+ <summary><span>October 2026</span><span class="archive-count">68</span></summary>
430
+ <div class="archive-row" id="v1-43-3">
431
+ <div class="archive-head"><a class="release-version" href="#v1-43-3">v1.43.3</a> <span class="release-date">Oct 26, 2026</span></div>
432
+ <div class="archive-body">
433
+ <p><strong>Your workflow, with adaptive backend and frontend support</strong> <span class="tag">not published</span> — Tagged but not published: Linux WebUI history checks exposed scroll and observer races. Superseded by 1.43.4.</p>
434
+ <ul class="release-items">
435
+ <li data-kind="new"><span class="kind kind-new">New</span><span>Bounded discovery maps frontend/backend packages and repositories inside the conversation folder and suggests relevant local checks, refreshed each task.</span></li>
436
+ <li data-kind="new"><span class="kind kind-new">New</span><span>Optional workflow context remembers task-specific canonical requirement, plan and task references across reopening, shares them read-only with helpers, and supports switching or clearing.</span></li>
437
+ <li data-kind="improved"><span class="kind kind-improved">Improved</span><span>Lifecycle guidance adapts to the chosen workflow and stopping point, without mandatory spec files or automatic release gates. Skills never grant access or waive verification, review or deployment approval.</span></li>
438
+ </ul>
439
+ </div>
440
+ </div>
431
441
  <div class="archive-row" id="v1-43-2">
432
442
  <div class="archive-head"><a class="release-version" href="#v1-43-2">v1.43.2</a> <span class="release-date">Oct 26, 2026</span></div>
433
443
  <div class="archive-body">
@@ -37,7 +37,7 @@
37
37
  <span class="brand-mark"><img src="/assets/piagent-logo.svg" alt="" width="28" height="28" /></span>
38
38
  <span class="brand-name"><b>Piagent</b> <span>Platform</span></span>
39
39
  </a>
40
- <a class="version-badge" href="/en/whats-new" data-docs-version="v1.48.4" title="v1.48.4 docs · EN"><span class="dot"></span>v1.48.4</a>
40
+ <a class="version-badge" href="/en/whats-new" data-docs-version="v1.48.5" title="v1.48.5 docs · EN"><span class="dot"></span>v1.48.5</a>
41
41
  <nav class="top-nav" aria-label="Documentation">
42
42
  <a href="/en/quickstart">Docs</a>
43
43
  <a href="/en/whats-new">Changelog</a>
@@ -37,7 +37,7 @@
37
37
  <span class="brand-mark"><img src="/assets/piagent-logo.svg" alt="" width="28" height="28" /></span>
38
38
  <span class="brand-name"><b>Piagent</b> <span>Platform</span></span>
39
39
  </a>
40
- <a class="version-badge" href="/en/whats-new" data-docs-version="v1.48.4" title="v1.48.4 docs · EN"><span class="dot"></span>v1.48.4</a>
40
+ <a class="version-badge" href="/en/whats-new" data-docs-version="v1.48.5" title="v1.48.5 docs · EN"><span class="dot"></span>v1.48.5</a>
41
41
  <nav class="top-nav" aria-label="Documentation">
42
42
  <a href="/en/quickstart">Docs</a>
43
43
  <a href="/en/whats-new">Changelog</a>
@@ -36,7 +36,7 @@
36
36
  <span class="brand-mark"><img src="/assets/piagent-logo.svg" alt="" width="28" height="28" /></span>
37
37
  <span class="brand-name"><b>Piagent</b> <span>Platform</span></span>
38
38
  </a>
39
- <a class="version-badge" href="/whats-new" data-docs-version="v1.48.4" title="v1.48.4 docs · VI"><span class="dot"></span>v1.48.4</a>
39
+ <a class="version-badge" href="/whats-new" data-docs-version="v1.48.5" title="v1.48.5 docs · VI"><span class="dot"></span>v1.48.5</a>
40
40
  <nav class="top-nav" aria-label="Tài liệu">
41
41
  <a href="/quickstart">Tài liệu</a>
42
42
  <a href="/whats-new">Changelog</a>
@@ -56,7 +56,7 @@
56
56
  <div class="hero-bg" aria-hidden="true"></div>
57
57
  <div class="hero-glow" aria-hidden="true"></div>
58
58
  <div class="home-wrap">
59
- <a class="hero-pill" href="/whats-new#v1-48-4"><b>v1.48.4</b><span>/reload không còn làm hỏng Terminal công ty; nạp bản mới không làm mất tin nhắn</span><svg class="icon" viewBox="0 0 24 24" aria-hidden="true"><use href="#icon-arrow-right"/></svg></a>
59
+ <a class="hero-pill" href="/whats-new#v1-48-5"><b>v1.48.5</b><span>Task đang chạy vẫn dùng được tool khi Piagent được cập nhật</span><svg class="icon" viewBox="0 0 24 24" aria-hidden="true"><use href="#icon-arrow-right"/></svg></a>
60
60
  <h1>Coding agent cho cả team, <span class="grad">kiểm tra từng bước.</span></h1>
61
61
  <p class="hero-sub">Guard chặn tool call nguy hiểm trước khi chạy. Harness của team tự chạy check và cho subagent review. Một dashboard cho Terminal và trình duyệt, với model của bạn hoặc của công ty.</p>
62
62
  <div class="hero-cta">
@@ -99,7 +99,7 @@
99
99
  <div><strong><span data-count="54">54</span><em>/54</em></strong><span>task giải quyết trong benchmark production</span><small>codex-cli cùng model: 48/54</small></div>
100
100
  <div><strong>−<span data-count="61">61</span><em>%</em></strong><span>fresh token trên cùng workload</span><small>khoảng tin cậy 95%: ít nhất −51,6%</small></div>
101
101
  <div><strong><span data-count="52">52</span><em>/52</em></strong><span>mẫu secret bị che trong output</span><small>0/30 văn bản thường bị che nhầm</small></div>
102
- <div><strong><span data-count="135">135</span></strong><span>bản phát hành từ 21/07/2026</span><small>4.400+ test tự động trên macOS và Linux</small></div>
102
+ <div><strong><span data-count="136">136</span></strong><span>bản phát hành từ 21/07/2026</span><small>4.400+ test tự động trên macOS và Linux</small></div>
103
103
  </div>
104
104
  </div>
105
105
  </section>
@@ -280,6 +280,12 @@ pi # Terminal</code></pre></div></div>
280
280
  <p>Mỗi bản ghi thay đổi gì và cần bản nào của Studio hay Agent Watch. <a href="/whats-new">Xem toàn bộ changelog</a>.</p>
281
281
  </div>
282
282
  <div class="updates">
283
+ <a class="update" href="/whats-new#v1-48-5" data-reveal>
284
+ <span class="update-meta"><span class="release-version">v1.48.5</span>31/10/2026</span>
285
+ <h3>Task đang chạy vẫn dùng được tool khi Piagent được cập nhật</h3>
286
+ <p>Cập nhật Piagent khi task công ty đang chạy không còn làm hỏng tool: task chạy xong trên bản đã bắt đầu, rồi Terminal mới nạp bản mới.</p>
287
+ <span class="update-more">Xem chi tiết <svg class="icon" viewBox="0 0 24 24" aria-hidden="true"><use href="#icon-arrow-right"/></svg></span>
288
+ </a>
283
289
  <a class="update" href="/whats-new#v1-48-4" data-reveal>
284
290
  <span class="update-meta"><span class="release-version">v1.48.4</span>30/10/2026</span>
285
291
  <h3>/reload không còn làm hỏng Terminal công ty; nạp bản mới không làm mất tin nhắn</h3>
@@ -292,12 +298,6 @@ pi # Terminal</code></pre></div></div>
292
298
  <p>Câu trả lời hiện hình và thẻ file ngay trong chat, SVG mở ra hình, ảnh đính kèm lớn và bấm xem được, thư mục chứa nhiều repo được review bình thường.</p>
293
299
  <span class="update-more">Xem chi tiết <svg class="icon" viewBox="0 0 24 24" aria-hidden="true"><use href="#icon-arrow-right"/></svg></span>
294
300
  </a>
295
- <a class="update" href="/whats-new#v1-48-2" data-reveal>
296
- <span class="update-meta"><span class="release-version">v1.48.2</span>30/10/2026</span>
297
- <h3>Terminal nạp bản mới không cần đóng; chỉ member được bỏ qua kiểm tra</h3>
298
- <p>Sau khi cập nhật, mọi Terminal đang mở tự nạp bản mới khi rảnh và giữ nguyên cuộc trò chuyện; kiểm tra bắt buộc của team chỉ được bỏ qua khi member xác nhận trên thẻ.</p>
299
- <span class="update-more">Xem chi tiết <svg class="icon" viewBox="0 0 24 24" aria-hidden="true"><use href="#icon-arrow-right"/></svg></span>
300
- </a>
301
301
  </div>
302
302
  </div>
303
303
  </section>
@@ -37,7 +37,7 @@
37
37
  <span class="brand-mark"><img src="/assets/piagent-logo.svg" alt="" width="28" height="28" /></span>
38
38
  <span class="brand-name"><b>Piagent</b> <span>Platform</span></span>
39
39
  </a>
40
- <a class="version-badge" href="/whats-new" data-docs-version="v1.48.4" title="v1.48.4 docs · VI"><span class="dot"></span>v1.48.4</a>
40
+ <a class="version-badge" href="/whats-new" data-docs-version="v1.48.5" title="v1.48.5 docs · VI"><span class="dot"></span>v1.48.5</a>
41
41
  <nav class="top-nav" aria-label="Tài liệu">
42
42
  <a href="/quickstart">Tài liệu</a>
43
43
  <a href="/whats-new">Changelog</a>
@@ -37,7 +37,7 @@
37
37
  <span class="brand-mark"><img src="/assets/piagent-logo.svg" alt="" width="28" height="28" /></span>
38
38
  <span class="brand-name"><b>Piagent</b> <span>Platform</span></span>
39
39
  </a>
40
- <a class="version-badge" href="/whats-new" data-docs-version="v1.48.4" title="v1.48.4 docs · VI"><span class="dot"></span>v1.48.4</a>
40
+ <a class="version-badge" href="/whats-new" data-docs-version="v1.48.5" title="v1.48.5 docs · VI"><span class="dot"></span>v1.48.5</a>
41
41
  <nav class="top-nav" aria-label="Tài liệu">
42
42
  <a href="/quickstart">Tài liệu</a>
43
43
  <a href="/whats-new">Changelog</a>
@@ -37,7 +37,7 @@
37
37
  <span class="brand-mark"><img src="/assets/piagent-logo.svg" alt="" width="28" height="28" /></span>
38
38
  <span class="brand-name"><b>Piagent</b> <span>Platform</span></span>
39
39
  </a>
40
- <a class="version-badge" href="/whats-new" data-docs-version="v1.48.4" title="v1.48.4 docs · VI"><span class="dot"></span>v1.48.4</a>
40
+ <a class="version-badge" href="/whats-new" data-docs-version="v1.48.5" title="v1.48.5 docs · VI"><span class="dot"></span>v1.48.5</a>
41
41
  <nav class="top-nav" aria-label="Tài liệu">
42
42
  <a href="/quickstart">Tài liệu</a>
43
43
  <a href="/whats-new">Changelog</a>
@@ -37,7 +37,7 @@
37
37
  <span class="brand-mark"><img src="/assets/piagent-logo.svg" alt="" width="28" height="28" /></span>
38
38
  <span class="brand-name"><b>Piagent</b> <span>Platform</span></span>
39
39
  </a>
40
- <a class="version-badge" href="/whats-new" data-docs-version="v1.48.4" title="v1.48.4 docs · VI"><span class="dot"></span>v1.48.4</a>
40
+ <a class="version-badge" href="/whats-new" data-docs-version="v1.48.5" title="v1.48.5 docs · VI"><span class="dot"></span>v1.48.5</a>
41
41
  <nav class="top-nav" aria-label="Tài liệu">
42
42
  <a href="/quickstart">Tài liệu</a>
43
43
  <a href="/whats-new">Changelog</a>
@@ -37,7 +37,7 @@
37
37
  <span class="brand-mark"><img src="/assets/piagent-logo.svg" alt="" width="28" height="28" /></span>
38
38
  <span class="brand-name"><b>Piagent</b> <span>Platform</span></span>
39
39
  </a>
40
- <a class="version-badge" href="/whats-new" data-docs-version="v1.48.4" title="v1.48.4 docs · VI"><span class="dot"></span>v1.48.4</a>
40
+ <a class="version-badge" href="/whats-new" data-docs-version="v1.48.5" title="v1.48.5 docs · VI"><span class="dot"></span>v1.48.5</a>
41
41
  <nav class="top-nav" aria-label="Tài liệu">
42
42
  <a href="/quickstart">Tài liệu</a>
43
43
  <a href="/whats-new">Changelog</a>
@@ -37,7 +37,7 @@
37
37
  <span class="brand-mark"><img src="/assets/piagent-logo.svg" alt="" width="28" height="28" /></span>
38
38
  <span class="brand-name"><b>Piagent</b> <span>Platform</span></span>
39
39
  </a>
40
- <a class="version-badge" href="/whats-new" data-docs-version="v1.48.4" title="v1.48.4 docs · VI"><span class="dot"></span>v1.48.4</a>
40
+ <a class="version-badge" href="/whats-new" data-docs-version="v1.48.5" title="v1.48.5 docs · VI"><span class="dot"></span>v1.48.5</a>
41
41
  <nav class="top-nav" aria-label="Tài liệu">
42
42
  <a href="/quickstart">Tài liệu</a>
43
43
  <a href="/whats-new">Changelog</a>
@@ -37,7 +37,7 @@
37
37
  <span class="brand-mark"><img src="/assets/piagent-logo.svg" alt="" width="28" height="28" /></span>
38
38
  <span class="brand-name"><b>Piagent</b> <span>Platform</span></span>
39
39
  </a>
40
- <a class="version-badge" href="/whats-new" data-docs-version="v1.48.4" title="v1.48.4 docs · VI"><span class="dot"></span>v1.48.4</a>
40
+ <a class="version-badge" href="/whats-new" data-docs-version="v1.48.5" title="v1.48.5 docs · VI"><span class="dot"></span>v1.48.5</a>
41
41
  <nav class="top-nav" aria-label="Tài liệu">
42
42
  <a href="/quickstart" aria-current="page">Tài liệu</a>
43
43
  <a href="/whats-new">Changelog</a>
@@ -1,4 +1,30 @@
1
1
  [
2
+ {
3
+ "version": "1.48.5",
4
+ "date": "2026-10-31",
5
+ "status": "stable",
6
+ "title": {
7
+ "en": "A running task keeps its tools when Piagent is updated",
8
+ "vi": "Task đang chạy vẫn dùng được tool khi Piagent được cập nhật"
9
+ },
10
+ "summary": {
11
+ "en": "Updating Piagent while a company task runs no longer stops its tools: the task finishes on the release it started with, then the Terminal loads the new one.",
12
+ "vi": "Cập nhật Piagent khi task công ty đang chạy không còn làm hỏng tool: task chạy xong trên bản đã bắt đầu, rồi Terminal mới nạp bản mới."
13
+ },
14
+ "requires": null,
15
+ "items": [
16
+ {
17
+ "kind": "fixed",
18
+ "en": "A company task running across piagent-update no longer fails every tool with managed-runtime-changed: its sandbox runs a private, still verified copy of the release it started with.",
19
+ "vi": "Task công ty chạy trong lúc piagent-update không còn bị mọi tool báo managed-runtime-changed: sandbox chạy bản sao riêng, vẫn được kiểm tra, của đúng bản lúc bắt đầu."
20
+ },
21
+ {
22
+ "kind": "fixed",
23
+ "en": "A turn whose code could not be read is no longer reported as code changed unless a real edit happened.",
24
+ "vi": "Lượt không đọc được code không còn bị báo là đã đổi code, trừ khi thật sự có sửa file."
25
+ }
26
+ ]
27
+ },
2
28
  {
3
29
  "version": "1.48.4",
4
30
  "date": "2026-10-30",
@@ -37,7 +37,7 @@
37
37
  <span class="brand-mark"><img src="/assets/piagent-logo.svg" alt="" width="28" height="28" /></span>
38
38
  <span class="brand-name"><b>Piagent</b> <span>Platform</span></span>
39
39
  </a>
40
- <a class="version-badge" href="/whats-new" data-docs-version="v1.48.4" title="v1.48.4 docs · VI"><span class="dot"></span>v1.48.4</a>
40
+ <a class="version-badge" href="/whats-new" data-docs-version="v1.48.5" title="v1.48.5 docs · VI"><span class="dot"></span>v1.48.5</a>
41
41
  <nav class="top-nav" aria-label="Tài liệu">
42
42
  <a href="/quickstart">Tài liệu</a>
43
43
  <a href="/whats-new">Changelog</a>
@@ -37,7 +37,7 @@
37
37
  <span class="brand-mark"><img src="/assets/piagent-logo.svg" alt="" width="28" height="28" /></span>
38
38
  <span class="brand-name"><b>Piagent</b> <span>Platform</span></span>
39
39
  </a>
40
- <a class="version-badge" href="/whats-new" data-docs-version="v1.48.4" title="v1.48.4 docs · VI"><span class="dot"></span>v1.48.4</a>
40
+ <a class="version-badge" href="/whats-new" data-docs-version="v1.48.5" title="v1.48.5 docs · VI"><span class="dot"></span>v1.48.5</a>
41
41
  <nav class="top-nav" aria-label="Tài liệu">
42
42
  <a href="/quickstart">Tài liệu</a>
43
43
  <a href="/whats-new">Changelog</a>
@@ -37,7 +37,7 @@
37
37
  <span class="brand-mark"><img src="/assets/piagent-logo.svg" alt="" width="28" height="28" /></span>
38
38
  <span class="brand-name"><b>Piagent</b> <span>Platform</span></span>
39
39
  </a>
40
- <a class="version-badge" href="/whats-new" data-docs-version="v1.48.4" title="v1.48.4 docs · VI"><span class="dot"></span>v1.48.4</a>
40
+ <a class="version-badge" href="/whats-new" data-docs-version="v1.48.5" title="v1.48.5 docs · VI"><span class="dot"></span>v1.48.5</a>
41
41
  <nav class="top-nav" aria-label="Tài liệu">
42
42
  <a href="/quickstart">Tài liệu</a>
43
43
  <a href="/whats-new">Changelog</a>
@@ -37,7 +37,7 @@
37
37
  <span class="brand-mark"><img src="/assets/piagent-logo.svg" alt="" width="28" height="28" /></span>
38
38
  <span class="brand-name"><b>Piagent</b> <span>Platform</span></span>
39
39
  </a>
40
- <a class="version-badge" href="/whats-new" data-docs-version="v1.48.4" title="v1.48.4 docs · VI"><span class="dot"></span>v1.48.4</a>
40
+ <a class="version-badge" href="/whats-new" data-docs-version="v1.48.5" title="v1.48.5 docs · VI"><span class="dot"></span>v1.48.5</a>
41
41
  <nav class="top-nav" aria-label="Tài liệu">
42
42
  <a href="/quickstart">Tài liệu</a>
43
43
  <a href="/whats-new">Changelog</a>
@@ -37,7 +37,7 @@
37
37
  <span class="brand-mark"><img src="/assets/piagent-logo.svg" alt="" width="28" height="28" /></span>
38
38
  <span class="brand-name"><b>Piagent</b> <span>Platform</span></span>
39
39
  </a>
40
- <a class="version-badge" href="/whats-new" data-docs-version="v1.48.4" title="v1.48.4 docs · VI"><span class="dot"></span>v1.48.4</a>
40
+ <a class="version-badge" href="/whats-new" data-docs-version="v1.48.5" title="v1.48.5 docs · VI"><span class="dot"></span>v1.48.5</a>
41
41
  <nav class="top-nav" aria-label="Tài liệu">
42
42
  <a href="/quickstart">Tài liệu</a>
43
43
  <a href="/whats-new">Changelog</a>
@@ -153,9 +153,9 @@
153
153
  <h2 id="pin-cho-team">Pin một bản cho cả team</h2>
154
154
  <p>Khi rollout cho team, cài đúng bản Pi host và đúng bản platform, rồi chạy installer ở chế độ stable. Bước <code>--dry-run</code> in ra những gì sẽ đổi.</p>
155
155
  <div class="command-card">
156
- <header><span>Cài pin theo bản</span><button class="clip-btn" data-clip="npm install -g --ignore-scripts @earendil-works/pi-coding-agent@1.3.0&#10;npm install -g --ignore-scripts @piagent/platform@1.48.4&#10;piagent-install --stable --dry-run&#10;piagent-install --stable">Lấy lệnh</button></header>
156
+ <header><span>Cài pin theo bản</span><button class="clip-btn" data-clip="npm install -g --ignore-scripts @earendil-works/pi-coding-agent@1.3.0&#10;npm install -g --ignore-scripts @piagent/platform@1.48.5&#10;piagent-install --stable --dry-run&#10;piagent-install --stable">Lấy lệnh</button></header>
157
157
  <pre><code>npm install -g --ignore-scripts @earendil-works/pi-coding-agent@1.3.0
158
- npm install -g --ignore-scripts @piagent/platform@1.48.4
158
+ npm install -g --ignore-scripts @piagent/platform@1.48.5
159
159
  piagent-install --stable --dry-run
160
160
  piagent-install --stable</code></pre>
161
161
  </div>
@@ -37,7 +37,7 @@
37
37
  <span class="brand-mark"><img src="/assets/piagent-logo.svg" alt="" width="28" height="28" /></span>
38
38
  <span class="brand-name"><b>Piagent</b> <span>Platform</span></span>
39
39
  </a>
40
- <a class="version-badge" href="/whats-new" data-docs-version="v1.48.4" title="v1.48.4 docs · VI"><span class="dot"></span>v1.48.4</a>
40
+ <a class="version-badge" href="/whats-new" data-docs-version="v1.48.5" title="v1.48.5 docs · VI"><span class="dot"></span>v1.48.5</a>
41
41
  <nav class="top-nav" aria-label="Tài liệu">
42
42
  <a href="/quickstart">Tài liệu</a>
43
43
  <a href="/whats-new" aria-current="page">Changelog</a>
@@ -108,7 +108,18 @@
108
108
  <div class="release-filter" role="toolbar" aria-label="Lọc theo loại thay đổi"><button type="button" data-filter-kind="all" aria-pressed="true">Tất cả</button><button type="button" data-filter-kind="new" aria-pressed="false">Mới</button><button type="button" data-filter-kind="improved" aria-pressed="false">Cải thiện</button><button type="button" data-filter-kind="fixed" aria-pressed="false">Sửa lỗi</button><button type="button" data-filter-kind="security" aria-pressed="false">Bảo mật</button></div>
109
109
  <section class="section releases" data-releases>
110
110
  <h2 id="latest" class="sr-only">Mới nhất</h2>
111
- <article class="release latest" id="v1-48-4" data-release>
111
+ <article class="release latest" id="v1-48-5" data-release>
112
+ <div class="release-meta"><a class="release-version" href="#v1-48-5">v1.48.5</a><time class="release-date" datetime="2026-10-31">31/10/2026</time></div>
113
+ <div class="release-body">
114
+ <h3 data-toc-skip id="v1-48-5-title">Task đang chạy vẫn dùng được tool khi Piagent được cập nhật</h3>
115
+ <p>Cập nhật Piagent khi task công ty đang chạy không còn làm hỏng tool: task chạy xong trên bản đã bắt đầu, rồi Terminal mới nạp bản mới.</p>
116
+ <ul class="release-items">
117
+ <li data-kind="fixed"><span class="kind kind-fixed">Sửa lỗi</span><span>Task công ty chạy trong lúc piagent-update không còn bị mọi tool báo managed-runtime-changed: sandbox chạy bản sao riêng, vẫn được kiểm tra, của đúng bản lúc bắt đầu.</span></li>
118
+ <li data-kind="fixed"><span class="kind kind-fixed">Sửa lỗi</span><span>Lượt không đọc được code không còn bị báo là đã đổi code, trừ khi thật sự có sửa file.</span></li>
119
+ </ul>
120
+ </div>
121
+ </article>
122
+ <article class="release" id="v1-48-4" data-release>
112
123
  <div class="release-meta"><a class="release-version" href="#v1-48-4">v1.48.4</a><time class="release-date" datetime="2026-10-30">30/10/2026</time></div>
113
124
  <div class="release-body">
114
125
  <h3 data-toc-skip id="v1-48-4-title">/reload không còn làm hỏng Terminal công ty; nạp bản mới không làm mất tin nhắn</h3>
@@ -410,24 +421,23 @@
410
421
  </ul>
411
422
  </div>
412
423
  </article>
413
- <article class="release" id="v1-43-3" data-release>
414
- <div class="release-meta"><a class="release-version" href="#v1-43-3">v1.43.3</a><time class="release-date" datetime="2026-10-26">26/10/2026</time></div>
415
- <div class="release-body">
416
- <h3 data-toc-skip id="v1-43-3-title">Dev chọn workflow, harness hỗ trợ BE/FE theo project <span class="tag">không phát hành</span></h3>
417
- <p>Đã tag nhưng chưa publish: E2E lịch sử WebUI trên Linux phát hiện race giữa scroll và observer. Thay bằng 1.43.4.</p>
418
- <ul class="release-items">
419
- <li data-kind="new"><span class="kind kind-new">Mới</span><span>Tự nhận diện repo/package FE, BE trong thư mục hội thoại và gợi ý checks phù hợp, làm mới theo task.</span></li>
420
- <li data-kind="new"><span class="kind kind-new">Mới</span><span>Context workflow tùy chọn nhớ nguồn requirement, plan và tasks của công việc khi mở lại hội thoại, truyền chỉ đọc cho helper và hỗ trợ đổi hoặc xóa.</span></li>
421
- <li data-kind="improved"><span class="kind kind-improved">Cải thiện</span><span>Lifecycle là hướng dẫn theo workflow và điểm dừng Dev chọn, không ép file spec hoặc tự tạo gate release. Skill được chọn không cấp quyền hay bỏ qua kiểm chứng, review và duyệt deploy.</span></li>
422
- </ul>
423
- </div>
424
- </article>
425
424
  </section>
426
425
  <section class="section archive">
427
426
  <h2 id="archive">Các bản trước</h2>
428
427
  <p class="section-lead">Bản cũ hơn, gom theo tháng. Mở một tháng để xem từng thay đổi.</p>
429
428
  <details class="release-archive">
430
- <summary><span>Tháng 10/2026</span><span class="archive-count">67</span></summary>
429
+ <summary><span>Tháng 10/2026</span><span class="archive-count">68</span></summary>
430
+ <div class="archive-row" id="v1-43-3">
431
+ <div class="archive-head"><a class="release-version" href="#v1-43-3">v1.43.3</a> <span class="release-date">26/10/2026</span></div>
432
+ <div class="archive-body">
433
+ <p><strong>Dev chọn workflow, harness hỗ trợ BE/FE theo project</strong> <span class="tag">không phát hành</span> — Đã tag nhưng chưa publish: E2E lịch sử WebUI trên Linux phát hiện race giữa scroll và observer. Thay bằng 1.43.4.</p>
434
+ <ul class="release-items">
435
+ <li data-kind="new"><span class="kind kind-new">Mới</span><span>Tự nhận diện repo/package FE, BE trong thư mục hội thoại và gợi ý checks phù hợp, làm mới theo task.</span></li>
436
+ <li data-kind="new"><span class="kind kind-new">Mới</span><span>Context workflow tùy chọn nhớ nguồn requirement, plan và tasks của công việc khi mở lại hội thoại, truyền chỉ đọc cho helper và hỗ trợ đổi hoặc xóa.</span></li>
437
+ <li data-kind="improved"><span class="kind kind-improved">Cải thiện</span><span>Lifecycle là hướng dẫn theo workflow và điểm dừng Dev chọn, không ép file spec hoặc tự tạo gate release. Skill được chọn không cấp quyền hay bỏ qua kiểm chứng, review và duyệt deploy.</span></li>
438
+ </ul>
439
+ </div>
440
+ </div>
431
441
  <div class="archive-row" id="v1-43-2">
432
442
  <div class="archive-head"><a class="release-version" href="#v1-43-2">v1.43.2</a> <span class="release-date">26/10/2026</span></div>
433
443
  <div class="archive-body">
@@ -37,7 +37,7 @@
37
37
  <span class="brand-mark"><img src="/assets/piagent-logo.svg" alt="" width="28" height="28" /></span>
38
38
  <span class="brand-name"><b>Piagent</b> <span>Platform</span></span>
39
39
  </a>
40
- <a class="version-badge" href="/whats-new" data-docs-version="v1.48.4" title="v1.48.4 docs · VI"><span class="dot"></span>v1.48.4</a>
40
+ <a class="version-badge" href="/whats-new" data-docs-version="v1.48.5" title="v1.48.5 docs · VI"><span class="dot"></span>v1.48.5</a>
41
41
  <nav class="top-nav" aria-label="Tài liệu">
42
42
  <a href="/quickstart">Tài liệu</a>
43
43
  <a href="/whats-new">Changelog</a>
@@ -37,7 +37,7 @@
37
37
  <span class="brand-mark"><img src="/assets/piagent-logo.svg" alt="" width="28" height="28" /></span>
38
38
  <span class="brand-name"><b>Piagent</b> <span>Platform</span></span>
39
39
  </a>
40
- <a class="version-badge" href="/whats-new" data-docs-version="v1.48.4" title="v1.48.4 docs · VI"><span class="dot"></span>v1.48.4</a>
40
+ <a class="version-badge" href="/whats-new" data-docs-version="v1.48.5" title="v1.48.5 docs · VI"><span class="dot"></span>v1.48.5</a>
41
41
  <nav class="top-nav" aria-label="Tài liệu">
42
42
  <a href="/quickstart">Tài liệu</a>
43
43
  <a href="/whats-new">Changelog</a>
@@ -256,8 +256,8 @@
256
256
  },
257
257
  {
258
258
  "path": "tests",
259
- "fileCount": 643,
260
- "sha256": "ee1cd916b71678c7f3b2eda3f9b90d0661b636c81634fb3cfbd18372b2b53ba6"
259
+ "fileCount": 644,
260
+ "sha256": "789b3bf1850c8e31f08a737575ba3f0c67f45f6f1913c665c350f07f85ed9c20"
261
261
  }
262
262
  ],
263
263
  "custodianComparisonRules": {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@piagent/platform",
3
- "version": "1.48.4",
3
+ "version": "1.48.5",
4
4
  "license": "MIT",
5
5
  "publishConfig": {
6
6
  "access": "public",
@@ -1,6 +1,8 @@
1
1
  import { fileURLToPath } from 'node:url';
2
2
 
3
3
  const worker = fileURLToPath(new URL('./review-snapshot-worker.mjs', import.meta.url));
4
+ // The session's own copy of the worker (runtime-snapshot.mjs).
5
+ const workerOf = boundary => boundary.runtimeFile?.('review-snapshot-worker.mjs') ?? worker;
4
6
  const requests = new WeakSet();
5
7
  const quote = value => "'" + value.replaceAll("'", "'\"'\"'") + "'";
6
8
 
@@ -9,7 +11,7 @@ const quote = value => "'" + value.replaceAll("'", "'\"'\"'") + "'";
9
11
  export function invokeReviewSnapshot(boundary, mode, extra = []) {
10
12
  if (!['head', 'heads', 'since', 'branch-base', 'digest', 'file', 'files'].includes(mode)
11
13
  || !Array.isArray(extra) || extra.some(value => typeof value !== 'string')) throw Error('review-request-invalid');
12
- const args = Object.freeze({ command: [process.execPath, worker, mode, ...extra].map(quote).join(' '), timeout: 60 });
14
+ const args = Object.freeze({ command: [process.execPath, workerOf(boundary), mode, ...extra].map(quote).join(' '), timeout: 60 });
13
15
  requests.add(args);
14
16
  return boundary.invoke('bash', args);
15
17
  }