@piagent/platform 1.35.0 → 1.35.1
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.
- package/CHANGELOG.md +15 -0
- package/README.md +1 -1
- package/README.vi.md +1 -1
- package/docs/command-reference-vietnamese.md +2 -2
- package/docs/distribution-standard.md +6 -6
- package/docs/languages.json +2 -2
- package/docs/operator-manual-vietnamese.md +7 -7
- package/docs/publishing-for-teams.md +1 -0
- package/docs/release-install-policy.md +2 -2
- package/docs/team-onboarding.md +2 -2
- package/docs-site/architecture.html +1 -1
- package/docs-site/benchmark.html +1 -1
- package/docs-site/commands.html +1 -1
- package/docs-site/content/en/index.html +4 -4
- package/docs-site/content/en/whats-new.html +6 -0
- package/docs-site/content/index.html +4 -4
- package/docs-site/content/whats-new.html +6 -0
- package/docs-site/context-engine.html +1 -1
- package/docs-site/ecosystem.html +1 -1
- package/docs-site/en/architecture.html +1 -1
- package/docs-site/en/benchmark.html +1 -1
- package/docs-site/en/commands.html +1 -1
- package/docs-site/en/context-engine.html +1 -1
- package/docs-site/en/ecosystem.html +1 -1
- package/docs-site/en/index.html +5 -5
- package/docs-site/en/mcp-approval.html +1 -1
- package/docs-site/en/mcp-auth.html +1 -1
- package/docs-site/en/mcp-servers.html +1 -1
- package/docs-site/en/mcp.html +1 -1
- package/docs-site/en/permissions.html +1 -1
- package/docs-site/en/profiles.html +1 -1
- package/docs-site/en/quickstart.html +1 -1
- package/docs-site/en/runtime.html +1 -1
- package/docs-site/en/scope.html +1 -1
- package/docs-site/en/security.html +1 -1
- package/docs-site/en/team.html +1 -1
- package/docs-site/en/whats-new.html +7 -1
- package/docs-site/en/windows.html +1 -1
- package/docs-site/en/workflows.html +1 -1
- package/docs-site/index.html +5 -5
- package/docs-site/mcp-approval.html +1 -1
- package/docs-site/mcp-auth.html +1 -1
- package/docs-site/mcp-servers.html +1 -1
- package/docs-site/mcp.html +1 -1
- package/docs-site/permissions.html +1 -1
- package/docs-site/profiles.html +1 -1
- package/docs-site/quickstart.html +1 -1
- package/docs-site/runtime.html +1 -1
- package/docs-site/scope.html +1 -1
- package/docs-site/security.html +1 -1
- package/docs-site/team.html +1 -1
- package/docs-site/whats-new.html +7 -1
- package/docs-site/windows.html +1 -1
- package/docs-site/workflows.html +1 -1
- package/evals/private-holdout-v1/public-exposure.v2.json +2 -2
- package/package.json +1 -1
- package/packages/piagent-core/managed/continuation.mjs +23 -2
- package/packages/piagent-core/managed/request-stream.mjs +8 -2
- package/packages/piagent-core/managed/studio-link.mjs +18 -0
- package/packages/piagent-core/package.json +1 -1
- package/packages/piagent-core/runtime/managed-failure.mjs +8 -0
- package/packages/piagent-webui/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,21 @@
|
|
|
2
2
|
|
|
3
3
|
This file records release-facing changes for Pi Agent Platform. Copy the relevant version block into GitHub Releases when publishing a tag.
|
|
4
4
|
|
|
5
|
+
## v1.35.1 - 2026-10-21
|
|
6
|
+
|
|
7
|
+
A passing failure of the model provider no longer stops a long task.
|
|
8
|
+
|
|
9
|
+
### Fixes
|
|
10
|
+
|
|
11
|
+
- **The provider's own error event in the middle of an answer is asked again.** Found on 2026-10-21: gpt-6-sol sent `api_error` after a tool step, Studio passed it on as it should, and Piagent did not recognise it, so nothing asked again and a long task stopped until the member wrote 8 minutes later. Pi's words for such an event (OpenAI `server_error` / `api_error`, Anthropic `api_error` / `overloaded_error`) are now the code `upstream_server_error`, asked again by the turn's retry (2 and 4 s later).
|
|
12
|
+
- **A round cut by a passing provider failure goes on by itself.** Where the turn's retry does not run (the WebUI does not replay a round once a tool ran) or does not get through, the next round starts after a pause and tells the agent why: for `upstream_server_error`, `upstream_interrupted`, `upstream_incomplete`, `upstream_timeout`, `upstream_unavailable`, `connector_execution_failed` and `output_limit_exceeded`, at most 8 times per member message, 15 s doubling to 5 min (about 23 min in all); a round that ends well resets the count; Stop ends the pause. After the last one the turn fails with the reason, as before.
|
|
13
|
+
- **Every ask again is in the member's local log.** `studio-link.jsonl` now also has `turn_retry` and `provider_retry` lines (and `outcome: "gave_up"`), so why a task stopped or went on can be read back.
|
|
14
|
+
|
|
15
|
+
### Tests
|
|
16
|
+
|
|
17
|
+
- `tests/managed-provider-retry.test.mjs`: the provider's words become `upstream_server_error` (Studio's own codes keep theirs), a round that goes on and resets the count, the bounded number of asks, Stop while waiting.
|
|
18
|
+
- `tests/managed-provider-error-resume.test.mjs`: WebUI end to end, the provider's `api_error` event after a tool step; the task finishes without a click and the retry is in the local log.
|
|
19
|
+
|
|
5
20
|
## v1.35.0 - 2026-10-21
|
|
6
21
|
|
|
7
22
|
Long company tasks go on across Studio updates.
|
package/README.md
CHANGED
|
@@ -346,7 +346,7 @@ This repository intentionally excludes:
|
|
|
346
346
|
|
|
347
347
|
## Maturity
|
|
348
348
|
|
|
349
|
-
The current package version is read from package metadata and release tags. Personal machines may follow the unpinned package source when accepting ongoing updates; production/team quickstarts and committed project settings should pin an explicit tag such as `v1.35.
|
|
349
|
+
The current package version is read from package metadata and release tags. Personal machines may follow the unpinned package source when accepting ongoing updates; production/team quickstarts and committed project settings should pin an explicit tag such as `v1.35.1` or a reviewed commit.
|
|
350
350
|
|
|
351
351
|
Ready for:
|
|
352
352
|
|
package/README.vi.md
CHANGED
|
@@ -179,7 +179,7 @@ Xem [bằng chứng benchmark](https://piagent.io.vn/benchmark) và
|
|
|
179
179
|
|
|
180
180
|
Gate này chạy architecture check, test, typecheck, capability validation, runtime smoke và docs consistency trước khi release.
|
|
181
181
|
|
|
182
|
-
Bản phát hành hiện tại là `v1.35.
|
|
182
|
+
Bản phát hành hiện tại là `v1.35.1`. Với team hoặc production, hãy pin tag này
|
|
183
183
|
hoặc một commit đã review thay vì dựa vào nguồn package không cố định.
|
|
184
184
|
|
|
185
185
|
## Security
|
|
@@ -477,8 +477,8 @@ Các lệnh này chạy ngoài Pi.
|
|
|
477
477
|
| Command | Dùng khi nào |
|
|
478
478
|
|---|---|
|
|
479
479
|
| `npm install -g --ignore-scripts @earendil-works/pi-coding-agent@1.3.0` | Cài Pi CLI tương thích với release hiện tại. |
|
|
480
|
-
| `npm install -g --ignore-scripts @piagent/platform@1.35.
|
|
481
|
-
| `pi install git:github.com/Vt-mmm/piagent@v1.35.
|
|
480
|
+
| `npm install -g --ignore-scripts @piagent/platform@1.35.1` | Cài terminal helper `piagent-*` từ release tag hiện tại. |
|
|
481
|
+
| `pi install git:github.com/Vt-mmm/piagent@v1.35.1` | Cài pinned release khi cần reproducible team setup. |
|
|
482
482
|
| `pi install git:github.com/Vt-mmm/piagent` | Cài latest package platform cho máy cá nhân/sandbox. |
|
|
483
483
|
| `piagent-update --check` | Báo version hiện tại vs version sẽ lên cho cả ba thành phần; không cài gì. |
|
|
484
484
|
| `piagent-update` | Full update global một lệnh cho cả máy: Pi host → npm-global helper → Pi package, đúng thứ tự release yêu cầu. |
|
|
@@ -15,9 +15,9 @@ Repo này phải chạy được cho nhiều project/domain khác nhau. Vì vậ
|
|
|
15
15
|
|
|
16
16
|
| Use case | Package source |
|
|
17
17
|
|---|---|
|
|
18
|
-
| Team pinned release | `git:github.com/Vt-mmm/piagent@v1.35.
|
|
18
|
+
| Team pinned release | `git:github.com/Vt-mmm/piagent@v1.35.1` |
|
|
19
19
|
| Personal/sandbox dev | `git:github.com/Vt-mmm/piagent` |
|
|
20
|
-
| Registry distribution | `npm:@piagent/platform@1.35.
|
|
20
|
+
| Registry distribution | `npm:@piagent/platform@1.35.1` |
|
|
21
21
|
| Enterprise npm (fork under another scope) | `npm:@your-scope/platform@x.y.z` |
|
|
22
22
|
| Local platform dev | `/path/to/piagent` |
|
|
23
23
|
|
|
@@ -54,7 +54,7 @@ Root `package.json` có `pi` manifest trỏ tới:
|
|
|
54
54
|
Do đó team có thể:
|
|
55
55
|
|
|
56
56
|
```bash
|
|
57
|
-
pi install git:github.com/Vt-mmm/piagent@v1.35.
|
|
57
|
+
pi install git:github.com/Vt-mmm/piagent@v1.35.1
|
|
58
58
|
```
|
|
59
59
|
|
|
60
60
|
Không cần biết internal folder `packages/piagent-core`. Source không pin chỉ dành cho personal/sandbox như bảng channel ở trên.
|
|
@@ -66,12 +66,12 @@ Team nên install global package một lần:
|
|
|
66
66
|
```bash
|
|
67
67
|
node --version # >= 22.19.0
|
|
68
68
|
npm install -g --ignore-scripts @earendil-works/pi-coding-agent@1.3.0
|
|
69
|
-
npm install -g --ignore-scripts @piagent/platform@1.35.
|
|
69
|
+
npm install -g --ignore-scripts @piagent/platform@1.35.1
|
|
70
70
|
piagent-install --stable --dry-run
|
|
71
71
|
piagent-install --stable
|
|
72
72
|
```
|
|
73
73
|
|
|
74
|
-
`pi install git:github.com/Vt-mmm/piagent@v1.35.
|
|
74
|
+
`pi install git:github.com/Vt-mmm/piagent@v1.35.1` vẫn hợp lệ nếu chỉ cần cài Pi package. Lệnh đó không tự tạo các binary terminal `piagent-*`; muốn có helper global thì dùng `npm install -g --ignore-scripts @piagent/platform@1.35.1`.
|
|
75
75
|
|
|
76
76
|
Support matrix hiện tại: macOS Apple Silicon + Bash và Linux x64 + Bash đã được verify; macOS Intel + Bash và Linux ARM64 + Bash là supported target cần chạy smoke trước rollout; native Windows chưa phải target rollout team; WSL2 experimental. Chi tiết và version runtime nằm trong [release/install policy](release-install-policy.md).
|
|
77
77
|
|
|
@@ -118,7 +118,7 @@ Nếu muốn commit sẵn `.pi/piagent-profile.json` vào repo hoặc bootstrap
|
|
|
118
118
|
```bash
|
|
119
119
|
bash scripts/setup.sh /path/to/project \
|
|
120
120
|
--profile be-readonly-fe \
|
|
121
|
-
--package-source git:github.com/Vt-mmm/piagent@v1.35.
|
|
121
|
+
--package-source git:github.com/Vt-mmm/piagent@v1.35.1 \
|
|
122
122
|
--mcp-preset core \
|
|
123
123
|
--subagents-preset safe
|
|
124
124
|
```
|
package/docs/languages.json
CHANGED
|
@@ -21,8 +21,8 @@
|
|
|
21
21
|
"en": "README.md",
|
|
22
22
|
"vi": "README.vi.md",
|
|
23
23
|
"consistentAt": {
|
|
24
|
-
"en": "
|
|
25
|
-
"vi": "
|
|
24
|
+
"en": "64a17f3e8b03937b250adda03208b74062cdcd03",
|
|
25
|
+
"vi": "9cd7989c77f179aa08034c6b84a135d429ed4fde"
|
|
26
26
|
}
|
|
27
27
|
},
|
|
28
28
|
{
|
|
@@ -19,12 +19,12 @@ Support matrix release hiện tại: macOS Apple Silicon + Bash và Linux x64 +
|
|
|
19
19
|
```bash
|
|
20
20
|
node --version # >= 22.19.0
|
|
21
21
|
npm install -g --ignore-scripts @earendil-works/pi-coding-agent@1.3.0
|
|
22
|
-
npm install -g --ignore-scripts @piagent/platform@1.35.
|
|
22
|
+
npm install -g --ignore-scripts @piagent/platform@1.35.1
|
|
23
23
|
piagent-install --stable --dry-run
|
|
24
24
|
piagent-install --stable
|
|
25
25
|
```
|
|
26
26
|
|
|
27
|
-
Khi seed `.pi/settings.json` cho team/repo cần audit lặp lại, giữ package source dạng pinned tag như `git:github.com/Vt-mmm/piagent@v1.35.
|
|
27
|
+
Khi seed `.pi/settings.json` cho team/repo cần audit lặp lại, giữ package source dạng pinned tag như `git:github.com/Vt-mmm/piagent@v1.35.1`. Máy cá nhân có thể dùng `git:github.com/Vt-mmm/piagent` để theo latest.
|
|
28
28
|
|
|
29
29
|
Nếu đang ở source checkout của platform, dùng helper theo channel để preview trước khi đổi:
|
|
30
30
|
|
|
@@ -100,7 +100,7 @@ install package once
|
|
|
100
100
|
|
|
101
101
|
```bash
|
|
102
102
|
npm install -g --ignore-scripts @earendil-works/pi-coding-agent@1.3.0
|
|
103
|
-
npm install -g --ignore-scripts @piagent/platform@1.35.
|
|
103
|
+
npm install -g --ignore-scripts @piagent/platform@1.35.1
|
|
104
104
|
piagent-install --stable --dry-run
|
|
105
105
|
piagent-install --stable
|
|
106
106
|
```
|
|
@@ -285,7 +285,7 @@ Không phải daily default. Dùng khi muốn tạo sẵn `.pi` files cho projec
|
|
|
285
285
|
bash /path/to/piagent/scripts/setup.sh /path/to/project \
|
|
286
286
|
--project-only \
|
|
287
287
|
--profile auto \
|
|
288
|
-
--package-source git:github.com/Vt-mmm/piagent@v1.35.
|
|
288
|
+
--package-source git:github.com/Vt-mmm/piagent@v1.35.1 \
|
|
289
289
|
--mcp-preset core \
|
|
290
290
|
--subagents-preset safe
|
|
291
291
|
```
|
|
@@ -999,8 +999,8 @@ Watchdog là optional adversarial reviewer ở cuối turn, không bật mặc
|
|
|
999
999
|
|
|
1000
1000
|
| Command | Dùng để |
|
|
1001
1001
|
|---|---|
|
|
1002
|
-
| `npm install -g --ignore-scripts @piagent/platform@1.35.
|
|
1003
|
-
| `pi install git:github.com/Vt-mmm/piagent@v1.35.
|
|
1002
|
+
| `npm install -g --ignore-scripts @piagent/platform@1.35.1` | Cài terminal helper `piagent-*` từ release tag hiện tại. |
|
|
1003
|
+
| `pi install git:github.com/Vt-mmm/piagent@v1.35.1` | Install pinned release cho reproducible team setup. |
|
|
1004
1004
|
| `pi install git:github.com/Vt-mmm/piagent` | Install latest platform package cho máy cá nhân/sandbox. |
|
|
1005
1005
|
| Cài exact Pi host của release, rồi `npm install -g --ignore-scripts @piagent/platform@X.Y.Z` và `piagent-install --stable` | Full update: đồng bộ host, terminal helper và Pi package. Mỗi release pin một Pi host chính xác; lấy đúng version của release đang cài trong [release/install policy](release-install-policy.md). |
|
|
1006
1006
|
| Cài exact Pi host ghi trong release cũ, rồi helper `vPREVIOUS` và `piagent-install --stable` | Full rollback; đánh giá lại dependency findings của host cũ trước khi hạ version. |
|
|
@@ -1096,7 +1096,7 @@ Mở lại Pi session sau khi install.
|
|
|
1096
1096
|
Cài lại terminal helper đúng release rồi kiểm tra `PATH`:
|
|
1097
1097
|
|
|
1098
1098
|
```bash
|
|
1099
|
-
npm install -g --ignore-scripts @piagent/platform@1.35.
|
|
1099
|
+
npm install -g --ignore-scripts @piagent/platform@1.35.1
|
|
1100
1100
|
command -v piagent-install
|
|
1101
1101
|
```
|
|
1102
1102
|
|
|
@@ -41,6 +41,7 @@ pi install /path/to/piagent
|
|
|
41
41
|
|
|
42
42
|
## Versioning
|
|
43
43
|
|
|
44
|
+
- `1.35.1`: lỗi của máy chủ model ngay giữa câu trả lời (OpenAI `server_error`/`api_error`, Anthropic `api_error`/`overloaded_error`) có mã `upstream_server_error` và được hỏi lại; vòng bị cắt vì lỗi tạm thời của nhà cung cấp tự chạy tiếp sau khi chờ (tối đa 8 lần, 15 giây tăng dần tới 5 phút, mỗi tin nhắn của member), báo agent lý do; mỗi lần hỏi lại ghi vào `studio-link.jsonl`.
|
|
44
45
|
- `1.35.0`: task công ty không dừng khi Studio cập nhật hoặc khởi động lại: Piagent đọc heartbeat của Studio (`/v1/heartbeat`, Studio 0.36.0) và hỏi lại khi Studio trả lời, không giới hạn thời gian chờ (Stop dừng được); lỗi key, quota, chính sách vẫn dừng ngay; mỗi lần chờ ghi vào `<agentDir>/logs/studio-link.jsonl` và báo về Studio (Logs → “Mất kết nối”); trang của Cloudflare/LAN edge thay cho câu trả lời của Studio có mã riêng `studio-gateway-unavailable`; một lượt trên dashboard chạy được tới 24 giờ (trước là 6).
|
|
45
46
|
- `1.34.3`: trạng thái cuộc trò chuyện công ty được ghi vào `~/.pi/agent/status/company`, nơi Agent Watch đọc (bản trước ghi vào thư mục riêng của phiên công ty nên Agent Watch không báo).
|
|
46
47
|
- `1.34.2`: helper gửi kết quả cho Studio bằng token hiện tại của nó (bản 1.34.1 dùng token đầu tiên, đã bị thay khi gia hạn, nên Studio không ghi nhận).
|
|
@@ -153,7 +153,7 @@ Use this flow when the team needs both terminal commands and the Pi package:
|
|
|
153
153
|
```bash
|
|
154
154
|
node --version # >= 22.19.0
|
|
155
155
|
npm install -g --ignore-scripts @earendil-works/pi-coding-agent@1.3.0
|
|
156
|
-
npm install -g --ignore-scripts @piagent/platform@1.35.
|
|
156
|
+
npm install -g --ignore-scripts @piagent/platform@1.35.1
|
|
157
157
|
piagent-install --stable --dry-run
|
|
158
158
|
piagent-install --stable
|
|
159
159
|
```
|
|
@@ -179,7 +179,7 @@ bash scripts/install-global.sh --stable
|
|
|
179
179
|
Use this only when terminal commands are not needed:
|
|
180
180
|
|
|
181
181
|
```bash
|
|
182
|
-
pi install git:github.com/Vt-mmm/piagent@v1.35.
|
|
182
|
+
pi install git:github.com/Vt-mmm/piagent@v1.35.1
|
|
183
183
|
```
|
|
184
184
|
|
|
185
185
|
Direct `pi install` does not create `piagent-*` commands on `PATH`.
|
package/docs/team-onboarding.md
CHANGED
|
@@ -10,7 +10,7 @@ Một thành viên mới không cần biết local path của maintainer. Luồn
|
|
|
10
10
|
```bash
|
|
11
11
|
node --version # >= 22.19.0
|
|
12
12
|
npm install -g --ignore-scripts @earendil-works/pi-coding-agent@1.3.0
|
|
13
|
-
npm install -g --ignore-scripts @piagent/platform@1.35.
|
|
13
|
+
npm install -g --ignore-scripts @piagent/platform@1.35.1
|
|
14
14
|
piagent-install --stable
|
|
15
15
|
cd /path/to/project
|
|
16
16
|
pi
|
|
@@ -45,7 +45,7 @@ Mặc định team dùng stable helper:
|
|
|
45
45
|
```bash
|
|
46
46
|
node --version # >= 22.19.0
|
|
47
47
|
npm install -g --ignore-scripts @earendil-works/pi-coding-agent@1.3.0
|
|
48
|
-
npm install -g --ignore-scripts @piagent/platform@1.35.
|
|
48
|
+
npm install -g --ignore-scripts @piagent/platform@1.35.1
|
|
49
49
|
piagent-install --stable --dry-run
|
|
50
50
|
piagent-install --stable
|
|
51
51
|
```
|
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
<span>Pi Agent Platform</span>
|
|
31
31
|
</a>
|
|
32
32
|
<div class="top-actions">
|
|
33
|
-
<span class="pill"><span class="pill-dot"></span>v1.35.
|
|
33
|
+
<span class="pill"><span class="pill-dot"></span>v1.35.1 docs · VI</span>
|
|
34
34
|
<nav class="language-switch" aria-label="Ngôn ngữ">
|
|
35
35
|
<a class="language-option current" href="/architecture" hreflang="vi" lang="vi" aria-current="true">VI</a>
|
|
36
36
|
<a class="language-option" href="/en/architecture" hreflang="en" lang="en">EN</a>
|
package/docs-site/benchmark.html
CHANGED
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
<span>Pi Agent Platform</span>
|
|
31
31
|
</a>
|
|
32
32
|
<div class="top-actions">
|
|
33
|
-
<span class="pill"><span class="pill-dot"></span>v1.35.
|
|
33
|
+
<span class="pill"><span class="pill-dot"></span>v1.35.1 docs · VI</span>
|
|
34
34
|
<nav class="language-switch" aria-label="Ngôn ngữ">
|
|
35
35
|
<a class="language-option current" href="/benchmark" hreflang="vi" lang="vi" aria-current="true">VI</a>
|
|
36
36
|
<a class="language-option" href="/en/benchmark" hreflang="en" lang="en">EN</a>
|
package/docs-site/commands.html
CHANGED
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
<span>Pi Agent Platform</span>
|
|
31
31
|
</a>
|
|
32
32
|
<div class="top-actions">
|
|
33
|
-
<span class="pill"><span class="pill-dot"></span>v1.35.
|
|
33
|
+
<span class="pill"><span class="pill-dot"></span>v1.35.1 docs · VI</span>
|
|
34
34
|
<nav class="language-switch" aria-label="Ngôn ngữ">
|
|
35
35
|
<a class="language-option current" href="/commands" hreflang="vi" lang="vi" aria-current="true">VI</a>
|
|
36
36
|
<a class="language-option" href="/en/commands" hreflang="en" lang="en">EN</a>
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
<section class="hero">
|
|
2
|
-
<p class="eyebrow">Piagent 1.35.
|
|
2
|
+
<p class="eyebrow">Piagent 1.35.1</p>
|
|
3
3
|
<h1>A coding agent for the whole team, checked at every step.</h1>
|
|
4
4
|
<p>
|
|
5
5
|
One dashboard for Terminal and the browser. Use models with your own account, or the company's models through Agent Watch and Agent Studio. The guard checks every tool call; in company mode the team's Harness asks for checks, has a subagent review the change and reports the outcome right under the answer.
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
<div class="hero-actions">
|
|
14
14
|
<a class="button primary" href="/en/quickstart">Get started</a>
|
|
15
15
|
<a class="button" href="/en/ecosystem">Ecosystem</a>
|
|
16
|
-
<a class="button" href="/en/whats-new">What’s new in 1.35.
|
|
16
|
+
<a class="button" href="/en/whats-new">What’s new in 1.35.1</a>
|
|
17
17
|
<a class="button" href="/en/commands">View commands</a>
|
|
18
18
|
</div>
|
|
19
19
|
</section>
|
|
@@ -89,9 +89,9 @@ piagent-setup</code></pre>
|
|
|
89
89
|
<h2 id="where-to-start">Where to start</h2>
|
|
90
90
|
<div class="card-grid">
|
|
91
91
|
<a class="doc-card" href="/en/whats-new">
|
|
92
|
-
<span class="card-kicker">Release 1.35.
|
|
92
|
+
<span class="card-kicker">Release 1.35.1</span>
|
|
93
93
|
<h3>What’s new</h3>
|
|
94
|
-
<p>Long tasks go on when Studio is updated; in 1.34: helpers report how their work ended, Agent Watch tells you when you are needed; in 1.33.0: runs on Pi 1.3.0; in 1.32.1: Bypass is kept after a reload, and a tab in use no longer signs out after 8 hours; in 1.32.0: a failed or stopped answer ends at Studio too; in 1.31.1: <code>memory_ask</code> right after an update; in 1.31.0: Team memory follows the branch and the team's rules, with <code>memory_ask</code>; in 1.30.1: no model names in the company Terminal; running <code>piagent studio</code> in the home folder now says to open a project folder; in 1.30.0: large contexts reach Studio over slow links and the company Terminal reads like the dashboard; in 1.29.0: the company Terminal gets its own look and Stop no longer breaks the conversation; in 1.28.3: Agent Watch updating itself no longer interrupts the company Terminal; in 1.28.2: no more “binding changed” right after an update; in 1.28.1: the company Terminal and personal Pi stop stepping on each other (no duplicate Piagent, no old company config, company chats stay in piagent studio); in 1.28.0: team memory v2; in 1.27.1: team memory keeps working while the agent calls the model; in 1.27.0: team memory, company agents remember the team's decisions and rules in each repository; in 1.26.1: a conversation is renamed while its turn runs; in 1.26.0: the Terminal's / commands and shortcuts in the dashboard, /undo for the agent's last turn, dev servers that stay up across turns; in 1.25.0: when the machine lacks something the agent asks, and the approved command runs (run_on_host outside the sandbox, start_docker in the same conversation); in 1.24.0: choose Fast on the new chat page for company conversations, and the Fast switch turns amber while on; in 1.23.1: an agent's question waits at the end of the conversation, right above the composer, and reads more easily; in 1.23.0: a Fast switch for company conversations where the Harness allows it, failed tools reported to Studio (Logs → Tool lỗi), new conversations send their first message after a Harness change; in 1.22.1: the dashboard no longer keeps loading when a project is on a Windows drive seen from WSL (/mnt/d…) or the company runtime does not answer; in 1.22.0: attach any source or text file (.html, .css, .ts, .py, Dockerfile…); in 1.21.1: Bypass can be turned on while a turn runs and stays on after a reload; in 1.21.0: questions and approvals one card at a time (the main agent's first), a notification at the top right when another conversation finishes or waits for you, Studio logs each compaction; in 1.20.0: package installs in the company sandbox no longer ask (npm, PyPI, Go, Maven, Gradle… through a registry-only proxy); in 1.19.0: company tasks with a checklist are carried to the end, every turn says whether it finished, stopped midway or failed, Docker in the company sandbox, folders with several repositories; in 1.18.0: switch the Git branch from the dashboard, retries for passing failures, Claude Haiku 5.5; in 1.17.0: the dashboard shows each project's Git branch; in 1.16.3: an updated dashboard keeps checking for releases; in 1.16.2: the Terminal says what the dashboard says: update question, /bypass, failures and Harness notes in Vietnamese; in 1.16.1: new releases are announced in a dialog and checked every hour, dashboard tabs stay signed in; in 1.16.0: Bypass for company conversations, Harness changes never interrupt you; in 1.15.2: long conversations shrink again; in 1.15.1: Studio sees what each model call is for, conversations in one folder keep their changes apart; in 1.15.0: a refused subagent says why; in 1.14: updates keep the models you chose; in 1.13: conversations keep their place, the agent's notes are formatted, Piagent on Windows through WSL2: a bubblewrap sandbox for company conversations and Agent Watch for Windows; in 1.12: @ picks files and folders on the Mac, skills and commands run from /, and forked company conversations take messages.</p>
|
|
94
|
+
<p>Long tasks go on when Studio is updated or the model has a passing error; in 1.34: helpers report how their work ended, Agent Watch tells you when you are needed; in 1.33.0: runs on Pi 1.3.0; in 1.32.1: Bypass is kept after a reload, and a tab in use no longer signs out after 8 hours; in 1.32.0: a failed or stopped answer ends at Studio too; in 1.31.1: <code>memory_ask</code> right after an update; in 1.31.0: Team memory follows the branch and the team's rules, with <code>memory_ask</code>; in 1.30.1: no model names in the company Terminal; running <code>piagent studio</code> in the home folder now says to open a project folder; in 1.30.0: large contexts reach Studio over slow links and the company Terminal reads like the dashboard; in 1.29.0: the company Terminal gets its own look and Stop no longer breaks the conversation; in 1.28.3: Agent Watch updating itself no longer interrupts the company Terminal; in 1.28.2: no more “binding changed” right after an update; in 1.28.1: the company Terminal and personal Pi stop stepping on each other (no duplicate Piagent, no old company config, company chats stay in piagent studio); in 1.28.0: team memory v2; in 1.27.1: team memory keeps working while the agent calls the model; in 1.27.0: team memory, company agents remember the team's decisions and rules in each repository; in 1.26.1: a conversation is renamed while its turn runs; in 1.26.0: the Terminal's / commands and shortcuts in the dashboard, /undo for the agent's last turn, dev servers that stay up across turns; in 1.25.0: when the machine lacks something the agent asks, and the approved command runs (run_on_host outside the sandbox, start_docker in the same conversation); in 1.24.0: choose Fast on the new chat page for company conversations, and the Fast switch turns amber while on; in 1.23.1: an agent's question waits at the end of the conversation, right above the composer, and reads more easily; in 1.23.0: a Fast switch for company conversations where the Harness allows it, failed tools reported to Studio (Logs → Tool lỗi), new conversations send their first message after a Harness change; in 1.22.1: the dashboard no longer keeps loading when a project is on a Windows drive seen from WSL (/mnt/d…) or the company runtime does not answer; in 1.22.0: attach any source or text file (.html, .css, .ts, .py, Dockerfile…); in 1.21.1: Bypass can be turned on while a turn runs and stays on after a reload; in 1.21.0: questions and approvals one card at a time (the main agent's first), a notification at the top right when another conversation finishes or waits for you, Studio logs each compaction; in 1.20.0: package installs in the company sandbox no longer ask (npm, PyPI, Go, Maven, Gradle… through a registry-only proxy); in 1.19.0: company tasks with a checklist are carried to the end, every turn says whether it finished, stopped midway or failed, Docker in the company sandbox, folders with several repositories; in 1.18.0: switch the Git branch from the dashboard, retries for passing failures, Claude Haiku 5.5; in 1.17.0: the dashboard shows each project's Git branch; in 1.16.3: an updated dashboard keeps checking for releases; in 1.16.2: the Terminal says what the dashboard says: update question, /bypass, failures and Harness notes in Vietnamese; in 1.16.1: new releases are announced in a dialog and checked every hour, dashboard tabs stay signed in; in 1.16.0: Bypass for company conversations, Harness changes never interrupt you; in 1.15.2: long conversations shrink again; in 1.15.1: Studio sees what each model call is for, conversations in one folder keep their changes apart; in 1.15.0: a refused subagent says why; in 1.14: updates keep the models you chose; in 1.13: conversations keep their place, the agent's notes are formatted, Piagent on Windows through WSL2: a bubblewrap sandbox for company conversations and Agent Watch for Windows; in 1.12: @ picks files and folders on the Mac, skills and commands run from /, and forked company conversations take messages.</p>
|
|
95
95
|
</a>
|
|
96
96
|
<a class="doc-card" href="/en/ecosystem">
|
|
97
97
|
<span class="card-kicker">Get started</span>
|
|
@@ -1,3 +1,9 @@
|
|
|
1
|
+
<section class="section">
|
|
2
|
+
<p class="section-kicker">v1.35.1 · 2026-10-21</p>
|
|
3
|
+
<h2 id="v1-35-1">A passing model provider error no longer stops a long task</h2>
|
|
4
|
+
<p class="section-lead">When the model's server (GPT, Claude) reports an error in the middle of an answer, Piagent asks again a few seconds later; if the whole round is cut, the next one starts by itself after a pause (at most 8 times, about 23 minutes per message of yours), the agent is told why and goes on from where it was. Each ask again is written to the log on the machine.</p>
|
|
5
|
+
</section>
|
|
6
|
+
|
|
1
7
|
<section class="section">
|
|
2
8
|
<p class="section-kicker">v1.35.0 · 2026-10-21</p>
|
|
3
9
|
<h2 id="v1-35-0">Long tasks survive a Studio update</h2>
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
<section class="hero">
|
|
2
|
-
<p class="eyebrow">Piagent 1.35.
|
|
2
|
+
<p class="eyebrow">Piagent 1.35.1</p>
|
|
3
3
|
<h1>Coding agent cho cả team, kiểm tra từng bước.</h1>
|
|
4
4
|
<p>
|
|
5
5
|
Một dashboard cho Terminal và trình duyệt. Dùng model bằng tài khoản của bạn, hoặc model của công ty qua Agent Watch và Agent Studio. Guard kiểm tra từng tool call; ở chế độ công ty, Harness của team tự yêu cầu chạy check, cho subagent review và báo kết quả ngay dưới câu trả lời.
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
<div class="hero-actions">
|
|
14
14
|
<a class="button primary" href="/quickstart">Bắt đầu</a>
|
|
15
15
|
<a class="button" href="/ecosystem">Hệ sinh thái</a>
|
|
16
|
-
<a class="button" href="/whats-new">Có gì mới trong 1.35.
|
|
16
|
+
<a class="button" href="/whats-new">Có gì mới trong 1.35.1</a>
|
|
17
17
|
<a class="button" href="/commands">Xem command</a>
|
|
18
18
|
</div>
|
|
19
19
|
</section>
|
|
@@ -89,9 +89,9 @@ piagent-setup</code></pre>
|
|
|
89
89
|
<h2 id="bat-dau-tu-dau">Bắt đầu từ đâu</h2>
|
|
90
90
|
<div class="card-grid">
|
|
91
91
|
<a class="doc-card" href="/whats-new">
|
|
92
|
-
<span class="card-kicker">Bản 1.35.
|
|
92
|
+
<span class="card-kicker">Bản 1.35.1</span>
|
|
93
93
|
<h3>Có gì mới</h3>
|
|
94
|
-
<p>Task dài
|
|
94
|
+
<p>Task dài không dừng khi Studio cập nhật hay model báo lỗi tạm thời; ở 1.34: helper báo kết quả, Agent Watch báo khi cần bạn; ở 1.33.0: chạy trên Pi 1.3.0; ở 1.32.1: Bypass được giữ sau khi tải lại, tab đang dùng không còn bị đăng xuất sau 8 giờ; ở 1.32.0: lượt lỗi hoặc bấm Stop được dừng cả ở Studio; ở 1.31.1: <code>memory_ask</code> có ngay sau khi cập nhật; ở 1.31.0: Memory của team đi theo branch và luật của team, có <code>memory_ask</code>; ở 1.30.1: Terminal công ty không còn hiện tên model, mở <code>piagent studio</code> ở thư mục home báo rõ cần vào thư mục dự án; ở 1.30.0: context lớn đi qua mạng chậm, Terminal công ty gọn như dashboard; ở 1.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; ở 1.28.3: Agent Watch tự cập nhật không còn làm gián đoạn Terminal công ty; ở 1.28.2: không còn lỗi “binding changed” ngay sau khi cập nhật; ở 1.28.1: Terminal công ty và Pi cá nhân không còn giẫm chân nhau (không nạp Piagent hai lần, dọn cấu hình công ty cũ, cuộc trò chuyện công ty chỉ mở bằng piagent studio); ở 1.28.0: team memory v2; ở 1.27.1: team memory chạy ổn cả khi agent đang gọi model; ở 1.27.0: team memory, agent công ty nhớ quyết định và quy tắc của team trong từng repo; ở 1.26.1: đổi tên cuộc trò chuyện được cả khi lượt đang chạy; ở 1.26.0: lệnh / và phím tắt của Terminal ngay trên dashboard, /undo hoàn tác lượt trước của agent, dev server chạy qua nhiều lượt; ở 1.25.0: thiếu môi trường thì agent xin quyền và chạy được sau khi bạn duyệt (run_on_host ngoài sandbox, start_docker mở Docker ngay trong cuộc trò chuyện); ở 1.24.0: chọn Fast ngay trên trang tạo cuộc trò chuyện công ty, nút Fast đổi màu vàng khi đang bật; ở 1.23.1: câu hỏi của agent luôn nằm cuối cuộc trò chuyện, ngay trên ô nhập, và dễ đọc hơn; ở 1.23.0: nút Fast cho cuộc trò chuyện công ty khi Harness cho phép, tool lỗi được báo về Studio (Logs → Tool lỗi), cuộc trò chuyện mới gửi được tin nhắn đầu sau khi Harness đổi; ở 1.22.1: dashboard không còn quay mãi khi project nằm trên ổ Windows nhìn từ WSL (/mnt/d…) hoặc phiên công ty không trả lời; ở 1.22.0: đính kèm được mọi file code và văn bản (.html, .css, .ts, .py, Dockerfile…); ở 1.21.1: bật Bypass được cả khi lượt đang chạy và được giữ sau khi tải lại; ở 1.21.0: câu hỏi và yêu cầu duyệt hiện từng cái một (main agent trước), thông báo góc phải khi cuộc trò chuyện khác xong hay đang chờ bạn, Studio ghi lại mỗi lần compact; ở 1.20.0: cài package trong sandbox công ty không phải duyệt (npm, PyPI, Go, Maven, Gradle… qua proxy chỉ cho registry); ở 1.19.0: task công ty có checklist được làm đến hết, cuối mỗi lượt báo rõ xong, dừng giữa chừng hay lỗi, Docker trong sandbox công ty, folder chứa nhiều repo; ở 1.18.0: đổi nhánh Git trên dashboard, tự thử lại khi lỗi tạm thời, Claude Haiku 5.5; ở 1.17.0: dashboard hiện nhánh Git của project; ở 1.16.3: dashboard cập nhật xong vẫn tự kiểm tra bản mới; ở 1.16.2: Terminal nói giống dashboard: hỏi cập nhật, /bypass, lỗi và ghi chú Harness bằng tiếng Việt; ở 1.16.1: bản mới được báo bằng dialog và kiểm tra mỗi giờ, tab dashboard không còn mất đăng nhập; ở 1.16.0: Bypass cho cuộc trò chuyện công ty, đổi Harness không làm gián đoạn; ở 1.15.2: cuộc trò chuyện dài tự thu gọn trở lại; ở 1.15.1: Studio thấy mỗi call của model dùng để làm gì, nhiều cuộc trò chuyện trong một folder không nhận nhầm thay đổi của nhau; ở 1.15.0: subagent bị từ chối nói đúng lý do; ở 1.14: cập nhật giữ model bạn đã chọn; ở 1.13: cuộc trò chuyện giữ chỗ đang đọc, chữ của agent có định dạng, Piagent trên Windows qua WSL2: sandbox công ty bằng bubblewrap và Agent Watch cho Windows; ở 1.12: @ chọn file và folder trên máy, skill và command dùng bằng /, nhánh cuộc trò chuyện công ty gửi được tin nhắn.</p>
|
|
95
95
|
</a>
|
|
96
96
|
<a class="doc-card" href="/ecosystem">
|
|
97
97
|
<span class="card-kicker">Get started</span>
|
|
@@ -1,3 +1,9 @@
|
|
|
1
|
+
<section class="section">
|
|
2
|
+
<p class="section-kicker">v1.35.1 · 2026-10-21</p>
|
|
3
|
+
<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>
|
|
4
|
+
<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>
|
|
5
|
+
</section>
|
|
6
|
+
|
|
1
7
|
<section class="section">
|
|
2
8
|
<p class="section-kicker">v1.35.0 · 2026-10-21</p>
|
|
3
9
|
<h2 id="v1-35-0">Task dài chạy qua được lúc Studio cập nhật</h2>
|
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
<span>Pi Agent Platform</span>
|
|
31
31
|
</a>
|
|
32
32
|
<div class="top-actions">
|
|
33
|
-
<span class="pill"><span class="pill-dot"></span>v1.35.
|
|
33
|
+
<span class="pill"><span class="pill-dot"></span>v1.35.1 docs · VI</span>
|
|
34
34
|
<nav class="language-switch" aria-label="Ngôn ngữ">
|
|
35
35
|
<a class="language-option current" href="/context-engine" hreflang="vi" lang="vi" aria-current="true">VI</a>
|
|
36
36
|
<a class="language-option" href="/en/context-engine" hreflang="en" lang="en">EN</a>
|
package/docs-site/ecosystem.html
CHANGED
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
<span>Pi Agent Platform</span>
|
|
31
31
|
</a>
|
|
32
32
|
<div class="top-actions">
|
|
33
|
-
<span class="pill"><span class="pill-dot"></span>v1.35.
|
|
33
|
+
<span class="pill"><span class="pill-dot"></span>v1.35.1 docs · VI</span>
|
|
34
34
|
<nav class="language-switch" aria-label="Ngôn ngữ">
|
|
35
35
|
<a class="language-option current" href="/ecosystem" hreflang="vi" lang="vi" aria-current="true">VI</a>
|
|
36
36
|
<a class="language-option" href="/en/ecosystem" hreflang="en" lang="en">EN</a>
|
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
<span>Pi Agent Platform</span>
|
|
31
31
|
</a>
|
|
32
32
|
<div class="top-actions">
|
|
33
|
-
<span class="pill"><span class="pill-dot"></span>v1.35.
|
|
33
|
+
<span class="pill"><span class="pill-dot"></span>v1.35.1 docs · EN</span>
|
|
34
34
|
<nav class="language-switch" aria-label="Language">
|
|
35
35
|
<a class="language-option" href="/architecture" hreflang="vi" lang="vi">VI</a>
|
|
36
36
|
<a class="language-option current" href="/en/architecture" hreflang="en" lang="en" aria-current="true">EN</a>
|
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
<span>Pi Agent Platform</span>
|
|
31
31
|
</a>
|
|
32
32
|
<div class="top-actions">
|
|
33
|
-
<span class="pill"><span class="pill-dot"></span>v1.35.
|
|
33
|
+
<span class="pill"><span class="pill-dot"></span>v1.35.1 docs · EN</span>
|
|
34
34
|
<nav class="language-switch" aria-label="Language">
|
|
35
35
|
<a class="language-option" href="/benchmark" hreflang="vi" lang="vi">VI</a>
|
|
36
36
|
<a class="language-option current" href="/en/benchmark" hreflang="en" lang="en" aria-current="true">EN</a>
|
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
<span>Pi Agent Platform</span>
|
|
31
31
|
</a>
|
|
32
32
|
<div class="top-actions">
|
|
33
|
-
<span class="pill"><span class="pill-dot"></span>v1.35.
|
|
33
|
+
<span class="pill"><span class="pill-dot"></span>v1.35.1 docs · EN</span>
|
|
34
34
|
<nav class="language-switch" aria-label="Language">
|
|
35
35
|
<a class="language-option" href="/commands" hreflang="vi" lang="vi">VI</a>
|
|
36
36
|
<a class="language-option current" href="/en/commands" hreflang="en" lang="en" aria-current="true">EN</a>
|
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
<span>Pi Agent Platform</span>
|
|
31
31
|
</a>
|
|
32
32
|
<div class="top-actions">
|
|
33
|
-
<span class="pill"><span class="pill-dot"></span>v1.35.
|
|
33
|
+
<span class="pill"><span class="pill-dot"></span>v1.35.1 docs · EN</span>
|
|
34
34
|
<nav class="language-switch" aria-label="Language">
|
|
35
35
|
<a class="language-option" href="/context-engine" hreflang="vi" lang="vi">VI</a>
|
|
36
36
|
<a class="language-option current" href="/en/context-engine" hreflang="en" lang="en" aria-current="true">EN</a>
|
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
<span>Pi Agent Platform</span>
|
|
31
31
|
</a>
|
|
32
32
|
<div class="top-actions">
|
|
33
|
-
<span class="pill"><span class="pill-dot"></span>v1.35.
|
|
33
|
+
<span class="pill"><span class="pill-dot"></span>v1.35.1 docs · EN</span>
|
|
34
34
|
<nav class="language-switch" aria-label="Language">
|
|
35
35
|
<a class="language-option" href="/ecosystem" hreflang="vi" lang="vi">VI</a>
|
|
36
36
|
<a class="language-option current" href="/en/ecosystem" hreflang="en" lang="en" aria-current="true">EN</a>
|
package/docs-site/en/index.html
CHANGED
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
<span>Pi Agent Platform</span>
|
|
31
31
|
</a>
|
|
32
32
|
<div class="top-actions">
|
|
33
|
-
<span class="pill"><span class="pill-dot"></span>v1.35.
|
|
33
|
+
<span class="pill"><span class="pill-dot"></span>v1.35.1 docs · EN</span>
|
|
34
34
|
<nav class="language-switch" aria-label="Language">
|
|
35
35
|
<a class="language-option" href="/" hreflang="vi" lang="vi">VI</a>
|
|
36
36
|
<a class="language-option current" href="/en/" hreflang="en" lang="en" aria-current="true">EN</a>
|
|
@@ -94,7 +94,7 @@
|
|
|
94
94
|
<main>
|
|
95
95
|
<div class="content-shell" data-article>
|
|
96
96
|
<section class="hero">
|
|
97
|
-
<p class="eyebrow">Piagent 1.35.
|
|
97
|
+
<p class="eyebrow">Piagent 1.35.1</p>
|
|
98
98
|
<h1>A coding agent for the whole team, checked at every step.</h1>
|
|
99
99
|
<p>
|
|
100
100
|
One dashboard for Terminal and the browser. Use models with your own account, or the company's models through Agent Watch and Agent Studio. The guard checks every tool call; in company mode the team's Harness asks for checks, has a subagent review the change and reports the outcome right under the answer.
|
|
@@ -108,7 +108,7 @@
|
|
|
108
108
|
<div class="hero-actions">
|
|
109
109
|
<a class="button primary" href="/en/quickstart">Get started</a>
|
|
110
110
|
<a class="button" href="/en/ecosystem">Ecosystem</a>
|
|
111
|
-
<a class="button" href="/en/whats-new">What’s new in 1.35.
|
|
111
|
+
<a class="button" href="/en/whats-new">What’s new in 1.35.1</a>
|
|
112
112
|
<a class="button" href="/en/commands">View commands</a>
|
|
113
113
|
</div>
|
|
114
114
|
</section>
|
|
@@ -184,9 +184,9 @@ piagent-setup</code></pre>
|
|
|
184
184
|
<h2 id="where-to-start">Where to start</h2>
|
|
185
185
|
<div class="card-grid">
|
|
186
186
|
<a class="doc-card" href="/en/whats-new">
|
|
187
|
-
<span class="card-kicker">Release 1.35.
|
|
187
|
+
<span class="card-kicker">Release 1.35.1</span>
|
|
188
188
|
<h3>What’s new</h3>
|
|
189
|
-
<p>Long tasks go on when Studio is updated; in 1.34: helpers report how their work ended, Agent Watch tells you when you are needed; in 1.33.0: runs on Pi 1.3.0; in 1.32.1: Bypass is kept after a reload, and a tab in use no longer signs out after 8 hours; in 1.32.0: a failed or stopped answer ends at Studio too; in 1.31.1: <code>memory_ask</code> right after an update; in 1.31.0: Team memory follows the branch and the team's rules, with <code>memory_ask</code>; in 1.30.1: no model names in the company Terminal; running <code>piagent studio</code> in the home folder now says to open a project folder; in 1.30.0: large contexts reach Studio over slow links and the company Terminal reads like the dashboard; in 1.29.0: the company Terminal gets its own look and Stop no longer breaks the conversation; in 1.28.3: Agent Watch updating itself no longer interrupts the company Terminal; in 1.28.2: no more “binding changed” right after an update; in 1.28.1: the company Terminal and personal Pi stop stepping on each other (no duplicate Piagent, no old company config, company chats stay in piagent studio); in 1.28.0: team memory v2; in 1.27.1: team memory keeps working while the agent calls the model; in 1.27.0: team memory, company agents remember the team's decisions and rules in each repository; in 1.26.1: a conversation is renamed while its turn runs; in 1.26.0: the Terminal's / commands and shortcuts in the dashboard, /undo for the agent's last turn, dev servers that stay up across turns; in 1.25.0: when the machine lacks something the agent asks, and the approved command runs (run_on_host outside the sandbox, start_docker in the same conversation); in 1.24.0: choose Fast on the new chat page for company conversations, and the Fast switch turns amber while on; in 1.23.1: an agent's question waits at the end of the conversation, right above the composer, and reads more easily; in 1.23.0: a Fast switch for company conversations where the Harness allows it, failed tools reported to Studio (Logs → Tool lỗi), new conversations send their first message after a Harness change; in 1.22.1: the dashboard no longer keeps loading when a project is on a Windows drive seen from WSL (/mnt/d…) or the company runtime does not answer; in 1.22.0: attach any source or text file (.html, .css, .ts, .py, Dockerfile…); in 1.21.1: Bypass can be turned on while a turn runs and stays on after a reload; in 1.21.0: questions and approvals one card at a time (the main agent's first), a notification at the top right when another conversation finishes or waits for you, Studio logs each compaction; in 1.20.0: package installs in the company sandbox no longer ask (npm, PyPI, Go, Maven, Gradle… through a registry-only proxy); in 1.19.0: company tasks with a checklist are carried to the end, every turn says whether it finished, stopped midway or failed, Docker in the company sandbox, folders with several repositories; in 1.18.0: switch the Git branch from the dashboard, retries for passing failures, Claude Haiku 5.5; in 1.17.0: the dashboard shows each project's Git branch; in 1.16.3: an updated dashboard keeps checking for releases; in 1.16.2: the Terminal says what the dashboard says: update question, /bypass, failures and Harness notes in Vietnamese; in 1.16.1: new releases are announced in a dialog and checked every hour, dashboard tabs stay signed in; in 1.16.0: Bypass for company conversations, Harness changes never interrupt you; in 1.15.2: long conversations shrink again; in 1.15.1: Studio sees what each model call is for, conversations in one folder keep their changes apart; in 1.15.0: a refused subagent says why; in 1.14: updates keep the models you chose; in 1.13: conversations keep their place, the agent's notes are formatted, Piagent on Windows through WSL2: a bubblewrap sandbox for company conversations and Agent Watch for Windows; in 1.12: @ picks files and folders on the Mac, skills and commands run from /, and forked company conversations take messages.</p>
|
|
189
|
+
<p>Long tasks go on when Studio is updated or the model has a passing error; in 1.34: helpers report how their work ended, Agent Watch tells you when you are needed; in 1.33.0: runs on Pi 1.3.0; in 1.32.1: Bypass is kept after a reload, and a tab in use no longer signs out after 8 hours; in 1.32.0: a failed or stopped answer ends at Studio too; in 1.31.1: <code>memory_ask</code> right after an update; in 1.31.0: Team memory follows the branch and the team's rules, with <code>memory_ask</code>; in 1.30.1: no model names in the company Terminal; running <code>piagent studio</code> in the home folder now says to open a project folder; in 1.30.0: large contexts reach Studio over slow links and the company Terminal reads like the dashboard; in 1.29.0: the company Terminal gets its own look and Stop no longer breaks the conversation; in 1.28.3: Agent Watch updating itself no longer interrupts the company Terminal; in 1.28.2: no more “binding changed” right after an update; in 1.28.1: the company Terminal and personal Pi stop stepping on each other (no duplicate Piagent, no old company config, company chats stay in piagent studio); in 1.28.0: team memory v2; in 1.27.1: team memory keeps working while the agent calls the model; in 1.27.0: team memory, company agents remember the team's decisions and rules in each repository; in 1.26.1: a conversation is renamed while its turn runs; in 1.26.0: the Terminal's / commands and shortcuts in the dashboard, /undo for the agent's last turn, dev servers that stay up across turns; in 1.25.0: when the machine lacks something the agent asks, and the approved command runs (run_on_host outside the sandbox, start_docker in the same conversation); in 1.24.0: choose Fast on the new chat page for company conversations, and the Fast switch turns amber while on; in 1.23.1: an agent's question waits at the end of the conversation, right above the composer, and reads more easily; in 1.23.0: a Fast switch for company conversations where the Harness allows it, failed tools reported to Studio (Logs → Tool lỗi), new conversations send their first message after a Harness change; in 1.22.1: the dashboard no longer keeps loading when a project is on a Windows drive seen from WSL (/mnt/d…) or the company runtime does not answer; in 1.22.0: attach any source or text file (.html, .css, .ts, .py, Dockerfile…); in 1.21.1: Bypass can be turned on while a turn runs and stays on after a reload; in 1.21.0: questions and approvals one card at a time (the main agent's first), a notification at the top right when another conversation finishes or waits for you, Studio logs each compaction; in 1.20.0: package installs in the company sandbox no longer ask (npm, PyPI, Go, Maven, Gradle… through a registry-only proxy); in 1.19.0: company tasks with a checklist are carried to the end, every turn says whether it finished, stopped midway or failed, Docker in the company sandbox, folders with several repositories; in 1.18.0: switch the Git branch from the dashboard, retries for passing failures, Claude Haiku 5.5; in 1.17.0: the dashboard shows each project's Git branch; in 1.16.3: an updated dashboard keeps checking for releases; in 1.16.2: the Terminal says what the dashboard says: update question, /bypass, failures and Harness notes in Vietnamese; in 1.16.1: new releases are announced in a dialog and checked every hour, dashboard tabs stay signed in; in 1.16.0: Bypass for company conversations, Harness changes never interrupt you; in 1.15.2: long conversations shrink again; in 1.15.1: Studio sees what each model call is for, conversations in one folder keep their changes apart; in 1.15.0: a refused subagent says why; in 1.14: updates keep the models you chose; in 1.13: conversations keep their place, the agent's notes are formatted, Piagent on Windows through WSL2: a bubblewrap sandbox for company conversations and Agent Watch for Windows; in 1.12: @ picks files and folders on the Mac, skills and commands run from /, and forked company conversations take messages.</p>
|
|
190
190
|
</a>
|
|
191
191
|
<a class="doc-card" href="/en/ecosystem">
|
|
192
192
|
<span class="card-kicker">Get started</span>
|
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
<span>Pi Agent Platform</span>
|
|
31
31
|
</a>
|
|
32
32
|
<div class="top-actions">
|
|
33
|
-
<span class="pill"><span class="pill-dot"></span>v1.35.
|
|
33
|
+
<span class="pill"><span class="pill-dot"></span>v1.35.1 docs · EN</span>
|
|
34
34
|
<nav class="language-switch" aria-label="Language">
|
|
35
35
|
<a class="language-option" href="/mcp-approval" hreflang="vi" lang="vi">VI</a>
|
|
36
36
|
<a class="language-option current" href="/en/mcp-approval" hreflang="en" lang="en" aria-current="true">EN</a>
|
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
<span>Pi Agent Platform</span>
|
|
31
31
|
</a>
|
|
32
32
|
<div class="top-actions">
|
|
33
|
-
<span class="pill"><span class="pill-dot"></span>v1.35.
|
|
33
|
+
<span class="pill"><span class="pill-dot"></span>v1.35.1 docs · EN</span>
|
|
34
34
|
<nav class="language-switch" aria-label="Language">
|
|
35
35
|
<a class="language-option" href="/mcp-auth" hreflang="vi" lang="vi">VI</a>
|
|
36
36
|
<a class="language-option current" href="/en/mcp-auth" hreflang="en" lang="en" aria-current="true">EN</a>
|
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
<span>Pi Agent Platform</span>
|
|
31
31
|
</a>
|
|
32
32
|
<div class="top-actions">
|
|
33
|
-
<span class="pill"><span class="pill-dot"></span>v1.35.
|
|
33
|
+
<span class="pill"><span class="pill-dot"></span>v1.35.1 docs · EN</span>
|
|
34
34
|
<nav class="language-switch" aria-label="Language">
|
|
35
35
|
<a class="language-option" href="/mcp-servers" hreflang="vi" lang="vi">VI</a>
|
|
36
36
|
<a class="language-option current" href="/en/mcp-servers" hreflang="en" lang="en" aria-current="true">EN</a>
|
package/docs-site/en/mcp.html
CHANGED
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
<span>Pi Agent Platform</span>
|
|
31
31
|
</a>
|
|
32
32
|
<div class="top-actions">
|
|
33
|
-
<span class="pill"><span class="pill-dot"></span>v1.35.
|
|
33
|
+
<span class="pill"><span class="pill-dot"></span>v1.35.1 docs · EN</span>
|
|
34
34
|
<nav class="language-switch" aria-label="Language">
|
|
35
35
|
<a class="language-option" href="/mcp" hreflang="vi" lang="vi">VI</a>
|
|
36
36
|
<a class="language-option current" href="/en/mcp" hreflang="en" lang="en" aria-current="true">EN</a>
|
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
<span>Pi Agent Platform</span>
|
|
31
31
|
</a>
|
|
32
32
|
<div class="top-actions">
|
|
33
|
-
<span class="pill"><span class="pill-dot"></span>v1.35.
|
|
33
|
+
<span class="pill"><span class="pill-dot"></span>v1.35.1 docs · EN</span>
|
|
34
34
|
<nav class="language-switch" aria-label="Language">
|
|
35
35
|
<a class="language-option" href="/permissions" hreflang="vi" lang="vi">VI</a>
|
|
36
36
|
<a class="language-option current" href="/en/permissions" hreflang="en" lang="en" aria-current="true">EN</a>
|
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
<span>Pi Agent Platform</span>
|
|
31
31
|
</a>
|
|
32
32
|
<div class="top-actions">
|
|
33
|
-
<span class="pill"><span class="pill-dot"></span>v1.35.
|
|
33
|
+
<span class="pill"><span class="pill-dot"></span>v1.35.1 docs · EN</span>
|
|
34
34
|
<nav class="language-switch" aria-label="Language">
|
|
35
35
|
<a class="language-option" href="/profiles" hreflang="vi" lang="vi">VI</a>
|
|
36
36
|
<a class="language-option current" href="/en/profiles" hreflang="en" lang="en" aria-current="true">EN</a>
|
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
<span>Pi Agent Platform</span>
|
|
31
31
|
</a>
|
|
32
32
|
<div class="top-actions">
|
|
33
|
-
<span class="pill"><span class="pill-dot"></span>v1.35.
|
|
33
|
+
<span class="pill"><span class="pill-dot"></span>v1.35.1 docs · EN</span>
|
|
34
34
|
<nav class="language-switch" aria-label="Language">
|
|
35
35
|
<a class="language-option" href="/quickstart" hreflang="vi" lang="vi">VI</a>
|
|
36
36
|
<a class="language-option current" href="/en/quickstart" hreflang="en" lang="en" aria-current="true">EN</a>
|
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
<span>Pi Agent Platform</span>
|
|
31
31
|
</a>
|
|
32
32
|
<div class="top-actions">
|
|
33
|
-
<span class="pill"><span class="pill-dot"></span>v1.35.
|
|
33
|
+
<span class="pill"><span class="pill-dot"></span>v1.35.1 docs · EN</span>
|
|
34
34
|
<nav class="language-switch" aria-label="Language">
|
|
35
35
|
<a class="language-option" href="/runtime" hreflang="vi" lang="vi">VI</a>
|
|
36
36
|
<a class="language-option current" href="/en/runtime" hreflang="en" lang="en" aria-current="true">EN</a>
|
package/docs-site/en/scope.html
CHANGED
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
<span>Pi Agent Platform</span>
|
|
31
31
|
</a>
|
|
32
32
|
<div class="top-actions">
|
|
33
|
-
<span class="pill"><span class="pill-dot"></span>v1.35.
|
|
33
|
+
<span class="pill"><span class="pill-dot"></span>v1.35.1 docs · EN</span>
|
|
34
34
|
<nav class="language-switch" aria-label="Language">
|
|
35
35
|
<a class="language-option" href="/scope" hreflang="vi" lang="vi">VI</a>
|
|
36
36
|
<a class="language-option current" href="/en/scope" hreflang="en" lang="en" aria-current="true">EN</a>
|
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
<span>Pi Agent Platform</span>
|
|
31
31
|
</a>
|
|
32
32
|
<div class="top-actions">
|
|
33
|
-
<span class="pill"><span class="pill-dot"></span>v1.35.
|
|
33
|
+
<span class="pill"><span class="pill-dot"></span>v1.35.1 docs · EN</span>
|
|
34
34
|
<nav class="language-switch" aria-label="Language">
|
|
35
35
|
<a class="language-option" href="/security" hreflang="vi" lang="vi">VI</a>
|
|
36
36
|
<a class="language-option current" href="/en/security" hreflang="en" lang="en" aria-current="true">EN</a>
|
package/docs-site/en/team.html
CHANGED
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
<span>Pi Agent Platform</span>
|
|
31
31
|
</a>
|
|
32
32
|
<div class="top-actions">
|
|
33
|
-
<span class="pill"><span class="pill-dot"></span>v1.35.
|
|
33
|
+
<span class="pill"><span class="pill-dot"></span>v1.35.1 docs · EN</span>
|
|
34
34
|
<nav class="language-switch" aria-label="Language">
|
|
35
35
|
<a class="language-option" href="/team" hreflang="vi" lang="vi">VI</a>
|
|
36
36
|
<a class="language-option current" href="/en/team" hreflang="en" lang="en" aria-current="true">EN</a>
|
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
<span>Pi Agent Platform</span>
|
|
31
31
|
</a>
|
|
32
32
|
<div class="top-actions">
|
|
33
|
-
<span class="pill"><span class="pill-dot"></span>v1.35.
|
|
33
|
+
<span class="pill"><span class="pill-dot"></span>v1.35.1 docs · EN</span>
|
|
34
34
|
<nav class="language-switch" aria-label="Language">
|
|
35
35
|
<a class="language-option" href="/whats-new" hreflang="vi" lang="vi">VI</a>
|
|
36
36
|
<a class="language-option current" href="/en/whats-new" hreflang="en" lang="en" aria-current="true">EN</a>
|
|
@@ -104,6 +104,12 @@
|
|
|
104
104
|
<h1>1.9.0: ask in plain language, the team's Harness checks</h1>
|
|
105
105
|
<p>The task contract and workflow commands are gone. Company mode asks for checks and a review on its own; Stop, network commands on approval and clearer approval cards.</p>
|
|
106
106
|
</div>
|
|
107
|
+
<section class="section">
|
|
108
|
+
<p class="section-kicker">v1.35.1 · 2026-10-21</p>
|
|
109
|
+
<h2 id="v1-35-1">A passing model provider error no longer stops a long task</h2>
|
|
110
|
+
<p class="section-lead">When the model's server (GPT, Claude) reports an error in the middle of an answer, Piagent asks again a few seconds later; if the whole round is cut, the next one starts by itself after a pause (at most 8 times, about 23 minutes per message of yours), the agent is told why and goes on from where it was. Each ask again is written to the log on the machine.</p>
|
|
111
|
+
</section>
|
|
112
|
+
|
|
107
113
|
<section class="section">
|
|
108
114
|
<p class="section-kicker">v1.35.0 · 2026-10-21</p>
|
|
109
115
|
<h2 id="v1-35-0">Long tasks survive a Studio update</h2>
|
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
<span>Pi Agent Platform</span>
|
|
31
31
|
</a>
|
|
32
32
|
<div class="top-actions">
|
|
33
|
-
<span class="pill"><span class="pill-dot"></span>v1.35.
|
|
33
|
+
<span class="pill"><span class="pill-dot"></span>v1.35.1 docs · EN</span>
|
|
34
34
|
<nav class="language-switch" aria-label="Language">
|
|
35
35
|
<a class="language-option" href="/windows" hreflang="vi" lang="vi">VI</a>
|
|
36
36
|
<a class="language-option current" href="/en/windows" hreflang="en" lang="en" aria-current="true">EN</a>
|
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
<span>Pi Agent Platform</span>
|
|
31
31
|
</a>
|
|
32
32
|
<div class="top-actions">
|
|
33
|
-
<span class="pill"><span class="pill-dot"></span>v1.35.
|
|
33
|
+
<span class="pill"><span class="pill-dot"></span>v1.35.1 docs · EN</span>
|
|
34
34
|
<nav class="language-switch" aria-label="Language">
|
|
35
35
|
<a class="language-option" href="/workflows" hreflang="vi" lang="vi">VI</a>
|
|
36
36
|
<a class="language-option current" href="/en/workflows" hreflang="en" lang="en" aria-current="true">EN</a>
|
package/docs-site/index.html
CHANGED
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
<span>Pi Agent Platform</span>
|
|
31
31
|
</a>
|
|
32
32
|
<div class="top-actions">
|
|
33
|
-
<span class="pill"><span class="pill-dot"></span>v1.35.
|
|
33
|
+
<span class="pill"><span class="pill-dot"></span>v1.35.1 docs · VI</span>
|
|
34
34
|
<nav class="language-switch" aria-label="Ngôn ngữ">
|
|
35
35
|
<a class="language-option current" href="/" hreflang="vi" lang="vi" aria-current="true">VI</a>
|
|
36
36
|
<a class="language-option" href="/en/" hreflang="en" lang="en">EN</a>
|
|
@@ -94,7 +94,7 @@
|
|
|
94
94
|
<main>
|
|
95
95
|
<div class="content-shell" data-article>
|
|
96
96
|
<section class="hero">
|
|
97
|
-
<p class="eyebrow">Piagent 1.35.
|
|
97
|
+
<p class="eyebrow">Piagent 1.35.1</p>
|
|
98
98
|
<h1>Coding agent cho cả team, kiểm tra từng bước.</h1>
|
|
99
99
|
<p>
|
|
100
100
|
Một dashboard cho Terminal và trình duyệt. Dùng model bằng tài khoản của bạn, hoặc model của công ty qua Agent Watch và Agent Studio. Guard kiểm tra từng tool call; ở chế độ công ty, Harness của team tự yêu cầu chạy check, cho subagent review và báo kết quả ngay dưới câu trả lời.
|
|
@@ -108,7 +108,7 @@
|
|
|
108
108
|
<div class="hero-actions">
|
|
109
109
|
<a class="button primary" href="/quickstart">Bắt đầu</a>
|
|
110
110
|
<a class="button" href="/ecosystem">Hệ sinh thái</a>
|
|
111
|
-
<a class="button" href="/whats-new">Có gì mới trong 1.35.
|
|
111
|
+
<a class="button" href="/whats-new">Có gì mới trong 1.35.1</a>
|
|
112
112
|
<a class="button" href="/commands">Xem command</a>
|
|
113
113
|
</div>
|
|
114
114
|
</section>
|
|
@@ -184,9 +184,9 @@ piagent-setup</code></pre>
|
|
|
184
184
|
<h2 id="bat-dau-tu-dau">Bắt đầu từ đâu</h2>
|
|
185
185
|
<div class="card-grid">
|
|
186
186
|
<a class="doc-card" href="/whats-new">
|
|
187
|
-
<span class="card-kicker">Bản 1.35.
|
|
187
|
+
<span class="card-kicker">Bản 1.35.1</span>
|
|
188
188
|
<h3>Có gì mới</h3>
|
|
189
|
-
<p>Task dài
|
|
189
|
+
<p>Task dài không dừng khi Studio cập nhật hay model báo lỗi tạm thời; ở 1.34: helper báo kết quả, Agent Watch báo khi cần bạn; ở 1.33.0: chạy trên Pi 1.3.0; ở 1.32.1: Bypass được giữ sau khi tải lại, tab đang dùng không còn bị đăng xuất sau 8 giờ; ở 1.32.0: lượt lỗi hoặc bấm Stop được dừng cả ở Studio; ở 1.31.1: <code>memory_ask</code> có ngay sau khi cập nhật; ở 1.31.0: Memory của team đi theo branch và luật của team, có <code>memory_ask</code>; ở 1.30.1: Terminal công ty không còn hiện tên model, mở <code>piagent studio</code> ở thư mục home báo rõ cần vào thư mục dự án; ở 1.30.0: context lớn đi qua mạng chậm, Terminal công ty gọn như dashboard; ở 1.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; ở 1.28.3: Agent Watch tự cập nhật không còn làm gián đoạn Terminal công ty; ở 1.28.2: không còn lỗi “binding changed” ngay sau khi cập nhật; ở 1.28.1: Terminal công ty và Pi cá nhân không còn giẫm chân nhau (không nạp Piagent hai lần, dọn cấu hình công ty cũ, cuộc trò chuyện công ty chỉ mở bằng piagent studio); ở 1.28.0: team memory v2; ở 1.27.1: team memory chạy ổn cả khi agent đang gọi model; ở 1.27.0: team memory, agent công ty nhớ quyết định và quy tắc của team trong từng repo; ở 1.26.1: đổi tên cuộc trò chuyện được cả khi lượt đang chạy; ở 1.26.0: lệnh / và phím tắt của Terminal ngay trên dashboard, /undo hoàn tác lượt trước của agent, dev server chạy qua nhiều lượt; ở 1.25.0: thiếu môi trường thì agent xin quyền và chạy được sau khi bạn duyệt (run_on_host ngoài sandbox, start_docker mở Docker ngay trong cuộc trò chuyện); ở 1.24.0: chọn Fast ngay trên trang tạo cuộc trò chuyện công ty, nút Fast đổi màu vàng khi đang bật; ở 1.23.1: câu hỏi của agent luôn nằm cuối cuộc trò chuyện, ngay trên ô nhập, và dễ đọc hơn; ở 1.23.0: nút Fast cho cuộc trò chuyện công ty khi Harness cho phép, tool lỗi được báo về Studio (Logs → Tool lỗi), cuộc trò chuyện mới gửi được tin nhắn đầu sau khi Harness đổi; ở 1.22.1: dashboard không còn quay mãi khi project nằm trên ổ Windows nhìn từ WSL (/mnt/d…) hoặc phiên công ty không trả lời; ở 1.22.0: đính kèm được mọi file code và văn bản (.html, .css, .ts, .py, Dockerfile…); ở 1.21.1: bật Bypass được cả khi lượt đang chạy và được giữ sau khi tải lại; ở 1.21.0: câu hỏi và yêu cầu duyệt hiện từng cái một (main agent trước), thông báo góc phải khi cuộc trò chuyện khác xong hay đang chờ bạn, Studio ghi lại mỗi lần compact; ở 1.20.0: cài package trong sandbox công ty không phải duyệt (npm, PyPI, Go, Maven, Gradle… qua proxy chỉ cho registry); ở 1.19.0: task công ty có checklist được làm đến hết, cuối mỗi lượt báo rõ xong, dừng giữa chừng hay lỗi, Docker trong sandbox công ty, folder chứa nhiều repo; ở 1.18.0: đổi nhánh Git trên dashboard, tự thử lại khi lỗi tạm thời, Claude Haiku 5.5; ở 1.17.0: dashboard hiện nhánh Git của project; ở 1.16.3: dashboard cập nhật xong vẫn tự kiểm tra bản mới; ở 1.16.2: Terminal nói giống dashboard: hỏi cập nhật, /bypass, lỗi và ghi chú Harness bằng tiếng Việt; ở 1.16.1: bản mới được báo bằng dialog và kiểm tra mỗi giờ, tab dashboard không còn mất đăng nhập; ở 1.16.0: Bypass cho cuộc trò chuyện công ty, đổi Harness không làm gián đoạn; ở 1.15.2: cuộc trò chuyện dài tự thu gọn trở lại; ở 1.15.1: Studio thấy mỗi call của model dùng để làm gì, nhiều cuộc trò chuyện trong một folder không nhận nhầm thay đổi của nhau; ở 1.15.0: subagent bị từ chối nói đúng lý do; ở 1.14: cập nhật giữ model bạn đã chọn; ở 1.13: cuộc trò chuyện giữ chỗ đang đọc, chữ của agent có định dạng, Piagent trên Windows qua WSL2: sandbox công ty bằng bubblewrap và Agent Watch cho Windows; ở 1.12: @ chọn file và folder trên máy, skill và command dùng bằng /, nhánh cuộc trò chuyện công ty gửi được tin nhắn.</p>
|
|
190
190
|
</a>
|
|
191
191
|
<a class="doc-card" href="/ecosystem">
|
|
192
192
|
<span class="card-kicker">Get started</span>
|
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
<span>Pi Agent Platform</span>
|
|
31
31
|
</a>
|
|
32
32
|
<div class="top-actions">
|
|
33
|
-
<span class="pill"><span class="pill-dot"></span>v1.35.
|
|
33
|
+
<span class="pill"><span class="pill-dot"></span>v1.35.1 docs · VI</span>
|
|
34
34
|
<nav class="language-switch" aria-label="Ngôn ngữ">
|
|
35
35
|
<a class="language-option current" href="/mcp-approval" hreflang="vi" lang="vi" aria-current="true">VI</a>
|
|
36
36
|
<a class="language-option" href="/en/mcp-approval" hreflang="en" lang="en">EN</a>
|
package/docs-site/mcp-auth.html
CHANGED
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
<span>Pi Agent Platform</span>
|
|
31
31
|
</a>
|
|
32
32
|
<div class="top-actions">
|
|
33
|
-
<span class="pill"><span class="pill-dot"></span>v1.35.
|
|
33
|
+
<span class="pill"><span class="pill-dot"></span>v1.35.1 docs · VI</span>
|
|
34
34
|
<nav class="language-switch" aria-label="Ngôn ngữ">
|
|
35
35
|
<a class="language-option current" href="/mcp-auth" hreflang="vi" lang="vi" aria-current="true">VI</a>
|
|
36
36
|
<a class="language-option" href="/en/mcp-auth" hreflang="en" lang="en">EN</a>
|
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
<span>Pi Agent Platform</span>
|
|
31
31
|
</a>
|
|
32
32
|
<div class="top-actions">
|
|
33
|
-
<span class="pill"><span class="pill-dot"></span>v1.35.
|
|
33
|
+
<span class="pill"><span class="pill-dot"></span>v1.35.1 docs · VI</span>
|
|
34
34
|
<nav class="language-switch" aria-label="Ngôn ngữ">
|
|
35
35
|
<a class="language-option current" href="/mcp-servers" hreflang="vi" lang="vi" aria-current="true">VI</a>
|
|
36
36
|
<a class="language-option" href="/en/mcp-servers" hreflang="en" lang="en">EN</a>
|
package/docs-site/mcp.html
CHANGED
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
<span>Pi Agent Platform</span>
|
|
31
31
|
</a>
|
|
32
32
|
<div class="top-actions">
|
|
33
|
-
<span class="pill"><span class="pill-dot"></span>v1.35.
|
|
33
|
+
<span class="pill"><span class="pill-dot"></span>v1.35.1 docs · VI</span>
|
|
34
34
|
<nav class="language-switch" aria-label="Ngôn ngữ">
|
|
35
35
|
<a class="language-option current" href="/mcp" hreflang="vi" lang="vi" aria-current="true">VI</a>
|
|
36
36
|
<a class="language-option" href="/en/mcp" hreflang="en" lang="en">EN</a>
|
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
<span>Pi Agent Platform</span>
|
|
31
31
|
</a>
|
|
32
32
|
<div class="top-actions">
|
|
33
|
-
<span class="pill"><span class="pill-dot"></span>v1.35.
|
|
33
|
+
<span class="pill"><span class="pill-dot"></span>v1.35.1 docs · VI</span>
|
|
34
34
|
<nav class="language-switch" aria-label="Ngôn ngữ">
|
|
35
35
|
<a class="language-option current" href="/permissions" hreflang="vi" lang="vi" aria-current="true">VI</a>
|
|
36
36
|
<a class="language-option" href="/en/permissions" hreflang="en" lang="en">EN</a>
|
package/docs-site/profiles.html
CHANGED
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
<span>Pi Agent Platform</span>
|
|
31
31
|
</a>
|
|
32
32
|
<div class="top-actions">
|
|
33
|
-
<span class="pill"><span class="pill-dot"></span>v1.35.
|
|
33
|
+
<span class="pill"><span class="pill-dot"></span>v1.35.1 docs · VI</span>
|
|
34
34
|
<nav class="language-switch" aria-label="Ngôn ngữ">
|
|
35
35
|
<a class="language-option current" href="/profiles" hreflang="vi" lang="vi" aria-current="true">VI</a>
|
|
36
36
|
<a class="language-option" href="/en/profiles" hreflang="en" lang="en">EN</a>
|
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
<span>Pi Agent Platform</span>
|
|
31
31
|
</a>
|
|
32
32
|
<div class="top-actions">
|
|
33
|
-
<span class="pill"><span class="pill-dot"></span>v1.35.
|
|
33
|
+
<span class="pill"><span class="pill-dot"></span>v1.35.1 docs · VI</span>
|
|
34
34
|
<nav class="language-switch" aria-label="Ngôn ngữ">
|
|
35
35
|
<a class="language-option current" href="/quickstart" hreflang="vi" lang="vi" aria-current="true">VI</a>
|
|
36
36
|
<a class="language-option" href="/en/quickstart" hreflang="en" lang="en">EN</a>
|
package/docs-site/runtime.html
CHANGED
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
<span>Pi Agent Platform</span>
|
|
31
31
|
</a>
|
|
32
32
|
<div class="top-actions">
|
|
33
|
-
<span class="pill"><span class="pill-dot"></span>v1.35.
|
|
33
|
+
<span class="pill"><span class="pill-dot"></span>v1.35.1 docs · VI</span>
|
|
34
34
|
<nav class="language-switch" aria-label="Ngôn ngữ">
|
|
35
35
|
<a class="language-option current" href="/runtime" hreflang="vi" lang="vi" aria-current="true">VI</a>
|
|
36
36
|
<a class="language-option" href="/en/runtime" hreflang="en" lang="en">EN</a>
|
package/docs-site/scope.html
CHANGED
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
<span>Pi Agent Platform</span>
|
|
31
31
|
</a>
|
|
32
32
|
<div class="top-actions">
|
|
33
|
-
<span class="pill"><span class="pill-dot"></span>v1.35.
|
|
33
|
+
<span class="pill"><span class="pill-dot"></span>v1.35.1 docs · VI</span>
|
|
34
34
|
<nav class="language-switch" aria-label="Ngôn ngữ">
|
|
35
35
|
<a class="language-option current" href="/scope" hreflang="vi" lang="vi" aria-current="true">VI</a>
|
|
36
36
|
<a class="language-option" href="/en/scope" hreflang="en" lang="en">EN</a>
|
package/docs-site/security.html
CHANGED
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
<span>Pi Agent Platform</span>
|
|
31
31
|
</a>
|
|
32
32
|
<div class="top-actions">
|
|
33
|
-
<span class="pill"><span class="pill-dot"></span>v1.35.
|
|
33
|
+
<span class="pill"><span class="pill-dot"></span>v1.35.1 docs · VI</span>
|
|
34
34
|
<nav class="language-switch" aria-label="Ngôn ngữ">
|
|
35
35
|
<a class="language-option current" href="/security" hreflang="vi" lang="vi" aria-current="true">VI</a>
|
|
36
36
|
<a class="language-option" href="/en/security" hreflang="en" lang="en">EN</a>
|
package/docs-site/team.html
CHANGED
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
<span>Pi Agent Platform</span>
|
|
31
31
|
</a>
|
|
32
32
|
<div class="top-actions">
|
|
33
|
-
<span class="pill"><span class="pill-dot"></span>v1.35.
|
|
33
|
+
<span class="pill"><span class="pill-dot"></span>v1.35.1 docs · VI</span>
|
|
34
34
|
<nav class="language-switch" aria-label="Ngôn ngữ">
|
|
35
35
|
<a class="language-option current" href="/team" hreflang="vi" lang="vi" aria-current="true">VI</a>
|
|
36
36
|
<a class="language-option" href="/en/team" hreflang="en" lang="en">EN</a>
|
package/docs-site/whats-new.html
CHANGED
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
<span>Pi Agent Platform</span>
|
|
31
31
|
</a>
|
|
32
32
|
<div class="top-actions">
|
|
33
|
-
<span class="pill"><span class="pill-dot"></span>v1.35.
|
|
33
|
+
<span class="pill"><span class="pill-dot"></span>v1.35.1 docs · VI</span>
|
|
34
34
|
<nav class="language-switch" aria-label="Ngôn ngữ">
|
|
35
35
|
<a class="language-option current" href="/whats-new" hreflang="vi" lang="vi" aria-current="true">VI</a>
|
|
36
36
|
<a class="language-option" href="/en/whats-new" hreflang="en" lang="en">EN</a>
|
|
@@ -104,6 +104,12 @@
|
|
|
104
104
|
<h1>Bản 1.9.0: nói việc bằng lời, Harness của team kiểm tra</h1>
|
|
105
105
|
<p>Bỏ task contract và lệnh workflow. Chế độ công ty tự yêu cầu check và review; nút Dừng, lệnh có mạng theo lần duyệt và thẻ duyệt dễ đọc hơn.</p>
|
|
106
106
|
</div>
|
|
107
|
+
<section class="section">
|
|
108
|
+
<p class="section-kicker">v1.35.1 · 2026-10-21</p>
|
|
109
|
+
<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>
|
|
110
|
+
<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>
|
|
111
|
+
</section>
|
|
112
|
+
|
|
107
113
|
<section class="section">
|
|
108
114
|
<p class="section-kicker">v1.35.0 · 2026-10-21</p>
|
|
109
115
|
<h2 id="v1-35-0">Task dài chạy qua được lúc Studio cập nhật</h2>
|
package/docs-site/windows.html
CHANGED
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
<span>Pi Agent Platform</span>
|
|
31
31
|
</a>
|
|
32
32
|
<div class="top-actions">
|
|
33
|
-
<span class="pill"><span class="pill-dot"></span>v1.35.
|
|
33
|
+
<span class="pill"><span class="pill-dot"></span>v1.35.1 docs · VI</span>
|
|
34
34
|
<nav class="language-switch" aria-label="Ngôn ngữ">
|
|
35
35
|
<a class="language-option current" href="/windows" hreflang="vi" lang="vi" aria-current="true">VI</a>
|
|
36
36
|
<a class="language-option" href="/en/windows" hreflang="en" lang="en">EN</a>
|
package/docs-site/workflows.html
CHANGED
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
<span>Pi Agent Platform</span>
|
|
31
31
|
</a>
|
|
32
32
|
<div class="top-actions">
|
|
33
|
-
<span class="pill"><span class="pill-dot"></span>v1.35.
|
|
33
|
+
<span class="pill"><span class="pill-dot"></span>v1.35.1 docs · VI</span>
|
|
34
34
|
<nav class="language-switch" aria-label="Ngôn ngữ">
|
|
35
35
|
<a class="language-option current" href="/workflows" hreflang="vi" lang="vi" aria-current="true">VI</a>
|
|
36
36
|
<a class="language-option" href="/en/workflows" hreflang="en" lang="en">EN</a>
|
|
@@ -256,8 +256,8 @@
|
|
|
256
256
|
},
|
|
257
257
|
{
|
|
258
258
|
"path": "tests",
|
|
259
|
-
"fileCount":
|
|
260
|
-
"sha256": "
|
|
259
|
+
"fileCount": 565,
|
|
260
|
+
"sha256": "a665912524fd6c36a2d65b8fed5a766eccf8aa0161719a7d6c1bf12eeac647b9"
|
|
261
261
|
}
|
|
262
262
|
],
|
|
263
263
|
"custodianComparisonRules": {
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { checkpointsOf } from './checkpoints.mjs';
|
|
2
2
|
import { unfinished, planText, currentPlan, workflowPolicy } from './workflow.mjs';
|
|
3
3
|
import { failureCode } from '../runtime/managed-failure.mjs';
|
|
4
|
-
import { resumeMessage } from './studio-link.mjs';
|
|
4
|
+
import { providerResumeMessage, resumeMessage } from './studio-link.mjs';
|
|
5
5
|
|
|
6
6
|
// A main agent often ends its turn between the steps of its own checklist
|
|
7
7
|
// ("STEP06 done, STEP07 next"), though the member asked for all of them.
|
|
@@ -15,6 +15,14 @@ export const MAX_ROUNDS = 30;
|
|
|
15
15
|
// How the member's message ended, shown under the last answer.
|
|
16
16
|
export const TURN_END_ENTRY = 'agent-watch-turn-end';
|
|
17
17
|
export const TURN_END_STATES = ['done', 'midway', 'failed', 'cancelled'];
|
|
18
|
+
// A round cut by a passing failure of the model provider (its error event in
|
|
19
|
+
// the middle of an answer, an answer cut or never sent) is asked again by the
|
|
20
|
+
// turn's own retry; where that retry does not run (the WebUI does not replay a
|
|
21
|
+
// round once a tool ran), the next round starts by itself after a pause: at
|
|
22
|
+
// most PROVIDER_RESUME_DELAYS_MS.length times per member message, 15 s
|
|
23
|
+
// doubling to 5 min (about 23 min in all); a round that ends well resets it.
|
|
24
|
+
export const PROVIDER_RESUME_CODES = new Set(['upstream_server_error', 'upstream_interrupted', 'upstream_incomplete', 'upstream_timeout', 'upstream_unavailable', 'connector_execution_failed', 'output_limit_exceeded']);
|
|
25
|
+
export const PROVIDER_RESUME_DELAYS_MS = [15_000, 30_000, 60_000, 120_000, 240_000, 300_000, 300_000, 300_000];
|
|
18
26
|
|
|
19
27
|
const completed = plan => plan?.plan?.filter(p => p.status === 'completed').length ?? 0;
|
|
20
28
|
const deferred = plan => plan?.plan?.filter(p => p.status === 'deferred').length ?? 0;
|
|
@@ -86,7 +94,7 @@ export async function memberTurn(self, { manager, prompt, runRound }, text, deli
|
|
|
86
94
|
await self.session.sendCustomMessage({ customType: 'agent-watch-process', content, display: true, details: { phase: 'undo', undo } }, { triggerTurn: false });
|
|
87
95
|
return;
|
|
88
96
|
}
|
|
89
|
-
let continuation = fresh(self, manager, text), result, waiting = null, ended = null;
|
|
97
|
+
let continuation = fresh(self, manager, text), result, waiting = null, ended = null, providerResumes = 0;
|
|
90
98
|
self.stopRequested = false; self.queued = [];
|
|
91
99
|
try {
|
|
92
100
|
for (let first = true; ; first = false) {
|
|
@@ -111,6 +119,19 @@ export async function memberTurn(self, { manager, prompt, runRound }, text, deli
|
|
|
111
119
|
stopped ||= self.stopRequested;
|
|
112
120
|
if (round.planUpdated) continuation.touched = true;
|
|
113
121
|
}
|
|
122
|
+
const delays = self.providerResumeDelaysMs ?? PROVIDER_RESUME_DELAYS_MS;
|
|
123
|
+
if (!failure) providerResumes = 0;
|
|
124
|
+
else if (!resume && !stopped && !self.queued.length && PROVIDER_RESUME_CODES.has(failure.code) && providerResumes < delays.length) {
|
|
125
|
+
const delay = delays[providerResumes++], conversation = manager.getSessionId?.() ?? null;
|
|
126
|
+
self.studioLink?.log({ kind: 'provider_retry', code: failure.code, attempt: providerResumes, of: delays.length, delay_ms: delay, conversation });
|
|
127
|
+
self.notify({ type: 'managed_provider_retry', code: failure.code, attempt: providerResumes, of: delays.length, delayMs: delay });
|
|
128
|
+
self.studioLink?.status(`The model provider failed while answering (${failure.code}). Going on in ${Math.round(delay / 1000)} s (${providerResumes}/${delays.length}). Esc stops.`);
|
|
129
|
+
try { await (self.studioLink ? self.studioLink.hold(delay) : new Promise(r => setTimeout(r, delay))); resume = providerResumeMessage(failure.code, providerResumes, delays.length); }
|
|
130
|
+
catch { /* stopped while waiting */ }
|
|
131
|
+
stopped ||= self.stopRequested;
|
|
132
|
+
if (round.planUpdated) continuation.touched = true;
|
|
133
|
+
} else if (PROVIDER_RESUME_CODES.has(failure.code) && providerResumes >= delays.length)
|
|
134
|
+
self.studioLink?.log({ kind: 'provider_retry', code: failure.code, outcome: 'gave_up', attempts: providerResumes, conversation: manager.getSessionId?.() ?? null });
|
|
114
135
|
const plan = currentPlan(manager), message = resume && !stopped ? resume : continuation.next({ plan, planUpdated: round.planUpdated, changed: round.changed, stopped, failed: !!failure });
|
|
115
136
|
if (self.queued.length) {
|
|
116
137
|
// The member wrote while the round closed: theirs is the next round,
|
|
@@ -257,7 +257,7 @@ function capacityStatus(owner) {
|
|
|
257
257
|
// run) fails at once, as before. Pi decides by the words of an error, which
|
|
258
258
|
// for a company failure would match "rate limited" or "timeout" in sentences
|
|
259
259
|
// that must not be retried; here it decides by Studio's code only.
|
|
260
|
-
export const TURN_RETRY_CODES = new Set(['upstream_interrupted', 'upstream_incomplete', 'upstream_timeout', 'upstream_unavailable', 'output_limit_exceeded',
|
|
260
|
+
export const TURN_RETRY_CODES = new Set(['upstream_interrupted', 'upstream_incomplete', 'upstream_timeout', 'upstream_unavailable', 'upstream_server_error', 'output_limit_exceeded',
|
|
261
261
|
'connector_unavailable', 'connector_execution_failed', 'inference_unavailable', 'studio-unreachable']);
|
|
262
262
|
export const TURN_RETRY = { maxRetries: 2, baseDelayMs: 2_000 };
|
|
263
263
|
|
|
@@ -278,7 +278,13 @@ export function enableCompanyTurnRetry(session, settings, link = null) {
|
|
|
278
278
|
settings.applyOverrides({ retry: { enabled: true, ...TURN_RETRY } });
|
|
279
279
|
const prepare = session._prepareRetry;
|
|
280
280
|
if (link && typeof prepare === 'function') session._prepareRetry = async function (message) {
|
|
281
|
-
|
|
281
|
+
// Each ask again goes to the member's local log (studio-link.jsonl), so a
|
|
282
|
+
// task that stopped or went on can be read back later.
|
|
283
|
+
if (!studio(message)) {
|
|
284
|
+
const asked = await prepare.call(this, message);
|
|
285
|
+
if (asked) link.log({ kind: 'turn_retry', code: failureCode(message.errorMessage), attempt: this._retryAttempt });
|
|
286
|
+
return asked;
|
|
287
|
+
}
|
|
282
288
|
// Studio answers here and was not away lately (Agent Watch or Studio's
|
|
283
289
|
// connector failed on a running Studio): Pi's own asks again, as before.
|
|
284
290
|
if (!(await link.needed(failureCode(message.errorMessage)).catch(() => false))) return companyTurnRetryable(message) ? prepare.call(this, message) : false;
|
|
@@ -151,6 +151,16 @@ export class StudioLink {
|
|
|
151
151
|
}
|
|
152
152
|
justBack() { return !!this.recoveredAt && this.now() - this.recoveredAt < (this.brokerGraceMs ?? BROKER_GRACE_MS); }
|
|
153
153
|
|
|
154
|
+
// A pause Stop can end (a round asked again after a provider's passing failure).
|
|
155
|
+
async hold(ms, signal) {
|
|
156
|
+
const controller = new AbortController(), stop = () => controller.abort(signal?.reason);
|
|
157
|
+
if (signal?.aborted) throw signal.reason ?? Error('aborted');
|
|
158
|
+
signal?.addEventListener('abort', stop, { once: true });
|
|
159
|
+
this.waiting.add(controller);
|
|
160
|
+
try { await this.pause(ms, controller.signal); }
|
|
161
|
+
finally { signal?.removeEventListener('abort', stop); this.waiting.delete(controller); if (!this.waiting.size) this.status(undefined); }
|
|
162
|
+
}
|
|
163
|
+
|
|
154
164
|
// Stop ends every wait at once.
|
|
155
165
|
cancel() { for (const controller of this.waiting) controller.abort(Error('managed-request-aborted')); }
|
|
156
166
|
|
|
@@ -211,6 +221,14 @@ export class StudioLink {
|
|
|
211
221
|
}
|
|
212
222
|
}
|
|
213
223
|
|
|
224
|
+
// What the main agent reads when its work goes on after the model provider
|
|
225
|
+
// failed for a passing reason in the middle of the round.
|
|
226
|
+
export function providerResumeMessage(code, attempt, max) {
|
|
227
|
+
return { customType: 'agent-watch-process', display: true,
|
|
228
|
+
content: `Harness: your last step was cut off because the model provider failed while answering [${code}]; that is a passing failure on its side (attempt ${attempt} of ${max} to go on). Nothing you asked for is lost: the files and the checklist are as you left them. Check where you were (the checklist, git status, the last command you ran) and continue the member's task from there; do not redo work that is already done.`,
|
|
229
|
+
details: { phase: 'resume', cause: 'provider', code, attempt, max } };
|
|
230
|
+
}
|
|
231
|
+
|
|
214
232
|
// What the main agent reads when its work goes on after Studio was back.
|
|
215
233
|
export function resumeMessage(wait, code) {
|
|
216
234
|
const why = { studio_update: `Studio was updated${wait.version_before && wait.version_after ? ` (${wait.version_before} → ${wait.version_after})` : ''}`,
|
|
@@ -52,6 +52,10 @@ const CODES = {
|
|
|
52
52
|
managed_service_unavailable: ['service', 'Studio could not start the run'],
|
|
53
53
|
upstream_interrupted: ['service', 'the model response was interrupted'],
|
|
54
54
|
upstream_incomplete: ['service', 'the model returned no response'],
|
|
55
|
+
// The provider's own error event in the middle of an answer (OpenAI
|
|
56
|
+
// server_error / api_error, Anthropic api_error / overloaded_error): a
|
|
57
|
+
// passing failure on its side, asked again.
|
|
58
|
+
upstream_server_error: ['service', 'the model provider failed while answering (a passing error on its side)'],
|
|
55
59
|
// Studio ended the stream: the model wrote past the request's output limit
|
|
56
60
|
// (a degenerate answer), or the request was ended for the member.
|
|
57
61
|
output_limit_exceeded: ['service', 'the model kept writing past its output limit and was stopped'],
|
|
@@ -104,6 +108,7 @@ const CODES = {
|
|
|
104
108
|
};
|
|
105
109
|
const ROLES = { main: 'main agent', scout: 'scout subagent', research: 'research subagent', verify: 'verify subagent', review: 'review subagent' };
|
|
106
110
|
const REQUEST = /\b([0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})\b/;
|
|
111
|
+
const PROVIDER_SERVER_ERROR = /^(?:Error Code )?(?:server_error|api_error|internal_error|internal_server_error|overloaded_error|undefined):|An error occurred while processing your request|"type"\s*:\s*"(?:api_error|overloaded_error)"|\bOverloaded\b/i;
|
|
107
112
|
const NETWORK = /fetch failed|econnrefused|econnreset|enotfound|ehostunreach|etimedout|socket hang up|network|connection error|terminated|timed? ?out|aborted due to timeout/i;
|
|
108
113
|
|
|
109
114
|
export function failureKind(code) { return CODES[code]?.[0] ?? 'failed'; }
|
|
@@ -151,6 +156,9 @@ export function failureCode(raw) {
|
|
|
151
156
|
const local = /(managed-broker:[A-Za-z_]{1,80}|managed-[a-z-]{1,80}|web-search-empty)/.exec(text)?.[1];
|
|
152
157
|
if (known(local)) return local;
|
|
153
158
|
if (!studio && /\bAPI error \((?:50[234]|52\d|530)\)|^(?:50[234]|52\d|530)\b/.test(text)) return 'studio-gateway-unavailable';
|
|
159
|
+
// How Pi's providers word the provider's error event inside a streamed
|
|
160
|
+
// answer (seen 2026-10-21: gpt-6-sol sent api_error mid-answer and the task stopped).
|
|
161
|
+
if (PROVIDER_SERVER_ERROR.test(text)) return 'upstream_server_error';
|
|
154
162
|
if (studio || /\bAPI error \(\d{3}\)|^\d{3} \{/.test(text)) return 'studio-request-failed';
|
|
155
163
|
// The provider declined the request itself (its usage policy), not Studio:
|
|
156
164
|
// the same request is declined again, so it is said in words.
|