Problem
cartridges/cloud-mcp/abi/CloudMcp/SafeCloud.idr declares two enums that cartridges/cloud-mcp/ffi/cloud_ffi.zig does not implement:
[enum-missing-in-zig] manifest declares enum \`CloudflareResource\` but the Zig FFI has no \`pub const CloudflareResource = enum(c_int)\` declaration
[enum-missing-in-zig] manifest declares enum \`VercelResource\` but the Zig FFI has no \`pub const VercelResource = enum(c_int)\` declaration
Same shape as the 007-mcp ToolRisk drift resolved in boj-server#102. Per-cartridge fix.
Fix shape (in boj-server)
Add pub const CloudflareResource = enum(c_int) { ... } and pub const VercelResource = enum(c_int) { ... } to cartridges/cloud-mcp/ffi/cloud_ffi.zig, mirroring the variants in SafeCloud.idr. Add transition switches if SafeCloud.idr declares transitions over them.
Acceptance criteria
iseriser abi-verify --manifest <emit> --zig-ffi cartridges/cloud-mcp/ffi/cloud_ffi.zig
# exit 0
Then cloud-mcp joins the boj-server#110 allowlist.
Parent #92 (Phase 2 allowlist expansion).
Refs #89 (epic — sub-issue 3).
🤖 Generated with Claude Code
Problem
cartridges/cloud-mcp/abi/CloudMcp/SafeCloud.idrdeclares two enums thatcartridges/cloud-mcp/ffi/cloud_ffi.zigdoes not implement:Same shape as the 007-mcp
ToolRiskdrift resolved in boj-server#102. Per-cartridge fix.Fix shape (in boj-server)
Add
pub const CloudflareResource = enum(c_int) { ... }andpub const VercelResource = enum(c_int) { ... }tocartridges/cloud-mcp/ffi/cloud_ffi.zig, mirroring the variants inSafeCloud.idr. Add transition switches ifSafeCloud.idrdeclares transitions over them.Acceptance criteria
Then
cloud-mcpjoins the boj-server#110 allowlist.Parent #92 (Phase 2 allowlist expansion).
Refs #89 (epic — sub-issue 3).
🤖 Generated with Claude Code