@piagent/platform 1.41.0 → 1.42.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 +1020 -2038
- package/CONTRIBUTING.md +2 -0
- package/README.md +128 -325
- package/README.vi.md +149 -143
- 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 +2 -0
- package/docs/release-install-policy.md +3 -3
- package/docs/team-onboarding.md +2 -2
- package/docs-site/architecture.html +71 -63
- package/docs-site/assets/docs.css +2736 -1030
- package/docs-site/assets/docs.js +451 -43
- package/docs-site/assets/og.png +0 -0
- package/docs-site/assets/piagent-logo.svg +9 -31
- package/docs-site/assets/search-en.json +1 -0
- package/docs-site/assets/search-vi.json +1 -0
- package/docs-site/benchmark.html +71 -63
- package/docs-site/commands.html +72 -64
- package/docs-site/content/en/index.html +220 -131
- package/docs-site/content/en/quickstart.html +74 -90
- package/docs-site/content/en/update.html +80 -0
- package/docs-site/content/en/whats-new.html +1 -684
- package/docs-site/content/index.html +220 -131
- package/docs-site/content/quickstart.html +73 -108
- package/docs-site/content/update.html +80 -0
- package/docs-site/content/whats-new.html +1 -684
- package/docs-site/context-engine.html +73 -65
- package/docs-site/ecosystem.html +73 -65
- package/docs-site/en/architecture.html +67 -59
- package/docs-site/en/benchmark.html +67 -59
- package/docs-site/en/commands.html +68 -60
- package/docs-site/en/context-engine.html +68 -60
- package/docs-site/en/ecosystem.html +68 -60
- package/docs-site/en/index.html +281 -220
- package/docs-site/en/mcp-approval.html +67 -59
- package/docs-site/en/mcp-auth.html +67 -59
- package/docs-site/en/mcp-servers.html +68 -60
- package/docs-site/en/mcp.html +64 -56
- package/docs-site/en/permissions.html +68 -60
- package/docs-site/en/profiles.html +68 -60
- package/docs-site/en/quickstart.html +142 -150
- package/docs-site/en/runtime.html +67 -59
- package/docs-site/en/scope.html +68 -60
- package/docs-site/en/security.html +64 -56
- package/docs-site/en/team.html +67 -59
- package/docs-site/en/update.html +228 -0
- package/docs-site/en/whats-new.html +1612 -725
- package/docs-site/en/windows.html +71 -63
- package/docs-site/en/workflows.html +68 -60
- package/docs-site/favicon.svg +9 -14
- package/docs-site/index.html +281 -220
- package/docs-site/mcp-approval.html +70 -62
- package/docs-site/mcp-auth.html +70 -62
- package/docs-site/mcp-servers.html +71 -63
- package/docs-site/mcp.html +70 -62
- package/docs-site/permissions.html +72 -64
- package/docs-site/profiles.html +72 -64
- package/docs-site/quickstart.html +145 -172
- package/docs-site/releases.json +4485 -0
- package/docs-site/runtime.html +73 -65
- package/docs-site/scope.html +73 -65
- package/docs-site/security.html +73 -65
- package/docs-site/team.html +71 -63
- package/docs-site/update.html +228 -0
- package/docs-site/whats-new.html +1616 -729
- package/docs-site/windows.html +75 -67
- package/docs-site/workflows.html +73 -65
- package/evals/private-holdout-v1/public-exposure.v2.json +1 -1
- package/package.json +1 -1
- package/packages/piagent-core/managed/dist/workspace/manifest.json +1 -1
- package/packages/piagent-core/managed/dist/workspace/worker.mjs +1 -1
- package/packages/piagent-core/package.json +1 -1
- package/packages/piagent-core/security/workspace-file-reader.ts +3 -1
- package/packages/piagent-webui/dist/client/assets/ActivityPanel-DRAiHliI.js +1 -0
- package/packages/piagent-webui/dist/client/assets/App-JMuP_9-r.js +5 -0
- package/packages/piagent-webui/dist/client/assets/GatewayApp-awcOLVTi.js +93 -0
- package/packages/piagent-webui/dist/client/assets/InspectionApp-DtDc9NxN.js +1 -0
- package/packages/piagent-webui/dist/client/assets/LineReview-DZ9ez8kO.js +3 -0
- package/packages/piagent-webui/dist/client/assets/{MarkdownMessage-DeLo-xiz.js → MarkdownMessage-D7bbIWJe.js} +2 -2
- package/packages/piagent-webui/dist/client/assets/SessionAgentWorkspace-DLwK12hX.js +1 -0
- package/packages/piagent-webui/dist/client/assets/SessionInspectorDrawer-CsPNI6aU.js +2 -0
- package/packages/piagent-webui/dist/client/assets/SettingsNavigation-CM0s3QUC.js +3 -0
- package/packages/piagent-webui/dist/client/assets/SettingsPage-Cr6M2FVg.js +1 -0
- package/packages/piagent-webui/dist/client/assets/TerminalPanel-A78JVp4e.js +2 -0
- package/packages/piagent-webui/dist/client/assets/{TerminalView-r9rG24IO.js → TerminalView-CR4TO5f1.js} +3 -3
- package/packages/piagent-webui/dist/client/assets/WorkspaceCodeEditor-DPOp-ZoD.js +2 -0
- package/packages/piagent-webui/dist/client/assets/WorkspaceExplorer-H8Ogln3d.js +5 -0
- package/packages/piagent-webui/dist/client/assets/WorkspaceQuickOpen-vQ5DqfJl.js +1 -0
- package/packages/piagent-webui/dist/client/assets/api-BUjrtT1B.js +1 -0
- package/packages/piagent-webui/dist/client/assets/composer-drafts-BtMaVw8W.js +1 -0
- package/packages/piagent-webui/dist/client/assets/index-Dqb2hNan.css +1 -0
- package/packages/piagent-webui/dist/client/assets/index-qi6mjvTy.js +37 -0
- package/packages/piagent-webui/dist/client/assets/latest-request-DXcYQW86.js +1 -0
- package/packages/piagent-webui/dist/client/assets/tab-close-DHDqCxTL.js +1 -0
- package/packages/piagent-webui/dist/client/assets/terminal-transport-Dk5pYNX5.js +1 -0
- package/packages/piagent-webui/dist/client/assets/transcript-view-model-BNGQCkzY.js +3 -0
- package/packages/piagent-webui/dist/client/assets/ui-preferences-Dy4qeODT.js +1 -0
- package/packages/piagent-webui/dist/client/assets/vendor-CA5pzJiI.js +136 -0
- package/packages/piagent-webui/dist/client/assets/view-model-CWNiS4JN.js +1 -0
- package/packages/piagent-webui/dist/client/assets/workspace-navigation-C8GtShbg.js +1 -0
- package/packages/piagent-webui/dist/client/index.html +4 -9
- package/packages/piagent-webui/gateway/signed-session-journal.ts +16 -6
- package/packages/piagent-webui/server/loopback-server.ts +19 -5
- package/packages/piagent-webui/server/static-bundle.ts +10 -2
- package/scripts/build-docs-site.mjs +205 -348
- package/scripts/check-public-wording.mjs +2 -1
- package/scripts/docs-site-icons.mjs +84 -0
- package/scripts/docs-site-nav.mjs +302 -0
- package/scripts/docs-site-releases.mjs +227 -0
- package/scripts/verify-local.sh +17 -1
- package/packages/piagent-webui/dist/client/assets/Alert-DGWhP2MM.js +0 -1
- package/packages/piagent-webui/dist/client/assets/Button-QItfZUNj.js +0 -1
- package/packages/piagent-webui/dist/client/assets/DialogTitle-CyaFPaiW.js +0 -3
- package/packages/piagent-webui/dist/client/assets/TerminalPanel-BG-DP_qm.js +0 -2
- package/packages/piagent-webui/dist/client/assets/Typography-B9om7Evq.js +0 -1
- package/packages/piagent-webui/dist/client/assets/WorkspaceCodeEditor-BnqaR3pK.js +0 -2
- package/packages/piagent-webui/dist/client/assets/WorkspaceExplorer-BIxwiGtl.js +0 -5
- package/packages/piagent-webui/dist/client/assets/WorkspaceQuickOpen-CK3dILhQ.js +0 -1
- package/packages/piagent-webui/dist/client/assets/index-DBUTrEXi.css +0 -1
- package/packages/piagent-webui/dist/client/assets/index-rlyRccut.js +0 -102
- package/packages/piagent-webui/dist/client/assets/tab-close-BoJRyBO_.js +0 -1
- package/packages/piagent-webui/dist/client/assets/ui-preferences-BO3AV7QE.js +0 -10
- package/packages/piagent-webui/dist/client/assets/useId-DEefKUAT.js +0 -124
|
@@ -1,684 +1 @@
|
|
|
1
|
-
|
|
2
|
-
<p class="section-kicker">v1.41.0 · 2026-10-24</p>
|
|
3
|
-
<h2 id="v1-41-0">Front-end change reports</h2>
|
|
4
|
-
<p class="section-lead">The <code>fe-change-report</code> skill: for a front-end task that asks for a report, the agent captures the old and new versions of the affected pages (headless, same data), frames each change with a numbered red box on both screenshots, runs the checks and the full E2E suite headless, and writes what changed for the business, in the logic, and on screen. The scripts use the project's own Playwright, add no dependency, and write one <code>report.html</code> with no scripts to send to anyone. The dashboard draws the same report in Documents from <code>reports/fe-change/<slug>/report.json</code>, with a full-screen view; it is drawn from data, so the WebUI still renders no model markup.</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">Local projects are reported to Studio too</h2>
|
|
10
|
-
<p class="section-lead">A folder without a readable remote is now reported to Studio as a local project (Agent Studio 0.40.0, <code>managed.workspace.v2</code>): a git checkout by its root commit (<code>local/git/…</code>, the same on every computer with that history, clones included), any other folder by a hash of the computer's name and path (<code>local/dir/…</code>), with the folder's name; a path never leaves the computer. Every agent run reports, so Studio knows which computers never do. The member reads one line for every kind of warning: another team's project, one outside the list, one not registered to the team, or a folder that could not be read. Nothing is blocked.</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">Warnings when a key works in the wrong project</h2>
|
|
16
|
-
<p class="section-lead">Company conversations tell Studio which repositories they work in (as <code>host/path</code>, like team memory; never a local path). Administrators see in Logs → "Sai project" when a team's key is used on another team's repository or one outside the team's list (Agent Studio 0.39.0, Team → Repository); the member reads one line, nothing is blocked, and memory works as before. The dashboard keeps its language and colour theme across restarts.</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">A folder tree as in VS Code, and colour themes</h2>
|
|
22
|
-
<p class="section-lead">The Files panel is a folder tree: folders open in place and the open file is highlighted. Pick a colour theme in Settings → Appearance or the command palette (⌘K): Dracula, One Dark, Monokai, Nord, Tokyo Night, Catppuccin, Gruvbox, Solarized, GitHub; a theme colours the interface, the editor's syntax and the terminal. The editor and terminal stay in view while a long conversation scrolls, with a splitter for their width; on phones the Files/Terminal switches stay visible.</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">The dashboard becomes an editor, and Bypass asks nothing</h2>
|
|
28
|
-
<p class="section-lead">Open, edit, save, rename and delete files in the dashboard (Cmd/Ctrl+P, search, a conflict prompt when the file changed on disk); project terminals (company conversations too, inside the sandbox, now on macOS); review each hunk the agent changed inline with Keep and Revert; Timeline restores to before a turn, with personal and company checkpoints shared with <code>/undo</code>. Square, IDE-like edges, and closable file and terminal tabs. <strong>Bypass</strong> as in Codex: nothing is asked or blocked, output is still redacted and <code>/undo</code> still works. Company conversations get three levels, Ask first, Full access (the old Bypass) and Bypass, when the Harness allows it (Agent Studio 0.38.0, Agent Watch 0.15.14 / Windows 0.1.17); a Studio admin can turn it off.</p>
|
|
29
|
-
</section>
|
|
30
|
-
|
|
31
|
-
<section class="section">
|
|
32
|
-
<p class="section-kicker">Unreleased</p>
|
|
33
|
-
<h2 id="unreleased-workspace">Edit project files beside chat</h2>
|
|
34
|
-
<p class="section-lead">Session Hub now saves edits with Cmd/Ctrl+S, marks unsaved tabs and creates files. When a file changes on disk, reload, compare or confirm an overwrite. Current write permissions and protected paths are enforced in personal and company mode; company writes stay inside the existing sandbox. The agent must reread a stale file after member edits.</p>
|
|
35
|
-
<p>Review observed agent changes directly in the editor: Keep, preview-confirmed Revert, hunk counts and line comments to chat. Clean files reload after agent edits; unsaved drafts remain intact. Newly created agent files support review; deletion through hunk revert is not yet supported.</p>
|
|
36
|
-
<p>Personal conversations now offer terminal tabs below the editor, with resize, Ctrl+C and replay after reload. Send @terminal or @terminal:2 to attach bounded redacted output. Missing native PTY support is reported without disabling the dashboard; company shells never fall back to host execution.</p>
|
|
37
|
-
<p>Company conversations now offer terminals inside the Linux/WSL sandbox through their Gateway, with network blocked, credentials masked and child processes stopped when the conversation is released. Relay reconnects restore output without resending commands. macOS reports unavailable without opening a host shell. The full workflow is verified on Linux arm64; native Linux x64 and WSL still need independent verification.</p>
|
|
38
|
-
<p>Timeline checkpoints preview affected files before restoring one or several turns. Member-edit conflicts stop restoration; commits and staged changes stay intact. Personal conversations also support /undo. A lost browser response keeps the same request across reloads for an explicit result check.</p>
|
|
39
|
-
<p>Company inline review now retains exact agent hunks across internal diff refreshes.</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">Closes Studio can trust</h2>
|
|
45
|
-
<p class="section-lead">When closing a run failed for a moment, the close asked again could "succeed" without reaching Studio, and Piagent recorded the run closed. With Agent Watch 0.15.11 (Windows 0.1.16) the close asked again reaches Studio; with an older Agent Watch the run stays open here and is recovered when the conversation reopens. A helper whose close fails for a moment keeps its answer, and its report to Studio is sent again. Team memory no longer merges two different commands that failed the same way into one lesson. Security: <code>web_fetch</code> and the package proxy refuse private addresses written in any IPv6 form, and with a company upstream proxy the package proxy still checks where it connects.</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">An answer cut mid-stream no longer stops a long task</h2>
|
|
51
|
-
<p class="section-lead">When the way from Studio to the model is cut while an answer is streaming, Studio says "Request interrupted"; Piagent used to take it as "the request could not be sent" and stopped the whole task. Now it asks again and goes on by itself. New <code>piagent studio --rpc</code> lets a script drive a company conversation over Pi's RPC protocol (several messages, answering the agent's questions).</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">A moment when Agent Watch cannot reach Studio no longer stops a task</h2>
|
|
57
|
-
<p class="section-lead">When Agent Watch on your machine cannot reach Studio while Studio is running (a passing network or gateway error), Piagent asks again, waiting longer each time, for up to 3 minutes, and goes on; before, one such failure stopped the whole task. Closing the run at the end of a round is asked again too. Each wait is written to the log on the machine and reported to 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 learns from what went wrong</h2>
|
|
63
|
-
<p class="section-lead">What memory handed a round (briefs, <code>memory_search</code> answers) goes back to Studio with that round, so Studio rates it by the member's next words and stops handing over notes members said were wrong (needs Agent Studio 0.37.0). A command that fails the same way twice in a round becomes a lesson; repository memory skips tasks that add nothing new; skills that keep ending rounds badly are proposed for review in <code>.pi/piagent-state/skill-proposals</code>, and Piagent never edits a skill itself.</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">A passing model provider error no longer stops a long task</h2>
|
|
69
|
-
<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>
|
|
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">Long tasks survive a Studio update</h2>
|
|
75
|
-
<p class="section-lead">Leave a task running overnight and let Studio update or restart: Piagent no longer fails and stops, it waits for Studio to answer again and goes on by itself, for as long as it takes (Stop still stops it). Each wait is logged on the machine and reported to Studio (Logs → Mất kết nối) with its cause: a Studio update, a restart, or the machine's network. One dashboard turn can now run up to 24 hours. Needs 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 notifies for company conversations</h2>
|
|
81
|
-
<p class="section-lead">Company conversations wrote their state where Agent Watch does not look, so it never told you when one waited for you or was done. The state now goes to the folder Agent Watch reads.</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">Helper outcomes reach Studio</h2>
|
|
87
|
-
<p class="section-lead">In 1.34.1 a subagent's outcome was refused by Studio because it was sent with an expired token, so Logs → Lượt agent showed nothing for it. The outcome is now sent with the subagent's current token and recorded.</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">Helpers report how their work ended, Agent Watch tells you when you are needed</h2>
|
|
93
|
-
<p class="section-lead">Every subagent run reports how it ended: done, failed, stopped or unverifiable (for example a verify with no verdicts), and Studio shows it in Logs → Lượt agent. When it hands work to a subagent, the agent can state the target, the change, the constraints, what the subagent may touch and the evidence it needs. Agent Watch (macOS 0.15.9, Windows 0.1.15) tells you when a conversation waits for your approval or your answer, or when the agent is done; the state file holds only the conversation's title and project name. In Source Changes you can comment any line of the diff and send all comments to the agent as one message with each file and line; the review subagent's findings show under the line they are about. Piagent asks Studio what it serves before using a newer feature (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">Runs on Pi 1.3.0</h2>
|
|
99
|
-
<p class="section-lead">Piagent moves from Pi 0.87.1 to Pi 1.3.0. A tool call with malformed JSON arguments is refused and shown to the model instead of running with the fields read before the error; passing gateway errors are retried; a reopened conversation keeps its active tools; the Terminal reports its state (working, waiting for you, done, error) to terminals that support OSC 7501. Your personal <code>pi</code> is 1.3.0 too. After the update, a running Agent Watch writes the new binding by itself. GPT-6.1 Sol keeps its 272k window in company conversations, so its cost does not change.</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 is kept after a reload, and a tab in use stays signed in</h2>
|
|
105
|
-
<p class="section-lead">Turning on Bypass right after the agent answered was sometimes refused by the Gateway because the conversation had just changed, so a reload still showed “Ask first”; the change is now sent again against the latest state. Opening another conversation that is also in Bypass no longer shows “Ask first” by mistake. The browser sign-in no longer ends exactly 8 hours after launch while the tab is in use (a long or hung turn no longer lands on the expired screen); only a tab unused for 8 hours has to be opened again, and at most 7 days.</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">A failed or stopped answer ends at Studio too</h2>
|
|
111
|
-
<p class="section-lead">When an answer fails mid-stream or the member presses Stop, Piagent tells Studio to end that request, so the conversation's account is free for the next one. Before, behind Cloudflare, Studio might never learn the connection dropped and kept streaming for up to 10 minutes, and retries were refused as “account busy”. Needs 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 right after an update</h2>
|
|
117
|
-
<p class="section-lead">The first company conversation after Studio moved to 0.30.0 had no <span class="inline-code">memory_ask</span>. The tool is now there whenever the conversation has team memory; on an older Studio it says to use <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">Team memory follows the work</h2>
|
|
123
|
-
<p class="section-lead">With Agent Studio 0.30.0: the brief starts with the team's rules; memories of the current branch and folders come first; an agent's “fixed” is a claim until a check passes (verified). New tool <span class="inline-code">memory_ask</span> answers a question from team memory with its sources. Folders with several repositories, repositories without an <span class="inline-code">origin</span> remote and git's “dubious ownership” on WSL no longer turn memory off silently.</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">No model names in the company Terminal; the home folder gives the real reason</h2>
|
|
129
|
-
<p class="section-lead">The company Terminal's header, footer and /model and /thinking answers show roles and effort only (<span class="inline-code">Main agent (Rất cao) · Subagent review bật</span>), never the Harness's model names. Pi's crash notice no longer points at /bug, which is off in company conversations.</p>
|
|
130
|
-
<p class="section-lead">Running <span class="inline-code">piagent studio</span> in the home folder (<span class="inline-code">~</span>) used to fail with <span class="inline-code">managed-launch-binding-changed</span> (“Agent Watch or Piagent changed”) although nothing had changed. The company Piagent does not open a folder that holds the company configuration, so it now says so and how to open it: go to a project folder and run it again, or <span class="inline-code">piagent studio --project ~/your-project</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">Large contexts over slow links; the company Terminal reads like the dashboard</h2>
|
|
136
|
-
<p class="section-lead">Long conversations (contexts up to about 1 MB) go to Studio gzip-compressed when Studio supports it (Agent Studio 0.28.2), about 3x smaller; with Studio 0.28.2 a slow upload that keeps sending is no longer cut at 15 seconds. The company Terminal adds a turn summary (requests, tokens, time, speed), shows running subagents and the git branch in the footer, keeps memory results short, reads “Đang làm…”, runs /bypass and /fast on one Enter and says it is joining Agent Watch at launch.</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">The company Terminal gets its own look; Stop no longer breaks the conversation</h2>
|
|
142
|
-
<p class="section-lead">The company Terminal (<span class="inline-code">piagent studio</span>) has its own header: team, Harness model and effort, permission, Fast, memory. The footer shows the real effort and no USD cost, the plan is a checklist, and while it waits for your answer it says so. <span class="inline-code">/share</span> and <span class="inline-code">/bug</span> are refused because they send company conversations outside; <span class="inline-code">/login</span>, <span class="inline-code">/model</span>, <span class="inline-code">/thinking</span>… say the team’s Harness decides. Stopping a turn while a command runs no longer breaks the next one (with 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 updating itself no longer interrupts the company Terminal</h2>
|
|
148
|
-
<p class="section-lead">Right after Agent Watch updates itself, <span class="inline-code">piagent studio</span> and the dashboard wait for Watch to write the configuration again (as after a Piagent update) instead of failing with <span class="inline-code">managed-launch-binding-changed</span> for about a minute; every hash is still checked before anything runs.</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">No more “binding changed” right after an update</h2>
|
|
154
|
-
<p class="section-lead">Right after a Piagent update, <span class="inline-code">piagent studio</span> no longer fails with <span class="inline-code">managed-launch-binding-changed</span> while Agent Watch has not rewritten its configuration: it waits up to 90 seconds (“Agent Watch đang cập nhật cấu hình…”, or says Agent Watch is not running), checks every hash again, then runs. Members no longer import the configuration again by hand.</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">The company Terminal and personal Pi stop stepping on each other</h2>
|
|
160
|
-
<p class="section-lead">Personal Pi no longer fails to start when Piagent is loaded twice (an extension pointing into another Piagent copy): <span class="inline-code">piagent-update</span> and the installer remove it (with a backup) and <span class="inline-code">piagent-doctor</span> reports it. Old Agent Watch company entries in personal Pi (<span class="inline-code">agent_watch_*</span> providers, a default model naming them) are cleaned up once the machine has a company binding. Personal Pi no longer continues a company conversation and says to open it with <span class="inline-code">piagent studio</span>; the company Terminal says how to reopen it, answers <span class="inline-code">/help</span> itself (no model request) and stops fully when stopped from outside.</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: each round once, a fresh brief after compaction</h2>
|
|
166
|
-
<p class="section-lead">With Agent Studio 0.28.0, each company round has its own ID and is written to an outbox before it is sent, so a lost acknowledgement, a crash or two sessions at once never extract it twice. After compaction the agent gets a fresh brief for the latest request. A round carries up to three observed “check failed → change → passed” recoveries (no guessed cause). An empty brief is not asked again every round, a round closes within 4.5 seconds when the engine does not answer, and on Studio 0.27.x memory still grows.</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 keeps working while the agent calls the model</h2>
|
|
172
|
-
<p class="section-lead">A model request renews its run token and voids the one before, so the commits sent right after the brief, and a <span class="inline-code">memory_search</span> beside a request, were refused by Studio (401): the repository’s commits never reached memory. A memory call refused this way now renews the token (shared with that role’s requests, as web search does) and asks once more. Needs Agent Studio 0.27.1 (0.27.0 was withdrawn).</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: company agents remember what the team settled in each repository</h2>
|
|
178
|
-
<p class="section-lead">With team memory turned on in Agent Studio 0.27.0, a new company conversation opens with a short brief from the team's memory of the repository (decisions, rules, work in progress from earlier conversations and commits). Every round is kept for the team (secrets redacted); the agent and its helpers search it with <span class="inline-code">memory_search</span>. A memory outage or a team without memory never fails or slows a turn.</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">A conversation is renamed while its turn runs</h2>
|
|
184
|
-
<p class="section-lead">Renaming a conversation from its menu while a turn ran (a company conversation in particular) showed <span class="inline-code">session-revision-stale</span> and kept the old name. The new name now lands mid-turn; when a rename, fork or archive still fails, the dialog says why in words.</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">Dashboard / commands and shortcuts, /undo, dev servers across turns</h2>
|
|
190
|
-
<p class="section-lead">Company conversations work the way you work in an editor. Type <span class="inline-code">/</span> in the dashboard for the Terminal's commands (<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>…); they run in the dashboard and are never sent to the model. Shortcuts: ⌘⇧O new chat, ⌘/ the commands, Esc stops the turn. <span class="inline-code">/undo</span> puts back the files the agent's last turn changed, one turn at a time, and never overwrites a file you changed since. The agent keeps a dev server up across turns (<span class="inline-code">start_process</span>), sees the TypeScript errors of the file it just changed, and <span class="inline-code">piagent studio --prompt … --json</span> writes the <span class="inline-code">pi --mode json</span> stream.</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">When the machine lacks something, the agent asks, and an approved command runs</h2>
|
|
196
|
-
<p class="section-lead">A company conversation no longer stops at “Java or Docker is missing here”. A missing runtime (a JDK, the Node version the project needs), your sign-in (git pull/push, a private registry) or a file outside the project: the agent requests <strong>run_on_host</strong>, one command that runs on your machine, outside the sandbox, once you approve it (Bypass asks too). Docker installed but not running: the agent requests <strong>start_docker</strong>, waits for the engine and carries on in the same conversation. What only you can do (a sudo password, an installer, a sign-in) comes as a question with the steps and “Done, continue / Skip”. <code>fetch_origin</code> fetches a repository inside a folder of several repositories, and a turn that only read through <code>git -C</code> is no longer counted as a code change.</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">Choose Fast when a company conversation starts</h2>
|
|
202
|
-
<p class="section-lead">Where the team's Harness allows fast mode, the new chat page shows <strong>Fast: off / Fast: on</strong> next to the company model. Turned on before sending, the conversation runs on Fast from its first message: the main agent answers faster on GPT (Codex) models, its tokens count 2.5 times toward the quota, and the model and thinking level are unchanged. The Fast switch in a conversation's header turns amber while on.</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">An agent's question waits at the end of the conversation</h2>
|
|
208
|
-
<p class="section-lead">Questions and approval requests used to show above the running turn, so a long turn pushed them out of view: opening a conversation that waited on you showed its activity. They now come last in the conversation, right above the composer, and the page goes to them when one comes up or when you open a conversation that is waiting.</p>
|
|
209
|
-
<p class="section-lead">The question card reads more easily: larger question and option text, roomier options, the chosen option's number filled in. In the light theme “Let the agent decide” is an outline button instead of a black one that outweighed “Send answer”.</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 for company conversations, failed tools reported to Studio</h2>
|
|
215
|
-
<p class="section-lead">Where the team's Harness in Agent Studio allows it, the dashboard shows a Fast switch in the conversation's header and the Terminal has <span class="inline-code">/fast on|off|status</span>. Every new conversation starts with it off. While on, the main agent's calls on a GPT (Codex) model ask for the priority tier: the same model and thinking level, answered faster, with Studio counting that call's tokens 2.5 times toward the key's quota. Subagents run as usual. On a Claude model or an API-key vendor model nothing is added and the turn runs at standard speed. If Studio or the provider refuses, the call is asked again once at standard speed and the conversation goes back to standard speed with a note. Needs Studio 0.26.0 and an Agent Watch that carries the Harness's <span class="inline-code">fast_mode</span>.</p>
|
|
216
|
-
<p class="section-lead">A tool that fails in a company run (Docker, a network command, a test…) is reported to Agent Studio (Logs → “Tool lỗi”) so an administrator can read why: the tool, a code, the command or path, the start and end of the error output, the OS and whether the machine has a Docker engine. Secrets are redacted and the home folder is written <span class="inline-code">~</span> before sending; no prompt, search query or subagent brief is sent, and a tool you stopped or declined is not reported.</p>
|
|
217
|
-
<p class="section-lead">Fix: after an administrator changed the Harness (for example the main agent from thinking level high to a fixed max), a new company conversation from the dashboard never sent its first message and showed “Pi received the request and the session is resyncing”. A new conversation now starts at the level its Harness allows.</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">The dashboard no longer keeps loading when a project is on a slow drive</h2>
|
|
223
|
-
<p class="section-lead">Fix on Windows: the dashboard opened and kept showing “Opening Piagent…”. The project was on a Windows drive seen from WSL (<span class="inline-code">/mnt/d/…</span>), where Git walks the tree very slowly. The company runtime ran that scan without a limit and answered nobody meanwhile, and the dashboard waited for it, also without a limit. The dashboard now gives the company runtime 15 seconds per read; past that it still opens with your own conversations, says “The company runtime is running but does not answer” with what to do, and asks again a minute later.</p>
|
|
224
|
-
<p class="section-lead">A conversation's page gives Git 8 seconds per repository to list the changed files. A repository that takes longer shows no changed files yet and is tried again 5 minutes later. On Windows, keep projects in the Ubuntu file system (<span class="inline-code">~/projects</span>): a project under <span class="inline-code">/mnt/c</span> or <span class="inline-code">/mnt/d</span> works but is slow.</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">Attach any source or text file, as other coding agents allow</h2>
|
|
230
|
-
<p class="section-lead">You can now attach <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> and any other extension, and files without one such as <span class="inline-code">Dockerfile</span> or <span class="inline-code">Makefile</span>. A file goes under its own name, so the agent knows it is HTML or Python; Piagent still checks its bytes are text. Binary files are refused at once with what to send instead: spreadsheets as .csv, slide decks as .pdf, archives, media and fonts kept in the project for the agent's tools.</p>
|
|
231
|
-
<p class="section-lead">Fix: a message with an attachment no longer shows twice (once with the file's raw contents) after its turn ends; only what you typed and the file card remain.</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">Bypass can be turned on while a turn runs, and it stays on</h2>
|
|
237
|
-
<p class="section-lead">Fix: turning on Bypass while a command waited for your approval did not take. The Gateway refused to change access while a turn ran and the error showed in a panel that had just closed, so it looked on but a reload showed “Ask first”. A company conversation now switches between Ask first and Bypass at any time, also mid-turn; access is read at each command, so the next commands follow the new choice. A command already waiting keeps its card (Allow or Deny). The result of a switch shows in a notice at the top.</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">Decisions come one at a time, and you see at once which conversation finished or waits for you</h2>
|
|
243
|
-
<p class="section-lead">The agent's questions and approval requests no longer stack down the page: one card shows at a time, with steps above it (“Needs your decision · 1/3”) that say who asks (the main agent or which subagent), what kind (Ask / Approve) and let you jump to another. The main agent's come first, since your answer shapes its subagents' work; then subagents in work order (scout, research, verify, review); within one agent, what was asked first. Answering one brings up the next.</p>
|
|
244
|
-
<p class="section-lead">Several conversations at once: a notification at the top right says when another conversation finishes a turn, fails, stops, or starts waiting for your answer or approval; “Open” takes you there. “Done” fades after a few seconds; a waiting decision stays until you answer or open it. In the sidebar, a conversation waiting for you glows amber and reads “Needs your answer” or “Needs approval”, one that finished while you were elsewhere reads “Done · not seen” until you open it, and both move to the top of “Running · needs attention”. The tab title counts what waits, e.g. “(2) Piagent”.</p>
|
|
245
|
-
<p class="section-lead">Studio logs each compaction of a company conversation: why, the size before and after, and the outcome, in Logs → Lượt agent (needs 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">Package installs in the company sandbox no longer ask</h2>
|
|
251
|
-
<p class="section-lead">Plain bash commands reach the usual registries: npm, PyPI, the Go proxy, crates.io, Maven Central, Gradle, NuGet, RubyGems, Packagist, pub.dev, CocoaPods and Hex, plus public GitHub downloads (such as the Gradle distribution <span class="inline-code">./gradlew</span> needs). So <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> and <span class="inline-code">./gradlew test</span> run without waiting for your approval. Piagent goes through a proxy that runs outside the sandbox: only those hosts, on ports 443 and 80, never an IP address, your machine or a private network. Any other host is refused, the error names it, and a command that needs it still goes through <span class="inline-code">run_with_network</span> for your approval. To add your company's registry, write its host name (or <span class="inline-code">*.domain</span>) in <span class="inline-code">~/.piagent/sandbox-domains</span>, one per line. Registry and git credentials still stay out of the sandbox, so nothing is pushed or published.</p>
|
|
252
|
-
<p class="section-lead">In Bypass, <span class="inline-code">run_with_docker</span> runs without asking, like <span class="inline-code">run_with_network</span>; only pushes, deploys, registry logins and deletes with an unknown target still ask.</p>
|
|
253
|
-
<p class="section-lead">Fixed: a subagent that works longer than 15 minutes (such as a verify running the whole test suite while the main agent waits) is no longer stopped with <span class="inline-code">managed-helper-cancelled</span>. Asked to review work committed in earlier turns, the review subagent no longer says “no patch”. It reads the commits since the commit, branch or <span class="inline-code">HEAD~N</span> the agent names; when the current turn changed nothing, it reads the branch’s commits since it left the main branch.</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">Tasks with a checklist are carried to the end, and each turn says whether it finished</h2>
|
|
259
|
-
<p class="section-lead">In a company conversation, when the main agent stops while its checklist still has open steps (say, after STEP06 of the STEP22 you asked for) and the team's Harness requires a plan, the harness sends it on to the next open step, as if you had sent “continue”. It stops when the checklist is done, when you press Stop or write, when a round fails, or after 2 rounds in a row that finish no step. Every turn ends with one line: Done, Stopped midway with x of y steps open (and why), Turn stopped by a failure, or You stopped this turn, with Continue when the task is not finished; the conversation list shows it too. Steps you leave for later are marked deferred, never completed; “continue” takes up the open checklist. A turn whose change the agent committed is still checked and reviewed.</p>
|
|
260
|
-
<p class="section-lead">Docker in the company sandbox: when Docker runs on the machine (Docker Desktop, Colima, OrbStack…), the agent has <span class="inline-code">run_with_docker</span> to run one command you approve with internet and Docker, such as a test database with <span class="inline-code">docker compose up -d</span>, <span class="inline-code">docker build</span> or Testcontainers tests. Docker gets no registry credentials; Bypass still asks when a command or compose file mounts a folder outside the project. <span class="inline-code">./gradlew</span> and <span class="inline-code">./mvnw</span> reuse the Gradle and Maven already on the machine, without asking for network. A folder that holds several repositories (front end, back end…, each its own Git) shows “N repo”: click it to see each repository, its branch and changed files, and switch branches there; a full folder list makes room instead of failing to add a folder.</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">Switch the Git branch from the dashboard, retries for passing failures, Claude Haiku 5.5</h2>
|
|
266
|
-
<p class="section-lead">Click the branch under the chat title or in the status bar to choose another branch or create one. The dashboard does not switch while a conversation in the folder runs, and shows Git's reason when it refuses (for example, uncommitted changes it would overwrite). When a model's answer fails for a passing reason (a cut stream, a model or Studio gateway that does not answer), Piagent asks again up to twice before showing the failure; quota, key and policy failures still show at once. Claude Haiku 5.5, Anthropic's fastest model, can be chosen in company and personal sessions.</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">The dashboard shows each project's Git branch</h2>
|
|
272
|
-
<p class="section-lead">Under the chat title, in the status bar and beside each project group in the sidebar, the dashboard shows the Git branch the project is on, worktrees included. A detached HEAD shows its short commit in the warning colour. A branch switched in a Terminal shows when you come back to the 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">An updated dashboard keeps checking for releases</h2>
|
|
278
|
-
<p class="section-lead">Updating from the dashboard's button restarted it with update checks switched off, so it showed no next release until the machine restarted. Fixed, including when updating to 1.16.3 from an earlier release.</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">The Terminal says what the dashboard says</h2>
|
|
284
|
-
<p class="section-lead">When a new Piagent is out, the Terminal (<span class="inline-code">pi</span> and <span class="inline-code">piagent studio</span>) asks <strong>Update now</strong> or <strong>Later</strong> (asked again after an hour), only between turns, with a footer line; <span class="inline-code">/piagent-update</span> checks at once.</p>
|
|
285
|
-
<ul>
|
|
286
|
-
<li><span class="inline-code">/bypass</span> in <span class="inline-code">piagent studio</span> switches Bypass for the conversation, like the dashboard's switch; the footer shows "Bypass" while it is on.</li>
|
|
287
|
-
<li>A network command is confirmed with its reason, why Bypass still asks, and what allowing or declining does.</li>
|
|
288
|
-
<li>Failed requests, a company runtime that cannot start and the Harness's notes (checks, review, a subagent's objection, "your call") read in Vietnamese as on the dashboard.</li>
|
|
289
|
-
<li>With Agent Watch 0.15.2: when a Watch update needs Keychain access again, Watch asks in a dialog and refreshes Piagent's setup at once.</li>
|
|
290
|
-
</ul>
|
|
291
|
-
<p>This release changes the company launcher: Agent Watch refreshes the setup on its next sync (minutes). If <span class="inline-code">piagent studio</span> says the setup changed, open Agent Watch → Studio and import it for 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">New releases are announced, checked every hour</h2>
|
|
297
|
-
<p class="section-lead">When a new Piagent is out, the dashboard opens a dialog with what will change and <strong>Update now</strong>; <strong>Later</strong> asks again after an hour. After the update, the restarted dashboard says it worked. The dashboard and the Terminal check for a new release every hour.</p>
|
|
298
|
-
<ul>
|
|
299
|
-
<li>A dashboard tab no longer loses its sign-in when another Piagent server on the machine (the company runtime, another launch) signs in.</li>
|
|
300
|
-
<li>A tab whose sign-in is gone (Piagent restarted, older than 8 hours) no longer retries with 401 errors; it says how to open Piagent again: <span class="inline-code">piagent dashboard</span> or Agent Watch.</li>
|
|
301
|
-
</ul>
|
|
302
|
-
<p>Updating from 1.16.0 needs no re-import in 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 for company conversations</h2>
|
|
308
|
-
<p class="section-lead">Choose <strong>Bypass</strong> in the new-chat options or the conversation header ("Ask first" stays the default). Commands that need the internet (package installs, downloads, git pull, tests with a server or browser) run without asking. You are still asked before anything that pushes or sends data out (git push, publish, deploy, uploads, ssh), database migrations, deletes with an unknown target, and sudo.</p>
|
|
309
|
-
<ul>
|
|
310
|
-
<li>A helper the company Harness adds while you work is available from your next message, without a new conversation. With Studio 0.20.1 a running turn is not stopped when the Harness is saved.</li>
|
|
311
|
-
<li>Personal sessions with full access no longer ask before a broad <span class="inline-code">git add</span>; deletes, migrations and external actions are still asked.</li>
|
|
312
|
-
</ul>
|
|
313
|
-
<p>Updating from 1.15.x needs no re-import in 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">Long company conversations shrink again, earlier</h2>
|
|
319
|
-
<p class="section-lead">A long company conversation's summary carried the provider's placeholder key instead of the run's grant, so Studio refused it (401 <span class="inline-code">authentication_required</span>, "Chưa chọn tài khoản" / "CLI trực tiếp" in the request monitor) before every step and the conversation kept growing. Summaries now use the run's grant, and Studio logs them as <span class="inline-code">summary</span>.</p>
|
|
320
|
-
<ul>
|
|
321
|
-
<li>A conversation is summarised at 90% of the model's window and never later than 300k tokens: 244.8k on a 272k GPT window (prices double above 272k), 300k on a 1M-token window instead of about 984k. About the last 20k tokens stay word for word.</li>
|
|
322
|
-
<li>A summary that fails is asked again after 1, 2, 4 … minutes (at most 30) instead of before every step.</li>
|
|
323
|
-
</ul>
|
|
324
|
-
<p>Updating from 1.15.x needs no re-import in 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 sees what each model call is for</h2>
|
|
330
|
-
<p class="section-lead">Every company model call tells Studio what it is for: the answer to your message, a step after tools (with the tools just run), a turn the harness started, a conversation summary, a subagent's brief (with a one-line title of its job) or a web search. No other prompt text is sent. Studio 0.20.0 shows them in Logs → "Lượt agent".</p>
|
|
331
|
-
<ul>
|
|
332
|
-
<li>Several company conversations in one folder no longer take each other's edits for their own: checks, reviews and the plan guard look only at the files that conversation changed.</li>
|
|
333
|
-
<li>A new company conversation whose runtime fails to open says why, and Archive or Restart work on it without restarting the dashboard.</li>
|
|
334
|
-
<li>A blocked <span class="inline-code">mvnw</span>/<span class="inline-code">gradlew</span> download points to <span class="inline-code">run_with_network</span>; <span class="inline-code">piagent doctor</span> runs <span class="inline-code">piagent-doctor</span>.</li>
|
|
335
|
-
</ul>
|
|
336
|
-
<p>Updating from 1.14.x or 1.15.0 needs no re-import in 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">A refused subagent says why</h2>
|
|
342
|
-
<p class="section-lead">When Studio refuses a company subagent, Piagent now gives Studio's reason instead of always saying the configuration changed. For example: no company AI account serves this role's model, and an administrator has to link or enable one. Needs Agent Watch 0.15.0; with Studio 0.19.0, a subagent that had no account when the run started takes a model that serves when it is called.</p>
|
|
343
|
-
<ul>
|
|
344
|
-
<li>Long commands that print a lot (test suites, builds) no longer stop with <span class="inline-code">managed-tool-output-too-large</span>.</li>
|
|
345
|
-
<li>A company command that writes to <span class="inline-code">/tmp</span> is pointed to <span class="inline-code">$TMPDIR</span> or the project.</li>
|
|
346
|
-
<li><span class="inline-code">piagent-update</span> started from <span class="inline-code">npm exec</span> installs a lasting helper; on Windows, Pi is found in custom npm prefixes.</li>
|
|
347
|
-
</ul>
|
|
348
|
-
<p>Updating from 1.14.x needs no new import in 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">Updates keep your model choices</h2>
|
|
354
|
-
<p class="section-lead"><span class="inline-code">piagent-update</span>, the dashboard’s update and <span class="inline-code">piagent-setup</span> set Pi’s default model and model list only on a first install. From this release, every update keeps the model you chose and your list, adding only models the release offers for the first time; a model you removed is not added back. To apply Piagent’s preset again: <span class="inline-code">piagent-update -- --reset-model-scope</span>.</p>
|
|
355
|
-
<ul>
|
|
356
|
-
<li>On Windows (WSL2), updates no longer call WSL2 experimental: it is how Piagent runs on Windows since 1.13.0.</li>
|
|
357
|
-
<li>Windows installs with one PowerShell command: see <a href="/en/windows">Windows</a>.</li>
|
|
358
|
-
</ul>
|
|
359
|
-
<p>Updating from 1.13.x needs no new import in 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">Conversations keep their place, the agent's notes are formatted</h2>
|
|
365
|
-
<p class="section-lead">Opening a conversation again no longer jumps to its first message: each one keeps the place it was left, and one opened for the first time or left at its end opens at its newest message and follows the answer as it streams. Text the agent writes between tool calls is formatted like the answer instead of showing raw markdown. Updating from 1.13.0 needs no new Agent Watch import.</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 on Windows through WSL2</h2>
|
|
371
|
-
<p class="section-lead">Members on Windows run Piagent in WSL2 (Ubuntu), for company and personal conversations alike. Company conversations get a bubblewrap sandbox that keeps the macOS sandbox’s promises, and Agent Watch for Windows holds the company key. Setup: <a href="https://github.com/Vt-mmm/piagent/blob/main/docs/en/windows.md">Piagent on Windows</a>.</p>
|
|
372
|
-
<ul>
|
|
373
|
-
<li>The project, its package cache and a private temporary folder are writable; other home folders are read-only for reference; hidden home entries are not in the sandbox; credential files read as empty.</li>
|
|
374
|
-
<li>A command without network approval reaches only the servers it starts; processes it leaves behind end with it.</li>
|
|
375
|
-
<li>From WSL, the folder picker is Windows’ dialog and links open in the Windows browser.</li>
|
|
376
|
-
<li>Running on Windows itself is a preview of personal mode; <code>piagent-update</code> does not run there yet.</li>
|
|
377
|
-
</ul>
|
|
378
|
-
<p>After updating, each member imports the Piagent configuration again in Agent Watch (macOS: Studio → Apply for Piagent; Windows: Connect Piagent in 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">Forked company conversations take messages</h2>
|
|
384
|
-
<p class="section-lead">A fork of a company conversation, made to keep its context, now takes messages. Before, the fork was listed but every message to it said “The message was not sent”. Forks made with an earlier release need to be made again after updating.</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">@ any folder, skills from /, and tests in the company sandbox</h2>
|
|
390
|
-
<p class="section-lead">Point the agent at exactly the file or folder to read, reuse the skills and commands you already keep, and let the agent run the project's unit and integration tests.</p>
|
|
391
|
-
<div class="grid cols-2">
|
|
392
|
-
<article class="card"><h3 id="at-mentions">@ files and folders</h3><p>Type <code>@</code> in the composer to pick the project's files and folders; type <code>~/</code> or <code>/</code> for any other folder on the Mac. The agent reads folders outside the project for reference, read-only; hidden home files, <code>~/Library</code> and credential files stay closed.</p></article>
|
|
393
|
-
<article class="card"><h3 id="kept-drafts">Unsent messages are kept</h3><p>A message typed in a conversation or in the new chat is still there after opening another conversation or reloading the page, with its attached files.</p></article>
|
|
394
|
-
<article class="card"><h3 id="skills-commands">Skills and commands</h3><p>Skills and commands in the project's and your <code>.claude</code>, <code>.codex</code>, <code>.agents</code> and <code>.pi</code> folders work as they are: the model sees the skills, and a <code>/</code> at the start of a message offers <code>/command</code> and <code>/skill:name</code>.</p></article>
|
|
395
|
-
<article class="card"><h3 id="tests-in-sandbox">Tests in the company sandbox</h3><p>Package caches kept per project (npm, pnpm, pip, uv, Go, Cargo, Gradle, Maven, NuGet…), servers and databases on localhost, the selected Xcode, JDKs, .NET. Run <code>piagent studio --doctor</code> to see which languages are ready. Docker and the iOS Simulator are not available in the sandbox yet.</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">An update ends on the new release's dashboard</h2>
|
|
402
|
-
<p class="section-lead">Whether you click Update in the dashboard or run <code>piagent-update</code>, the dashboard comes back on the release just installed instead of keeping the earlier one's pages.</p>
|
|
403
|
-
<div class="grid cols-2">
|
|
404
|
-
<article class="card"><h3 id="restart-after-update">Restart after the update</h3><p>The Update button installs the release, restarts the dashboard and opens it in a new tab. In 1.11.0 the restart did not run on an npm install.</p></article>
|
|
405
|
-
<article class="card"><h3 id="replace-older-dashboard">Replace the earlier dashboard</h3><p>After <code>piagent-update</code>, <code>piagent dashboard</code> stops a dashboard still running the earlier release and opens the new one.</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">One-click updates, and a dashboard that works like an editor</h2>
|
|
412
|
-
<p class="section-lead">The dashboard checks for new releases and updates Pi and Piagent together when you click. A status bar, a command palette and searchable Settings keep every action a keystroke away.</p>
|
|
413
|
-
<div class="grid cols-3">
|
|
414
|
-
<article class="card"><h3 id="one-click-update">One-click update</h3><p>The dashboard checks when it opens and every 6 hours. A new release shows as "Update Piagent" in the status bar; one click installs Pi and Piagent together and reopens the dashboard in a new tab. Pi always moves to the version Piagent is qualified on, and the button waits while a conversation runs.</p></article>
|
|
415
|
-
<article class="card"><h3 id="command-palette">Command palette</h3><p>⌘K or Ctrl+K reaches every action, every settings section and every conversation by name, with or without Vietnamese accents. ⌘, or Ctrl+, opens Settings.</p></article>
|
|
416
|
-
<article class="card"><h3 id="settings-search">Searchable Settings</h3><p>Search finds a setting by what it does; sections are grouped, with new Updates and Shortcuts sections. The status bar shows the Gateway, running conversations and the release.</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">The main agent asks when it is unsure, and subagents may object to a brief</h2>
|
|
423
|
-
<p class="section-lead">When a request leaves a decision open, the main agent asks you with a card of numbered choices instead of guessing. A subagent shows its evidence when a brief drifts from the request, and a second disagreement is yours to decide. Used-up quota or a very large patch no longer stops the work.</p>
|
|
424
|
-
<div class="grid cols-3">
|
|
425
|
-
<article class="card"><h3 id="ask-user">Questions with choices</h3><p>1–4 questions, each with 2–4 numbered choices, always "Other" in your own words and "Let the agent decide". Press a number to choose, Enter to send. Stop while it waits, and on "continue" the agent asks again instead of choosing for you.</p></article>
|
|
426
|
-
<article class="card"><h3 id="objections">Subagents object to a brief</h3><p>A subagent reads your request verbatim and the plan above its brief. When the brief is wrong or drifts from the request it shows its evidence, and the main agent has to answer. A second disagreement marks the conversation "needs your decision".</p></article>
|
|
427
|
-
<article class="card"><h3 id="fallback">Work goes on when quota runs out</h3><p>A subagent whose quota is used up, or whose account rests, starts again on the Harness fallback model. A patch over 120 KB is reviewed in parts and the findings merge.</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">Typing Vietnamese never sends by mistake, and subagents read leaner pages</h2>
|
|
434
|
-
<p class="section-lead">An Enter that commits accented text only finishes the word and does not send. Two quick Enters create one conversation and send one message. Subagents read less of each web page, so a news question uses far fewer tokens.</p>
|
|
435
|
-
<div class="grid cols-3">
|
|
436
|
-
<article class="card"><h3 id="ime-enter">Enter while composing</h3><p>With Telex, VNI or any other input method, an Enter that commits text no longer sends or creates a conversation. Shift+Enter is still a new line.</p></article>
|
|
437
|
-
<article class="card"><h3 id="send-once">Sent exactly once</h3><p>Pressing Enter twice, or Enter and then the send button, before the page updates still creates one conversation and sends one message.</p></article>
|
|
438
|
-
<article class="card"><h3 id="fetch-cap">Leaner page reads for subagents</h3><p>A subagent reads at most 20,000 characters of a page, 12,000 by default. The main agent still reads up to 100,000.</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">Web work goes to the research subagent, and the chat stays put</h2>
|
|
445
|
-
<p class="section-lead">In company mode with a research subagent, everything on the web runs on that subagent's cheaper model. The main agent receives its summary with sources. Sending a message in a long conversation no longer pulls the page to the top.</p>
|
|
446
|
-
<div class="grid cols-3">
|
|
447
|
-
<article class="card"><h3 id="research-web">Web work for the research subagent</h3><p>With a research subagent in the Harness, the main agent has no web tools. Searches and pages are read on the research subagent's model.</p></article>
|
|
448
|
-
<article class="card"><h3 id="search-engine">Which engine searched</h3><p>Each search result names the engine that answered: Tavily, Exa or Parallel through the company search pool, or the model provider's own search.</p></article>
|
|
449
|
-
<article class="card"><h3 id="chat-jump">The chat stays still</h3><p>Sending a message no longer makes the history vanish for a moment or pull the page to the top. The header shows the number of subagents the Harness enables.</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">Scout and verify subagents, web search for every role</h2>
|
|
456
|
-
<p class="section-lead">In company mode the team's Harness can enable two more subagents on cheaper models. Scout reads the code before a change. Verify runs the checks again and compares conclusions with evidence. Every role, including roles on API-key models, searches the web through the team's search pool.</p>
|
|
457
|
-
<div class="grid cols-3">
|
|
458
|
-
<article class="card"><h3 id="scout-helper">Scout subagent</h3><p>It reads the project only: no web, no commands. Its answers come with file and line. The main agent hands broad reading to it and keeps its own context for the change.</p></article>
|
|
459
|
-
<article class="card"><h3 id="verify-helper">Verify subagent</h3><p>It runs the repository's checks in a read-only sandbox without network, and compares each requirement with the code and primary sources. Each requirement comes back as pass, fail or unverifiable, with evidence. A check it passes counts toward the turn's process.</p></article>
|
|
460
|
-
<article class="card"><h3 id="search-pool">Web search through the search pool</h3><p><span class="inline-code">web_search</span> asks Studio's search pool first: the team's search keys, then keyless providers. That way roles on API-key models can search too.</p></article>
|
|
461
|
-
<article class="card"><h3 id="enabled-helpers">Only enabled subagents</h3><p>The main agent sees only the subagents its Harness enables. The dashboard shows running subagents against the number enabled.</p></article>
|
|
462
|
-
<article class="card"><h3 id="sandbox-tests">Project tests run in the sandbox</h3><p>The sandbox reads translation files named <span class="inline-code">auth.json</span> and hides <span class="inline-code">.env*</span> files outright (templates excepted), so type checks, Vitest and Next run without exposing secrets. End-to-end tests with Playwright's Chromium run as a network command you approve.</p></article>
|
|
463
|
-
<article class="card"><h3 id="installer-hints">Leaner installer hints</h3><p><span class="inline-code">piagent-install</span> and <span class="inline-code">piagent-setup</span> no longer suggest commands retired in 1.9.0. They mention <span class="inline-code">/mcp</span> and <span class="inline-code">/subagents-doctor</span> only when that run installed them.</p></article>
|
|
464
|
-
</div>
|
|
465
|
-
<p>One company-mode turn ran live through Studio. The scout read the repository before the change, verify reported 6 of 6 requirements passed, review found no blocking issue, and every request was metered.</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">Ask in plain language; the team's Harness does the checking</h2>
|
|
471
|
-
<p class="section-lead">The task contract and the workflow commands are gone: you ask as you would ask a colleague, and the guard still checks every tool call. Company mode runs through Agent Studio and Agent Watch; its Harness asks for checks, has a subagent review the change and sends blocking findings back to the agent. See <a href="/en/ecosystem">Ecosystem</a>.</p>
|
|
472
|
-
|
|
473
|
-
<div class="benchmark-metrics" aria-label="Release 1.9.0 verification figures">
|
|
474
|
-
<div class="benchmark-metric"><span>Live scenarios</span><strong>13/13</strong><small>9 personal, 4 company, on the final install</small></div>
|
|
475
|
-
<div class="benchmark-metric"><span>Automated tests</span><strong>5,800+</strong><small>unit, integration and security; 0 failures</small></div>
|
|
476
|
-
<div class="benchmark-metric"><span>Browser tests</span><strong>27/27</strong><small>dashboard and WebUI on Chromium</small></div>
|
|
477
|
-
<div class="benchmark-metric"><span>Smaller guard</span><strong>−854 lines</strong><small>code that only served the task contract (4993 → 4139)</small></div>
|
|
478
|
-
</div>
|
|
479
|
-
|
|
480
|
-
<figure class="shot">
|
|
481
|
-
<img src="/assets/shots/company-run-done.jpg" alt="A company-mode turn: the agent changes code and runs the tests; A check passed and Review found no blocking issue are written under the answer" loading="lazy" width="1600" height="1000">
|
|
482
|
-
<figcaption>A company-mode turn: the agent changes code and runs the tests, a subagent reviews the change, and the outcome is written right under the answer.</figcaption>
|
|
483
|
-
</figure>
|
|
484
|
-
|
|
485
|
-
<div class="grid cols-3">
|
|
486
|
-
<article class="card"><h3 id="freeform">Plain-language requests</h3><p>No more <span class="inline-code">/workflow</span>, <span class="inline-code">/fresh</span>, <span class="inline-code">/onboard</span> or task contract. The guard still blocks protected files and checks permission profiles, oversized files and stale edits, and asks you before a push or publish.</p></article>
|
|
487
|
-
<article class="card"><h3 id="harness">The team's Harness</h3><p>Studio decides whether each turn suggests or requires a plan, checks and a review. A separate subagent reviews; blocking findings go back to the agent within the team's fix rounds.</p></article>
|
|
488
|
-
<article class="card"><h3 id="network">Network on approval</h3><p>Company-mode commands run without network. To install a package the agent asks to run that one command with network; the card shows the exact command and you allow it once.</p></article>
|
|
489
|
-
<article class="card"><h3 id="stop">Stop and continue</h3><p>Stop works for the whole turn, including while the review runs. A stopped turn says it was stopped, not that the model failed; Continue picks up from the steps kept.</p></article>
|
|
490
|
-
<article class="card"><h3 id="reconnect">Reconnect company mode</h3><p>If the company runtime is not running (after a restart or an update), the conversation says so and offers Reconnect in place.</p></article>
|
|
491
|
-
<article class="card"><h3 id="local-state">Out of git</h3><p><span class="inline-code">.pi/piagent-state</span> gets its own <span class="inline-code">.gitignore</span>; run state no longer shows up in the project's <span class="inline-code">git status</span>.</p></article>
|
|
492
|
-
<article class="card"><h3 id="queue">Waiting in line when the company is busy</h3><p>When every company model account is busy, a request waits its turn (up to 20 minutes) instead of failing. The running turn shows a “Wait for a free company account” step; Stop still works.</p></article>
|
|
493
|
-
<article class="card"><h3 id="many-conversations">Many conversations at once</h3><p>Creating or sending in one conversation is no longer refused because another one just changed. Two folders with the same name (two clones) also show where each one is.</p></article>
|
|
494
|
-
<article class="card"><h3 id="model-scope">Clean up models that are gone</h3><p><span class="inline-code">piagent-doctor</span> lists configured models Pi no longer knows; <span class="inline-code">piagent-model-scope --prune</span> removes only those lines.</p></article>
|
|
495
|
-
</div>
|
|
496
|
-
</section>
|
|
497
|
-
|
|
498
|
-
<section class="section">
|
|
499
|
-
<p class="section-kicker">From the dashboard</p>
|
|
500
|
-
<h2 id="v1-9-0-shots">What a member sees while working</h2>
|
|
501
|
-
<div class="shot-grid">
|
|
502
|
-
<figure class="shot">
|
|
503
|
-
<img src="/assets/shots/network-approval.jpg" alt="Approval card for one network command, showing the exact npm install command" loading="lazy" width="1600" height="1000">
|
|
504
|
-
<figcaption>Approving one network command: the card shows the exact command and what allow or deny does.</figcaption>
|
|
505
|
-
</figure>
|
|
506
|
-
<figure class="shot">
|
|
507
|
-
<img src="/assets/shots/new-chat-models.jpg" alt="Choosing a model for a new conversation: Company and Personal groups" loading="lazy" width="1600" height="1000">
|
|
508
|
-
<figcaption>New conversation: a company model or a personal one, in the same dashboard.</figcaption>
|
|
509
|
-
</figure>
|
|
510
|
-
<figure class="shot">
|
|
511
|
-
<img src="/assets/shots/company-review-running.jpg" alt="Review running: the header shows Subagent 1/2 and Stop is still available" loading="lazy" width="1600" height="1000">
|
|
512
|
-
<figcaption>Review running: the header shows Subagent 1/2 and Stop still works.</figcaption>
|
|
513
|
-
</figure>
|
|
514
|
-
<figure class="shot">
|
|
515
|
-
<img src="/assets/shots/personal-edit-test.jpg" alt="A personal turn that edits code, with the diff inside the Edit card" loading="lazy" width="1600" height="1000">
|
|
516
|
-
<figcaption>Personal mode: every read, edit and command is a card, with the diff right there.</figcaption>
|
|
517
|
-
</figure>
|
|
518
|
-
</div>
|
|
519
|
-
</section>
|
|
520
|
-
|
|
521
|
-
<section class="section">
|
|
522
|
-
<p class="section-kicker">Verification</p>
|
|
523
|
-
<h2 id="v1-9-0-verification">Run for real, the way a member works</h2>
|
|
524
|
-
<p class="section-lead">Each scenario drives a real browser against the installed release, sends messages as a member would and checks the result on disk. Every experience bug found was fixed with a test and the scenario run again.</p>
|
|
525
|
-
<div class="table-wrap"><table>
|
|
526
|
-
<thead><tr><th>Scenario</th><th>Result</th></tr></thead>
|
|
527
|
-
<tbody>
|
|
528
|
-
<tr><td>Company · strip Vietnamese accents from slugs, add tests</td><td>2 files changed, tests pass, "A check passed on the final code · Review found no blocking issue"</td></tr>
|
|
529
|
-
<tr><td>Company · press Stop while the review runs</td><td>"The turn stopped before its checks finished", no error shown</td></tr>
|
|
530
|
-
<tr><td>Company · install a package that needs network</td><td>The approval card shows the exact command; once allowed, the package is in <span class="inline-code">package.json</span></td></tr>
|
|
531
|
-
<tr><td>Company · send another message during a turn</td><td>Held, sent when the turn ends, and answered</td></tr>
|
|
532
|
-
<tr><td>Personal · edit, test, commit and push</td><td>Push waits for approval in the browser; stopping a long command leaves no process behind</td></tr>
|
|
533
|
-
<tr><td>Personal · read <span class="inline-code">.env</span></td><td>Blocked without revealing values; the agent explains how to open it yourself</td></tr>
|
|
534
|
-
</tbody>
|
|
535
|
-
</table></div>
|
|
536
|
-
<p>Benchmark and journey results of earlier releases were measured with task contracts; they are historical, and 1.9.0 has not been measured again.</p>
|
|
537
|
-
</section>
|
|
538
|
-
|
|
539
|
-
<div class="callout">
|
|
540
|
-
<strong>Earlier releases</strong>
|
|
541
|
-
<p>The notes below describe earlier releases as they shipped. Since 1.9.0 the task contract, trajectories, completion receipts and workflow commands mentioned below are gone.</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, and Luna in Piagent</h2>
|
|
547
|
-
<p class="section-lead">Pi 0.87.1 exposes all three GPT-6 models through the authenticated catalog. New sessions prefer Sol High; parent routing remains opt-in.</p>
|
|
548
|
-
<div class="grid cols-3">
|
|
549
|
-
<article class="card"><h3>Luna</h3><p>Focused, verifiable tasks: the low tier at Medium effort.</p></article>
|
|
550
|
-
<article class="card"><h3>Sol</h3><p>Everyday coding: the medium and high tiers; the new-session default is High when available.</p></article>
|
|
551
|
-
<article class="card"><h3>Astra</h3><p>Broad or ambiguous work: the ultra tier at Extra High. Explicit pins and existing sessions stay intact.</p></article>
|
|
552
|
-
</div>
|
|
553
|
-
<p>The router selects only authenticated models and records a legacy 5.6 fallback. The old 108-session result does not measure GPT-6 performance or token savings.</p>
|
|
554
|
-
</section>
|
|
555
|
-
|
|
556
|
-
<section class="section">
|
|
557
|
-
<p class="section-kicker">v1.7.1</p>
|
|
558
|
-
<h2 id="v1-7-0">Long sessions with clearer context and accounting</h2>
|
|
559
|
-
<p class="section-lead">v1.7.1 supports Pi 0.86.1, repairs session recovery, and adds waiting within an open session.</p>
|
|
560
|
-
<div class="grid cols-3">
|
|
561
|
-
<article class="card"><h3>Requested waiting</h3><p>Ask the agent to wait until the next useful check. The timer makes no model calls while waiting; the session must remain open.</p></article>
|
|
562
|
-
<article class="card"><h3>Context and usage</h3><p>Context prioritizes supported files, and usage and verification results remain bound to the correct task.</p></article>
|
|
563
|
-
<article class="card"><h3>Evidence boundary</h3><p>All 14 formerly failed attempts passed a separate rerun. This is not a new 108-session score or an aggregate token-saving claim.</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">Truthful UI state, safe external review, and lower helper overhead</h2>
|
|
570
|
-
<p class="section-lead">This patch keeps the selected model and thinking level unchanged while tightening lifecycle truth, limiting helper expansion, and granting external-source reads only to the exact checkout for the current session.</p>
|
|
571
|
-
<div class="grid cols-3">
|
|
572
|
-
<article class="card"><h3 id="conversation-truth">Conversation truth</h3><p>Drafts, retries, and pending completion stay in Activity. Chat preserves user-then-assistant order and clears processing only at the real terminal boundary.</p></article>
|
|
573
|
-
<article class="card"><h3 id="external-review">External review</h3><p>GitHub, GitLab, and Bitbucket references activate only minimal source checkout. The runtime grants reads to that exact tree while blocking caches, credentials, symlink escape, and every mutation path.</p></article>
|
|
574
|
-
<article class="card"><h3 id="solo-first">Solo-first</h3><p>Direct subagent use is capped at one read-only helper with call, turn, and runtime budgets, no automatic retry/fork/worker expansion, and truthful failure state when evidence is missing.</p></article>
|
|
575
|
-
</div>
|
|
576
|
-
</section>
|
|
577
|
-
|
|
578
|
-
<section class="section">
|
|
579
|
-
<p class="section-kicker">Product stabilization</p>
|
|
580
|
-
<h2 id="main-changes">Six changes users will notice</h2>
|
|
581
|
-
<p class="section-lead">Existing workflows continue to work. This update adds runtime evidence and fail-closed gates behind them, plus compact projections that users can inspect when needed.</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, and provenance come from the runtime or authenticated catalog. Missing facts stay unknown instead of being inferred from a model name.</p>
|
|
586
|
-
</article>
|
|
587
|
-
<article class="card">
|
|
588
|
-
<h3 id="trajectory">Task trajectories</h3>
|
|
589
|
-
<p>Tasks move through plan, execute, verify, review, handoff, and terminal using replayable state. Stale, corrupt, or identity-mismatched events fail closed.</p>
|
|
590
|
-
</article>
|
|
591
|
-
<article class="card">
|
|
592
|
-
<h3 id="recovery">Recovery and resume</h3>
|
|
593
|
-
<p>Failures are classified before retry or repair. Environment, provider, permission, policy, and scope failures never grant source-mutation authority.</p>
|
|
594
|
-
</article>
|
|
595
|
-
<article class="card">
|
|
596
|
-
<h3 id="helpers">Role-bound helpers</h3>
|
|
597
|
-
<p>Scouts, planners, reviewers, and Oracle receive bounded scope, tools, and budgets. The parent model stays pinned; automatic workers and multiple writers remain off.</p>
|
|
598
|
-
</article>
|
|
599
|
-
<article class="card">
|
|
600
|
-
<h3 id="receipt">Completion receipts</h3>
|
|
601
|
-
<p>A receipt is approved only when the trace is completed, acceptance is satisfied, and the current-tree hard gate passes. Missing verifiers or pending work remain visible risks.</p>
|
|
602
|
-
</article>
|
|
603
|
-
<article class="card">
|
|
604
|
-
<h3 id="product-views">Product views</h3>
|
|
605
|
-
<p>Preflight, live status, the activity inspector, efficiency, and orchestration policy use deterministic output; users do not need a model to remember or interpret runtime state.</p>
|
|
606
|
-
</article>
|
|
607
|
-
</div>
|
|
608
|
-
</section>
|
|
609
|
-
|
|
610
|
-
<section class="section">
|
|
611
|
-
<p class="section-kicker">Daily flow</p>
|
|
612
|
-
<h2 id="usage-flow">The daily workflow does not break</h2>
|
|
613
|
-
<div class="steps">
|
|
614
|
-
<article class="step"><div><h3>Assign work as before</h3><p>Use a natural-language request (<span class="inline-code">/workflow</span> was retired in 1.9.0). Manual preflight is optional.</p></div></article>
|
|
615
|
-
<article class="step"><div><h3>The runtime records truth</h3><p>Task Contracts, context, changed files, trajectories, and checkpoints are updated from hooks and tool results rather than model memory.</p></div></article>
|
|
616
|
-
<article class="step"><div><h3>Verify the exact working tree</h3><p>Only observed exact commands that exit successfully and match the current-tree digest count as passing evidence.</p></div></article>
|
|
617
|
-
<article class="step"><div><h3>Bounded recovery or handoff</h3><p>Source repair and transient retries have ceilings. Unsafe cases return to handoff or the operator instead of continuing by guesswork.</p></div></article>
|
|
618
|
-
<article class="step"><div><h3>Completion fails closed</h3><p>A completed trace is not enough. Work plan, acceptance, changed-file integrity, and current verifier evidence must pass before approval.</p></div></article>
|
|
619
|
-
</div>
|
|
620
|
-
</section>
|
|
621
|
-
|
|
622
|
-
<section class="section">
|
|
623
|
-
<p class="section-kicker">Inspect when needed</p>
|
|
624
|
-
<h2 id="new-commands">Five commands that expose the whole flow</h2>
|
|
625
|
-
<p class="section-lead">These are inspection and diagnostic commands, not mandatory steps before every task.</p>
|
|
626
|
-
<div class="command-grid">
|
|
627
|
-
<article class="command-card">
|
|
628
|
-
<header><span>Preflight, activity, status, metrics, and helper policy</span><button class="clip-btn" data-clip="/task-preflight --json Review current repository state /piagent-inspector /piagent-status /usage efficiency /piagent-orchestration">Copy</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>See <a href="/en/workflows">How workflows change</a> for exactly what each command reads, what it does not do, and when to use it.</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="automatic-and-opt-in">What runs automatically and what requires opt-in</h2>
|
|
642
|
-
<div class="table-wrap">
|
|
643
|
-
<table>
|
|
644
|
-
<thead><tr><th>Surface</th><th>Default</th><th>Behavior</th></tr></thead>
|
|
645
|
-
<tbody>
|
|
646
|
-
<tr><td>Runtime snapshots and task evidence</td><td>Automatic</td><td>Records bounded facts, journal entries, verifier evidence, recovery, and receipts.</td></tr>
|
|
647
|
-
<tr><td>Activity inspector</td><td>Automatic four-row panel, optional menu</td><td>Shows task diffs, commands, safety, and context beside the footer without calling a model or changing workflow state.</td></tr>
|
|
648
|
-
<tr><td>Solver</td><td><span class="inline-code">shadow</span></td><td>Evaluates routes without changing the parent model or taking control of the workflow.</td></tr>
|
|
649
|
-
<tr><td>Phase tools</td><td><span class="inline-code">shadow</span></td><td>Computes projections; use <span class="inline-code">PIAGENT_PHASE_TOOLS=on</span> to apply phase-specific tool visibility.</td></tr>
|
|
650
|
-
<tr><td>Recovery</td><td><span class="inline-code">on</span></td><td>Retries or repairs within ceilings; use <span class="inline-code">PIAGENT_AUTO_RECOVERY=off</span> to restore ordinary handoff.</td></tr>
|
|
651
|
-
<tr><td>Helpers</td><td><span class="inline-code">off</span></td><td>Explicit <span class="inline-code">PIAGENT_HELPERS_MODE=on</span> still allows only one fresh read-only helper after two independent lanes and at least 30% projected net saving are proven.</td></tr>
|
|
652
|
-
<tr><td>Parent routing and automatic workers</td><td><span class="inline-code">off</span></td><td>No automatic parent-model switch, writer dispatch, or default multi-writer behavior.</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="compatibility">No workflow rewrite or old-task migration required</h2>
|
|
661
|
-
<div class="callout">
|
|
662
|
-
<strong>Task Contract remains v2.</strong>
|
|
663
|
-
<p>Runtime snapshots, solver decisions, trajectories, recovery, and helper state use additive versioned sidecars. Existing command aliases continue to work; old state without a new projection stays unknown or unavailable instead of being upgraded into success.</p>
|
|
664
|
-
</div>
|
|
665
|
-
<div class="grid cols-2">
|
|
666
|
-
<article class="card"><h3 id="host-boundary">The host is not a sandbox</h3><p>Policy reduces mistakes inside controlled tool surfaces but does not isolate code from the operator account. External and destructive actions still require confirmation.</p></article>
|
|
667
|
-
<article class="card"><h3 id="safe-defaults">Defaults remain conservative</h3><p>Solver and phase tools remain in shadow, helpers do not auto-dispatch, and parent routing and automatic workers stay off until separate rollout evidence exists.</p></article>
|
|
668
|
-
</div>
|
|
669
|
-
</section>
|
|
670
|
-
|
|
671
|
-
<section class="section">
|
|
672
|
-
<p class="section-kicker">Try it</p>
|
|
673
|
-
<h2 id="try-directly">Test directly in a new Pi session</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 /piagent-inspector /piagent-status /usage efficiency">Copy</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>After updating the package or a local checkout, start a new Pi session so the extension reloads. See the <a href="/en/commands">Command catalog</a> for every command and compatibility alias.</p>
|
|
682
|
-
</article>
|
|
683
|
-
</div>
|
|
684
|
-
</section>
|
|
1
|
+
<!-- releases -->
|