Summary
Upgrading 0.34.0 → 0.35.0, creating a sandbox from a mixin that does nothing but
extends: claude fails at kit artifact composition with a duplicate-credential error
for the base agent's built-in anthropic credential. The mixin declares no
credentials, services, or domains of its own. Reverting to 0.34.0 fixes it.
Environment
- sbx 0.35.0 — fails
- sbx 0.34.0 — works (clean bisect)
Minimal reproduction
spec.yaml (complete — nothing omitted):
schemaVersion: "1"
kind: mixin
name: sbx-035-bug
extends: claude
displayName: Repro
Create a sandbox using this mixin.
Actual result
ERROR: request failed: 400 Bad Request:
kit_artifacts: compose: compose: credential for service "anthropic"
defined in both "claude" and "sbx-035-bug"
Expected result
Composition succeeds. The anthropic credential is owned by the base claude
agent and only reaches the child layer via extends; it should be deduped, not
counted as two definitions.
Notes / ruling out the usual causes
- Not a stale/duplicate secret —
sbx secret list shows a single anthropic
(OAuth), no api-key shadow:
(global) service anthropic (oauth configured)
- The mixin adds no
network.serviceDomains / credentials, so the content
itself cannot introduce a second anthropic. The duplicate is produced purely
by the extends merge.
Summary
Upgrading 0.34.0 → 0.35.0, creating a sandbox from a mixin that does nothing but
extends: claudefails at kit artifact composition with a duplicate-credential errorfor the base agent's built-in
anthropiccredential. The mixin declares nocredentials, services, or domains of its own. Reverting to 0.34.0 fixes it.
Environment
Minimal reproduction
spec.yaml(complete — nothing omitted):Create a sandbox using this mixin.
Actual result
Expected result
Composition succeeds. The
anthropiccredential is owned by the baseclaudeagent and only reaches the child layer via
extends; it should be deduped, notcounted as two definitions.
Notes / ruling out the usual causes
sbx secret listshows a singleanthropic(OAuth), no api-key shadow:
network.serviceDomains/credentials, so the contentitself cannot introduce a second
anthropic. The duplicate is produced purelyby the
extendsmerge.