@piagent/platform 1.5.2 → 1.5.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (125) hide show
  1. package/CHANGELOG.md +33 -1
  2. package/README.md +8 -2
  3. package/README.vi.md +23 -1
  4. package/benchmarks/capability-v1/DESIGN.md +30 -0
  5. package/benchmarks/capability-v1/coverage.json +23 -1
  6. package/benchmarks/capability-v1/grade.mjs +246 -0
  7. package/benchmarks/capability-v1/project/apps/web/src/control-view.js +3 -0
  8. package/benchmarks/capability-v1/project/apps/web/src/timeline-view.js +3 -0
  9. package/benchmarks/capability-v1/project/packages/session/src/admission.js +7 -0
  10. package/benchmarks/capability-v1/project/packages/session/src/runtime-route.js +3 -0
  11. package/benchmarks/capability-v1/project/packages/timeline/src/checkpoint.js +7 -0
  12. package/benchmarks/capability-v1/project/packages/timeline/src/project.js +7 -0
  13. package/benchmarks/capability-v1/project/test/smoke.test.js +19 -1
  14. package/benchmarks/capability-v1/prompts/causal-timeline-recovery.md +47 -0
  15. package/benchmarks/capability-v1/prompts/durable-session-control-plane.md +47 -0
  16. package/benchmarks/capability-v1/references/causal-timeline-recovery/apps/web/src/timeline-view.js +9 -0
  17. package/benchmarks/capability-v1/references/causal-timeline-recovery/packages/timeline/src/checkpoint.js +22 -0
  18. package/benchmarks/capability-v1/references/causal-timeline-recovery/packages/timeline/src/project.js +77 -0
  19. package/benchmarks/capability-v1/references/durable-session-control-plane/apps/web/src/control-view.js +4 -0
  20. package/benchmarks/capability-v1/references/durable-session-control-plane/packages/session/src/admission.js +52 -0
  21. package/benchmarks/capability-v1/references/durable-session-control-plane/packages/session/src/runtime-route.js +27 -0
  22. package/benchmarks/capability-v1/rubric.json +26 -0
  23. package/benchmarks/capability-v1/suite.json +32 -4
  24. package/benchmarks/capability-v1/variant.mjs +11 -0
  25. package/benchmarks/deep-logic-v1/grade.mjs +165 -0
  26. package/benchmarks/deep-logic-v1/project/README.md +3 -0
  27. package/benchmarks/deep-logic-v1/project/package.json +6 -0
  28. package/benchmarks/deep-logic-v1/project/src/config-transaction.js +3 -0
  29. package/benchmarks/deep-logic-v1/project/src/context-pack.js +3 -0
  30. package/benchmarks/deep-logic-v1/project/src/event-reconcile.js +3 -0
  31. package/benchmarks/deep-logic-v1/project/src/policy.js +3 -0
  32. package/benchmarks/deep-logic-v1/project/src/scheduler.js +3 -0
  33. package/benchmarks/deep-logic-v1/project/src/stream.js +3 -0
  34. package/benchmarks/deep-logic-v1/project/test/smoke.test.js +20 -0
  35. package/benchmarks/deep-logic-v1/prompts/budgeted-context-graph.md +13 -0
  36. package/benchmarks/deep-logic-v1/prompts/fair-dependency-scheduler.md +13 -0
  37. package/benchmarks/deep-logic-v1/prompts/layered-policy-resolution.md +14 -0
  38. package/benchmarks/deep-logic-v1/prompts/resumable-stream-assembly.md +13 -0
  39. package/benchmarks/deep-logic-v1/prompts/revision-event-reconciliation.md +14 -0
  40. package/benchmarks/deep-logic-v1/prompts/transactional-config-merge.md +13 -0
  41. package/benchmarks/deep-logic-v1/suite.json +95 -0
  42. package/benchmarks/deep-logic-v1/variant.mjs +28 -0
  43. package/docs/command-reference-vietnamese.md +5 -2
  44. package/docs/distribution-standard.md +7 -7
  45. package/docs/languages.json +2 -2
  46. package/docs/operator-manual-vietnamese.md +7 -7
  47. package/docs/publishing-for-teams.md +4 -0
  48. package/docs/quality-benchmark.md +49 -10
  49. package/docs/release-install-policy.md +6 -6
  50. package/docs/security-threat-model.md +1 -1
  51. package/docs/team-onboarding.md +2 -2
  52. package/docs-site/architecture.html +1 -1
  53. package/docs-site/benchmark.html +1 -1
  54. package/docs-site/commands.html +1 -1
  55. package/docs-site/context-engine.html +1 -1
  56. package/docs-site/en/architecture.html +1 -1
  57. package/docs-site/en/benchmark.html +1 -1
  58. package/docs-site/en/commands.html +1 -1
  59. package/docs-site/en/context-engine.html +1 -1
  60. package/docs-site/en/index.html +1 -1
  61. package/docs-site/en/mcp-approval.html +1 -1
  62. package/docs-site/en/mcp-auth.html +1 -1
  63. package/docs-site/en/mcp-servers.html +1 -1
  64. package/docs-site/en/mcp.html +1 -1
  65. package/docs-site/en/permissions.html +1 -1
  66. package/docs-site/en/profiles.html +1 -1
  67. package/docs-site/en/quickstart.html +1 -1
  68. package/docs-site/en/runtime.html +1 -1
  69. package/docs-site/en/scope.html +1 -1
  70. package/docs-site/en/security.html +1 -1
  71. package/docs-site/en/team.html +1 -1
  72. package/docs-site/en/whats-new.html +1 -1
  73. package/docs-site/en/workflows.html +1 -1
  74. package/docs-site/index.html +1 -1
  75. package/docs-site/mcp-approval.html +1 -1
  76. package/docs-site/mcp-auth.html +1 -1
  77. package/docs-site/mcp-servers.html +1 -1
  78. package/docs-site/mcp.html +1 -1
  79. package/docs-site/permissions.html +1 -1
  80. package/docs-site/profiles.html +1 -1
  81. package/docs-site/quickstart.html +1 -1
  82. package/docs-site/runtime.html +1 -1
  83. package/docs-site/scope.html +1 -1
  84. package/docs-site/security.html +1 -1
  85. package/docs-site/team.html +1 -1
  86. package/docs-site/whats-new.html +1 -1
  87. package/docs-site/workflows.html +1 -1
  88. package/evals/fixtures/benchmark-assurance-evidence.invalid.json +2 -2
  89. package/evals/fixtures/benchmark-assurance-evidence.valid.json +2 -2
  90. package/evals/fixtures/piagent-webui/runtime-command-v1.invalid.json +12 -0
  91. package/evals/fixtures/piagent-webui/runtime-command-v1.valid.json +11 -0
  92. package/evals/fs4-readiness-matrix.v1.json +2 -2
  93. package/evals/fs5-causal-arm.v1.json +1 -1
  94. package/evals/fs5-pilot-protocol.v1.json +1 -1
  95. package/evals/fs5-pilot-protocol.v4.json +1 -1
  96. package/evals/fs5-pilot-protocol.v5.json +1 -1
  97. package/evals/private-holdout-v1/public-exposure.v1.json +3 -3
  98. package/evals/real-task-taxonomy.v1.json +5 -1
  99. package/package.json +3 -1
  100. package/packages/piagent-core/benchmark/benchmark-bootstrap.js +3 -2
  101. package/packages/piagent-core/benchmark/benchmark-cli.js +5 -1
  102. package/packages/piagent-core/benchmark/benchmark-matrix.js +1 -1
  103. package/packages/piagent-core/benchmark/benchmark-suite-runtime.js +1 -0
  104. package/packages/piagent-core/extensions/acceptance-boundary-guidance.js +64 -0
  105. package/packages/piagent-core/extensions/acceptance-contract-semantics.js +3 -2
  106. package/packages/piagent-core/package.json +1 -1
  107. package/packages/piagent-core/runtime/quality/performance-assurance.ts +6 -4
  108. package/packages/piagent-core/runtime/registration/task-start-tool.ts +2 -2
  109. package/packages/piagent-core/runtime/workflows/webui-runtime-command.ts +89 -0
  110. package/packages/piagent-core/runtime/workflows/webui-workflow.ts +51 -0
  111. package/packages/piagent-webui/dist/client/assets/{MarkdownMessage-CbUK4gg2.js → MarkdownMessage-BnvXTpou.js} +1 -1
  112. package/packages/piagent-webui/dist/client/assets/index-DZg979Ht.js +174 -0
  113. package/packages/piagent-webui/dist/client/index.html +1 -1
  114. package/packages/piagent-webui/gateway/gateway-service.ts +3 -0
  115. package/packages/piagent-webui/gateway/runtime-command-controller.ts +126 -0
  116. package/packages/piagent-webui/gateway/runtime-session-controls.ts +29 -0
  117. package/packages/piagent-webui/gateway/session-command-controller.ts +23 -7
  118. package/packages/piagent-webui/gateway/session-inspection-registry.ts +22 -1
  119. package/packages/piagent-webui/gateway/session-runtime-supervisor.ts +11 -9
  120. package/packages/piagent-webui/package.json +2 -1
  121. package/packages/piagent-webui/server/loopback-server.ts +17 -0
  122. package/schemas/piagent-webui/catalog-v1.json +9 -0
  123. package/schemas/piagent-webui/runtime-command-v1.schema.json +70 -0
  124. package/schemas/piagent-webui/session-command-v1.schema.json +8 -0
  125. package/packages/piagent-webui/dist/client/assets/index-CNbYWd-R.js +0 -174
@@ -0,0 +1,13 @@
1
+ Implement `planConfigTransaction(base, layers, schema)` in `src/config-transaction.js`.
2
+
3
+ `base` and each layer are plain JSON objects. `schema` maps allowed top-level keys to `{ type, required?, default? }`, where type is `string`, `number`, `boolean`, `object`, or `array`. In layers, `{ "$delete": true }` is the only deletion marker.
4
+
5
+ Requirements:
6
+
7
+ - Never mutate inputs. Reject prototypes other than `Object.prototype`/`null`, unknown keys, non-JSON values, unsafe keys (`__proto__`, `prototype`, `constructor`), invalid deletion markers, and type mismatches.
8
+ - Merge layers in order. Plain objects merge recursively; arrays and scalars replace whole values. A deletion marker removes the key. Defaults are applied only after merging and only when the key is absent. Required keys must then exist.
9
+ - Return `{ next, changes, digest }`. `changes` is a lexicographically path-sorted list of `{ path, before, after, kind }`, where kind is `add`, `replace`, or `delete`; use JSON Pointer escaping for path segments.
10
+ - `digest` is lowercase SHA-256 of canonical JSON for `next`, with object keys recursively sorted and array order preserved.
11
+ - The operation is transactional: any validation failure throws and yields no partial object.
12
+
13
+ Use Node's standard library only. Add focused tests if useful.
@@ -0,0 +1,95 @@
1
+ {
2
+ "schemaVersion": 1,
3
+ "id": "deep-logic-v1",
4
+ "title": "Piagent Deep Logic V1",
5
+ "description": "Paired current-model tasks with interacting invariants across event reconciliation, scheduling, layered policy, graph context, stream recovery, and transactional configuration.",
6
+ "profile": "node-typescript",
7
+ "defaultRepeats": 2,
8
+ "timeoutSeconds": 1200,
9
+ "scenarios": [
10
+ {
11
+ "id": "revision-event-reconciliation",
12
+ "title": "Revision-bound event reconciliation",
13
+ "kind": "source-change",
14
+ "category": "state-management",
15
+ "difficulty": "large",
16
+ "profile": "fullstack",
17
+ "lifecycle": "cold-start",
18
+ "fixture": "project",
19
+ "prompt": "prompts/revision-event-reconciliation.md",
20
+ "grader": "grade.mjs",
21
+ "variantGenerator": "variant.mjs",
22
+ "allowedChanges": ["src/event-reconcile.js", "test/**"]
23
+ },
24
+ {
25
+ "id": "fair-dependency-scheduler",
26
+ "title": "Capacity-bound fair dependency scheduler",
27
+ "kind": "source-change",
28
+ "category": "orchestration",
29
+ "difficulty": "large",
30
+ "profile": "backend-api",
31
+ "lifecycle": "steady-state",
32
+ "fixture": "project",
33
+ "prompt": "prompts/fair-dependency-scheduler.md",
34
+ "grader": "grade.mjs",
35
+ "variantGenerator": "variant.mjs",
36
+ "allowedChanges": ["src/scheduler.js", "test/**"]
37
+ },
38
+ {
39
+ "id": "layered-policy-resolution",
40
+ "title": "Layered fail-closed policy resolution",
41
+ "kind": "source-change",
42
+ "category": "security",
43
+ "difficulty": "large",
44
+ "profile": "backend-api",
45
+ "lifecycle": "cold-start",
46
+ "fixture": "project",
47
+ "prompt": "prompts/layered-policy-resolution.md",
48
+ "grader": "grade.mjs",
49
+ "variantGenerator": "variant.mjs",
50
+ "allowedChanges": ["src/policy.js", "test/**"]
51
+ },
52
+ {
53
+ "id": "budgeted-context-graph",
54
+ "title": "Budgeted graph-aware context selection",
55
+ "kind": "source-change",
56
+ "category": "context-engineering",
57
+ "difficulty": "large",
58
+ "profile": "node-typescript",
59
+ "lifecycle": "steady-state",
60
+ "fixture": "project",
61
+ "prompt": "prompts/budgeted-context-graph.md",
62
+ "grader": "grade.mjs",
63
+ "variantGenerator": "variant.mjs",
64
+ "allowedChanges": ["src/context-pack.js", "test/**"]
65
+ },
66
+ {
67
+ "id": "resumable-stream-assembly",
68
+ "title": "Out-of-order resumable stream assembly",
69
+ "kind": "source-change",
70
+ "category": "reliability",
71
+ "difficulty": "large",
72
+ "profile": "web-frontend",
73
+ "lifecycle": "steady-state",
74
+ "fixture": "project",
75
+ "prompt": "prompts/resumable-stream-assembly.md",
76
+ "grader": "grade.mjs",
77
+ "variantGenerator": "variant.mjs",
78
+ "allowedChanges": ["src/stream.js", "test/**"]
79
+ },
80
+ {
81
+ "id": "transactional-config-merge",
82
+ "title": "Transactional configuration merge and audit plan",
83
+ "kind": "source-change",
84
+ "category": "platform",
85
+ "difficulty": "large",
86
+ "profile": "fullstack",
87
+ "lifecycle": "cold-start",
88
+ "fixture": "project",
89
+ "prompt": "prompts/transactional-config-merge.md",
90
+ "grader": "grade.mjs",
91
+ "variantGenerator": "variant.mjs",
92
+ "allowedChanges": ["src/config-transaction.js", "test/**"]
93
+ }
94
+ ]
95
+ }
@@ -0,0 +1,28 @@
1
+ import crypto from "node:crypto";
2
+ import fs from "node:fs";
3
+
4
+ const [_workspace, oraclePath, seed, scenarioId] = process.argv.slice(2);
5
+ if (!oraclePath || !seed || !scenarioId) throw new Error("variant generator arguments are incomplete");
6
+ let counter = 0;
7
+ const bytes = () => crypto.createHash("sha256").update(`${seed}:${scenarioId}:${counter += 1}`).digest();
8
+ const integer = (minimum, maximum) => minimum + bytes().readUInt32BE(0) % (maximum - minimum + 1);
9
+ const token = (prefix) => `${prefix}-${bytes().toString("hex").slice(0, 8)}`;
10
+ const oracle = { schemaVersion: 1, graderData: {} };
11
+
12
+ switch (scenarioId) {
13
+ case "revision-event-reconciliation": {
14
+ const key = token("feature"), start = integer(3, 30);
15
+ oracle.graderData = { key, start, revisions: [token("rev"), token("rev"), token("rev")] };
16
+ break;
17
+ }
18
+ case "fair-dependency-scheduler": oracle.graderData = {
19
+ capacity: integer(3, 6), tenants: [token("tenant"), token("tenant"), token("tenant")]
20
+ }; break;
21
+ case "layered-policy-resolution": oracle.graderData = { protectedPath: `private/${token("vault")}/secret.json`, operation: token("read") }; break;
22
+ case "budgeted-context-graph": oracle.graderData = { term: token("resolver"), budget: integer(8, 14) }; break;
23
+ case "resumable-stream-assembly": oracle.graderData = { first: token("hello"), second: token("world"), message: token("message") }; break;
24
+ case "transactional-config-merge": oracle.graderData = { key: token("feature"), value: token("enabled") }; break;
25
+ default: throw new Error(`unsupported deep logic scenario ${scenarioId}`);
26
+ }
27
+
28
+ fs.writeFileSync(oraclePath, `${JSON.stringify(oracle)}\n`, { mode: 0o600 });
@@ -502,8 +502,8 @@ Các lệnh này chạy ngoài Pi.
502
502
  | Command | Dùng khi nào |
503
503
  |---|---|
504
504
  | `npm install -g --ignore-scripts @earendil-works/pi-coding-agent@0.84.1` | Cài Pi CLI tương thích với release hiện tại. |
505
- | `npm install -g --ignore-scripts @piagent/platform@1.5.2` | Cài terminal helper `piagent-*` từ release tag hiện tại. |
506
- | `pi install git:github.com/Vt-mmm/piagent@v1.5.2` | Cài pinned release khi cần reproducible team setup. |
505
+ | `npm install -g --ignore-scripts @piagent/platform@1.5.3` | Cài terminal helper `piagent-*` từ release tag hiện tại. |
506
+ | `pi install git:github.com/Vt-mmm/piagent@v1.5.3` | Cài pinned release khi cần reproducible team setup. |
507
507
  | `pi install git:github.com/Vt-mmm/piagent` | Cài latest package platform cho máy cá nhân/sandbox. |
508
508
  | `piagent-update --check` | Báo version hiện tại vs version sẽ lên cho cả ba thành phần; không cài gì. |
509
509
  | `piagent-update` | Full update global một lệnh cho cả máy: Pi host → npm-global helper → Pi package, đúng thứ tự release yêu cầu. |
@@ -549,6 +549,8 @@ Các lệnh này chạy ngoài Pi.
549
549
  | `piagent-uninstall --apply --project /path/to/project` | Gỡ thêm state của platform trong project: profile, lock, `piagent-state/`. |
550
550
  | `piagent-benchmark` | Chạy smoke suite `core-v1`: paired Raw Pi/Piagent, 24 session, hidden grader + scope + workflow + exact usage. |
551
551
  | `piagent-benchmark --dry-run` | Validate suite và xem số model session, không gọi model. |
552
+ | `npm run benchmark:deep -- --dry-run` | Validate `deep-logic-v1`: 6 family difficulty large x 2 repeat x Piagent/`codex-cli` = 24 session, pin Luna/medium và chưa dùng quota. |
553
+ | `npm run benchmark:deep` | Chạy paired deep-logic benchmark Luna/medium cho event/state, scheduler, policy, context graph, stream recovery và transactional config. |
552
554
  | `piagent-benchmark --production --dry-run` | Xem ma trận production 18 family x 3 variant x 2 surface = 108 session, chưa dùng quota. |
553
555
  | `piagent-benchmark --production --surfaces piagent,codex-cli --model <provider/model> --thinking high --piagent-treatment candidate` | Chạy production release gate đa domain/profile/lifecycle với controlled Codex, treatment Piagent đã pin, paired outcome và 95% token-ratio confidence. |
554
556
  | `piagent-benchmark --piagent-treatment release-defaults\|local-safe\|candidate\|feature-off ...` | Pin treatment Piagent; chỉ surface `piagent` nhận feature env, manifest/resume/replay/report giữ nguyên treatment. |
@@ -574,6 +576,7 @@ Khi đang develop chính repo `piagent`, có thể dùng npm scripts tương ứ
574
576
  | `npm run init-project -- <project>` | `bash scripts/init-project.sh <project>` |
575
577
  | `npm run doctor -- <project> --strict-share` | `bash scripts/team-doctor.sh <project> --strict-share` |
576
578
  | `npm run benchmark -- ...` | `node scripts/benchmark-runner.mjs ...` |
579
+ | `npm run benchmark:webui-parity` | Gate provider-free cho 10 workflow, 32 Project Controls, contract/security, Chromium flow và ba cỡ performance stress. |
577
580
  | `npm run usage -- <project>` | `bash scripts/pi-session-stats.sh <project>` |
578
581
  | `npm run usage -- --history <project> --days 7` | `bash scripts/pi-session-stats.sh --history <project> --days 7` |
579
582
  | `npm run models` | `bash scripts/pi-model-catalog.sh` |
@@ -15,9 +15,9 @@ Repo này phải chạy được cho nhiều project/domain khác nhau. Vì vậ
15
15
 
16
16
  | Use case | Package source |
17
17
  |---|---|
18
- | Team pinned release | `git:github.com/Vt-mmm/piagent@v1.5.2` |
18
+ | Team pinned release | `git:github.com/Vt-mmm/piagent@v1.5.3` |
19
19
  | Personal/sandbox dev | `git:github.com/Vt-mmm/piagent` |
20
- | Registry distribution | `npm:@piagent/platform@1.5.2` |
20
+ | Registry distribution | `npm:@piagent/platform@1.5.3` |
21
21
  | Enterprise npm (fork under another scope) | `npm:@your-scope/platform@x.y.z` |
22
22
  | Local platform dev | `/path/to/piagent` |
23
23
 
@@ -27,7 +27,7 @@ Latest tiện cho máy cá nhân muốn nhận cập nhật nhanh. Pin tag/commi
27
27
 
28
28
  | Channel | Command | Target | Policy |
29
29
  |---|---|---|---|
30
- | `stable` | `bash scripts/install-global.sh --stable` | Helper release tag resolved to commit SHA, currently `v1.5.0` | Install the Pi package matching the helper. |
30
+ | `stable` | `bash scripts/install-global.sh --stable` | Helper release tag resolved to commit SHA, currently `v1.5.3` | Install the Pi package matching the helper. |
31
31
  | `exact` | `bash scripts/install-global.sh --version vX.Y.Z --resolve-tag` | Requested tag resolved to commit SHA | Pi-package-only rollout, rollback, and incident recovery. |
32
32
  | `dev` | `bash scripts/install-global.sh --dev` | Moving Git source | Personal/sandbox only; do not commit into project settings. |
33
33
  | `local` | `bash scripts/install-global.sh --local` | Current checkout path | Platform development only. |
@@ -54,7 +54,7 @@ Root `package.json` có `pi` manifest trỏ tới:
54
54
  Do đó team có thể:
55
55
 
56
56
  ```bash
57
- pi install git:github.com/Vt-mmm/piagent@v1.5.2
57
+ pi install git:github.com/Vt-mmm/piagent@v1.5.3
58
58
  ```
59
59
 
60
60
  Không cần biết internal folder `packages/piagent-core`. Source không pin chỉ dành cho personal/sandbox như bảng channel ở trên.
@@ -66,12 +66,12 @@ Team nên install global package một lần:
66
66
  ```bash
67
67
  node --version # >= 22.19.0
68
68
  npm install -g --ignore-scripts @earendil-works/pi-coding-agent@0.84.1
69
- npm install -g --ignore-scripts @piagent/platform@1.5.2
69
+ npm install -g --ignore-scripts @piagent/platform@1.5.3
70
70
  piagent-install --stable --dry-run
71
71
  piagent-install --stable
72
72
  ```
73
73
 
74
- `pi install git:github.com/Vt-mmm/piagent@v1.5.2` vẫn hợp lệ nếu chỉ cần cài Pi package. Lệnh đó không tự tạo các binary terminal `piagent-*`; muốn có helper global thì dùng `npm install -g --ignore-scripts @piagent/platform@1.5.2`.
74
+ `pi install git:github.com/Vt-mmm/piagent@v1.5.3` vẫn hợp lệ nếu chỉ cần cài Pi package. Lệnh đó không tự tạo các binary terminal `piagent-*`; muốn có helper global thì dùng `npm install -g --ignore-scripts @piagent/platform@1.5.3`.
75
75
 
76
76
  Support matrix hiện tại: macOS Apple Silicon + Bash và Linux x64 + Bash đã được verify; macOS Intel + Bash và Linux ARM64 + Bash là supported target cần chạy smoke trước rollout; native Windows chưa phải target rollout team; WSL2 experimental. Chi tiết và version runtime nằm trong [release/install policy](release-install-policy.md).
77
77
 
@@ -121,7 +121,7 @@ Nếu muốn commit sẵn `.pi/piagent-profile.json` vào repo hoặc bootstrap
121
121
  ```bash
122
122
  bash scripts/setup.sh /path/to/project \
123
123
  --profile be-readonly-fe \
124
- --package-source git:github.com/Vt-mmm/piagent@v1.5.2 \
124
+ --package-source git:github.com/Vt-mmm/piagent@v1.5.3 \
125
125
  --mcp-preset core \
126
126
  --subagents-preset safe
127
127
  ```
@@ -21,8 +21,8 @@
21
21
  "en": "README.md",
22
22
  "vi": "README.vi.md",
23
23
  "consistentAt": {
24
- "en": "d43e299f4a6c19036ffc8ccd8b922f4f285c8ad1",
25
- "vi": "f83cdbf97ca58523135c9c24a58b50713e90f02d"
24
+ "en": "4b671ff0316632e3aa0c4afde18d0c9087f266cc",
25
+ "vi": "ac115e73a1489500769c362b24d5490b8c5a4dbc"
26
26
  }
27
27
  },
28
28
  {
@@ -19,12 +19,12 @@ Support matrix release hiện tại: macOS Apple Silicon + Bash và Linux x64 +
19
19
  ```bash
20
20
  node --version # >= 22.19.0
21
21
  npm install -g --ignore-scripts @earendil-works/pi-coding-agent@0.84.1
22
- npm install -g --ignore-scripts @piagent/platform@1.5.2
22
+ npm install -g --ignore-scripts @piagent/platform@1.5.3
23
23
  piagent-install --stable --dry-run
24
24
  piagent-install --stable
25
25
  ```
26
26
 
27
- Khi seed `.pi/settings.json` cho team/repo cần audit lặp lại, giữ package source dạng pinned tag như `git:github.com/Vt-mmm/piagent@v1.5.2`. Máy cá nhân có thể dùng `git:github.com/Vt-mmm/piagent` để theo latest.
27
+ Khi seed `.pi/settings.json` cho team/repo cần audit lặp lại, giữ package source dạng pinned tag như `git:github.com/Vt-mmm/piagent@v1.5.3`. Máy cá nhân có thể dùng `git:github.com/Vt-mmm/piagent` để theo latest.
28
28
 
29
29
  Nếu đang ở source checkout của platform, dùng helper theo channel để preview trước khi đổi:
30
30
 
@@ -100,7 +100,7 @@ install package once
100
100
 
101
101
  ```bash
102
102
  npm install -g --ignore-scripts @earendil-works/pi-coding-agent@0.84.1
103
- npm install -g --ignore-scripts @piagent/platform@1.5.2
103
+ npm install -g --ignore-scripts @piagent/platform@1.5.3
104
104
  piagent-install --stable --dry-run
105
105
  piagent-install --stable
106
106
  ```
@@ -283,7 +283,7 @@ Không phải daily default. Dùng khi muốn tạo sẵn `.pi` files cho projec
283
283
  bash /path/to/piagent/scripts/setup.sh /path/to/project \
284
284
  --project-only \
285
285
  --profile auto \
286
- --package-source git:github.com/Vt-mmm/piagent@v1.5.2 \
286
+ --package-source git:github.com/Vt-mmm/piagent@v1.5.3 \
287
287
  --mcp-preset core \
288
288
  --subagents-preset safe
289
289
  ```
@@ -1042,8 +1042,8 @@ Watchdog là optional adversarial reviewer ở cuối turn, không bật mặc
1042
1042
 
1043
1043
  | Command | Dùng để |
1044
1044
  |---|---|
1045
- | `npm install -g --ignore-scripts @piagent/platform@1.5.2` | Cài terminal helper `piagent-*` từ release tag hiện tại. |
1046
- | `pi install git:github.com/Vt-mmm/piagent@v1.5.2` | Install pinned release cho reproducible team setup. |
1045
+ | `npm install -g --ignore-scripts @piagent/platform@1.5.3` | Cài terminal helper `piagent-*` từ release tag hiện tại. |
1046
+ | `pi install git:github.com/Vt-mmm/piagent@v1.5.3` | Install pinned release cho reproducible team setup. |
1047
1047
  | `pi install git:github.com/Vt-mmm/piagent` | Install latest platform package cho máy cá nhân/sandbox. |
1048
1048
  | Cài exact Pi host của release, rồi `npm install -g --ignore-scripts @piagent/platform@X.Y.Z` và `piagent-install --stable` | Full update: đồng bộ host, terminal helper và Pi package. Mỗi release pin một Pi host chính xác; lấy đúng version của release đang cài trong [release/install policy](release-install-policy.md). |
1049
1049
  | Cài exact Pi host ghi trong release cũ, rồi helper `vPREVIOUS` và `piagent-install --stable` | Full rollback; đánh giá lại dependency findings của host cũ trước khi hạ version. |
@@ -1155,7 +1155,7 @@ Mở lại Pi session sau khi install.
1155
1155
  Cài lại terminal helper đúng release rồi kiểm tra `PATH`:
1156
1156
 
1157
1157
  ```bash
1158
- npm install -g --ignore-scripts @piagent/platform@1.5.2
1158
+ npm install -g --ignore-scripts @piagent/platform@1.5.3
1159
1159
  command -v piagent-install
1160
1160
  ```
1161
1161
 
@@ -98,6 +98,10 @@ pi install /path/to/piagent
98
98
  Inspector; projection Task Changes / Working Tree / Staged có bounded diff,
99
99
  provenance và enforce protected path; session lease bền, recovery khi restart
100
100
  hoặc owner cũ treo, doctor có repair tường minh.
101
+ - `1.5.3`: WebUI có workflow theo từng tin nhắn thay vì khóa cả session, mặc
102
+ định hiển thị rõ GPT-5.6 Sol High, Project Controls typed và UI gọn sau nút
103
+ `+`; benchmark thêm `deep-logic-v1`, WebUI parity provider-free và hai family
104
+ capability cho session control/timeline recovery.
101
105
  - `1.5.2`: kéo thả và dán tài liệu vào ô chat mới. Nút kẹp giấy vốn đã đưa file
102
106
  vào session mới; kéo thả là lối vào duy nhất còn im lặng, file thả xuống bị
103
107
  mất mà không báo gì.
@@ -44,6 +44,43 @@ piagent-benchmark --dry-run
44
44
  ```
45
45
 
46
46
  Đây là smoke suite để phát hiện regression nhanh, không phải production claim.
47
+
48
+ ## WebUI parity và bài logic sâu
49
+
50
+ WebUI không có một bộ prompt/policy riêng. Workflow picker tạo đúng
51
+ `/workflow <id> <request>`; Project Controls tạo typed command rồi Gateway gọi
52
+ đúng slash-command handler của Terminal. Vì vậy benchmark chia hai tầng:
53
+
54
+ ```bash
55
+ npm run benchmark:webui-parity
56
+ ```
57
+
58
+ Tầng provider-free này build production bundle, kiểm tra 10 workflow, 32 runtime
59
+ control, revision/idempotency/confirmation/CSRF, chạy toàn bộ Chromium user flow
60
+ và stress projection ở ba cỡ repository. Receipt của read-only control phải ghi
61
+ `modelCallObserved=false`; nếu runtime vô tình mở model turn, gate trả
62
+ `effect-unknown` thay vì claim 0 token.
63
+
64
+ Khi cần đo solver logic sâu theo baseline lịch sử Luna/medium với `codex-cli`:
65
+
66
+ ```bash
67
+ npm run benchmark:deep -- --dry-run
68
+ npm run benchmark:deep
69
+ ```
70
+
71
+ `deep-logic-v1` gồm 6 family difficulty `large`: revision-bound event
72
+ reconciliation, capacity/fairness/dependency scheduling, layered fail-closed
73
+ policy, budgeted context graph, out-of-order resumable stream và transactional
74
+ config merge. Mỗi family có run-private value variant, hidden grader, scope gate
75
+ và hai repeat trên hai surface, tổng 24 model session. Script project pin
76
+ `Piagent`/``codex-cli``, `openai-codex/gpt-5.6-luna` và thinking `medium` để kết quả
77
+ so sánh được với baseline cũ. CLI thấp hơn vẫn cho phép truyền cấu hình khác.
78
+
79
+ Kết quả của `webui-parity-v1` chứng minh transport/logic parity và UI behavior,
80
+ không phải model-quality claim. Kết quả `deep-logic-v1` là diagnostic paired
81
+ benchmark; production/public claim vẫn phải qua `production-v1` và các release
82
+ gate hiện hành.
83
+
47
84
  Public regression diện rộng dùng track `--production` (tên CLI được giữ để
48
85
  tương thích, không phải claim production):
49
86
 
@@ -52,7 +89,7 @@ piagent-benchmark --production --dry-run \
52
89
  --surfaces piagent,codex-cli \
53
90
  --model openai-codex/gpt-5.6-luna \
54
91
  --thinking medium \
55
- --piagent-treatment candidate
92
+ --piagent-treatment release-defaults
56
93
 
57
94
  piagent-benchmark --production \
58
95
  --surfaces piagent,codex-cli \
@@ -92,12 +129,13 @@ Từ lớp benchmark matrix trong package, Piagent phân ba band:
92
129
  | Band | Khi dùng | Mục đích |
93
130
  |---|---|---|
94
131
  | `core` | thay đổi nhỏ, kiểm tra nhanh | Task quality, scope, safety và exact usage trên 4 scenario |
132
+ | `deep-logic` | phát triển solver/workflow/WebUI logic | `deep-logic-v1`, 6 bài large với interacting invariants, 24 paired session; diagnostic, không phải release claim |
95
133
  | `production` | release candidate, đổi model policy, đổi harness | `production-v1`, 18 public-regression scenario, paired baseline, confidence gate; không phải generalization claim |
96
- | `capability` | tìm trần năng lực sau thay đổi harness | `capability-v1`, 4 bài multi-file/multi-component chưa bão hòa; dùng hill-climbing, không phải release gate |
134
+ | `capability` | tìm trần năng lực sau thay đổi harness | `capability-v1`, 6 bài multi-file/multi-component chưa bão hòa; dùng hill-climbing, không phải release gate |
97
135
  | `long-horizon` | thay đổi recovery/context lớn | Lane provider-free chạy ít nhất 30 phút cho hard crash/resume, compaction, handoff, continuation bounded và state-growth; dedicated paid suite chưa phát hành |
98
136
  | `private-holdout` | readiness E3 và exact-RC FS7-01 | Tối thiểu 6 family từ 6 repository lineage, giữ ngoài workspace tác giả; chỉ custodian execute-only và human-calibration receipt được chấp nhận |
99
137
 
100
- Hiện `core-v1`, `production-v1`, `capability-v1` và `e2-framework-v1` chạy được bằng CLI. Thay đổi
138
+ Hiện `core-v1`, `deep-logic-v1`, `production-v1`, `capability-v1` và `e2-framework-v1` chạy được bằng CLI. Thay đổi
101
139
  recovery/context phải chạy `production-v1` cùng deterministic recovery tests.
102
140
  Lane `evals/long-horizon-v1` hiện là `runnable-provider-free`; nó chứng minh
103
141
  lifecycle durability và local-state bounds, không tạo model quality, token,
@@ -112,23 +150,24 @@ chốt local readiness và chuẩn bị protocol FS5, nhưng generalization/rele
112
150
  khóa cho tới khi custodian độc lập cung cấp receipt thật ở `CF-FS7-01`.
113
151
 
114
152
  Capability pilot dùng lệnh sau. Suite này chủ ý có các contract xuyên package,
115
- backend/frontend dùng chung chuẩn hóa, lease ownership/concurrency, và migration
116
- crash/resume; điểm thấp là tín hiệu năng lực cần nghiên cứu, không phải lý do vá
117
- regex theo fixture:
153
+ backend/frontend dùng chung chuẩn hóa, lease ownership/concurrency, migration
154
+ crash/resume, WebUI/Terminal control-plane và reconnect timeline có checkpoint;
155
+ điểm thấp là tín hiệu năng lực cần nghiên cứu, không phải lý do vá regex theo
156
+ fixture:
118
157
 
119
158
  ```bash
120
159
  piagent-benchmark --capability \
121
- --surfaces raw-pi,piagent \
160
+ --surfaces piagent,codex-cli \
122
161
  --model openai-codex/gpt-5.6-luna \
123
162
  --thinking medium \
124
163
  --piagent-treatment candidate
125
164
  ```
126
165
 
127
- `capability-v1` dùng contract gắn nhãn 16 clause và 47 check atomic có trọng số,
166
+ `capability-v1` dùng contract gắn nhãn 28 clause và 69 check atomic có trọng số,
128
167
  thay cho hai mega-check chỉ cho điểm `0` hoặc `10`. Prompt, rubric và grader
129
- phải có mapping đầy đủ; reference đạt `10/10`, 16 mutation theo clause phải bị
168
+ phải có mapping đầy đủ; reference đạt `10/10`, 28 mutation theo clause phải bị
130
169
  đúng check tương ứng bắt, và một implementation tương đương nhưng khác cấu trúc
131
- phải được chấp nhận. Mỗi check hiện là critical và mỗi scenario có 11–13 check,
170
+ phải được chấp nhận. Mỗi check hiện là critical và mỗi scenario có 10–13 check,
132
171
  nên chỉ cần thiếu một check thì task score đã xuống tối đa `9.23` và không thể
133
172
  qua hard gate `>9.5`. Điểm lẻ dùng để chẩn đoán obligation nào hỏng; `resolved`
134
173
  vẫn yêu cầu toàn bộ critical check pass. Những pilot cũ giữ nguyên suite digest
@@ -11,7 +11,7 @@ This file is the canonical install, update, rollback, and release checklist. Oth
11
11
 
12
12
  All supported environments require Node.js `>=22.19.0` and Pi Coding Agent `0.84.1`. The Pi host is installed as a Node CLI; Pi Agent Platform still defines its own release matrix because the terminal helpers and shell policy rely on Bash/POSIX behavior.
13
13
 
14
- | Surface | Status for v1.5.0 | Rollout guidance |
14
+ | Surface | Status for v1.5.3 | Rollout guidance |
15
15
  |---|---|---|
16
16
  | macOS Apple Silicon (`darwin/arm64`) + Bash | Verified for this release. | Safe default for team rollout after normal project smoke tests. |
17
17
  | Linux x64 + Bash | Verified in GitHub Actions. | Safe default for CI/server usage after normal project smoke tests. |
@@ -106,7 +106,7 @@ These three components are versioned independently. A full install, update, or r
106
106
 
107
107
  | Channel | Source shape | Mutability | Use when |
108
108
  |---|---|---:|---|
109
- | `stable` | `git:github.com/Vt-mmm/piagent@<resolved-commit-sha>` from `v1.5.0` | Fixed after resolution | Default for team rollout. |
109
+ | `stable` | `git:github.com/Vt-mmm/piagent@<resolved-commit-sha>` from `v1.5.3` | Fixed after resolution | Default for team rollout. |
110
110
  | `exact` | Tag, reviewed commit, or a tag resolved with `--resolve-tag` | Fixed when using a commit SHA | Pi-package-only roll forward, rollback, or reproduction. |
111
111
  | `dev` | `git:github.com/Vt-mmm/piagent` | Moving | Personal machine or sandbox only. |
112
112
  | `local` | `/path/to/piagent` | Local workspace | Platform development and dry-run validation. |
@@ -126,7 +126,7 @@ Use this flow when the team needs both terminal commands and the Pi package:
126
126
  ```bash
127
127
  node --version # >= 22.19.0
128
128
  npm install -g --ignore-scripts @earendil-works/pi-coding-agent@0.84.1
129
- npm install -g --ignore-scripts @piagent/platform@1.5.2
129
+ npm install -g --ignore-scripts @piagent/platform@1.5.3
130
130
  piagent-install --stable --dry-run
131
131
  piagent-install --stable
132
132
  ```
@@ -134,8 +134,8 @@ piagent-install --stable
134
134
  The stable preview and apply output includes:
135
135
 
136
136
  ```text
137
- currentRelease: v1.5.0 (helper package version)
138
- tag: v1.5.0
137
+ currentRelease: v1.5.3 (helper package version)
138
+ tag: v1.5.3
139
139
  resolvedCommit: <40-char-sha>
140
140
  source: git:github.com/Vt-mmm/piagent@<40-char-sha>
141
141
  ```
@@ -152,7 +152,7 @@ bash scripts/install-global.sh --stable
152
152
  Use this only when terminal commands are not needed:
153
153
 
154
154
  ```bash
155
- pi install git:github.com/Vt-mmm/piagent@v1.5.2
155
+ pi install git:github.com/Vt-mmm/piagent@v1.5.3
156
156
  ```
157
157
 
158
158
  Direct `pi install` does not create `piagent-*` commands on `PATH`.
@@ -25,7 +25,7 @@ This document covers the packaged guard, project profiles, capability locks, ins
25
25
  - The operator, operating-system account, Pi host, and explicitly trusted project repository are trusted to execute code.
26
26
  - Project-local Pi resources are loaded only after Pi project trust or an explicit operator override.
27
27
  - A human remains available to approve destructive and external-provider actions.
28
- - Supported release verification covers macOS Apple Silicon + Bash, Linux x64 + Bash, Node.js `>=22.19.0`, and the exact Pi host version declared by the release. macOS Intel + Bash and Linux ARM64 + Bash are supported targets that need local smoke verification before broad rollout. Native Windows is not a team-rollout target for v1.5.0, and WSL2 is experimental/unverified.
28
+ - Supported release verification covers macOS Apple Silicon + Bash, Linux x64 + Bash, Node.js `>=22.19.0`, and the exact Pi host version declared by the release. macOS Intel + Bash and Linux ARM64 + Bash are supported targets that need local smoke verification before broad rollout. Native Windows is not a team-rollout target for v1.5.3, and WSL2 is experimental/unverified.
29
29
  - Registry, GitHub, model-provider, MCP-provider, and Vercel controls are external dependencies. Their account security and platform guarantees are not replaced by this repository.
30
30
 
31
31
  ## Threat actors and failure modes
@@ -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@0.84.1
13
- npm install -g --ignore-scripts @piagent/platform@1.5.2
13
+ npm install -g --ignore-scripts @piagent/platform@1.5.3
14
14
  piagent-install --stable
15
15
  cd /path/to/project
16
16
  pi
@@ -44,7 +44,7 @@ Mặc định team dùng stable helper:
44
44
  ```bash
45
45
  node --version # >= 22.19.0
46
46
  npm install -g --ignore-scripts @earendil-works/pi-coding-agent@0.84.1
47
- npm install -g --ignore-scripts @piagent/platform@1.5.2
47
+ npm install -g --ignore-scripts @piagent/platform@1.5.3
48
48
  piagent-install --stable --dry-run
49
49
  piagent-install --stable
50
50
  ```
@@ -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.5.2 docs · VI</span>
33
+ <span class="pill"><span class="pill-dot"></span>v1.5.3 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>
@@ -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.5.2 docs · VI</span>
33
+ <span class="pill"><span class="pill-dot"></span>v1.5.3 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>
@@ -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.5.2 docs · VI</span>
33
+ <span class="pill"><span class="pill-dot"></span>v1.5.3 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>
@@ -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.5.2 docs · VI</span>
33
+ <span class="pill"><span class="pill-dot"></span>v1.5.3 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>
@@ -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.5.2 docs · EN</span>
33
+ <span class="pill"><span class="pill-dot"></span>v1.5.3 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.5.2 docs · EN</span>
33
+ <span class="pill"><span class="pill-dot"></span>v1.5.3 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.5.2 docs · EN</span>
33
+ <span class="pill"><span class="pill-dot"></span>v1.5.3 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.5.2 docs · EN</span>
33
+ <span class="pill"><span class="pill-dot"></span>v1.5.3 docs · EN</span>
34
34
  <nav class="language-switch" aria-label="Language">
35
35
  <a class="language-option" href="/context-engine" hreflang="vi" lang="vi">VI</a>
36
36
  <a class="language-option current" href="/en/context-engine" hreflang="en" lang="en" aria-current="true">EN</a>
@@ -30,7 +30,7 @@
30
30
  <span>Pi Agent Platform</span>
31
31
  </a>
32
32
  <div class="top-actions">
33
- <span class="pill"><span class="pill-dot"></span>v1.5.2 docs · EN</span>
33
+ <span class="pill"><span class="pill-dot"></span>v1.5.3 docs · EN</span>
34
34
  <nav class="language-switch" aria-label="Language">
35
35
  <a class="language-option" href="/" hreflang="vi" lang="vi">VI</a>
36
36
  <a class="language-option current" href="/en/" hreflang="en" lang="en" aria-current="true">EN</a>
@@ -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.5.2 docs · EN</span>
33
+ <span class="pill"><span class="pill-dot"></span>v1.5.3 docs · EN</span>
34
34
  <nav class="language-switch" aria-label="Language">
35
35
  <a class="language-option" href="/mcp-approval" hreflang="vi" lang="vi">VI</a>
36
36
  <a class="language-option current" href="/en/mcp-approval" hreflang="en" lang="en" aria-current="true">EN</a>
@@ -30,7 +30,7 @@
30
30
  <span>Pi Agent Platform</span>
31
31
  </a>
32
32
  <div class="top-actions">
33
- <span class="pill"><span class="pill-dot"></span>v1.5.2 docs · EN</span>
33
+ <span class="pill"><span class="pill-dot"></span>v1.5.3 docs · EN</span>
34
34
  <nav class="language-switch" aria-label="Language">
35
35
  <a class="language-option" href="/mcp-auth" hreflang="vi" lang="vi">VI</a>
36
36
  <a class="language-option current" href="/en/mcp-auth" hreflang="en" lang="en" aria-current="true">EN</a>
@@ -30,7 +30,7 @@
30
30
  <span>Pi Agent Platform</span>
31
31
  </a>
32
32
  <div class="top-actions">
33
- <span class="pill"><span class="pill-dot"></span>v1.5.2 docs · EN</span>
33
+ <span class="pill"><span class="pill-dot"></span>v1.5.3 docs · EN</span>
34
34
  <nav class="language-switch" aria-label="Language">
35
35
  <a class="language-option" href="/mcp-servers" hreflang="vi" lang="vi">VI</a>
36
36
  <a class="language-option current" href="/en/mcp-servers" hreflang="en" lang="en" aria-current="true">EN</a>
@@ -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.5.2 docs · EN</span>
33
+ <span class="pill"><span class="pill-dot"></span>v1.5.3 docs · EN</span>
34
34
  <nav class="language-switch" aria-label="Language">
35
35
  <a class="language-option" href="/mcp" hreflang="vi" lang="vi">VI</a>
36
36
  <a class="language-option current" href="/en/mcp" hreflang="en" lang="en" aria-current="true">EN</a>