Skip to content

Commit 3ff411d

Browse files
committed
fix(api): restore workspace build collaborators
1 parent 1391366 commit 3ff411d

4 files changed

Lines changed: 18 additions & 5 deletions

File tree

‎apps/host-selfhost/Dockerfile‎

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,11 @@
1212
FROM oven/bun:1 AS prod-deps
1313
WORKDIR /app
1414
COPY . .
15-
RUN bun install --frozen-lockfile --production --ignore-scripts --filter @executor-js/host-selfhost \
15+
# The public API tarball exposes only the client, while its workspace server sources use
16+
# host-mcp and execution as build-time collaborators. Include API development dependencies
17+
# for this intermediate bundle stage; package-runtime copies only the runtime closure below.
18+
RUN bun install --frozen-lockfile --ignore-scripts \
19+
--filter @executor-js/host-selfhost --filter @executor-js/api \
1620
&& bun run apps/host-selfhost/scripts/package-runtime.ts
1721

1822
FROM oven/bun:1 AS build

‎bun.lock‎

Lines changed: 2 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

‎packages/core/api/package.json‎

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,8 @@
4242
},
4343
"devDependencies": {
4444
"@effect/vitest": "catalog:",
45+
"@executor-js/execution": "workspace:*",
46+
"@executor-js/host-mcp": "workspace:*",
4547
"@types/node": "catalog:",
4648
"bun-types": "catalog:",
4749
"effect": "catalog:",

‎packages/core/api/src/client.test.ts‎

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ describe("makeExecutorApiClient", () => {
4747
}),
4848
);
4949

50-
it.effect("declares a public client boundary with no private workspace dependencies", () =>
50+
it.effect("declares a public client boundary with no private runtime dependencies", () =>
5151
Effect.gen(function* () {
5252
const [source, changesetsSource] = yield* Effect.all([
5353
Effect.promise(() => readFile(new URL("../package.json", import.meta.url), "utf8")),
@@ -91,13 +91,18 @@ describe("makeExecutorApiClient", () => {
9191
},
9292
});
9393
expect(manifest.dependencies).toEqual({ "@executor-js/sdk": "workspace:*" });
94-
const declaredDependencies = [
94+
expect(manifest.devDependencies).toMatchObject({
95+
"@executor-js/execution": "workspace:*",
96+
"@executor-js/host-mcp": "workspace:*",
97+
});
98+
const publishableDependencies = [
9599
...Object.keys(manifest.dependencies ?? {}),
96-
...Object.keys(manifest.devDependencies ?? {}),
97100
...Object.keys(manifest.optionalDependencies ?? {}),
98101
...Object.keys(manifest.peerDependencies ?? {}),
99102
];
100-
expect(declaredDependencies.filter((name) => changesets.ignore?.includes(name))).toEqual([]);
103+
expect(publishableDependencies.filter((name) => changesets.ignore?.includes(name))).toEqual(
104+
[],
105+
);
101106
expect(manifest.private).not.toBe(true);
102107
}),
103108
);

0 commit comments

Comments
 (0)