@piagent/platform 1.37.1 → 1.38.2
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 +60 -0
- package/README.md +5 -3
- package/README.vi.md +2 -2
- package/catalog/capabilities.json +2 -2
- package/docs/command-reference-vietnamese.md +4 -3
- package/docs/distribution-standard.md +6 -6
- package/docs/en/maintainer-guide.md +8 -0
- package/docs/en/workspace-editor.md +222 -0
- package/docs/languages.json +13 -4
- package/docs/operator-manual-vietnamese.md +7 -7
- package/docs/publishing-for-teams.md +3 -0
- package/docs/release-install-policy.md +2 -2
- package/docs/research/ide-m0-spike.md +101 -0
- package/docs/team-onboarding.md +2 -2
- package/docs/vi/maintainer-guide.md +8 -0
- package/docs/vi/workspace-editor.md +217 -0
- 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 +23 -0
- package/docs-site/content/index.html +4 -4
- package/docs-site/content/whats-new.html +23 -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 +24 -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 +24 -1
- package/docs-site/windows.html +1 -1
- package/docs-site/workflows.html +1 -1
- package/evals/fixtures/piagent-webui/checkpoint-v1.invalid.json +21 -0
- package/evals/fixtures/piagent-webui/checkpoint-v1.valid.json +20 -0
- package/evals/fixtures/piagent-webui/terminal-v1.invalid.json +17 -0
- package/evals/fixtures/piagent-webui/terminal-v1.valid.json +16 -0
- package/evals/fixtures/piagent-webui/workspace-file-v1.invalid.json +24 -0
- package/evals/fixtures/piagent-webui/workspace-file-v1.valid.json +23 -0
- package/evals/fixtures/piagent-webui/workspace-paths-v1.invalid.json +24 -0
- package/evals/fixtures/piagent-webui/workspace-paths-v1.valid.json +24 -0
- package/evals/fixtures/piagent-webui/workspace-search-v1.invalid.json +26 -0
- package/evals/fixtures/piagent-webui/workspace-search-v1.valid.json +26 -0
- package/evals/fixtures/piagent-webui/workspace-tree-v1.invalid.json +28 -0
- package/evals/fixtures/piagent-webui/workspace-tree-v1.valid.json +27 -0
- package/evals/fixtures/piagent-webui/workspace-write-v1.invalid.json +19 -0
- package/evals/fixtures/piagent-webui/workspace-write-v1.valid.json +19 -0
- package/evals/long-task-soak-v1/README.md +17 -0
- package/evals/long-task-soak-v1/lib/session-loop.mjs +19 -3
- package/evals/long-task-soak-v1/scenarios/ide-editor-terminal.json +19 -0
- package/evals/long-task-soak-v1/surfaces/webui-gateway.mjs +17 -2
- package/evals/long-task-soak-v1/surfaces/workspace-actions.mjs +95 -0
- package/evals/private-holdout-v1/public-exposure.v2.json +2 -2
- package/package.json +7 -3
- package/packages/piagent-core/extensions/fallback-base-policy.ts +1 -1
- package/packages/piagent-core/extensions/guard-types.ts +3 -1
- package/packages/piagent-core/extensions/path-suggestions.ts +137 -0
- package/packages/piagent-core/extensions/piagent-guard.ts +85 -7
- package/packages/piagent-core/extensions/workspace-inspection.ts +145 -0
- package/packages/piagent-core/extensions/workspace-policy.d.ts +7 -0
- package/packages/piagent-core/extensions/workspace-policy.js +3 -0
- package/packages/piagent-core/extensions/workspace-search-index.mjs +8 -0
- package/packages/piagent-core/extensions/workspace-search.ts +74 -0
- package/packages/piagent-core/extensions/workspace-write.ts +116 -0
- package/packages/piagent-core/managed/background-process.mjs +9 -4
- package/packages/piagent-core/managed/boundary-package-proxy.mjs +21 -0
- package/packages/piagent-core/managed/boundary-queue.mjs +24 -0
- package/packages/piagent-core/managed/checkpoint-git.mjs +16 -0
- package/packages/piagent-core/managed/checkpoints.mjs +17 -64
- package/packages/piagent-core/managed/command-tools.mjs +6 -6
- package/packages/piagent-core/managed/continuation.mjs +3 -0
- package/packages/piagent-core/managed/dist/workspace/assets/adapters/backend-api/profile.json +88 -0
- package/packages/piagent-core/managed/dist/workspace/assets/adapters/be-readonly-fe/profile.json +130 -0
- package/packages/piagent-core/managed/dist/workspace/assets/adapters/data/profile.json +88 -0
- package/packages/piagent-core/managed/dist/workspace/assets/adapters/devops/profile.json +90 -0
- package/packages/piagent-core/managed/dist/workspace/assets/adapters/docs/profile.json +74 -0
- package/packages/piagent-core/managed/dist/workspace/assets/adapters/fullstack/profile.json +92 -0
- package/packages/piagent-core/managed/dist/workspace/assets/adapters/generic/profile.json +95 -0
- package/packages/piagent-core/managed/dist/workspace/assets/adapters/mobile/profile.json +86 -0
- package/packages/piagent-core/managed/dist/workspace/assets/adapters/node-typescript/profile.json +74 -0
- package/packages/piagent-core/managed/dist/workspace/assets/adapters/python/profile.json +75 -0
- package/packages/piagent-core/managed/dist/workspace/assets/adapters/web-frontend/profile.json +99 -0
- package/packages/piagent-core/managed/dist/workspace/assets/local-state-path-BrmghxEZ.js +284 -0
- package/packages/piagent-core/managed/dist/workspace/assets/packages/piagent-core/policies/base-policy.json +351 -0
- package/packages/piagent-core/managed/dist/workspace/manifest.json +65 -0
- package/packages/piagent-core/managed/dist/workspace/worker.mjs +7374 -0
- package/packages/piagent-core/managed/dist/workspace/workspace-search-index.mjs +1007 -0
- package/packages/piagent-core/managed/patch-snapshot.mjs +6 -8
- package/packages/piagent-core/managed/permission.mjs +29 -6
- package/packages/piagent-core/managed/repository-operation.mjs +2 -1
- package/packages/piagent-core/managed/review-snapshot-request.mjs +21 -0
- package/packages/piagent-core/managed/sandbox-diagnostic.mjs +2 -0
- package/packages/piagent-core/managed/session-mutation-observations.mjs +37 -0
- package/packages/piagent-core/managed/session.mjs +2 -2
- package/packages/piagent-core/managed/source-revert-requests.mjs +21 -0
- package/packages/piagent-core/managed/terminal-boundary.mjs +88 -0
- package/packages/piagent-core/managed/terminal-channel.mjs +66 -0
- package/packages/piagent-core/managed/terminal-runtime.mjs +64 -0
- package/packages/piagent-core/managed/terminal-seatbelt.mjs +48 -0
- package/packages/piagent-core/managed/terminal-worker.mjs +70 -0
- package/packages/piagent-core/managed/tool-boundary.mjs +45 -35
- package/packages/piagent-core/managed/tool-freshness.mjs +47 -0
- package/packages/piagent-core/managed/tool-worker.mjs +18 -3
- package/packages/piagent-core/managed/workspace-worker-pins.mjs +26 -0
- package/packages/piagent-core/package.json +1 -1
- package/packages/piagent-core/policies/base-policy.json +2 -1
- package/packages/piagent-core/runtime/checkpoints/checkpoint-authority.ts +43 -0
- package/packages/piagent-core/runtime/checkpoints/checkpoint-refs.mjs +51 -0
- package/packages/piagent-core/runtime/checkpoints/checkpoint-store.mjs +179 -0
- package/packages/piagent-core/runtime/checkpoints/checkpoint-worker.ts +28 -0
- package/packages/piagent-core/runtime/checkpoints/git-adapter.mjs +36 -0
- package/packages/piagent-core/runtime/checkpoints/persistent-history.mjs +96 -0
- package/packages/piagent-core/runtime/checkpoints/personal-git.ts +272 -0
- package/packages/piagent-core/runtime/checkpoints/personal-runtime.ts +158 -0
- package/packages/piagent-core/runtime/checkpoints/prune.mjs +29 -0
- package/packages/piagent-core/runtime/checkpoints/restore-preview.mjs +46 -0
- package/packages/piagent-core/runtime/checkpoints/turn-checkpoints.mjs +167 -0
- package/packages/piagent-core/runtime/hooks/session-hooks.ts +19 -16
- package/packages/piagent-core/runtime/hooks/session-start-hook.ts +3 -0
- package/packages/piagent-core/runtime/hooks/tool-call-hook.ts +2 -2
- package/packages/piagent-core/runtime/inspection/diff-projection.ts +2 -1
- package/packages/piagent-core/runtime/inspection/managed-source-revert.ts +90 -0
- package/packages/piagent-core/runtime/inspection/review-state-projection.ts +19 -8
- package/packages/piagent-core/runtime/inspection/session-diff-projection.ts +47 -0
- package/packages/piagent-core/runtime/inspection/session-hunk-provenance.ts +56 -0
- package/packages/piagent-core/runtime/inspection/session-mutation-observer.ts +125 -0
- package/packages/piagent-core/runtime/inspection/source-action-contract.ts +123 -0
- package/packages/piagent-core/runtime/inspection/source-change-projection.ts +3 -9
- package/packages/piagent-core/runtime/inspection/source-mutation-projection.ts +3 -41
- package/packages/piagent-core/runtime/inspection/source-mutation-store.ts +6 -36
- package/packages/piagent-core/runtime/inspection/source-revert-projection.ts +36 -30
- package/packages/piagent-core/runtime/inspection/text-diff.ts +5 -4
- package/packages/piagent-core/runtime/inspection/workspace-worker.ts +79 -0
- package/packages/piagent-core/runtime/policy/source-index-transaction.ts +3 -10
- package/packages/piagent-core/runtime/policy/source-mutation-guard-binding.ts +27 -2
- package/packages/piagent-core/runtime/policy/source-mutation-guard.ts +42 -12
- package/packages/piagent-core/runtime/policy/source-worktree-transaction.ts +10 -5
- package/packages/piagent-core/runtime/policy/workspace-write-authority.ts +51 -0
- package/packages/piagent-core/runtime/process-owner.mjs +20 -0
- package/packages/piagent-core/runtime/process-tree-watch.mjs +46 -0
- package/packages/piagent-core/runtime/quality/model-mutation-proof.ts +8 -5
- package/packages/piagent-core/runtime/registration/permission-commands.ts +10 -2
- package/packages/piagent-core/runtime/registration/task-evidence-tools.ts +1 -1
- package/packages/piagent-core/runtime/session/workspace-member-edits.d.mts +7 -0
- package/packages/piagent-core/runtime/session/workspace-member-edits.mjs +41 -0
- package/packages/piagent-core/security/workspace-file-reader.ts +2 -1
- package/packages/piagent-webui/dist/client/assets/Alert-DGWhP2MM.js +1 -0
- package/packages/piagent-webui/dist/client/assets/Button-QItfZUNj.js +1 -0
- package/packages/piagent-webui/dist/client/assets/DialogTitle-CyaFPaiW.js +3 -0
- package/packages/piagent-webui/dist/client/assets/MarkdownMessage-DtEwqme0.js +29 -0
- package/packages/piagent-webui/dist/client/assets/TerminalPanel-C3vkzjQ6.js +2 -0
- package/packages/piagent-webui/dist/client/assets/TerminalView-TNjhBGfa.js +9 -0
- package/packages/piagent-webui/dist/client/assets/TerminalView-kHJ-D0s7.css +1 -0
- package/packages/piagent-webui/dist/client/assets/Typography-B9om7Evq.js +1 -0
- package/packages/piagent-webui/dist/client/assets/WorkspaceCodeEditor-BAhYwQNM.js +2 -0
- package/packages/piagent-webui/dist/client/assets/WorkspaceExplorer-Coh_GWCO.js +5 -0
- package/packages/piagent-webui/dist/client/assets/WorkspaceQuickOpen-Bn4miZq4.js +1 -0
- package/packages/piagent-webui/dist/client/assets/bootstrap-CedkNtRG.js +1 -0
- package/packages/piagent-webui/dist/client/assets/dist-B5MCHZv5.js +9 -0
- package/packages/piagent-webui/dist/client/assets/dist-BM_LL1o9.js +1 -0
- package/packages/piagent-webui/dist/client/assets/dist-C2TMLUTo.js +23 -0
- package/packages/piagent-webui/dist/client/assets/dist-CqL3udNu.js +1 -0
- package/packages/piagent-webui/dist/client/assets/dist-D4df0jLQ.js +1 -0
- package/packages/piagent-webui/dist/client/assets/dist-D6i5SpQu.js +10 -0
- package/packages/piagent-webui/dist/client/assets/dist-DfjUS8LS.js +6 -0
- package/packages/piagent-webui/dist/client/assets/dist-IRUjhd1P.js +1 -0
- package/packages/piagent-webui/dist/client/assets/dist-sNhoSseW.js +1 -0
- package/packages/piagent-webui/dist/client/assets/index-Brs_HjIo.css +1 -0
- package/packages/piagent-webui/dist/client/assets/index-a-perpOX.js +102 -0
- package/packages/piagent-webui/dist/client/assets/rolldown-runtime-hePW80VL.js +1 -0
- package/packages/piagent-webui/dist/client/assets/tab-close-nAxrK7Lq.js +1 -0
- package/packages/piagent-webui/dist/client/assets/ui-preferences-BO3AV7QE.js +10 -0
- package/packages/piagent-webui/dist/client/assets/useId-DEefKUAT.js +124 -0
- package/packages/piagent-webui/dist/client/assets/workspace-api-O7auv_td.js +1 -0
- package/packages/piagent-webui/dist/client/index.html +10 -2
- package/packages/piagent-webui/extension/same-session-bridge.ts +2 -3
- package/packages/piagent-webui/extension/source-revert-controller.ts +14 -208
- package/packages/piagent-webui/gateway/checkpoint-sessions.ts +99 -0
- package/packages/piagent-webui/gateway/checkpoint-store.ts +6 -0
- package/packages/piagent-webui/gateway/company-relay.ts +5 -0
- package/packages/piagent-webui/gateway/company-terminal-cache.ts +54 -0
- package/packages/piagent-webui/gateway/company-terminal-channel.ts +117 -0
- package/packages/piagent-webui/gateway/company-terminal-relay.ts +75 -0
- package/packages/piagent-webui/gateway/gateway-protocol-service.ts +12 -0
- package/packages/piagent-webui/gateway/gateway-service.ts +48 -4
- package/packages/piagent-webui/gateway/managed-gateway.mjs +30 -3
- package/packages/piagent-webui/gateway/managed-projection.ts +5 -3
- package/packages/piagent-webui/gateway/managed-source-revert-controller.ts +45 -0
- package/packages/piagent-webui/gateway/managed-source-revert-sessions.ts +74 -0
- package/packages/piagent-webui/gateway/managed-terminal-binding.ts +30 -0
- package/packages/piagent-webui/gateway/managed-terminal-processes.ts +74 -0
- package/packages/piagent-webui/gateway/managed-terminal-sessions.ts +9 -0
- package/packages/piagent-webui/gateway/path-suggestions.ts +1 -124
- package/packages/piagent-webui/gateway/personal-terminal-binding.ts +36 -0
- package/packages/piagent-webui/gateway/personal-terminal-diagnostic.mjs +16 -0
- package/packages/piagent-webui/gateway/personal-terminal-processes.ts +119 -0
- package/packages/piagent-webui/gateway/personal-terminal-sessions.ts +22 -0
- package/packages/piagent-webui/gateway/runtime-session-controls.ts +2 -1
- package/packages/piagent-webui/gateway/session-catalog.ts +3 -2
- package/packages/piagent-webui/gateway/session-command-controller.ts +4 -4
- package/packages/piagent-webui/gateway/session-inspection-registry.ts +29 -5
- package/packages/piagent-webui/gateway/session-runtime-supervisor.ts +8 -8
- package/packages/piagent-webui/gateway/signed-session-journal.ts +77 -0
- package/packages/piagent-webui/gateway/source-revert-sessions.ts +74 -0
- package/packages/piagent-webui/gateway/source-revert-store.ts +47 -0
- package/packages/piagent-webui/gateway/terminal-command-ledger.ts +33 -0
- package/packages/piagent-webui/gateway/terminal-mentions.ts +29 -0
- package/packages/piagent-webui/gateway/terminal-output-buffer.ts +58 -0
- package/packages/piagent-webui/gateway/terminal-router.ts +12 -0
- package/packages/piagent-webui/gateway/terminal-sessions.ts +247 -0
- package/packages/piagent-webui/gateway/workspace-write-sessions.ts +69 -0
- package/packages/piagent-webui/gateway/workspace-write-store.ts +6 -0
- package/packages/piagent-webui/package.json +15 -2
- package/packages/piagent-webui/server/checkpoint-command.ts +30 -0
- package/packages/piagent-webui/server/checkpoint-controller.ts +87 -0
- package/packages/piagent-webui/server/checkpoint-routes.ts +38 -0
- package/packages/piagent-webui/server/control-command-digest.ts +5 -0
- package/packages/piagent-webui/server/core-inspection-provider.ts +16 -22
- package/packages/piagent-webui/server/gateway-websocket.ts +36 -8
- package/packages/piagent-webui/server/loopback-server.ts +9 -0
- package/packages/piagent-webui/server/read-model-provider.ts +3 -0
- package/packages/piagent-webui/server/read-only-router.ts +3 -0
- package/packages/piagent-webui/server/session-auth.ts +4 -1
- package/packages/piagent-webui/server/session-source-revert-routes.ts +54 -0
- package/packages/piagent-webui/server/source-projection-binding.ts +18 -0
- package/packages/piagent-webui/server/source-revert-controller.ts +225 -0
- package/packages/piagent-webui/server/terminal-command.ts +35 -0
- package/packages/piagent-webui/server/terminal-websocket-stream.ts +56 -0
- package/packages/piagent-webui/server/transcript-projection.ts +2 -1
- package/packages/piagent-webui/server/workspace-read-routes.ts +32 -0
- package/packages/piagent-webui/server/workspace-reader.ts +23 -0
- package/packages/piagent-webui/server/workspace-write-controller.ts +118 -0
- package/packages/piagent-webui/server/workspace-write-routes.ts +38 -0
- package/packages/piagent-webui/shared/terminal-message.ts +23 -0
- package/schemas/piagent-webui/catalog-v1.json +63 -0
- package/schemas/piagent-webui/checkpoint-v1.schema.json +466 -0
- package/schemas/piagent-webui/control-command-v1.schema.json +68 -3
- package/schemas/piagent-webui/diff-v1.schema.json +4 -0
- package/schemas/piagent-webui/gateway-protocol-v1.schema.json +123 -3
- package/schemas/piagent-webui/session-catalog-v1.schema.json +1 -1
- package/schemas/piagent-webui/session-command-v1.schema.json +1 -1
- package/schemas/piagent-webui/snapshot-v1.schema.json +2 -1
- package/schemas/piagent-webui/source-revert-v1.schema.json +22 -3
- package/schemas/piagent-webui/terminal-v1.schema.json +495 -0
- package/schemas/piagent-webui/workspace-file-v1.schema.json +79 -0
- package/schemas/piagent-webui/workspace-paths-v1.schema.json +71 -0
- package/schemas/piagent-webui/workspace-search-v1.schema.json +80 -0
- package/schemas/piagent-webui/workspace-tree-v1.schema.json +87 -0
- package/schemas/piagent-webui/workspace-write-v1.schema.json +276 -0
- package/schemas/project-profile.schema.json +8 -3
- package/scripts/company-terminal.mjs +16 -11
- package/scripts/pi-auto.sh +5 -1
- package/scripts/team-doctor.sh +8 -0
- package/packages/piagent-webui/dist/client/assets/MarkdownMessage-CfgyQQbW.js +0 -29
- package/packages/piagent-webui/dist/client/assets/index-HyzWKvDu.js +0 -234
- package/packages/piagent-webui/dist/client/assets/index-_0nGP2n3.css +0 -1
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
# IDE M0: editor, terminal and sandbox probes
|
|
2
|
+
|
|
3
|
+
Date: 2026-10-22. Baseline: `f598df18`, Node 22.23.3, macOS arm64.
|
|
4
|
+
No production dependency, CSP or sandbox rule was changed by these probes.
|
|
5
|
+
|
|
6
|
+
## Browser
|
|
7
|
+
|
|
8
|
+
A real Chromium page served the exact CSP from `server/http-security.ts`.
|
|
9
|
+
CodeMirror state 6.7.6/view 6.43.15 rendered a read-only document with
|
|
10
|
+
`EditorView.cspNonce`. xterm 5.5.0 rendered output with its packaged CSS served
|
|
11
|
+
from the same origin. Its `documentOverride` used a document proxy that adds
|
|
12
|
+
our nonce only to newly created style elements, binding other document methods
|
|
13
|
+
to their original receiver. No global DOM monkey patch is needed.
|
|
14
|
+
|
|
15
|
+
Combined minified probe: 491,192 bytes (137,045 gzip); this includes both
|
|
16
|
+
libraries, before splitting the production editor/terminal/language chunks.
|
|
17
|
+
Chromium reported zero CSP violations and rendered both expected text strings.
|
|
18
|
+
|
|
19
|
+
xterm 6.0.0 is unsuitable here: its shared scrollbar stylesheet uses the global
|
|
20
|
+
document and bypasses `documentOverride`. Pin 5.5.0 with addon-fit 0.10.0;
|
|
21
|
+
revalidate CSP before upgrading. All these packages use MIT licenses.
|
|
22
|
+
|
|
23
|
+
## Personal PTY
|
|
24
|
+
|
|
25
|
+
Upstream node-pty 1.1.0 contains macOS/Windows prebuilds but no Linux prebuild.
|
|
26
|
+
Use `@lydell/node-pty` 1.2.0-beta.15 (MIT), an API-compatible distribution with
|
|
27
|
+
platform packages for darwin arm64/x64 and linux arm64/x64. The beta pin requires
|
|
28
|
+
explicit platform smoke checks before upgrades. Keep it optional so a native
|
|
29
|
+
loading failure disables terminals without breaking the dashboard.
|
|
30
|
+
|
|
31
|
+
An isolated npm global prefix installation succeeded on darwin-arm64. A shell
|
|
32
|
+
reported `37 101` after resize, accepted Ctrl+C during sleep, then printed
|
|
33
|
+
`INTERRUPT_OK` and exited zero. In Docker `node:22` linux/amd64, global install
|
|
34
|
+
also succeeded and the PTY reported `37 101` and `LINUX_PTY_OK` without compiling.
|
|
35
|
+
|
|
36
|
+
## Company sandbox
|
|
37
|
+
|
|
38
|
+
macOS: a Node process launched *inside* the unchanged `managedSeatbelt` profile
|
|
39
|
+
failed to allocate the PTY: `posix_openpt failed: Operation not permitted`.
|
|
40
|
+
The fallback `/usr/bin/script` was also launched inside that profile with a real
|
|
41
|
+
controlling terminal and failed: `openpty: Operation not permitted`.
|
|
42
|
+
A pipe-only script probe is insufficient (it instead fails at `tcgetattr`);
|
|
43
|
+
the controlling-terminal probe confirms the sandbox denial.
|
|
44
|
+
|
|
45
|
+
Do not allocate a company PTY on the host as a workaround. The user's approved
|
|
46
|
+
fallback is to omit M4 when neither approach works within the existing sandbox.
|
|
47
|
+
macOS company terminals must therefore remain unavailable with a clear reason.
|
|
48
|
+
|
|
49
|
+
Update (phase 1 follow-up): the company Gateway now creates the PTY on the
|
|
50
|
+
host and starts only the shell under the unchanged offline Seatbelt profile plus
|
|
51
|
+
`file-ioctl` on `/dev/ttys*` and read/write/ioctl on `/dev/tty`. Opening any other
|
|
52
|
+
terminal stays denied; `tests/managed-terminal-boundary.test.mjs` checks this.
|
|
53
|
+
Linux arm64: Docker Node 22 with the unchanged `bubblewrapArgs` created the
|
|
54
|
+
PTY inside the sandbox, resized to 37x101, interrupted sleep and ran the next
|
|
55
|
+
command successfully. M4 can support Linux while reporting macOS unavailable.
|
|
56
|
+
Linux x64 under QEMU could install/load the prebuilt PTY but bubblewrap failed
|
|
57
|
+
with `Creating new namespace failed: Invalid argument`; native x64 sandbox
|
|
58
|
+
qualification remains unverified, rather than inferred from the arm64 result.
|
|
59
|
+
|
|
60
|
+
## Reproduction and evidence
|
|
61
|
+
|
|
62
|
+
Local evidence is outside the repository at
|
|
63
|
+
`reports/piagent-ide-evidence/`: `m0-csp.log`, `m0-sandbox.log`,
|
|
64
|
+
`m0-linux-global.log`, `m0-linux-sandbox.log`, plus probe sources under `m0/`.
|
|
65
|
+
The Linux container is an isolated Colima VM; its engine privileges allow testing
|
|
66
|
+
bubblewrap namespaces, not relaxing the application sandbox's mount/network rules.
|
|
67
|
+
|
|
68
|
+
Baseline `npm test`: 6,499 tests, 6,150 pass, 34 fail, 315 skipped.
|
|
69
|
+
The complete original failure inventory is in the required progress report;
|
|
70
|
+
these are baseline observations, not evidence of milestone completion.
|
|
71
|
+
|
|
72
|
+
## Kết quả tiếng Việt
|
|
73
|
+
|
|
74
|
+
CodeMirror chạy với nonce; xterm 5.5.0 chạy với `documentOverride` gắn nonce
|
|
75
|
+
cho thẻ style mới. Chromium không báo vi phạm CSP. Không dùng xterm 6.0.0 vì
|
|
76
|
+
stylesheet scrollbar đi vòng qua API đó. Chunk thử nghiệm chung là 491.192 byte,
|
|
77
|
+
gzip 137.045 byte; sản phẩm cần tải lười từng phần.
|
|
78
|
+
|
|
79
|
+
Chọn thử nghiệm `@lydell/node-pty` 1.2.0-beta.15 (MIT, prebuild đa nền tảng),
|
|
80
|
+
không chọn node-pty 1.1.0 vì bản đó thiếu prebuild Linux. Cài global trong prefix
|
|
81
|
+
riêng trên macOS arm64 và Docker Node 22 linux/amd64 thành công. PTY personal
|
|
82
|
+
resize được; trên macOS đã xác nhận Ctrl+C rồi chạy lệnh tiếp và thoát bình thường.
|
|
83
|
+
|
|
84
|
+
Trong Seatbelt hiện tại, cả node-pty lẫn script(1) với terminal thật đều bị từ
|
|
85
|
+
chối tạo PTY. Không đổi sandbox và không tạo PTY company trên host để lách.
|
|
86
|
+
Theo ngoại lệ người dùng đã cho phép, terminal company macOS không khả dụng;
|
|
87
|
+
các milestone editor, personal terminal và checkpoint vẫn tiếp tục.
|
|
88
|
+
|
|
89
|
+
Cập nhật (sau phase 1): Gateway công ty tạo PTY trên host và chỉ chạy shell trong
|
|
90
|
+
profile Seatbelt offline giữ nguyên, thêm `file-ioctl` trên `/dev/ttys*` và đọc/ghi/ioctl
|
|
91
|
+
`/dev/tty`. Mở terminal khác vẫn bị chặn; `tests/managed-terminal-boundary.test.mjs` kiểm việc này.
|
|
92
|
+
|
|
93
|
+
Linux arm64 đã qua probe PTY trong bubblewrap (resize, Ctrl+C, chạy lệnh tiếp).
|
|
94
|
+
M4 có thể hỗ trợ Linux; macOS vẫn không khả dụng. Namespace trên x64 giả lập
|
|
95
|
+
bị lỗi môi trường, cần kiểm lại trên Linux x64 native.
|
|
96
|
+
|
|
97
|
+
The final Linux arm64 probe also proved project writes succeed, writes to
|
|
98
|
+
`/outside` fail, curl to the internet fails, and a mounted credential file reads
|
|
99
|
+
empty. The shell and bubblewrap exited zero after Ctrl+C and the next command.
|
|
100
|
+
Linux arm64 cũng xác nhận ghi trong project được, ghi ngoài bị chặn, curl ra
|
|
101
|
+
internet thất bại và credential đọc ra rỗng.
|
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.
|
|
13
|
+
npm install -g --ignore-scripts @piagent/platform@1.38.2
|
|
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.
|
|
48
|
+
npm install -g --ignore-scripts @piagent/platform@1.38.2
|
|
49
49
|
piagent-install --stable --dry-run
|
|
50
50
|
piagent-install --stable
|
|
51
51
|
```
|
|
@@ -2,6 +2,14 @@
|
|
|
2
2
|
|
|
3
3
|
[English](../en/maintainer-guide.md)
|
|
4
4
|
|
|
5
|
+
## Chạy toàn bộ test
|
|
6
|
+
|
|
7
|
+
`npm test` chạy tối đa hai file test đồng thời, giống `npm run verify`.
|
|
8
|
+
Nhiều file integration dùng SDK, worker sandbox và trình duyệt thật; giới hạn số
|
|
9
|
+
file cạnh tranh tránh làm cạn thời gian chờ hiện có. Giới hạn này không đổi danh
|
|
10
|
+
sách test hoặc assertion. Đặt tùy chọn Node runner trước đường dẫn file; nối
|
|
11
|
+
`--test-concurrency=2` sau `npm test --` không cấu hình được script này.
|
|
12
|
+
|
|
5
13
|
## Rule đặt code
|
|
6
14
|
|
|
7
15
|
Trước khi thêm code, cần trả lời một câu hỏi về ownership:
|
|
@@ -0,0 +1,217 @@
|
|
|
1
|
+
# Đọc và sửa tệp dự án trong Session Hub
|
|
2
|
+
|
|
3
|
+
[English](../en/workspace-editor.md)
|
|
4
|
+
|
|
5
|
+
Mở một cuộc hội thoại trong `piagent dashboard`, rồi chọn **Tệp**. Trên màn hình
|
|
6
|
+
rộng, thanh bên hiện cây dự án và editor nằm cạnh chat. Trên màn hình nhỏ, Tệp mở
|
|
7
|
+
thành ngăn kéo. Chọn **Phiên** để quay lại danh sách hội thoại.
|
|
8
|
+
|
|
9
|
+
Chọn tệp để mở một tab editor. Cmd/Ctrl+P tìm theo tên tệp. **Tìm kiếm** tìm văn
|
|
10
|
+
bản nguyên dạng và mở kết quả tại dòng tương ứng. Liên kết tệp trên thẻ công cụ,
|
|
11
|
+
thay đổi mã nguồn và đề cập `@path:line` cũng mở editor. Nút **Open in VS Code**
|
|
12
|
+
vẫn có trong phần thay đổi mã nguồn.
|
|
13
|
+
|
|
14
|
+
Cây tôn trọng quy tắc Git ignore và tải từng thư mục. Danh sách và tìm kiếm có
|
|
15
|
+
giới hạn, kèm thông báo khi kết quả bị cắt. Khi không có ripgrep, tìm kiếm dùng
|
|
16
|
+
index Context Engine đã có; không tự tạo index và có thể chỉ tìm được tệp đã lập
|
|
17
|
+
chỉ mục. Giao diện báo khi không thể tìm kiếm.
|
|
18
|
+
|
|
19
|
+
Tệp được bảo vệ hiện khóa và không mở được. Tệp nhị phân hoặc quá lớn hiện thông
|
|
20
|
+
báo thay cho nội dung. Đường dẫn không an toàn và symlink bị từ chối. Yêu cầu
|
|
21
|
+
company đi qua Gateway của công ty và đọc tệp trong sandbox hiện có của phiên.
|
|
22
|
+
Ghi tệp cũng đi qua boundary này. Trình duyệt không nhận Studio grant.
|
|
23
|
+
|
|
24
|
+
Bộ phân tích JavaScript, TypeScript, JSON, Markdown, Python, HTML và CSS chỉ tải
|
|
25
|
+
khi cần; tệp khác vẫn đọc được dưới dạng văn bản thuần.
|
|
26
|
+
|
|
27
|
+
Khi có quyền ghi, sửa văn bản rồi nhấn **Cmd/Ctrl+S** hoặc **Lưu**. Tab chưa lưu
|
|
28
|
+
có dấu chấm. Đóng tab có thay đổi sẽ hỏi trước khi bỏ; ẩn Tệp hoặc chuyển hội
|
|
29
|
+
thoại vẫn giữ bản sửa trong bộ nhớ trang. Rời trang sẽ cảnh báo bản sửa chưa lưu.
|
|
30
|
+
Bản sửa không được khôi phục sau khi khởi động lại trình duyệt. **Tệp mới** nhận
|
|
31
|
+
đường dẫn tương đối; thư mục chưa có sẽ được tạo khi lưu. Tệp mới có quyền thông
|
|
32
|
+
thường theo umask. **Đổi tên** và **Xóa** áp dụng cho tệp đang mở không có thay đổi
|
|
33
|
+
chưa lưu, và chỉ khi tệp vẫn đúng phiên bản đang hiện: tệp đã đổi trên đĩa, hoặc
|
|
34
|
+
tên mới đã tồn tại, sẽ bị từ chối. Xóa hỏi trước; Git khôi phục được tệp đã commit.
|
|
35
|
+
|
|
36
|
+
Lưu kiểm tra permission profile hiện tại, đường dẫn được bảo vệ/chỉ đọc và digest
|
|
37
|
+
của tệp. Nếu tệp đã đổi, chọn **Tải lại**, **Xem khác biệt** hoặc **Ghi đè**.
|
|
38
|
+
Ghi đè cần xác nhận và vẫn kiểm tra phiên bản đang hiện trong hộp thoại. Khi mất
|
|
39
|
+
kết nối, bản sửa được giữ; lưu lại dùng cùng command để không ghi hai lần. Nếu
|
|
40
|
+
kết quả chưa xác định, giao diện yêu cầu tải lại và kiểm tra trước.
|
|
41
|
+
|
|
42
|
+
Giao diện báo khi agent đang chạy. Member lưu thành công sẽ làm mới Source Changes
|
|
43
|
+
và đưa ghi chú tên các tệp đã sửa vào lượt agent tiếp theo. Agent đã đọc phiên bản
|
|
44
|
+
cũ phải đọc lại trước khi edit/write. Company dùng chung hàng đợi đọc/ghi với agent
|
|
45
|
+
trong sandbox hiện có. Quyền chỉ đọc tắt lưu; máy chủ kiểm tra lại quyền mỗi lần lưu.
|
|
46
|
+
|
|
47
|
+
## Review thay đổi của agent
|
|
48
|
+
|
|
49
|
+
Tệp đang mở hiện hunk đã xác minh của agent bằng dòng thêm, khối dòng đã xóa và dấu
|
|
50
|
+
ở lề. Mỗi tab đang mở hiện số hunk còn lại. **Alt+ArrowDown/Up** chuyển giữa các hunk.
|
|
51
|
+
**Giữ** bỏ hunk khỏi danh sách review mà không sửa tệp; lựa chọn còn sau khi đóng
|
|
52
|
+
ngăn kéo và tải lại trang trên trình duyệt này (chỉ lưu đường dẫn, digest và mã
|
|
53
|
+
hunk, không lưu code), nội dung mới cần review lại.
|
|
54
|
+
|
|
55
|
+
**Hoàn tác** mở preview và cần xác nhận. Thao tác dùng luồng source revert có guard
|
|
56
|
+
hiện có, giữ nguyên Git index. Nếu mất phản hồi, **Kiểm tra lại** hỏi kết quả cùng
|
|
57
|
+
command. Không thể hoàn tác hunk trộn thay đổi member/agent, nội dung cũ, đường dẫn
|
|
58
|
+
được bảo vệ hoặc thay đổi chưa hỗ trợ. Tệp untracked mới do agent tạo có thể review
|
|
59
|
+
và Giữ; chưa hỗ trợ xóa tệp qua hoàn tác. Tệp có sẵn của member không bị coi toàn bộ
|
|
60
|
+
là do agent tạo.
|
|
61
|
+
|
|
62
|
+
Hoạt động của agent làm mới tệp đang mở chưa có bản sửa. Bản sửa chưa lưu được giữ
|
|
63
|
+
và hiện lựa chọn xung đột như khi lưu. Dấu hunk ẩn khi đang sửa bản nháp.
|
|
64
|
+
**Comment dòng hiện tại** hoặc **Cmd/Ctrl+Shift+M** mở LineReview. Dòng đã xóa có nút
|
|
65
|
+
comment riêng, giữ đúng số dòng cũ và nội dung. **Đưa vào ô chat** nối comment vào
|
|
66
|
+
bản nháp; gửi tin nhắn để yêu cầu agent xử lý.
|
|
67
|
+
|
|
68
|
+
Việc xác định hunk cần write/edit/patch được quan sát chính xác trong phiên và diff
|
|
69
|
+
hiện tại đầy đủ, chưa che nội dung. CRLF và thiếu newline cuối được so sánh chính
|
|
70
|
+
xác. Sửa qua shell chưa được quan sát hoặc quan sát mất khi runtime khởi động lại
|
|
71
|
+
không nhận dấu hunk agent. Company review và hoàn tác trong sandbox của phiên.
|
|
72
|
+
|
|
73
|
+
## Terminal personal
|
|
74
|
+
|
|
75
|
+
Chọn **Terminal** cạnh Tệp, rồi **+** để mở shell của member trong project của
|
|
76
|
+
cuộc trò chuyện. Mỗi cuộc trò chuyện có tối đa bốn tab. Panel nằm dưới editor trên
|
|
77
|
+
màn rộng và mở drawer bên dưới trên màn hẹp. Kéo thanh phân cách để đổi chiều cao,
|
|
78
|
+
hoặc focus vào thanh và dùng phím mũi tên. Terminal theo theme hiện tại;
|
|
79
|
+
Ctrl+C ngắt lệnh đang chạy ở foreground.
|
|
80
|
+
|
|
81
|
+
Lệnh tự gõ chạy với quyền host của member, không hỏi duyệt như lệnh agent.
|
|
82
|
+
Terminal personal không phải sandbox. Đóng terminal, release hoặc restart phiên,
|
|
83
|
+
hay tắt Gateway sẽ dừng process group và mọi tiến trình khởi chạy từ terminal.
|
|
84
|
+
Cây tiến trình của shell được theo dõi khi shell chạy, nên job chạy nền (`cmd &`
|
|
85
|
+
rồi `exit`) cũng dừng theo terminal; tiến trình cần sống lâu hơn terminal nên được
|
|
86
|
+
khởi chạy ở nơi khác.
|
|
87
|
+
|
|
88
|
+
Lệnh in nhanh hơn trình duyệt vẽ kịp (`yes`, `cat` một file lớn) được giãn nhịp:
|
|
89
|
+
terminal tạm dừng chương trình đang ghi trong lúc trang đuổi kịp, và phần output
|
|
90
|
+
trang không theo kịp được thay bằng dấu `[… output skipped …]`. Cuộc trò chuyện
|
|
91
|
+
dùng chung kết nối không bị gián đoạn.
|
|
92
|
+
|
|
93
|
+
Ẩn panel hoặc reload trang giữ shell khi runtime Gateway vẫn còn sống. Mở lại
|
|
94
|
+
phát lại tối đa 64 KB output đã giữ của mỗi tab. Bản phát lại và phần đính cho agent
|
|
95
|
+
che secret nhận diện được; terminal trực tiếp hiển thị output gốc cho member.
|
|
96
|
+
Restart Gateway xóa terminal và buffer. Nếu mất biên nhận lệnh, input tạm dừng:
|
|
97
|
+
**Kiểm tra lại lệnh** hỏi về đúng lệnh cũ. Kiểm tra terminal trước khi chọn
|
|
98
|
+
**Đã kiểm tra, tiếp tục**. Lệnh chờ còn trong bộ nhớ trang khi đổi panel, không còn
|
|
99
|
+
sau khi reload trang.
|
|
100
|
+
|
|
101
|
+
Gõ `@terminal` (terminal 1) hoặc `@terminal:2` trong composer, rồi bấm Gửi để đính
|
|
102
|
+
output hiện tại đã che secret. Mention lặp chỉ đính một lần, tối đa bốn tab với
|
|
103
|
+
tổng 64 KB output. Mention tới terminal chưa mở thì không đính gì và tin nhắn vẫn
|
|
104
|
+
được gửi như đã viết. Output được trích
|
|
105
|
+
như dữ liệu không đáng tin; chỉ gõ mention chưa gửi gì. Số tab tăng trong runtime
|
|
106
|
+
và không dùng lại sau khi đóng.
|
|
107
|
+
|
|
108
|
+
Module PTY native là tùy chọn và có thể không khả dụng. Panel báo lý do và
|
|
109
|
+
`piagent-doctor --json` có `productReadiness.personalTerminal`; các phần dashboard
|
|
110
|
+
khác vẫn dùng được. Doctor kiểm tra việc nạp module, không khẳng định đã thử mở
|
|
111
|
+
shell; shell không khởi động được sẽ được báo khi mở terminal. Thao tác bị từ chối
|
|
112
|
+
trước khi chạy gì (không có thư mục project, terminal đã thoát) được báo đúng như
|
|
113
|
+
vậy thay vì "lệnh có thể đã chạy". Chưa hỗ trợ Windows native; dùng WSL.
|
|
114
|
+
|
|
115
|
+
|
|
116
|
+
## Terminal company
|
|
117
|
+
|
|
118
|
+
Cuộc trò chuyện company dùng cùng panel terminal qua Gateway công ty, kể cả khi
|
|
119
|
+
mở từ dashboard personal. Shell chạy trong tool boundary của cuộc trò chuyện:
|
|
120
|
+
bubblewrap trên Linux và WSL, Seatbelt trên macOS. Shell không có internet, package
|
|
121
|
+
proxy hoặc Docker. Ghi được vào project, thư mục Git của nó, cache package của
|
|
122
|
+
project và thư mục tạm riêng, giống lệnh offline của agent; profile read-only giữ
|
|
123
|
+
project chỉ đọc. File credential bị che, đường dẫn được bảo vệ giữ giới hạn của boundary.
|
|
124
|
+
Shell là Bash không nạp file khởi động hoặc cấu hình shell của member.
|
|
125
|
+
|
|
126
|
+
Mỗi cuộc trò chuyện có tối đa bốn terminal. Đóng terminal, release cuộc trò chuyện
|
|
127
|
+
hoặc tắt Gateway công ty sẽ dừng sandbox và mọi tiến trình con, kể cả tiến trình
|
|
128
|
+
đã tách riêng. Ẩn panel và reload trình duyệt giữ terminal khi runtime company
|
|
129
|
+
còn sống. Mất kết nối relay tạm tắt input và tự nối lại để đọc trạng thái, phát lại
|
|
130
|
+
output; không tự gửi lại lệnh. Mention terminal được đính bên trong Gateway
|
|
131
|
+
công ty; Studio grant cũng chỉ ở đó.
|
|
132
|
+
|
|
133
|
+
Trên macOS, Seatbelt từ chối tạo PTY, nên Gateway công ty tạo PTY và chỉ khởi
|
|
134
|
+
chạy shell trong profile Seatbelt offline của agent. Profile đó thêm hai quy tắc:
|
|
135
|
+
lệnh điều khiển terminal trên thiết bị terminal, và `/dev/tty`. Shell chỉ chạm được
|
|
136
|
+
terminal được giao cho nó; mở terminal khác vẫn bị chặn. Không bao giờ có shell
|
|
137
|
+
company chạy trên host. Chưa hỗ trợ Windows native; dùng WSL.
|
|
138
|
+
|
|
139
|
+
`piagent-doctor --json` có `productReadiness.companyTerminal`. Kết quả supported
|
|
140
|
+
chỉ kiểm file runtime và điều kiện tiên quyết (`ptySpawnVerified: false`), không
|
|
141
|
+
khẳng định máy này đã mở được PTY trong sandbox. Luồng đầy đủ Gateway, relay và
|
|
142
|
+
trình duyệt đã được kiểm chứng trên Linux arm64 trong Docker và trên macOS arm64.
|
|
143
|
+
Chưa kiểm chứng riêng Linux x64 native và WSL.
|
|
144
|
+
|
|
145
|
+
## Khôi phục một lượt agent
|
|
146
|
+
|
|
147
|
+
Trong project Git, lượt đã kết thúc và có đổi file sẽ có nút **Khôi phục về trước
|
|
148
|
+
lượt này** trong Timeline. Mở để xem trước các file bị ảnh hưởng và số lượt, rồi
|
|
149
|
+
chọn **Xác nhận khôi phục**. Hệ thống hoàn tác từ lượt mới nhất về lượt đã chọn,
|
|
150
|
+
xóa file do các lượt đó tạo và trả nội dung file đã sửa về trước đó. HEAD, commit
|
|
151
|
+
tạo trong lượt và vùng stage của member được giữ nguyên.
|
|
152
|
+
|
|
153
|
+
Nếu member đã sửa lại file bị ảnh hưởng sau lượt đó, khôi phục dừng ở lượt đó và
|
|
154
|
+
nêu tên file xung đột. Các lượt mới hơn an toàn có thể đã được khôi phục; kết quả
|
|
155
|
+
cho biết số lượt. Agent đang chạy, preview đã thay đổi hoặc quyền ghi bị thu hồi
|
|
156
|
+
thì cần xem trước lại. Đường dẫn protected và read-only vẫn giữ giới hạn.
|
|
157
|
+
Project không dùng Git thì không có checkpoint.
|
|
158
|
+
|
|
159
|
+
File member lưu từ editor sau khi một lượt bắt đầu được coi là của member: khôi
|
|
160
|
+
phục lượt đó sẽ báo file này là xung đột thay vì đưa nó về bản cũ. File có trên đĩa
|
|
161
|
+
nhưng nằm ngoài snapshot hiện tại (bị ignore sau lượt đó, hoặc file chưa track quá
|
|
162
|
+
lớn để chụp) cũng bị từ chối như vậy. Nếu một lần khôi phục dừng giữa chừng, bản
|
|
163
|
+
xem trước mới chỉ liệt kê phần còn lại: file đã trở về như trước được tính là xong,
|
|
164
|
+
không phải xung đột. Từ chối trước khi đổi file nào được báo là từ chối, không phải
|
|
165
|
+
không chắc. Thư mục do lượt đó tạo và bị khôi phục làm rỗng sẽ được xóa. Mọi lệnh
|
|
166
|
+
shell không chứng minh được là chỉ đọc đều chụp checkpoint của lượt trước khi chạy. Sửa đổi gõ
|
|
167
|
+
trong terminal không được theo dõi theo cách này; kiểm tra thay đổi sau lượt vẫn
|
|
168
|
+
từ chối file bị sửa sau khi lượt kết thúc.
|
|
169
|
+
|
|
170
|
+
Pi TUI personal cũng có `/undo` để hoàn tác lượt gần nhất mà không gọi model.
|
|
171
|
+
Lịch sử personal giữ tối đa 64 checkpoint cho mỗi project và session trong file
|
|
172
|
+
chỉ chủ sở hữu truy cập được ở `.pi/piagent-state/checkpoints`; cuộc trò chuyện
|
|
173
|
+
không dùng trong 30 ngày sẽ mất checkpoint. Snapshot nằm trong một repository
|
|
174
|
+
riêng bên trong thư mục Git (`.git/piagent/checkpoints.git`), dùng chung object
|
|
175
|
+
của project nhưng có ref riêng: `git push --mirror` không bao giờ đẩy chúng lên,
|
|
176
|
+
và garbage collection của project không xóa chúng. Snapshot gồm file đã track với
|
|
177
|
+
mọi kích thước, bỏ qua file chưa track lớn hơn 100 MB và không gồm submodule;
|
|
178
|
+
hoàn tác không bao giờ đụng vào phần snapshot bỏ qua. Khi không chụp được
|
|
179
|
+
snapshot, agent vẫn sửa file bình thường; lượt đó không có checkpoint và các
|
|
180
|
+
checkpoint trước bị bỏ, vì khôi phục vượt qua lượt đó sẽ tạo ra trạng thái chưa
|
|
181
|
+
từng được ghi lại. Chỉ khi một runtime khác đang giữ lịch sử của cùng session
|
|
182
|
+
thì lần sửa mới phải chờ. Nếu runtime personal dừng trước snapshot cuối
|
|
183
|
+
lượt, phục hồi giữ nguyên các file đã sửa và chỉ bỏ metadata checkpoint chưa
|
|
184
|
+
hoàn tất. Checkpoint của các lượt đã kết thúc vẫn kiểm tra xung đột với thay đổi
|
|
185
|
+
của member. Thao tác checkpoint company chạy trong sandbox
|
|
186
|
+
hiện có; lịch sử company tồn tại trong vòng đời runtime.
|
|
187
|
+
|
|
188
|
+
Nếu trình duyệt mất phản hồi khôi phục, **Kiểm tra lại kết quả** gửi đúng khóa yêu
|
|
189
|
+
cầu cũ. Yêu cầu đang chờ còn sau khi reload cùng tab; reload không tự gửi yêu cầu.
|
|
190
|
+
Giữ tab đó đến khi biết kết quả. Nếu trình duyệt không lưu được yêu cầu đang chờ,
|
|
191
|
+
hệ thống từ chối gửi lần khôi phục mới. Kết quả chưa xác nhận có thể đã đổi file:
|
|
192
|
+
kiểm tra file trước khi tiếp tục. Kiểm tra cùng yêu cầu không tự chạy lại thao tác
|
|
193
|
+
file có kết quả chưa rõ. Nếu chỉ một số file đã đổi hoặc lưu lịch sử thất bại,
|
|
194
|
+
checkpoint còn giữ có thể báo xung đột; kiểm tra và xử lý file trước khi thử
|
|
195
|
+
khôi phục với preview mới.
|
|
196
|
+
|
|
197
|
+
|
|
198
|
+
## Thử trọn luồng làm việc
|
|
199
|
+
|
|
200
|
+
Dùng project Git thử nghiệm đã có commit đầu tiên và lệnh test đang chạy thành công.
|
|
201
|
+
Với personal, mở project trong `piagent dashboard`. Với company, chọn cuộc hội thoại
|
|
202
|
+
company của project.
|
|
203
|
+
|
|
204
|
+
1. Mở file tracked trong Tệp, sửa nhỏ và lưu bằng Cmd/Ctrl+S.
|
|
205
|
+
2. Mở Terminal, chạy lệnh test của project và kiểm tra mã thoát.
|
|
206
|
+
3. Giữ một file tracked khác đang mở. Nhờ agent đọc và sửa file bằng edit/write.
|
|
207
|
+
Sau lượt đó, kiểm tra dòng thêm và dòng xóa ngay trong editor.
|
|
208
|
+
4. Chọn Giữ và kiểm tra nội dung file không đổi. Nhờ agent ở lượt thứ hai tạo một
|
|
209
|
+
file nhỏ mới. Tránh sửa qua shell khi kiểm tra việc xác định hunk agent.
|
|
210
|
+
5. Ở lượt agent đầu tiên, chọn Khôi phục về trước lượt này. Kiểm tra preview liệt
|
|
211
|
+
kê cả hai lượt và hai file, rồi xác nhận.
|
|
212
|
+
6. Kiểm tra file ban đầu đã được trả lại, file mới đã bị xóa và bản sửa đã lưu ở
|
|
213
|
+
bước 1 vẫn còn. HEAD và vùng stage giữ nguyên.
|
|
214
|
+
|
|
215
|
+
Kịch bản soak `ide-editor-terminal` kiểm tra riêng việc lưu editor có guard và chạy
|
|
216
|
+
test trong terminal qua giao thức WebUI. Self-check của oracle và test transport
|
|
217
|
+
không tự chứng minh đã hoàn thành một lượt chạy với model thật.
|
|
@@ -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.
|
|
33
|
+
<span class="pill"><span class="pill-dot"></span>v1.38.2 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.
|
|
33
|
+
<span class="pill"><span class="pill-dot"></span>v1.38.2 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.
|
|
33
|
+
<span class="pill"><span class="pill-dot"></span>v1.38.2 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.
|
|
2
|
+
<p class="eyebrow">Piagent 1.38.2</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.
|
|
16
|
+
<a class="button" href="/en/whats-new">What’s new in 1.38.2</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.
|
|
92
|
+
<span class="card-kicker">Release 1.38.2</span>
|
|
93
93
|
<h3>What’s new</h3>
|
|
94
|
-
<p>A run Studio did not confirm closed is no longer recorded closed, a helper whose close fails keeps its answer, and team-memory lessons name the right command; in 1.37.0: an answer cut mid-stream no longer stops a long task, and <code>piagent studio --rpc</code>; in 1.36.1: a moment when Agent Watch cannot reach Studio no longer stops a task; in 1.36.0: team memory learns from what went wrong: Studio rates what memory handed over, a repeated command failure becomes a lesson; in 1.35: 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>
|
|
94
|
+
<p>A VS Code-style folder tree, colour themes (Dracula, Nord…), and an editor and terminal that stay in view; in 1.38.1: the dashboard becomes an editor: file edits, terminals, inline hunk review and turn restore; Bypass that asks nothing, in company conversations too when the Harness allows it; in 1.37.1: a run Studio did not confirm closed is no longer recorded closed, a helper whose close fails keeps its answer, and team-memory lessons name the right command; in 1.37.0: an answer cut mid-stream no longer stops a long task, and <code>piagent studio --rpc</code>; in 1.36.1: a moment when Agent Watch cannot reach Studio no longer stops a task; in 1.36.0: team memory learns from what went wrong: Studio rates what memory handed over, a repeated command failure becomes a lesson; in 1.35: 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,26 @@
|
|
|
1
|
+
<section class="section">
|
|
2
|
+
<p class="section-kicker">v1.38.2 · 2026-10-23</p>
|
|
3
|
+
<h2 id="v1-38-2">A folder tree as in VS Code, and colour themes</h2>
|
|
4
|
+
<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>
|
|
5
|
+
</section>
|
|
6
|
+
|
|
7
|
+
<section class="section">
|
|
8
|
+
<p class="section-kicker">v1.38.1 · 2026-10-23</p>
|
|
9
|
+
<h2 id="v1-38-1">The dashboard becomes an editor, and Bypass asks nothing</h2>
|
|
10
|
+
<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>
|
|
11
|
+
</section>
|
|
12
|
+
|
|
13
|
+
<section class="section">
|
|
14
|
+
<p class="section-kicker">Unreleased</p>
|
|
15
|
+
<h2 id="unreleased-workspace">Edit project files beside chat</h2>
|
|
16
|
+
<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>
|
|
17
|
+
<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>
|
|
18
|
+
<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>
|
|
19
|
+
<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>
|
|
20
|
+
<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>
|
|
21
|
+
<p>Company inline review now retains exact agent hunks across internal diff refreshes.</p>
|
|
22
|
+
</section>
|
|
23
|
+
|
|
1
24
|
<section class="section">
|
|
2
25
|
<p class="section-kicker">v1.37.1 · 2026-10-22</p>
|
|
3
26
|
<h2 id="v1-37-1">Closes Studio can trust</h2>
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
<section class="hero">
|
|
2
|
-
<p class="eyebrow">Piagent 1.
|
|
2
|
+
<p class="eyebrow">Piagent 1.38.2</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.
|
|
16
|
+
<a class="button" href="/whats-new">Có gì mới trong 1.38.2</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.
|
|
92
|
+
<span class="card-kicker">Bản 1.38.2</span>
|
|
93
93
|
<h3>Có gì mới</h3>
|
|
94
|
-
<p>
|
|
94
|
+
<p>Cây thư mục như VS Code, theme màu (Dracula, Nord…), editor và terminal đứng yên khi cuộn; ở 1.38.1: dashboard thành editor: sửa file, terminal, review hunk, khôi phục lượt; Bypass không hỏi gì, cả cuộc trò chuyện công ty khi Harness bật; ở 1.37.1: run Studio chưa xác nhận đóng không còn bị ghi là đã đóng, helper đóng lỗi vẫn giữ câu trả lời, bài học team memory ghi đúng lệnh; ở 1.37.0: câu trả lời bị cắt giữa chừng không còn làm dừng task dài, có <code>piagent studio --rpc</code>; ở 1.36.1: Agent Watch mất kết nối tới Studio trong chốc lát không còn làm dừng task; ở 1.36.0: team memory học từ chỗ làm sai: Studio chấm những gì memory đã đưa, lệnh lỗi lặp lại thành bài học; ở 1.35: 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,26 @@
|
|
|
1
|
+
<section class="section">
|
|
2
|
+
<p class="section-kicker">v1.38.2 · 2026-10-23</p>
|
|
3
|
+
<h2 id="v1-38-2">Cây thư mục như VS Code, theme màu</h2>
|
|
4
|
+
<p class="section-lead">Khung Tệp là cây thư mục: thư mục mở ngay tại chỗ, file đang mở được tô sáng. Chọn theme màu trong Cài đặt → Giao diện hoặc bảng lệnh (⌘K): Dracula, One Dark, Monokai, Nord, Tokyo Night, Catppuccin, Gruvbox, Solarized, GitHub; theme đổi màu cả giao diện, cú pháp trong editor và terminal. Editor và terminal đứng yên khi hội thoại dài cuộn xuống, kéo thanh chia để đổi độ rộng; trên điện thoại nút Tệp/Terminal luôn hiện.</p>
|
|
5
|
+
</section>
|
|
6
|
+
|
|
7
|
+
<section class="section">
|
|
8
|
+
<p class="section-kicker">v1.38.1 · 2026-10-23</p>
|
|
9
|
+
<h2 id="v1-38-1">Dashboard thành editor, Bypass không hỏi gì</h2>
|
|
10
|
+
<p class="section-lead">Mở, sửa, lưu, đổi tên và xóa file ngay trên dashboard (Cmd/Ctrl+P, tìm kiếm, xung đột khi file đổi trên đĩa); terminal của project (cả cuộc trò chuyện công ty, chạy trong sandbox, có trên macOS); review từng hunk agent sửa ngay trong editor với Giữ và Hoàn tác; Timeline khôi phục về trước một lượt, cá nhân và công ty dùng chung checkpoint với <code>/undo</code>. Giao diện viền vuông như IDE, file và terminal có nút đóng. <strong>Bypass</strong> như Codex: không hỏi, không chặn gì, output vẫn che secret và <code>/undo</code> vẫn hoàn tác được. Cuộc trò chuyện công ty có ba mức Hỏi trước, Toàn quyền (Bypass cũ) và Bypass, khi Harness bật (Agent Studio 0.38.0, Agent Watch 0.15.14 / Windows 0.1.17); admin Studio tắt được.</p>
|
|
11
|
+
</section>
|
|
12
|
+
|
|
13
|
+
<section class="section">
|
|
14
|
+
<p class="section-kicker">Chưa phát hành</p>
|
|
15
|
+
<h2 id="unreleased-workspace">Sửa tệp dự án ngay cạnh chat</h2>
|
|
16
|
+
<p class="section-lead">Session Hub lưu chỉnh sửa bằng Cmd/Ctrl+S, đánh dấu tab chưa lưu và tạo tệp mới. Khi tệp trên đĩa đã đổi, bạn có thể tải lại, so sánh hoặc xác nhận ghi đè. Quyền ghi hiện tại và đường dẫn được bảo vệ được kiểm tra ở cả personal và company; company ghi trong sandbox hiện có. Agent phải đọc lại tệp cũ sau khi member sửa.</p>
|
|
17
|
+
<p>Review thay đổi đã quan sát của agent ngay trong editor: Giữ, Hoàn tác có preview và xác nhận, số hunk và comment theo dòng đưa vào chat. Tệp chưa có bản sửa tự tải lại sau khi agent sửa; bản sửa chưa lưu được giữ. Tệp mới do agent tạo hỗ trợ review; chưa hỗ trợ xóa tệp qua hoàn tác hunk.</p>
|
|
18
|
+
<p>Cuộc trò chuyện personal có tab terminal dưới editor, đổi kích thước, Ctrl+C và phát lại khi reload. Gửi @terminal hoặc @terminal:2 để đính output giới hạn dung lượng đã che secret. Thiếu PTY native được báo mà không tắt dashboard; shell company không bao giờ chuyển sang chạy trên host.</p>
|
|
19
|
+
<p>Cuộc trò chuyện company có terminal trong sandbox Linux/WSL qua Gateway công ty: chặn mạng, che credential và dừng tiến trình con khi release cuộc trò chuyện. Relay nối lại khôi phục output mà không gửi lại lệnh. macOS báo không khả dụng, không mở shell trên host. Luồng đầy đủ đã kiểm chứng trên Linux arm64; Linux x64 native và WSL còn cần kiểm chứng riêng.</p>
|
|
20
|
+
<p>Checkpoint trong Timeline cho xem trước file trước khi khôi phục một hoặc nhiều lượt. Xung đột với sửa đổi của member sẽ dừng khôi phục; commit và vùng stage được giữ nguyên. Cuộc trò chuyện personal cũng có /undo. Khi mất phản hồi trình duyệt, yêu cầu cũ còn qua reload để bạn chủ động kiểm tra kết quả.</p>
|
|
21
|
+
<p>Review inline company giữ được hunk chính xác của agent sau các lần làm mới diff nội bộ.</p>
|
|
22
|
+
</section>
|
|
23
|
+
|
|
1
24
|
<section class="section">
|
|
2
25
|
<p class="section-kicker">v1.37.1 · 2026-10-22</p>
|
|
3
26
|
<h2 id="v1-37-1">Đóng run mà Studio tin được</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.
|
|
33
|
+
<span class="pill"><span class="pill-dot"></span>v1.38.2 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.
|
|
33
|
+
<span class="pill"><span class="pill-dot"></span>v1.38.2 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.
|
|
33
|
+
<span class="pill"><span class="pill-dot"></span>v1.38.2 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.
|
|
33
|
+
<span class="pill"><span class="pill-dot"></span>v1.38.2 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.
|
|
33
|
+
<span class="pill"><span class="pill-dot"></span>v1.38.2 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.
|
|
33
|
+
<span class="pill"><span class="pill-dot"></span>v1.38.2 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>
|