@sendinel/mcp-server 1.0.228 → 1.0.229
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -58,11 +58,15 @@ export function testerRequestTool(action, config, handler) {
|
|
|
58
58
|
return result;
|
|
59
59
|
}
|
|
60
60
|
if (!result.isError && !value.error && (value.id || value.campaign_id || value.ok === true)) {
|
|
61
|
-
const { data, error } = await approvalStore().from('action_approvals').select('decided_by')
|
|
61
|
+
const { data, error } = await approvalStore().from('action_approvals').select('decided_by, decided_via')
|
|
62
62
|
.eq('id', approval_id).eq('project_id', getProjectId()).maybeSingle();
|
|
63
|
-
|
|
63
|
+
// A sandbox auto-approval has no human approver by design (DB CHECK: decided_by IS NULL);
|
|
64
|
+
// checkApproval already re-verified its eligibility before the write. Every other
|
|
65
|
+
// provenance must still name the human who approved it.
|
|
66
|
+
const sandboxDecision = data?.decided_via === 'sandbox' && data.decided_by == null;
|
|
67
|
+
if (error || (!data?.decided_by && !sandboxDecision))
|
|
64
68
|
throw new Error('Applied tester request has no recorded approver');
|
|
65
|
-
await logTesterRequestAudit('tester_applied', action, String(approval_id), data.decided_by);
|
|
69
|
+
await logTesterRequestAudit('tester_applied', action, String(approval_id), sandboxDecision ? null : data.decided_by);
|
|
66
70
|
}
|
|
67
71
|
return result;
|
|
68
72
|
})({ ...params, approval_id: approval_id }, extra);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sendinel/mcp-server",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.229",
|
|
4
4
|
"description": "AI-controlled email operations control plane for campaigns, contacts, segments, analytics, and multi-provider sending via MCP.",
|
|
5
5
|
"mcpName": "ai.sendinel/mcp-server",
|
|
6
6
|
"type": "module",
|