From 9cd42f6df9356cb673cd12accd94dc3e171dc13d Mon Sep 17 00:00:00 2001 From: Dotta Date: Mon, 28 Sep 2026 16:16:34 -0500 Subject: [PATCH] Record Pi v3 immutable pack and timely startup proof Retain version 2 paid/runtime evidence separately. Record complete closure reproduction, 95 focused tests, 25 package checks, 16 native Rust tests and zero-prompt launch results. Co-Authored-By: Paperclip --- doc/architecture/runner-pi-capabilities.md | 30 +++--- ...ider-pack-proof.darwin-arm64.dd78df1e.json | 92 +++++++++++++++++++ ...line-provider-pack-proof.darwin-arm64.json | 86 ++++++++++++----- .../startup-diagnostic.darwin-arm64.json | 12 +++ 4 files changed, 187 insertions(+), 33 deletions(-) create mode 100644 packages/paperclip-runner/test-fixtures/pi-acp/offline-provider-pack-proof.darwin-arm64.dd78df1e.json diff --git a/doc/architecture/runner-pi-capabilities.md b/doc/architecture/runner-pi-capabilities.md index aef70da9df6..bb14b9828ce 100644 --- a/doc/architecture/runner-pi-capabilities.md +++ b/doc/architecture/runner-pi-capabilities.md @@ -242,17 +242,25 @@ helper discards failed-attempt usage, so any retry or missing compaction receipt invalidates complete-turn token/cost totals instead of inventing complete coverage. The retained [macOS ARM64 provider-pack admission proof](../../packages/paperclip-runner/test-fixtures/pi-acp/offline-provider-pack-proof.darwin-arm64.json) -records source `dd78df1ef8b279c30c710c9b7a7f9fda22e321d6`, after foundation -`f063fbf2b`, including bounded immutable snapshot copying. Its manifest digest is -`sha256:f75d3de7814276508f3706edb6e4510ce1dcecbc3e8fa674991fd554e5a75273`. -Both independent clean dependency resolutions matched +records source `7710736ca3924c655c5b0efd172cfd3c0173766a`, with version 3 +runtime source `06cf356a8bc94f709fcd15606fe05e17933fe3b2`. The latter differs only +by the capability report and Pi evidence JSON; all execution tree hashes match. +Its manifest digest is +`sha256:eb31cadae93805b901d2565912121fca6e79024c0120b1bd7982e05215b5aa5a`. +Two independent clean dependency resolutions match `2c46a68811ba1d504a41b6f4d3f642bc93f4a1c615097754c9c6486881dba8e6`. The generic installation registry and immutable snapshot passed initialization -and rejected the missing bound credential before any model prompt. Current-source -verification passed the TypeScript and release Runner builds, 107 Vitest checks -(with one optional installation case skipped), and 22 package/receipt/materializer -checks using the newly built distribution. These checks do not constitute full -repository verification or authenticated qualification. +and rejected the exact missing-bound-credential error before any model prompt. +Full Runner session.open terminated with typed rejection in 12.111 seconds, +below the unchanged 30-second deadline; this is not authenticated success. + +Version 3 verification passes TypeScript and release Runner builds, 95 focused +Vitest cases in seven files including actual-distribution launch, 25 installed +package/receipt/materializer checks, and 16 native-provider Rust tests. These +checks do not constitute full repository verification or paid qualification. +The [version 2 dd78 proof](../../packages/paperclip-runner/test-fixtures/pi-acp/offline-provider-pack-proof.darwin-arm64.dd78df1e.json) +retains the earlier pack used for hello, model admission and restrictive denial. +Its 107 Vitest checks and 22 installed checks remain tied to that source. The [9f2d0420e proof](../../packages/paperclip-runner/test-fixtures/pi-acp/offline-provider-pack-proof.darwin-arm64.9f2d0420e.json) retains the earlier source and pack that reproduced the startup timeout. Its 97 @@ -469,8 +477,8 @@ These changes alter the immutable wrapper and owned extension. All three target closure pins and the versioned profile digest change; version 2 warm snapshots are rejected. Earlier local hello, restrictive-denial and Linux initialization proofs remain tied to their version 2 execution source. Version 3 must complete -fresh immutable-pack checks and paid qualification before those behaviors can be -claimed for its bytes. +fresh paid qualification before those behaviors can be claimed for its bytes; +the new immutable-pack checks above pass. The [restrictive-denial proof](../../packages/paperclip-runner/test-fixtures/pi-acp/native-denial-proof.darwin-arm64.json) diff --git a/packages/paperclip-runner/test-fixtures/pi-acp/offline-provider-pack-proof.darwin-arm64.dd78df1e.json b/packages/paperclip-runner/test-fixtures/pi-acp/offline-provider-pack-proof.darwin-arm64.dd78df1e.json new file mode 100644 index 00000000000..35e2447d4cc --- /dev/null +++ b/packages/paperclip-runner/test-fixtures/pi-acp/offline-provider-pack-proof.darwin-arm64.dd78df1e.json @@ -0,0 +1,92 @@ +{ + "schema": "paperclip.pi-provider-pack-offline-proof.v1", + "recordedAt": "2026-09-28T20:17:59.387Z", + "classification": "offline_candidate_admission", + "source": { + "runnerRevision": "dd78df1ef8b279c30c710c9b7a7f9fda22e321d6", + "distDigest": "sha256:2df3f6f348001bd1dcfc1c0a151533ebbc00295bc37518f83c68a73d3637e3f6", + "bridgeDigest": "sha256:a852df2c032b5f353db29012c397aa6070891116a699a459a94f044e3890f057", + "productionLockDigest": "sha256:e0c928a494f90ddad3c00791e83f09315ee8c82df2a0418a809dcf93649a8ab3", + "note": "Built from Pi source dd78df1e after foundation f063fbf2b, including bounded immutable snapshot copy, explicit candidate admission, exact completion instructions and paused-cost coverage. This probe executed the deployed generic installation registry and immutable snapshot. Every capability field was asserted from its actual initialize response. No prompt was sent.", + "executionTrees": { + "packages/paperclip-runner/src": "a8123cb4396c77ce0127d5ccf49d3584b63a9a58", + "packages/paperclip-runner/scripts": "9ede97769bb3f2bbfa8e02be220b5ce06e438a99", + "packages/paperclip-runner/runner": "2cc84e150aecbd5faf2c8bcecc4b6352c24dbca8", + "packages/paperclip-runner/protocol": "1d50458fb572d0c75f9a398f419209c52c23ba6f", + "patches": "1e2f846b8b2dda202b79ee83baeb0860a3b9ab64", + "server/src": "b267adc1e0ad36955b68314829cfd4256ab88d37", + "tests/runner-e2e": "5ff4b8a85a14e3e005e3e240c145899c0bc742b5" + } + }, + "environment": { + "platform": "darwin", + "architecture": "arm64", + "nodeVersion": "24.19.0", + "execution": "local macOS ARM64; immutable guarded provider snapshot", + "packageManager": "pnpm@9.15.4" + }, + "candidate": { + "agent": "pi", + "qualification": "pending", + "agentProfileVersion": 2, + "declaredModel": "openrouter/deepseek/deepseek-v4-flash-0731", + "reportedModelId": null, + "modelVerification": "not_performed_authentication_missing", + "wrapperVersion": "0.0.33", + "runtimeVersion": "0.84.2", + "profileDigest": "sha256:0f687e38cb3c607a01fab80f03e19bbbf5cb53a8afb1fc40d71f9ab54551cff1", + "closureDigest": "sha256:b30047dce9c4c25e1fbc88a1aa828690a6a11ebdc3f6fcc083875986eb2d9585", + "assetTreeDigest": "sha256:5c046265335d4a6924efcd207f837d5aa0e0fc3baa0bf6ea7059afe8d6ab3939", + "distributionManifestDigest": "sha256:406345b3b75d8aee399da886fbdf8566aaaa44ff29fe3462da21f0c29901aecd", + "wrapperDigest": "sha256:2eb201c3a931177490a8e18f4a8392f00cbcf21847e9cc171de528da5e253935", + "helperDigest": "sha256:4333d284ff06ab1195e49630041f0b03a486a92fc678100525ad107e0982dba1", + "extensionDigest": "sha256:0a2ca138d6d87a85498bd982ee64543ea8b14f2ecceded96cfc27b0836cc4254" + }, + "providerPack": { + "manifestDigest": "sha256:f75d3de7814276508f3706edb6e4510ce1dcecbc3e8fa674991fd554e5a75273", + "portableNodeDigest": "sha256:27db838bb204ef7c21df2931f5656e4c8fb32e6e947f363a402b49714d32b5b1", + "piNodeDigest": "sha256:27db838bb204ef7c21df2931f5656e4c8fb32e6e947f363a402b49714d32b5b1", + "acpxSidecarDigest": "sha256:f51286992633bc54b6b169c255d3620146dfa975b24f22aae69b73994a234aa9" + }, + "observed": { + "closedSnapshotLaunch": true, + "acpInitialize": "passed", + "authMethods": [], + "capabilities": { + "version": 1, + "steering": true, + "queuedFollowUp": true, + "questions": [ + "select", + "confirm", + "input", + "editor" + ], + "nativePermissions": true, + "promptUsage": true, + "nativePlan": false, + "pendingRequestRecovery": "live-process-only" + }, + "sessionNew": "rejected_authentication_missing", + "expectedError": "Bind the configured OpenRouter API credential to this Paperclip runtime.", + "missingCredentialRejected": true, + "capabilityProvenance": "Read and asserted in full from this pack launch.", + "rpcMethods": [ + "initialize", + "session/new" + ] + }, + "usage": { + "providerCalls": 0, + "promptRequests": 0, + "paidProviderCalls": 0, + "credentials": "none", + "spentUsd": 0 + }, + "limitations": [ + "No provider authentication, model prompt, or reported currentModelId was verified.", + "Native tool execution, permissions, questions, and semantic MCP calls were not exercised by this pack-launch probe.", + "Linux x64, macOS x64, and Daytona execution were not exercised.", + "Production qualification remains pending." + ] +} diff --git a/packages/paperclip-runner/test-fixtures/pi-acp/offline-provider-pack-proof.darwin-arm64.json b/packages/paperclip-runner/test-fixtures/pi-acp/offline-provider-pack-proof.darwin-arm64.json index 35e2447d4cc..9ed5737d323 100644 --- a/packages/paperclip-runner/test-fixtures/pi-acp/offline-provider-pack-proof.darwin-arm64.json +++ b/packages/paperclip-runner/test-fixtures/pi-acp/offline-provider-pack-proof.darwin-arm64.json @@ -1,22 +1,24 @@ { "schema": "paperclip.pi-provider-pack-offline-proof.v1", - "recordedAt": "2026-09-28T20:17:59.387Z", + "recordedAt": "2026-09-28T21:14:07.293Z", "classification": "offline_candidate_admission", "source": { - "runnerRevision": "dd78df1ef8b279c30c710c9b7a7f9fda22e321d6", - "distDigest": "sha256:2df3f6f348001bd1dcfc1c0a151533ebbc00295bc37518f83c68a73d3637e3f6", - "bridgeDigest": "sha256:a852df2c032b5f353db29012c397aa6070891116a699a459a94f044e3890f057", - "productionLockDigest": "sha256:e0c928a494f90ddad3c00791e83f09315ee8c82df2a0418a809dcf93649a8ab3", - "note": "Built from Pi source dd78df1e after foundation f063fbf2b, including bounded immutable snapshot copy, explicit candidate admission, exact completion instructions and paused-cost coverage. This probe executed the deployed generic installation registry and immutable snapshot. Every capability field was asserted from its actual initialize response. No prompt was sent.", + "runnerRevision": "7710736ca3924c655c5b0efd172cfd3c0173766a", + "distDigest": "sha256:8e338aeae5f127fce97e55cc17e315a995ae0c9dc04592c3632335caa3b18ee7", + "bridgeDigest": "sha256:7d0e7ea882992dd3b8b713ff370de95178d70cc96c7e8a67a254b54cef6c8dd3", + "productionLockDigest": "sha256:2c46a68811ba1d504a41b6f4d3f642bc93f4a1c615097754c9c6486881dba8e6", + "note": "Built with the Pi version 3 authenticated MCP error and standard Bash output fixes, shared version 3 profile admission, and bounded immutable snapshot copying. This probe executed the deployed generic installation registry and immutable snapshot. Every capability field below was read and asserted from this actual initialize response. No prompt was sent.", "executionTrees": { - "packages/paperclip-runner/src": "a8123cb4396c77ce0127d5ccf49d3584b63a9a58", - "packages/paperclip-runner/scripts": "9ede97769bb3f2bbfa8e02be220b5ce06e438a99", - "packages/paperclip-runner/runner": "2cc84e150aecbd5faf2c8bcecc4b6352c24dbca8", + "packages/paperclip-runner/src": "7df6b47574e6838e63a7d13c403c615a749702db", + "packages/paperclip-runner/scripts": "f845a2dd5b1ac2f1a4ef8d95db8fba2daea9999f", + "packages/paperclip-runner/runner": "9c595f7eae18197bb5cfd61c1af463df0a8741cd", "packages/paperclip-runner/protocol": "1d50458fb572d0c75f9a398f419209c52c23ba6f", - "patches": "1e2f846b8b2dda202b79ee83baeb0860a3b9ab64", + "patches": "784152935b091eed6ea1795d39c23cfbbd154ab7", "server/src": "b267adc1e0ad36955b68314829cfd4256ab88d37", "tests/runner-e2e": "5ff4b8a85a14e3e005e3e240c145899c0bc742b5" - } + }, + "runtimeCodeRevision": "06cf356a8bc94f709fcd15606fe05e17933fe3b2", + "runtimeTreeEquality": "7710736ca adds only the capability report and Pi evidence JSON after06cf356a8; all listed execution trees match." }, "environment": { "platform": "darwin", @@ -28,25 +30,25 @@ "candidate": { "agent": "pi", "qualification": "pending", - "agentProfileVersion": 2, + "agentProfileVersion": 3, "declaredModel": "openrouter/deepseek/deepseek-v4-flash-0731", "reportedModelId": null, "modelVerification": "not_performed_authentication_missing", "wrapperVersion": "0.0.33", "runtimeVersion": "0.84.2", - "profileDigest": "sha256:0f687e38cb3c607a01fab80f03e19bbbf5cb53a8afb1fc40d71f9ab54551cff1", - "closureDigest": "sha256:b30047dce9c4c25e1fbc88a1aa828690a6a11ebdc3f6fcc083875986eb2d9585", - "assetTreeDigest": "sha256:5c046265335d4a6924efcd207f837d5aa0e0fc3baa0bf6ea7059afe8d6ab3939", - "distributionManifestDigest": "sha256:406345b3b75d8aee399da886fbdf8566aaaa44ff29fe3462da21f0c29901aecd", - "wrapperDigest": "sha256:2eb201c3a931177490a8e18f4a8392f00cbcf21847e9cc171de528da5e253935", + "profileDigest": "sha256:72cb225288376f733b9ed3afa5e13565eb4152f0de509bc1181382fa44bee472", + "closureDigest": "sha256:a523fa338cef7db88a42b81e2dc8a5cc41b78775aed1be0a9439f6622ea8a710", + "assetTreeDigest": "sha256:af5213260863e4618a7137d8b647a19ae2e1916a40993ada6ee6ade659ae991b", + "distributionManifestDigest": "sha256:a31cd4912a2dccbf8d2b66794bfeb7f27aeb68ee3d2456359a9d326afacd2378", + "wrapperDigest": "sha256:df6b6270d95154aef058e3dacb766d0f0ca0d26fbfaccc4c804cdb088fd89e1e", "helperDigest": "sha256:4333d284ff06ab1195e49630041f0b03a486a92fc678100525ad107e0982dba1", - "extensionDigest": "sha256:0a2ca138d6d87a85498bd982ee64543ea8b14f2ecceded96cfc27b0836cc4254" + "extensionDigest": "sha256:55d898be2c0a5ba7ff6abdcd33b83dd4af8e2a9c0561fd0f0460ee78925f4b87" }, "providerPack": { - "manifestDigest": "sha256:f75d3de7814276508f3706edb6e4510ce1dcecbc3e8fa674991fd554e5a75273", + "manifestDigest": "sha256:eb31cadae93805b901d2565912121fca6e79024c0120b1bd7982e05215b5aa5a", "portableNodeDigest": "sha256:27db838bb204ef7c21df2931f5656e4c8fb32e6e947f363a402b49714d32b5b1", "piNodeDigest": "sha256:27db838bb204ef7c21df2931f5656e4c8fb32e6e947f363a402b49714d32b5b1", - "acpxSidecarDigest": "sha256:f51286992633bc54b6b169c255d3620146dfa975b24f22aae69b73994a234aa9" + "acpxSidecarDigest": "sha256:37e3d1234c5f81b4257fdf3a1074c97fff42625e84b10a6418721fec4d3670e0" }, "observed": { "closedSnapshotLaunch": true, @@ -74,7 +76,14 @@ "rpcMethods": [ "initialize", "session/new" - ] + ], + "fullRunnerSessionOpen": { + "status": "typed_rejection_without_prompt", + "classification": "session_ensure_failed", + "durationIncludingCloseMs": 12111, + "configuredSessionOpenDeadlineMs": 30000, + "authenticatedSuccess": false + } }, "usage": { "providerCalls": 0, @@ -88,5 +97,38 @@ "Native tool execution, permissions, questions, and semantic MCP calls were not exercised by this pack-launch probe.", "Linux x64, macOS x64, and Daytona execution were not exercised.", "Production qualification remains pending." - ] + ], + "runnerd": { + "sourceRevision": "06cf356a8bc94f709fcd15606fe05e17933fe3b2", + "rustTree": "9c595f7eae18197bb5cfd61c1af463df0a8741cd", + "sha256": "2c8efdc99f988b1c8ab0e270677a3321af0fd6d5789dbf1b671faa921031b42f", + "profileVersion": 3, + "profileDigest": "sha256:72cb225288376f733b9ed3afa5e13565eb4152f0de509bc1181382fa44bee472" + }, + "verification": { + "typescriptBuild": "passed", + "releaseRunnerBuild": "passed", + "focusedVitest": { + "files": 7, + "passed": 95, + "skipped": 0, + "actualDistributionInstallationIncluded": true + }, + "installedPackageChecksPassed": 25, + "nativeProviderRustTestsPassed": 16, + "cleanLock": { + "sha256": "2c46a68811ba1d504a41b6f4d3f642bc93f4a1c615097754c9c6486881dba8e6", + "independentResolutions": 2, + "arguments": [ + "--resolution-only", + "--ignore-scripts", + "--no-frozen-lockfile" + ], + "trackedLockChanged": false + }, + "failedBeforeRepair": { + "mcpValidationErrorCases": 1, + "bashStructuredOutputCases": 3 + } + } } diff --git a/packages/paperclip-runner/test-fixtures/pi-acp/startup-diagnostic.darwin-arm64.json b/packages/paperclip-runner/test-fixtures/pi-acp/startup-diagnostic.darwin-arm64.json index f6c88f1854e..0633e0f144d 100644 --- a/packages/paperclip-runner/test-fixtures/pi-acp/startup-diagnostic.darwin-arm64.json +++ b/packages/paperclip-runner/test-fixtures/pi-acp/startup-diagnostic.darwin-arm64.json @@ -81,5 +81,17 @@ "credentials": "none", "promptCalls": 0, "providerCalls": 0 + }, + "version3CredentialFreeRunnerProbe": { + "sourceRevision": "7710736ca3924c655c5b0efd172cfd3c0173766a", + "runtimeCodeRevision": "06cf356a8bc94f709fcd15606fe05e17933fe3b2", + "providerPackDigest": "sha256:eb31cadae93805b901d2565912121fca6e79024c0120b1bd7982e05215b5aa5a", + "profileVersion": 3, + "profileDigest": "sha256:72cb225288376f733b9ed3afa5e13565eb4152f0de509bc1181382fa44bee472", + "runnerdDigest": "sha256:2c8efdc99f988b1c8ab0e270677a3321af0fd6d5789dbf1b671faa921031b42f", + "durationIncludingCloseMs": 12111, + "result": "typed session_ensure_failed rejection before prompt; direct ACP probe separately verified missing-bound-credential error", + "authenticatedSessionSuccess": false, + "promptCalls": 0 } }