@piagent/platform 1.41.0 → 1.42.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 (107) hide show
  1. package/CHANGELOG.md +1006 -2038
  2. package/CONTRIBUTING.md +2 -0
  3. package/README.md +128 -325
  4. package/README.vi.md +149 -143
  5. package/docs/command-reference-vietnamese.md +2 -2
  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 +3 -3
  11. package/docs/team-onboarding.md +2 -2
  12. package/docs-site/architecture.html +71 -63
  13. package/docs-site/assets/docs.css +2736 -1030
  14. package/docs-site/assets/docs.js +451 -43
  15. package/docs-site/assets/og.png +0 -0
  16. package/docs-site/assets/piagent-logo.svg +9 -31
  17. package/docs-site/assets/search-en.json +1 -0
  18. package/docs-site/assets/search-vi.json +1 -0
  19. package/docs-site/benchmark.html +71 -63
  20. package/docs-site/commands.html +72 -64
  21. package/docs-site/content/en/index.html +220 -131
  22. package/docs-site/content/en/quickstart.html +74 -90
  23. package/docs-site/content/en/update.html +80 -0
  24. package/docs-site/content/en/whats-new.html +1 -684
  25. package/docs-site/content/index.html +220 -131
  26. package/docs-site/content/quickstart.html +73 -108
  27. package/docs-site/content/update.html +80 -0
  28. package/docs-site/content/whats-new.html +1 -684
  29. package/docs-site/context-engine.html +73 -65
  30. package/docs-site/ecosystem.html +73 -65
  31. package/docs-site/en/architecture.html +67 -59
  32. package/docs-site/en/benchmark.html +67 -59
  33. package/docs-site/en/commands.html +68 -60
  34. package/docs-site/en/context-engine.html +68 -60
  35. package/docs-site/en/ecosystem.html +68 -60
  36. package/docs-site/en/index.html +281 -220
  37. package/docs-site/en/mcp-approval.html +67 -59
  38. package/docs-site/en/mcp-auth.html +67 -59
  39. package/docs-site/en/mcp-servers.html +68 -60
  40. package/docs-site/en/mcp.html +64 -56
  41. package/docs-site/en/permissions.html +68 -60
  42. package/docs-site/en/profiles.html +68 -60
  43. package/docs-site/en/quickstart.html +142 -150
  44. package/docs-site/en/runtime.html +67 -59
  45. package/docs-site/en/scope.html +68 -60
  46. package/docs-site/en/security.html +64 -56
  47. package/docs-site/en/team.html +67 -59
  48. package/docs-site/en/update.html +228 -0
  49. package/docs-site/en/whats-new.html +1601 -725
  50. package/docs-site/en/windows.html +71 -63
  51. package/docs-site/en/workflows.html +68 -60
  52. package/docs-site/favicon.svg +9 -14
  53. package/docs-site/index.html +281 -220
  54. package/docs-site/mcp-approval.html +70 -62
  55. package/docs-site/mcp-auth.html +70 -62
  56. package/docs-site/mcp-servers.html +71 -63
  57. package/docs-site/mcp.html +70 -62
  58. package/docs-site/permissions.html +72 -64
  59. package/docs-site/profiles.html +72 -64
  60. package/docs-site/quickstart.html +145 -172
  61. package/docs-site/releases.json +4449 -0
  62. package/docs-site/runtime.html +73 -65
  63. package/docs-site/scope.html +73 -65
  64. package/docs-site/security.html +73 -65
  65. package/docs-site/team.html +71 -63
  66. package/docs-site/update.html +228 -0
  67. package/docs-site/whats-new.html +1605 -729
  68. package/docs-site/windows.html +75 -67
  69. package/docs-site/workflows.html +73 -65
  70. package/evals/private-holdout-v1/public-exposure.v2.json +1 -1
  71. package/package.json +1 -1
  72. package/packages/piagent-core/package.json +1 -1
  73. package/packages/piagent-webui/dist/client/assets/App-DBx4BU3F.js +5 -0
  74. package/packages/piagent-webui/dist/client/assets/LineReview-DzonwD-g.js +3 -0
  75. package/packages/piagent-webui/dist/client/assets/{MarkdownMessage-DeLo-xiz.js → MarkdownMessage-DchODuO7.js} +2 -2
  76. package/packages/piagent-webui/dist/client/assets/SessionInspectorDrawer-BHHNlct3.js +1 -0
  77. package/packages/piagent-webui/dist/client/assets/SettingsPage-DX28MsZA.js +1 -0
  78. package/packages/piagent-webui/dist/client/assets/TerminalPanel-C--BiN0p.js +2 -0
  79. package/packages/piagent-webui/dist/client/assets/{TerminalView-r9rG24IO.js → TerminalView-BML7uS6R.js} +3 -3
  80. package/packages/piagent-webui/dist/client/assets/WorkspaceCodeEditor-B7ieqDnt.js +2 -0
  81. package/packages/piagent-webui/dist/client/assets/WorkspaceExplorer-BOafuPU-.js +5 -0
  82. package/packages/piagent-webui/dist/client/assets/WorkspaceQuickOpen-CGoGfUPk.js +1 -0
  83. package/packages/piagent-webui/dist/client/assets/api-BUjrtT1B.js +1 -0
  84. package/packages/piagent-webui/dist/client/assets/index-C7Azrwpq.js +132 -0
  85. package/packages/piagent-webui/dist/client/assets/index-Dqb2hNan.css +1 -0
  86. package/packages/piagent-webui/dist/client/assets/tab-close-Crj8vsUq.js +1 -0
  87. package/packages/piagent-webui/dist/client/assets/ui-preferences-B3UfDp-5.js +1 -0
  88. package/packages/piagent-webui/dist/client/assets/vendor-Ch5hIe0W.js +136 -0
  89. package/packages/piagent-webui/dist/client/index.html +5 -8
  90. package/scripts/build-docs-site.mjs +205 -348
  91. package/scripts/check-public-wording.mjs +2 -1
  92. package/scripts/docs-site-icons.mjs +84 -0
  93. package/scripts/docs-site-nav.mjs +302 -0
  94. package/scripts/docs-site-releases.mjs +227 -0
  95. package/packages/piagent-webui/dist/client/assets/Alert-DGWhP2MM.js +0 -1
  96. package/packages/piagent-webui/dist/client/assets/Button-QItfZUNj.js +0 -1
  97. package/packages/piagent-webui/dist/client/assets/DialogTitle-CyaFPaiW.js +0 -3
  98. package/packages/piagent-webui/dist/client/assets/TerminalPanel-BG-DP_qm.js +0 -2
  99. package/packages/piagent-webui/dist/client/assets/Typography-B9om7Evq.js +0 -1
  100. package/packages/piagent-webui/dist/client/assets/WorkspaceCodeEditor-BnqaR3pK.js +0 -2
  101. package/packages/piagent-webui/dist/client/assets/WorkspaceExplorer-BIxwiGtl.js +0 -5
  102. package/packages/piagent-webui/dist/client/assets/WorkspaceQuickOpen-CK3dILhQ.js +0 -1
  103. package/packages/piagent-webui/dist/client/assets/index-DBUTrEXi.css +0 -1
  104. package/packages/piagent-webui/dist/client/assets/index-rlyRccut.js +0 -102
  105. package/packages/piagent-webui/dist/client/assets/tab-close-BoJRyBO_.js +0 -1
  106. package/packages/piagent-webui/dist/client/assets/ui-preferences-BO3AV7QE.js +0 -10
  107. package/packages/piagent-webui/dist/client/assets/useId-DEefKUAT.js +0 -124
@@ -1,684 +1 @@
1
- <section class="section">
2
- <p class="section-kicker">v1.41.0 · 2026-10-24</p>
3
- <h2 id="v1-41-0">Báo cáo thay đổi giao diện</h2>
4
- <p class="section-lead">Skill <code>fe-change-report</code>: với task front-end cần báo cáo, agent chụp bản cũ và bản mới của các trang bị ảnh hưởng (chạy nền, cùng dữ liệu), khoanh từng thay đổi bằng khung đỏ đánh số trên cả hai ảnh, chạy check và toàn bộ E2E headless, rồi ghi lại business, logic và giao diện đã đổi. Script dùng Playwright có sẵn trong project, không thêm dependency, xuất một file <code>report.html</code> không có script để gửi cho người khác. Dashboard vẽ cùng báo cáo đó trong Tài liệu từ <code>reports/fe-change/&lt;slug&gt;/report.json</code>, có chế độ toàn màn hình; báo cáo được vẽ từ dữ liệu nên WebUI vẫn không hiển thị markup do model tạo.</p>
5
- </section>
6
-
7
- <section class="section">
8
- <p class="section-kicker">v1.40.0 · 2026-10-24</p>
9
- <h2 id="v1-40-0">Project local cũng được báo cho Studio</h2>
10
- <p class="section-lead">Thư mục không có remote đọc được nay cũng được báo cho Studio như một project local (Agent Studio 0.40.0, <code>managed.workspace.v2</code>): repo git theo commit gốc (<code>local/git/…</code>, giống nhau trên mọi máy có cùng lịch sử, kể cả bản clone), thư mục khác theo mã băm của tên máy và đường dẫn (<code>local/dir/…</code>), kèm tên thư mục; đường dẫn không rời khỏi máy. Mỗi lượt agent đều báo, nên Studio biết máy nào chưa báo. Member thấy một dòng cho mọi loại cảnh báo: project của team khác, ngoài danh sách, chưa đăng ký cho team, hoặc thư mục không đọc được. Không chặn gì.</p>
11
- </section>
12
-
13
- <section class="section">
14
- <p class="section-kicker">v1.39.0 · 2026-10-23</p>
15
- <h2 id="v1-39-0">Cảnh báo key dùng sai project</h2>
16
- <p class="section-lead">Cuộc trò chuyện công ty báo cho Studio các repository đang làm (dạng <code>host/path</code> như team memory, không gửi đường dẫn trên máy). Admin thấy trong Logs → "Sai project" khi key của team được dùng cho repo của team khác hoặc ngoài danh sách repo của team (Agent Studio 0.39.0, Team → Repository); member thấy một dòng nhắc, không bị chặn, memory chạy như cũ. Dashboard giữ ngôn ngữ và theme màu sau khi khởi động lại.</p>
17
- </section>
18
-
19
- <section class="section">
20
- <p class="section-kicker">v1.38.2 · 2026-10-23</p>
21
- <h2 id="v1-38-2">Cây thư mục như VS Code, theme màu</h2>
22
- <p class="section-lead">Khung Tệp là cây thư mục: thư mục mở ngay tại chỗ, file đang mở được tô sáng. Chọn theme màu trong Cài đặt → Giao diện hoặc bảng lệnh (⌘K): Dracula, One Dark, Monokai, Nord, Tokyo Night, Catppuccin, Gruvbox, Solarized, GitHub; theme đổi màu cả giao diện, cú pháp trong editor và terminal. Editor và terminal đứng yên khi hội thoại dài cuộn xuống, kéo thanh chia để đổi độ rộng; trên điện thoại nút Tệp/Terminal luôn hiện.</p>
23
- </section>
24
-
25
- <section class="section">
26
- <p class="section-kicker">v1.38.1 · 2026-10-23</p>
27
- <h2 id="v1-38-1">Dashboard thành editor, Bypass không hỏi gì</h2>
28
- <p class="section-lead">Mở, sửa, lưu, đổi tên và xóa file ngay trên dashboard (Cmd/Ctrl+P, tìm kiếm, xung đột khi file đổi trên đĩa); terminal của project (cả cuộc trò chuyện công ty, chạy trong sandbox, có trên macOS); review từng hunk agent sửa ngay trong editor với Giữ và Hoàn tác; Timeline khôi phục về trước một lượt, cá nhân và công ty dùng chung checkpoint với <code>/undo</code>. Giao diện viền vuông như IDE, file và terminal có nút đóng. <strong>Bypass</strong> như Codex: không hỏi, không chặn gì, output vẫn che secret và <code>/undo</code> vẫn hoàn tác được. Cuộc trò chuyện công ty có ba mức Hỏi trước, Toàn quyền (Bypass cũ) và Bypass, khi Harness bật (Agent Studio 0.38.0, Agent Watch 0.15.14 / Windows 0.1.17); admin Studio tắt được.</p>
29
- </section>
30
-
31
- <section class="section">
32
- <p class="section-kicker">Chưa phát hành</p>
33
- <h2 id="unreleased-workspace">Sửa tệp dự án ngay cạnh chat</h2>
34
- <p class="section-lead">Session Hub lưu chỉnh sửa bằng Cmd/Ctrl+S, đánh dấu tab chưa lưu và tạo tệp mới. Khi tệp trên đĩa đã đổi, bạn có thể tải lại, so sánh hoặc xác nhận ghi đè. Quyền ghi hiện tại và đường dẫn được bảo vệ được kiểm tra ở cả personal và company; company ghi trong sandbox hiện có. Agent phải đọc lại tệp cũ sau khi member sửa.</p>
35
- <p>Review thay đổi đã quan sát của agent ngay trong editor: Giữ, Hoàn tác có preview và xác nhận, số hunk và comment theo dòng đưa vào chat. Tệp chưa có bản sửa tự tải lại sau khi agent sửa; bản sửa chưa lưu được giữ. Tệp mới do agent tạo hỗ trợ review; chưa hỗ trợ xóa tệp qua hoàn tác hunk.</p>
36
- <p>Cuộc trò chuyện personal có tab terminal dưới editor, đổi kích thước, Ctrl+C và phát lại khi reload. Gửi @terminal hoặc @terminal:2 để đính output giới hạn dung lượng đã che secret. Thiếu PTY native được báo mà không tắt dashboard; shell company không bao giờ chuyển sang chạy trên host.</p>
37
- <p>Cuộc trò chuyện company có terminal trong sandbox Linux/WSL qua Gateway công ty: chặn mạng, che credential và dừng tiến trình con khi release cuộc trò chuyện. Relay nối lại khôi phục output mà không gửi lại lệnh. macOS báo không khả dụng, không mở shell trên host. Luồng đầy đủ đã kiểm chứng trên Linux arm64; Linux x64 native và WSL còn cần kiểm chứng riêng.</p>
38
- <p>Checkpoint trong Timeline cho xem trước file trước khi khôi phục một hoặc nhiều lượt. Xung đột với sửa đổi của member sẽ dừng khôi phục; commit và vùng stage được giữ nguyên. Cuộc trò chuyện personal cũng có /undo. Khi mất phản hồi trình duyệt, yêu cầu cũ còn qua reload để bạn chủ động kiểm tra kết quả.</p>
39
- <p>Review inline company giữ được hunk chính xác của agent sau các lần làm mới diff nội bộ.</p>
40
- </section>
41
-
42
- <section class="section">
43
- <p class="section-kicker">v1.37.1 · 2026-10-22</p>
44
- <h2 id="v1-37-1">Đóng run mà Studio tin được</h2>
45
- <p class="section-lead">Khi đóng run lỗi trong chốc lát, lần hỏi đóng lại có thể "thành công" mà không tới Studio, và Piagent ghi run là đã đóng. Với Agent Watch 0.15.11 (Windows 0.1.16), lần hỏi lại tới được Studio; với Agent Watch cũ, run được để mở ở đây và được khôi phục khi mở lại cuộc trò chuyện. Helper đóng lỗi trong chốc lát vẫn giữ câu trả lời, báo cáo của nó được gửi lại cho Studio. Team memory không còn gộp hai lệnh khác nhau cùng lỗi thành một bài học. Bảo mật: <code>web_fetch</code> và package proxy chặn địa chỉ nội bộ viết dưới mọi dạng IPv6, và khi có upstream proxy của công ty, package proxy vẫn kiểm tra đích kết nối.</p>
46
- </section>
47
-
48
- <section class="section">
49
- <p class="section-kicker">v1.37.0 · 2026-10-22</p>
50
- <h2 id="v1-37-0">Câu trả lời bị cắt giữa chừng không còn làm dừng task dài</h2>
51
- <p class="section-lead">Khi đường từ Studio tới model bị cắt lúc câu trả lời đang chạy, Studio báo "Request interrupted"; trước đây Piagent coi đó là "không gửi được yêu cầu" và dừng cả task. Giờ Piagent hỏi lại và tự làm tiếp. Thêm <code>piagent studio --rpc</code> để một script điều khiển cuộc trò chuyện công ty qua giao thức RPC của Pi (nhiều tin nhắn, trả lời câu hỏi của agent).</p>
52
- </section>
53
-
54
- <section class="section">
55
- <p class="section-kicker">v1.36.1 · 2026-10-22</p>
56
- <h2 id="v1-36-1">Agent Watch mất kết nối tới Studio trong chốc lát không còn làm dừng task</h2>
57
- <p class="section-lead">Khi Agent Watch trên máy bạn không tới được Studio trong lúc Studio vẫn chạy (đường mạng hay gateway lỗi thoáng qua), Piagent hỏi lại, mỗi lần chờ lâu hơn, trong tối đa 3 phút, rồi làm tiếp; trước đây một lần lỗi như vậy dừng cả task. Bước đóng run cuối lượt cũng được hỏi lại. Mỗi lần chờ được ghi vào log trên máy và báo về Studio.</p>
58
- </section>
59
-
60
- <section class="section">
61
- <p class="section-kicker">v1.36.0 · 2026-10-21</p>
62
- <h2 id="v1-36-0">Team memory học từ chỗ làm sai</h2>
63
- <p class="section-lead">Những gì memory đưa cho một lượt (brief, kết quả <code>memory_search</code>) được gửi lại Studio cùng lượt đó, để Studio chấm theo câu trả lời tiếp theo của member và thôi đưa những ghi chú member nói là sai (cần Agent Studio 0.37.0). Một lệnh lỗi giống nhau hai lần trong một lượt thành bài học; memory của repo bỏ qua task không thêm gì mới; skill hay làm hỏng lượt được đề xuất xem lại trong <code>.pi/piagent-state/skill-proposals</code>, Piagent không tự sửa skill.</p>
64
- </section>
65
-
66
- <section class="section">
67
- <p class="section-kicker">v1.35.1 · 2026-10-21</p>
68
- <h2 id="v1-35-1">Lỗi tạm thời của nhà cung cấp model không còn làm dừng task dài</h2>
69
- <p class="section-lead">Khi máy chủ của model (GPT, Claude) báo lỗi ngay giữa câu trả lời, Piagent hỏi lại sau vài giây; nếu cả vòng bị cắt, vòng sau tự bắt đầu sau một lúc chờ (tối đa 8 lần, khoảng 23 phút cho mỗi tin nhắn của bạn), agent được báo lý do và làm tiếp từ chỗ dở. Mỗi lần hỏi lại được ghi vào log trên máy.</p>
70
- </section>
71
-
72
- <section class="section">
73
- <p class="section-kicker">v1.35.0 · 2026-10-21</p>
74
- <h2 id="v1-35-0">Task dài chạy qua được lúc Studio cập nhật</h2>
75
- <p class="section-lead">Để task chạy qua đêm mà Studio cập nhật hay khởi động lại giữa chừng, Piagent không còn báo lỗi rồi dừng: nó chờ Studio trả lời lại rồi tự làm tiếp, không giới hạn thời gian chờ (Stop vẫn dừng được). Mỗi lần chờ được ghi vào log trên máy và báo về Studio (Logs → Mất kết nối) kèm nguyên nhân: Studio cập nhật, khởi động lại, hay mạng của máy. Một lượt trên dashboard giờ chạy được tới 24 giờ. Cần Studio 0.36.0.</p>
76
- </section>
77
-
78
- <section class="section">
79
- <p class="section-kicker">v1.34.3 · 2026-10-20</p>
80
- <h2 id="v1-34-3">Agent Watch báo cho cuộc trò chuyện công ty</h2>
81
- <p class="section-lead">Cuộc trò chuyện công ty ghi trạng thái vào chỗ Agent Watch không đọc, nên Agent Watch không báo khi nó chờ bạn hay đã xong. Giờ trạng thái được ghi vào thư mục Agent Watch đọc.</p>
82
- </section>
83
-
84
- <section class="section">
85
- <p class="section-kicker">v1.34.2 · 2026-10-20</p>
86
- <h2 id="v1-34-2">Kết quả của helper đến được Studio</h2>
87
- <p class="section-lead">Ở bản 1.34.1, kết quả của subagent bị Studio từ chối vì gửi bằng token đã hết hạn, nên Logs → Lượt agent không có gì. Giờ kết quả được gửi bằng token hiện tại của subagent và được ghi nhận.</p>
88
- </section>
89
-
90
- <section class="section">
91
- <p class="section-kicker">v1.34.1 · 2026-10-20</p>
92
- <h2 id="v1-34-1">Helper báo kết quả, Agent Watch báo khi cần bạn</h2>
93
- <p class="section-lead">Mỗi lần subagent chạy xong đều báo rõ kết quả: xong, lỗi, đã dừng hay chưa rõ (ví dụ verify không trả về kết luận), và Studio hiện kết quả đó trong Logs → Lượt agent. Khi giao việc cho subagent, agent có thể ghi rõ phạm vi, việc cần làm, ràng buộc, phần được phép đụng và bằng chứng cần có. Agent Watch (macOS 0.15.9, Windows 0.1.15) báo khi một cuộc trò chuyện đang chờ bạn duyệt, đang hỏi bạn, hoặc khi agent xong việc; file trạng thái chỉ có tên cuộc trò chuyện và tên project. Trong Source Changes, bạn bấm số dòng để comment trên diff rồi gửi tất cả cho agent thành một tin nhắn có đúng file và dòng; kết quả của subagent review hiện ngay dưới dòng nó nói tới. Piagent hỏi Studio những gì nó hỗ trợ trước khi dùng tính năng mới (cần Agent Studio 0.34).</p>
94
- </section>
95
-
96
- <section class="section">
97
- <p class="section-kicker">v1.33.0 · 2026-10-20</p>
98
- <h2 id="v1-33-0">Chạy trên Pi 1.3.0</h2>
99
- <p class="section-lead">Piagent chuyển từ Pi 0.87.1 lên Pi 1.3.0. Lời gọi tool có tham số JSON hỏng bị từ chối và trả lại cho model thay vì chạy với phần đọc được; lỗi gateway tạm thời được tự thử lại; cuộc trò chuyện mở lại giữ đúng các tool đang bật; Terminal báo trạng thái (đang làm, chờ bạn, xong, lỗi) cho terminal hỗ trợ OSC 7501. Lệnh <code>pi</code> cá nhân cũng lên 1.3.0. Sau khi cập nhật, Agent Watch đang chạy tự ghi lại binding. GPT-6.1 Sol trong cuộc trò chuyện công ty vẫn giữ cửa sổ 272k để chi phí không đổi.</p>
100
- </section>
101
-
102
- <section class="section">
103
- <p class="section-kicker">v1.32.1 · 2026-10-19</p>
104
- <h2 id="v1-32-1">Bypass được giữ sau khi tải lại, tab đang dùng không bị đăng xuất</h2>
105
- <p class="section-lead">Bật Bypass ngay sau khi agent trả lời có lúc bị Gateway từ chối vì cuộc trò chuyện vừa thay đổi, nên tải lại trang vẫn thấy “Hỏi trước”; giờ lệnh được gửi lại theo trạng thái mới nhất. Mở một cuộc trò chuyện khác cũng đang Bypass không còn hiện nhầm “Hỏi trước”. Phiên đăng nhập trên trình duyệt không còn hết hạn đúng 8 giờ sau khi mở khi tab vẫn đang dùng (lượt chạy hoặc treo lâu không còn bị đẩy ra màn hình hết phiên); chỉ tab bỏ không quá 8 giờ mới phải mở lại, và tối đa 7 ngày.</p>
106
- </section>
107
-
108
- <section class="section">
109
- <p class="section-kicker">v1.32.0 · 2026-10-19</p>
110
- <h2 id="v1-32-0">Lượt bị lỗi hoặc bấm Stop được dừng cả ở Studio</h2>
111
- <p class="section-lead">Khi một lượt trả lời lỗi giữa chừng hoặc member bấm Stop, Piagent báo Studio dừng lượt đó, để tài khoản của cuộc trò chuyện rảnh ngay cho lượt sau. Trước đây, qua Cloudflare, Studio có thể không biết kết nối đã đứt và tiếp tục stream tới 10 phút, khiến các lượt thử lại bị báo “tài khoản đang bận”. Cần Agent Studio 0.32.0.</p>
112
- </section>
113
-
114
- <section class="section">
115
- <p class="section-kicker">v1.31.1 · 2026-10-19</p>
116
- <h2 id="v1-31-1">memory_ask có ngay sau khi cập nhật</h2>
117
- <p class="section-lead">Cuộc trò chuyện công ty đầu tiên sau khi Studio lên 0.30.0 trước đây chưa có tool <span class="inline-code">memory_ask</span>. Giờ tool có mặt mỗi khi cuộc trò chuyện có memory của team; Studio cũ thì tool báo dùng <span class="inline-code">memory_search</span>.</p>
118
- </section>
119
-
120
- <section class="section">
121
- <p class="section-kicker">v1.31.0 · 2026-10-19</p>
122
- <h2 id="v1-31-0">Memory của team đi theo việc đang làm</h2>
123
- <p class="section-lead">Cùng Agent Studio 0.30.0: brief mở đầu bằng luật của team; memory của branch và thư mục đang làm được ưu tiên; điều agent nói “đã fix” là claim cho tới khi check pass (verified). Tool mới <span class="inline-code">memory_ask</span> trả lời câu hỏi từ memory của team, kèm nguồn. Thư mục chứa nhiều repo, repo không có remote <span class="inline-code">origin</span> và lỗi “dubious ownership” trên WSL không còn làm memory tắt im lặng.</p>
124
- </section>
125
-
126
- <section class="section">
127
- <p class="section-kicker">v1.30.1 · 2026-10-18</p>
128
- <h2 id="v1-30-1">Terminal công ty không còn hiện tên model; mở ở thư mục home báo đúng lý do</h2>
129
- <p class="section-lead">Header, thanh dưới và câu trả lời /model, /thinking của Terminal công ty chỉ còn vai trò và mức suy luận (<span class="inline-code">Main agent (Rất cao) · Subagent review bật</span>), không còn tên model của Harness. Cảnh báo “pi crashed… Run /bug” được viết lại vì /bug bị tắt trong cuộc trò chuyện công ty.</p>
130
- <p class="section-lead">Chạy <span class="inline-code">piagent studio</span> ở thư mục home (<span class="inline-code">~</span>) trước đây báo <span class="inline-code">managed-launch-binding-changed</span> (“Agent Watch hoặc Piagent vừa cập nhật”) dù không có gì cập nhật. Piagent công ty không mở thư mục chứa cấu hình công ty, nên giờ nó báo đúng lý do và cách mở: vào thư mục dự án rồi chạy lại, hoặc <span class="inline-code">piagent studio --project ~/dự-án</span>.</p>
131
- </section>
132
-
133
- <section class="section">
134
- <p class="section-kicker">v1.30.0 · 2026-10-18</p>
135
- <h2 id="v1-30-0">Context lớn đi qua mạng chậm; Terminal công ty gọn như dashboard</h2>
136
- <p class="section-lead">Cuộc trò chuyện dài (context lớn tới khoảng 1 MB) gửi lên Studio được nén gzip khi Studio hỗ trợ (Agent Studio 0.28.2), nhỏ hơn khoảng 3 lần; cùng Studio 0.28.2, mạng chậm nhưng vẫn đang gửi không còn bị cắt sau 15 giây. Terminal công ty có dòng tóm tắt cuối lượt (request, token, thời gian, tốc độ), hiện Subagent đang chạy và branch git ở thanh dưới, thu gọn kết quả memory, ghi “Đang làm…”, chạy /bypass và /fast với một lần Enter, và báo đang kết nối Agent Watch lúc mở.</p>
137
- </section>
138
-
139
- <section class="section">
140
- <p class="section-kicker">v1.29.0 · 2026-10-18</p>
141
- <h2 id="v1-29-0">Terminal công ty có giao diện riêng; dừng lượt không còn làm hỏng cuộc trò chuyện</h2>
142
- <p class="section-lead">Terminal công ty (<span class="inline-code">piagent studio</span>) giờ có phần đầu riêng: team, model và mức suy luận theo Harness, quyền, Fast, memory. Thanh dưới hiện đúng mức suy luận, không hiện chi phí USD; plan hiện thành checklist; lúc chờ bạn trả lời câu hỏi thì ghi “Đang chờ bạn trả lời”. <span class="inline-code">/share</span> và <span class="inline-code">/bug</span> bị chặn vì gửi hội thoại công ty ra ngoài; <span class="inline-code">/login</span>, <span class="inline-code">/model</span>, <span class="inline-code">/thinking</span>… báo Harness của team quyết định. Dừng một lượt khi lệnh đang chạy không còn làm hỏng các lượt sau (cùng Agent Studio 0.28.1, Agent Watch 0.15.7).</p>
143
- </section>
144
-
145
- <section class="section">
146
- <p class="section-kicker">v1.28.3 · 2026-10-18</p>
147
- <h2 id="v1-28-3">Agent Watch tự cập nhật không còn làm gián đoạn Terminal công ty</h2>
148
- <p class="section-lead">Ngay sau khi Agent Watch tự cập nhật, <span class="inline-code">piagent studio</span> và dashboard chờ Watch ghi lại cấu hình (như sau khi Piagent cập nhật) thay vì báo <span class="inline-code">managed-launch-binding-changed</span> trong khoảng một phút; mọi mã băm vẫn được kiểm lại trước khi chạy.</p>
149
- </section>
150
-
151
- <section class="section">
152
- <p class="section-kicker">v1.28.2 · 2026-10-18</p>
153
- <h2 id="v1-28-2">Không còn lỗi “binding changed” ngay sau khi cập nhật</h2>
154
- <p class="section-lead">Ngay sau khi Piagent cập nhật, <span class="inline-code">piagent studio</span> không còn báo <span class="inline-code">managed-launch-binding-changed</span> trong lúc Agent Watch chưa ghi lại cấu hình: nó chờ tối đa 90 giây (“Agent Watch đang cập nhật cấu hình…”, hoặc báo Agent Watch không chạy), kiểm lại mọi mã băm rồi chạy tiếp. Member không phải nhập lại cấu hình bằng tay.</p>
155
- </section>
156
-
157
- <section class="section">
158
- <p class="section-kicker">v1.28.1 · 2026-10-18</p>
159
- <h2 id="v1-28-1">Terminal công ty và Pi cá nhân không còn giẫm chân nhau</h2>
160
- <p class="section-lead">Pi cá nhân không còn chết khi Piagent bị nạp hai lần (extension trỏ vào một bản Piagent khác): <span class="inline-code">piagent-update</span> và installer tự gỡ (có backup), <span class="inline-code">piagent-doctor</span> báo lỗi. Các mục công ty cũ của Agent Watch trong Pi cá nhân (provider <span class="inline-code">agent_watch_*</span>, model mặc định trỏ vào đó) được dọn khi máy đã dùng binding công ty. Pi cá nhân không tiếp tục cuộc trò chuyện công ty nữa và chỉ cách mở bằng <span class="inline-code">piagent studio</span>; Terminal công ty cũng hướng dẫn mở lại đúng cách, trả lời <span class="inline-code">/help</span> tại chỗ (không gửi model), và dừng hẳn khi bị dừng từ bên ngoài.</p>
161
- </section>
162
-
163
- <section class="section">
164
- <p class="section-kicker">v1.28.0 · 2026-10-17</p>
165
- <h2 id="v1-28-0">Team memory v2: ghi mỗi lượt đúng một lần, tóm tắt lại sau compaction</h2>
166
- <p class="section-lead">Với Agent Studio 0.28.0, mỗi lượt của cuộc trò chuyện công ty có mã riêng và được ghi vào outbox trước khi gửi, nên mất phản hồi, máy tắt ngang hay hai phiên cùng lúc cũng không làm memory rút kiến thức hai lần. Sau compaction, agent nhận lại bản tóm tắt mới cho yêu cầu gần nhất. Mỗi lượt kèm tối đa ba lần “check fail → sửa → pass” quan sát được (không đoán nguyên nhân). Bản tóm tắt rỗng không bị hỏi lại mỗi lượt, cuối lượt chờ tối đa 4,5 giây khi engine không trả lời, và trên Studio 0.27.x memory vẫn được ghi.</p>
167
- </section>
168
-
169
- <section class="section">
170
- <p class="section-kicker">v1.27.1 · 2026-10-17</p>
171
- <h2 id="v1-27-1">Team memory chạy ổn cả khi agent đang gọi model</h2>
172
- <p class="section-lead">Một lời gọi model làm mới token của run và huỷ token cũ, nên các commit gửi ngay sau bản tóm tắt và lệnh <span class="inline-code">memory_search</span> chạy cạnh một request bị Studio từ chối (401): commit của repo không vào được memory. Giờ lời gọi memory bị từ chối như vậy sẽ làm mới token (dùng chung với các request của role đó, như web search) rồi gửi lại một lần. Cần Agent Studio 0.27.1 (bản 0.27.0 đã rút lại).</p>
173
- </section>
174
-
175
- <section class="section">
176
- <p class="section-kicker">v1.27.0 · 2026-10-17</p>
177
- <h2 id="v1-27-0">Team memory: agent công ty nhớ những gì team đã chốt trong từng repo</h2>
178
- <p class="section-lead">Khi team bật memory trên Agent Studio 0.27.0, cuộc trò chuyện công ty mới mở đầu bằng một bản tóm tắt ngắn từ memory của team về repo (quyết định, quy tắc, việc đang làm, rút từ hội thoại và commit trước đó). Mỗi lượt được lưu lại cho team (đã lọc secret); agent và subagent tìm được trong memory bằng <span class="inline-code">memory_search</span>. Memory lỗi hay tắt không bao giờ làm hỏng hay chậm một lượt.</p>
179
- </section>
180
-
181
- <section class="section">
182
- <p class="section-kicker">v1.26.1 · 2026-10-16</p>
183
- <h2 id="v1-26-1">Đổi tên cuộc trò chuyện được cả khi lượt đang chạy</h2>
184
- <p class="section-lead">Đổi tên từ menu của cuộc trò chuyện trong lúc lượt đang chạy (nhất là cuộc trò chuyện công ty) từng hiện <span class="inline-code">session-revision-stale</span> và giữ tên cũ. Giờ tên mới được ghi ngay giữa lượt; nếu đổi tên, tạo nhánh hay lưu trữ vẫn không được, hộp thoại nói lý do bằng lời.</p>
185
- </section>
186
-
187
- <section class="section">
188
- <p class="section-kicker">v1.26.0 · 2026-10-15</p>
189
- <h2 id="v1-26-0">Lệnh / và phím tắt trên dashboard, /undo, dev server chạy qua nhiều lượt</h2>
190
- <p class="section-lead">Cuộc trò chuyện công ty làm việc như trong editor. Gõ <span class="inline-code">/</span> trên dashboard để dùng lệnh của Terminal (<span class="inline-code">/name</span>, <span class="inline-code">/fork</span>, <span class="inline-code">/thinking</span>, <span class="inline-code">/bypass</span>, <span class="inline-code">/undo</span>, <span class="inline-code">/help</span>…), lệnh chạy ngay trên dashboard và không gửi cho model; phím tắt ⌘⇧O chat mới, ⌘/ mở lệnh, Esc dừng lượt. <span class="inline-code">/undo</span> trả file mà lượt trước của agent đã sửa về như cũ, từng lượt một, và không đụng file bạn đã sửa sau đó. Agent giữ được dev server qua nhiều lượt (<span class="inline-code">start_process</span>), thấy ngay lỗi TypeScript của file vừa sửa, và <span class="inline-code">piagent studio --prompt … --json</span> xuất luồng sự kiện như <span class="inline-code">pi --mode json</span>.</p>
191
- </section>
192
-
193
- <section class="section">
194
- <p class="section-kicker">v1.25.0 · 2026-10-13</p>
195
- <h2 id="v1-25-0">Thiếu môi trường thì agent xin quyền, duyệt xong là chạy</h2>
196
- <p class="section-lead">Cuộc trò chuyện công ty không còn dừng ở “máy thiếu Java/Docker, em không làm được”. Máy thiếu runtime (JDK, Node đúng version…), cần tài khoản của bạn (git pull/push, registry riêng) hay cần ghi ra ngoài project, agent xin <strong>run_on_host</strong>: đúng một lệnh chạy trên máy bạn, ngoài sandbox, sau khi bạn duyệt (Bypass cũng hỏi). Docker đã cài mà chưa bật thì agent xin <strong>start_docker</strong>, chờ Docker chạy rồi làm tiếp ngay trong cuộc trò chuyện đó. Việc chỉ bạn làm được (mật khẩu sudo, trình cài, đăng nhập) thì agent hỏi kèm các bước và lựa chọn “Đã xong, làm tiếp / Bỏ qua”. <code>fetch_origin</code> fetch được repo nằm trong folder chứa nhiều repo, và lượt chỉ đọc bằng <code>git -C</code> không còn bị Harness coi là có sửa code.</p>
197
- </section>
198
-
199
- <section class="section">
200
- <p class="section-kicker">v1.24.0 · 2026-10-13</p>
201
- <h2 id="v1-24-0">Chọn Fast ngay khi tạo cuộc trò chuyện công ty</h2>
202
- <p class="section-lead">Khi Harness của team cho phép Fast, trang “Cuộc trò chuyện mới” có nút <strong>Fast: tắt / Fast: bật</strong> ngay cạnh model công ty. Bật trước khi gửi thì cuộc trò chuyện chạy Fast từ tin nhắn đầu tiên: main agent trả lời nhanh hơn trên model GPT (Codex), token tính vào quota gấp 2,5 lần, model và mức suy luận không đổi. Nút Fast ở đầu cuộc trò chuyện chuyển màu vàng khi đang bật để dễ nhận ra.</p>
203
- </section>
204
-
205
- <section class="section">
206
- <p class="section-kicker">v1.23.1 · 2026-10-13</p>
207
- <h2 id="v1-23-1">Câu hỏi của agent luôn nằm cuối cuộc trò chuyện</h2>
208
- <p class="section-lead">Câu hỏi và yêu cầu duyệt trước đây hiện phía trên lượt đang chạy, nên lượt chạy dài đẩy câu hỏi khỏi màn hình: mở một cuộc trò chuyện đang chờ bạn thì chỉ thấy activity. Giờ chúng luôn nằm cuối cuộc trò chuyện, ngay trên ô nhập, và trang tự cuộn tới khi có câu hỏi mới hoặc khi bạn mở cuộc trò chuyện đang chờ.</p>
209
- <p class="section-lead">Thẻ câu hỏi dễ đọc hơn: chữ câu hỏi và đáp án lớn hơn, đáp án thoáng hơn, số của đáp án đang chọn được tô đậm. Ở giao diện sáng, nút “Để agent tự quyết” là nút viền thay vì nút đen nổi hơn cả “Gửi câu trả lời”.</p>
210
- </section>
211
-
212
- <section class="section">
213
- <p class="section-kicker">v1.23.0 · 2026-10-13</p>
214
- <h2 id="v1-23-0">Fast mode cho cuộc trò chuyện công ty, tool lỗi được báo về Studio</h2>
215
- <p class="section-lead">Khi Harness của team trong Agent Studio cho phép, dashboard có nút Fast ở đầu cuộc trò chuyện và Terminal có lệnh <span class="inline-code">/fast on|off|status</span>. Mỗi cuộc trò chuyện mới bắt đầu ở chế độ tắt. Khi bật, call của main agent trên model GPT (Codex) xin tier ưu tiên: cùng model và mức suy luận, trả lời nhanh hơn, và Studio tính token của call đó vào quota của key ở mức 2,5 lần. Subagent chạy như thường. Trên model Claude hay model của vendor dùng API key thì không thêm gì và lượt chạy ở tốc độ thường. Nếu Studio hay provider từ chối, call được gửi lại một lần ở tốc độ thường và cuộc trò chuyện quay về tốc độ thường kèm một ghi chú. Cần Studio 0.26.0 và Agent Watch có mang <span class="inline-code">fast_mode</span> của Harness.</p>
216
- <p class="section-lead">Một tool chạy lỗi trong phiên công ty (Docker, lệnh mạng, test…) được báo về Agent Studio (Logs → “Tool lỗi”) để quản trị viên đọc được lý do: tool, mã lỗi, lệnh hoặc đường dẫn, phần đầu và cuối của output lỗi, hệ điều hành và máy có Docker engine hay không. Secret được che và thư mục home ghi là <span class="inline-code">~</span> trước khi gửi; không gửi prompt, câu tìm kiếm hay brief của subagent, và tool do bạn dừng hoặc từ chối thì không báo.</p>
217
- <p class="section-lead">Sửa lỗi: sau khi quản trị viên đổi Harness (ví dụ main agent từ mức suy luận high sang max cố định), cuộc trò chuyện công ty mới tạo từ dashboard không gửi được tin nhắn đầu, chỉ hiện “Pi đã nhận yêu cầu và phiên đang đồng bộ lại”. Giờ cuộc trò chuyện mới bắt đầu ở mức mà Harness cho phép.</p>
218
- </section>
219
-
220
- <section class="section">
221
- <p class="section-kicker">v1.22.1 · 2026-10-12</p>
222
- <h2 id="v1-22-1">Dashboard không còn quay mãi khi project nằm trên ổ chậm</h2>
223
- <p class="section-lead">Sửa lỗi trên Windows: dashboard mở ra nhưng cứ hiện “Đang mở Piagent…”. Project nằm trên ổ Windows nhìn từ WSL (<span class="inline-code">/mnt/d/…</span>), nơi Git duyệt cây thư mục rất chậm. Phiên công ty chạy lượt quét đó mà không có giới hạn nên không trả lời ai trong lúc ấy, và dashboard chờ nó, cũng không có giới hạn. Giờ dashboard chờ phiên công ty tối đa 15 giây cho mỗi lượt đọc; quá hạn thì vẫn mở với các cuộc trò chuyện cá nhân, ghi rõ “Phiên công ty đang chạy nhưng không trả lời” kèm cách xử lý, và một phút sau hỏi lại.</p>
224
- <p class="section-lead">Trang của một cuộc trò chuyện cho Git 8 giây mỗi repository để liệt kê file thay đổi. Repository nào lâu hơn thì hiện chưa có danh sách file thay đổi và được thử lại sau 5 phút. Trên Windows, nên để project trong ổ của Ubuntu (<span class="inline-code">~/projects</span>): project ở <span class="inline-code">/mnt/c</span> hay <span class="inline-code">/mnt/d</span> vẫn dùng được nhưng chậm.</p>
225
- </section>
226
-
227
- <section class="section">
228
- <p class="section-kicker">v1.22.0 · 2026-10-09</p>
229
- <h2 id="v1-22-0">Đính kèm được mọi file code và văn bản, như các coding agent khác</h2>
230
- <p class="section-lead">Giờ bạn đính kèm được <span class="inline-code">.html</span>, <span class="inline-code">.css</span>, <span class="inline-code">.js</span>/<span class="inline-code">.ts</span>/<span class="inline-code">.tsx</span>, <span class="inline-code">.py</span>, <span class="inline-code">.go</span>, <span class="inline-code">.java</span>, <span class="inline-code">.sql</span>, <span class="inline-code">.xml</span>, <span class="inline-code">.svg</span>, <span class="inline-code">.toml</span> và bất kỳ đuôi nào khác, cả file không có đuôi như <span class="inline-code">Dockerfile</span>, <span class="inline-code">Makefile</span>. File được gửi dưới đúng tên của nó nên agent biết đó là HTML hay Python; Piagent vẫn kiểm tra nội dung đúng là văn bản. File nhị phân bị từ chối ngay kèm cách gửi khác: bảng tính thì xuất sang .csv, file trình chiếu thì .pdf, file nén, video, font thì để trong project cho agent tự đọc bằng tool.</p>
231
- <p class="section-lead">Sửa lỗi: tin nhắn có file đính kèm không còn hiện hai lần (một lần kèm nguyên nội dung file) sau khi lượt xong; chỉ còn câu bạn gõ và thẻ file.</p>
232
- </section>
233
-
234
- <section class="section">
235
- <p class="section-kicker">v1.21.1 · 2026-10-09</p>
236
- <h2 id="v1-21-1">Bật Bypass ngay cả khi lượt đang chạy, và Bypass được giữ</h2>
237
- <p class="section-lead">Sửa lỗi: bật Bypass lúc một lệnh đang chờ bạn duyệt không có tác dụng. Gateway từ chối đổi quyền khi lượt đang chạy, còn thông báo lỗi lại nằm trong bảng vừa đóng, nên trông như đã bật nhưng tải lại trang thì vẫn là “Hỏi trước”. Giờ cuộc trò chuyện công ty đổi giữa “Hỏi trước” và Bypass lúc nào cũng được, kể cả giữa lượt; quyền được đọc lại ở mỗi lệnh nên các lệnh sau làm theo lựa chọn mới. Lệnh đang chờ vẫn giữ thẻ duyệt (Cho phép hoặc Từ chối). Kết quả đổi quyền hiện thành thông báo ở trên cùng.</p>
238
- </section>
239
-
240
- <section class="section">
241
- <p class="section-kicker">v1.21.0 · 2026-10-09</p>
242
- <h2 id="v1-21-0">Việc cần bạn quyết hiện từng cái một, và biết ngay cuộc trò chuyện nào xong hay đang chờ bạn</h2>
243
- <p class="section-lead">Câu hỏi và yêu cầu duyệt của agent không còn xếp chồng dài xuống trang: mỗi lần chỉ hiện một thẻ, phía trên có thanh “Việc cần bạn quyết · 1/3” ghi rõ ai hỏi (main agent hay subagent nào), loại việc (Hỏi / Duyệt) và cho bấm chuyển sang việc khác. Việc của main agent hiện trước vì câu trả lời của bạn định hướng việc của subagent; sau đó tới subagent theo thứ tự làm việc (scout, research, verify, review); trong cùng một agent, việc hỏi trước hiện trước. Trả lời xong thẻ này thì thẻ kế tiếp hiện lên.</p>
244
- <p class="section-lead">Làm nhiều cuộc trò chuyện cùng lúc: góc phải trên màn hình hiện thông báo khi một cuộc trò chuyện khác xong lượt, bị lỗi, bị dừng, hoặc đang chờ bạn trả lời hay duyệt; bấm “Mở” để vào đúng cuộc trò chuyện đó. Thông báo “Xong” tự ẩn sau vài giây, việc đang chờ bạn thì giữ đến khi bạn trả lời hoặc mở. Ở cột trái, cuộc trò chuyện đang chờ bạn sáng viền cam và ghi “Cần bạn trả lời” hoặc “Cần duyệt”, cuộc trò chuyện xong khi bạn đang ở chỗ khác ghi “Xong · chưa xem” cho đến khi bạn mở, và cả hai được đưa lên đầu mục “Đang chạy · cần chú ý”. Tiêu đề tab đếm số việc đang chờ, ví dụ “(2) Piagent”.</p>
245
- <p class="section-lead">Studio ghi lại mỗi lần cuộc trò chuyện công ty được thu gọn (compact): lý do, kích thước trước và sau, kết quả, hiện trong Logs → Lượt agent (cần Agent Studio 0.25.0).</p>
246
- </section>
247
-
248
- <section class="section">
249
- <p class="section-kicker">v1.20.0 · 2026-10-09</p>
250
- <h2 id="v1-20-0">Cài package trong sandbox công ty không phải duyệt nữa</h2>
251
- <p class="section-lead">Lệnh bash thường tải được từ các registry quen thuộc: npm, PyPI, Go proxy, crates.io, Maven Central, Gradle, NuGet, RubyGems, Packagist, pub.dev, CocoaPods, Hex, và tải về public từ GitHub (ví dụ bản Gradle mà <span class="inline-code">./gradlew</span> cần). Nhờ vậy <span class="inline-code">npm install</span>, <span class="inline-code">pip install</span>, <span class="inline-code">go mod download</span>, <span class="inline-code">./mvnw test</span> hay <span class="inline-code">./gradlew test</span> chạy ngay, không phải chờ bạn duyệt. Piagent đi qua một proxy chạy ngoài sandbox: chỉ các host đó, cổng 443 và 80, không bao giờ tới IP trực tiếp, máy của bạn hay mạng nội bộ. Host khác bị chặn, lỗi ghi rõ host nào, và lệnh cần host đó vẫn phải qua <span class="inline-code">run_with_network</span> để bạn duyệt. Muốn thêm registry riêng của công ty, ghi tên host (hoặc <span class="inline-code">*.domain</span>) vào <span class="inline-code">~/.piagent/sandbox-domains</span>, mỗi dòng một host. Thông tin đăng nhập registry và git vẫn không vào sandbox, nên không push hay publish được.</p>
252
- <p class="section-lead">Ở chế độ Bypass, <span class="inline-code">run_with_docker</span> chạy luôn không cần duyệt, giống <span class="inline-code">run_with_network</span>; chỉ push, deploy, đăng nhập registry hay lệnh xoá không rõ đích là vẫn hỏi.</p>
253
- <p class="section-lead">Sửa lỗi: subagent chạy lâu hơn 15 phút (ví dụ verify chạy cả bộ test trong lúc main agent chờ) không còn bị dừng với <span class="inline-code">managed-helper-cancelled</span> nữa. Nhờ subagent review xem lại code đã commit ở các lượt trước thì nó không còn báo “không có patch”. Review đọc các commit kể từ commit, nhánh hoặc <span class="inline-code">HEAD~N</span> mà agent chỉ ra; nếu lượt hiện tại chưa sửa gì, nó đọc các commit của nhánh kể từ lúc tách khỏi nhánh chính.</p>
254
- </section>
255
-
256
- <section class="section">
257
- <p class="section-kicker">v1.19.0 · 2026-10-08</p>
258
- <h2 id="v1-19-0">Task có checklist được làm đến hết, và mỗi lượt báo rõ đã xong hay chưa</h2>
259
- <p class="section-lead">Trong cuộc trò chuyện công ty, khi main agent tự dừng lúc checklist còn bước (ví dụ làm xong STEP06 rồi dừng, dù bạn giao đến STEP22) và Harness của team bắt buộc plan, Harness tự cho agent làm tiếp bước kế tiếp, như bạn gửi “tiếp tục”. Nó dừng khi checklist xong, khi bạn bấm Stop hoặc nhắn tin, khi gặp lỗi, hoặc sau 2 vòng liên tiếp không xong thêm bước nào. Cuối mỗi lượt có một dòng: Hoàn thành, Dừng giữa chừng còn x/y bước (kèm lý do), Lượt dừng vì lỗi, hoặc Bạn đã dừng lượt này, với nút Tiếp tục khi task chưa xong; danh sách cuộc trò chuyện cũng hiện trạng thái này. Bước bạn bảo để sau được đánh dấu “để sau”, không bao giờ bị ghi là xong; gửi “tiếp tục” là agent nhận lại checklist đang dở. Lượt mà agent đã commit vẫn được chạy check và review.</p>
260
- <p class="section-lead">Sandbox công ty dùng được Docker: khi máy đang chạy Docker (Docker Desktop, Colima, OrbStack…), agent có <span class="inline-code">run_with_docker</span> để chạy một lệnh bạn duyệt với internet và Docker, ví dụ bật database cho test bằng <span class="inline-code">docker compose up -d</span>, <span class="inline-code">docker build</span> hay test Testcontainers. Docker không mang theo thông tin đăng nhập registry; Bypass vẫn hỏi khi lệnh hoặc file compose mount thư mục ngoài project. <span class="inline-code">./gradlew</span> và <span class="inline-code">./mvnw</span> dùng lại bản Gradle/Maven đã có trên máy nên không phải xin mạng. Folder chứa nhiều repo (FE, BE… mỗi folder một git) hiện “N repo”: bấm vào để xem từng repo, nhánh và số file thay đổi, rồi đổi nhánh trong repo đó; danh sách folder đầy thì tự bỏ folder đã mất hoặc lâu nhất, không còn báo “Không thể thêm thư mục”.</p>
261
- </section>
262
-
263
- <section class="section">
264
- <p class="section-kicker">v1.18.0 · 2026-10-08</p>
265
- <h2 id="v1-18-0">Đổi nhánh Git trên dashboard, tự thử lại khi lỗi tạm thời, Claude Haiku 5.5</h2>
266
- <p class="section-lead">Bấm vào tên nhánh dưới tên cuộc trò chuyện hoặc ở thanh trạng thái để chọn nhánh khác hoặc tạo nhánh mới. Dashboard không cho đổi khi còn cuộc trò chuyện đang chạy trong folder, và báo đúng lý do khi Git từ chối (ví dụ thay đổi chưa commit sẽ bị ghi đè). Khi câu trả lời của model hỏng vì lý do tạm thời (stream bị cắt, model hoặc gateway của Studio không trả lời), Piagent tự hỏi lại tối đa 2 lần trước khi báo lỗi; lỗi quota, key hay chính sách vẫn báo ngay. Claude Haiku 5.5, model nhanh nhất của Anthropic, có thể chọn ở chế độ công ty và cá nhân.</p>
267
- </section>
268
-
269
- <section class="section">
270
- <p class="section-kicker">v1.17.0 · 2026-10-08</p>
271
- <h2 id="v1-17-0">Dashboard hiện nhánh Git của project</h2>
272
- <p class="section-lead">Dưới tên cuộc trò chuyện, ở thanh trạng thái và cạnh từng nhóm project trong sidebar, dashboard hiện project đang đứng ở nhánh Git nào, kể cả worktree. Khi Git không ở nhánh nào (detached HEAD), dashboard hiện mã commit ngắn bằng màu cảnh báo. Đổi nhánh trong Terminal thì dashboard cập nhật khi bạn quay lại tab.</p>
273
- </section>
274
-
275
- <section class="section">
276
- <p class="section-kicker">v1.16.3 · 2026-10-08</p>
277
- <h2 id="v1-16-3">Dashboard cập nhật xong vẫn tự kiểm tra bản mới</h2>
278
- <p class="section-lead">Trước đây, cập nhật bằng nút trên dashboard sẽ khởi động lại dashboard với việc kiểm tra bản mới bị tắt, nên dashboard không báo bản kế tiếp cho tới khi khởi động lại máy. Bản này sửa lỗi đó, kể cả khi cập nhật lên 1.16.3 từ bản cũ.</p>
279
- </section>
280
-
281
- <section class="section">
282
- <p class="section-kicker">v1.16.2 · 2026-10-08</p>
283
- <h2 id="v1-16-2">Terminal nói giống dashboard</h2>
284
- <p class="section-lead">Có bản Piagent mới thì Terminal (<span class="inline-code">pi</span> và <span class="inline-code">piagent studio</span>) hỏi <strong>Cập nhật ngay</strong> hoặc <strong>Để sau</strong> (nhắc lại sau 1 giờ), chỉ giữa các lượt, kèm một dòng dưới footer; <span class="inline-code">/piagent-update</span> kiểm tra ngay.</p>
285
- <ul>
286
- <li><span class="inline-code">/bypass</span> trong <span class="inline-code">piagent studio</span> bật/tắt Bypass cho cuộc trò chuyện, giống công tắc trên dashboard; footer hiện "Bypass" khi đang bật.</li>
287
- <li>Lệnh cần internet được hỏi kèm lý do, lý do Bypass vẫn hỏi và hậu quả khi đồng ý hay từ chối.</li>
288
- <li>Lỗi khi gửi, lỗi khi mở phiên công ty và ghi chú của Harness (check, review, phản biện của subagent, "bạn quyết định") hiện bằng tiếng Việt như trên dashboard.</li>
289
- <li>Với Agent Watch 0.15.2: sau khi Watch cập nhật mà cần cấp lại quyền Keychain, Watch hỏi bằng dialog và cập nhật lại cấu hình Piagent ngay.</li>
290
- </ul>
291
- <p>Bản này đổi trình khởi chạy công ty: Agent Watch tự cập nhật cấu hình ở lần đồng bộ kế tiếp (vài phút). Nếu <span class="inline-code">piagent studio</span> báo cấu hình đã đổi, mở Agent Watch → Studio và nhập lại cấu hình cho Piagent.</p>
292
- </section>
293
-
294
- <section class="section">
295
- <p class="section-kicker">v1.16.1 · 2026-10-07</p>
296
- <h2 id="v1-16-1">Báo bản mới rõ ràng, kiểm tra mỗi giờ</h2>
297
- <p class="section-lead">Khi có bản Piagent mới, dashboard mở một dialog ghi rõ sẽ đổi gì và nút <strong>Cập nhật ngay</strong>; chọn <strong>Để sau</strong> thì 1 giờ sau nhắc lại. Cập nhật xong, dashboard mở lại báo đã thành công. Dashboard và Terminal tự kiểm tra bản mới mỗi giờ.</p>
298
- <ul>
299
- <li>Tab dashboard không còn bị mất đăng nhập khi một server Piagent khác trên máy (runtime công ty, lần mở khác) đăng nhập.</li>
300
- <li>Tab đã hết phiên (Piagent khởi động lại, quá 8 giờ) không còn gọi lại liên tục với lỗi 401 mà nói rõ cách mở lại: <span class="inline-code">piagent dashboard</span> hoặc Agent Watch.</li>
301
- </ul>
302
- <p>Cập nhật từ 1.16.0 không cần nhập lại cấu hình trong Agent Watch.</p>
303
- </section>
304
-
305
- <section class="section">
306
- <p class="section-kicker">v1.16.0 · 2026-10-07</p>
307
- <h2 id="v1-16-0">Bypass cho cuộc trò chuyện công ty</h2>
308
- <p class="section-lead">Chọn <strong>Bypass</strong> trong tùy chọn cuộc trò chuyện mới hoặc trên thanh đầu cuộc trò chuyện ("Hỏi trước" vẫn là mặc định). Lệnh cần internet (cài package, tải file, git pull, test có server hay browser) chạy luôn, không hỏi. Vẫn hỏi trước khi đẩy hoặc gửi dữ liệu ra ngoài (git push, publish, deploy, upload, ssh), chạy migration database, xóa mà không rõ đích hoặc dùng sudo.</p>
309
- <ul>
310
- <li>Harness công ty thêm subagent trong lúc bạn đang làm: dùng được ngay từ tin nhắn kế tiếp, không cần mở cuộc trò chuyện mới. Với Studio 0.20.1, lượt đang chạy không bị dừng khi Harness được lưu.</li>
311
- <li>Phiên cá nhân "Toàn quyền" không còn hỏi trước <span class="inline-code">git add</span> toàn bộ; xóa, migration và thao tác ra ngoài vẫn hỏi.</li>
312
- </ul>
313
- <p>Cập nhật từ 1.15.x không cần nhập lại cấu hình trong Agent Watch.</p>
314
- </section>
315
-
316
- <section class="section">
317
- <p class="section-kicker">v1.15.2 · 2026-10-07</p>
318
- <h2 id="v1-15-2">Cuộc trò chuyện công ty dài tự thu gọn trở lại, và sớm hơn</h2>
319
- <p class="section-lead">Tóm tắt hội thoại dài ở chế độ công ty gửi nhầm key giữ chỗ thay vì quyền của lượt chạy, nên Studio từ chối (401 <span class="inline-code">authentication_required</span>, hiện là "Chưa chọn tài khoản" / "CLI trực tiếp" trong theo dõi request) trước mỗi bước và hội thoại cứ dài thêm. Giờ tóm tắt dùng quyền của lượt chạy và Studio ghi là <span class="inline-code">summary</span>.</p>
320
- <ul>
321
- <li>Hội thoại được tóm tắt khi đạt 90% cửa sổ của model và muộn nhất ở 300k token: 244,8k với GPT 272k (giá gấp đôi trên 272k), 300k với model 1M thay vì khoảng 984k. Khoảng 20k token gần nhất vẫn giữ nguyên văn.</li>
322
- <li>Tóm tắt bị lỗi được thử lại sau 1, 2, 4 … phút (tối đa 30) thay vì trước mỗi bước.</li>
323
- </ul>
324
- <p>Cập nhật từ 1.15.x không cần nhập lại cấu hình trong Agent Watch.</p>
325
- </section>
326
-
327
- <section class="section">
328
- <p class="section-kicker">v1.15.1 · 2026-10-07</p>
329
- <h2 id="v1-15-1">Studio thấy mỗi call của model dùng để làm gì</h2>
330
- <p class="section-lead">Mỗi call model trong phiên công ty báo cho Studio nó dùng để làm gì: trả lời tin nhắn, bước tiếp sau tool (kèm tên tool vừa chạy), lượt harness yêu cầu, tóm tắt hội thoại, subagent nhận việc (kèm tiêu đề một dòng của việc) hoặc tìm web. Không gửi thêm nội dung prompt nào khác. Studio 0.20.0 hiện chúng ở Logs → "Lượt agent".</p>
331
- <ul>
332
- <li>Nhiều cuộc trò chuyện công ty trong cùng một folder không còn nhận nhầm thay đổi của nhau: check, review và kế hoạch chỉ xét các file chính cuộc trò chuyện đó đã sửa.</li>
333
- <li>Cuộc trò chuyện công ty mới không mở được runtime nói rõ lý do, và Lưu trữ hoặc Khởi động lại dùng được mà không cần khởi động lại dashboard.</li>
334
- <li><span class="inline-code">mvnw</span>/<span class="inline-code">gradlew</span> tải bị chặn được chỉ sang <span class="inline-code">run_with_network</span>; <span class="inline-code">piagent doctor</span> chạy <span class="inline-code">piagent-doctor</span>.</li>
335
- </ul>
336
- <p>Cập nhật từ 1.14.x hoặc 1.15.0 không cần nhập lại cấu hình trong Agent Watch.</p>
337
- </section>
338
-
339
- <section class="section">
340
- <p class="section-kicker">v1.15.0 · 2026-10-07</p>
341
- <h2 id="v1-15-0">Subagent bị từ chối nói đúng lý do</h2>
342
- <p class="section-lead">Khi Studio từ chối một subagent công ty, Piagent nay báo lý do của Studio thay vì luôn báo "cấu hình vừa thay đổi". Ví dụ: không tài khoản AI nào của công ty phục vụ model của vai trò này, và quản trị viên cần gắn hoặc bật một tài khoản. Cần Agent Watch 0.15.0; với Studio 0.19.0, subagent thiếu tài khoản lúc bắt đầu lượt sẽ tự lấy model đang phục vụ khi được gọi.</p>
343
- <ul>
344
- <li>Lệnh in nhiều và chạy lâu (bộ test, build) không còn bị dừng với <span class="inline-code">managed-tool-output-too-large</span>.</li>
345
- <li>Lệnh ghi vào <span class="inline-code">/tmp</span> ở chế độ công ty được chỉ sang <span class="inline-code">$TMPDIR</span> hoặc thư mục project.</li>
346
- <li><span class="inline-code">piagent-update</span> chạy từ <span class="inline-code">npm exec</span> cài helper lâu dài; trên Windows, Pi được tìm thấy trong npm prefix tùy chỉnh.</li>
347
- </ul>
348
- <p>Cập nhật từ 1.14.x không cần nhập lại cấu hình trong Agent Watch.</p>
349
- </section>
350
-
351
- <section class="section">
352
- <p class="section-kicker">v1.14.0 · 2026-10-06</p>
353
- <h2 id="v1-14-0">Cập nhật giữ lựa chọn model của bạn</h2>
354
- <p class="section-lead"><span class="inline-code">piagent-update</span>, nút cập nhật trong dashboard và <span class="inline-code">piagent-setup</span> chỉ đặt default model và danh sách model của Pi ở lần cài đầu. Từ bản này, mỗi lần cập nhật giữ nguyên model bạn đã chọn và danh sách của bạn, chỉ thêm model bản mới lần đầu đưa vào; model bạn đã bỏ ra không bị thêm lại. Muốn áp lại preset của Piagent: <span class="inline-code">piagent-update -- --reset-model-scope</span>.</p>
355
- <ul>
356
- <li>Trên Windows (WSL2), cập nhật không còn báo WSL2 là thử nghiệm: đó là cách Piagent chạy trên Windows từ 1.13.0.</li>
357
- <li>Windows cài bằng một lệnh PowerShell: xem trang <a href="/windows">Cài trên Windows</a>.</li>
358
- </ul>
359
- <p>Cập nhật từ 1.13.x không cần nhập lại cấu hình trong Agent Watch.</p>
360
- </section>
361
-
362
- <section class="section">
363
- <p class="section-kicker">v1.13.1 · 2026-10-06</p>
364
- <h2 id="v1-13-1">Cuộc trò chuyện giữ chỗ đang đọc, chữ của agent có định dạng</h2>
365
- <p class="section-lead">Mở lại một cuộc trò chuyện không còn nhảy về tin đầu tiên: mỗi cuộc giữ đúng chỗ đang đọc, cuộc mở lần đầu hoặc đang đọc tới cuối thì mở ở tin mới nhất và theo câu trả lời đang chạy. Chữ agent viết giữa các tool call hiển thị có định dạng như câu trả lời, không còn lộ markdown thô. Cập nhật từ 1.13.0 không cần import lại trong Agent Watch.</p>
366
- </section>
367
-
368
- <section class="section">
369
- <p class="section-kicker">v1.13.0 · 2026-10-06</p>
370
- <h2 id="v1-13-0">Piagent trên Windows qua WSL2</h2>
371
- <p class="section-lead">Thành viên dùng Windows chạy Piagent trong WSL2 (Ubuntu), cả cuộc trò chuyện công ty lẫn cá nhân. Cuộc trò chuyện công ty có sandbox bubblewrap giữ đúng những gì sandbox macOS bảo đảm, và Agent Watch cho Windows giữ key công ty. Hướng dẫn cài đặt: <a href="https://github.com/Vt-mmm/piagent/blob/main/docs/vi/windows.md">Piagent trên Windows</a>.</p>
372
- <ul>
373
- <li>Project, cache package của project và thư mục tạm riêng ghi được; folder khác trong home chỉ đọc để tham chiếu; mục ẩn trong home không có trong sandbox; file credential đọc ra rỗng.</li>
374
- <li>Lệnh chưa được duyệt mạng chỉ tới được server do chính nó mở; tiến trình lệnh để lại kết thúc cùng lệnh.</li>
375
- <li>Từ WSL, hộp chọn folder là hộp thoại của Windows và link mở trong trình duyệt Windows.</li>
376
- <li>Chạy thẳng trên Windows là bản xem trước cho chế độ cá nhân; <code>piagent-update</code> chưa chạy ở đó.</li>
377
- </ul>
378
- <p>Sau khi cập nhật, mỗi thành viên nhập lại cấu hình Piagent trong Agent Watch (macOS: Studio → Áp dụng cho Piagent; Windows: Kết nối Piagent trong WSL).</p>
379
- </section>
380
-
381
- <section class="section">
382
- <p class="section-kicker">v1.12.1 · 2026-10-06</p>
383
- <h2 id="v1-12-1">Nhánh cuộc trò chuyện công ty gửi được tin nhắn</h2>
384
- <p class="section-lead">Tạo nhánh (fork) một cuộc trò chuyện công ty để giữ context giờ gửi tin nhắn bình thường. Trước đây nhánh vẫn hiện trong danh sách nhưng mọi tin nhắn đều báo “Tin nhắn chưa được gửi”. Nhánh tạo bằng bản cũ cần tạo lại sau khi cập nhật.</p>
385
- </section>
386
-
387
- <section class="section">
388
- <p class="section-kicker">v1.12.0 · 2026-10-06</p>
389
- <h2 id="v1-12-0">@ tới mọi folder, skill dùng bằng /, và test chạy được trong sandbox công ty</h2>
390
- <p class="section-lead">Chỉ cho agent đúng file hay folder cần đọc, dùng lại skill và command đã có, và để agent tự chạy unit test lẫn integration test của project.</p>
391
- <div class="grid cols-2">
392
- <article class="card"><h3 id="at-mentions">@ file và folder</h3><p>Gõ <code>@</code> trong khung chat để chọn file, folder của project; gõ <code>~/</code> hoặc <code>/</code> để chọn folder khác trên máy. Agent đọc được folder ngoài project, chỉ đọc; file ẩn trong home, <code>~/Library</code> và file chứa credential vẫn bị chặn.</p></article>
393
- <article class="card"><h3 id="kept-drafts">Giữ tin nhắn đang soạn</h3><p>Tin nhắn gõ dở ở mỗi cuộc trò chuyện và ở khung chat mới vẫn còn khi chuyển sang cuộc trò chuyện khác hay tải lại trang, cùng file đã đính kèm.</p></article>
394
- <article class="card"><h3 id="skills-commands">Skill và command</h3><p>Skill và command trong <code>.claude</code>, <code>.codex</code>, <code>.agents</code> và <code>.pi</code> của project và trên máy dùng được ngay: model thấy danh sách skill, gõ <code>/</code> ở đầu tin nhắn để chọn <code>/command</code> hoặc <code>/skill:tên</code>.</p></article>
395
- <article class="card"><h3 id="tests-in-sandbox">Test trong sandbox công ty</h3><p>Cache package giữ theo project (npm, pnpm, pip, uv, Go, Cargo, Gradle, Maven, NuGet…), server và database trên localhost, Xcode đã chọn, JDK, .NET. Chạy <code>piagent studio --doctor</code> để xem ngôn ngữ nào sẵn sàng. Docker và iOS Simulator chưa dùng được trong sandbox.</p></article>
396
- </div>
397
- </section>
398
-
399
- <section class="section">
400
- <p class="section-kicker">v1.11.1 · 2026-10-05</p>
401
- <h2 id="v1-11-1">Cập nhật xong là dashboard chạy bản mới</h2>
402
- <p class="section-lead">Bấm cập nhật trong dashboard hay chạy <code>piagent-update</code>, dashboard đều mở lại trên bản vừa cài, không còn giữ giao diện của bản cũ.</p>
403
- <div class="grid cols-2">
404
- <article class="card"><h3 id="restart-after-update">Khởi động lại sau khi cập nhật</h3><p>Nút cập nhật cài bản mới rồi khởi động lại dashboard và mở trong tab mới. Ở 1.11.0, bước khởi động lại không chạy được trên bản cài từ npm.</p></article>
405
- <article class="card"><h3 id="replace-older-dashboard">Thay dashboard của bản cũ</h3><p>Sau <code>piagent-update</code>, lệnh <code>piagent dashboard</code> dừng dashboard của bản cũ còn đang chạy và mở dashboard của bản mới.</p></article>
406
- </div>
407
- </section>
408
-
409
- <section class="section">
410
- <p class="section-kicker">v1.11.0 · 2026-10-05</p>
411
- <h2 id="v1-11-0">Cập nhật bằng một nút, và dashboard như một trình soạn code</h2>
412
- <p class="section-lead">Dashboard tự kiểm tra bản mới và cập nhật Pi cùng Piagent khi bạn bấm. Thanh trạng thái, bảng lệnh và Cài đặt có ô tìm kiếm giúp mọi thao tác đều nằm trong tầm phím.</p>
413
- <div class="grid cols-3">
414
- <article class="card"><h3 id="one-click-update">Cập nhật một nút</h3><p>Dashboard kiểm tra khi mở và mỗi 6 giờ. Có bản mới thì thanh trạng thái báo "Cập nhật Piagent"; bấm là Pi và Piagent được cài cùng nhau rồi dashboard mở lại trong tab mới. Pi luôn lên đúng bản Piagent đã kiểm chứng, và nút bị khoá khi đang có lượt chạy.</p></article>
415
- <article class="card"><h3 id="command-palette">Bảng lệnh</h3><p>⌘K hoặc Ctrl+K mở mọi thao tác, mọi mục cài đặt và mọi cuộc trò chuyện theo tên; gõ không dấu vẫn tìm được. ⌘, hoặc Ctrl+, mở Cài đặt.</p></article>
416
- <article class="card"><h3 id="settings-search">Cài đặt tìm được</h3><p>Ô tìm kiếm tìm cài đặt theo việc nó làm, các mục được chia nhóm, có mục Cập nhật và Phím tắt. Thanh trạng thái dưới đáy cho biết Gateway, số lượt đang chạy và phiên bản.</p></article>
417
- </div>
418
- </section>
419
-
420
- <section class="section">
421
- <p class="section-kicker">v1.10.0 · 2026-10-05</p>
422
- <h2 id="v1-10-0">Main agent hỏi lại khi chưa rõ, subagent được phản biện brief</h2>
423
- <p class="section-lead">Khi yêu cầu còn để ngỏ một quyết định, main agent hỏi bạn bằng thẻ câu hỏi có lựa chọn đánh số thay vì đoán. Subagent được nêu bằng chứng khi brief lệch yêu cầu, và bất đồng lần hai thì bạn quyết. Hết quota hay patch quá lớn không còn làm dừng việc.</p>
424
- <div class="grid cols-3">
425
- <article class="card"><h3 id="ask-user">Hỏi lại bằng lựa chọn</h3><p>1–4 câu hỏi, mỗi câu 2–4 lựa chọn đánh số, luôn có "Khác" để tự nhập và "Để agent tự quyết". Bấm số để chọn, Enter để gửi. Bấm Dừng giữa chừng thì khi "tiếp tục", agent hỏi lại chứ không chọn thay bạn.</p></article>
426
- <article class="card"><h3 id="objections">Subagent phản biện brief</h3><p>Subagent đọc nguyên văn yêu cầu và plan trước brief. Brief sai hoặc lệch yêu cầu thì subagent nêu bằng chứng và main agent phải trả lời. Bất đồng lần hai, hội thoại ghi "Cần bạn quyết".</p></article>
427
- <article class="card"><h3 id="fallback">Chạy tiếp khi hết quota</h3><p>Subagent hết quota hoặc tài khoản đang nghỉ sẽ chạy lại trên model dự phòng của Harness. Patch trên 120 KB được review theo từng phần rồi gộp findings.</p></article>
428
- </div>
429
- </section>
430
-
431
- <section class="section">
432
- <p class="section-kicker">v1.9.3 · 2026-10-03</p>
433
- <h2 id="v1-9-3">Gõ tiếng Việt không gửi nhầm, subagent đọc trang gọn hơn</h2>
434
- <p class="section-lead">Phím Enter dùng để chốt chữ khi gõ dấu chỉ chốt chữ, không gửi tin. Bấm Enter hai lần liên tiếp cũng chỉ tạo một cuộc trò chuyện và gửi một tin. Subagent đọc mỗi trang web ít hơn, nên một câu hỏi tin tức tốn ít token hơn hẳn.</p>
435
- <div class="grid cols-3">
436
- <article class="card"><h3 id="ime-enter">Enter khi gõ dấu</h3><p>Với bộ gõ Telex, VNI hay các bộ gõ khác, Enter dùng để chốt chữ không còn gửi tin hay tạo cuộc trò chuyện. Shift+Enter vẫn xuống dòng.</p></article>
437
- <article class="card"><h3 id="send-once">Gửi đúng một lần</h3><p>Bấm Enter hai lần, hoặc Enter rồi bấm nút gửi, trước khi trang kịp cập nhật vẫn chỉ tạo một cuộc trò chuyện và gửi một tin.</p></article>
438
- <article class="card"><h3 id="fetch-cap">Subagent đọc trang gọn hơn</h3><p>Subagent đọc tối đa 20.000 ký tự mỗi trang, mặc định 12.000. Main agent vẫn đọc được tới 100.000 ký tự.</p></article>
439
- </div>
440
- </section>
441
-
442
- <section class="section">
443
- <p class="section-kicker">v1.9.2 · 2026-10-03</p>
444
- <h2 id="v1-9-2">Việc trên web để subagent nghiên cứu làm, khung chat không giật</h2>
445
- <p class="section-lead">Ở chế độ công ty có subagent nghiên cứu, mọi việc trên web do subagent này làm trên model rẻ hơn. Main agent chỉ nhận bản tóm tắt kèm nguồn. Gửi tin nhắn trong cuộc trò chuyện dài không còn kéo trang lên đầu.</p>
446
- <div class="grid cols-3">
447
- <article class="card"><h3 id="research-web">Web cho subagent nghiên cứu</h3><p>Khi Harness có subagent nghiên cứu, main agent không còn công cụ web. Search và đọc trang chạy trên model của subagent nghiên cứu.</p></article>
448
- <article class="card"><h3 id="search-engine">Biết engine nào đã search</h3><p>Mỗi kết quả search ghi rõ engine đã trả lời: Tavily, Exa hay Parallel qua search pool của công ty, hoặc search riêng của nhà cung cấp model.</p></article>
449
- <article class="card"><h3 id="chat-jump">Khung chat đứng yên</h3><p>Gửi tin nhắn không còn làm lịch sử biến mất trong chốc lát và kéo trang lên đầu. Thanh trên hiện đúng số subagent mà Harness bật.</p></article>
450
- </div>
451
- </section>
452
-
453
- <section class="section">
454
- <p class="section-kicker">v1.9.1 · 2026-10-03</p>
455
- <h2 id="v1-9-1">Subagent khảo sát và xác minh, tìm web cho mọi vai</h2>
456
- <p class="section-lead">Ở chế độ công ty, Harness của team bật thêm được hai subagent chạy model rẻ. Subagent khảo sát đọc code trước khi sửa. Subagent xác minh chạy lại check và đối chiếu kết luận với bằng chứng. Mọi vai, kể cả vai chạy model API key, tìm web qua search pool của team.</p>
457
- <div class="grid cols-3">
458
- <article class="card"><h3 id="scout-helper">Subagent khảo sát</h3><p>Chỉ đọc project, không lên web và không chạy lệnh. Kết quả trả về kèm file và dòng. Agent chính giao phần đọc rộng cho nó để giữ context cho việc sửa.</p></article>
459
- <article class="card"><h3 id="verify-helper">Subagent xác minh</h3><p>Chạy check của repo trong sandbox chỉ-đọc, không có mạng, và đối chiếu từng yêu cầu với code và nguồn gốc. Mỗi yêu cầu được trả lời là đạt, không đạt hoặc không kiểm được, kèm bằng chứng. Check nó chạy qua được tính vào quy trình của lượt.</p></article>
460
- <article class="card"><h3 id="search-pool">Tìm web qua search pool</h3><p><span class="inline-code">web_search</span> hỏi search pool của Studio trước: key tìm kiếm của team, rồi tới nguồn không cần key. Nhờ vậy vai chạy model API key cũng tìm được web.</p></article>
461
- <article class="card"><h3 id="enabled-helpers">Chỉ subagent được bật</h3><p>Agent chính chỉ thấy các subagent mà Harness bật. Dashboard hiện số subagent đang chạy trên số được bật.</p></article>
462
- <article class="card"><h3 id="sandbox-tests">Sandbox chạy được test của project</h3><p>Sandbox đọc được file dịch tên <span class="inline-code">auth.json</span> và giấu hẳn file <span class="inline-code">.env*</span> (trừ file mẫu), nên type-check, Vitest và Next chạy được mà không lộ secret. E2E bằng Chromium của Playwright chạy qua lệnh có mạng mà bạn duyệt.</p></article>
463
- <article class="card"><h3 id="installer-hints">Bộ cài gọn hơn</h3><p><span class="inline-code">piagent-install</span> và <span class="inline-code">piagent-setup</span> không còn gợi ý lệnh đã bỏ ở 1.9.0. Chúng chỉ nhắc <span class="inline-code">/mcp</span> và <span class="inline-code">/subagents-doctor</span> khi lần cài đó có cài chúng.</p></article>
464
- </div>
465
- <p>Đã chạy thật một lượt ở chế độ công ty qua Studio. Subagent khảo sát đọc repo trước khi sửa, subagent xác minh báo 6/6 yêu cầu đạt, review không có lỗi chặn, và mọi request đều được tính usage.</p>
466
- </section>
467
-
468
- <section class="section">
469
- <p class="section-kicker">v1.9.0 · 2026-10-02</p>
470
- <h2 id="v1-9-0">Nói việc bằng lời, Harness của team lo phần kiểm tra</h2>
471
- <p class="section-lead">Bỏ task contract và các lệnh workflow: bạn giao việc như nói với đồng nghiệp, guard vẫn kiểm tra từng tool call. Chế độ công ty chạy qua Agent Studio và Agent Watch; Harness tự yêu cầu chạy check, cho subagent review và gửi lỗi chặn lại cho agent sửa. Xem <a href="/ecosystem">Hệ sinh thái</a>.</p>
472
-
473
- <div class="benchmark-metrics" aria-label="Số liệu kiểm chứng bản 1.9.0">
474
- <div class="benchmark-metric"><span>Kịch bản chạy thật</span><strong>13/13</strong><small>9 cá nhân, 4 chế độ công ty, trên bản cài cuối</small></div>
475
- <div class="benchmark-metric"><span>Test tự động</span><strong>5.800+</strong><small>unit, integration và security; 0 lỗi</small></div>
476
- <div class="benchmark-metric"><span>Test trình duyệt</span><strong>27/27</strong><small>dashboard và WebUI trên Chromium</small></div>
477
- <div class="benchmark-metric"><span>Guard gọn hơn</span><strong>−854 dòng</strong><small>code chỉ phục vụ task contract (4993 → 4139)</small></div>
478
- </div>
479
-
480
- <figure class="shot">
481
- <img src="/assets/shots/company-run-done.jpg" alt="Một lượt ở chế độ công ty: agent sửa code và chạy test, kết quả Check đã qua và Review không có lỗi chặn ghi dưới câu trả lời" loading="lazy" width="1600" height="1000">
482
- <figcaption>Một lượt ở chế độ công ty: agent sửa code và chạy test, một subagent review bản sửa, kết quả ghi ngay dưới câu trả lời.</figcaption>
483
- </figure>
484
-
485
- <div class="grid cols-3">
486
- <article class="card"><h3 id="freeform">Giao việc bằng lời thường</h3><p>Không còn <span class="inline-code">/workflow</span>, <span class="inline-code">/fresh</span>, <span class="inline-code">/onboard</span> hay task contract. Guard vẫn chặn file bảo vệ, kiểm profile quyền, file quá lớn, sửa trên bản đã cũ, và hỏi bạn trước push hay publish.</p></article>
487
- <article class="card"><h3 id="harness">Harness của team</h3><p>Studio quyết định mỗi lượt cần kế hoạch, check và review ở mức gợi ý hay bắt buộc. Review do một subagent riêng làm; lỗi chặn được gửi lại cho agent trong số vòng sửa team đặt.</p></article>
488
- <article class="card"><h3 id="network">Mạng theo lần duyệt</h3><p>Lệnh ở chế độ công ty chạy không mạng. Khi cần cài package, agent xin chạy đúng một lệnh có mạng; thẻ duyệt ghi rõ câu lệnh và bạn cho phép một lần.</p></article>
489
- <article class="card"><h3 id="stop">Dừng và tiếp tục</h3><p>Nút Dừng có hiệu lực suốt lượt, kể cả lúc review đang chạy. Lượt bị dừng ghi rõ là đã dừng, không báo lỗi model; bấm Tiếp tục để làm tiếp từ các bước đã giữ.</p></article>
490
- <article class="card"><h3 id="reconnect">Kết nối lại chế độ công ty</h3><p>Nếu phần chạy của công ty đang tắt (máy vừa khởi động, vừa cập nhật), cuộc trò chuyện báo rõ và có nút Kết nối lại ngay tại chỗ.</p></article>
491
- <article class="card"><h3 id="local-state">Không lẫn vào git</h3><p>Thư mục <span class="inline-code">.pi/piagent-state</span> tự có <span class="inline-code">.gitignore</span>; trạng thái chạy không còn hiện trong <span class="inline-code">git status</span> của project.</p></article>
492
- <article class="card"><h3 id="queue">Xếp hàng khi công ty bận</h3><p>Khi mọi tài khoản model của công ty đang bận, yêu cầu tự chờ tới lượt (tối đa 20 phút) thay vì báo lỗi. Lượt đang chạy hiện bước “Chờ tài khoản công ty rảnh”; nút Dừng vẫn dùng được.</p></article>
493
- <article class="card"><h3 id="many-conversations">Nhiều cuộc trò chuyện cùng lúc</h3><p>Tạo hay gửi trong một cuộc trò chuyện không còn bị từ chối chỉ vì cuộc khác vừa đổi. Hai thư mục trùng tên (hai bản clone) hiện thêm vị trí để chọn đúng.</p></article>
494
- <article class="card"><h3 id="model-scope">Dọn model không còn</h3><p><span class="inline-code">piagent-doctor</span> chỉ ra model đã cấu hình mà Pi không còn biết; <span class="inline-code">piagent-model-scope --prune</span> chỉ xoá đúng các dòng đó.</p></article>
495
- </div>
496
- </section>
497
-
498
- <section class="section">
499
- <p class="section-kicker">Ảnh từ dashboard</p>
500
- <h2 id="v1-9-0-anh">Những gì thành viên thấy khi làm việc</h2>
501
- <div class="shot-grid">
502
- <figure class="shot">
503
- <img src="/assets/shots/network-approval.jpg" alt="Thẻ duyệt một lệnh có mạng, ghi đúng câu lệnh npm install sẽ chạy" loading="lazy" width="1600" height="1000">
504
- <figcaption>Duyệt một lệnh có mạng: thẻ ghi đúng câu lệnh và điều xảy ra khi cho phép hay từ chối.</figcaption>
505
- </figure>
506
- <figure class="shot">
507
- <img src="/assets/shots/new-chat-models.jpg" alt="Chọn model khi mở cuộc trò chuyện mới: nhóm Công ty và nhóm Cá nhân" loading="lazy" width="1600" height="1000">
508
- <figcaption>Cuộc trò chuyện mới: chọn model của công ty hoặc model cá nhân trong cùng một dashboard.</figcaption>
509
- </figure>
510
- <figure class="shot">
511
- <img src="/assets/shots/company-review-running.jpg" alt="Đang review: thanh trên ghi Subagent 1/2 và nút Dừng vẫn còn" loading="lazy" width="1600" height="1000">
512
- <figcaption>Review đang chạy: thanh trên ghi Subagent 1/2, nút Dừng vẫn hoạt động.</figcaption>
513
- </figure>
514
- <figure class="shot">
515
- <img src="/assets/shots/personal-edit-test.jpg" alt="Một lượt cá nhân sửa code, diff hiện ngay trong thẻ Sửa" loading="lazy" width="1600" height="1000">
516
- <figcaption>Chế độ cá nhân: mỗi bước đọc, sửa, chạy lệnh là một thẻ; diff mở ngay tại chỗ.</figcaption>
517
- </figure>
518
- </div>
519
- </section>
520
-
521
- <section class="section">
522
- <p class="section-kicker">Kiểm chứng</p>
523
- <h2 id="v1-9-0-kiem-chung">Chạy thật như một thành viên</h2>
524
- <p class="section-lead">Mỗi kịch bản do script điều khiển trình duyệt thật trên bản đã cài, gửi tin nhắn như người dùng rồi kiểm tra kết quả trên đĩa. Lỗi trải nghiệm tìm thấy được sửa kèm test rồi chạy lại.</p>
525
- <div class="table-wrap"><table>
526
- <thead><tr><th>Kịch bản</th><th>Kết quả</th></tr></thead>
527
- <tbody>
528
- <tr><td>Công ty · bỏ dấu tiếng Việt cho slug, thêm test</td><td>2 file đổi, test qua, "Check đã qua trên code cuối · Review không có lỗi chặn"</td></tr>
529
- <tr><td>Công ty · bấm Dừng lúc review đang chạy</td><td>"Lượt bị dừng trước khi kiểm chứng xong", không báo lỗi</td></tr>
530
- <tr><td>Công ty · cài package cần mạng</td><td>Thẻ duyệt ghi đúng lệnh; sau khi cho phép, package có trong <span class="inline-code">package.json</span></td></tr>
531
- <tr><td>Công ty · nhắn thêm lúc lượt đang chạy</td><td>Tin được giữ, gửi khi lượt xong và được trả lời</td></tr>
532
- <tr><td>Cá nhân · sửa code, chạy test, commit và push</td><td>Push chờ duyệt trên trình duyệt; dừng lệnh dài không để lại tiến trình</td></tr>
533
- <tr><td>Cá nhân · đọc <span class="inline-code">.env</span></td><td>Bị chặn, không lộ giá trị; agent chỉ cách tự mở</td></tr>
534
- </tbody>
535
- </table></div>
536
- <p>Kết quả benchmark và journey của các bản trước được đo khi còn task contract; chúng là số liệu lịch sử, bản 1.9.0 chưa đo lại.</p>
537
- </section>
538
-
539
- <div class="callout">
540
- <strong>Các bản trước</strong>
541
- <p>Phần dưới là ghi chú của các bản cũ, đúng với thời điểm phát hành. Từ bản 1.9.0, task contract, trajectory, completion receipt và các lệnh workflow nhắc tới bên dưới đã bỏ.</p>
542
- </div>
543
-
544
- <section class="section">
545
- <p class="section-kicker">v1.8.0</p>
546
- <h2 id="v1-8-0">Astra, Sol và Luna trong Piagent</h2>
547
- <p class="section-lead">Pi 0.87.1 đưa ba model GPT-6 vào danh sách đã đăng nhập. Phiên mới ưu tiên Sol High; tier routing vẫn là lựa chọn bật riêng.</p>
548
- <div class="grid cols-3">
549
- <article class="card"><h3>Luna</h3><p>Việc gọn, rõ phạm vi và có thể kiểm tra: tier low ở Medium effort.</p></article>
550
- <article class="card"><h3>Sol</h3><p>Công việc lập trình hằng ngày: tier medium/high; mặc định phiên mới ở High effort khi có quyền dùng.</p></article>
551
- <article class="card"><h3>Astra</h3><p>Việc rộng hoặc mơ hồ: tier ultra ở Extra High. Model đã pin và phiên cũ được giữ nguyên.</p></article>
552
- </div>
553
- <p>Router chỉ chọn model có trong catalog đã đăng nhập; fallback 5.6 được ghi rõ. Kết quả 108 phiên cũ không phải phép đo GPT-6 và bản này không claim tiết kiệm token.</p>
554
- </section>
555
-
556
- <section class="section">
557
- <p class="section-kicker">v1.7.1</p>
558
- <h2 id="v1-7-0">Phiên dài giữ đúng việc, context và số liệu rõ ràng</h2>
559
- <p class="section-lead">v1.7.1 cập nhật Pi 0.86.1, sửa phục hồi phiên và bổ sung chờ trong phiên đang mở.</p>
560
- <div class="grid cols-3">
561
- <article class="card"><h3>Chờ theo yêu cầu</h3><p>Nhờ agent chờ tới lần kiểm tra tiếp theo; timer không gọi model trong khoảng chờ. Phiên phải còn mở.</p></article>
562
- <article class="card"><h3>Context và usage</h3><p>Context ưu tiên file dùng được; token và kết quả kiểm tra được gắn đúng task.</p></article>
563
- <article class="card"><h3>Giới hạn bằng chứng</h3><p>14 phiên từng lỗi đã PASS khi chạy lại riêng. Không gộp thành điểm 108 phiên mới hoặc claim tiết kiệm token tổng thể.</p></article>
564
- </div>
565
- </section>
566
-
567
- <section class="section">
568
- <p class="section-kicker">v1.6.1 · Reliability patch</p>
569
- <h2 id="v1-6-1">UI đúng trạng thái, review repo ngoài an toàn, helper ít tốn hơn</h2>
570
- <p class="section-lead">Bản vá này giữ nguyên model và thinking level, nhưng siết chặt lifecycle để response chỉ hiện khi task thật sự hoàn tất, đồng thời giới hạn helper và quyền đọc source ngoài theo đúng session.</p>
571
- <div class="grid cols-3">
572
- <article class="card"><h3 id="conversation-truth">Conversation truth</h3><p>Draft, retry và completion còn pending ở trong Activity. Chat giữ đúng thứ tự user rồi assistant và không tiếp tục hiện processing sau terminal.</p></article>
573
- <article class="card"><h3 id="external-review">External review</h3><p>URL GitHub, GitLab và Bitbucket chỉ bật source checkout tối thiểu; runtime cấp quyền đọc chính xác checkout đó và vẫn chặn cache, credential, symlink escape cùng mọi mutation.</p></article>
574
- <article class="card"><h3 id="solo-first">Solo-first</h3><p>Direct subagent có trần một helper read-only, không auto retry/fork/worker và có giới hạn call, turn, thời gian. Kết quả thiếu bằng chứng được ghi là failure thật.</p></article>
575
- </div>
576
- </section>
577
-
578
- <section class="section">
579
- <p class="section-kicker">Product stabilization</p>
580
- <h2 id="thay-doi-chinh">Sáu thay đổi người dùng sẽ thấy</h2>
581
- <p class="section-lead">Workflow cũ vẫn chạy. Update này đưa thêm bằng chứng runtime và các gate fail-closed vào phía sau, rồi mở những projection ngắn để người dùng kiểm tra khi cần.</p>
582
- <div class="grid cols-3">
583
- <article class="card">
584
- <h3 id="runtime-truth">Runtime truth</h3>
585
- <p>Model, provider, thinking, context window và provenance được đọc từ runtime hoặc authenticated catalog. Fact chưa có giữ là unknown, không đoán từ tên model.</p>
586
- </article>
587
- <article class="card">
588
- <h3 id="trajectory">Task trajectory</h3>
589
- <p>Task đi qua plan, execute, verify, review, handoff và terminal bằng state có replay. Event stale, sai identity hoặc corrupt sẽ fail closed.</p>
590
- </article>
591
- <article class="card">
592
- <h3 id="recovery">Recovery và resume</h3>
593
- <p>Lỗi được phân loại trước khi retry hoặc repair. Environment, provider, permission, policy và scope failure không bao giờ cấp quyền sửa source.</p>
594
- </article>
595
- <article class="card">
596
- <h3 id="helpers">Role-bound helpers</h3>
597
- <p>Scout, planner, reviewer và Oracle nhận scope/tool/budget có giới hạn. Parent model được giữ nguyên; automatic worker và multi-writer vẫn tắt.</p>
598
- </article>
599
- <article class="card">
600
- <h3 id="receipt">Completion receipt</h3>
601
- <p>Receipt chỉ approved khi trace completed, acceptance satisfied và hard gate trên working tree hiện tại pass. Thiếu verifier hoặc work plan còn pending phải giữ remaining risk.</p>
602
- </article>
603
- <article class="card">
604
- <h3 id="product-views">Product views</h3>
605
- <p>Preflight, live status, activity inspector, efficiency và orchestration policy có output deterministic; người dùng không cần nhờ model nhớ hoặc diễn giải state.</p>
606
- </article>
607
- </div>
608
- </section>
609
-
610
- <section class="section">
611
- <p class="section-kicker">Daily flow</p>
612
- <h2 id="luong-su-dung">Luồng dùng hằng ngày không bị phá</h2>
613
- <div class="steps">
614
- <article class="step"><div><h3>Giao task như trước</h3><p>Dùng prompt tự nhiên (từ bản 1.9.0 <span class="inline-code">/workflow</span> đã bỏ). Không cần gọi preflight thủ công.</p></div></article>
615
- <article class="step"><div><h3>Runtime tự ghi nhận truth</h3><p>Task Contract, context, changed files, trajectory và checkpoint được cập nhật từ hook/tool result thay vì trí nhớ của model.</p></div></article>
616
- <article class="step"><div><h3>Verify đúng working tree</h3><p>Chỉ exact command đã quan sát, exit thành công và khớp current-tree digest mới được tính là passing evidence.</p></div></article>
617
- <article class="step"><div><h3>Recovery hoặc handoff có giới hạn</h3><p>Source repair và transient retry có ceiling. Trường hợp không an toàn chuyển sang handoff/operator thay vì tiếp tục đoán.</p></div></article>
618
- <article class="step"><div><h3>Completion fail closed</h3><p>Trace completed không đủ. Work plan, acceptance, changed-file integrity và verifier hiện hành phải cùng pass trước khi receipt approved.</p></div></article>
619
- </div>
620
- </section>
621
-
622
- <section class="section">
623
- <p class="section-kicker">Inspect when needed</p>
624
- <h2 id="command-moi">Năm command để nhìn xuyên suốt luồng</h2>
625
- <p class="section-lead">Đây là command quan sát và chẩn đoán, không phải bước bắt buộc trước mỗi task.</p>
626
- <div class="command-grid">
627
- <article class="command-card">
628
- <header><span>Preflight, activity, status, metrics và helper policy</span><button class="clip-btn" data-clip="/task-preflight --json Review current repository state&#10;/piagent-inspector&#10;/piagent-status&#10;/usage efficiency&#10;/piagent-orchestration">Lấy lệnh</button></header>
629
- <pre><code>/task-preflight --json Review current repository state
630
- /piagent-inspector
631
- /piagent-status
632
- /usage efficiency
633
- /piagent-orchestration</code></pre>
634
- <p>Xem <a href="/workflows">Workflow thay đổi thế nào</a> để biết chính xác từng command đọc gì, không làm gì và nên dùng ở thời điểm nào.</p>
635
- </article>
636
- </div>
637
- </section>
638
-
639
- <section class="section">
640
- <p class="section-kicker">Automatic vs opt-in</p>
641
- <h2 id="tu-dong-va-opt-in">Cái gì tự chạy, cái gì cần bật rõ ràng</h2>
642
- <div class="table-wrap">
643
- <table>
644
- <thead><tr><th>Surface</th><th>Mặc định</th><th>Hành vi</th></tr></thead>
645
- <tbody>
646
- <tr><td>Runtime snapshot + task evidence</td><td>Tự động</td><td>Ghi fact, journal, verifier, recovery và receipt có giới hạn.</td></tr>
647
- <tr><td>Activity inspector</td><td>Panel bốn dòng tự động, menu tùy chọn</td><td>Hiện task diff, command, safety và context sát footer; không gọi model và không đổi workflow state.</td></tr>
648
- <tr><td>Solver</td><td><span class="inline-code">shadow</span></td><td>Đánh giá route nhưng không đổi parent model hoặc tự chiếm quyền workflow.</td></tr>
649
- <tr><td>Phase tools</td><td><span class="inline-code">shadow</span></td><td>Tính projection; dùng <span class="inline-code">PIAGENT_PHASE_TOOLS=on</span> để áp tool visibility theo phase.</td></tr>
650
- <tr><td>Recovery</td><td><span class="inline-code">on</span></td><td>Tự retry/repair trong ceiling; dùng <span class="inline-code">PIAGENT_AUTO_RECOVERY=off</span> để quay về ordinary handoff.</td></tr>
651
- <tr><td>Helpers</td><td><span class="inline-code">off</span></td><td><span class="inline-code">PIAGENT_HELPERS_MODE=on</span> vẫn chỉ cho một helper read-only context fresh sau khi chứng minh hai lane độc lập và projected net saving từ 30%.</td></tr>
652
- <tr><td>Parent routing + automatic worker</td><td><span class="inline-code">off</span></td><td>Không tự đổi parent model, không tự bật writer và không có multi-writer mặc định.</td></tr>
653
- </tbody>
654
- </table>
655
- </div>
656
- </section>
657
-
658
- <section class="section">
659
- <p class="section-kicker">Compatibility</p>
660
- <h2 id="tuong-thich">Không cần đổi thói quen hoặc migrate task cũ</h2>
661
- <div class="callout">
662
- <strong>Task Contract vẫn là v2.</strong>
663
- <p>Runtime snapshot, solver, trajectory, recovery và helper state là sidecar versioned/additive. Alias command cũ vẫn hoạt động; state cũ thiếu projection mới phải hiện unknown/unavailable thay vì được nâng cấp thành success.</p>
664
- </div>
665
- <div class="grid cols-2">
666
- <article class="card"><h3 id="host-boundary">Host không phải sandbox</h3><p>Policy giảm lỗi trong tool surface được kiểm soát nhưng không cô lập code khỏi account của operator. External và destructive action vẫn cần confirmation.</p></article>
667
- <article class="card"><h3 id="safe-defaults">Default giữ conservative</h3><p>Solver/phase tools chưa được promote khỏi shadow, helpers chưa tự dispatch, parent routing và automatic worker vẫn off cho tới khi có rollout evidence riêng.</p></article>
668
- </div>
669
- </section>
670
-
671
- <section class="section">
672
- <p class="section-kicker">Try it</p>
673
- <h2 id="test-truc-tiep">Test trực tiếp sau khi mở Pi session mới</h2>
674
- <div class="command-grid">
675
- <article class="command-card">
676
- <header><span>Read-only product walkthrough</span><button class="clip-btn" data-clip="/task-preflight --json Review this repository without modifying files&#10;/piagent-inspector&#10;/piagent-status&#10;/usage efficiency">Lấy lệnh</button></header>
677
- <pre><code>/task-preflight --json Review this repository without modifying files
678
- /piagent-inspector
679
- /piagent-status
680
- /usage efficiency</code></pre>
681
- <p>Sau update package hoặc local checkout, mở Pi session mới để extension được reload. Dùng <a href="/commands">Command catalog</a> cho toàn bộ command và alias.</p>
682
- </article>
683
- </div>
684
- </section>
1
+ <!-- releases -->