Skip to content

plimsoll v0.19.0

Choose a tag to compare

@carrollco carrollco released this 04 Oct 22:46
· 11 commits to main since this release

The Docker Cloud provider can now also speak the REST API Docker documents, kept as a backup behind one setting while the pre-launch Connect API, the only one with grants and image evidence, stays the default. The TypeScript code tool returns the digest of the run record it checked, Trigger.dev deployments have a guide and a starter repository, and the docker test suite refuses images built from other inputs. The clients are at 0.19.0.

Docker Cloud

  • The Docker Cloud provider can also speak the REST API Docker documents, as a backup. SANDBOX_DOCKERCLOUD_API chooses the wire API once, at startup: connect (the default) is Docker's pre-launch sandboxes API that earlier releases spoke, which Docker no longer documents; rest is the API Docker documents. Both passed the live suite on 2026-10-04, and the provider never switches between them at run time. Connect stays the default because it is the only one with what follows; REST is kept as the backup until it covers them, which matters if Docker withdraws the undocumented Connect endpoint. On rest:
    • No image identity is stated, because the REST API reports no booted image digest; a caller's software rule therefore fails closed, as on E2B. PLIMSOLL_HARDENED=1 refuses rest, and wants SANDBOX_DOCKERCLOUD_API=connect named rather than left to the default.
    • Grants are refused, and startup fails if SANDBOX_DOCKERCLOUD_GUARD_URL is set: after the guard's network rule is applied, the REST API declines to report the sandbox's policy, so plimsoll could not verify the rule took effect. A live test watches for that to change.
    • A run timeout above 270 seconds is refused: an exec on rest ends when its 300-second endpoint credential does.
    • SANDBOX_DOCKERCLOUD_API_URL defaults to the documented https://connect.docker.com/sandboxes; on Connect it stays required.
      Nothing changes for an existing Connect deployment. A value other than connect or rest fails startup. docs/dockercloud.md.

Clients

  • The TypeScript code tool reports the run record it checked. Every executeCode result, and every CodeSandboxes.run result, carries recordSha256, the SHA-256 of the run record the client recomputed and checked before returning. It identifies the checked record; it is not a signature. clients/typescript/README.md.
  • A guide for the Trigger.dev code tool. docs/trigger-dev.md covers what the agent receives (persistent cells, the isolation floor, the checked record), how the add-on follows Trigger.dev's code-sandbox recipe, and deploying a task that reaches a daemon.
  • @plimsollmark/client 0.19.0 on npm; the Python client is at 0.19.0 in the repository.

Docs

  • The README now says what the trial runner, run records and plimsoll-attest add up to: an exam on code an agent wrote, where the exam (the simulated system, the scenarios, the pass mark) stays with whoever runs it.
  • docs/dockercloud.md: the REST API shipped at Docker's launch on 2026-09-24, not after it; "Choosing the API" compares the two.

Contributors

  • make audit and make test run with -short, which the docker test helpers read as skip, so only make docker-suite starts containers. The plain gate takes under two minutes.
  • make docker-suite runs the docker tests that can share a host in parallel (DOCKER_PARALLEL, default 4), with the heaviest seven limited to three at a time; about 155 seconds, was about 356.
  • make docker-images stamps each image with io.plimsoll.inputs, a SHA-256 of the build context docker/ (minus the paths in docker/.dockerignore), and make docker-suite stops with "run make docker-images" when a built image's label differs, so a change under docker/ cannot pass on images built before it.
  • The Makefile includes an optional local.mk whose EXTRA_AUDIT steps make audit runs, for checks a working copy keeps to itself.