Skip to content

Cosigner: pin a runtime with telemetry, and make it importable - #58

Merged
aruokhai merged 2 commits into
mainfrom
cosigner-telemetry
Oct 11, 2026
Merged

aruokhai merged 2 commits into
mainfrom
cosigner-telemetry

Conversation

@aruokhai

Copy link
Copy Markdown
Contributor

What changes

  • enclave-bundle.lock → dev-enclave-dev-c4a0b96. This bundle is built from enclave-runtime main after Guest telemetry: tracing to X-Ray, metrics to CloudWatch runtime#4, which added guest telemetry: spans to X-Ray, metrics to CloudWatch.
    • The e2e moves from be65bd7 across 26 runtime commits, including the per-tenant ZFS pools from Implement Full Wallet Features #3.
    • The bundle's dev-enclave.sh interface is unchanged. The only difference is that the guest-env denylist prefix is now ENCLAVE_* instead of S3FS_*, and none of the cosigner's settings use either.
  • enclave:telemetry becomes importable. This vendors the runtime's wit/telemetry/telemetry.wit and includes enclave:telemetry/observed in the cosigner's world.
    • Not called yet, and free until it is. The release build's imports are identical with and without the include (checked with wasm-tools component wit). The cosigner therefore still instantiates on a runtime without telemetry.
  • stream.wit is re-synced to the new bundle's copy. Only a doc comment differs.
  • Org move: the Makefile's BUNDLE_URL and the lock's comment now name vtxos/enclave-runtime.

Why it's a separate PR

The vendored WIT has to match the bundle the cosigner is pinned to. That is why the telemetry part came back out of #57: the old pin predates telemetry. This PR moves the pin and the WIT together.

Testing

  • make enclave-bundle fetches the new tarball from vtxos/enclave-runtime and verifies its sha256.
  • make wit-drift is clean against it: notify, stream, tasks and telemetry.
  • All 231 cosigner tests pass, and the wasm builds.
  • The bundle's own publish run smoke-booted the whole stack from the tarball.
  • CI's Enclave e2e job runs the cosigner on the new runtime.

🤖 Generated with Claude Code

aruokhai and others added 2 commits October 11, 2026 21:23
- enclave-bundle.lock: dev-enclave-dev-c4a0b96, built from enclave-runtime
  main after vtxos/runtime#4 (guest telemetry). This moves the e2e
  from be65bd7 across 26 runtime commits, the per-tenant ZFS pools of #3
  among them. The bundle's dev-enclave.sh interface is unchanged.
- Vendor the runtime's wit/telemetry/telemetry.wit and include
  enclave:telemetry/observed in the cosigner's world, so the cosigner can
  report spans to X-Ray and metrics to CloudWatch. Not called yet, and free
  until it is: the release build's imports are identical with and without
  the include, so it still instantiates on a runtime without telemetry.
- wit/deps/stream/stream.wit: re-synced to the new bundle's copy (doc
  comment only).
- Makefile BUNDLE_URL and the lock's comment name vtxos/enclave-runtime
  after the org move.

`make enclave-bundle` fetches and verifies the new tarball, and
`make wit-drift` is clean against it. 231 cosigner tests pass.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…enrols

The new runtime gives each tenant its own ZFS pool in a fixed 200 MiB
region of the pool disk. The bundle's default 4 GiB disk holds about 17,
and this suite enrols about 30. On the first run against
dev-enclave-dev-c4a0b96, the 18th enrolment and every one after it were
refused (`registration was refused: {"error":"unavailable"}`), failing
11 tests.

`make e2e-enclave` now passes ZFS_SIZE=16G (E2E_ZFS_SIZE), about 80
regions. The image is sparse, so the size costs nothing until written.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@aruokhai
aruokhai merged commit 2bc4a33 into main Oct 11, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant