docs(runner): pass resolved lock digest in image commands

Co-Authored-By: Paperclip <noreply@paperclip.ing>
This commit is contained in:
DottaandPaperclip committed 2026-10-07 08:10:02 -05:00
1 parent 6a7a006b07
commit 0dea682031
2 files changed
+11 -8

No files matched your search

+7 -8
View File
@@ -122,17 +122,16 @@ lockfile. Resolve the complete workspace manifest graph in the build context
before invoking Docker, matching CI when a source commit precedes the lockfile
bot. The trusted workflow supplies this resolved lockfile as an immutable artifact.
The complete resolved lockfile must match `PAPERCLIP_RUNNER_LOCK_SHA256` before
package installation or lifecycle execution. Review and refresh that digest
with source dependency changes; registry-time resolution drift fails closed.
package installation or lifecycle execution. Compute that digest from the
resolved build lock; registry-time resolution drift fails closed.
The Product E2E workflow resolves one lockfile before the image build. It
verifies the downloaded artifact, then passes that artifact's SHA-256 as the
`PAPERCLIP_RUNNER_LOCK_SHA256` build argument. The Dockerfile checks the resolved
lock against this value before installation. The fixed Dockerfile default is
for standalone builds; it must not replace a campaign's verified lock digest.
Refresh the default from the clean tracked lockfile using the exact
`pnpm install --resolution-only --ignore-scripts --no-frozen-lockfile` command,
and verify a second resolution preserves the digest. A lockfile left by a
filtered or incremental install can retain stale importer patch identities.
lock against this value before installation. Standalone builds must also pass
the resolved lock's digest, as shown above; the Dockerfile has no default.
Use the exact `pnpm install --resolution-only --ignore-scripts --no-frozen-lockfile`
command. A lockfile left by a filtered or incremental install can retain stale
importer patch identities.
Refresh exact runtime versions and qualification digests together; do not
download dependencies when a task starts.
+4
View File
@@ -609,6 +609,9 @@ Use the immutable digest printed by the `Publish verified Daytona image` job,
or publish the current source locally:
```bash
# Resolve the build lock without committing the bot-owned root lockfile.
pnpm install --resolution-only --ignore-scripts --no-frozen-lockfile
lock_sha="$(shasum -a 256 pnpm-lock.yaml | cut -d ' ' -f 1)"
content_id="$(pnpm --silent test:e2e:runner:image-id)"
source_revision="$(git rev-parse HEAD)"
image="ghcr.io/paperclipai/paperclip-daytona-runner:e2e-content-${content_id}"
@@ -617,6 +620,7 @@ if ! docker buildx imagetools inspect "$image" >/dev/null 2>&1; then
--platform linux/amd64 \
--build-arg "PAPERCLIP_RUNNER_CONTENT_ID=${content_id}" \
--build-arg "PAPERCLIP_RUNNER_SOURCE_REVISION=${source_revision}" \
--build-arg "PAPERCLIP_RUNNER_LOCK_SHA256=${lock_sha}" \
--file docker/daytona-runner/Dockerfile \
--tag "$image" \
--push \