Files
PaperClipAI/docker/agent-runtime/buildx-bake.hcl
T
Harold KimandPaperclip 98df214917 fix: fail closed on unusable Codex auth during sandbox auth merge
When reusing a Codex sandbox, the workspace-restore step now performs
an auth-merge check before adopting the sandbox's auth.json. The merge
fails closed when:

- host or sandbox Codex auth is unusable (missing token or account)
- the subscription payload shapes differ between host and sandbox
- subscription account identities do not match

Additional hardening: node absence on PATH during the embedded decision
script now exits non-zero instead of silently falling through. Co-change
comments link parseAuth (the embedded script) to hasUsableAuthPayload
(codex-home.ts) so a future auth-format change cannot silently diverge
between the two implementations.

Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-07-09 10:08:57 +00:00

92 lines
2.1 KiB
HCL

group "default" {
targets = ["base", "claude", "codex", "gemini", "opencode", "pi", "hermes"]
}
variable "VERSION" { default = "dev" }
variable "REGISTRY" { default = "ghcr.io/paperclipai" }
target "base" {
context = "."
dockerfile = "docker/agent-runtime/Dockerfile.base"
platforms = ["linux/amd64"]
tags = ["${REGISTRY}/agent-runtime-base:${VERSION}"]
}
target "claude" {
context = "."
dockerfile = "docker/agent-runtime/Dockerfile.claude"
platforms = ["linux/amd64"]
tags = ["${REGISTRY}/agent-runtime-claude:${VERSION}"]
args = {
BASE_TAG = "${VERSION}"
}
contexts = {
"paperclipai/agent-runtime-base:${VERSION}" = "target:base"
}
}
target "codex" {
context = "."
dockerfile = "docker/agent-runtime/Dockerfile.codex"
platforms = ["linux/amd64"]
tags = ["${REGISTRY}/agent-runtime-codex:${VERSION}"]
args = {
BASE_TAG = "${VERSION}"
}
contexts = {
"paperclipai/agent-runtime-base:${VERSION}" = "target:base"
}
}
target "gemini" {
context = "."
dockerfile = "docker/agent-runtime/Dockerfile.gemini"
platforms = ["linux/amd64"]
tags = ["${REGISTRY}/agent-runtime-gemini:${VERSION}"]
args = {
BASE_TAG = "${VERSION}"
}
contexts = {
"paperclipai/agent-runtime-base:${VERSION}" = "target:base"
}
}
target "opencode" {
context = "."
dockerfile = "docker/agent-runtime/Dockerfile.opencode"
platforms = ["linux/amd64"]
tags = ["${REGISTRY}/agent-runtime-opencode:${VERSION}"]
args = {
BASE_TAG = "${VERSION}"
}
contexts = {
"paperclipai/agent-runtime-base:${VERSION}" = "target:base"
}
}
target "pi" {
context = "."
dockerfile = "docker/agent-runtime/Dockerfile.pi"
platforms = ["linux/amd64"]
tags = ["${REGISTRY}/agent-runtime-pi:${VERSION}"]
args = {
BASE_TAG = "${VERSION}"
}
contexts = {
"paperclipai/agent-runtime-base:${VERSION}" = "target:base"
}
}
target "hermes" {
context = "."
dockerfile = "docker/agent-runtime/Dockerfile.hermes"
platforms = ["linux/amd64"]
tags = ["${REGISTRY}/agent-runtime-hermes:${VERSION}"]
args = {
BASE_TAG = "${VERSION}"
}
contexts = {
"paperclipai/agent-runtime-base:${VERSION}" = "target:base"
}
}