You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Makes the existing generic Executor remote client consumable as the public @executor-js/api/client package.\n\nThe public package exposes only the client entrypoint, depends only on the published SDK plus Effect peer compatibility, and bundles the shared runtime schemas needed to work with the currently published SDK. It does not expose or depend on host-mcp, execution, server routes, or any hosted-product handoff.\n\nRelease safety includes Changesets validation, package-boundary tests, the repository packed-package batch smoke, and a separate no-override clean-consumer smoke that installs only the API tarball while resolving the SDK from npm.\n\nValidated with 120 API tests, API typecheck, repository typecheck, lint, format, release workflow tests, changeset status, release:check, and both package smoke paths.
Verdict: needs a decision from Rhys — mechanics check out; whether @executor-js/api becomes a public npm package (and with this shape) is a product/release call, not something I can settle in triage. Open 2 days, no linked issue, rebases cleanly onto current main (b5271a6).
What I ran on the branch (all green):bun run lint, bun run format:check, bun run typecheck (45/45), bun run --filter @executor-js/api test (120 passed, incl. the 2 new tests in packages/core/api/src/client.test.ts), bun run --filter @executor-js/api build, bun run scripts/smoke-test-packed.ts (batch smoke + the new clean-consumer smoke resolved @executor-js/sdk@1.6.7 from npm and type-checked the client), docker build --target prod-deps of apps/host-selfhost/Dockerfile, and bun run release:check. bun.lock diff is only the manifest re-shape, no installer churn.
Things Rhys should weigh before merging (none are bugs in the code as written):
Bundled copy of @executor-js/sdk/shared (packages/core/api/tsup.config.tsnoExternal). dist/client.js (67 KB) inlines ToolNotFoundError, HealthStatus, ElicitationMeta, ArtifactId, … and even UrlRedactingOtlpSerialization/effect/unstable/observability/OtlpSerialization. The SDK already publishes ./shared, so the stated reason ("work with the currently published SDK") is a version-skew workaround: consumers who also import from @executor-js/sdk get two distinct class identities for the same schemas/errors (instanceof/Schema.is on SDK-exported classes won't match values decoded by this client). Simpler option that matches how the other public packages do it: externalize @executor-js/sdk/shared and let the SDK dep carry it, publishing api in lockstep.
Runtime deps declared as devDependencies (packages/core/api/package.json). ./server still imports @executor-js/execution and @executor-js/host-mcp at runtime for apps/host-selfhost, apps/cloud, apps/cli; they were moved to devDependencies purely to keep the published manifest clean. scripts/publish-packages.ts already strips non-publishable @executor-js/* deps (host-mcp) at pack time, so only execution would have leaked. Consequence of the workaround is Add Cloudflare Workers sandbox runtime for isolated code execution #3.
Self-host Dockerfile drops --production (apps/host-selfhost/Dockerfileprod-deps stage) and adds --filter @executor-js/api, because with Add organization billing model and members/billing console flows #2 the api workspace package's server-side collaborators are now dev-only. Build passes, but the prod-deps stage now installs devDependencies for both filtered workspaces; package-runtime.ts walks the runtime closure so the shipped image should be unaffected — I did not diff the resulting .selfhost-runtime against main.
Side effect on plugin packages: now that @executor-js/api is in PUBLIC_PACKAGE_DIRS, applyWorkspaceVersions will encode @executor-js/api@1.4.70 as an (optional) peer in the published plugin-openapi/mcp/graphql/toolkits/onepassword manifests instead of stripping it. Harmless once api exists on npm, but the published api only exports ./client, while those plugins' src/api/* reference server-side subpaths — worth confirming that's the intended contract.
Version: packages/core/api is at 1.4.70 while the rest of the public set is at 1.6.7; the changeset is patch. First publish will land as 1.4.71 unless bumped.
Nothing pushed to the branch — the contributor's approach is internally consistent, and changing #1/#2 is a design choice rather than a fixup.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Makes the existing generic Executor remote client consumable as the public @executor-js/api/client package.\n\nThe public package exposes only the client entrypoint, depends only on the published SDK plus Effect peer compatibility, and bundles the shared runtime schemas needed to work with the currently published SDK. It does not expose or depend on host-mcp, execution, server routes, or any hosted-product handoff.\n\nRelease safety includes Changesets validation, package-boundary tests, the repository packed-package batch smoke, and a separate no-override clean-consumer smoke that installs only the API tarball while resolving the SDK from npm.\n\nValidated with 120 API tests, API typecheck, repository typecheck, lint, format, release workflow tests, changeset status, release:check, and both package smoke paths.