feat(delivery): refuse to push a phase whose changes contain a server credential
deploy / test (push) Successful in 5m48s
deploy / build (push) Successful in 6m29s

Container-tier missions carry model-provider keys in their environment (Claude
Code needs its credential; the fallback chain needs GLM and Kimi), the agent
has Bash, and no gate rule mentioned them. Delivery is the one exit all work
passes through, so it now checks the outgoing diff and commit messages for the
EXACT values of every watched secret (verbatim or base64): on a hit the push is
refused with the key names recorded, the stored patch — served to the UI — is
redacted, and a delivery.secret_blocked event is written. Values never logged.

Exact matching, not shapes: text about keys is not flagged. A test pins the
watched list to a superset of what containers are given in both auth modes.
CLAWMATES_DELIVERY_CANARY (a random non-credential) lets the refusal be proven
live without a real key.

Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
This commit is contained in:
Omar Sobh
2026-09-23 11:55:55 -05:00
co-authored by Claude Opus 5.5
parent 4030347b56
commit a86bd7272d
3 changed files with 201 additions and 1 deletions
+1
View File
@@ -26,6 +26,7 @@ pub mod microvm_client;
pub mod microvm_executor;
pub mod microvm_turn_executor;
pub mod continuous_research;
pub mod delivery_secrets;
pub mod mission_delivery;
pub mod podcast;
pub mod mission_events;