@piagent/platform 1.47.0 → 1.48.0

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 (100) hide show
  1. package/CHANGELOG.md +23 -0
  2. package/README.md +16 -3
  3. package/README.vi.md +16 -3
  4. package/docs/command-reference-vietnamese.md +4 -4
  5. package/docs/company-dev-commands.md +4 -4
  6. package/docs/distribution-standard.md +6 -6
  7. package/docs/languages.json +2 -2
  8. package/docs/operator-manual-vietnamese.md +7 -7
  9. package/docs/publishing-for-teams.md +1 -0
  10. package/docs/release-install-policy.md +2 -2
  11. package/docs/security-threat-model.md +3 -1
  12. package/docs/team-onboarding.md +2 -2
  13. package/docs-site/architecture.html +1 -1
  14. package/docs-site/assets/search-en.json +1 -1
  15. package/docs-site/assets/search-vi.json +1 -1
  16. package/docs-site/benchmark.html +1 -1
  17. package/docs-site/commands.html +1 -1
  18. package/docs-site/context-engine.html +1 -1
  19. package/docs-site/ecosystem.html +1 -1
  20. package/docs-site/en/architecture.html +1 -1
  21. package/docs-site/en/benchmark.html +1 -1
  22. package/docs-site/en/commands.html +1 -1
  23. package/docs-site/en/context-engine.html +1 -1
  24. package/docs-site/en/ecosystem.html +1 -1
  25. package/docs-site/en/index.html +9 -9
  26. package/docs-site/en/mcp-approval.html +1 -1
  27. package/docs-site/en/mcp-auth.html +1 -1
  28. package/docs-site/en/mcp-servers.html +1 -1
  29. package/docs-site/en/mcp.html +1 -1
  30. package/docs-site/en/permissions.html +1 -1
  31. package/docs-site/en/profiles.html +1 -1
  32. package/docs-site/en/quickstart.html +1 -1
  33. package/docs-site/en/runtime.html +1 -1
  34. package/docs-site/en/scope.html +1 -1
  35. package/docs-site/en/security.html +1 -1
  36. package/docs-site/en/team.html +1 -1
  37. package/docs-site/en/update.html +3 -3
  38. package/docs-site/en/whats-new.html +33 -18
  39. package/docs-site/en/windows.html +1 -1
  40. package/docs-site/en/workflows.html +1 -1
  41. package/docs-site/index.html +9 -9
  42. package/docs-site/mcp-approval.html +1 -1
  43. package/docs-site/mcp-auth.html +1 -1
  44. package/docs-site/mcp-servers.html +1 -1
  45. package/docs-site/mcp.html +1 -1
  46. package/docs-site/permissions.html +1 -1
  47. package/docs-site/profiles.html +1 -1
  48. package/docs-site/quickstart.html +1 -1
  49. package/docs-site/releases.json +51 -0
  50. package/docs-site/runtime.html +1 -1
  51. package/docs-site/scope.html +1 -1
  52. package/docs-site/security.html +1 -1
  53. package/docs-site/team.html +1 -1
  54. package/docs-site/update.html +3 -3
  55. package/docs-site/whats-new.html +33 -18
  56. package/docs-site/windows.html +1 -1
  57. package/docs-site/workflows.html +1 -1
  58. package/evals/private-holdout-v1/public-exposure.v2.json +2 -2
  59. package/package.json +2 -1
  60. package/packages/piagent-core/extensions/guard-types.ts +10 -2
  61. package/packages/piagent-core/extensions/piagent-guard.ts +104 -23
  62. package/packages/piagent-core/extensions/policy-core.js +7 -7
  63. package/packages/piagent-core/extensions/shell-ast.js +85 -0
  64. package/packages/piagent-core/extensions/shell-command-words.js +19 -0
  65. package/packages/piagent-core/managed/command-tools.mjs +54 -24
  66. package/packages/piagent-core/managed/fetch-guard.mjs +3 -3
  67. package/packages/piagent-core/managed/host-command.mjs +15 -7
  68. package/packages/piagent-core/managed/member-mcp.mjs +34 -9
  69. package/packages/piagent-core/managed/permission.mjs +19 -12
  70. package/packages/piagent-core/managed/repository-operation.mjs +1 -1
  71. package/packages/piagent-core/managed/session.mjs +2 -2
  72. package/packages/piagent-core/package.json +1 -1
  73. package/packages/piagent-core/runtime/hooks/session-start-hook.ts +1 -1
  74. package/packages/piagent-core/runtime/inspection/approval-broker.ts +33 -16
  75. package/packages/piagent-core/runtime/policy/handoff-policy.mjs +144 -0
  76. package/packages/piagent-core/runtime/registration/permission-commands.ts +2 -2
  77. package/packages/piagent-webui/dist/client/assets/{App-CiwY9VpU.js → App-fZeIRoaD.js} +1 -1
  78. package/packages/piagent-webui/dist/client/assets/{GatewayApp-DrNJW3v_.js → GatewayApp-CpC4lgYK.js} +17 -15
  79. package/packages/piagent-webui/dist/client/assets/{InspectionApp-BBiwSaV0.js → InspectionApp-pD-BqBXm.js} +1 -1
  80. package/packages/piagent-webui/dist/client/assets/{SessionAgentWorkspace-DwyPebIX.js → SessionAgentWorkspace-3tM7Q6HH.js} +1 -1
  81. package/packages/piagent-webui/dist/client/assets/{SessionInspectorDrawer-CpVzaf_G.js → SessionInspectorDrawer-BJ94aQ6y.js} +2 -2
  82. package/packages/piagent-webui/dist/client/assets/SettingsNavigation-BFfqMcuL.js +3 -0
  83. package/packages/piagent-webui/dist/client/assets/SettingsPage-CxpZ7cdM.js +1 -0
  84. package/packages/piagent-webui/dist/client/assets/{TerminalPanel-B8j_r6-y.js → TerminalPanel-CtZyb0tj.js} +1 -1
  85. package/packages/piagent-webui/dist/client/assets/{WorkspaceCodeEditor-BDTPvq-0.js → WorkspaceCodeEditor-BS_ZrjPN.js} +1 -1
  86. package/packages/piagent-webui/dist/client/assets/{WorkspaceExplorer-DVsNU0eu.js → WorkspaceExplorer-CkFBpcM7.js} +3 -3
  87. package/packages/piagent-webui/dist/client/assets/{index-uhJMXxqD.js → index-CNdhIouM.js} +2 -2
  88. package/packages/piagent-webui/dist/client/assets/{index-Dqb2hNan.css → index-CjM70M7D.css} +1 -1
  89. package/packages/piagent-webui/dist/client/assets/transcript-view-model-CpEMY1xb.js +3 -0
  90. package/packages/piagent-webui/dist/client/index.html +2 -2
  91. package/packages/piagent-webui/gateway/gateway-events.ts +5 -1
  92. package/packages/piagent-webui/server/gateway-websocket.ts +5 -1
  93. package/schemas/piagent-webui/approval-v1.schema.json +3 -1
  94. package/schemas/project-profile.schema.json +16 -0
  95. package/scripts/company-terminal.mjs +5 -5
  96. package/scripts/verify-release-identity.mjs +1 -1
  97. package/packages/piagent-core/runtime/policy/bypass-policy.mjs +0 -42
  98. package/packages/piagent-webui/dist/client/assets/SettingsNavigation-C-tO5iXn.js +0 -3
  99. package/packages/piagent-webui/dist/client/assets/SettingsPage-Ca-qRSZa.js +0 -1
  100. package/packages/piagent-webui/dist/client/assets/transcript-view-model-Bq0nkxyu.js +0 -3
@@ -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.47.0" title="v1.47.0 docs · VI"><span class="dot"></span>v1.47.0</a>
40
+ <a class="version-badge" href="/whats-new" data-docs-version="v1.48.0" title="v1.48.0 docs · VI"><span class="dot"></span>v1.48.0</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="/en/whats-new" data-docs-version="v1.47.0" title="v1.47.0 docs · EN"><span class="dot"></span>v1.47.0</a>
40
+ <a class="version-badge" href="/en/whats-new" data-docs-version="v1.48.0" title="v1.48.0 docs · EN"><span class="dot"></span>v1.48.0</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.47.0" title="v1.47.0 docs · EN"><span class="dot"></span>v1.47.0</a>
40
+ <a class="version-badge" href="/en/whats-new" data-docs-version="v1.48.0" title="v1.48.0 docs · EN"><span class="dot"></span>v1.48.0</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.47.0" title="v1.47.0 docs · EN"><span class="dot"></span>v1.47.0</a>
40
+ <a class="version-badge" href="/en/whats-new" data-docs-version="v1.48.0" title="v1.48.0 docs · EN"><span class="dot"></span>v1.48.0</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.47.0" title="v1.47.0 docs · EN"><span class="dot"></span>v1.47.0</a>
40
+ <a class="version-badge" href="/en/whats-new" data-docs-version="v1.48.0" title="v1.48.0 docs · EN"><span class="dot"></span>v1.48.0</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.47.0" title="v1.47.0 docs · EN"><span class="dot"></span>v1.47.0</a>
40
+ <a class="version-badge" href="/en/whats-new" data-docs-version="v1.48.0" title="v1.48.0 docs · EN"><span class="dot"></span>v1.48.0</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="/en/whats-new" data-docs-version="v1.47.0" title="v1.47.0 docs · EN"><span class="dot"></span>v1.47.0</a>
39
+ <a class="version-badge" href="/en/whats-new" data-docs-version="v1.48.0" title="v1.48.0 docs · EN"><span class="dot"></span>v1.48.0</a>
40
40
  <nav class="top-nav" aria-label="Documentation">
41
41
  <a href="/en/quickstart">Docs</a>
42
42
  <a href="/en/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="/en/whats-new#v1-47-0"><b>v1.47.0</b><span>Company sessions use your MCP servers and drive iOS and Android simulators</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="/en/whats-new#v1-48-0"><b>v1.48.0</b><span>Bypass stops at the handoff: every mode asks before work leaves the machine</span><svg class="icon" viewBox="0 0 24 24" aria-hidden="true"><use href="#icon-arrow-right"/></svg></a>
60
60
  <h1>A coding agent for the whole team, <span class="grad">checked at every step.</span></h1>
61
61
  <p class="hero-sub">A guard stops risky tool calls before they run. The team's Harness runs checks and has a subagent review the change. One dashboard for Terminal and the browser, with your model or the company's.</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>tasks resolved in the production benchmark</span><small>codex-cli, same model: 48/54</small></div>
100
100
  <div><strong>−<span data-count="61">61</span><em>%</em></strong><span>fresh tokens on the same workload</span><small>95% confidence: at least −51.6%</small></div>
101
101
  <div><strong><span data-count="52">52</span><em>/52</em></strong><span>secret patterns redacted from output</span><small>0/30 ordinary texts redacted by mistake</small></div>
102
- <div><strong><span data-count="130">130</span></strong><span>releases since 2026-07-21</span><small>4,400+ automated tests on macOS and Linux</small></div>
102
+ <div><strong><span data-count="131">131</span></strong><span>releases since 2026-07-21</span><small>4,400+ automated tests on macOS and 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>Each release says what changed and which Studio or Agent Watch it needs. <a href="/en/whats-new">See the full changelog</a>.</p>
281
281
  </div>
282
282
  <div class="updates">
283
+ <a class="update" href="/en/whats-new#v1-48-0" data-reveal>
284
+ <span class="update-meta"><span class="release-version">v1.48.0</span>Oct 30, 2026</span>
285
+ <h3>Bypass stops at the handoff: every mode asks before work leaves the machine</h3>
286
+ <p>Pushes, pull requests, publishes and deploys are always approved by you, commands are checked against a full shell syntax tree, approvals gain session and stop answers, and the dashboard streams more smoothly.</p>
287
+ <span class="update-more">Read more <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="/en/whats-new#v1-47-0" data-reveal>
284
290
  <span class="update-meta"><span class="release-version">v1.47.0</span>Oct 29, 2026</span>
285
291
  <h3>Company sessions use your MCP servers and drive iOS and Android simulators</h3>
@@ -292,12 +298,6 @@ pi # Terminal</code></pre></div></div>
292
298
  <p>Company sessions no longer loop on a refused subagent call, and the update no longer stops when the Pi model list file has comments.</p>
293
299
  <span class="update-more">Read more <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="/en/whats-new#v1-46-2" data-reveal>
296
- <span class="update-meta"><span class="release-version">v1.46.2</span>Oct 29, 2026</span>
297
- <h3>A message sent after an answer shows at once; the WebUI streams word by word</h3>
298
- <p>The terminal takes the next message as soon as an answer ends, and the WebUI shows an answer while the model writes it instead of once its paragraph ends.</p>
299
- <span class="update-more">Read more <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="/en/whats-new" data-docs-version="v1.47.0" title="v1.47.0 docs · EN"><span class="dot"></span>v1.47.0</a>
40
+ <a class="version-badge" href="/en/whats-new" data-docs-version="v1.48.0" title="v1.48.0 docs · EN"><span class="dot"></span>v1.48.0</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.47.0" title="v1.47.0 docs · EN"><span class="dot"></span>v1.47.0</a>
40
+ <a class="version-badge" href="/en/whats-new" data-docs-version="v1.48.0" title="v1.48.0 docs · EN"><span class="dot"></span>v1.48.0</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.47.0" title="v1.47.0 docs · EN"><span class="dot"></span>v1.47.0</a>
40
+ <a class="version-badge" href="/en/whats-new" data-docs-version="v1.48.0" title="v1.48.0 docs · EN"><span class="dot"></span>v1.48.0</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.47.0" title="v1.47.0 docs · EN"><span class="dot"></span>v1.47.0</a>
40
+ <a class="version-badge" href="/en/whats-new" data-docs-version="v1.48.0" title="v1.48.0 docs · EN"><span class="dot"></span>v1.48.0</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.47.0" title="v1.47.0 docs · EN"><span class="dot"></span>v1.47.0</a>
40
+ <a class="version-badge" href="/en/whats-new" data-docs-version="v1.48.0" title="v1.48.0 docs · EN"><span class="dot"></span>v1.48.0</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.47.0" title="v1.47.0 docs · EN"><span class="dot"></span>v1.47.0</a>
40
+ <a class="version-badge" href="/en/whats-new" data-docs-version="v1.48.0" title="v1.48.0 docs · EN"><span class="dot"></span>v1.48.0</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.47.0" title="v1.47.0 docs · EN"><span class="dot"></span>v1.47.0</a>
40
+ <a class="version-badge" href="/en/whats-new" data-docs-version="v1.48.0" title="v1.48.0 docs · EN"><span class="dot"></span>v1.48.0</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.47.0" title="v1.47.0 docs · EN"><span class="dot"></span>v1.47.0</a>
40
+ <a class="version-badge" href="/en/whats-new" data-docs-version="v1.48.0" title="v1.48.0 docs · EN"><span class="dot"></span>v1.48.0</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.47.0" title="v1.47.0 docs · EN"><span class="dot"></span>v1.47.0</a>
40
+ <a class="version-badge" href="/en/whats-new" data-docs-version="v1.48.0" title="v1.48.0 docs · EN"><span class="dot"></span>v1.48.0</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.47.0" title="v1.47.0 docs · EN"><span class="dot"></span>v1.47.0</a>
40
+ <a class="version-badge" href="/en/whats-new" data-docs-version="v1.48.0" title="v1.48.0 docs · EN"><span class="dot"></span>v1.48.0</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.47.0" title="v1.47.0 docs · EN"><span class="dot"></span>v1.47.0</a>
40
+ <a class="version-badge" href="/en/whats-new" data-docs-version="v1.48.0" title="v1.48.0 docs · EN"><span class="dot"></span>v1.48.0</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.47.0" title="v1.47.0 docs · EN"><span class="dot"></span>v1.47.0</a>
40
+ <a class="version-badge" href="/en/whats-new" data-docs-version="v1.48.0" title="v1.48.0 docs · EN"><span class="dot"></span>v1.48.0</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>
@@ -145,9 +145,9 @@
145
145
  <h2 id="pin-for-a-team">Pin one release for a team</h2>
146
146
  <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>
147
147
  <div class="command-card">
148
- <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.47.0&#10;piagent-install --stable --dry-run&#10;piagent-install --stable">Copy</button></header>
148
+ <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.0&#10;piagent-install --stable --dry-run&#10;piagent-install --stable">Copy</button></header>
149
149
  <pre><code>npm install -g --ignore-scripts @earendil-works/pi-coding-agent@1.3.0
150
- npm install -g --ignore-scripts @piagent/platform@1.47.0
150
+ npm install -g --ignore-scripts @piagent/platform@1.48.0
151
151
  piagent-install --stable --dry-run
152
152
  piagent-install --stable</code></pre>
153
153
  </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.47.0" title="v1.47.0 docs · EN"><span class="dot"></span>v1.47.0</a>
40
+ <a class="version-badge" href="/en/whats-new" data-docs-version="v1.48.0" title="v1.48.0 docs · EN"><span class="dot"></span>v1.48.0</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,23 @@
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-47-0" data-release>
111
+ <article class="release latest" id="v1-48-0" data-release>
112
+ <div class="release-meta"><a class="release-version" href="#v1-48-0">v1.48.0</a><time class="release-date" datetime="2026-10-30">Oct 30, 2026</time></div>
113
+ <div class="release-body">
114
+ <h3 data-toc-skip id="v1-48-0-title">Bypass stops at the handoff: every mode asks before work leaves the machine</h3>
115
+ <p>Pushes, pull requests, publishes and deploys are always approved by you, commands are checked against a full shell syntax tree, approvals gain session and stop answers, and the dashboard streams more smoothly.</p>
116
+ <ul class="release-items">
117
+ <li data-kind="new"><span class="kind kind-new">New</span><span>Approvals offer four answers: allow once, allow the same exact action for the session, deny, and deny and stop the turn. A handoff is always approved one at a time.</span></li>
118
+ <li data-kind="new"><span class="kind kind-new">New</span><span>Projects can refuse commands with autoDeny in .pi/piagent-profile.json. The rules hold in every mode, Bypass included; terminate also ends the agent's turn.</span></li>
119
+ <li data-kind="improved"><span class="kind kind-improved">Improved</span><span>Smoother dashboard: a streaming answer redraws only its last paragraph, sidebar rows redraw only when they change, and a dropped connection is noticed and restored sooner.</span></li>
120
+ <li data-kind="fixed"><span class="kind kind-fixed">Fixed</span><span>Approval cards, the dashboard, the terminal and the docs describe each access mode exactly as it behaves; personal sessions are no longer labelled as sandboxed.</span></li>
121
+ <li data-kind="security"><span class="kind kind-security">Security</span><span>Every access mode asks before work leaves this machine: git push in any spelling, pull requests and merges, releases, publish, deploy, registry push, ssh and cloud tools, uploads.</span></li>
122
+ <li data-kind="security"><span class="kind kind-security">Security</span><span>Bypass runs the work without asking and stops at the handoff, in personal and company sessions alike, including run_on_host with your sign-in and MCP tools that write outside.</span></li>
123
+ <li data-kind="security"><span class="kind kind-security">Security</span><span>Commands are read by the policy scanner and a shell syntax tree: a push or a destructive delete inside if/then, a function, case, bash -c, eval or a heredoc is caught.</span></li>
124
+ </ul>
125
+ </div>
126
+ </article>
127
+ <article class="release" id="v1-47-0" data-release>
112
128
  <div class="release-meta"><a class="release-version" href="#v1-47-0">v1.47.0</a><time class="release-date" datetime="2026-10-29">Oct 29, 2026</time></div>
113
129
  <div class="release-body">
114
130
  <h3 data-toc-skip id="v1-47-0-title">Company sessions use your MCP servers and drive iOS and Android simulators</h3>
@@ -403,27 +419,26 @@
403
419
  </ul>
404
420
  </div>
405
421
  </article>
406
- <article class="release" id="v1-42-0" data-release>
407
- <div class="release-meta"><a class="release-version" href="#v1-42-0">v1.42.0</a><time class="release-date" datetime="2026-10-25">Oct 25, 2026</time></div>
408
- <div class="release-body">
409
- <h3 data-toc-skip id="v1-42-0-title">A redesigned dashboard and older messages that load without jumping</h3>
410
- <p>The dashboard gets one design scale and every theme everywhere; older messages load as you scroll up and the message you are reading stays put.</p>
411
- <ul class="release-items">
412
- <li data-kind="new"><span class="kind kind-new">New</span><span>Older messages load on their own as you near the top, and the message being read no longer moves when a page is added above it.</span></li>
413
- <li data-kind="improved"><span class="kind kind-improved">Improved</span><span>All 13 colour themes now reach the diff, approval, question and document views; header, sidebar, composer and new chat page are redesigned.</span></li>
414
- <li data-kind="improved"><span class="kind kind-improved">Improved</span><span>A running turn shows one moving indicator at a time: the step's spinner, the streaming caret, or a thinking spinner.</span></li>
415
- <li data-kind="improved"><span class="kind kind-improved">Improved</span><span>New website and README with an Update &amp; uninstall guide; release notes now come from one file that also writes <code>CHANGELOG.md</code>.</span></li>
416
- <li data-kind="fixed"><span class="kind kind-fixed">Fixed</span><span>History showed raw markdown for a moment and then reflowed; it now appears formatted from the first frame.</span></li>
417
- <li data-kind="fixed"><span class="kind kind-fixed">Fixed</span><span>Loading many older pages silently dropped the newest messages; the window now holds 1,000 items and offers a way back to the newest.</span></li>
418
- </ul>
419
- </div>
420
- </article>
421
422
  </section>
422
423
  <section class="section archive">
423
424
  <h2 id="archive">Earlier releases</h2>
424
425
  <p class="section-lead">Older releases, grouped by month. Open a month to see every change.</p>
425
426
  <details class="release-archive">
426
- <summary><span>October 2026</span><span class="archive-count">62</span></summary>
427
+ <summary><span>October 2026</span><span class="archive-count">63</span></summary>
428
+ <div class="archive-row" id="v1-42-0">
429
+ <div class="archive-head"><a class="release-version" href="#v1-42-0">v1.42.0</a> <span class="release-date">Oct 25, 2026</span></div>
430
+ <div class="archive-body">
431
+ <p><strong>A redesigned dashboard and older messages that load without jumping</strong> — The dashboard gets one design scale and every theme everywhere; older messages load as you scroll up and the message you are reading stays put.</p>
432
+ <ul class="release-items">
433
+ <li data-kind="new"><span class="kind kind-new">New</span><span>Older messages load on their own as you near the top, and the message being read no longer moves when a page is added above it.</span></li>
434
+ <li data-kind="improved"><span class="kind kind-improved">Improved</span><span>All 13 colour themes now reach the diff, approval, question and document views; header, sidebar, composer and new chat page are redesigned.</span></li>
435
+ <li data-kind="improved"><span class="kind kind-improved">Improved</span><span>A running turn shows one moving indicator at a time: the step's spinner, the streaming caret, or a thinking spinner.</span></li>
436
+ <li data-kind="improved"><span class="kind kind-improved">Improved</span><span>New website and README with an Update &amp; uninstall guide; release notes now come from one file that also writes <code>CHANGELOG.md</code>.</span></li>
437
+ <li data-kind="fixed"><span class="kind kind-fixed">Fixed</span><span>History showed raw markdown for a moment and then reflowed; it now appears formatted from the first frame.</span></li>
438
+ <li data-kind="fixed"><span class="kind kind-fixed">Fixed</span><span>Loading many older pages silently dropped the newest messages; the window now holds 1,000 items and offers a way back to the newest.</span></li>
439
+ </ul>
440
+ </div>
441
+ </div>
427
442
  <div class="archive-row" id="v1-41-0">
428
443
  <div class="archive-head"><a class="release-version" href="#v1-41-0">v1.41.0</a> <span class="release-date">Oct 24, 2026</span></div>
429
444
  <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.47.0" title="v1.47.0 docs · EN"><span class="dot"></span>v1.47.0</a>
40
+ <a class="version-badge" href="/en/whats-new" data-docs-version="v1.48.0" title="v1.48.0 docs · EN"><span class="dot"></span>v1.48.0</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.47.0" title="v1.47.0 docs · EN"><span class="dot"></span>v1.47.0</a>
40
+ <a class="version-badge" href="/en/whats-new" data-docs-version="v1.48.0" title="v1.48.0 docs · EN"><span class="dot"></span>v1.48.0</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.47.0" title="v1.47.0 docs · VI"><span class="dot"></span>v1.47.0</a>
39
+ <a class="version-badge" href="/whats-new" data-docs-version="v1.48.0" title="v1.48.0 docs · VI"><span class="dot"></span>v1.48.0</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-47-0"><b>v1.47.0</b><span>Phiên công ty dùng MCP server của bạn và điều khiển simulator iOS, Android</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-0"><b>v1.48.0</b><span>Bypass dừng ở bước bàn giao: mọi chế độ hỏi trước khi việc rời khỏi máy</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="130">130</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="131">131</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-0" data-reveal>
284
+ <span class="update-meta"><span class="release-version">v1.48.0</span>30/10/2026</span>
285
+ <h3>Bypass dừng ở bước bàn giao: mọi chế độ hỏi trước khi việc rời khỏi máy</h3>
286
+ <p>Push, pull request, publish và deploy luôn do bạn duyệt, lệnh được kiểm tra bằng cây cú pháp shell đầy đủ, thẻ duyệt có thêm lựa chọn cho cả session và dừng lượt, dashboard stream mượt hơn.</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-47-0" data-reveal>
284
290
  <span class="update-meta"><span class="release-version">v1.47.0</span>29/10/2026</span>
285
291
  <h3>Phiên công ty dùng MCP server của bạn và điều khiển simulator iOS, Android</h3>
@@ -292,12 +298,6 @@ pi # Terminal</code></pre></div></div>
292
298
  <p>Session công ty không còn lặp lại lệnh gọi subagent bị chặn, và bản cập nhật không còn dừng khi file danh sách model của Pi có comment.</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-46-2" data-reveal>
296
- <span class="update-meta"><span class="release-version">v1.46.2</span>29/10/2026</span>
297
- <h3>Tin gửi sau câu trả lời hiện ngay; WebUI hiện chữ dần</h3>
298
- <p>Terminal nhận tin tiếp theo ngay khi câu trả lời kết thúc, và WebUI hiện câu trả lời trong lúc model đang viết thay vì đợi hết đoạn.</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.47.0" title="v1.47.0 docs · VI"><span class="dot"></span>v1.47.0</a>
40
+ <a class="version-badge" href="/whats-new" data-docs-version="v1.48.0" title="v1.48.0 docs · VI"><span class="dot"></span>v1.48.0</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.47.0" title="v1.47.0 docs · VI"><span class="dot"></span>v1.47.0</a>
40
+ <a class="version-badge" href="/whats-new" data-docs-version="v1.48.0" title="v1.48.0 docs · VI"><span class="dot"></span>v1.48.0</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.47.0" title="v1.47.0 docs · VI"><span class="dot"></span>v1.47.0</a>
40
+ <a class="version-badge" href="/whats-new" data-docs-version="v1.48.0" title="v1.48.0 docs · VI"><span class="dot"></span>v1.48.0</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.47.0" title="v1.47.0 docs · VI"><span class="dot"></span>v1.47.0</a>
40
+ <a class="version-badge" href="/whats-new" data-docs-version="v1.48.0" title="v1.48.0 docs · VI"><span class="dot"></span>v1.48.0</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.47.0" title="v1.47.0 docs · VI"><span class="dot"></span>v1.47.0</a>
40
+ <a class="version-badge" href="/whats-new" data-docs-version="v1.48.0" title="v1.48.0 docs · VI"><span class="dot"></span>v1.48.0</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.47.0" title="v1.47.0 docs · VI"><span class="dot"></span>v1.47.0</a>
40
+ <a class="version-badge" href="/whats-new" data-docs-version="v1.48.0" title="v1.48.0 docs · VI"><span class="dot"></span>v1.48.0</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.47.0" title="v1.47.0 docs · VI"><span class="dot"></span>v1.47.0</a>
40
+ <a class="version-badge" href="/whats-new" data-docs-version="v1.48.0" title="v1.48.0 docs · VI"><span class="dot"></span>v1.48.0</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,55 @@
1
1
  [
2
+ {
3
+ "version": "1.48.0",
4
+ "date": "2026-10-30",
5
+ "status": "stable",
6
+ "title": {
7
+ "en": "Bypass stops at the handoff: every mode asks before work leaves the machine",
8
+ "vi": "Bypass dừng ở bước bàn giao: mọi chế độ hỏi trước khi việc rời khỏi máy"
9
+ },
10
+ "summary": {
11
+ "en": "Pushes, pull requests, publishes and deploys are always approved by you, commands are checked against a full shell syntax tree, approvals gain session and stop answers, and the dashboard streams more smoothly.",
12
+ "vi": "Push, pull request, publish và deploy luôn do bạn duyệt, lệnh được kiểm tra bằng cây cú pháp shell đầy đủ, thẻ duyệt có thêm lựa chọn cho cả session và dừng lượt, dashboard stream mượt hơn."
13
+ },
14
+ "requires": null,
15
+ "items": [
16
+ {
17
+ "kind": "security",
18
+ "en": "Every access mode asks before work leaves this machine: git push in any spelling, pull requests and merges, releases, publish, deploy, registry push, ssh and cloud tools, uploads.",
19
+ "vi": "Mọi chế độ truy cập đều hỏi trước khi việc rời khỏi máy: git push dù viết kiểu nào, pull request và merge, release, publish, deploy, push registry, ssh và tool cloud, upload."
20
+ },
21
+ {
22
+ "kind": "security",
23
+ "en": "Bypass runs the work without asking and stops at the handoff, in personal and company sessions alike, including run_on_host with your sign-in and MCP tools that write outside.",
24
+ "vi": "Bypass chạy việc không hỏi và dừng ở bước bàn giao, ở cả phiên cá nhân lẫn công ty, kể cả run_on_host dùng tài khoản của bạn và công cụ MCP ghi ra ngoài."
25
+ },
26
+ {
27
+ "kind": "security",
28
+ "en": "Commands are read by the policy scanner and a shell syntax tree: a push or a destructive delete inside if/then, a function, case, bash -c, eval or a heredoc is caught.",
29
+ "vi": "Lệnh được đọc bằng bộ quét của policy và cây cú pháp shell: push hay lệnh xoá nguy hiểm nằm trong if/then, function, case, bash -c, eval hay heredoc đều bị bắt."
30
+ },
31
+ {
32
+ "kind": "new",
33
+ "en": "Approvals offer four answers: allow once, allow the same exact action for the session, deny, and deny and stop the turn. A handoff is always approved one at a time.",
34
+ "vi": "Thẻ duyệt có bốn lựa chọn: cho phép một lần, cho lệnh giống hệt chạy cả session, từ chối, và từ chối rồi dừng lượt. Việc bàn giao luôn duyệt từng lần."
35
+ },
36
+ {
37
+ "kind": "new",
38
+ "en": "Projects can refuse commands with autoDeny in .pi/piagent-profile.json. The rules hold in every mode, Bypass included; terminate also ends the agent's turn.",
39
+ "vi": "Project có thể chặn hẳn lệnh bằng autoDeny trong .pi/piagent-profile.json. Luật áp dụng ở mọi chế độ, kể cả Bypass; terminate kết thúc luôn lượt của agent."
40
+ },
41
+ {
42
+ "kind": "improved",
43
+ "en": "Smoother dashboard: a streaming answer redraws only its last paragraph, sidebar rows redraw only when they change, and a dropped connection is noticed and restored sooner.",
44
+ "vi": "Dashboard mượt hơn: câu trả lời đang stream chỉ vẽ lại đoạn cuối, sidebar chỉ vẽ lại dòng thay đổi, kết nối bị rớt được phát hiện và nối lại sớm hơn."
45
+ },
46
+ {
47
+ "kind": "fixed",
48
+ "en": "Approval cards, the dashboard, the terminal and the docs describe each access mode exactly as it behaves; personal sessions are no longer labelled as sandboxed.",
49
+ "vi": "Thẻ duyệt, dashboard, terminal và tài liệu mô tả đúng cách từng chế độ truy cập hoạt động; phiên cá nhân không còn bị ghi là chạy trong sandbox."
50
+ }
51
+ ]
52
+ },
2
53
  {
3
54
  "version": "1.47.0",
4
55
  "date": "2026-10-29",
@@ -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.47.0" title="v1.47.0 docs · VI"><span class="dot"></span>v1.47.0</a>
40
+ <a class="version-badge" href="/whats-new" data-docs-version="v1.48.0" title="v1.48.0 docs · VI"><span class="dot"></span>v1.48.0</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>