FN-8564: update bundled Pi runtime to 0.82.0

Update Fusion's matched Pi dependencies and compatibility coverage for version 0.82.0.

- Pin Pi AI and coding-agent packages to the exact 0.82.0 release pair.
- Refresh provider catalog, supplemental model, auth storage, and Droid thinking coverage.
- Add the published CLI patch changeset.

Files changed:
 .changeset/fn-8564-pi-082.md                       |   7 +
 packages/cli/package.json                          |   4 +-
 packages/cli/src/__tests__/package-config.test.ts  |   2 +-
 packages/core/package.json                         |   2 +-
 packages/dashboard/package.json                    |   2 +-
 ...ister-model-routes-kimi-k3-supplemental.test.ts |   6 +-
 packages/engine/package.json                       |   4 +-
 .../src/__tests__/provider-registration.test.ts    |   4 +-
 packages/engine/src/auth-storage.ts                |  11 +-
 packages/engine/src/pi.ts                          |   6 +
 packages/pi-claude-cli/package.json                |   8 +-
 .../src/thinking-config.ts                         |  10 +-
 pnpm-lock.yaml                                     | 176 +++++++++++----------
 pnpm-workspace.yaml                                |   6 +-
 .../__tests__/check-pi-versions-pinned.test.mjs    |   8 +-
 15 files changed, 142 insertions(+), 114 deletions(-)

Fusion-Task-Id: FN-8564

Fusion-Task-Lineage: 543c5e17-4cb2-446f-9a1c-ec7ec8b8117a

Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
This commit is contained in:
gsxdsm
2026-07-24 19:06:14 -07:00
parent c50e303a94
commit e3dba364d1
15 changed files with 142 additions and 114 deletions

View File

@@ -0,0 +1,7 @@
---
"@runfusion/fusion": patch
---
summary: Update bundled Pi runtime dependencies to the exact matched 0.82.0 pair.
category: internal
dev: Pins @earendil-works/pi-ai and @earendil-works/pi-coding-agent to 0.82.0.

View File

@@ -67,8 +67,8 @@
"dependencies": {
"@agentclientprotocol/sdk": "0.24.0",
"agent-browser": "0.26.0",
"@earendil-works/pi-ai": "0.81.1",
"@earendil-works/pi-coding-agent": "0.81.1",
"@earendil-works/pi-ai": "0.82.0",
"@earendil-works/pi-coding-agent": "0.82.0",
"claude-code-cli-acp": "0.1.1",
"dockerode": "^4.0.12",
"electron": "^33.4.11",

View File

@@ -56,7 +56,7 @@ function assertRuntimeDepsAreNotOptionalPeers(pkg: any, label: string): void {
for (const dependencyName of ["@earendil-works/pi-coding-agent", "@earendil-works/pi-ai"]) {
expect(dependencies, `${label}: ${dependencyName} must remain a required runtime dependency`).toHaveProperty(
dependencyName,
"0.81.1",
"0.82.0",
);
expect(dependencies[dependencyName], `${label}: ${dependencyName} must be a clean exact semver`).toMatch(
EXACT_SEMVER,

View File

@@ -46,7 +46,7 @@
"test:pg-gate": "vitest run --config vitest.pg.config.ts src/__tests__/postgres/handoff-to-review-atomicity.pg.test.ts src/__tests__/postgres/task-lifecycle-e2e.pg.test.ts --silent=passed-only --reporter=dot"
},
"devDependencies": {
"@earendil-works/pi-coding-agent": "0.81.1",
"@earendil-works/pi-coding-agent": "0.82.0",
"@types/dockerode": "^3.3.41",
"@types/node": "^25.5.0",
"@vitest/coverage-v8": "^4.1.0",

View File

@@ -106,7 +106,7 @@
"@codemirror/state": "^6.5.2",
"@codemirror/theme-one-dark": "^6.1.2",
"@codemirror/view": "^6.36.4",
"@earendil-works/pi-coding-agent": "0.81.1",
"@earendil-works/pi-coding-agent": "0.82.0",
"@fusion-plugin-examples/claude-runtime": "workspace:*",
"@fusion-plugin-examples/cli-printing-press": "workspace:*",
"@fusion-plugin-examples/compound-engineering": "workspace:*",

View File

@@ -4,9 +4,9 @@ import { ModelRegistry, ModelRuntime } from "@earendil-works/pi-coding-agent";
import { registerModelRoutes } from "../routes/register-model-routes.js";
/*
FNXC:ModelCatalog 2026-07-16-19:05:
FN-8180 requires Kimi K3 to reach both model-catalog consumers. This route-level
coverage uses pi 0.81.1's actual built-in ModelRuntime catalog after refresh, so an
FNXC:ModelCatalog 2026-07-24-12:00:
FN-8564 requires Kimi K3 to reach both model-catalog consumers. This route-level
coverage uses Pi 0.82.0's actual built-in ModelRuntime catalog after refresh, so an
SDK catalog regression cannot leave the Dashboard dropdown missing K3 while the engine
registry test remains green.
*/

View File

@@ -38,8 +38,8 @@
"test:watch": "vitest src/__tests__/executor-*.test.ts --watch"
},
"dependencies": {
"@earendil-works/pi-ai": "0.81.1",
"@earendil-works/pi-coding-agent": "0.81.1",
"@earendil-works/pi-ai": "0.82.0",
"@earendil-works/pi-coding-agent": "0.82.0",
"@fusion/core": "workspace:*",
"@fusion/pi-claude-cli": "workspace:*",
"@modelcontextprotocol/sdk": "^1.0.0",

View File

@@ -128,8 +128,8 @@ describe("seedDashboardProviders", () => {
});
it("keeps native Kimi K3 available through the installed pi model registry", async () => {
// FNXC:ModelCatalog 2026-07-16-19:05: FN-8180 requires catalog coverage to
// exercise pi's real 0.81.1 built-in registry, not a hand-written Kimi fixture.
// FNXC:ModelCatalog 2026-07-24-12:00: FN-8564 keeps catalog coverage on Pi
// 0.82.0's real built-in registry, not a hand-written Kimi fixture.
const modelRegistry = await createInMemoryModelRegistry();
await modelRegistry.refresh();

View File

@@ -223,10 +223,15 @@ vendored @earendil-works/pi-coding-agent AuthStorage backend using proper-lockfi
plus a per-provider read-modify-merge (FileAuthStorageBackend.persistProviderChange /
refreshOAuthTokenWithLock re-read the file under a lock and spread
{...currentData, [provider]: credential} rather than flushing a whole-file in-memory
snapshot). packages/engine/package.json already floors this at
"@earendil-works/pi-coding-agent": "0.81.1" (exact pin; locked per-provider merge requires
>=0.80.3) — do not downgrade below 0.80.x, and re-verify this comment against
snapshot). packages/engine/package.json already pins this at
"@earendil-works/pi-coding-agent": "0.82.0" (exact matched runtime pair; locked per-provider
merge requires >=0.80.3) — do not downgrade below 0.80.x, and re-verify this comment against
dist/core/auth-storage.js if the pin is ever lowered. See
FNXC:ProviderAuth 2026-07-24-12:00:
FN-8564 retains Fusion's credential-store adapter on Pi 0.82.0. The release adds Kimi Code and
OpenRouter OAuth, so new upstream login providers must still use the same queued, cross-process
credential persistence contract rather than bypassing Fusion auth storage.
packages/engine/src/__tests__/auth-storage-concurrency.test.ts for the regression coverage.
*/

View File

@@ -2543,6 +2543,12 @@ export async function createFnAgent(options: AgentOptions): Promise<AgentResult>
0.81 adds full provider extensions, expanded usage accounting, Qwen Token Plan, llama.cpp
router management, and resilient compaction retries; Fusion session creation stays on the
ModelRuntime path already adopted in 0.80.8.
FNXC:ModelCatalog 2026-07-24-12:00:
FN-8564 advances the exact matched pair to 0.82.0. Its catalog now exposes only
provider-verified reasoning levels and adds Kimi/OpenRouter OAuth plus constrained tools;
retain Fusion's ModelRuntime session construction and supplemental catalog merges rather
than duplicating upstream provider behavior.
*/
const createSessionOptions: NonNullable<Parameters<typeof createAgentSession>[0]> = {
cwd: options.cwd,

View File

@@ -23,12 +23,12 @@
"@agentclientprotocol/sdk": "0.24.0"
},
"peerDependencies": {
"@earendil-works/pi-ai": "0.81.1",
"@earendil-works/pi-coding-agent": "0.81.1"
"@earendil-works/pi-ai": "0.82.0",
"@earendil-works/pi-coding-agent": "0.82.0"
},
"devDependencies": {
"@earendil-works/pi-ai": "0.81.1",
"@earendil-works/pi-coding-agent": "0.81.1",
"@earendil-works/pi-ai": "0.82.0",
"@earendil-works/pi-coding-agent": "0.82.0",
"@types/node": "^22.0.0",
"typescript": "^5.7.0",
"vitest": "^4.1.0"

View File

@@ -6,9 +6,13 @@
* becomes high and high becomes max, leveraging their superior reasoning capability.
*
* FNXC:DroidThinking 2026-07-16-18:20:
* Fusion now resolves pi 0.81.1 workspace-wide, whose ThinkingLevel includes `max`.
* Keep both exhaustive mappings explicit: non-Opus must still avoid the CLI's max
* effort, while Opus may use it.
* Pi's ThinkingLevel includes `max`. Keep both exhaustive mappings explicit:
* non-Opus must still avoid the CLI's max effort, while Opus may use it.
*
* FNXC:DroidThinking 2026-07-24-12:00:
* FN-8564 updates the workspace runtime to Pi 0.82.0 while retaining `max`.
* Keep these exhaustive maps aligned with the installed type rather than casting
* unknown thinking levels through the Droid CLI boundary.
*
* IMPORTANT: The CLI does NOT support --thinking-budget. Only --effort is supported.
*/

176
pnpm-lock.yaml generated
View File

@@ -7,8 +7,8 @@ settings:
overrides:
'@types/node': ^25.5.2
protobufjs: ^7.5.8
'@earendil-works/pi-ai': 0.81.1
'@earendil-works/pi-coding-agent': 0.81.1
'@earendil-works/pi-ai': 0.82.0
'@earendil-works/pi-coding-agent': 0.82.0
importers:
@@ -54,11 +54,11 @@ importers:
specifier: 0.24.0
version: 0.24.0(zod@4.4.3)
'@earendil-works/pi-ai':
specifier: 0.81.1
version: 0.81.1(@modelcontextprotocol/sdk@1.28.0(zod@4.4.3))(ws@8.20.0)(zod@4.4.3)
specifier: 0.82.0
version: 0.82.0(@modelcontextprotocol/sdk@1.28.0(zod@4.4.3))(ws@8.20.0)(zod@4.4.3)
'@earendil-works/pi-coding-agent':
specifier: 0.81.1
version: 0.81.1(@modelcontextprotocol/sdk@1.28.0(zod@4.4.3))(ws@8.20.0)(zod@4.4.3)
specifier: 0.82.0
version: 0.82.0(@modelcontextprotocol/sdk@1.28.0(zod@4.4.3))(ws@8.20.0)(zod@4.4.3)
agent-browser:
specifier: 0.26.0
version: 0.26.0
@@ -209,8 +209,8 @@ importers:
version: 2.8.3
devDependencies:
'@earendil-works/pi-coding-agent':
specifier: 0.81.1
version: 0.81.1
specifier: 0.82.0
version: 0.82.0
'@types/dockerode':
specifier: ^3.3.41
version: 3.3.47
@@ -258,8 +258,8 @@ importers:
specifier: ^6.36.4
version: 6.40.0
'@earendil-works/pi-coding-agent':
specifier: 0.81.1
version: 0.81.1(ws@8.20.0)(zod@3.25.76)
specifier: 0.82.0
version: 0.82.0(ws@8.20.0)(zod@3.25.76)
'@fusion-plugin-examples/claude-runtime':
specifier: workspace:*
version: link:../../plugins/fusion-plugin-claude-runtime
@@ -524,11 +524,11 @@ importers:
packages/droid-cli:
dependencies:
'@earendil-works/pi-ai':
specifier: 0.81.1
version: 0.81.1(@modelcontextprotocol/sdk@1.28.0(zod@4.4.3))(ws@8.21.1)(zod@4.4.3)
specifier: 0.82.0
version: 0.82.0(@modelcontextprotocol/sdk@1.28.0(zod@4.4.3))(ws@8.21.1)(zod@4.4.3)
'@earendil-works/pi-coding-agent':
specifier: 0.81.1
version: 0.81.1(@modelcontextprotocol/sdk@1.28.0(zod@4.4.3))(ws@8.21.1)(zod@4.4.3)
specifier: 0.82.0
version: 0.82.0(@modelcontextprotocol/sdk@1.28.0(zod@4.4.3))(ws@8.21.1)(zod@4.4.3)
'@fusion-plugin-examples/droid-runtime':
specifier: workspace:*
version: link:../../plugins/fusion-plugin-droid-runtime
@@ -546,11 +546,11 @@ importers:
packages/engine:
dependencies:
'@earendil-works/pi-ai':
specifier: 0.81.1
version: 0.81.1(@modelcontextprotocol/sdk@1.28.0(zod@4.4.3))(ws@8.21.1)(zod@4.4.3)
specifier: 0.82.0
version: 0.82.0(@modelcontextprotocol/sdk@1.28.0(zod@4.4.3))(ws@8.21.1)(zod@4.4.3)
'@earendil-works/pi-coding-agent':
specifier: 0.81.1
version: 0.81.1(@modelcontextprotocol/sdk@1.28.0(zod@4.4.3))(ws@8.21.1)(zod@4.4.3)
specifier: 0.82.0
version: 0.82.0(@modelcontextprotocol/sdk@1.28.0(zod@4.4.3))(ws@8.21.1)(zod@4.4.3)
'@fusion/core':
specifier: workspace:*
version: link:../core
@@ -664,11 +664,11 @@ importers:
version: 0.24.0(zod@4.4.3)
devDependencies:
'@earendil-works/pi-ai':
specifier: 0.81.1
version: 0.81.1(@modelcontextprotocol/sdk@1.28.0(zod@4.4.3))(ws@8.21.1)(zod@4.4.3)
specifier: 0.82.0
version: 0.82.0(@modelcontextprotocol/sdk@1.28.0(zod@4.4.3))(ws@8.21.1)(zod@4.4.3)
'@earendil-works/pi-coding-agent':
specifier: 0.81.1
version: 0.81.1(@modelcontextprotocol/sdk@1.28.0(zod@4.4.3))(ws@8.21.1)(zod@4.4.3)
specifier: 0.82.0
version: 0.82.0(@modelcontextprotocol/sdk@1.28.0(zod@4.4.3))(ws@8.21.1)(zod@4.4.3)
'@types/node':
specifier: ^25.5.2
version: 25.5.2
@@ -682,8 +682,8 @@ importers:
packages/pi-llama-cpp:
dependencies:
'@earendil-works/pi-coding-agent':
specifier: 0.81.1
version: 0.81.1
specifier: 0.82.0
version: 0.82.0
devDependencies:
'@types/node':
specifier: ^25.5.2
@@ -781,11 +781,11 @@ importers:
specifier: 0.24.0
version: 0.24.0(zod@4.4.3)
'@earendil-works/pi-ai':
specifier: 0.81.1
version: 0.81.1(@modelcontextprotocol/sdk@1.28.0(zod@4.4.3))(ws@8.21.1)(zod@4.4.3)
specifier: 0.82.0
version: 0.82.0(@modelcontextprotocol/sdk@1.28.0(zod@4.4.3))(ws@8.21.1)(zod@4.4.3)
'@earendil-works/pi-coding-agent':
specifier: 0.81.1
version: 0.81.1(@modelcontextprotocol/sdk@1.28.0(zod@4.4.3))(ws@8.21.1)(zod@4.4.3)
specifier: 0.82.0
version: 0.82.0(@modelcontextprotocol/sdk@1.28.0(zod@4.4.3))(ws@8.21.1)(zod@4.4.3)
'@fusion/core':
specifier: workspace:*
version: link:../../packages/core
@@ -831,11 +831,11 @@ importers:
specifier: 0.24.0
version: 0.24.0(zod@4.4.3)
'@earendil-works/pi-ai':
specifier: 0.81.1
version: 0.81.1(@modelcontextprotocol/sdk@1.28.0(zod@4.4.3))(ws@8.21.1)(zod@4.4.3)
specifier: 0.82.0
version: 0.82.0(@modelcontextprotocol/sdk@1.28.0(zod@4.4.3))(ws@8.21.1)(zod@4.4.3)
'@earendil-works/pi-coding-agent':
specifier: 0.81.1
version: 0.81.1(@modelcontextprotocol/sdk@1.28.0(zod@4.4.3))(ws@8.21.1)(zod@4.4.3)
specifier: 0.82.0
version: 0.82.0(@modelcontextprotocol/sdk@1.28.0(zod@4.4.3))(ws@8.21.1)(zod@4.4.3)
'@fusion/core':
specifier: workspace:*
version: link:../../packages/core
@@ -954,11 +954,11 @@ importers:
plugins/fusion-plugin-cursor-runtime:
dependencies:
'@earendil-works/pi-ai':
specifier: 0.81.1
version: 0.81.1(@modelcontextprotocol/sdk@1.28.0(zod@4.4.3))(ws@8.21.1)(zod@4.4.3)
specifier: 0.82.0
version: 0.82.0(@modelcontextprotocol/sdk@1.28.0(zod@4.4.3))(ws@8.21.1)(zod@4.4.3)
'@earendil-works/pi-coding-agent':
specifier: 0.81.1
version: 0.81.1(@modelcontextprotocol/sdk@1.28.0(zod@4.4.3))(ws@8.21.1)(zod@4.4.3)
specifier: 0.82.0
version: 0.82.0(@modelcontextprotocol/sdk@1.28.0(zod@4.4.3))(ws@8.21.1)(zod@4.4.3)
'@fusion/plugin-sdk':
specifier: workspace:*
version: link:../../packages/plugin-sdk
@@ -1010,11 +1010,11 @@ importers:
plugins/fusion-plugin-droid-runtime:
dependencies:
'@earendil-works/pi-ai':
specifier: 0.81.1
version: 0.81.1(@modelcontextprotocol/sdk@1.28.0(zod@4.4.3))(ws@8.21.1)(zod@4.4.3)
specifier: 0.82.0
version: 0.82.0(@modelcontextprotocol/sdk@1.28.0(zod@4.4.3))(ws@8.21.1)(zod@4.4.3)
'@earendil-works/pi-coding-agent':
specifier: 0.81.1
version: 0.81.1(@modelcontextprotocol/sdk@1.28.0(zod@4.4.3))(ws@8.21.1)(zod@4.4.3)
specifier: 0.82.0
version: 0.82.0(@modelcontextprotocol/sdk@1.28.0(zod@4.4.3))(ws@8.21.1)(zod@4.4.3)
'@fusion/plugin-sdk':
specifier: workspace:*
version: link:../../packages/plugin-sdk
@@ -1057,11 +1057,11 @@ importers:
specifier: 0.24.0
version: 0.24.0(zod@4.4.3)
'@earendil-works/pi-ai':
specifier: 0.81.1
version: 0.81.1(@modelcontextprotocol/sdk@1.28.0(zod@4.4.3))(ws@8.21.1)(zod@4.4.3)
specifier: 0.82.0
version: 0.82.0(@modelcontextprotocol/sdk@1.28.0(zod@4.4.3))(ws@8.21.1)(zod@4.4.3)
'@earendil-works/pi-coding-agent':
specifier: 0.81.1
version: 0.81.1(@modelcontextprotocol/sdk@1.28.0(zod@4.4.3))(ws@8.21.1)(zod@4.4.3)
specifier: 0.82.0
version: 0.82.0(@modelcontextprotocol/sdk@1.28.0(zod@4.4.3))(ws@8.21.1)(zod@4.4.3)
'@fusion/core':
specifier: workspace:*
version: link:../../packages/core
@@ -1141,11 +1141,11 @@ importers:
specifier: 0.24.0
version: 0.24.0(zod@4.4.3)
'@earendil-works/pi-ai':
specifier: 0.81.1
version: 0.81.1(@modelcontextprotocol/sdk@1.28.0(zod@4.4.3))(ws@8.21.1)(zod@4.4.3)
specifier: 0.82.0
version: 0.82.0(@modelcontextprotocol/sdk@1.28.0(zod@4.4.3))(ws@8.21.1)(zod@4.4.3)
'@earendil-works/pi-coding-agent':
specifier: 0.81.1
version: 0.81.1(@modelcontextprotocol/sdk@1.28.0(zod@4.4.3))(ws@8.21.1)(zod@4.4.3)
specifier: 0.82.0
version: 0.82.0(@modelcontextprotocol/sdk@1.28.0(zod@4.4.3))(ws@8.21.1)(zod@4.4.3)
'@fusion/core':
specifier: workspace:*
version: link:../../packages/core
@@ -1826,22 +1826,22 @@ packages:
resolution: {integrity: sha512-0cp4PsWQ/9avqTVMCtZ+GirikIA36ikvjtHweU4/j8yLtgObI0+JUPhYFScgwlteveGB1rt3Cm8UhN04XayDig==}
engines: {node: '>= 8.9.0'}
'@earendil-works/pi-agent-core@0.81.1':
resolution: {integrity: sha512-yqbh68CyhqxMov/jUogFJfMqlu2Gd37GAki+tr59YCmAPHfomiCA5ESzusXtpGzABeiZFC/OrRdQ4GwCCOMIHA==}
'@earendil-works/pi-agent-core@0.82.0':
resolution: {integrity: sha512-bnS9DpOKK5T/F/gQkaOnYdMsuuciWiScfAHHWC+k5OQ0HxjSqMFQvp8keurULLoT4+v8NHv4V14pNvd4hsfC0Q==}
engines: {node: '>=22.19.0'}
'@earendil-works/pi-ai@0.81.1':
resolution: {integrity: sha512-hzHE7Z8l5mgJk+ke67Lge0rwS2+wbKJrFKl9o5M1R1rh33+cCT7D1AHz1OAtX5wFs90E1/BTGhyJRTUHaMxGvQ==}
'@earendil-works/pi-ai@0.82.0':
resolution: {integrity: sha512-8MvW9+zno13sXDuT2kFMnWeTNUufUhPeZDRVO+igGoBRCDWgn7Xh2FkRQI1mRuet6QhF4ENQuLYdIAOyG6BhNw==}
engines: {node: '>=22.19.0'}
hasBin: true
'@earendil-works/pi-coding-agent@0.81.1':
resolution: {integrity: sha512-r6ovAsZOgAqbC/aU6s+/dPnv/sGZBuWyZNvi3pXjpbuX5wvp3XvGkQI7/VLvX2o9XpmpFaPUxKNym1WfkN/P8A==}
'@earendil-works/pi-coding-agent@0.82.0':
resolution: {integrity: sha512-Qnqgn9zhJFQ2HZ8R4iNuGhyCk93XX6+eUw9i+TjTuo47amzCy93ft3bB6yaUCleCrNO58dJDHYSGNHv/GAPWKg==}
engines: {node: '>=22.19.0'}
hasBin: true
'@earendil-works/pi-tui@0.81.1':
resolution: {integrity: sha512-OMEe+Zt8oQYi/rCq3upxsTlIScWL0FPhXwQus34TbQb3EmTx88S7Uzx32JxvQiEeWOw8eDCdJf2PBUBE9r6wIg==}
'@earendil-works/pi-tui@0.82.0':
resolution: {integrity: sha512-9IDjQOXne7t9l2s2YcjnIBxsVNVPE7qScVSB3YmFlXsBW4pfo2gOElTxggV84KrRiGqABnlFPBWbf0k54hszHQ==}
engines: {node: '>=22.19.0'}
'@electron/asar@3.4.1':
@@ -8962,9 +8962,10 @@ snapshots:
ajv: 6.14.0
ajv-keywords: 3.5.2(ajv@6.14.0)
'@earendil-works/pi-agent-core@0.81.1':
'@earendil-works/pi-agent-core@0.82.0':
dependencies:
'@earendil-works/pi-ai': 0.81.1
'@earendil-works/pi-ai': 0.82.0
diff: 8.0.4
ignore: 7.0.5
typebox: 1.1.38
yaml: 2.9.0
@@ -8976,9 +8977,10 @@ snapshots:
- ws
- zod
'@earendil-works/pi-agent-core@0.81.1(@modelcontextprotocol/sdk@1.28.0(zod@4.4.3))(ws@8.20.0)(zod@4.4.3)':
'@earendil-works/pi-agent-core@0.82.0(@modelcontextprotocol/sdk@1.28.0(zod@4.4.3))(ws@8.20.0)(zod@4.4.3)':
dependencies:
'@earendil-works/pi-ai': 0.81.1(@modelcontextprotocol/sdk@1.28.0(zod@4.4.3))(ws@8.20.0)(zod@4.4.3)
'@earendil-works/pi-ai': 0.82.0(@modelcontextprotocol/sdk@1.28.0(zod@4.4.3))(ws@8.20.0)(zod@4.4.3)
diff: 8.0.4
ignore: 7.0.5
typebox: 1.1.38
yaml: 2.9.0
@@ -8990,9 +8992,10 @@ snapshots:
- ws
- zod
'@earendil-works/pi-agent-core@0.81.1(@modelcontextprotocol/sdk@1.28.0(zod@4.4.3))(ws@8.21.1)(zod@4.4.3)':
'@earendil-works/pi-agent-core@0.82.0(@modelcontextprotocol/sdk@1.28.0(zod@4.4.3))(ws@8.21.1)(zod@4.4.3)':
dependencies:
'@earendil-works/pi-ai': 0.81.1(@modelcontextprotocol/sdk@1.28.0(zod@4.4.3))(ws@8.21.1)(zod@4.4.3)
'@earendil-works/pi-ai': 0.82.0(@modelcontextprotocol/sdk@1.28.0(zod@4.4.3))(ws@8.21.1)(zod@4.4.3)
diff: 8.0.4
ignore: 7.0.5
typebox: 1.1.38
yaml: 2.9.0
@@ -9004,9 +9007,10 @@ snapshots:
- ws
- zod
'@earendil-works/pi-agent-core@0.81.1(ws@8.20.0)(zod@3.25.76)':
'@earendil-works/pi-agent-core@0.82.0(ws@8.20.0)(zod@3.25.76)':
dependencies:
'@earendil-works/pi-ai': 0.81.1(ws@8.20.0)(zod@3.25.76)
'@earendil-works/pi-ai': 0.82.0(ws@8.20.0)(zod@3.25.76)
diff: 8.0.4
ignore: 7.0.5
typebox: 1.1.38
yaml: 2.9.0
@@ -9018,7 +9022,7 @@ snapshots:
- ws
- zod
'@earendil-works/pi-ai@0.81.1':
'@earendil-works/pi-ai@0.82.0':
dependencies:
'@anthropic-ai/sdk': 0.91.1(zod@3.25.76)
'@aws-sdk/client-bedrock-runtime': 3.1048.0
@@ -9039,7 +9043,7 @@ snapshots:
- ws
- zod
'@earendil-works/pi-ai@0.81.1(@modelcontextprotocol/sdk@1.28.0(zod@4.4.3))(ws@8.20.0)(zod@4.4.3)':
'@earendil-works/pi-ai@0.82.0(@modelcontextprotocol/sdk@1.28.0(zod@4.4.3))(ws@8.20.0)(zod@4.4.3)':
dependencies:
'@anthropic-ai/sdk': 0.91.1(zod@4.4.3)
'@aws-sdk/client-bedrock-runtime': 3.1048.0
@@ -9060,7 +9064,7 @@ snapshots:
- ws
- zod
'@earendil-works/pi-ai@0.81.1(@modelcontextprotocol/sdk@1.28.0(zod@4.4.3))(ws@8.21.1)(zod@4.4.3)':
'@earendil-works/pi-ai@0.82.0(@modelcontextprotocol/sdk@1.28.0(zod@4.4.3))(ws@8.21.1)(zod@4.4.3)':
dependencies:
'@anthropic-ai/sdk': 0.91.1(zod@4.4.3)
'@aws-sdk/client-bedrock-runtime': 3.1048.0
@@ -9081,7 +9085,7 @@ snapshots:
- ws
- zod
'@earendil-works/pi-ai@0.81.1(ws@8.20.0)(zod@3.25.76)':
'@earendil-works/pi-ai@0.82.0(ws@8.20.0)(zod@3.25.76)':
dependencies:
'@anthropic-ai/sdk': 0.91.1(zod@3.25.76)
'@aws-sdk/client-bedrock-runtime': 3.1048.0
@@ -9102,11 +9106,11 @@ snapshots:
- ws
- zod
'@earendil-works/pi-coding-agent@0.81.1':
'@earendil-works/pi-coding-agent@0.82.0':
dependencies:
'@earendil-works/pi-agent-core': 0.81.1
'@earendil-works/pi-ai': 0.81.1
'@earendil-works/pi-tui': 0.81.1
'@earendil-works/pi-agent-core': 0.82.0
'@earendil-works/pi-ai': 0.82.0
'@earendil-works/pi-tui': 0.82.0
'@silvia-odwyer/photon-node': 0.3.4
chalk: 5.6.2
cross-spawn: 7.0.6
@@ -9132,11 +9136,11 @@ snapshots:
- ws
- zod
'@earendil-works/pi-coding-agent@0.81.1(@modelcontextprotocol/sdk@1.28.0(zod@4.4.3))(ws@8.20.0)(zod@4.4.3)':
'@earendil-works/pi-coding-agent@0.82.0(@modelcontextprotocol/sdk@1.28.0(zod@4.4.3))(ws@8.20.0)(zod@4.4.3)':
dependencies:
'@earendil-works/pi-agent-core': 0.81.1(@modelcontextprotocol/sdk@1.28.0(zod@4.4.3))(ws@8.20.0)(zod@4.4.3)
'@earendil-works/pi-ai': 0.81.1(@modelcontextprotocol/sdk@1.28.0(zod@4.4.3))(ws@8.20.0)(zod@4.4.3)
'@earendil-works/pi-tui': 0.81.1
'@earendil-works/pi-agent-core': 0.82.0(@modelcontextprotocol/sdk@1.28.0(zod@4.4.3))(ws@8.20.0)(zod@4.4.3)
'@earendil-works/pi-ai': 0.82.0(@modelcontextprotocol/sdk@1.28.0(zod@4.4.3))(ws@8.20.0)(zod@4.4.3)
'@earendil-works/pi-tui': 0.82.0
'@silvia-odwyer/photon-node': 0.3.4
chalk: 5.6.2
cross-spawn: 7.0.6
@@ -9162,11 +9166,11 @@ snapshots:
- ws
- zod
'@earendil-works/pi-coding-agent@0.81.1(@modelcontextprotocol/sdk@1.28.0(zod@4.4.3))(ws@8.21.1)(zod@4.4.3)':
'@earendil-works/pi-coding-agent@0.82.0(@modelcontextprotocol/sdk@1.28.0(zod@4.4.3))(ws@8.21.1)(zod@4.4.3)':
dependencies:
'@earendil-works/pi-agent-core': 0.81.1(@modelcontextprotocol/sdk@1.28.0(zod@4.4.3))(ws@8.21.1)(zod@4.4.3)
'@earendil-works/pi-ai': 0.81.1(@modelcontextprotocol/sdk@1.28.0(zod@4.4.3))(ws@8.21.1)(zod@4.4.3)
'@earendil-works/pi-tui': 0.81.1
'@earendil-works/pi-agent-core': 0.82.0(@modelcontextprotocol/sdk@1.28.0(zod@4.4.3))(ws@8.21.1)(zod@4.4.3)
'@earendil-works/pi-ai': 0.82.0(@modelcontextprotocol/sdk@1.28.0(zod@4.4.3))(ws@8.21.1)(zod@4.4.3)
'@earendil-works/pi-tui': 0.82.0
'@silvia-odwyer/photon-node': 0.3.4
chalk: 5.6.2
cross-spawn: 7.0.6
@@ -9192,11 +9196,11 @@ snapshots:
- ws
- zod
'@earendil-works/pi-coding-agent@0.81.1(ws@8.20.0)(zod@3.25.76)':
'@earendil-works/pi-coding-agent@0.82.0(ws@8.20.0)(zod@3.25.76)':
dependencies:
'@earendil-works/pi-agent-core': 0.81.1(ws@8.20.0)(zod@3.25.76)
'@earendil-works/pi-ai': 0.81.1(ws@8.20.0)(zod@3.25.76)
'@earendil-works/pi-tui': 0.81.1
'@earendil-works/pi-agent-core': 0.82.0(ws@8.20.0)(zod@3.25.76)
'@earendil-works/pi-ai': 0.82.0(ws@8.20.0)(zod@3.25.76)
'@earendil-works/pi-tui': 0.82.0
'@silvia-odwyer/photon-node': 0.3.4
chalk: 5.6.2
cross-spawn: 7.0.6
@@ -9222,7 +9226,7 @@ snapshots:
- ws
- zod
'@earendil-works/pi-tui@0.81.1':
'@earendil-works/pi-tui@0.82.0':
dependencies:
get-east-asian-width: 1.6.0
marked: 18.0.5
@@ -14501,7 +14505,7 @@ snapshots:
path-scurry@2.0.2:
dependencies:
lru-cache: 11.2.7
lru-cache: 11.5.2
minipass: 7.1.3
path-to-regexp@8.3.0: {}

View File

@@ -23,8 +23,10 @@ overrides:
# workspace cannot resolve conflicting pi type surfaces.
# FNXC:ModelCatalog 2026-07-22-12:00: Bumped workspace override pin 0.80.10 → 0.81.1
# to match guarded package manifests (cli/core/engine/dashboard/pi-claude-cli).
'@earendil-works/pi-ai': 0.81.1
'@earendil-works/pi-coding-agent': 0.81.1
# FNXC:ModelCatalog 2026-07-24-12:00: FN-8564 advances the matched runtime pair
# to 0.82.0. Wildcard consumers must resolve the exact guarded Pi API surface.
'@earendil-works/pi-ai': 0.82.0
'@earendil-works/pi-coding-agent': 0.82.0
# FNXC:DesktopEmbeddedPostgres 2026-07-14-09:30:
# Desktop release jobs cross-build Intel and ARM64 artifacts on one host. Install
# optional native payloads for both CPU families on the current OS so each

View File

@@ -7,8 +7,8 @@ import {
const pinnedManifest = {
dependencies: {
"@earendil-works/pi-ai": "0.81.1",
"@earendil-works/pi-coding-agent": "0.81.1",
"@earendil-works/pi-ai": "0.82.0",
"@earendil-works/pi-coding-agent": "0.82.0",
},
};
@@ -22,7 +22,7 @@ describe("check-pi-versions-pinned", () => {
});
it("rejects caret, tilde, wildcard, x, and comparator ranges", () => {
for (const version of ["^0.81.1", "~0.81.1", "*", "0.81.x", ">=0.81.1"]) {
for (const version of ["^0.82.0", "~0.82.0", "*", "0.82.x", ">=0.82.0"]) {
const violations = validate({
...pinnedManifest,
dependencies: { ...pinnedManifest.dependencies, "@earendil-works/pi-ai": version },
@@ -34,7 +34,7 @@ describe("check-pi-versions-pinned", () => {
it("rejects a matched-set version mismatch", () => {
const violations = validate({
...pinnedManifest,
dependencies: { ...pinnedManifest.dependencies, "@earendil-works/pi-coding-agent": "0.81.2" },
dependencies: { ...pinnedManifest.dependencies, "@earendil-works/pi-coding-agent": "0.82.1" },
});
assert.equal(violations.some((violation) => violation.includes("same exact version")), true);
});