Skip to content

Version Packages - #1743

Open
RhysSullivan wants to merge 1 commit into
mainfrom
changeset-release/main
Open

Version Packages#1743
RhysSullivan wants to merge 1 commit into
mainfrom
changeset-release/main

Conversation

@RhysSullivan

@RhysSullivan RhysSullivan commented Aug 25, 2026

Copy link
Copy Markdown
Collaborator

This PR was opened by the Changesets release GitHub action. When you're ready to do a release, you can merge this and publish to npm yourself or setup this action to publish automatically. If you're not ready to do a release yet, that's fine, whenever you add more changesets to main, this PR will be updated.

Releases

@executor-js/cli@0.2.51

Patch Changes

  • Updated dependencies [55180cb]:
    • @executor-js/sdk@1.6.1

@executor-js/config@1.6.1

Patch Changes

  • Updated dependencies [55180cb]:
    • @executor-js/sdk@1.6.1

@executor-js/execution@1.6.1

Patch Changes

  • #1741 62748e8 Thanks @RhysSullivan! - Opt-in per-integration search tools on the MCP surface

    Connecting with ?search_tools=true (stdio: executor mcp --search-tools) adds one minimally-described search_<integration> MCP tool per connected integration, so the integration namespaces reach the model as tool names it can see without calling anything. Each call routes through the same flow as tools.search({ namespace }) inside execute, and the tool list comes from the same inventory the execute description shows. Off by default; a clean endpoint URL is unchanged.

  • #1749 d4afe0c Thanks @RhysSullivan! - Slim the per-integration search_<integration> tool definitions to under half their size: one shared one-line description (the tool name already carries the namespace) and a single bare query parameter, dropping the limit/offset knobs. A session pays for these definitions once per connected integration, so the surface now costs ~2k tokens instead of ~5k at 30 integrations; paging through a namespace belongs in execute.

  • Updated dependencies [55180cb]:

    • @executor-js/sdk@1.6.1
    • @executor-js/codemode-core@1.6.1

@executor-js/sdk@1.6.1

Patch Changes

  • #1784 55180cb Thanks @RhysSullivan! - Build StorageError.message from the call-site label plus the driver's error code instead of the driver's raw text. The driver text is drizzle's Failed query: <sql>\nparams: <bound values>, so error reporting grouped one storage defect by statement shape and printed bound parameters into issue titles. The full driver error stays on cause.

    Add StorageConnectionError, a StorageFailure variant for postgres.js connection faults (CONNECTION_ENDED, CONNECTION_CLOSED, CONNECTION_DESTROYED, CONNECT_TIMEOUT, ECONNREFUSED, ECONNRESET) and workerd's cross-request I/O rejection. It carries the fault code and a retryable flag so a lost socket can be told apart from a pool-lifetime bug.

@executor-js/vite-plugin@0.0.61

Patch Changes

  • Updated dependencies [55180cb]:
    • @executor-js/sdk@1.6.1

@executor-js/runtime-quickjs@1.6.1

Patch Changes

  • Updated dependencies []:
    • @executor-js/codemode-core@1.6.1

@executor-js/plugin-desktop-settings@1.6.1

Patch Changes

  • Updated dependencies [55180cb]:
    • @executor-js/sdk@1.6.1

@executor-js/plugin-example@1.6.1

Patch Changes

  • Updated dependencies [55180cb]:
    • @executor-js/sdk@1.6.1

@executor-js/plugin-file-secrets@1.6.1

Patch Changes

  • Updated dependencies [55180cb]:
    • @executor-js/sdk@1.6.1

@executor-js/plugin-graphql@1.6.1

Patch Changes

  • Updated dependencies [9dff4e8, 55180cb]:
    • @executor-js/react@1.4.64
    • @executor-js/sdk@1.6.1
    • @executor-js/api@1.4.64
    • @executor-js/config@1.6.1

@executor-js/plugin-keychain@1.6.1

Patch Changes

  • Updated dependencies [55180cb]:
    • @executor-js/sdk@1.6.1

@executor-js/plugin-mcp@1.6.1

Patch Changes

  • #1747 91062c2 Thanks @RhysSullivan! - Load the MCP client SDK lazily on first outbound connection instead of at module evaluation. Runtimes that bundle the plugin (notably Cloudflare Workers) no longer pay the client package's module-eval memory and CPU on startup or on code paths that never dial an MCP server.

  • #1716 9c35f26 Thanks @xav-ie! - Closing a remote MCP connection now ends its streamable-http SSE request

    On a supplied httpClientLayer, the fetch adapter wired the caller's AbortSignal only to the pending response promise, never to the response body, so closing a connection left the long-lived GET channel in flight forever — one abandoned request per dial. Under Bun each holds one of the 256 concurrent-request slots, so a long-running process eventually exhausts the pool and every connection starts failing with MCP discovery timed out after 15000ms. The response stream is now interrupted when the signal aborts.

  • Updated dependencies [9dff4e8, 55180cb]:

    • @executor-js/react@1.4.64
    • @executor-js/sdk@1.6.1
    • @executor-js/api@1.4.64
    • @executor-js/config@1.6.1

@executor-js/plugin-onepassword@1.6.1

Patch Changes

  • Updated dependencies [9dff4e8, 55180cb]:
    • @executor-js/react@1.4.64
    • @executor-js/sdk@1.6.1
    • @executor-js/api@1.4.64

@executor-js/plugin-openapi@1.6.1

Patch Changes

  • #1755 7c12aee Thanks @RhysSullivan! - Make Microsoft Graph slice URLs first-class spec sources instead of a hidden substitution. Catalog tiles now point directly at the slice release assets, the stored specUrl is exactly what gets fetched, and selection narrowing travels visibly in the URL fragment; requesting the upstream monolith URL fetches the monolith, never a silently swapped slice.

  • #1753 ddbf0fe Thanks @RhysSullivan! - Serve Microsoft Graph preset selections from precomputed slice release assets instead of the 43MB upstream monolith. The monolith fetch almost never survives a 128MB Workers isolate (production traces show one completion in 30 days), so covered selections — every catalog preset, plus any combination within the default bundle — now read a 4–19MB filtered document built offline by the graph-slices workflow, with the monolith path kept only as a fallback and for full-graph/custom-scope selections.

  • #1751 0007474 Thanks @RhysSullivan! - Preview OpenAPI spec-format selections (Microsoft Graph) through the streaming structural-split path instead of a whole-document parse, and guard generic whole-document parses by parsed-tree size (line count for block YAML, text size for JSON). Previewing a Graph preset URL previously parsed the 43MB source whole and killed the 128MB Workers isolate mid-request, surfacing as an empty 503; it now streams within budget, and oversized generic specs fail with an actionable error instead of taking down the isolate.

  • Updated dependencies [9dff4e8, 55180cb]:

    • @executor-js/react@1.4.64
    • @executor-js/sdk@1.6.1
    • @executor-js/api@1.4.64
    • @executor-js/config@1.6.1

@executor-js/plugin-toolkits@1.5.36

Patch Changes

  • Updated dependencies [9dff4e8, 55180cb]:
    • @executor-js/react@1.4.64
    • @executor-js/sdk@1.6.1
    • @executor-js/api@1.4.64

@executor-js/codemode-core@1.6.1

executor@1.6.1

Patch Changes

  • #1576 6535a74 Thanks @GeiserX! - The CLI's server-connection store is written owner-only, and two of its tests now actually run

    ~/.executor/server-connections.json holds live credentials for a hosted server — a bearer token, or an OAuth access token together with its long-lived refresh token, rewritten on every silent refresh. It was created with no explicit mode, so the process umask applied and it landed world-readable (0644 by default). Any other account on the machine — or anything that copies a home directory, such as a backup or a container layer — could read a durable credential until the user ran executor logout.

    It is now created 0600 with a follow-up chmod, matching what the local-server manifest already does for the sibling secret it keeps under server-control/. Both steps are needed: mode applies only on create, and the chmod covers rewriting a store that already exists with looser permissions — which is the common path here, since the file is rewritten on every token refresh.

    Separately, two tests in server-profile.test.ts were written as it("…", () => Effect.gen(…)). An Effect is not a thenable, so Vitest treated each as passing without ever running its body — a deliberately falsified assertion still passed. They are now it.effect and execute for real. No production behaviour was wrong; the tests simply were not checking it.

  • #1454 e8ea62c Thanks @jadch! - Prevent concurrent SQLite data-migration runners from failing when another runner commits the same ledger stamp first.

  • #1579 31e17c7 Thanks @GeiserX! - The desktop settings store is written owner-only

    settings.json holds serverProfiles, which carries a remote server's credential — a bearer token, or a basic-auth username and password — for any "Custom server" the user connects to. conf (under electron-store) defaults to configFileMode: 0o666, so with no explicit mode the file was created 0644. On Linux, where ~/.config is not reliably 0700, that is readable by every other account on the machine. macOS is protected by ~/Library being 0700 and Windows by ACLs, so this is primarily a Linux-desktop exposure — but owner-only credential files are already this app's standard: local-auth.ts writes auth.json at 0o600, and the sidecar manifest is chmodded the same way.

    One option is sufficient here, rather than the mode-plus-chmod pair used elsewhere: atomically chmods the temp inode only when the requested mode differs from its own default, and the atomic rename then carries the tight mode onto an already-loose file. Verified against the installed conf — with no option a fresh file lands 0644; with configFileMode: 0o600 a fresh file lands 0600 and an existing 0644 file becomes 0600 on the next write.

  • #1582 e8e97c4 Thanks @GeiserX! - An MCP health check no longer reports healthy when the connection's credential is missing

    Rendering skips an auth placement whose value is unresolved — that is the renderer's documented behaviour, and callers own the missing-value policy. The MCP health check had no such policy, so it dialled unauthenticated, and any server that lists tools without auth answered. discoverTools succeeding maps straight to healthy, so a connection whose credential was gone reported as healthy.

    Health status is the signal telling a user to re-authenticate, which makes healthy the one answer it must never give in that state. The check now reports expired with the unresolved input names, mirroring the OpenAPI health check, which already did exactly this.

    The MCP tool-invocation path already refused for the same reason. resolveTools is deliberately left alone — its own comment records that discovery tolerating unresolved credentials is intended, since an open server lists tools unauthenticated.

  • #1741 62748e8 Thanks @RhysSullivan! - Opt-in per-integration search tools on the MCP surface

    Connecting with ?search_tools=true (stdio: executor mcp --search-tools) adds one minimally-described search_<integration> MCP tool per connected integration, so the integration namespaces reach the model as tool names it can see without calling anything. Each call routes through the same flow as tools.search({ namespace }) inside execute, and the tool list comes from the same inventory the execute description shows. Off by default; a clean endpoint URL is unchanged.

  • #1573 45ba141 Thanks @GeiserX! - The MCP connection pool no longer keeps credentials in its cache key

    A pooled remote MCP session is looked up by a key describing the connection's identity, and that key included the connection's resolved credential values — plus the headers and query params those same secrets had already been rendered into. The key is retained as a Map key for the pool's lifetime, so the secret stayed readable in process memory long after the call that needed it had finished, with nothing left to read it.

    The key is now the SHA-256 digest of that identity rather than the identity itself. Reuse is unchanged, because equal identities still produce equal keys, and separation is unchanged too: a rotated access token, a different rendered auth header and a credential carried in a query param each still dial a fresh session instead of reusing one authenticated as somebody else. Hashing the whole identity rather than only the fields known to be sensitive means a field added later is covered without anyone having to remember it carries a secret.

    Nothing reads the key back — the pool only compares it, and it reaches no log, span or error message — so nothing observable changes.

  • #1800 eac13e7 Thanks @RhysSullivan! - Idle MCP session runtimes are actually reclaimed

    The MCP session Durable Object has an idle timeout that disposes a session's execution runtime — the execution engine and its executor closure, the built tool catalog, and a live database handle — once the session has gone quiet. That timeout never ran.

    The session arms an idle alarm on every request. The agents framework independently recomputes the Durable Object alarm from its own schedule table and keep-alive refcount, and when it finds neither it does not leave the alarm alone: it deletes it. It releases the last keep-alive reference at the end of every ordinary tool call, from a waitUntil that runs just after the response goes out — so the idle alarm the session had armed moments earlier was erased, and a session that had just served a request was left with no alarm at all. Its runtime then stayed resident until the platform evicted the whole object.

    Durable Objects are colocated many-to-one onto an isolate with a single heap, so runtimes that are never reclaimed accumulate there. When the heap is exhausted the allocation that fails is whichever comes next, anywhere in the isolate — which is why the failure tended to surface from storage rather than from the runtimes that had consumed the memory.

    The idle deadline belongs to the session, not to the framework's scheduler, so it is now re-asserted after the framework has arranged whatever it needs — and only while a runtime is actually resident, since once there is nothing left to reclaim the framework's answer is correct.

    Disposal also now emits a span carrying a per-isolate resident-runtime gauge, alongside the same gauge on runtime build, so the reclaim can be confirmed in production rather than inferred.

  • #1609 662ebe2 Thanks @timkley! - Fix: declare the OAuth application type during dynamic client registration

    Dynamic OAuth registrations now identify HTTPS callbacks as web applications
    and loopback HTTP callbacks as native applications. This lets strict OAuth
    servers validate Executor's redirect URI against the correct client type.

  • #1570 e66a3d8 Thanks @GeiserX! - The OAuth popup clears its result out of localStorage after handing it over

    The popup writes its result to localStorage as the fallback completion channel, because postMessage is severed when a provider's consent page sets COOP and BroadcastChannel can be partitioned or raced by the auto-close. Nothing removed that entry afterwards, so the payload — which carries the identity label, an email, and on failure the error preview — stayed parked in the user's browser profile.

    The entry is now cleared once the handover has had time to land, and on pagehide as a backstop — the failure page never auto-closes so the user can read the error, and closing it by hand would otherwise cancel the pending timer and strand the entry. This cannot cost a listener the result: a storage event captures newValue at dispatch, so an opener that has been notified already holds it.

  • #1574 c8bb857 Thanks @GeiserX! - The 1Password service-account token is cleared from the op-js global after each call

    @1password/op-js keeps the service-account token on a module-level CLI instance (cli.serviceAccountToken) and reads it when it spawns op. The CLI backend set that global before each call and never cleared it, so one reachable reference to the token stayed live for the rest of the process.

    It is now cleared as soon as the call that needed it is done, on success, failure and interruption alike. Authentication is unaffected: every read and write of that global already happens inside the backend's semaphore, so the next operation re-sets the token before it spawns anything.

    This is hygiene rather than a boundary change. No unrelated op child ever received a stale token — every call routes through the same critical section that sets the correct one immediately before invoking — and the token is separately persisted in plaintext in the plugin's config blob, so an attacker's reach is unchanged. What it removes is a long-lived reachable reference that nothing needed to keep.

  • #1749 d4afe0c Thanks @RhysSullivan! - Slim the per-integration search_<integration> tool definitions to under half their size: one shared one-line description (the tool name already carries the namespace) and a single bare query parameter, dropping the limit/offset knobs. A session pays for these definitions once per connected integration, so the surface now costs ~2k tokens instead of ~5k at 30 integrations; paging through a namespace belongs in execute.

  • #1798 69b0e64 Thanks @RhysSullivan! - The packed Worker toolchain is verified at build time, and an incomplete copy is now reported instead of silently ignored

    @cloudflare/worker-bundler cannot live inside the compiled binary: bunfs has no node_modules, so a bare specifier is unresolvable there by construction. The build instead copies the package's dist/ next to the executable and native-bindings.ts publishes that path as EXECUTOR_WORKER_BUNDLER_DIR for consumers to load from.

    That handoff was described in two places that were free to drift, and did. The build writes dist/index.bundled.js — the entry consumers actually load, packed so it has no bare imports of its own — while the runtime check only looked for dist/index.js and dist/esbuild.wasm. Nothing verified the staged copy after the compile, so a partial staging produced a binary that looked fine on the build machine and failed on the user's, at startup. Worse, the runtime check failed open: when a file was missing it silently declined to set the environment variable, leaving a consumer to fall through to the bare specifier and crash.

    The required file list is now one shared contract used by both sides, so they cannot disagree. The build asserts the staged copy after compiling each target — every required file present, a size floor on the packed entry, and the \0asm magic on the wasm so a truncated copy cannot pass — turning a packaging slip into a failed build rather than a broken install. At runtime, a directory that is present but incomplete is reported on stderr naming the missing files, instead of being swallowed. An absent directory stays quiet, since that is the normal non-packaged path.

  • Updated dependencies [55180cb]:

    • @executor-js/sdk@1.6.1
    • @executor-js/api@1.4.64
    • @executor-js/local@1.6.1
    • @executor-js/runtime-quickjs@1.6.1

@executor-js/cloud@1.4.62

Patch Changes

  • Updated dependencies [9dff4e8, 7c12aee, ddbf0fe, 91062c2, 9c35f26, 62748e8, 0007474, d4afe0c, 55180cb]:
    • @executor-js/react@1.4.64
    • @executor-js/plugin-openapi@1.6.1
    • @executor-js/plugin-mcp@1.6.1
    • @executor-js/execution@1.6.1
    • @executor-js/sdk@1.6.1
    • @executor-js/api@1.4.64
    • @executor-js/mcp-apps-shell@1.4.12
    • @executor-js/plugin-graphql@1.6.1
    • @executor-js/plugin-toolkits@1.5.36
    • @executor-js/plugin-workos-vault@0.0.2
    • @executor-js/runtime-dynamic-worker@1.4.4
    • @executor-js/cloudflare@0.0.43
    • @executor-js/host-mcp@1.4.4
    • @executor-js/vite-plugin@0.0.61
    • @executor-js/runtime-quickjs@1.6.1

@executor-js/host-selfhost@0.0.43

Patch Changes

  • Updated dependencies [9dff4e8, 7c12aee, ddbf0fe, 91062c2, 9c35f26, 62748e8, 0007474, d4afe0c, 55180cb]:
    • @executor-js/react@1.4.64
    • @executor-js/plugin-openapi@1.6.1
    • @executor-js/plugin-mcp@1.6.1
    • @executor-js/execution@1.6.1
    • @executor-js/sdk@1.6.1
    • @executor-js/api@1.4.64
    • @executor-js/app@1.4.4
    • @executor-js/mcp-apps-shell@1.4.12
    • @executor-js/plugin-graphql@1.6.1
    • @executor-js/plugin-toolkits@1.5.36
    • @executor-js/plugin-provider-service-split@0.0.15
    • @executor-js/analytics@0.1.8
    • @executor-js/host-mcp@1.4.4
    • @executor-js/plugin-encrypted-secrets@0.0.43
    • @executor-js/runtime-quickjs@1.6.1

@executor-js/local@1.6.1

Patch Changes

  • Updated dependencies [9dff4e8, 7c12aee, ddbf0fe, 91062c2, 9c35f26, 62748e8, 0007474, d4afe0c, 55180cb]:
    • @executor-js/react@1.4.64
    • @executor-js/plugin-openapi@1.6.1
    • @executor-js/plugin-mcp@1.6.1
    • @executor-js/execution@1.6.1
    • @executor-js/sdk@1.6.1
    • @executor-js/api@1.4.64
    • @executor-js/app@1.4.4
    • @executor-js/mcp-apps-shell@1.4.12
    • @executor-js/plugin-graphql@1.6.1
    • @executor-js/plugin-onepassword@1.6.1
    • @executor-js/plugin-toolkits@1.5.36
    • @executor-js/plugin-provider-service-split@0.0.15
    • @executor-js/analytics@0.1.8
    • @executor-js/host-mcp@1.4.4
    • @executor-js/config@1.6.1
    • @executor-js/vite-plugin@0.0.61
    • @executor-js/plugin-desktop-settings@1.6.1
    • @executor-js/plugin-example@1.6.1
    • @executor-js/plugin-file-secrets@1.6.1
    • @executor-js/plugin-keychain@1.6.1
    • @executor-js/runtime-quickjs@1.6.1

@executor-js/e2e@0.0.41

Patch Changes

  • Updated dependencies [7c12aee, ddbf0fe, 91062c2, 9c35f26, 0007474, 55180cb]:
    • @executor-js/plugin-openapi@1.6.1
    • @executor-js/plugin-mcp@1.6.1
    • @executor-js/sdk@1.6.1
    • @executor-js/api@1.4.64
    • @executor-js/plugin-graphql@1.6.1
    • @executor-js/plugin-toolkits@1.5.36

@executor-js/example-all-plugins@0.0.62

Patch Changes

  • Updated dependencies [7c12aee, ddbf0fe, 91062c2, 9c35f26, 0007474, 55180cb]:
    • @executor-js/plugin-openapi@1.6.1
    • @executor-js/plugin-mcp@1.6.1
    • @executor-js/sdk@1.6.1
    • @executor-js/plugin-graphql@1.6.1
    • @executor-js/plugin-onepassword@1.6.1
    • @executor-js/plugin-workos-vault@0.0.2
    • @executor-js/plugin-file-secrets@1.6.1
    • @executor-js/plugin-keychain@1.6.1

@executor-js/example-docs-sdk-quickstart@0.0.47

Patch Changes

@executor-js/analytics@0.1.8

Patch Changes

  • Updated dependencies [62748e8, d4afe0c]:
    • @executor-js/execution@1.6.1

@executor-js/api@1.4.64

Patch Changes

  • #1784 55180cb Thanks @RhysSullivan! - Build StorageError.message from the call-site label plus the driver's error code instead of the driver's raw text. The driver text is drizzle's Failed query: <sql>\nparams: <bound values>, so error reporting grouped one storage defect by statement shape and printed bound parameters into issue titles. The full driver error stays on cause.

    Add StorageConnectionError, a StorageFailure variant for postgres.js connection faults (CONNECTION_ENDED, CONNECTION_CLOSED, CONNECTION_DESTROYED, CONNECT_TIMEOUT, ECONNREFUSED, ECONNRESET) and workerd's cross-request I/O rejection. It carries the fault code and a retryable flag so a lost socket can be told apart from a pool-lifetime bug.

  • Updated dependencies [62748e8, d4afe0c, 55180cb]:

    • @executor-js/execution@1.6.1
    • @executor-js/sdk@1.6.1
    • @executor-js/host-mcp@1.4.4

@executor-js/cloudflare@0.0.43

Patch Changes

  • Updated dependencies [62748e8, d4afe0c, 55180cb]:
    • @executor-js/execution@1.6.1
    • @executor-js/sdk@1.6.1
    • @executor-js/api@1.4.64
    • @executor-js/host-mcp@1.4.4

@executor-js/mcp-apps-shell@1.4.12

Patch Changes

  • Updated dependencies [9dff4e8]:
    • @executor-js/react@1.4.64
    • @executor-js/runtime-quickjs@1.6.1

@executor-js/runtime-workerd-subprocess@0.0.16

Patch Changes

  • Updated dependencies []:
    • @executor-js/codemode-core@1.6.1

@executor-js/plugin-encrypted-secrets@0.0.43

Patch Changes

  • Updated dependencies [55180cb]:
    • @executor-js/sdk@1.6.1

@executor-js/plugin-provider-service-split@0.0.15

Patch Changes

@executor-js/react@1.4.64

Patch Changes

  • #1746 9dff4e8 Thanks @sergical! - The connection edit sheet now previews what agents actually read

    The "What agents see" preview in the connection edit sheet rendered a - \` — inventory line. That line left theexecutetool description when the inventory was slimmed to bare integration slugs, so the preview showed text no agent reads. The account label was also marked "Display-only", butconnections.list` returns it to agents alongside the description.

    The preview now mirrors the connections.list item for the connection (name, identityLabel, description), and the sheet copy says that both fields are agent-visible while the callable name stays as it was at connect time.

  • Updated dependencies [55180cb]:

    • @executor-js/sdk@1.6.1
    • @executor-js/api@1.4.64

@executor-js/desktop@1.6.1

@cloudflare-workers-and-pages

cloudflare-workers-and-pages Bot commented Aug 25, 2026

Copy link
Copy Markdown

Deploying with  Cloudflare Workers  Cloudflare Workers

The latest updates on your project. Learn more about integrating Git with Workers.

Status Name Latest Commit Updated (UTC)
✅ Deployment successful!
View logs
executor-cloud c043a94 Aug 28 2026, 04:44 AM

@cloudflare-workers-and-pages

cloudflare-workers-and-pages Bot commented Aug 25, 2026

Copy link
Copy Markdown

Deploying with  Cloudflare Workers  Cloudflare Workers

The latest updates on your project. Learn more about integrating Git with Workers.

Status Name Latest Commit Preview URL Updated (UTC)
✅ Deployment successful!
View logs
executor-marketing c043a94 Commit Preview URL

Branch Preview URL
Aug 28 2026, 04:43 AM

@RhysSullivan
RhysSullivan force-pushed the changeset-release/main branch from aae3e4d to 7832eb0 Compare August 25, 2026 21:15
@github-actions

github-actions Bot commented Aug 25, 2026

Copy link
Copy Markdown
Contributor

Cloudflare preview

Console https://executor-preview-pr-1743.executor-e2e.workers.dev
MCP https://executor-preview-pr-1743.executor-e2e.workers.dev/mcp
Deployed commit c043a94

Sign-in is Cloudflare Access (one-time PIN to an allowed email). The preview has its own database and encryption key; it is destroyed when this PR closes.

@pkg-pr-new

pkg-pr-new Bot commented Aug 25, 2026

Copy link
Copy Markdown

Open in StackBlitz

@executor-js/cli

npm i https://pkg.pr.new/@executor-js/cli@1743

@executor-js/config

npm i https://pkg.pr.new/@executor-js/config@1743

@executor-js/execution

npm i https://pkg.pr.new/@executor-js/execution@1743

@executor-js/sdk

npm i https://pkg.pr.new/@executor-js/sdk@1743

@executor-js/codemode-core

npm i https://pkg.pr.new/@executor-js/codemode-core@1743

@executor-js/runtime-quickjs

npm i https://pkg.pr.new/@executor-js/runtime-quickjs@1743

@executor-js/plugin-file-secrets

npm i https://pkg.pr.new/@executor-js/plugin-file-secrets@1743

@executor-js/plugin-graphql

npm i https://pkg.pr.new/@executor-js/plugin-graphql@1743

@executor-js/plugin-keychain

npm i https://pkg.pr.new/@executor-js/plugin-keychain@1743

@executor-js/plugin-mcp

npm i https://pkg.pr.new/@executor-js/plugin-mcp@1743

@executor-js/plugin-onepassword

npm i https://pkg.pr.new/@executor-js/plugin-onepassword@1743

@executor-js/plugin-openapi

npm i https://pkg.pr.new/@executor-js/plugin-openapi@1743

executor

npm i https://pkg.pr.new/executor@1743

commit: c043a94

@RhysSullivan
RhysSullivan force-pushed the changeset-release/main branch 25 times, most recently from cceee22 to 1755c45 Compare August 28, 2026 01:29
@RhysSullivan
RhysSullivan force-pushed the changeset-release/main branch 22 times, most recently from 4ab210a to 528a7e8 Compare August 28, 2026 04:14
@RhysSullivan
RhysSullivan force-pushed the changeset-release/main branch from 528a7e8 to c043a94 Compare August 28, 2026 04:42
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant