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:
@@ -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');
|
||||
|
||||
Reference in New Issue
Block a user