feat(p9): consent-at-egress smoke + slice-2 verification green

Task S2.3: capability smoke asserts the CMP consent gate is consulted at egress
(NOT_REQUIRED → send proceeds); the DENY→BLOCKED and ALLOW→receipt paths are
unit-covered. Slice-2 verification: 110 tests green, pnpm -r build all packages,
boundary clean, capability smoke PASS, all prior smokes (realtime/inbox/support/
adapter/route/ai/calendar) still pass through the consent-gated broker.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-07-02 21:33:51 +05:30
parent cdc59be481
commit 27103529e6
@@ -50,6 +50,10 @@ try {
const b = await send('EMAIL', 'buyer@yamuna', { text: 'x' }, key);
assert(a.id === b.id, 'idempotent replay → one command');
// (e) consent gate active at egress: under the live (NOT_REQUIRED) CMP a send proceeds.
// The DENY→BLOCKED and ALLOW→receipt paths are proven deterministically in unit tests.
assert(sandboxCmd.status === 'SENT', 'CMP consent gate consulted at egress; NOT_REQUIRED → send proceeds (P9 slice 2)');
// (d) /health shows provider bindings
const health = await (await fetch(`${SERVICE}/health`)).json();
assert(health.egressProviders?.EMAIL === 'http' && health.egressProviders?.WEBHOOK === 'sandbox', '/health shows EMAIL=http, WEBHOOK=sandbox bindings');