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 | 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 | 91 | ## 1.6.0 |
| 4 | 92 | |
| 5 | 93 | ### Patch Changes |
| @@ -1,6 +1,6 @@ | ||
| 1 | 1 | { |
| 2 | 2 | "name": "executor", |
| 3 | − "version": "1.6.0", | |
| 3 | + "version": "1.6.1", | |
| 4 | 4 | "private": true, |
| 5 | 5 | "bin": { |
| 6 | 6 | "executor": "./bin/executor.ts" |
| @@ -1,5 +1,26 @@ | ||
| 1 | 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 | 24 | ## 1.4.61 |
| 4 | 25 | |
| 5 | 26 | ### Patch Changes |
| @@ -1,6 +1,6 @@ | ||
| 1 | 1 | { |
| 2 | 2 | "name": "@executor-js/cloud", |
| 3 | − "version": "1.4.61", | |
| 3 | + "version": "1.4.62", | |
| 4 | 4 | "private": true, |
| 5 | 5 | "type": "module", |
| 6 | 6 | "scripts": { |
| @@ -1,5 +1,7 @@ | ||
| 1 | 1 | # @executor-js/desktop |
| 2 | 2 | |
| 3 | +## 1.6.1 | |
| 4 | + | |
| 3 | 5 | ## 1.6.0 |
| 4 | 6 | |
| 5 | 7 | ## 1.5.42 |
| @@ -1,6 +1,6 @@ | ||
| 1 | 1 | { |
| 2 | 2 | "name": "@executor-js/desktop", |
| 3 | − "version": "1.6.0", | |
| 3 | + "version": "1.6.1", | |
| 4 | 4 | "private": true, |
| 5 | 5 | "homepage": "https://github.com/UsefulSoftwareCo/executor", |
| 6 | 6 | "license": "MIT", |
| @@ -1,5 +1,26 @@ | ||
| 1 | 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 | 24 | ## 0.0.42 |
| 4 | 25 | |
| 5 | 26 | ### Patch Changes |
| @@ -1,6 +1,6 @@ | ||
| 1 | 1 | { |
| 2 | 2 | "name": "@executor-js/host-selfhost", |
| 3 | − "version": "0.0.42", | |
| 3 | + "version": "0.0.43", | |
| 4 | 4 | "private": true, |
| 5 | 5 | "type": "module", |
| 6 | 6 | "exports": { |
| @@ -1,5 +1,32 @@ | ||
| 1 | 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 | 30 | ## 1.6.0 |
| 4 | 31 | |
| 5 | 32 | ### Patch Changes |
| @@ -1,6 +1,6 @@ | ||
| 1 | 1 | { |
| 2 | 2 | "name": "@executor-js/local", |
| 3 | − "version": "1.6.0", | |
| 3 | + "version": "1.6.1", | |
| 4 | 4 | "private": true, |
| 5 | 5 | "type": "module", |
| 6 | 6 | "exports": { |
| @@ -31,7 +31,7 @@ · 30 unmodified lines | ||
| 31 | 31 | }, |
| 32 | 32 | "apps/cli": { |
| 33 | 33 | "name": "executor", |
| 34 | − "version": "1.6.0", | |
| 34 | + "version": "1.6.1", | |
| 35 | 35 | "bin": { |
| 36 | 36 | "executor": "./bin/executor.ts", |
| 37 | 37 | }, |
| @@ -60,7 +60,7 @@ · 22 unmodified lines | ||
| 60 | 60 | }, |
| 61 | 61 | "apps/cloud": { |
| 62 | 62 | "name": "@executor-js/cloud", |
| 63 | − "version": "1.4.61", | |
| 63 | + "version": "1.4.62", | |
| 64 | 64 | "dependencies": { |
| 65 | 65 | "@cloudflare/vite-plugin": "^1.31.1", |
| 66 | 66 | "@effect/atom-react": "catalog:", |
| @@ -133,7 +133,7 @@ · 66 unmodified lines | ||
| 133 | 133 | }, |
| 134 | 134 | "apps/desktop": { |
| 135 | 135 | "name": "@executor-js/desktop", |
| 136 | − "version": "1.6.0", | |
| 136 | + "version": "1.6.1", | |
| 137 | 137 | "dependencies": { |
| 138 | 138 | "@sentry/bun": "^10.57.0", |
| 139 | 139 | "@sentry/electron": "^7.13.0", |
| @@ -220,7 +220,7 @@ · 80 unmodified lines | ||
| 220 | 220 | }, |
| 221 | 221 | "apps/host-selfhost": { |
| 222 | 222 | "name": "@executor-js/host-selfhost", |
| 223 | − "version": "0.0.42", | |
| 223 | + "version": "0.0.43", | |
| 224 | 224 | "dependencies": { |
| 225 | 225 | "@better-auth/api-key": "^1.6.11", |
| 226 | 226 | "@cloudflare/worker-bundler": "0.2.1", |
| @@ -272,7 +272,7 @@ · 45 unmodified lines | ||
| 272 | 272 | }, |
| 273 | 273 | "apps/local": { |
| 274 | 274 | "name": "@executor-js/local", |
| 275 | − "version": "1.6.0", | |
| 275 | + "version": "1.6.1", | |
| 276 | 276 | "dependencies": { |
| 277 | 277 | "@effect/atom-react": "catalog:", |
| 278 | 278 | "@effect/platform-node": "catalog:", |
| @@ -352,7 +352,7 @@ · 73 unmodified lines | ||
| 352 | 352 | }, |
| 353 | 353 | "e2e": { |
| 354 | 354 | "name": "@executor-js/e2e", |
| 355 | − "version": "0.0.40", | |
| 355 | + "version": "0.0.41", | |
| 356 | 356 | "dependencies": { |
| 357 | 357 | "@executor-js/api": "workspace:*", |
| 358 | 358 | "@executor-js/emulate": "^0.14.0", |
| @@ -387,7 +387,7 @@ · 28 unmodified lines | ||
| 387 | 387 | }, |
| 388 | 388 | "examples/all-plugins": { |
| 389 | 389 | "name": "@executor-js/example-all-plugins", |
| 390 | − "version": "0.0.61", | |
| 390 | + "version": "0.0.62", | |
| 391 | 391 | "dependencies": { |
| 392 | 392 | "@executor-js/plugin-file-secrets": "workspace:*", |
| 393 | 393 | "@executor-js/plugin-graphql": "workspace:*", |
| @@ -406,7 +406,7 @@ · 12 unmodified lines | ||
| 406 | 406 | }, |
| 407 | 407 | "examples/docs-sdk-quickstart": { |
| 408 | 408 | "name": "@executor-js/example-docs-sdk-quickstart", |
| 409 | − "version": "0.0.46", | |
| 409 | + "version": "0.0.47", | |
| 410 | 410 | "dependencies": { |
| 411 | 411 | "@executor-js/plugin-openapi": "workspace:*", |
| 412 | 412 | "@executor-js/sdk": "workspace:*", |
| @@ -463,7 +463,7 @@ · 50 unmodified lines | ||
| 463 | 463 | }, |
| 464 | 464 | "packages/core/analytics": { |
| 465 | 465 | "name": "@executor-js/analytics", |
| 466 | − "version": "0.1.7", | |
| 466 | + "version": "0.1.8", | |
| 467 | 467 | "dependencies": { |
| 468 | 468 | "@effect/platform-node": "catalog:", |
| 469 | 469 | "@executor-js/execution": "workspace:*", |
| @@ -479,7 +479,7 @@ · 9 unmodified lines | ||
| 479 | 479 | }, |
| 480 | 480 | "packages/core/api": { |
| 481 | 481 | "name": "@executor-js/api", |
| 482 | − "version": "1.4.63", | |
| 482 | + "version": "1.4.64", | |
| 483 | 483 | "dependencies": { |
| 484 | 484 | "@executor-js/execution": "workspace:*", |
| 485 | 485 | "@executor-js/host-mcp": "workspace:*", |
| @@ -496,7 +496,7 @@ · 10 unmodified lines | ||
| 496 | 496 | }, |
| 497 | 497 | "packages/core/cli": { |
| 498 | 498 | "name": "@executor-js/cli", |
| 499 | − "version": "0.2.50", | |
| 499 | + "version": "0.2.51", | |
| 500 | 500 | "bin": { |
| 501 | 501 | "executor-sdk": "./dist/index.js", |
| 502 | 502 | }, |
| @@ -517,7 +517,7 @@ · 14 unmodified lines | ||
| 517 | 517 | }, |
| 518 | 518 | "packages/core/config": { |
| 519 | 519 | "name": "@executor-js/config", |
| 520 | − "version": "1.6.0", | |
| 520 | + "version": "1.6.1", | |
| 521 | 521 | "dependencies": { |
| 522 | 522 | "@executor-js/sdk": "workspace:*", |
| 523 | 523 | "jiti": "^2.6.1", |
| @@ -538,7 +538,7 @@ · 14 unmodified lines | ||
| 538 | 538 | }, |
| 539 | 539 | "packages/core/execution": { |
| 540 | 540 | "name": "@executor-js/execution", |
| 541 | − "version": "1.6.0", | |
| 541 | + "version": "1.6.1", | |
| 542 | 542 | "dependencies": { |
| 543 | 543 | "@executor-js/codemode-core": "workspace:*", |
| 544 | 544 | "@executor-js/sdk": "workspace:*", |
| @@ -604,7 +604,7 @@ · 59 unmodified lines | ||
| 604 | 604 | }, |
| 605 | 605 | "packages/core/sdk": { |
| 606 | 606 | "name": "@executor-js/sdk", |
| 607 | − "version": "1.6.0", | |
| 607 | + "version": "1.6.1", | |
| 608 | 608 | "dependencies": { |
| 609 | 609 | "@executor-js/fumadb": "workspace:*", |
| 610 | 610 | "@standard-schema/spec": "^1.1.0", |
| @@ -657,7 +657,7 @@ · 46 unmodified lines | ||
| 657 | 657 | }, |
| 658 | 658 | "packages/core/vite-plugin": { |
| 659 | 659 | "name": "@executor-js/vite-plugin", |
| 660 | − "version": "0.0.60", | |
| 660 | + "version": "0.0.61", | |
| 661 | 661 | "dependencies": { |
| 662 | 662 | "@executor-js/sdk": "workspace:*", |
| 663 | 663 | "jiti": "^2.6.1", |
| @@ -677,7 +677,7 @@ · 13 unmodified lines | ||
| 677 | 677 | }, |
| 678 | 678 | "packages/hosts/cloudflare": { |
| 679 | 679 | "name": "@executor-js/cloudflare", |
| 680 | − "version": "0.0.42", | |
| 680 | + "version": "0.0.43", | |
| 681 | 681 | "dependencies": { |
| 682 | 682 | "@executor-js/api": "workspace:*", |
| 683 | 683 | "@executor-js/execution": "workspace:*", |
| @@ -718,7 +718,7 @@ · 34 unmodified lines | ||
| 718 | 718 | }, |
| 719 | 719 | "packages/hosts/mcp-apps-shell": { |
| 720 | 720 | "name": "@executor-js/mcp-apps-shell", |
| 721 | − "version": "1.4.11", | |
| 721 | + "version": "1.4.12", | |
| 722 | 722 | "dependencies": { |
| 723 | 723 | "@executor-js/react": "workspace:*", |
| 724 | 724 | "@executor-js/runtime-quickjs": "workspace:*", |
| @@ -756,7 +756,7 @@ · 31 unmodified lines | ||
| 756 | 756 | }, |
| 757 | 757 | "packages/kernel/core": { |
| 758 | 758 | "name": "@executor-js/codemode-core", |
| 759 | − "version": "1.6.0", | |
| 759 | + "version": "1.6.1", | |
| 760 | 760 | "dependencies": { |
| 761 | 761 | "@babel/parser": "^7.29.2", |
| 762 | 762 | "@standard-schema/spec": "^1.0.0", |
| @@ -829,7 +829,7 @@ · 66 unmodified lines | ||
| 829 | 829 | }, |
| 830 | 830 | "packages/kernel/runtime-quickjs": { |
| 831 | 831 | "name": "@executor-js/runtime-quickjs", |
| 832 | − "version": "1.6.0", | |
| 832 | + "version": "1.6.1", | |
| 833 | 833 | "dependencies": { |
| 834 | 834 | "@executor-js/codemode-core": "workspace:*", |
| 835 | 835 | "quickjs-emscripten": "catalog:", |
| @@ -849,7 +849,7 @@ · 13 unmodified lines | ||
| 849 | 849 | }, |
| 850 | 850 | "packages/kernel/runtime-workerd-subprocess": { |
| 851 | 851 | "name": "@executor-js/runtime-workerd-subprocess", |
| 852 | − "version": "0.0.15", | |
| 852 | + "version": "0.0.16", | |
| 853 | 853 | "dependencies": { |
| 854 | 854 | "@executor-js/codemode-core": "workspace:*", |
| 855 | 855 | "effect": "catalog:", |
| @@ -864,7 +864,7 @@ · 8 unmodified lines | ||
| 864 | 864 | }, |
| 865 | 865 | "packages/plugins/desktop-settings": { |
| 866 | 866 | "name": "@executor-js/plugin-desktop-settings", |
| 867 | − "version": "1.6.0", | |
| 867 | + "version": "1.6.1", | |
| 868 | 868 | "dependencies": { |
| 869 | 869 | "@executor-js/sdk": "workspace:*", |
| 870 | 870 | "react": "catalog:", |
| @@ -877,7 +877,7 @@ · 6 unmodified lines | ||
| 877 | 877 | }, |
| 878 | 878 | "packages/plugins/encrypted-secrets": { |
| 879 | 879 | "name": "@executor-js/plugin-encrypted-secrets", |
| 880 | − "version": "0.0.42", | |
| 880 | + "version": "0.0.43", | |
| 881 | 881 | "dependencies": { |
| 882 | 882 | "@executor-js/sdk": "workspace:*", |
| 883 | 883 | "effect": "catalog:", |
| @@ -892,7 +892,7 @@ · 8 unmodified lines | ||
| 892 | 892 | }, |
| 893 | 893 | "packages/plugins/example": { |
| 894 | 894 | "name": "@executor-js/plugin-example", |
| 895 | − "version": "1.6.0", | |
| 895 | + "version": "1.6.1", | |
| 896 | 896 | "dependencies": { |
| 897 | 897 | "@executor-js/sdk": "workspace:*", |
| 898 | 898 | }, |
| @@ -915,7 +915,7 @@ · 16 unmodified lines | ||
| 915 | 915 | }, |
| 916 | 916 | "packages/plugins/file-secrets": { |
| 917 | 917 | "name": "@executor-js/plugin-file-secrets", |
| 918 | − "version": "1.6.0", | |
| 918 | + "version": "1.6.1", | |
| 919 | 919 | "dependencies": { |
| 920 | 920 | "@executor-js/sdk": "workspace:*", |
| 921 | 921 | }, |
| @@ -932,7 +932,7 @@ · 10 unmodified lines | ||
| 932 | 932 | }, |
| 933 | 933 | "packages/plugins/graphql": { |
| 934 | 934 | "name": "@executor-js/plugin-graphql", |
| 935 | − "version": "1.6.0", | |
| 935 | + "version": "1.6.1", | |
| 936 | 936 | "dependencies": { |
| 937 | 937 | "@effect/platform-node": "catalog:", |
| 938 | 938 | "@executor-js/config": "workspace:*", |
| @@ -971,7 +971,7 @@ · 32 unmodified lines | ||
| 971 | 971 | }, |
| 972 | 972 | "packages/plugins/keychain": { |
| 973 | 973 | "name": "@executor-js/plugin-keychain", |
| 974 | − "version": "1.6.0", | |
| 974 | + "version": "1.6.1", | |
| 975 | 975 | "dependencies": { |
| 976 | 976 | "@executor-js/sdk": "workspace:*", |
| 977 | 977 | "@napi-rs/keyring": "^1.2.0", |
| @@ -990,7 +990,7 @@ · 12 unmodified lines | ||
| 990 | 990 | }, |
| 991 | 991 | "packages/plugins/mcp": { |
| 992 | 992 | "name": "@executor-js/plugin-mcp", |
| 993 | − "version": "1.6.0", | |
| 993 | + "version": "1.6.1", | |
| 994 | 994 | "dependencies": { |
| 995 | 995 | "@cfworker/json-schema": "^4.1.1", |
| 996 | 996 | "@effect/platform-node": "catalog:", |
| @@ -1033,7 +1033,7 @@ · 36 unmodified lines | ||
| 1033 | 1033 | }, |
| 1034 | 1034 | "packages/plugins/onepassword": { |
| 1035 | 1035 | "name": "@executor-js/plugin-onepassword", |
| 1036 | − "version": "1.6.0", | |
| 1036 | + "version": "1.6.1", | |
| 1037 | 1037 | "dependencies": { |
| 1038 | 1038 | "@1password/op-js": "^0.1.13", |
| 1039 | 1039 | "@1password/sdk": "^0.4.1-beta.1", |
| @@ -1067,7 +1067,7 @@ · 27 unmodified lines | ||
| 1067 | 1067 | }, |
| 1068 | 1068 | "packages/plugins/openapi": { |
| 1069 | 1069 | "name": "@executor-js/plugin-openapi", |
| 1070 | − "version": "1.6.0", | |
| 1070 | + "version": "1.6.1", | |
| 1071 | 1071 | "dependencies": { |
| 1072 | 1072 | "@effect/platform-node": "catalog:", |
| 1073 | 1073 | "@executor-js/config": "workspace:*", |
| @@ -1108,7 +1108,7 @@ · 34 unmodified lines | ||
| 1108 | 1108 | }, |
| 1109 | 1109 | "packages/plugins/provider-service-split": { |
| 1110 | 1110 | "name": "@executor-js/plugin-provider-service-split", |
| 1111 | − "version": "0.0.14", | |
| 1111 | + "version": "0.0.15", | |
| 1112 | 1112 | "dependencies": { |
| 1113 | 1113 | "@executor-js/plugin-openapi": "workspace:*", |
| 1114 | 1114 | "@executor-js/sdk": "workspace:*", |
| @@ -1125,7 +1125,7 @@ · 10 unmodified lines | ||
| 1125 | 1125 | }, |
| 1126 | 1126 | "packages/plugins/toolkits": { |
| 1127 | 1127 | "name": "@executor-js/plugin-toolkits", |
| 1128 | − "version": "1.5.35", | |
| 1128 | + "version": "1.5.36", | |
| 1129 | 1129 | "dependencies": { |
| 1130 | 1130 | "@executor-js/sdk": "workspace:*", |
| 1131 | 1131 | }, |
| @@ -1194,7 +1194,7 @@ · 62 unmodified lines | ||
| 1194 | 1194 | }, |
| 1195 | 1195 | "packages/react": { |
| 1196 | 1196 | "name": "@executor-js/react", |
| 1197 | − "version": "1.4.63", | |
| 1197 | + "version": "1.4.64", | |
| 1198 | 1198 | "dependencies": { |
| 1199 | 1199 | "@base-ui/react": "^1.3.0", |
| 1200 | 1200 | "@effect/atom-react": "catalog:", |
| @@ -1,5 +1,17 @@ | ||
| 1 | 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 | 15 | ## 0.0.40 |
| 4 | 16 | |
| 5 | 17 | ### Patch Changes |
| @@ -1,6 +1,6 @@ | ||
| 1 | 1 | { |
| 2 | 2 | "name": "@executor-js/e2e", |
| 3 | − "version": "0.0.40", | |
| 3 | + "version": "0.0.41", | |
| 4 | 4 | "private": true, |
| 5 | 5 | "type": "module", |
| 6 | 6 | "scripts": { |
| @@ -1,5 +1,19 @@ | ||
| 1 | 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 | 17 | ## 0.0.61 |
| 4 | 18 | |
| 5 | 19 | ### Patch Changes |
| @@ -1,6 +1,6 @@ | ||
| 1 | 1 | { |
| 2 | 2 | "name": "@executor-js/example-all-plugins", |
| 3 | − "version": "0.0.61", | |
| 3 | + "version": "0.0.62", | |
| 4 | 4 | "private": true, |
| 5 | 5 | "type": "module", |
| 6 | 6 | "scripts": { |
| @@ -1,5 +1,13 @@ | ||
| 1 | 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 | 11 | ## 0.0.46 |
| 4 | 12 | |
| 5 | 13 | ### Patch Changes |
| @@ -1,6 +1,6 @@ | ||
| 1 | 1 | { |
| 2 | 2 | "name": "@executor-js/example-docs-sdk-quickstart", |
| 3 | − "version": "0.0.46", | |
| 3 | + "version": "0.0.47", | |
| 4 | 4 | "private": true, |
| 5 | 5 | "type": "module", |
| 6 | 6 | "scripts": { |
| @@ -1,5 +1,12 @@ | ||
| 1 | 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 | 10 | ## 0.1.7 |
| 4 | 11 | |
| 5 | 12 | ### Patch Changes |
| @@ -1,6 +1,6 @@ | ||
| 1 | 1 | { |
| 2 | 2 | "name": "@executor-js/analytics", |
| 3 | − "version": "0.1.7", | |
| 3 | + "version": "0.1.8", | |
| 4 | 4 | "private": true, |
| 5 | 5 | "homepage": "https://github.com/UsefulSoftwareCo/executor/tree/main/packages/core/analytics", |
| 6 | 6 | "bugs": { |
| @@ -1,5 +1,18 @@ | ||
| 1 | 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 | 16 | ## 1.4.63 |
| 4 | 17 | |
| 5 | 18 | ### Patch Changes |
| @@ -1,6 +1,6 @@ | ||
| 1 | 1 | { |
| 2 | 2 | "name": "@executor-js/api", |
| 3 | − "version": "1.4.63", | |
| 3 | + "version": "1.4.64", | |
| 4 | 4 | "private": true, |
| 5 | 5 | "type": "module", |
| 6 | 6 | "exports": { |
| @@ -1,5 +1,12 @@ | ||
| 1 | 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 | 10 | ## 0.2.50 |
| 4 | 11 | |
| 5 | 12 | ### Patch Changes |
| @@ -1,6 +1,6 @@ | ||
| 1 | 1 | { |
| 2 | 2 | "name": "@executor-js/cli", |
| 3 | − "version": "0.2.50", | |
| 3 | + "version": "0.2.51", | |
| 4 | 4 | "description": "CLI for the executor SDK — schema generation, migrations", |
| 5 | 5 | "homepage": "https://github.com/UsefulSoftwareCo/executor/tree/main/packages/core/cli", |
| 6 | 6 | "bugs": { |
| @@ -1,5 +1,12 @@ | ||
| 1 | 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 | 10 | ## 1.6.0 |
| 4 | 11 | |
| 5 | 12 | ### Patch Changes |
| @@ -1,6 +1,6 @@ | ||
| 1 | 1 | { |
| 2 | 2 | "name": "@executor-js/config", |
| 3 | − "version": "1.6.0", | |
| 3 | + "version": "1.6.1", | |
| 4 | 4 | "homepage": "https://github.com/UsefulSoftwareCo/executor/tree/main/packages/core/config", |
| 5 | 5 | "bugs": { |
| 6 | 6 | "url": "https://github.com/UsefulSoftwareCo/executor/issues" |
| @@ -1,5 +1,19 @@ | ||
| 1 | 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 | 17 | ## 1.6.0 |
| 4 | 18 | |
| 5 | 19 | ### Patch Changes |
| @@ -1,6 +1,6 @@ | ||
| 1 | 1 | { |
| 2 | 2 | "name": "@executor-js/execution", |
| 3 | − "version": "1.6.0", | |
| 3 | + "version": "1.6.1", | |
| 4 | 4 | "homepage": "https://github.com/UsefulSoftwareCo/executor/tree/main/packages/core/execution", |
| 5 | 5 | "bugs": { |
| 6 | 6 | "url": "https://github.com/UsefulSoftwareCo/executor/issues" |
| @@ -1,5 +1,13 @@ | ||
| 1 | 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 | 11 | ## 1.6.0 |
| 4 | 12 | |
| 5 | 13 | ### Patch Changes |
| @@ -1,6 +1,6 @@ | ||
| 1 | 1 | { |
| 2 | 2 | "name": "@executor-js/sdk", |
| 3 | − "version": "1.6.0", | |
| 3 | + "version": "1.6.1", | |
| 4 | 4 | "homepage": "https://github.com/UsefulSoftwareCo/executor/tree/main/packages/core/sdk", |
| 5 | 5 | "bugs": { |
| 6 | 6 | "url": "https://github.com/UsefulSoftwareCo/executor/issues" |
| @@ -1,5 +1,12 @@ | ||
| 1 | 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 | 10 | ## 0.0.60 |
| 4 | 11 | |
| 5 | 12 | ### Patch Changes |
| @@ -1,6 +1,6 @@ | ||
| 1 | 1 | { |
| 2 | 2 | "name": "@executor-js/vite-plugin", |
| 3 | − "version": "0.0.60", | |
| 3 | + "version": "0.0.61", | |
| 4 | 4 | "homepage": "https://github.com/UsefulSoftwareCo/executor/tree/main/packages/core/vite-plugin", |
| 5 | 5 | "bugs": { |
| 6 | 6 | "url": "https://github.com/UsefulSoftwareCo/executor/issues" |
| @@ -1,5 +1,15 @@ | ||
| 1 | 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 | 13 | ## 0.0.42 |
| 4 | 14 | |
| 5 | 15 | ### Patch Changes |
| @@ -1,6 +1,6 @@ | ||
| 1 | 1 | { |
| 2 | 2 | "name": "@executor-js/cloudflare", |
| 3 | − "version": "0.0.42", | |
| 3 | + "version": "0.0.43", | |
| 4 | 4 | "private": true, |
| 5 | 5 | "type": "module", |
| 6 | 6 | "exports": { |
| @@ -1,5 +1,13 @@ | ||
| 1 | 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 | 11 | ## 1.4.11 |
| 4 | 12 | |
| 5 | 13 | ### Patch Changes |
| @@ -1,6 +1,6 @@ | ||
| 1 | 1 | { |
| 2 | 2 | "name": "@executor-js/mcp-apps-shell", |
| 3 | − "version": "1.4.11", | |
| 3 | + "version": "1.4.12", | |
| 4 | 4 | "private": true, |
| 5 | 5 | "type": "module", |
| 6 | 6 | "exports": { |
| @@ -1,5 +1,7 @@ | ||
| 1 | 1 | # @executor-js/codemode-core |
| 2 | 2 | |
| 3 | +## 1.6.1 | |
| 4 | + | |
| 3 | 5 | ## 1.6.0 |
| 4 | 6 | |
| 5 | 7 | ## 1.5.42 |
| @@ -1,6 +1,6 @@ | ||
| 1 | 1 | { |
| 2 | 2 | "name": "@executor-js/codemode-core", |
| 3 | − "version": "1.6.0", | |
| 3 | + "version": "1.6.1", | |
| 4 | 4 | "homepage": "https://github.com/UsefulSoftwareCo/executor/tree/main/packages/kernel/core", |
| 5 | 5 | "bugs": { |
| 6 | 6 | "url": "https://github.com/UsefulSoftwareCo/executor/issues" |
| @@ -1,5 +1,12 @@ | ||
| 1 | 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 | 10 | ## 1.6.0 |
| 4 | 11 | |
| 5 | 12 | ### Patch Changes |
| @@ -1,6 +1,6 @@ | ||
| 1 | 1 | { |
| 2 | 2 | "name": "@executor-js/runtime-quickjs", |
| 3 | − "version": "1.6.0", | |
| 3 | + "version": "1.6.1", | |
| 4 | 4 | "homepage": "https://github.com/UsefulSoftwareCo/executor/tree/main/packages/kernel/runtime-quickjs", |
| 5 | 5 | "bugs": { |
| 6 | 6 | "url": "https://github.com/UsefulSoftwareCo/executor/issues" |
| @@ -1,5 +1,12 @@ | ||
| 1 | 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 | 10 | ## 0.0.15 |
| 4 | 11 | |
| 5 | 12 | ### Patch Changes |
| @@ -1,6 +1,6 @@ | ||
| 1 | 1 | { |
| 2 | 2 | "name": "@executor-js/runtime-workerd-subprocess", |
| 3 | − "version": "0.0.15", | |
| 3 | + "version": "0.0.16", | |
| 4 | 4 | "private": true, |
| 5 | 5 | "type": "module", |
| 6 | 6 | "exports": { |
| @@ -1,5 +1,12 @@ | ||
| 1 | 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 | 10 | ## 1.6.0 |
| 4 | 11 | |
| 5 | 12 | ### Patch Changes |
| @@ -1,6 +1,6 @@ | ||
| 1 | 1 | { |
| 2 | 2 | "name": "@executor-js/plugin-desktop-settings", |
| 3 | − "version": "1.6.0", | |
| 3 | + "version": "1.6.1", | |
| 4 | 4 | "homepage": "https://github.com/UsefulSoftwareCo/executor/tree/main/packages/plugins/desktop-settings", |
| 5 | 5 | "bugs": { |
| 6 | 6 | "url": "https://github.com/UsefulSoftwareCo/executor/issues" |
| @@ -1,5 +1,12 @@ | ||
| 1 | 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 | 10 | ## 0.0.42 |
| 4 | 11 | |
| 5 | 12 | ### Patch Changes |
| @@ -1,6 +1,6 @@ | ||
| 1 | 1 | { |
| 2 | 2 | "name": "@executor-js/plugin-encrypted-secrets", |
| 3 | − "version": "0.0.42", | |
| 3 | + "version": "0.0.43", | |
| 4 | 4 | "private": true, |
| 5 | 5 | "type": "module", |
| 6 | 6 | "exports": { |
| @@ -1,5 +1,12 @@ | ||
| 1 | 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 | 10 | ## 1.6.0 |
| 4 | 11 | |
| 5 | 12 | ### Patch Changes |
| @@ -1,6 +1,6 @@ | ||
| 1 | 1 | { |
| 2 | 2 | "name": "@executor-js/plugin-example", |
| 3 | − "version": "1.6.0", | |
| 3 | + "version": "1.6.1", | |
| 4 | 4 | "homepage": "https://github.com/UsefulSoftwareCo/executor/tree/main/packages/plugins/example", |
| 5 | 5 | "bugs": { |
| 6 | 6 | "url": "https://github.com/UsefulSoftwareCo/executor/issues" |
| @@ -1,5 +1,12 @@ | ||
| 1 | 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 | 10 | ## 1.6.0 |
| 4 | 11 | |
| 5 | 12 | ### Patch Changes |
| @@ -1,6 +1,6 @@ | ||
| 1 | 1 | { |
| 2 | 2 | "name": "@executor-js/plugin-file-secrets", |
| 3 | − "version": "1.6.0", | |
| 3 | + "version": "1.6.1", | |
| 4 | 4 | "homepage": "https://github.com/UsefulSoftwareCo/executor/tree/main/packages/plugins/file-secrets", |
| 5 | 5 | "bugs": { |
| 6 | 6 | "url": "https://github.com/UsefulSoftwareCo/executor/issues" |
| @@ -1,5 +1,15 @@ | ||
| 1 | 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 | 13 | ## 1.6.0 |
| 4 | 14 | |
| 5 | 15 | ### Patch Changes |
| @@ -1,6 +1,6 @@ | ||
| 1 | 1 | { |
| 2 | 2 | "name": "@executor-js/plugin-graphql", |
| 3 | − "version": "1.6.0", | |
| 3 | + "version": "1.6.1", | |
| 4 | 4 | "homepage": "https://github.com/UsefulSoftwareCo/executor/tree/main/packages/plugins/graphql", |
| 5 | 5 | "bugs": { |
| 6 | 6 | "url": "https://github.com/UsefulSoftwareCo/executor/issues" |
| @@ -1,5 +1,12 @@ | ||
| 1 | 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 | 10 | ## 1.6.0 |
| 4 | 11 | |
| 5 | 12 | ### Patch Changes |
| @@ -1,6 +1,6 @@ | ||
| 1 | 1 | { |
| 2 | 2 | "name": "@executor-js/plugin-keychain", |
| 3 | − "version": "1.6.0", | |
| 3 | + "version": "1.6.1", | |
| 4 | 4 | "homepage": "https://github.com/UsefulSoftwareCo/executor/tree/main/packages/plugins/keychain", |
| 5 | 5 | "bugs": { |
| 6 | 6 | "url": "https://github.com/UsefulSoftwareCo/executor/issues" |
| @@ -1,5 +1,21 @@ | ||
| 1 | 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 | 19 | ## 1.6.0 |
| 4 | 20 | |
| 5 | 21 | ### Minor Changes |
| @@ -1,6 +1,6 @@ | ||
| 1 | 1 | { |
| 2 | 2 | "name": "@executor-js/plugin-mcp", |
| 3 | − "version": "1.6.0", | |
| 3 | + "version": "1.6.1", | |
| 4 | 4 | "homepage": "https://github.com/UsefulSoftwareCo/executor/tree/main/packages/plugins/mcp", |
| 5 | 5 | "bugs": { |
| 6 | 6 | "url": "https://github.com/UsefulSoftwareCo/executor/issues" |
| @@ -1,5 +1,14 @@ | ||
| 1 | 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 | 12 | ## 1.6.0 |
| 4 | 13 | |
| 5 | 14 | ### Patch Changes |
| @@ -1,6 +1,6 @@ | ||
| 1 | 1 | { |
| 2 | 2 | "name": "@executor-js/plugin-onepassword", |
| 3 | − "version": "1.6.0", | |
| 3 | + "version": "1.6.1", | |
| 4 | 4 | "homepage": "https://github.com/UsefulSoftwareCo/executor/tree/main/packages/plugins/onepassword", |
| 5 | 5 | "bugs": { |
| 6 | 6 | "url": "https://github.com/UsefulSoftwareCo/executor/issues" |
| @@ -1,5 +1,21 @@ | ||
| 1 | 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 | 19 | ## 1.6.0 |
| 4 | 20 | |
| 5 | 21 | ### Patch Changes |
| @@ -1,6 +1,6 @@ | ||
| 1 | 1 | { |
| 2 | 2 | "name": "@executor-js/plugin-openapi", |
| 3 | − "version": "1.6.0", | |
| 3 | + "version": "1.6.1", | |
| 4 | 4 | "homepage": "https://github.com/UsefulSoftwareCo/executor/tree/main/packages/plugins/openapi", |
| 5 | 5 | "bugs": { |
| 6 | 6 | "url": "https://github.com/UsefulSoftwareCo/executor/issues" |
| @@ -1,5 +1,13 @@ | ||
| 1 | 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 | 11 | ## 0.0.14 |
| 4 | 12 | |
| 5 | 13 | ### Patch Changes |
| @@ -1,6 +1,6 @@ | ||
| 1 | 1 | { |
| 2 | 2 | "name": "@executor-js/plugin-provider-service-split", |
| 3 | − "version": "0.0.14", | |
| 3 | + "version": "0.0.15", | |
| 4 | 4 | "private": true, |
| 5 | 5 | "type": "module", |
| 6 | 6 | "exports": { |
| @@ -1,5 +1,14 @@ | ||
| 1 | 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 | 12 | ## 1.5.35 |
| 4 | 13 | |
| 5 | 14 | ### Patch Changes |
| @@ -1,6 +1,6 @@ | ||
| 1 | 1 | { |
| 2 | 2 | "name": "@executor-js/plugin-toolkits", |
| 3 | − "version": "1.5.35", | |
| 3 | + "version": "1.5.36", | |
| 4 | 4 | "homepage": "https://github.com/UsefulSoftwareCo/executor/tree/main/packages/plugins/toolkits", |
| 5 | 5 | "bugs": { |
| 6 | 6 | "url": "https://github.com/UsefulSoftwareCo/executor/issues" |
| @@ -1,5 +1,19 @@ | ||
| 1 | 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 | 17 | ## 1.4.63 |
| 4 | 18 | |
| 5 | 19 | ### Patch Changes |
| @@ -1,6 +1,6 @@ | ||
| 1 | 1 | { |
| 2 | 2 | "name": "@executor-js/react", |
| 3 | − "version": "1.4.63", | |
| 3 | + "version": "1.4.64", | |
| 4 | 4 | "private": true, |
| 5 | 5 | "type": "module", |
| 6 | 6 | "exports": { |