Skip to content

Commit e146418

Browse files
hyperpolymathclaude
andcommitted
fix(adr-0006): wire cartridge_shim into lib createModule in 24 build.zigs
Follow-up to the Pattern A and Pattern B (opsm/ums) migration batches. The initial rewrite only wired `cartridge_shim` into the `b.addModule(...)` branch of each build.zig, which tests use, but left the inline `b.createModule(.{ ... })` inside `b.addLibrary(.{...})` unchanged. Result: `zig build test` passed but `zig build` (shared library) failed with `no module named 'cartridge_shim' available within module 'root'`. This commit hoists the inline lib createModule into a named `lib_mod` and imports the shim there, matching the ml-mcp reference shape. All 24 cartridges now produce .so files exporting all 5 boj_cartridge_* symbols (verified via nm -D on bsp-mcp / aws-mcp / echidna-llm-mcp). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
1 parent 4486bbc commit e146418

24 files changed

Lines changed: 192 additions & 120 deletions

File tree

cartridges/bsp-mcp/ffi/build.zig

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -40,13 +40,16 @@ pub fn build(b: *std.Build) void {
4040
test_step.dependOn(&run_tests.step);
4141

4242
// ── Shared library ──────────────────────────────────────────────
43+
const lib_mod = b.createModule(.{
44+
.root_source_file = b.path("bsp_ffi.zig"),
45+
.target = target,
46+
.optimize = optimize,
47+
});
48+
lib_mod.addImport("cartridge_shim", shim_mod);
49+
4350
const lib = b.addLibrary(.{
4451
.name = "bsp_mcp",
45-
.root_module = b.createModule(.{
46-
.root_source_file = b.path("bsp_ffi.zig"),
47-
.target = target,
48-
.optimize = optimize,
49-
}),
52+
.root_module = lib_mod,
5053
.linkage = .dynamic,
5154
});
5255
b.installArtifact(lib);

cartridges/cloud-mcp/ffi/build.zig

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -40,13 +40,16 @@ pub fn build(b: *std.Build) void {
4040
test_step.dependOn(&run_tests.step);
4141

4242
// ── Shared library ──────────────────────────────────────────────
43+
const lib_mod = b.createModule(.{
44+
.root_source_file = b.path("cloud_ffi.zig"),
45+
.target = target,
46+
.optimize = optimize,
47+
});
48+
lib_mod.addImport("cartridge_shim", shim_mod);
49+
4350
const lib = b.addLibrary(.{
4451
.name = "cloud_mcp",
45-
.root_module = b.createModule(.{
46-
.root_source_file = b.path("cloud_ffi.zig"),
47-
.target = target,
48-
.optimize = optimize,
49-
}),
52+
.root_module = lib_mod,
5053
.linkage = .dynamic,
5154
});
5255
b.installArtifact(lib);

cartridges/codeseeker-mcp/ffi/build.zig

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -40,13 +40,16 @@ pub fn build(b: *std.Build) void {
4040
test_step.dependOn(&run_tests.step);
4141

4242
// ── Shared library ───────────────────────────────────────────────
43+
const lib_mod = b.createModule(.{
44+
.root_source_file = b.path("codeseeker_ffi.zig"),
45+
.target = target,
46+
.optimize = optimize,
47+
});
48+
lib_mod.addImport("cartridge_shim", shim_mod);
49+
4350
const lib = b.addLibrary(.{
4451
.name = "codeseeker_mcp",
45-
.root_module = b.createModule(.{
46-
.root_source_file = b.path("codeseeker_ffi.zig"),
47-
.target = target,
48-
.optimize = optimize,
49-
}),
52+
.root_module = lib_mod,
5053
.linkage = .dynamic,
5154
});
5255
b.installArtifact(lib);

cartridges/comms-mcp/ffi/build.zig

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -40,13 +40,16 @@ pub fn build(b: *std.Build) void {
4040
test_step.dependOn(&run_tests.step);
4141

4242
// ── Shared library ──────────────────────────────────────────────
43+
const lib_mod = b.createModule(.{
44+
.root_source_file = b.path("comms_ffi.zig"),
45+
.target = target,
46+
.optimize = optimize,
47+
});
48+
lib_mod.addImport("cartridge_shim", shim_mod);
49+
4350
const lib = b.addLibrary(.{
4451
.name = "comms_mcp",
45-
.root_module = b.createModule(.{
46-
.root_source_file = b.path("comms_ffi.zig"),
47-
.target = target,
48-
.optimize = optimize,
49-
}),
52+
.root_module = lib_mod,
5053
.linkage = .dynamic,
5154
});
5255
b.installArtifact(lib);

cartridges/container-mcp/ffi/build.zig

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -40,13 +40,16 @@ pub fn build(b: *std.Build) void {
4040
test_step.dependOn(&run_tests.step);
4141

4242
// ── Shared library ──────────────────────────────────────────────
43+
const lib_mod = b.createModule(.{
44+
.root_source_file = b.path("container_ffi.zig"),
45+
.target = target,
46+
.optimize = optimize,
47+
});
48+
lib_mod.addImport("cartridge_shim", shim_mod);
49+
4350
const lib = b.addLibrary(.{
4451
.name = "container_mcp",
45-
.root_module = b.createModule(.{
46-
.root_source_file = b.path("container_ffi.zig"),
47-
.target = target,
48-
.optimize = optimize,
49-
}),
52+
.root_module = lib_mod,
5053
.linkage = .dynamic,
5154
});
5255
b.installArtifact(lib);

cartridges/dap-mcp/ffi/build.zig

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -40,13 +40,16 @@ pub fn build(b: *std.Build) void {
4040
test_step.dependOn(&run_tests.step);
4141

4242
// ── Shared library ──────────────────────────────────────────────
43+
const lib_mod = b.createModule(.{
44+
.root_source_file = b.path("dap_ffi.zig"),
45+
.target = target,
46+
.optimize = optimize,
47+
});
48+
lib_mod.addImport("cartridge_shim", shim_mod);
49+
4350
const lib = b.addLibrary(.{
4451
.name = "dap_mcp",
45-
.root_module = b.createModule(.{
46-
.root_source_file = b.path("dap_ffi.zig"),
47-
.target = target,
48-
.optimize = optimize,
49-
}),
52+
.root_module = lib_mod,
5053
.linkage = .dynamic,
5154
});
5255
b.installArtifact(lib);

cartridges/database-mcp/ffi/build.zig

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -43,13 +43,16 @@ pub fn build(b: *std.Build) void {
4343
test_step.dependOn(&run_tests.step);
4444

4545
// ── Shared library ──────────────────────────────────────────────
46+
const lib_mod = b.createModule(.{
47+
.root_source_file = b.path("database_ffi.zig"),
48+
.target = target,
49+
.optimize = optimize,
50+
});
51+
lib_mod.addImport("cartridge_shim", shim_mod);
52+
4653
const lib = b.addLibrary(.{
4754
.name = "database_mcp",
48-
.root_module = b.createModule(.{
49-
.root_source_file = b.path("database_ffi.zig"),
50-
.target = target,
51-
.optimize = optimize,
52-
}),
55+
.root_module = lib_mod,
5356
.linkage = .dynamic,
5457
});
5558
lib.linkSystemLibrary("sqlite3");

cartridges/feedback-mcp/ffi/build.zig

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -40,13 +40,16 @@ pub fn build(b: *std.Build) void {
4040
test_step.dependOn(&run_tests.step);
4141

4242
// ── Shared library ──────────────────────────────────────────────
43+
const lib_mod = b.createModule(.{
44+
.root_source_file = b.path("feedback_ffi.zig"),
45+
.target = target,
46+
.optimize = optimize,
47+
});
48+
lib_mod.addImport("cartridge_shim", shim_mod);
49+
4350
const lib = b.addLibrary(.{
4451
.name = "feedback_mcp",
45-
.root_module = b.createModule(.{
46-
.root_source_file = b.path("feedback_ffi.zig"),
47-
.target = target,
48-
.optimize = optimize,
49-
}),
52+
.root_module = lib_mod,
5053
.linkage = .dynamic,
5154
});
5255
b.installArtifact(lib);

cartridges/fleet-mcp/ffi/build.zig

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -40,13 +40,16 @@ pub fn build(b: *std.Build) void {
4040
test_step.dependOn(&run_tests.step);
4141

4242
// ── Shared library ──────────────────────────────────────────────
43+
const lib_mod = b.createModule(.{
44+
.root_source_file = b.path("fleet_ffi.zig"),
45+
.target = target,
46+
.optimize = optimize,
47+
});
48+
lib_mod.addImport("cartridge_shim", shim_mod);
49+
4350
const lib = b.addLibrary(.{
4451
.name = "fleet_mcp",
45-
.root_module = b.createModule(.{
46-
.root_source_file = b.path("fleet_ffi.zig"),
47-
.target = target,
48-
.optimize = optimize,
49-
}),
52+
.root_module = lib_mod,
5053
.linkage = .dynamic,
5154
});
5255
b.installArtifact(lib);

cartridges/git-mcp/ffi/build.zig

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -40,13 +40,16 @@ pub fn build(b: *std.Build) void {
4040
test_step.dependOn(&run_tests.step);
4141

4242
// ── Shared library ──────────────────────────────────────────────
43+
const lib_mod = b.createModule(.{
44+
.root_source_file = b.path("git_ffi.zig"),
45+
.target = target,
46+
.optimize = optimize,
47+
});
48+
lib_mod.addImport("cartridge_shim", shim_mod);
49+
4350
const lib = b.addLibrary(.{
4451
.name = "git_mcp",
45-
.root_module = b.createModule(.{
46-
.root_source_file = b.path("git_ffi.zig"),
47-
.target = target,
48-
.optimize = optimize,
49-
}),
52+
.root_module = lib_mod,
5053
.linkage = .dynamic,
5154
});
5255
b.installArtifact(lib);

0 commit comments

Comments
 (0)