Unified · Split
| @@ -1,11 +0,0 @@ | |||
| 1 | --- | ||
| 2 | "executor": patch | ||
| 3 | --- | ||
| 4 | |||
| 5 | **The CLI's server-connection store is written owner-only, and two of its tests now actually run** | ||
| 6 | |||
| 7 | `~/.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`. | ||
| 8 | |||
| 9 | 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. | ||
| 10 | |||
| 11 | 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. | ||
| @@ -1,5 +0,0 @@ | |||
| 1 | --- | ||
| 2 | "executor": patch | ||
| 3 | --- | ||
| 4 | |||
| 5 | Prevent concurrent SQLite data-migration runners from failing when another runner commits the same ledger stamp first. | ||
| @@ -1,9 +0,0 @@ | |||
| 1 | --- | ||
| 2 | "@executor-js/react": patch | ||
| 3 | --- | ||
| 4 | |||
| 5 | **The connection edit sheet now previews what agents actually read** | ||
| 6 | |||
| 7 | The "What agents see" preview in the connection edit sheet rendered a `- \`<prefix>\` — <description>`inventory line. That line left the`execute`tool 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", but`connections.list` returns it to agents alongside the description. | ||
| 8 | |||
| 9 | 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. | ||
| @@ -1,9 +0,0 @@ | |||
| 1 | --- | ||
| 2 | "executor": patch | ||
| 3 | --- | ||
| 4 | |||
| 5 | **The desktop settings store is written owner-only** | ||
| 6 | |||
| 7 | `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. | ||
| 8 | |||
| 9 | 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. | ||
| @@ -1,5 +0,0 @@ | |||
| 1 | --- | ||
| 2 | "@executor-js/plugin-openapi": patch | ||
| 3 | --- | ||
| 4 | |||
| 5 | 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. | ||
| @@ -1,5 +0,0 @@ | |||
| 1 | --- | ||
| 2 | "@executor-js/plugin-openapi": patch | ||
| 3 | --- | ||
| 4 | |||
| 5 | 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. | ||
| @@ -1,5 +0,0 @@ | |||
| 1 | --- | ||
| 2 | "@executor-js/plugin-mcp": patch | ||
| 3 | --- | ||
| 4 | |||
| 5 | 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. | ||
| @@ -1,7 +0,0 @@ | |||
| 1 | --- | ||
| 2 | "@executor-js/plugin-mcp": patch | ||
| 3 | --- | ||
| 4 | |||
| 5 | **Closing a remote MCP connection now ends its streamable-http SSE request** | ||
| 6 | |||
| 7 | 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. | ||
| @@ -1,11 +0,0 @@ | |||
| 1 | --- | ||
| 2 | "executor": patch | ||
| 3 | --- | ||
| 4 | |||
| 5 | **An MCP health check no longer reports `healthy` when the connection's credential is missing** | ||
| 6 | |||
| 7 | 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. | ||
| 8 | |||
| 9 | 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. | ||
| 10 | |||
| 11 | 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. | ||
| @@ -1,8 +0,0 @@ | |||
| 1 | --- | ||
| 2 | "@executor-js/execution": patch | ||
| 3 | "executor": patch | ||
| 4 | --- | ||
| 5 | |||
| 6 | **Opt-in per-integration search tools on the MCP surface** | ||
| 7 | |||
| 8 | 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. | ||
| @@ -1,11 +0,0 @@ | |||
| 1 | --- | ||
| 2 | "executor": patch | ||
| 3 | --- | ||
| 4 | |||
| 5 | **The MCP connection pool no longer keeps credentials in its cache key** | ||
| 6 | |||
| 7 | 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. | ||
| 8 | |||
| 9 | 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. | ||
| 10 | |||
| 11 | Nothing reads the key back — the pool only compares it, and it reaches no log, span or error message — so nothing observable changes. | ||
| @@ -1,15 +0,0 @@ | |||
| 1 | --- | ||
| 2 | "executor": patch | ||
| 3 | --- | ||
| 4 | |||
| 5 | **Idle MCP session runtimes are actually reclaimed** | ||
| 6 | |||
| 7 | 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. | ||
| 8 | |||
| 9 | 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. | ||
| 10 | |||
| 11 | 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. | ||
| 12 | |||
| 13 | 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. | ||
| 14 | |||
| 15 | 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. | ||
| @@ -1,9 +0,0 @@ | |||
| 1 | --- | ||
| 2 | "executor": patch | ||
| 3 | --- | ||
| 4 | |||
| 5 | **Fix: declare the OAuth application type during dynamic client registration** | ||
| 6 | |||
| 7 | Dynamic OAuth registrations now identify HTTPS callbacks as web applications | ||
| 8 | and loopback HTTP callbacks as native applications. This lets strict OAuth | ||
| 9 | servers validate Executor's redirect URI against the correct client type. | ||
| @@ -1,9 +0,0 @@ | |||
| 1 | --- | ||
| 2 | "executor": patch | ||
| 3 | --- | ||
| 4 | |||
| 5 | **The OAuth popup clears its result out of `localStorage` after handing it over** | ||
| 6 | |||
| 7 | 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. | ||
| 8 | |||
| 9 | 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. | ||
| @@ -1,11 +0,0 @@ | |||
| 1 | --- | ||
| 2 | "executor": patch | ||
| 3 | --- | ||
| 4 | |||
| 5 | **The 1Password service-account token is cleared from the op-js global after each call** | ||
| 6 | |||
| 7 | `@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. | ||
| 8 | |||
| 9 | 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. | ||
| 10 | |||
| 11 | 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. | ||
| @@ -1,5 +0,0 @@ | |||
| 1 | --- | ||
| 2 | "@executor-js/plugin-openapi": patch | ||
| 3 | --- | ||
| 4 | |||
| 5 | 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. | ||
| @@ -1,6 +0,0 @@ | |||
| 1 | --- | ||
| 2 | "@executor-js/execution": patch | ||
| 3 | "executor": patch | ||
| 4 | --- | ||
| 5 | |||
| 6 | 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`. | ||
| @@ -1,8 +0,0 @@ | |||
| 1 | --- | ||
| 2 | "@executor-js/sdk": patch | ||
| 3 | "@executor-js/api": patch | ||
| 4 | --- | ||
| 5 | |||
| 6 | 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`. | ||
| 7 | |||
| 8 | 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. | ||
| @@ -1,11 +0,0 @@ | |||
| 1 | --- | ||
| 2 | "executor": patch | ||
| 3 | --- | ||
| 4 | |||
| 5 | **The packed Worker toolchain is verified at build time, and an incomplete copy is now reported instead of silently ignored** | ||
| 6 | |||
| 7 | `@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. | ||
| 8 | |||
| 9 | 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. | ||
| 10 | |||
| 11 | 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. | ||
| @@ -1,5 +1,93 @@ | |||
| 1 | # executor | 1 | # executor |
| 2 | 2 | ||
| 3 | ## 1.6.1 | ||
| 4 | |||
| 5 | ### Patch Changes | ||
| 6 | |||
| 7 | - [#1576](https://github.com/UsefulSoftwareCo/executor/pull/1576) [`6535a74`](https://github.com/UsefulSoftwareCo/executor/commit/6535a74de4860e376e5a2e273cb2d5a662f98c5c) Thanks [@GeiserX](https://github.com/GeiserX)! - **The CLI's server-connection store is written owner-only, and two of its tests now actually run** | ||
| 8 | |||
| 9 | `~/.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`. | ||
| 10 | |||
| 11 | 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. | ||
| 12 | |||
| 13 | 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. | ||
| 14 | |||
| 15 | - [#1454](https://github.com/UsefulSoftwareCo/executor/pull/1454) [`e8ea62c`](https://github.com/UsefulSoftwareCo/executor/commit/e8ea62c8ba295931cf969cd310278b6a50771bdc) Thanks [@jadch](https://github.com/jadch)! - Prevent concurrent SQLite data-migration runners from failing when another runner commits the same ledger stamp first. | ||
| 16 | |||
| 17 | - [#1579](https://github.com/UsefulSoftwareCo/executor/pull/1579) [`31e17c7`](https://github.com/UsefulSoftwareCo/executor/commit/31e17c725f0987f86896519f0626f9c94d39ccb7) Thanks [@GeiserX](https://github.com/GeiserX)! - **The desktop settings store is written owner-only** | ||
| 18 | |||
| 19 | `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. | ||
| 20 | |||
| 21 | 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. | ||
| 22 | |||
| 23 | - [#1582](https://github.com/UsefulSoftwareCo/executor/pull/1582) [`e8e97c4`](https://github.com/UsefulSoftwareCo/executor/commit/e8e97c4c008fce702ee07ec0ffe2a8d3e6946a21) Thanks [@GeiserX](https://github.com/GeiserX)! - **An MCP health check no longer reports `healthy` when the connection's credential is missing** | ||
| 24 | |||
| 25 | 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. | ||
| 26 | |||
| 27 | 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. | ||
| 28 | |||
| 29 | 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. | ||
| 30 | |||
| 31 | - [#1741](https://github.com/UsefulSoftwareCo/executor/pull/1741) [`62748e8`](https://github.com/UsefulSoftwareCo/executor/commit/62748e86122b747226c76c2e112c5c4d2b4f7095) Thanks [@RhysSullivan](https://github.com/RhysSullivan)! - **Opt-in per-integration search tools on the MCP surface** | ||
| 32 | |||
| 33 | 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. | ||
| 34 | |||
| 35 | - [#1573](https://github.com/UsefulSoftwareCo/executor/pull/1573) [`45ba141`](https://github.com/UsefulSoftwareCo/executor/commit/45ba1419b4e33ad10b0856c5fbc40fabc8f6efe1) Thanks [@GeiserX](https://github.com/GeiserX)! - **The MCP connection pool no longer keeps credentials in its cache key** | ||
| 36 | |||
| 37 | 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. | ||
| 38 | |||
| 39 | 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. | ||
| 40 | |||
| 41 | Nothing reads the key back — the pool only compares it, and it reaches no log, span or error message — so nothing observable changes. | ||
| 42 | |||
| 43 | - [#1800](https://github.com/UsefulSoftwareCo/executor/pull/1800) [`eac13e7`](https://github.com/UsefulSoftwareCo/executor/commit/eac13e7032c027d866c06728f1d5b634fd9ef7dd) Thanks [@RhysSullivan](https://github.com/RhysSullivan)! - **Idle MCP session runtimes are actually reclaimed** | ||
| 44 | |||
| 45 | 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. | ||
| 46 | |||
| 47 | 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. | ||
| 48 | |||
| 49 | 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. | ||
| 50 | |||
| 51 | 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. | ||
| 52 | |||
| 53 | 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. | ||
| 54 | |||
| 55 | - [#1609](https://github.com/UsefulSoftwareCo/executor/pull/1609) [`662ebe2`](https://github.com/UsefulSoftwareCo/executor/commit/662ebe28d5109156a1aa3b27eaa80ba9daacaf11) Thanks [@timkley](https://github.com/timkley)! - **Fix: declare the OAuth application type during dynamic client registration** | ||
| 56 | |||
| 57 | Dynamic OAuth registrations now identify HTTPS callbacks as web applications | ||
| 58 | and loopback HTTP callbacks as native applications. This lets strict OAuth | ||
| 59 | servers validate Executor's redirect URI against the correct client type. | ||
| 60 | |||
| 61 | - [#1570](https://github.com/UsefulSoftwareCo/executor/pull/1570) [`e66a3d8`](https://github.com/UsefulSoftwareCo/executor/commit/e66a3d893c948fcccc7fc028870d051cb2d31860) Thanks [@GeiserX](https://github.com/GeiserX)! - **The OAuth popup clears its result out of `localStorage` after handing it over** | ||
| 62 | |||
| 63 | 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. | ||
| 64 | |||
| 65 | 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. | ||
| 66 | |||
| 67 | - [#1574](https://github.com/UsefulSoftwareCo/executor/pull/1574) [`c8bb857`](https://github.com/UsefulSoftwareCo/executor/commit/c8bb8578c3afdc9731274d9e9abc68d7ce32d9ab) Thanks [@GeiserX](https://github.com/GeiserX)! - **The 1Password service-account token is cleared from the op-js global after each call** | ||
| 68 | |||
| 69 | `@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. | ||
| 70 | |||
| 71 | 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. | ||
| 72 | |||
| 73 | 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. | ||
| 74 | |||
| 75 | - [#1749](https://github.com/UsefulSoftwareCo/executor/pull/1749) [`d4afe0c`](https://github.com/UsefulSoftwareCo/executor/commit/d4afe0c79f146dd169a00988a2d5d0469297be19) Thanks [@RhysSullivan](https://github.com/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`. | ||
| 76 | |||
| 77 | - [#1798](https://github.com/UsefulSoftwareCo/executor/pull/1798) [`69b0e64`](https://github.com/UsefulSoftwareCo/executor/commit/69b0e6413737599f11848b3877048f789ca84ac5) Thanks [@RhysSullivan](https://github.com/RhysSullivan)! - **The packed Worker toolchain is verified at build time, and an incomplete copy is now reported instead of silently ignored** | ||
| 78 | |||
| 79 | `@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. | ||
| 80 | |||
| 81 | 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. | ||
| 82 | |||
| 83 | 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. | ||
| 84 | |||
| 85 | - Updated dependencies [[`55180cb`](https://github.com/UsefulSoftwareCo/executor/commit/55180cb1487f9a3a28ddc0ee0bedfab8464c1f72)]: | ||
| 86 | - @executor-js/sdk@1.6.1 | ||
| 87 | - @executor-js/api@1.4.64 | ||
| 88 | - @executor-js/local@1.6.1 | ||
| 89 | - @executor-js/runtime-quickjs@1.6.1 | ||
| 90 | |||
| 3 | ## 1.6.0 | 91 | ## 1.6.0 |
| 4 | 92 | ||
| 5 | ### Patch Changes | 93 | ### Patch Changes |
| @@ -1,6 +1,6 @@ | |||
| 1 | { | 1 | { |
| 2 | "name": "executor", | 2 | "name": "executor", |
| 3 | "version": "1.6.0", | 3 | "version": "1.6.1", |
| 4 | "private": true, | 4 | "private": true, |
| 5 | "bin": { | 5 | "bin": { |
| 6 | "executor": "./bin/executor.ts" | 6 | "executor": "./bin/executor.ts" |
| @@ -1,5 +1,26 @@ | |||
| 1 | # @executor-js/cloud | 1 | # @executor-js/cloud |
| 2 | 2 | ||
| 3 | ## 1.4.62 | ||
| 4 | |||
| 5 | ### Patch Changes | ||
| 6 | |||
| 7 | - Updated dependencies [[`9dff4e8`](https://github.com/UsefulSoftwareCo/executor/commit/9dff4e8e6598e7d3108634a71269245ba9b480bb), [`7c12aee`](https://github.com/UsefulSoftwareCo/executor/commit/7c12aeea390225291ce4c97865b392237ee7934d), [`ddbf0fe`](https://github.com/UsefulSoftwareCo/executor/commit/ddbf0feba38c8502d78fa20c3081391b8ba3d112), [`91062c2`](https://github.com/UsefulSoftwareCo/executor/commit/91062c2b1d7b8edbc8470ca5eaa544045652afaa), [`9c35f26`](https://github.com/UsefulSoftwareCo/executor/commit/9c35f269dd5de3548111fe5c83cf1e877f23c80d), [`62748e8`](https://github.com/UsefulSoftwareCo/executor/commit/62748e86122b747226c76c2e112c5c4d2b4f7095), [`0007474`](https://github.com/UsefulSoftwareCo/executor/commit/0007474602d8da3642648f216bfdb0f09eb0914f), [`d4afe0c`](https://github.com/UsefulSoftwareCo/executor/commit/d4afe0c79f146dd169a00988a2d5d0469297be19), [`55180cb`](https://github.com/UsefulSoftwareCo/executor/commit/55180cb1487f9a3a28ddc0ee0bedfab8464c1f72)]: | ||
| 8 | - @executor-js/react@1.4.64 | ||
| 9 | - @executor-js/plugin-openapi@1.6.1 | ||
| 10 | - @executor-js/plugin-mcp@1.6.1 | ||
| 11 | - @executor-js/execution@1.6.1 | ||
| 12 | - @executor-js/sdk@1.6.1 | ||
| 13 | - @executor-js/api@1.4.64 | ||
| 14 | - @executor-js/mcp-apps-shell@1.4.12 | ||
| 15 | - @executor-js/plugin-graphql@1.6.1 | ||
| 16 | - @executor-js/plugin-toolkits@1.5.36 | ||
| 17 | - @executor-js/plugin-workos-vault@0.0.2 | ||
| 18 | - @executor-js/runtime-dynamic-worker@1.4.4 | ||
| 19 | - @executor-js/cloudflare@0.0.43 | ||
| 20 | - @executor-js/host-mcp@1.4.4 | ||
| 21 | - @executor-js/vite-plugin@0.0.61 | ||
| 22 | - @executor-js/runtime-quickjs@1.6.1 | ||
| 23 | |||
| 3 | ## 1.4.61 | 24 | ## 1.4.61 |
| 4 | 25 | ||
| 5 | ### Patch Changes | 26 | ### Patch Changes |
| @@ -1,6 +1,6 @@ | |||
| 1 | { | 1 | { |
| 2 | "name": "@executor-js/cloud", | 2 | "name": "@executor-js/cloud", |
| 3 | "version": "1.4.61", | 3 | "version": "1.4.62", |
| 4 | "private": true, | 4 | "private": true, |
| 5 | "type": "module", | 5 | "type": "module", |
| 6 | "scripts": { | 6 | "scripts": { |
| @@ -1,5 +1,7 @@ | |||
| 1 | # @executor-js/desktop | 1 | # @executor-js/desktop |
| 2 | 2 | ||
| 3 | ## 1.6.1 | ||
| 4 | |||
| 3 | ## 1.6.0 | 5 | ## 1.6.0 |
| 4 | 6 | ||
| 5 | ## 1.5.42 | 7 | ## 1.5.42 |
| @@ -1,6 +1,6 @@ | |||
| 1 | { | 1 | { |
| 2 | "name": "@executor-js/desktop", | 2 | "name": "@executor-js/desktop", |
| 3 | "version": "1.6.0", | 3 | "version": "1.6.1", |
| 4 | "private": true, | 4 | "private": true, |
| 5 | "homepage": "https://github.com/UsefulSoftwareCo/executor", | 5 | "homepage": "https://github.com/UsefulSoftwareCo/executor", |
| 6 | "license": "MIT", | 6 | "license": "MIT", |
| @@ -1,5 +1,26 @@ | |||
| 1 | # @executor-js/host-selfhost | 1 | # @executor-js/host-selfhost |
| 2 | 2 | ||
| 3 | ## 0.0.43 | ||
| 4 | |||
| 5 | ### Patch Changes | ||
| 6 | |||
| 7 | - Updated dependencies [[`9dff4e8`](https://github.com/UsefulSoftwareCo/executor/commit/9dff4e8e6598e7d3108634a71269245ba9b480bb), [`7c12aee`](https://github.com/UsefulSoftwareCo/executor/commit/7c12aeea390225291ce4c97865b392237ee7934d), [`ddbf0fe`](https://github.com/UsefulSoftwareCo/executor/commit/ddbf0feba38c8502d78fa20c3081391b8ba3d112), [`91062c2`](https://github.com/UsefulSoftwareCo/executor/commit/91062c2b1d7b8edbc8470ca5eaa544045652afaa), [`9c35f26`](https://github.com/UsefulSoftwareCo/executor/commit/9c35f269dd5de3548111fe5c83cf1e877f23c80d), [`62748e8`](https://github.com/UsefulSoftwareCo/executor/commit/62748e86122b747226c76c2e112c5c4d2b4f7095), [`0007474`](https://github.com/UsefulSoftwareCo/executor/commit/0007474602d8da3642648f216bfdb0f09eb0914f), [`d4afe0c`](https://github.com/UsefulSoftwareCo/executor/commit/d4afe0c79f146dd169a00988a2d5d0469297be19), [`55180cb`](https://github.com/UsefulSoftwareCo/executor/commit/55180cb1487f9a3a28ddc0ee0bedfab8464c1f72)]: | ||
| 8 | - @executor-js/react@1.4.64 | ||
| 9 | - @executor-js/plugin-openapi@1.6.1 | ||
| 10 | - @executor-js/plugin-mcp@1.6.1 | ||
| 11 | - @executor-js/execution@1.6.1 | ||
| 12 | - @executor-js/sdk@1.6.1 | ||
| 13 | - @executor-js/api@1.4.64 | ||
| 14 | - @executor-js/app@1.4.4 | ||
| 15 | - @executor-js/mcp-apps-shell@1.4.12 | ||
| 16 | - @executor-js/plugin-graphql@1.6.1 | ||
| 17 | - @executor-js/plugin-toolkits@1.5.36 | ||
| 18 | - @executor-js/plugin-provider-service-split@0.0.15 | ||
| 19 | - @executor-js/analytics@0.1.8 | ||
| 20 | - @executor-js/host-mcp@1.4.4 | ||
| 21 | - @executor-js/plugin-encrypted-secrets@0.0.43 | ||
| 22 | - @executor-js/runtime-quickjs@1.6.1 | ||
| 23 | |||
| 3 | ## 0.0.42 | 24 | ## 0.0.42 |
| 4 | 25 | ||
| 5 | ### Patch Changes | 26 | ### Patch Changes |
| @@ -1,6 +1,6 @@ | |||
| 1 | { | 1 | { |
| 2 | "name": "@executor-js/host-selfhost", | 2 | "name": "@executor-js/host-selfhost", |
| 3 | "version": "0.0.42", | 3 | "version": "0.0.43", |
| 4 | "private": true, | 4 | "private": true, |
| 5 | "type": "module", | 5 | "type": "module", |
| 6 | "exports": { | 6 | "exports": { |
| @@ -1,5 +1,32 @@ | |||
| 1 | # @executor-js/local | 1 | # @executor-js/local |
| 2 | 2 | ||
| 3 | ## 1.6.1 | ||
| 4 | |||
| 5 | ### Patch Changes | ||
| 6 | |||
| 7 | - Updated dependencies [[`9dff4e8`](https://github.com/UsefulSoftwareCo/executor/commit/9dff4e8e6598e7d3108634a71269245ba9b480bb), [`7c12aee`](https://github.com/UsefulSoftwareCo/executor/commit/7c12aeea390225291ce4c97865b392237ee7934d), [`ddbf0fe`](https://github.com/UsefulSoftwareCo/executor/commit/ddbf0feba38c8502d78fa20c3081391b8ba3d112), [`91062c2`](https://github.com/UsefulSoftwareCo/executor/commit/91062c2b1d7b8edbc8470ca5eaa544045652afaa), [`9c35f26`](https://github.com/UsefulSoftwareCo/executor/commit/9c35f269dd5de3548111fe5c83cf1e877f23c80d), [`62748e8`](https://github.com/UsefulSoftwareCo/executor/commit/62748e86122b747226c76c2e112c5c4d2b4f7095), [`0007474`](https://github.com/UsefulSoftwareCo/executor/commit/0007474602d8da3642648f216bfdb0f09eb0914f), [`d4afe0c`](https://github.com/UsefulSoftwareCo/executor/commit/d4afe0c79f146dd169a00988a2d5d0469297be19), [`55180cb`](https://github.com/UsefulSoftwareCo/executor/commit/55180cb1487f9a3a28ddc0ee0bedfab8464c1f72)]: | ||
| 8 | - @executor-js/react@1.4.64 | ||
| 9 | - @executor-js/plugin-openapi@1.6.1 | ||
| 10 | - @executor-js/plugin-mcp@1.6.1 | ||
| 11 | - @executor-js/execution@1.6.1 | ||
| 12 | - @executor-js/sdk@1.6.1 | ||
| 13 | - @executor-js/api@1.4.64 | ||
| 14 | - @executor-js/app@1.4.4 | ||
| 15 | - @executor-js/mcp-apps-shell@1.4.12 | ||
| 16 | - @executor-js/plugin-graphql@1.6.1 | ||
| 17 | - @executor-js/plugin-onepassword@1.6.1 | ||
| 18 | - @executor-js/plugin-toolkits@1.5.36 | ||
| 19 | - @executor-js/plugin-provider-service-split@0.0.15 | ||
| 20 | - @executor-js/analytics@0.1.8 | ||
| 21 | - @executor-js/host-mcp@1.4.4 | ||
| 22 | - @executor-js/config@1.6.1 | ||
| 23 | - @executor-js/vite-plugin@0.0.61 | ||
| 24 | - @executor-js/plugin-desktop-settings@1.6.1 | ||
| 25 | - @executor-js/plugin-example@1.6.1 | ||
| 26 | - @executor-js/plugin-file-secrets@1.6.1 | ||
| 27 | - @executor-js/plugin-keychain@1.6.1 | ||
| 28 | - @executor-js/runtime-quickjs@1.6.1 | ||
| 29 | |||
| 3 | ## 1.6.0 | 30 | ## 1.6.0 |
| 4 | 31 | ||
| 5 | ### Patch Changes | 32 | ### Patch Changes |
| @@ -1,6 +1,6 @@ | |||
| 1 | { | 1 | { |
| 2 | "name": "@executor-js/local", | 2 | "name": "@executor-js/local", |
| 3 | "version": "1.6.0", | 3 | "version": "1.6.1", |
| 4 | "private": true, | 4 | "private": true, |
| 5 | "type": "module", | 5 | "type": "module", |
| 6 | "exports": { | 6 | "exports": { |
| @@ -31,7 +31,7 @@ · 30 unmodified lines | |||
| 31 | }, | 31 | }, |
| 32 | "apps/cli": { | 32 | "apps/cli": { |
| 33 | "name": "executor", | 33 | "name": "executor", |
| 34 | "version": "1.6.0", | 34 | "version": "1.6.1", |
| 35 | "bin": { | 35 | "bin": { |
| 36 | "executor": "./bin/executor.ts", | 36 | "executor": "./bin/executor.ts", |
| 37 | }, | 37 | }, |
| @@ -60,7 +60,7 @@ · 22 unmodified lines | |||
| 60 | }, | 60 | }, |
| 61 | "apps/cloud": { | 61 | "apps/cloud": { |
| 62 | "name": "@executor-js/cloud", | 62 | "name": "@executor-js/cloud", |
| 63 | "version": "1.4.61", | 63 | "version": "1.4.62", |
| 64 | "dependencies": { | 64 | "dependencies": { |
| 65 | "@cloudflare/vite-plugin": "^1.31.1", | 65 | "@cloudflare/vite-plugin": "^1.31.1", |
| 66 | "@effect/atom-react": "catalog:", | 66 | "@effect/atom-react": "catalog:", |
| @@ -133,7 +133,7 @@ · 66 unmodified lines | |||
| 133 | }, | 133 | }, |
| 134 | "apps/desktop": { | 134 | "apps/desktop": { |
| 135 | "name": "@executor-js/desktop", | 135 | "name": "@executor-js/desktop", |
| 136 | "version": "1.6.0", | 136 | "version": "1.6.1", |
| 137 | "dependencies": { | 137 | "dependencies": { |
| 138 | "@sentry/bun": "^10.57.0", | 138 | "@sentry/bun": "^10.57.0", |
| 139 | "@sentry/electron": "^7.13.0", | 139 | "@sentry/electron": "^7.13.0", |
| @@ -220,7 +220,7 @@ · 80 unmodified lines | |||
| 220 | }, | 220 | }, |
| 221 | "apps/host-selfhost": { | 221 | "apps/host-selfhost": { |
| 222 | "name": "@executor-js/host-selfhost", | 222 | "name": "@executor-js/host-selfhost", |
| 223 | "version": "0.0.42", | 223 | "version": "0.0.43", |
| 224 | "dependencies": { | 224 | "dependencies": { |
| 225 | "@better-auth/api-key": "^1.6.11", | 225 | "@better-auth/api-key": "^1.6.11", |
| 226 | "@cloudflare/worker-bundler": "0.2.1", | 226 | "@cloudflare/worker-bundler": "0.2.1", |
| @@ -272,7 +272,7 @@ · 45 unmodified lines | |||
| 272 | }, | 272 | }, |
| 273 | "apps/local": { | 273 | "apps/local": { |
| 274 | "name": "@executor-js/local", | 274 | "name": "@executor-js/local", |
| 275 | "version": "1.6.0", | 275 | "version": "1.6.1", |
| 276 | "dependencies": { | 276 | "dependencies": { |
| 277 | "@effect/atom-react": "catalog:", | 277 | "@effect/atom-react": "catalog:", |
| 278 | "@effect/platform-node": "catalog:", | 278 | "@effect/platform-node": "catalog:", |
| @@ -352,7 +352,7 @@ · 73 unmodified lines | |||
| 352 | }, | 352 | }, |
| 353 | "e2e": { | 353 | "e2e": { |
| 354 | "name": "@executor-js/e2e", | 354 | "name": "@executor-js/e2e", |
| 355 | "version": "0.0.40", | 355 | "version": "0.0.41", |
| 356 | "dependencies": { | 356 | "dependencies": { |
| 357 | "@executor-js/api": "workspace:*", | 357 | "@executor-js/api": "workspace:*", |
| 358 | "@executor-js/emulate": "^0.14.0", | 358 | "@executor-js/emulate": "^0.14.0", |
| @@ -387,7 +387,7 @@ · 28 unmodified lines | |||
| 387 | }, | 387 | }, |
| 388 | "examples/all-plugins": { | 388 | "examples/all-plugins": { |
| 389 | "name": "@executor-js/example-all-plugins", | 389 | "name": "@executor-js/example-all-plugins", |
| 390 | "version": "0.0.61", | 390 | "version": "0.0.62", |
| 391 | "dependencies": { | 391 | "dependencies": { |
| 392 | "@executor-js/plugin-file-secrets": "workspace:*", | 392 | "@executor-js/plugin-file-secrets": "workspace:*", |
| 393 | "@executor-js/plugin-graphql": "workspace:*", | 393 | "@executor-js/plugin-graphql": "workspace:*", |
| @@ -406,7 +406,7 @@ · 12 unmodified lines | |||
| 406 | }, | 406 | }, |
| 407 | "examples/docs-sdk-quickstart": { | 407 | "examples/docs-sdk-quickstart": { |
| 408 | "name": "@executor-js/example-docs-sdk-quickstart", | 408 | "name": "@executor-js/example-docs-sdk-quickstart", |
| 409 | "version": "0.0.46", | 409 | "version": "0.0.47", |
| 410 | "dependencies": { | 410 | "dependencies": { |
| 411 | "@executor-js/plugin-openapi": "workspace:*", | 411 | "@executor-js/plugin-openapi": "workspace:*", |
| 412 | "@executor-js/sdk": "workspace:*", | 412 | "@executor-js/sdk": "workspace:*", |
| @@ -463,7 +463,7 @@ · 50 unmodified lines | |||
| 463 | }, | 463 | }, |
| 464 | "packages/core/analytics": { | 464 | "packages/core/analytics": { |
| 465 | "name": "@executor-js/analytics", | 465 | "name": "@executor-js/analytics", |
| 466 | "version": "0.1.7", | 466 | "version": "0.1.8", |
| 467 | "dependencies": { | 467 | "dependencies": { |
| 468 | "@effect/platform-node": "catalog:", | 468 | "@effect/platform-node": "catalog:", |
| 469 | "@executor-js/execution": "workspace:*", | 469 | "@executor-js/execution": "workspace:*", |
| @@ -479,7 +479,7 @@ · 9 unmodified lines | |||
| 479 | }, | 479 | }, |
| 480 | "packages/core/api": { | 480 | "packages/core/api": { |
| 481 | "name": "@executor-js/api", | 481 | "name": "@executor-js/api", |
| 482 | "version": "1.4.63", | 482 | "version": "1.4.64", |
| 483 | "dependencies": { | 483 | "dependencies": { |
| 484 | "@executor-js/execution": "workspace:*", | 484 | "@executor-js/execution": "workspace:*", |
| 485 | "@executor-js/host-mcp": "workspace:*", | 485 | "@executor-js/host-mcp": "workspace:*", |
| @@ -496,7 +496,7 @@ · 10 unmodified lines | |||
| 496 | }, | 496 | }, |
| 497 | "packages/core/cli": { | 497 | "packages/core/cli": { |
| 498 | "name": "@executor-js/cli", | 498 | "name": "@executor-js/cli", |
| 499 | "version": "0.2.50", | 499 | "version": "0.2.51", |
| 500 | "bin": { | 500 | "bin": { |
| 501 | "executor-sdk": "./dist/index.js", | 501 | "executor-sdk": "./dist/index.js", |
| 502 | }, | 502 | }, |
| @@ -517,7 +517,7 @@ · 14 unmodified lines | |||
| 517 | }, | 517 | }, |
| 518 | "packages/core/config": { | 518 | "packages/core/config": { |
| 519 | "name": "@executor-js/config", | 519 | "name": "@executor-js/config", |
| 520 | "version": "1.6.0", | 520 | "version": "1.6.1", |
| 521 | "dependencies": { | 521 | "dependencies": { |
| 522 | "@executor-js/sdk": "workspace:*", | 522 | "@executor-js/sdk": "workspace:*", |
| 523 | "jiti": "^2.6.1", | 523 | "jiti": "^2.6.1", |
| @@ -538,7 +538,7 @@ · 14 unmodified lines | |||
| 538 | }, | 538 | }, |
| 539 | "packages/core/execution": { | 539 | "packages/core/execution": { |
| 540 | "name": "@executor-js/execution", | 540 | "name": "@executor-js/execution", |
| 541 | "version": "1.6.0", | 541 | "version": "1.6.1", |
| 542 | "dependencies": { | 542 | "dependencies": { |
| 543 | "@executor-js/codemode-core": "workspace:*", | 543 | "@executor-js/codemode-core": "workspace:*", |
| 544 | "@executor-js/sdk": "workspace:*", | 544 | "@executor-js/sdk": "workspace:*", |
| @@ -604,7 +604,7 @@ · 59 unmodified lines | |||
| 604 | }, | 604 | }, |
| 605 | "packages/core/sdk": { | 605 | "packages/core/sdk": { |
| 606 | "name": "@executor-js/sdk", | 606 | "name": "@executor-js/sdk", |
| 607 | "version": "1.6.0", | 607 | "version": "1.6.1", |
| 608 | "dependencies": { | 608 | "dependencies": { |
| 609 | "@executor-js/fumadb": "workspace:*", | 609 | "@executor-js/fumadb": "workspace:*", |
| 610 | "@standard-schema/spec": "^1.1.0", | 610 | "@standard-schema/spec": "^1.1.0", |
| @@ -657,7 +657,7 @@ · 46 unmodified lines | |||
| 657 | }, | 657 | }, |
| 658 | "packages/core/vite-plugin": { | 658 | "packages/core/vite-plugin": { |
| 659 | "name": "@executor-js/vite-plugin", | 659 | "name": "@executor-js/vite-plugin", |
| 660 | "version": "0.0.60", | 660 | "version": "0.0.61", |
| 661 | "dependencies": { | 661 | "dependencies": { |
| 662 | "@executor-js/sdk": "workspace:*", | 662 | "@executor-js/sdk": "workspace:*", |
| 663 | "jiti": "^2.6.1", | 663 | "jiti": "^2.6.1", |
| @@ -677,7 +677,7 @@ · 13 unmodified lines | |||
| 677 | }, | 677 | }, |
| 678 | "packages/hosts/cloudflare": { | 678 | "packages/hosts/cloudflare": { |
| 679 | "name": "@executor-js/cloudflare", | 679 | "name": "@executor-js/cloudflare", |
| 680 | "version": "0.0.42", | 680 | "version": "0.0.43", |
| 681 | "dependencies": { | 681 | "dependencies": { |
| 682 | "@executor-js/api": "workspace:*", | 682 | "@executor-js/api": "workspace:*", |
| 683 | "@executor-js/execution": "workspace:*", | 683 | "@executor-js/execution": "workspace:*", |
| @@ -718,7 +718,7 @@ · 34 unmodified lines | |||
| 718 | }, | 718 | }, |
| 719 | "packages/hosts/mcp-apps-shell": { | 719 | "packages/hosts/mcp-apps-shell": { |
| 720 | "name": "@executor-js/mcp-apps-shell", | 720 | "name": "@executor-js/mcp-apps-shell", |
| 721 | "version": "1.4.11", | 721 | "version": "1.4.12", |
| 722 | "dependencies": { | 722 | "dependencies": { |
| 723 | "@executor-js/react": "workspace:*", | 723 | "@executor-js/react": "workspace:*", |
| 724 | "@executor-js/runtime-quickjs": "workspace:*", | 724 | "@executor-js/runtime-quickjs": "workspace:*", |
| @@ -756,7 +756,7 @@ · 31 unmodified lines | |||
| 756 | }, | 756 | }, |
| 757 | "packages/kernel/core": { | 757 | "packages/kernel/core": { |
| 758 | "name": "@executor-js/codemode-core", | 758 | "name": "@executor-js/codemode-core", |
| 759 | "version": "1.6.0", | 759 | "version": "1.6.1", |
| 760 | "dependencies": { | 760 | "dependencies": { |
| 761 | "@babel/parser": "^7.29.2", | 761 | "@babel/parser": "^7.29.2", |
| 762 | "@standard-schema/spec": "^1.0.0", | 762 | "@standard-schema/spec": "^1.0.0", |
| @@ -829,7 +829,7 @@ · 66 unmodified lines | |||
| 829 | }, | 829 | }, |
| 830 | "packages/kernel/runtime-quickjs": { | 830 | "packages/kernel/runtime-quickjs": { |
| 831 | "name": "@executor-js/runtime-quickjs", | 831 | "name": "@executor-js/runtime-quickjs", |
| 832 | "version": "1.6.0", | 832 | "version": "1.6.1", |
| 833 | "dependencies": { | 833 | "dependencies": { |
| 834 | "@executor-js/codemode-core": "workspace:*", | 834 | "@executor-js/codemode-core": "workspace:*", |
| 835 | "quickjs-emscripten": "catalog:", | 835 | "quickjs-emscripten": "catalog:", |
| @@ -849,7 +849,7 @@ · 13 unmodified lines | |||
| 849 | }, | 849 | }, |
| 850 | "packages/kernel/runtime-workerd-subprocess": { | 850 | "packages/kernel/runtime-workerd-subprocess": { |
| 851 | "name": "@executor-js/runtime-workerd-subprocess", | 851 | "name": "@executor-js/runtime-workerd-subprocess", |
| 852 | "version": "0.0.15", | 852 | "version": "0.0.16", |
| 853 | "dependencies": { | 853 | "dependencies": { |
| 854 | "@executor-js/codemode-core": "workspace:*", | 854 | "@executor-js/codemode-core": "workspace:*", |
| 855 | "effect": "catalog:", | 855 | "effect": "catalog:", |
| @@ -864,7 +864,7 @@ · 8 unmodified lines | |||
| 864 | }, | 864 | }, |
| 865 | "packages/plugins/desktop-settings": { | 865 | "packages/plugins/desktop-settings": { |
| 866 | "name": "@executor-js/plugin-desktop-settings", | 866 | "name": "@executor-js/plugin-desktop-settings", |
| 867 | "version": "1.6.0", | 867 | "version": "1.6.1", |
| 868 | "dependencies": { | 868 | "dependencies": { |
| 869 | "@executor-js/sdk": "workspace:*", | 869 | "@executor-js/sdk": "workspace:*", |
| 870 | "react": "catalog:", | 870 | "react": "catalog:", |
| @@ -877,7 +877,7 @@ · 6 unmodified lines | |||
| 877 | }, | 877 | }, |
| 878 | "packages/plugins/encrypted-secrets": { | 878 | "packages/plugins/encrypted-secrets": { |
| 879 | "name": "@executor-js/plugin-encrypted-secrets", | 879 | "name": "@executor-js/plugin-encrypted-secrets", |
| 880 | "version": "0.0.42", | 880 | "version": "0.0.43", |
| 881 | "dependencies": { | 881 | "dependencies": { |
| 882 | "@executor-js/sdk": "workspace:*", | 882 | "@executor-js/sdk": "workspace:*", |
| 883 | "effect": "catalog:", | 883 | "effect": "catalog:", |
| @@ -892,7 +892,7 @@ · 8 unmodified lines | |||
| 892 | }, | 892 | }, |
| 893 | "packages/plugins/example": { | 893 | "packages/plugins/example": { |
| 894 | "name": "@executor-js/plugin-example", | 894 | "name": "@executor-js/plugin-example", |
| 895 | "version": "1.6.0", | 895 | "version": "1.6.1", |
| 896 | "dependencies": { | 896 | "dependencies": { |
| 897 | "@executor-js/sdk": "workspace:*", | 897 | "@executor-js/sdk": "workspace:*", |
| 898 | }, | 898 | }, |
| @@ -915,7 +915,7 @@ · 16 unmodified lines | |||
| 915 | }, | 915 | }, |
| 916 | "packages/plugins/file-secrets": { | 916 | "packages/plugins/file-secrets": { |
| 917 | "name": "@executor-js/plugin-file-secrets", | 917 | "name": "@executor-js/plugin-file-secrets", |
| 918 | "version": "1.6.0", | 918 | "version": "1.6.1", |
| 919 | "dependencies": { | 919 | "dependencies": { |
| 920 | "@executor-js/sdk": "workspace:*", | 920 | "@executor-js/sdk": "workspace:*", |
| 921 | }, | 921 | }, |
| @@ -932,7 +932,7 @@ · 10 unmodified lines | |||
| 932 | }, | 932 | }, |
| 933 | "packages/plugins/graphql": { | 933 | "packages/plugins/graphql": { |
| 934 | "name": "@executor-js/plugin-graphql", | 934 | "name": "@executor-js/plugin-graphql", |
| 935 | "version": "1.6.0", | 935 | "version": "1.6.1", |
| 936 | "dependencies": { | 936 | "dependencies": { |
| 937 | "@effect/platform-node": "catalog:", | 937 | "@effect/platform-node": "catalog:", |
| 938 | "@executor-js/config": "workspace:*", | 938 | "@executor-js/config": "workspace:*", |
| @@ -971,7 +971,7 @@ · 32 unmodified lines | |||
| 971 | }, | 971 | }, |
| 972 | "packages/plugins/keychain": { | 972 | "packages/plugins/keychain": { |
| 973 | "name": "@executor-js/plugin-keychain", | 973 | "name": "@executor-js/plugin-keychain", |
| 974 | "version": "1.6.0", | 974 | "version": "1.6.1", |
| 975 | "dependencies": { | 975 | "dependencies": { |
| 976 | "@executor-js/sdk": "workspace:*", | 976 | "@executor-js/sdk": "workspace:*", |
| 977 | "@napi-rs/keyring": "^1.2.0", | 977 | "@napi-rs/keyring": "^1.2.0", |
| @@ -990,7 +990,7 @@ · 12 unmodified lines | |||
| 990 | }, | 990 | }, |
| 991 | "packages/plugins/mcp": { | 991 | "packages/plugins/mcp": { |
| 992 | "name": "@executor-js/plugin-mcp", | 992 | "name": "@executor-js/plugin-mcp", |
| 993 | "version": "1.6.0", | 993 | "version": "1.6.1", |
| 994 | "dependencies": { | 994 | "dependencies": { |
| 995 | "@cfworker/json-schema": "^4.1.1", | 995 | "@cfworker/json-schema": "^4.1.1", |
| 996 | "@effect/platform-node": "catalog:", | 996 | "@effect/platform-node": "catalog:", |
| @@ -1033,7 +1033,7 @@ · 36 unmodified lines | |||
| 1033 | }, | 1033 | }, |
| 1034 | "packages/plugins/onepassword": { | 1034 | "packages/plugins/onepassword": { |
| 1035 | "name": "@executor-js/plugin-onepassword", | 1035 | "name": "@executor-js/plugin-onepassword", |
| 1036 | "version": "1.6.0", | 1036 | "version": "1.6.1", |
| 1037 | "dependencies": { | 1037 | "dependencies": { |
| 1038 | "@1password/op-js": "^0.1.13", | 1038 | "@1password/op-js": "^0.1.13", |
| 1039 | "@1password/sdk": "^0.4.1-beta.1", | 1039 | "@1password/sdk": "^0.4.1-beta.1", |
| @@ -1067,7 +1067,7 @@ · 27 unmodified lines | |||
| 1067 | }, | 1067 | }, |
| 1068 | "packages/plugins/openapi": { | 1068 | "packages/plugins/openapi": { |
| 1069 | "name": "@executor-js/plugin-openapi", | 1069 | "name": "@executor-js/plugin-openapi", |
| 1070 | "version": "1.6.0", | 1070 | "version": "1.6.1", |
| 1071 | "dependencies": { | 1071 | "dependencies": { |
| 1072 | "@effect/platform-node": "catalog:", | 1072 | "@effect/platform-node": "catalog:", |
| 1073 | "@executor-js/config": "workspace:*", | 1073 | "@executor-js/config": "workspace:*", |
| @@ -1108,7 +1108,7 @@ · 34 unmodified lines | |||
| 1108 | }, | 1108 | }, |
| 1109 | "packages/plugins/provider-service-split": { | 1109 | "packages/plugins/provider-service-split": { |
| 1110 | "name": "@executor-js/plugin-provider-service-split", | 1110 | "name": "@executor-js/plugin-provider-service-split", |
| 1111 | "version": "0.0.14", | 1111 | "version": "0.0.15", |
| 1112 | "dependencies": { | 1112 | "dependencies": { |
| 1113 | "@executor-js/plugin-openapi": "workspace:*", | 1113 | "@executor-js/plugin-openapi": "workspace:*", |
| 1114 | "@executor-js/sdk": "workspace:*", | 1114 | "@executor-js/sdk": "workspace:*", |
| @@ -1125,7 +1125,7 @@ · 10 unmodified lines | |||
| 1125 | }, | 1125 | }, |
| 1126 | "packages/plugins/toolkits": { | 1126 | "packages/plugins/toolkits": { |
| 1127 | "name": "@executor-js/plugin-toolkits", | 1127 | "name": "@executor-js/plugin-toolkits", |
| 1128 | "version": "1.5.35", | 1128 | "version": "1.5.36", |
| 1129 | "dependencies": { | 1129 | "dependencies": { |
| 1130 | "@executor-js/sdk": "workspace:*", | 1130 | "@executor-js/sdk": "workspace:*", |
| 1131 | }, | 1131 | }, |
| @@ -1194,7 +1194,7 @@ · 62 unmodified lines | |||
| 1194 | }, | 1194 | }, |
| 1195 | "packages/react": { | 1195 | "packages/react": { |
| 1196 | "name": "@executor-js/react", | 1196 | "name": "@executor-js/react", |
| 1197 | "version": "1.4.63", | 1197 | "version": "1.4.64", |
| 1198 | "dependencies": { | 1198 | "dependencies": { |
| 1199 | "@base-ui/react": "^1.3.0", | 1199 | "@base-ui/react": "^1.3.0", |
| 1200 | "@effect/atom-react": "catalog:", | 1200 | "@effect/atom-react": "catalog:", |
| @@ -1,5 +1,17 @@ | |||
| 1 | # @executor-js/e2e | 1 | # @executor-js/e2e |
| 2 | 2 | ||
| 3 | ## 0.0.41 | ||
| 4 | |||
| 5 | ### Patch Changes | ||
| 6 | |||
| 7 | - Updated dependencies [[`7c12aee`](https://github.com/UsefulSoftwareCo/executor/commit/7c12aeea390225291ce4c97865b392237ee7934d), [`ddbf0fe`](https://github.com/UsefulSoftwareCo/executor/commit/ddbf0feba38c8502d78fa20c3081391b8ba3d112), [`91062c2`](https://github.com/UsefulSoftwareCo/executor/commit/91062c2b1d7b8edbc8470ca5eaa544045652afaa), [`9c35f26`](https://github.com/UsefulSoftwareCo/executor/commit/9c35f269dd5de3548111fe5c83cf1e877f23c80d), [`0007474`](https://github.com/UsefulSoftwareCo/executor/commit/0007474602d8da3642648f216bfdb0f09eb0914f), [`55180cb`](https://github.com/UsefulSoftwareCo/executor/commit/55180cb1487f9a3a28ddc0ee0bedfab8464c1f72)]: | ||
| 8 | - @executor-js/plugin-openapi@1.6.1 | ||
| 9 | - @executor-js/plugin-mcp@1.6.1 | ||
| 10 | - @executor-js/sdk@1.6.1 | ||
| 11 | - @executor-js/api@1.4.64 | ||
| 12 | - @executor-js/plugin-graphql@1.6.1 | ||
| 13 | - @executor-js/plugin-toolkits@1.5.36 | ||
| 14 | |||
| 3 | ## 0.0.40 | 15 | ## 0.0.40 |
| 4 | 16 | ||
| 5 | ### Patch Changes | 17 | ### Patch Changes |
| @@ -1,6 +1,6 @@ | |||
| 1 | { | 1 | { |
| 2 | "name": "@executor-js/e2e", | 2 | "name": "@executor-js/e2e", |
| 3 | "version": "0.0.40", | 3 | "version": "0.0.41", |
| 4 | "private": true, | 4 | "private": true, |
| 5 | "type": "module", | 5 | "type": "module", |
| 6 | "scripts": { | 6 | "scripts": { |
| @@ -1,5 +1,19 @@ | |||
| 1 | # @executor-js/example-all-plugins | 1 | # @executor-js/example-all-plugins |
| 2 | 2 | ||
| 3 | ## 0.0.62 | ||
| 4 | |||
| 5 | ### Patch Changes | ||
| 6 | |||
| 7 | - Updated dependencies [[`7c12aee`](https://github.com/UsefulSoftwareCo/executor/commit/7c12aeea390225291ce4c97865b392237ee7934d), [`ddbf0fe`](https://github.com/UsefulSoftwareCo/executor/commit/ddbf0feba38c8502d78fa20c3081391b8ba3d112), [`91062c2`](https://github.com/UsefulSoftwareCo/executor/commit/91062c2b1d7b8edbc8470ca5eaa544045652afaa), [`9c35f26`](https://github.com/UsefulSoftwareCo/executor/commit/9c35f269dd5de3548111fe5c83cf1e877f23c80d), [`0007474`](https://github.com/UsefulSoftwareCo/executor/commit/0007474602d8da3642648f216bfdb0f09eb0914f), [`55180cb`](https://github.com/UsefulSoftwareCo/executor/commit/55180cb1487f9a3a28ddc0ee0bedfab8464c1f72)]: | ||
| 8 | - @executor-js/plugin-openapi@1.6.1 | ||
| 9 | - @executor-js/plugin-mcp@1.6.1 | ||
| 10 | - @executor-js/sdk@1.6.1 | ||
| 11 | - @executor-js/plugin-graphql@1.6.1 | ||
| 12 | - @executor-js/plugin-onepassword@1.6.1 | ||
| 13 | - @executor-js/plugin-workos-vault@0.0.2 | ||
| 14 | - @executor-js/plugin-file-secrets@1.6.1 | ||
| 15 | - @executor-js/plugin-keychain@1.6.1 | ||
| 16 | |||
| 3 | ## 0.0.61 | 17 | ## 0.0.61 |
| 4 | 18 | ||
| 5 | ### Patch Changes | 19 | ### Patch Changes |
| @@ -1,6 +1,6 @@ | |||
| 1 | { | 1 | { |
| 2 | "name": "@executor-js/example-all-plugins", | 2 | "name": "@executor-js/example-all-plugins", |
| 3 | "version": "0.0.61", | 3 | "version": "0.0.62", |
| 4 | "private": true, | 4 | "private": true, |
| 5 | "type": "module", | 5 | "type": "module", |
| 6 | "scripts": { | 6 | "scripts": { |
| @@ -1,5 +1,13 @@ | |||
| 1 | # @executor-js/example-docs-sdk-quickstart | 1 | # @executor-js/example-docs-sdk-quickstart |
| 2 | 2 | ||
| 3 | ## 0.0.47 | ||
| 4 | |||
| 5 | ### Patch Changes | ||
| 6 | |||
| 7 | - Updated dependencies [[`7c12aee`](https://github.com/UsefulSoftwareCo/executor/commit/7c12aeea390225291ce4c97865b392237ee7934d), [`ddbf0fe`](https://github.com/UsefulSoftwareCo/executor/commit/ddbf0feba38c8502d78fa20c3081391b8ba3d112), [`0007474`](https://github.com/UsefulSoftwareCo/executor/commit/0007474602d8da3642648f216bfdb0f09eb0914f), [`55180cb`](https://github.com/UsefulSoftwareCo/executor/commit/55180cb1487f9a3a28ddc0ee0bedfab8464c1f72)]: | ||
| 8 | - @executor-js/plugin-openapi@1.6.1 | ||
| 9 | - @executor-js/sdk@1.6.1 | ||
| 10 | |||
| 3 | ## 0.0.46 | 11 | ## 0.0.46 |
| 4 | 12 | ||
| 5 | ### Patch Changes | 13 | ### Patch Changes |
| @@ -1,6 +1,6 @@ | |||
| 1 | { | 1 | { |
| 2 | "name": "@executor-js/example-docs-sdk-quickstart", | 2 | "name": "@executor-js/example-docs-sdk-quickstart", |
| 3 | "version": "0.0.46", | 3 | "version": "0.0.47", |
| 4 | "private": true, | 4 | "private": true, |
| 5 | "type": "module", | 5 | "type": "module", |
| 6 | "scripts": { | 6 | "scripts": { |
| @@ -1,5 +1,12 @@ | |||
| 1 | # @executor-js/analytics | 1 | # @executor-js/analytics |
| 2 | 2 | ||
| 3 | ## 0.1.8 | ||
| 4 | |||
| 5 | ### Patch Changes | ||
| 6 | |||
| 7 | - Updated dependencies [[`62748e8`](https://github.com/UsefulSoftwareCo/executor/commit/62748e86122b747226c76c2e112c5c4d2b4f7095), [`d4afe0c`](https://github.com/UsefulSoftwareCo/executor/commit/d4afe0c79f146dd169a00988a2d5d0469297be19)]: | ||
| 8 | - @executor-js/execution@1.6.1 | ||
| 9 | |||
| 3 | ## 0.1.7 | 10 | ## 0.1.7 |
| 4 | 11 | ||
| 5 | ### Patch Changes | 12 | ### Patch Changes |
| @@ -1,6 +1,6 @@ | |||
| 1 | { | 1 | { |
| 2 | "name": "@executor-js/analytics", | 2 | "name": "@executor-js/analytics", |
| 3 | "version": "0.1.7", | 3 | "version": "0.1.8", |
| 4 | "private": true, | 4 | "private": true, |
| 5 | "homepage": "https://github.com/UsefulSoftwareCo/executor/tree/main/packages/core/analytics", | 5 | "homepage": "https://github.com/UsefulSoftwareCo/executor/tree/main/packages/core/analytics", |
| 6 | "bugs": { | 6 | "bugs": { |
| @@ -1,5 +1,18 @@ | |||
| 1 | # @executor-js/api | 1 | # @executor-js/api |
| 2 | 2 | ||
| 3 | ## 1.4.64 | ||
| 4 | |||
| 5 | ### Patch Changes | ||
| 6 | |||
| 7 | - [#1784](https://github.com/UsefulSoftwareCo/executor/pull/1784) [`55180cb`](https://github.com/UsefulSoftwareCo/executor/commit/55180cb1487f9a3a28ddc0ee0bedfab8464c1f72) Thanks [@RhysSullivan](https://github.com/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`. | ||
| 8 | |||
| 9 | 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. | ||
| 10 | |||
| 11 | - Updated dependencies [[`62748e8`](https://github.com/UsefulSoftwareCo/executor/commit/62748e86122b747226c76c2e112c5c4d2b4f7095), [`d4afe0c`](https://github.com/UsefulSoftwareCo/executor/commit/d4afe0c79f146dd169a00988a2d5d0469297be19), [`55180cb`](https://github.com/UsefulSoftwareCo/executor/commit/55180cb1487f9a3a28ddc0ee0bedfab8464c1f72)]: | ||
| 12 | - @executor-js/execution@1.6.1 | ||
| 13 | - @executor-js/sdk@1.6.1 | ||
| 14 | - @executor-js/host-mcp@1.4.4 | ||
| 15 | |||
| 3 | ## 1.4.63 | 16 | ## 1.4.63 |
| 4 | 17 | ||
| 5 | ### Patch Changes | 18 | ### Patch Changes |
| @@ -1,6 +1,6 @@ | |||
| 1 | { | 1 | { |
| 2 | "name": "@executor-js/api", | 2 | "name": "@executor-js/api", |
| 3 | "version": "1.4.63", | 3 | "version": "1.4.64", |
| 4 | "private": true, | 4 | "private": true, |
| 5 | "type": "module", | 5 | "type": "module", |
| 6 | "exports": { | 6 | "exports": { |
| @@ -1,5 +1,12 @@ | |||
| 1 | # @executor-js/cli | 1 | # @executor-js/cli |
| 2 | 2 | ||
| 3 | ## 0.2.51 | ||
| 4 | |||
| 5 | ### Patch Changes | ||
| 6 | |||
| 7 | - Updated dependencies [[`55180cb`](https://github.com/UsefulSoftwareCo/executor/commit/55180cb1487f9a3a28ddc0ee0bedfab8464c1f72)]: | ||
| 8 | - @executor-js/sdk@1.6.1 | ||
| 9 | |||
| 3 | ## 0.2.50 | 10 | ## 0.2.50 |
| 4 | 11 | ||
| 5 | ### Patch Changes | 12 | ### Patch Changes |
| @@ -1,6 +1,6 @@ | |||
| 1 | { | 1 | { |
| 2 | "name": "@executor-js/cli", | 2 | "name": "@executor-js/cli", |
| 3 | "version": "0.2.50", | 3 | "version": "0.2.51", |
| 4 | "description": "CLI for the executor SDK — schema generation, migrations", | 4 | "description": "CLI for the executor SDK — schema generation, migrations", |
| 5 | "homepage": "https://github.com/UsefulSoftwareCo/executor/tree/main/packages/core/cli", | 5 | "homepage": "https://github.com/UsefulSoftwareCo/executor/tree/main/packages/core/cli", |
| 6 | "bugs": { | 6 | "bugs": { |
| @@ -1,5 +1,12 @@ | |||
| 1 | # @executor-js/config | 1 | # @executor-js/config |
| 2 | 2 | ||
| 3 | ## 1.6.1 | ||
| 4 | |||
| 5 | ### Patch Changes | ||
| 6 | |||
| 7 | - Updated dependencies [[`55180cb`](https://github.com/UsefulSoftwareCo/executor/commit/55180cb1487f9a3a28ddc0ee0bedfab8464c1f72)]: | ||
| 8 | - @executor-js/sdk@1.6.1 | ||
| 9 | |||
| 3 | ## 1.6.0 | 10 | ## 1.6.0 |
| 4 | 11 | ||
| 5 | ### Patch Changes | 12 | ### Patch Changes |
| @@ -1,6 +1,6 @@ | |||
| 1 | { | 1 | { |
| 2 | "name": "@executor-js/config", | 2 | "name": "@executor-js/config", |
| 3 | "version": "1.6.0", | 3 | "version": "1.6.1", |
| 4 | "homepage": "https://github.com/UsefulSoftwareCo/executor/tree/main/packages/core/config", | 4 | "homepage": "https://github.com/UsefulSoftwareCo/executor/tree/main/packages/core/config", |
| 5 | "bugs": { | 5 | "bugs": { |
| 6 | "url": "https://github.com/UsefulSoftwareCo/executor/issues" | 6 | "url": "https://github.com/UsefulSoftwareCo/executor/issues" |
| @@ -1,5 +1,19 @@ | |||
| 1 | # @executor-js/execution | 1 | # @executor-js/execution |
| 2 | 2 | ||
| 3 | ## 1.6.1 | ||
| 4 | |||
| 5 | ### Patch Changes | ||
| 6 | |||
| 7 | - [#1741](https://github.com/UsefulSoftwareCo/executor/pull/1741) [`62748e8`](https://github.com/UsefulSoftwareCo/executor/commit/62748e86122b747226c76c2e112c5c4d2b4f7095) Thanks [@RhysSullivan](https://github.com/RhysSullivan)! - **Opt-in per-integration search tools on the MCP surface** | ||
| 8 | |||
| 9 | 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. | ||
| 10 | |||
| 11 | - [#1749](https://github.com/UsefulSoftwareCo/executor/pull/1749) [`d4afe0c`](https://github.com/UsefulSoftwareCo/executor/commit/d4afe0c79f146dd169a00988a2d5d0469297be19) Thanks [@RhysSullivan](https://github.com/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`. | ||
| 12 | |||
| 13 | - Updated dependencies [[`55180cb`](https://github.com/UsefulSoftwareCo/executor/commit/55180cb1487f9a3a28ddc0ee0bedfab8464c1f72)]: | ||
| 14 | - @executor-js/sdk@1.6.1 | ||
| 15 | - @executor-js/codemode-core@1.6.1 | ||
| 16 | |||
| 3 | ## 1.6.0 | 17 | ## 1.6.0 |
| 4 | 18 | ||
| 5 | ### Patch Changes | 19 | ### Patch Changes |
| @@ -1,6 +1,6 @@ | |||
| 1 | { | 1 | { |
| 2 | "name": "@executor-js/execution", | 2 | "name": "@executor-js/execution", |
| 3 | "version": "1.6.0", | 3 | "version": "1.6.1", |
| 4 | "homepage": "https://github.com/UsefulSoftwareCo/executor/tree/main/packages/core/execution", | 4 | "homepage": "https://github.com/UsefulSoftwareCo/executor/tree/main/packages/core/execution", |
| 5 | "bugs": { | 5 | "bugs": { |
| 6 | "url": "https://github.com/UsefulSoftwareCo/executor/issues" | 6 | "url": "https://github.com/UsefulSoftwareCo/executor/issues" |
| @@ -1,5 +1,13 @@ | |||
| 1 | # @executor-js/sdk | 1 | # @executor-js/sdk |
| 2 | 2 | ||
| 3 | ## 1.6.1 | ||
| 4 | |||
| 5 | ### Patch Changes | ||
| 6 | |||
| 7 | - [#1784](https://github.com/UsefulSoftwareCo/executor/pull/1784) [`55180cb`](https://github.com/UsefulSoftwareCo/executor/commit/55180cb1487f9a3a28ddc0ee0bedfab8464c1f72) Thanks [@RhysSullivan](https://github.com/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`. | ||
| 8 | |||
| 9 | 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. | ||
| 10 | |||
| 3 | ## 1.6.0 | 11 | ## 1.6.0 |
| 4 | 12 | ||
| 5 | ### Patch Changes | 13 | ### Patch Changes |
| @@ -1,6 +1,6 @@ | |||
| 1 | { | 1 | { |
| 2 | "name": "@executor-js/sdk", | 2 | "name": "@executor-js/sdk", |
| 3 | "version": "1.6.0", | 3 | "version": "1.6.1", |
| 4 | "homepage": "https://github.com/UsefulSoftwareCo/executor/tree/main/packages/core/sdk", | 4 | "homepage": "https://github.com/UsefulSoftwareCo/executor/tree/main/packages/core/sdk", |
| 5 | "bugs": { | 5 | "bugs": { |
| 6 | "url": "https://github.com/UsefulSoftwareCo/executor/issues" | 6 | "url": "https://github.com/UsefulSoftwareCo/executor/issues" |
| @@ -1,5 +1,12 @@ | |||
| 1 | # @executor-js/vite-plugin | 1 | # @executor-js/vite-plugin |
| 2 | 2 | ||
| 3 | ## 0.0.61 | ||
| 4 | |||
| 5 | ### Patch Changes | ||
| 6 | |||
| 7 | - Updated dependencies [[`55180cb`](https://github.com/UsefulSoftwareCo/executor/commit/55180cb1487f9a3a28ddc0ee0bedfab8464c1f72)]: | ||
| 8 | - @executor-js/sdk@1.6.1 | ||
| 9 | |||
| 3 | ## 0.0.60 | 10 | ## 0.0.60 |
| 4 | 11 | ||
| 5 | ### Patch Changes | 12 | ### Patch Changes |
| @@ -1,6 +1,6 @@ | |||
| 1 | { | 1 | { |
| 2 | "name": "@executor-js/vite-plugin", | 2 | "name": "@executor-js/vite-plugin", |
| 3 | "version": "0.0.60", | 3 | "version": "0.0.61", |
| 4 | "homepage": "https://github.com/UsefulSoftwareCo/executor/tree/main/packages/core/vite-plugin", | 4 | "homepage": "https://github.com/UsefulSoftwareCo/executor/tree/main/packages/core/vite-plugin", |
| 5 | "bugs": { | 5 | "bugs": { |
| 6 | "url": "https://github.com/UsefulSoftwareCo/executor/issues" | 6 | "url": "https://github.com/UsefulSoftwareCo/executor/issues" |
| @@ -1,5 +1,15 @@ | |||
| 1 | # @executor-js/cloudflare | 1 | # @executor-js/cloudflare |
| 2 | 2 | ||
| 3 | ## 0.0.43 | ||
| 4 | |||
| 5 | ### Patch Changes | ||
| 6 | |||
| 7 | - Updated dependencies [[`62748e8`](https://github.com/UsefulSoftwareCo/executor/commit/62748e86122b747226c76c2e112c5c4d2b4f7095), [`d4afe0c`](https://github.com/UsefulSoftwareCo/executor/commit/d4afe0c79f146dd169a00988a2d5d0469297be19), [`55180cb`](https://github.com/UsefulSoftwareCo/executor/commit/55180cb1487f9a3a28ddc0ee0bedfab8464c1f72)]: | ||
| 8 | - @executor-js/execution@1.6.1 | ||
| 9 | - @executor-js/sdk@1.6.1 | ||
| 10 | - @executor-js/api@1.4.64 | ||
| 11 | - @executor-js/host-mcp@1.4.4 | ||
| 12 | |||
| 3 | ## 0.0.42 | 13 | ## 0.0.42 |
| 4 | 14 | ||
| 5 | ### Patch Changes | 15 | ### Patch Changes |
| @@ -1,6 +1,6 @@ | |||
| 1 | { | 1 | { |
| 2 | "name": "@executor-js/cloudflare", | 2 | "name": "@executor-js/cloudflare", |
| 3 | "version": "0.0.42", | 3 | "version": "0.0.43", |
| 4 | "private": true, | 4 | "private": true, |
| 5 | "type": "module", | 5 | "type": "module", |
| 6 | "exports": { | 6 | "exports": { |
| @@ -1,5 +1,13 @@ | |||
| 1 | # @executor-js/mcp-apps-shell | 1 | # @executor-js/mcp-apps-shell |
| 2 | 2 | ||
| 3 | ## 1.4.12 | ||
| 4 | |||
| 5 | ### Patch Changes | ||
| 6 | |||
| 7 | - Updated dependencies [[`9dff4e8`](https://github.com/UsefulSoftwareCo/executor/commit/9dff4e8e6598e7d3108634a71269245ba9b480bb)]: | ||
| 8 | - @executor-js/react@1.4.64 | ||
| 9 | - @executor-js/runtime-quickjs@1.6.1 | ||
| 10 | |||
| 3 | ## 1.4.11 | 11 | ## 1.4.11 |
| 4 | 12 | ||
| 5 | ### Patch Changes | 13 | ### Patch Changes |
| @@ -1,6 +1,6 @@ | |||
| 1 | { | 1 | { |
| 2 | "name": "@executor-js/mcp-apps-shell", | 2 | "name": "@executor-js/mcp-apps-shell", |
| 3 | "version": "1.4.11", | 3 | "version": "1.4.12", |
| 4 | "private": true, | 4 | "private": true, |
| 5 | "type": "module", | 5 | "type": "module", |
| 6 | "exports": { | 6 | "exports": { |
| @@ -1,5 +1,7 @@ | |||
| 1 | # @executor-js/codemode-core | 1 | # @executor-js/codemode-core |
| 2 | 2 | ||
| 3 | ## 1.6.1 | ||
| 4 | |||
| 3 | ## 1.6.0 | 5 | ## 1.6.0 |
| 4 | 6 | ||
| 5 | ## 1.5.42 | 7 | ## 1.5.42 |
| @@ -1,6 +1,6 @@ | |||
| 1 | { | 1 | { |
| 2 | "name": "@executor-js/codemode-core", | 2 | "name": "@executor-js/codemode-core", |
| 3 | "version": "1.6.0", | 3 | "version": "1.6.1", |
| 4 | "homepage": "https://github.com/UsefulSoftwareCo/executor/tree/main/packages/kernel/core", | 4 | "homepage": "https://github.com/UsefulSoftwareCo/executor/tree/main/packages/kernel/core", |
| 5 | "bugs": { | 5 | "bugs": { |
| 6 | "url": "https://github.com/UsefulSoftwareCo/executor/issues" | 6 | "url": "https://github.com/UsefulSoftwareCo/executor/issues" |
| @@ -1,5 +1,12 @@ | |||
| 1 | # @executor-js/runtime-quickjs | 1 | # @executor-js/runtime-quickjs |
| 2 | 2 | ||
| 3 | ## 1.6.1 | ||
| 4 | |||
| 5 | ### Patch Changes | ||
| 6 | |||
| 7 | - Updated dependencies []: | ||
| 8 | - @executor-js/codemode-core@1.6.1 | ||
| 9 | |||
| 3 | ## 1.6.0 | 10 | ## 1.6.0 |
| 4 | 11 | ||
| 5 | ### Patch Changes | 12 | ### Patch Changes |
| @@ -1,6 +1,6 @@ | |||
| 1 | { | 1 | { |
| 2 | "name": "@executor-js/runtime-quickjs", | 2 | "name": "@executor-js/runtime-quickjs", |
| 3 | "version": "1.6.0", | 3 | "version": "1.6.1", |
| 4 | "homepage": "https://github.com/UsefulSoftwareCo/executor/tree/main/packages/kernel/runtime-quickjs", | 4 | "homepage": "https://github.com/UsefulSoftwareCo/executor/tree/main/packages/kernel/runtime-quickjs", |
| 5 | "bugs": { | 5 | "bugs": { |
| 6 | "url": "https://github.com/UsefulSoftwareCo/executor/issues" | 6 | "url": "https://github.com/UsefulSoftwareCo/executor/issues" |
| @@ -1,5 +1,12 @@ | |||
| 1 | # @executor-js/runtime-workerd-subprocess | 1 | # @executor-js/runtime-workerd-subprocess |
| 2 | 2 | ||
| 3 | ## 0.0.16 | ||
| 4 | |||
| 5 | ### Patch Changes | ||
| 6 | |||
| 7 | - Updated dependencies []: | ||
| 8 | - @executor-js/codemode-core@1.6.1 | ||
| 9 | |||
| 3 | ## 0.0.15 | 10 | ## 0.0.15 |
| 4 | 11 | ||
| 5 | ### Patch Changes | 12 | ### Patch Changes |
| @@ -1,6 +1,6 @@ | |||
| 1 | { | 1 | { |
| 2 | "name": "@executor-js/runtime-workerd-subprocess", | 2 | "name": "@executor-js/runtime-workerd-subprocess", |
| 3 | "version": "0.0.15", | 3 | "version": "0.0.16", |
| 4 | "private": true, | 4 | "private": true, |
| 5 | "type": "module", | 5 | "type": "module", |
| 6 | "exports": { | 6 | "exports": { |
| @@ -1,5 +1,12 @@ | |||
| 1 | # @executor-js/plugin-desktop-settings | 1 | # @executor-js/plugin-desktop-settings |
| 2 | 2 | ||
| 3 | ## 1.6.1 | ||
| 4 | |||
| 5 | ### Patch Changes | ||
| 6 | |||
| 7 | - Updated dependencies [[`55180cb`](https://github.com/UsefulSoftwareCo/executor/commit/55180cb1487f9a3a28ddc0ee0bedfab8464c1f72)]: | ||
| 8 | - @executor-js/sdk@1.6.1 | ||
| 9 | |||
| 3 | ## 1.6.0 | 10 | ## 1.6.0 |
| 4 | 11 | ||
| 5 | ### Patch Changes | 12 | ### Patch Changes |
| @@ -1,6 +1,6 @@ | |||
| 1 | { | 1 | { |
| 2 | "name": "@executor-js/plugin-desktop-settings", | 2 | "name": "@executor-js/plugin-desktop-settings", |
| 3 | "version": "1.6.0", | 3 | "version": "1.6.1", |
| 4 | "homepage": "https://github.com/UsefulSoftwareCo/executor/tree/main/packages/plugins/desktop-settings", | 4 | "homepage": "https://github.com/UsefulSoftwareCo/executor/tree/main/packages/plugins/desktop-settings", |
| 5 | "bugs": { | 5 | "bugs": { |
| 6 | "url": "https://github.com/UsefulSoftwareCo/executor/issues" | 6 | "url": "https://github.com/UsefulSoftwareCo/executor/issues" |
| @@ -1,5 +1,12 @@ | |||
| 1 | # @executor-js/plugin-encrypted-secrets | 1 | # @executor-js/plugin-encrypted-secrets |
| 2 | 2 | ||
| 3 | ## 0.0.43 | ||
| 4 | |||
| 5 | ### Patch Changes | ||
| 6 | |||
| 7 | - Updated dependencies [[`55180cb`](https://github.com/UsefulSoftwareCo/executor/commit/55180cb1487f9a3a28ddc0ee0bedfab8464c1f72)]: | ||
| 8 | - @executor-js/sdk@1.6.1 | ||
| 9 | |||
| 3 | ## 0.0.42 | 10 | ## 0.0.42 |
| 4 | 11 | ||
| 5 | ### Patch Changes | 12 | ### Patch Changes |
| @@ -1,6 +1,6 @@ | |||
| 1 | { | 1 | { |
| 2 | "name": "@executor-js/plugin-encrypted-secrets", | 2 | "name": "@executor-js/plugin-encrypted-secrets", |
| 3 | "version": "0.0.42", | 3 | "version": "0.0.43", |
| 4 | "private": true, | 4 | "private": true, |
| 5 | "type": "module", | 5 | "type": "module", |
| 6 | "exports": { | 6 | "exports": { |
| @@ -1,5 +1,12 @@ | |||
| 1 | # @executor-js/plugin-example | 1 | # @executor-js/plugin-example |
| 2 | 2 | ||
| 3 | ## 1.6.1 | ||
| 4 | |||
| 5 | ### Patch Changes | ||
| 6 | |||
| 7 | - Updated dependencies [[`55180cb`](https://github.com/UsefulSoftwareCo/executor/commit/55180cb1487f9a3a28ddc0ee0bedfab8464c1f72)]: | ||
| 8 | - @executor-js/sdk@1.6.1 | ||
| 9 | |||
| 3 | ## 1.6.0 | 10 | ## 1.6.0 |
| 4 | 11 | ||
| 5 | ### Patch Changes | 12 | ### Patch Changes |
| @@ -1,6 +1,6 @@ | |||
| 1 | { | 1 | { |
| 2 | "name": "@executor-js/plugin-example", | 2 | "name": "@executor-js/plugin-example", |
| 3 | "version": "1.6.0", | 3 | "version": "1.6.1", |
| 4 | "homepage": "https://github.com/UsefulSoftwareCo/executor/tree/main/packages/plugins/example", | 4 | "homepage": "https://github.com/UsefulSoftwareCo/executor/tree/main/packages/plugins/example", |
| 5 | "bugs": { | 5 | "bugs": { |
| 6 | "url": "https://github.com/UsefulSoftwareCo/executor/issues" | 6 | "url": "https://github.com/UsefulSoftwareCo/executor/issues" |
| @@ -1,5 +1,12 @@ | |||
| 1 | # @executor-js/plugin-file-secrets | 1 | # @executor-js/plugin-file-secrets |
| 2 | 2 | ||
| 3 | ## 1.6.1 | ||
| 4 | |||
| 5 | ### Patch Changes | ||
| 6 | |||
| 7 | - Updated dependencies [[`55180cb`](https://github.com/UsefulSoftwareCo/executor/commit/55180cb1487f9a3a28ddc0ee0bedfab8464c1f72)]: | ||
| 8 | - @executor-js/sdk@1.6.1 | ||
| 9 | |||
| 3 | ## 1.6.0 | 10 | ## 1.6.0 |
| 4 | 11 | ||
| 5 | ### Patch Changes | 12 | ### Patch Changes |
| @@ -1,6 +1,6 @@ | |||
| 1 | { | 1 | { |
| 2 | "name": "@executor-js/plugin-file-secrets", | 2 | "name": "@executor-js/plugin-file-secrets", |
| 3 | "version": "1.6.0", | 3 | "version": "1.6.1", |
| 4 | "homepage": "https://github.com/UsefulSoftwareCo/executor/tree/main/packages/plugins/file-secrets", | 4 | "homepage": "https://github.com/UsefulSoftwareCo/executor/tree/main/packages/plugins/file-secrets", |
| 5 | "bugs": { | 5 | "bugs": { |
| 6 | "url": "https://github.com/UsefulSoftwareCo/executor/issues" | 6 | "url": "https://github.com/UsefulSoftwareCo/executor/issues" |
| @@ -1,5 +1,15 @@ | |||
| 1 | # @executor-js/plugin-graphql | 1 | # @executor-js/plugin-graphql |
| 2 | 2 | ||
| 3 | ## 1.6.1 | ||
| 4 | |||
| 5 | ### Patch Changes | ||
| 6 | |||
| 7 | - Updated dependencies [[`9dff4e8`](https://github.com/UsefulSoftwareCo/executor/commit/9dff4e8e6598e7d3108634a71269245ba9b480bb), [`55180cb`](https://github.com/UsefulSoftwareCo/executor/commit/55180cb1487f9a3a28ddc0ee0bedfab8464c1f72)]: | ||
| 8 | - @executor-js/react@1.4.64 | ||
| 9 | - @executor-js/sdk@1.6.1 | ||
| 10 | - @executor-js/api@1.4.64 | ||
| 11 | - @executor-js/config@1.6.1 | ||
| 12 | |||
| 3 | ## 1.6.0 | 13 | ## 1.6.0 |
| 4 | 14 | ||
| 5 | ### Patch Changes | 15 | ### Patch Changes |
| @@ -1,6 +1,6 @@ | |||
| 1 | { | 1 | { |
| 2 | "name": "@executor-js/plugin-graphql", | 2 | "name": "@executor-js/plugin-graphql", |
| 3 | "version": "1.6.0", | 3 | "version": "1.6.1", |
| 4 | "homepage": "https://github.com/UsefulSoftwareCo/executor/tree/main/packages/plugins/graphql", | 4 | "homepage": "https://github.com/UsefulSoftwareCo/executor/tree/main/packages/plugins/graphql", |
| 5 | "bugs": { | 5 | "bugs": { |
| 6 | "url": "https://github.com/UsefulSoftwareCo/executor/issues" | 6 | "url": "https://github.com/UsefulSoftwareCo/executor/issues" |
| @@ -1,5 +1,12 @@ | |||
| 1 | # @executor-js/plugin-keychain | 1 | # @executor-js/plugin-keychain |
| 2 | 2 | ||
| 3 | ## 1.6.1 | ||
| 4 | |||
| 5 | ### Patch Changes | ||
| 6 | |||
| 7 | - Updated dependencies [[`55180cb`](https://github.com/UsefulSoftwareCo/executor/commit/55180cb1487f9a3a28ddc0ee0bedfab8464c1f72)]: | ||
| 8 | - @executor-js/sdk@1.6.1 | ||
| 9 | |||
| 3 | ## 1.6.0 | 10 | ## 1.6.0 |
| 4 | 11 | ||
| 5 | ### Patch Changes | 12 | ### Patch Changes |
| @@ -1,6 +1,6 @@ | |||
| 1 | { | 1 | { |
| 2 | "name": "@executor-js/plugin-keychain", | 2 | "name": "@executor-js/plugin-keychain", |
| 3 | "version": "1.6.0", | 3 | "version": "1.6.1", |
| 4 | "homepage": "https://github.com/UsefulSoftwareCo/executor/tree/main/packages/plugins/keychain", | 4 | "homepage": "https://github.com/UsefulSoftwareCo/executor/tree/main/packages/plugins/keychain", |
| 5 | "bugs": { | 5 | "bugs": { |
| 6 | "url": "https://github.com/UsefulSoftwareCo/executor/issues" | 6 | "url": "https://github.com/UsefulSoftwareCo/executor/issues" |
| @@ -1,5 +1,21 @@ | |||
| 1 | # @executor-js/plugin-mcp | 1 | # @executor-js/plugin-mcp |
| 2 | 2 | ||
| 3 | ## 1.6.1 | ||
| 4 | |||
| 5 | ### Patch Changes | ||
| 6 | |||
| 7 | - [#1747](https://github.com/UsefulSoftwareCo/executor/pull/1747) [`91062c2`](https://github.com/UsefulSoftwareCo/executor/commit/91062c2b1d7b8edbc8470ca5eaa544045652afaa) Thanks [@RhysSullivan](https://github.com/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. | ||
| 8 | |||
| 9 | - [#1716](https://github.com/UsefulSoftwareCo/executor/pull/1716) [`9c35f26`](https://github.com/UsefulSoftwareCo/executor/commit/9c35f269dd5de3548111fe5c83cf1e877f23c80d) Thanks [@xav-ie](https://github.com/xav-ie)! - **Closing a remote MCP connection now ends its streamable-http SSE request** | ||
| 10 | |||
| 11 | 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. | ||
| 12 | |||
| 13 | - Updated dependencies [[`9dff4e8`](https://github.com/UsefulSoftwareCo/executor/commit/9dff4e8e6598e7d3108634a71269245ba9b480bb), [`55180cb`](https://github.com/UsefulSoftwareCo/executor/commit/55180cb1487f9a3a28ddc0ee0bedfab8464c1f72)]: | ||
| 14 | - @executor-js/react@1.4.64 | ||
| 15 | - @executor-js/sdk@1.6.1 | ||
| 16 | - @executor-js/api@1.4.64 | ||
| 17 | - @executor-js/config@1.6.1 | ||
| 18 | |||
| 3 | ## 1.6.0 | 19 | ## 1.6.0 |
| 4 | 20 | ||
| 5 | ### Minor Changes | 21 | ### Minor Changes |
| @@ -1,6 +1,6 @@ | |||
| 1 | { | 1 | { |
| 2 | "name": "@executor-js/plugin-mcp", | 2 | "name": "@executor-js/plugin-mcp", |
| 3 | "version": "1.6.0", | 3 | "version": "1.6.1", |
| 4 | "homepage": "https://github.com/UsefulSoftwareCo/executor/tree/main/packages/plugins/mcp", | 4 | "homepage": "https://github.com/UsefulSoftwareCo/executor/tree/main/packages/plugins/mcp", |
| 5 | "bugs": { | 5 | "bugs": { |
| 6 | "url": "https://github.com/UsefulSoftwareCo/executor/issues" | 6 | "url": "https://github.com/UsefulSoftwareCo/executor/issues" |
| @@ -1,5 +1,14 @@ | |||
| 1 | # @executor-js/plugin-onepassword | 1 | # @executor-js/plugin-onepassword |
| 2 | 2 | ||
| 3 | ## 1.6.1 | ||
| 4 | |||
| 5 | ### Patch Changes | ||
| 6 | |||
| 7 | - Updated dependencies [[`9dff4e8`](https://github.com/UsefulSoftwareCo/executor/commit/9dff4e8e6598e7d3108634a71269245ba9b480bb), [`55180cb`](https://github.com/UsefulSoftwareCo/executor/commit/55180cb1487f9a3a28ddc0ee0bedfab8464c1f72)]: | ||
| 8 | - @executor-js/react@1.4.64 | ||
| 9 | - @executor-js/sdk@1.6.1 | ||
| 10 | - @executor-js/api@1.4.64 | ||
| 11 | |||
| 3 | ## 1.6.0 | 12 | ## 1.6.0 |
| 4 | 13 | ||
| 5 | ### Patch Changes | 14 | ### Patch Changes |
| @@ -1,6 +1,6 @@ | |||
| 1 | { | 1 | { |
| 2 | "name": "@executor-js/plugin-onepassword", | 2 | "name": "@executor-js/plugin-onepassword", |
| 3 | "version": "1.6.0", | 3 | "version": "1.6.1", |
| 4 | "homepage": "https://github.com/UsefulSoftwareCo/executor/tree/main/packages/plugins/onepassword", | 4 | "homepage": "https://github.com/UsefulSoftwareCo/executor/tree/main/packages/plugins/onepassword", |
| 5 | "bugs": { | 5 | "bugs": { |
| 6 | "url": "https://github.com/UsefulSoftwareCo/executor/issues" | 6 | "url": "https://github.com/UsefulSoftwareCo/executor/issues" |
| @@ -1,5 +1,21 @@ | |||
| 1 | # @executor-js/plugin-openapi | 1 | # @executor-js/plugin-openapi |
| 2 | 2 | ||
| 3 | ## 1.6.1 | ||
| 4 | |||
| 5 | ### Patch Changes | ||
| 6 | |||
| 7 | - [#1755](https://github.com/UsefulSoftwareCo/executor/pull/1755) [`7c12aee`](https://github.com/UsefulSoftwareCo/executor/commit/7c12aeea390225291ce4c97865b392237ee7934d) Thanks [@RhysSullivan](https://github.com/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. | ||
| 8 | |||
| 9 | - [#1753](https://github.com/UsefulSoftwareCo/executor/pull/1753) [`ddbf0fe`](https://github.com/UsefulSoftwareCo/executor/commit/ddbf0feba38c8502d78fa20c3081391b8ba3d112) Thanks [@RhysSullivan](https://github.com/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. | ||
| 10 | |||
| 11 | - [#1751](https://github.com/UsefulSoftwareCo/executor/pull/1751) [`0007474`](https://github.com/UsefulSoftwareCo/executor/commit/0007474602d8da3642648f216bfdb0f09eb0914f) Thanks [@RhysSullivan](https://github.com/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. | ||
| 12 | |||
| 13 | - Updated dependencies [[`9dff4e8`](https://github.com/UsefulSoftwareCo/executor/commit/9dff4e8e6598e7d3108634a71269245ba9b480bb), [`55180cb`](https://github.com/UsefulSoftwareCo/executor/commit/55180cb1487f9a3a28ddc0ee0bedfab8464c1f72)]: | ||
| 14 | - @executor-js/react@1.4.64 | ||
| 15 | - @executor-js/sdk@1.6.1 | ||
| 16 | - @executor-js/api@1.4.64 | ||
| 17 | - @executor-js/config@1.6.1 | ||
| 18 | |||
| 3 | ## 1.6.0 | 19 | ## 1.6.0 |
| 4 | 20 | ||
| 5 | ### Patch Changes | 21 | ### Patch Changes |
| @@ -1,6 +1,6 @@ | |||
| 1 | { | 1 | { |
| 2 | "name": "@executor-js/plugin-openapi", | 2 | "name": "@executor-js/plugin-openapi", |
| 3 | "version": "1.6.0", | 3 | "version": "1.6.1", |
| 4 | "homepage": "https://github.com/UsefulSoftwareCo/executor/tree/main/packages/plugins/openapi", | 4 | "homepage": "https://github.com/UsefulSoftwareCo/executor/tree/main/packages/plugins/openapi", |
| 5 | "bugs": { | 5 | "bugs": { |
| 6 | "url": "https://github.com/UsefulSoftwareCo/executor/issues" | 6 | "url": "https://github.com/UsefulSoftwareCo/executor/issues" |
| @@ -1,5 +1,13 @@ | |||
| 1 | # @executor-js/plugin-provider-service-split | 1 | # @executor-js/plugin-provider-service-split |
| 2 | 2 | ||
| 3 | ## 0.0.15 | ||
| 4 | |||
| 5 | ### Patch Changes | ||
| 6 | |||
| 7 | - Updated dependencies [[`7c12aee`](https://github.com/UsefulSoftwareCo/executor/commit/7c12aeea390225291ce4c97865b392237ee7934d), [`ddbf0fe`](https://github.com/UsefulSoftwareCo/executor/commit/ddbf0feba38c8502d78fa20c3081391b8ba3d112), [`0007474`](https://github.com/UsefulSoftwareCo/executor/commit/0007474602d8da3642648f216bfdb0f09eb0914f), [`55180cb`](https://github.com/UsefulSoftwareCo/executor/commit/55180cb1487f9a3a28ddc0ee0bedfab8464c1f72)]: | ||
| 8 | - @executor-js/plugin-openapi@1.6.1 | ||
| 9 | - @executor-js/sdk@1.6.1 | ||
| 10 | |||
| 3 | ## 0.0.14 | 11 | ## 0.0.14 |
| 4 | 12 | ||
| 5 | ### Patch Changes | 13 | ### Patch Changes |
| @@ -1,6 +1,6 @@ | |||
| 1 | { | 1 | { |
| 2 | "name": "@executor-js/plugin-provider-service-split", | 2 | "name": "@executor-js/plugin-provider-service-split", |
| 3 | "version": "0.0.14", | 3 | "version": "0.0.15", |
| 4 | "private": true, | 4 | "private": true, |
| 5 | "type": "module", | 5 | "type": "module", |
| 6 | "exports": { | 6 | "exports": { |
| @@ -1,5 +1,14 @@ | |||
| 1 | # @executor-js/plugin-toolkits | 1 | # @executor-js/plugin-toolkits |
| 2 | 2 | ||
| 3 | ## 1.5.36 | ||
| 4 | |||
| 5 | ### Patch Changes | ||
| 6 | |||
| 7 | - Updated dependencies [[`9dff4e8`](https://github.com/UsefulSoftwareCo/executor/commit/9dff4e8e6598e7d3108634a71269245ba9b480bb), [`55180cb`](https://github.com/UsefulSoftwareCo/executor/commit/55180cb1487f9a3a28ddc0ee0bedfab8464c1f72)]: | ||
| 8 | - @executor-js/react@1.4.64 | ||
| 9 | - @executor-js/sdk@1.6.1 | ||
| 10 | - @executor-js/api@1.4.64 | ||
| 11 | |||
| 3 | ## 1.5.35 | 12 | ## 1.5.35 |
| 4 | 13 | ||
| 5 | ### Patch Changes | 14 | ### Patch Changes |
| @@ -1,6 +1,6 @@ | |||
| 1 | { | 1 | { |
| 2 | "name": "@executor-js/plugin-toolkits", | 2 | "name": "@executor-js/plugin-toolkits", |
| 3 | "version": "1.5.35", | 3 | "version": "1.5.36", |
| 4 | "homepage": "https://github.com/UsefulSoftwareCo/executor/tree/main/packages/plugins/toolkits", | 4 | "homepage": "https://github.com/UsefulSoftwareCo/executor/tree/main/packages/plugins/toolkits", |
| 5 | "bugs": { | 5 | "bugs": { |
| 6 | "url": "https://github.com/UsefulSoftwareCo/executor/issues" | 6 | "url": "https://github.com/UsefulSoftwareCo/executor/issues" |
| @@ -1,5 +1,19 @@ | |||
| 1 | # @executor-js/react | 1 | # @executor-js/react |
| 2 | 2 | ||
| 3 | ## 1.4.64 | ||
| 4 | |||
| 5 | ### Patch Changes | ||
| 6 | |||
| 7 | - [#1746](https://github.com/UsefulSoftwareCo/executor/pull/1746) [`9dff4e8`](https://github.com/UsefulSoftwareCo/executor/commit/9dff4e8e6598e7d3108634a71269245ba9b480bb) Thanks [@sergical](https://github.com/sergical)! - **The connection edit sheet now previews what agents actually read** | ||
| 8 | |||
| 9 | The "What agents see" preview in the connection edit sheet rendered a `- \`<prefix>\` — <description>`inventory line. That line left the`execute`tool 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", but`connections.list` returns it to agents alongside the description. | ||
| 10 | |||
| 11 | 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. | ||
| 12 | |||
| 13 | - Updated dependencies [[`55180cb`](https://github.com/UsefulSoftwareCo/executor/commit/55180cb1487f9a3a28ddc0ee0bedfab8464c1f72)]: | ||
| 14 | - @executor-js/sdk@1.6.1 | ||
| 15 | - @executor-js/api@1.4.64 | ||
| 16 | |||
| 3 | ## 1.4.63 | 17 | ## 1.4.63 |
| 4 | 18 | ||
| 5 | ### Patch Changes | 19 | ### Patch Changes |
| @@ -1,6 +1,6 @@ | |||
| 1 | { | 1 | { |
| 2 | "name": "@executor-js/react", | 2 | "name": "@executor-js/react", |
| 3 | "version": "1.4.63", | 3 | "version": "1.4.64", |
| 4 | "private": true, | 4 | "private": true, |
| 5 | "type": "module", | 5 | "type": "module", |
| 6 | "exports": { | 6 | "exports": { |