Files
PaperClipAI/tests/runner-e2e/report-lock.patch
T
DottaandPaperclip cb75c9510c test(evals): restore chat setup and pin secure-entry guidance (#18914)
## Thinking Path

> - Paperclip manages agent work and keeps credentials under human
control.
> - Agents discover supported operations through existing API and
connection help.
> - The measured secret-entry case chose external provider setup instead
of native secure entry.
> - The reviewed help distinguishes these actions and keeps the same
permissions.
> - Two related help changes explain recorded progress and partial team
installation.
> - The first remote setup found stale reporting-lock metadata on
trusted master.
> - This PR pins the candidate and renews that existing lock correction
for narrow remote checks.

## Linked Issues or Issue Description

Refs #18909. Refs #18780.

The previous measurement did not complete the requested native
secret-entry handoff. The next representative is case 580 on the
existing TestOps plan 102 and job 100. Case 610 can use the same source
for a separate representative. The progress-help change does not claim
that case 466 passes.

## What Changed

- Pin immutable candidate `b1ea76b286b870bb62a80eebf3fe00feed6f12c1`,
which retains the approval-link fix from #18909.
- The candidate adds only reviewed secret-entry guidance, three API help
changes, and the matching SDK source registry entry. Its delta from the
approval-link candidate covers three files.
- Update the launcher snapshot target and expected target test.
- Record the actual new SDK compilation and its one changed runtime
JavaScript file. Preserve the previous qualification as history.
- Refresh only the existing reporting-lock policy and patch from the
prior reviewed lock to current master. The helper, actual lockfile,
credential rules, and candidate source stay unchanged.
- Keep all 244 case rows, inputs, clocks, model, private evidence
controls, and held runtime cases unchanged.

## Verification

- The owning secret help checks passed: 47 server/shared tests and 31
Secrets UI tests. The real discovery search failed before the help
change and passed after it.
- The owning progress and team-install search regressions each passed
with their full 2057-test runner API suite.
- In the candidate, the existing `scripts/ensure-plugin-build-deps.mjs`
freshly compiled shared and plugin SDK outputs and exited zero. The
emitted guidance consumer passed. Measured output changes contain only
the guidance JavaScript, its declarations and maps, and two build
receipts.
- The old registry and default source proof rejected the changed input.
After the existing registry generator updated that one entry, the
506-input check and default source proof passed. Runtime, compiler,
parser, Zod, scanner, and canary certificate pins did not change.
- All 51 affected SDK tests and all 20 input/build custody controls
passed. One initial suite failed to load a missing local dependency;
that setup failure is retained. The run with the existing package
dependency links passed.
- The three existing TestOps contract, adapter, and manifest test files
passed: 47 tests, zero failures.
- The first case-564 attempt stopped before credentials or model
execution: the trusted controller lock had moved through normal
dependency updates while its reporting-lock metadata remained stale.
That attempt has no original native grade and is not a product failure
or a PASS.
- The existing lock-refresh command generated the exact reviewed
correction from lock `54a81b2e` to current master lock `7540075e`. All
seven correction, tamper, and refresh tests pass. The actual
current-controller frozen install with lifecycle scripts disabled and
both reporting/private-transfer imports pass. The frozen candidate still
accepts its unchanged own lock. An initial offline install found an
uncached package; the regular frozen install passed.
- Fresh CI and review for the renewed head are pending. Local help
checks do not establish a native agent outcome. No new TestOps PASS is
claimed.

## Risks

Help can improve discovery without changing the agent's final choice.
The representative runs must test that remaining gap. The candidate
retains the prior catalog application base plus the reviewed fixes. It
does not refresh or qualify the full catalog. Automatic model retries
remain zero and the authorized concurrency cap remains eight.

## Model Used

OpenAI `gpt-6.1-sol` through Codex. Capabilities used: source analysis,
code integration, compilation, and local validation. The host does not
expose the context-window limit. The model under evaluation remains
OpenCode/OpenRouter `deepseek/deepseek-v4.1-flash-1017`.

## Checklist

- [x] I have included a thinking path that traces from project context
to this change
- [x] I have specified the model used (with version and capability
details)
- [x] I have checked ROADMAP.md and confirmed this PR does not duplicate
planned core work
- [x] I have searched GitHub for duplicate or related PRs and linked
them above
- [x] I have either (a) linked existing issues with `Fixes: #` / `Closes
#` / `Refs #` OR (b) described the issue in-PR following the relevant
issue template
- [x] I have not referenced internal/instance-local Paperclip issues or
links (only public GitHub `#NNN` / `github.com/paperclipai/paperclip`
URLs)
- [x] My branch name describes the change (e.g. `docs/...`, `fix/...`)
and contains no internal Paperclip ticket id or instance-derived details
- [x] I have run tests locally and they pass
- [x] I have added or updated tests where applicable
- [x] I have updated relevant documentation to reflect my changes
- [x] I have considered and documented any risks above
- [ ] All Paperclip CI gates are green
- [ ] Greptile is 5/5 with no open P2s, recommendations, or follow-ups
- [x] I will address all Greptile and reviewer comments before
requesting merge

---------

Co-authored-by: Paperclip <noreply@paperclip.ing>
2026-11-03 21:28:49 -06:00

118 lines
8.8 KiB
Diff

diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 2953e8daef..f586e6f8f2 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -426,8 +426,8 @@ importers:
specifier: ^24.0.0
version: 24.13.3
drizzle-kit:
- specifier: ^0.31.10
- version: 0.31.10
+ specifier: ^0.31.11
+ version: 0.31.11
tsx:
specifier: ^4.23.15
version: 4.23.15
@@ -1015,7 +1015,7 @@ importers:
version: 2.1.0(@grpc/grpc-js@1.14.5)(nice-grpc-common@2.0.4)(nice-grpc@2.1.17)
'@vercel/connect':
specifier: 2.3.3
- version: 2.3.3(@chat-adapter/slack@4.39.0(patch_hash=226jj24akljccsfbw7bcxujz4u)(ai@7.0.130(zod@4.4.3))(zod@4.4.3))(@modelcontextprotocol/sdk@1.31.0(zod@4.4.3))(ai@7.0.130(zod@4.4.3))(better-auth@1.7.2(@opentelemetry/api@1.9.1)(drizzle-kit@0.31.10)(drizzle-orm@0.45.2(@opentelemetry/api@1.9.1)(kysely@0.29.5)(pg@8.18.0)(postgres@3.4.9(patch_hash=6q4cic6qawywsyeo2spgnjamda)))(pg@8.18.0)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(vitest@5.0.3(@opentelemetry/api@1.9.1)(@types/node@24.13.3)(jsdom@30.0.1(@noble/hashes@2.4.0))(vite@8.2.2(@types/node@24.13.3)(esbuild@0.28.2)(jiti@2.7.0)(tsx@4.23.15)(yaml@2.9.1))))
+ version: 2.3.3(@chat-adapter/slack@4.39.0(patch_hash=226jj24akljccsfbw7bcxujz4u)(ai@7.0.130(zod@4.4.3))(zod@4.4.3))(@modelcontextprotocol/sdk@1.31.0(zod@4.4.3))(ai@7.0.130(zod@4.4.3))(better-auth@1.7.2(@opentelemetry/api@1.9.1)(drizzle-kit@0.31.11)(drizzle-orm@0.45.2(@opentelemetry/api@1.9.1)(kysely@0.29.5)(pg@8.18.0)(postgres@3.4.9(patch_hash=6q4cic6qawywsyeo2spgnjamda)))(pg@8.18.0)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(vitest@5.0.3(@opentelemetry/api@1.9.1)(@types/node@24.13.3)(jsdom@30.0.1(@noble/hashes@2.4.0))(vite@8.2.2(@types/node@24.13.3)(esbuild@0.28.2)(jiti@2.7.0)(tsx@4.23.15)(yaml@2.9.1))))
acorn:
specifier: 8.18.0
version: 8.18.0
@@ -1033,7 +1033,7 @@ importers:
version: 3.0.1(ajv@8.20.0)
better-auth:
specifier: 1.7.2
- version: 1.7.2(@opentelemetry/api@1.9.1)(drizzle-kit@0.31.10)(drizzle-orm@0.45.2(@opentelemetry/api@1.9.1)(kysely@0.29.5)(pg@8.18.0)(postgres@3.4.9(patch_hash=6q4cic6qawywsyeo2spgnjamda)))(pg@8.18.0)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(vitest@5.0.3(@opentelemetry/api@1.9.1)(@types/node@24.13.3)(jsdom@30.0.1(@noble/hashes@2.4.0))(vite@8.2.2(@types/node@24.13.3)(esbuild@0.28.2)(jiti@2.7.0)(tsx@4.23.15)(yaml@2.9.1)))
+ version: 1.7.2(@opentelemetry/api@1.9.1)(drizzle-kit@0.31.11)(drizzle-orm@0.45.2(@opentelemetry/api@1.9.1)(kysely@0.29.5)(pg@8.18.0)(postgres@3.4.9(patch_hash=6q4cic6qawywsyeo2spgnjamda)))(pg@8.18.0)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(vitest@5.0.3(@opentelemetry/api@1.9.1)(@types/node@24.13.3)(jsdom@30.0.1(@noble/hashes@2.4.0))(vite@8.2.2(@types/node@24.13.3)(esbuild@0.28.2)(jiti@2.7.0)(tsx@4.23.15)(yaml@2.9.1)))
chat:
specifier: 4.39.0
version: 4.39.0(ai@7.0.130(zod@4.4.3))(zod@4.4.3)
@@ -6667,8 +6667,8 @@ packages:
peerDependencies:
react: ^19.2.8
- drizzle-kit@0.31.10:
- resolution: {integrity: sha512-7OZcmQUrdGI+DUNNsKBn1aW8qSoKuTH7d0mYgSP8bAzdFzKoovxEFnoGQp2dVs82EOJeYycqRtciopszwUf8bw==}
+ drizzle-kit@0.31.11:
+ resolution: {integrity: sha512-YCYqxTLIB2OCqf6w9/Vef13baBVbwQIPcbT4Y56AfO6B9ajZhDhD8Jkveg/hJvT/iuMloKD/IYYkyMMNhr7Kqg==}
hasBin: true
drizzle-orm@0.45.2:
@@ -7066,8 +7066,8 @@ packages:
resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==}
engines: {node: '>=10'}
- get-tsconfig@4.14.0:
- resolution: {integrity: sha512-yTb+8DXzDREzgvYmh6s9vHsSVCHeC0G3PI5bEXNBHtmshPnO+S5O7qgLEOn0I5QvMy6kpZN8K1NKGyilLb93wA==}
+ get-tsconfig@4.14.3:
+ resolution: {integrity: sha512-++QEw4DIY7WGoukz+/+A/8dGYPT9l9yIadnmSgZ8Rjr3YVSVDipQSO9CdnJo9ePqFqUUqh+wk9uIaoiAwsiPkA==}
glob@13.0.6:
resolution: {integrity: sha512-Wjlyrolmm8uDpm/ogGyXZXb1Z+Ca2B8NbJwqBVg0axK9GbBeoS7yGV6vjXnYdGm6X53iehEuxxbyiKp8QmN4Vw==}
@@ -10641,7 +10641,7 @@ snapshots:
'@esbuild-kit/esm-loader@2.6.5':
dependencies:
'@esbuild-kit/core-utils': 3.3.2
- get-tsconfig: 4.14.0
+ get-tsconfig: 4.14.3
'@esbuild/aix-ppc64@0.25.12':
optional: true
@@ -13859,14 +13859,14 @@ snapshots:
dependencies:
execa: 5.1.1
- '@vercel/connect@2.3.3(@chat-adapter/slack@4.39.0(patch_hash=226jj24akljccsfbw7bcxujz4u)(ai@7.0.130(zod@4.4.3))(zod@4.4.3))(@modelcontextprotocol/sdk@1.31.0(zod@4.4.3))(ai@7.0.130(zod@4.4.3))(better-auth@1.7.2(@opentelemetry/api@1.9.1)(drizzle-kit@0.31.10)(drizzle-orm@0.45.2(@opentelemetry/api@1.9.1)(kysely@0.29.5)(pg@8.18.0)(postgres@3.4.9(patch_hash=6q4cic6qawywsyeo2spgnjamda)))(pg@8.18.0)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(vitest@5.0.3(@opentelemetry/api@1.9.1)(@types/node@24.13.3)(jsdom@30.0.1(@noble/hashes@2.4.0))(vite@8.2.2(@types/node@24.13.3)(esbuild@0.28.2)(jiti@2.7.0)(tsx@4.23.15)(yaml@2.9.1))))':
+ '@vercel/connect@2.3.3(@chat-adapter/slack@4.39.0(patch_hash=226jj24akljccsfbw7bcxujz4u)(ai@7.0.130(zod@4.4.3))(zod@4.4.3))(@modelcontextprotocol/sdk@1.31.0(zod@4.4.3))(ai@7.0.130(zod@4.4.3))(better-auth@1.7.2(@opentelemetry/api@1.9.1)(drizzle-kit@0.31.11)(drizzle-orm@0.45.2(@opentelemetry/api@1.9.1)(kysely@0.29.5)(pg@8.18.0)(postgres@3.4.9(patch_hash=6q4cic6qawywsyeo2spgnjamda)))(pg@8.18.0)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(vitest@5.0.3(@opentelemetry/api@1.9.1)(@types/node@24.13.3)(jsdom@30.0.1(@noble/hashes@2.4.0))(vite@8.2.2(@types/node@24.13.3)(esbuild@0.28.2)(jiti@2.7.0)(tsx@4.23.15)(yaml@2.9.1))))':
dependencies:
'@vercel/oidc': 3.8.9
optionalDependencies:
'@chat-adapter/slack': 4.39.0(patch_hash=226jj24akljccsfbw7bcxujz4u)(ai@7.0.130(zod@4.4.3))(zod@4.4.3)
'@modelcontextprotocol/sdk': 1.31.0(zod@4.4.3)
ai: 7.0.130(zod@4.4.3)
- better-auth: 1.7.2(@opentelemetry/api@1.9.1)(drizzle-kit@0.31.10)(drizzle-orm@0.45.2(@opentelemetry/api@1.9.1)(kysely@0.29.5)(pg@8.18.0)(postgres@3.4.9(patch_hash=6q4cic6qawywsyeo2spgnjamda)))(pg@8.18.0)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(vitest@5.0.3(@opentelemetry/api@1.9.1)(@types/node@24.13.3)(jsdom@30.0.1(@noble/hashes@2.4.0))(vite@8.2.2(@types/node@24.13.3)(esbuild@0.28.2)(jiti@2.7.0)(tsx@4.23.15)(yaml@2.9.1)))
+ better-auth: 1.7.2(@opentelemetry/api@1.9.1)(drizzle-kit@0.31.11)(drizzle-orm@0.45.2(@opentelemetry/api@1.9.1)(kysely@0.29.5)(pg@8.18.0)(postgres@3.4.9(patch_hash=6q4cic6qawywsyeo2spgnjamda)))(pg@8.18.0)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(vitest@5.0.3(@opentelemetry/api@1.9.1)(@types/node@24.13.3)(jsdom@30.0.1(@noble/hashes@2.4.0))(vite@8.2.2(@types/node@24.13.3)(esbuild@0.28.2)(jiti@2.7.0)(tsx@4.23.15)(yaml@2.9.1)))
'@vercel/oidc@3.2.0': {}
@@ -14143,7 +14143,7 @@ snapshots:
before-after-hook@4.0.0: {}
- better-auth@1.7.2(@opentelemetry/api@1.9.1)(drizzle-kit@0.31.10)(drizzle-orm@0.45.2(@opentelemetry/api@1.9.1)(kysely@0.29.5)(pg@8.18.0)(postgres@3.4.9(patch_hash=6q4cic6qawywsyeo2spgnjamda)))(pg@8.18.0)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(vitest@5.0.3(@opentelemetry/api@1.9.1)(@types/node@24.13.3)(jsdom@30.0.1(@noble/hashes@2.4.0))(vite@8.2.2(@types/node@24.13.3)(esbuild@0.28.2)(jiti@2.7.0)(tsx@4.23.15)(yaml@2.9.1))):
+ better-auth@1.7.2(@opentelemetry/api@1.9.1)(drizzle-kit@0.31.11)(drizzle-orm@0.45.2(@opentelemetry/api@1.9.1)(kysely@0.29.5)(pg@8.18.0)(postgres@3.4.9(patch_hash=6q4cic6qawywsyeo2spgnjamda)))(pg@8.18.0)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(vitest@5.0.3(@opentelemetry/api@1.9.1)(@types/node@24.13.3)(jsdom@30.0.1(@noble/hashes@2.4.0))(vite@8.2.2(@types/node@24.13.3)(esbuild@0.28.2)(jiti@2.7.0)(tsx@4.23.15)(yaml@2.9.1))):
dependencies:
'@better-auth/core': 1.7.2(@better-auth/utils@0.4.2)(@better-fetch/fetch@1.3.1)(@opentelemetry/api@1.9.1)(better-call@1.4.0(zod@4.4.3))(jose@6.2.10)(kysely@0.29.5)(nanostores@1.5.3)
'@better-auth/drizzle-adapter': 1.7.2(@better-auth/core@1.7.2(@better-auth/utils@0.4.2)(@better-fetch/fetch@1.3.1)(@opentelemetry/api@1.9.1)(better-call@1.4.0(zod@4.4.3))(jose@6.2.10)(kysely@0.29.5)(nanostores@1.5.3))(@better-auth/utils@0.4.2)(drizzle-orm@0.45.2(@opentelemetry/api@1.9.1)(kysely@0.29.5)(pg@8.18.0)(postgres@3.4.9(patch_hash=6q4cic6qawywsyeo2spgnjamda)))
@@ -14163,7 +14163,7 @@ snapshots:
nanostores: 1.5.3
zod: 4.4.3
optionalDependencies:
- drizzle-kit: 0.31.10
+ drizzle-kit: 0.31.11
drizzle-orm: 0.45.2(@opentelemetry/api@1.9.1)(kysely@0.29.5)(pg@8.18.0)(postgres@3.4.9(patch_hash=6q4cic6qawywsyeo2spgnjamda))
pg: 8.18.0
react: 19.2.8
@@ -14748,7 +14748,7 @@ snapshots:
react-is: 17.0.2
tslib: 2.8.1
- drizzle-kit@0.31.10:
+ drizzle-kit@0.31.11:
dependencies:
'@drizzle-team/brocli': 0.10.2
'@esbuild-kit/esm-loader': 2.6.5
@@ -15156,7 +15156,7 @@ snapshots:
get-stream@6.0.1: {}
- get-tsconfig@4.14.0:
+ get-tsconfig@4.14.3:
dependencies:
resolve-pkg-maps: 1.0.0