Skip to content

Commit d169ee2

Browse files
authored
Merge branch 'main' into fix/bound-credential-provider-call
2 parents f9c7999 + 3927eba commit d169ee2

460 files changed

Lines changed: 28887 additions & 2280 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.changeset/admin-users-batched-connection-read.md

Lines changed: 0 additions & 20 deletions
This file was deleted.
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
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.

.changeset/graph-spec-slices.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
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.
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
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.

.changeset/local-native-elicitation-streaming.md

Lines changed: 0 additions & 7 deletions
This file was deleted.
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
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.
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
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.

.changeset/slim-search-tools.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
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`.
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
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.

.claude/skills/prod-telemetry/SKILL.md

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,20 @@ join the same traces via traceparent).
2929

3030
**Span names worth querying** (and their custom attrs):
3131

32+
- `mcp.execute` / `mcp.execute.resume``mcp.execute.mode`
33+
(`pausable`/`inline`), `mcp.execute.code_length`, and
34+
`mcp.execute.outcome` (`ok`/`fail`/`paused`) with, on failures,
35+
`mcp.execute.error_kind` (`type_error` | `reference_error` |
36+
`syntax_error` | `range_error` | `tool_error` | `timeout` |
37+
`resource_limit` | `serialization_error` | `thrown` | `unknown`).
38+
Sandbox script failures ride the MCP success channel, so `status.code`
39+
stays OK — filter on these attributes, not span status. Spans from
40+
before the attributes shipped carry neither; absence is not success.
41+
Also `mcp.execute.result_chars` (compact-JSON size of the returned
42+
value, pre-truncation; -1 = unmeasurable), `mcp.execute.log_chars`,
43+
`mcp.execute.emitted` — the dump-vs-narrow signal (the model preview
44+
truncates at 30k chars, so `result_chars > 30000` means the model tried
45+
to pull a truncated blob into context).
3246
- `executor.tool.execute``mcp.tool.name` (full address), and since
3347
PR #992: `executor.tool.outcome` (`ok`/`fail`),
3448
`executor.tool.error_code`, `executor.tool.error_status`,
@@ -39,7 +53,10 @@ join the same traces via traceparent).
3953
`base_url`, and since PR #992 `http.status_code`.
4054
- `mcp.request` (outer) — `mcp.auth.organization_id`,
4155
`mcp.auth.account_id`, `mcp.tool.name`, CF edge fields (`cf.country`…),
42-
MCP client fingerprint (`mcp.client.name`…).
56+
MCP client fingerprint (`mcp.client.name`…), and on managed-cloud
57+
`execute`/`execute-action` calls `mcp.execute.code` (the script itself,
58+
capped at 10k chars — cloud-only content capture; local/self-host
59+
telemetry never records content).
4360

4461
**Recipe — error signatures by class (the daily-digest query):**
4562

0 commit comments

Comments
 (0)