Skip to content

Latest commit

 

History

History
148 lines (109 loc) · 13.1 KB

File metadata and controls

148 lines (109 loc) · 13.1 KB

executor

1.5.8

Patch Changes

  • #983 bcfdeb2 Thanks @RhysSullivan! - Hardened the local v1→v2 database upgrade

    Upgrading a local database created by an older (v1) release is now resilient to interrupted or partially-written upgrade state:

    • The one-time upgrade is recorded in the migration ledger, so it is never re-attempted on later boots. Databases that have already upgraded are detected from the ledger and skip the upgrade path entirely.
    • Replaying the legacy schema now tolerates a missing or truncated migration journal instead of failing to start, so a database left in a half-written state from a previous crash boots cleanly.
  • Updated dependencies []:

    • @executor-js/sdk@1.5.8
    • @executor-js/runtime-quickjs@1.5.8
    • @executor-js/local@1.4.4
    • @executor-js/api@1.4.28

1.5.7

Patch Changes

  • #964 7cee242 Thanks @RhysSullivan! - Desktop crash reporting and diagnostics

    • The desktop app now reports crashes from all of its processes (window, main, and the local server sidecar), so launch failures and silent exits become fixable bugs instead of mysteries. Reporting is disabled in local/dev builds and honors DO_NOT_TRACK=1 as an opt-out.
    • If the local server crashes, the app shows a crash screen with restart and update actions instead of closing silently, and the server's output is persisted to the log file.
    • New Export Diagnostics (menu and Settings) zips logs, crash dumps, and a redacted system manifest to Downloads — never secrets or executor data — and Report a Problem… prefills a GitHub issue with the diagnostics attached.
  • #964 7cee242 Thanks @RhysSullivan! - Faster integrations with large API specs

    Resolved OpenAPI spec text and GraphQL introspection snapshots are now stored content-addressed in the plugin blob store instead of inline in each integration's stored config. Listing integrations no longer loads multi-megabyte spec blobs it immediately discards, which makes the integrations surface dramatically faster for workspaces with large specs. Existing integrations keep working: rows that still inline a spec resolve unchanged and are rewritten in place the next time they are imported or refreshed.

  • Updated dependencies [7cee242, 7cee242]:

    • @executor-js/sdk@1.5.7
    • @executor-js/local@1.4.4
    • @executor-js/api@1.4.27
    • @executor-js/runtime-quickjs@1.5.7

1.5.4

Patch Changes

  • #943 f485e4a Thanks @RhysSullivan! - One auth model across OpenAPI, GraphQL, and MCP

    • Every protocol plugin now stores the same placements-based auth methods (the new @executor-js/sdk/http-auth vocabulary): an API-key method carries any mix of header and query placements, each rendered from its own credential input — so one source can declare OAuth, a bearer-header-plus-team-id-query method, a plain bearer, and a query token side by side, and one connection can carry several values (e.g. both Datadog keys).
    • MCP and GraphQL gain what only OpenAPI could do before: multi-placement methods, query-parameter credentials (servers like ui.sh's ?token=), and multi-input connections. Rendering, catalog projection, slug normalization, and the React method editor/codec are shared instead of triplicated; the connect modal collects one value per input.
    • Invoking with an unresolvable credential input now fails with connection_value_missing (naming the missing inputs) instead of silently dialing unauthenticated.
    • Stored integration configs are rewritten to the canonical shape by a one-off migration: local and self-host run it automatically at startup; cloud operators run bun run db:migrate-auth:prod before deploying. Connection bindings and stored credential values are preserved exactly.
    • Authoring: apikey methods are authored in ONE request-shaped dialect on every plugin — it reads like the request it produces: { type: "apiKey", headers: { Authorization: ["Bearer ", variable("token")] }, queryParams: { team_id: [variable("team_id")] } } (variable() is exported from each plugin; a plain-string value is a static literal). Inputs normalize to the canonical placements model, which is what stored configs and the catalog read as. Authoring is strict where the renderer is: a value carries at most one variable, as the final part.
    • Every method is keyed by kind — OpenAPI's oauth templates re-key from the retired type: "oauth" spelling to kind: "oauth2" (matching MCP/GraphQL); the one-off migration rewrites stored entries.
    • Breaking (wire): the retired single-placement inputs (headerName on MCP, in/name on GraphQL), raw canonical-placement inputs, and type: "oauth" oauth inputs are rejected. The mcp.addServer singular auth shorthand still works.
  • #950 dbb48ec Thanks @RhysSullivan! - Fix credential sharing for workspace connections

    Org-shared connections now resolve for every member of a workspace, not only the member who created them. Existing connections are migrated automatically; stored secrets are unaffected.

  • Updated dependencies []:

    • @executor-js/local@1.4.4
    • @executor-js/sdk@1.5.4
    • @executor-js/runtime-quickjs@1.5.4
    • @executor-js/api@1.4.26

1.5.3

Patch Changes

  • #939 db09372 Thanks @RhysSullivan! - Desktop packaging follow-ups from the v1.5.2 release run:

    • Fixed the Intel mac desktop build failing in CI (the cross-target dependency install was being glob-expanded by the shell).
    • Fixed the first-launch data migration on Windows: renaming the previous database file could hit a transient EBUSY while the just-closed SQLite handle was released, so the move now retries briefly instead of failing startup.
  • Updated dependencies []:

    • @executor-js/sdk@1.5.3
    • @executor-js/runtime-quickjs@1.5.3
    • @executor-js/local@1.4.4
    • @executor-js/api@1.4.25

1.5.2

Patch Changes

  • #936 2db9d65 Thanks @RhysSullivan! - Desktop

    • Fixed the desktop app failing to launch: the packaged sidecar was missing its native SQLite and keychain bindings, so the local server exited before the window appeared. The release pipeline now smoke-tests the compiled sidecar before publishing.
    • Mac auto-updates now serve the correct architecture — the arm64 and x64 update manifests previously collided, so Apple Silicon machines could be offered Intel builds.
    • If the local server fails to start, the app now shows the error (with a pointer to the log) and installs any available update on quit, instead of closing silently.

    Integrations & auth

    • Integrations can declare multiple authentication methods in every plugin. MCP servers join the slugged template model used by OpenAPI and GraphQL, so a server can offer OAuth and an API key side by side, and adding a custom method appends instead of replacing a detected one. Existing connections keep working with no migration.
    • OAuth app management is folded into the connect modal, so client setup happens where accounts are added.
  • Updated dependencies []:

    • @executor-js/sdk@1.5.2
    • @executor-js/runtime-quickjs@1.5.2
    • @executor-js/local@1.4.4
    • @executor-js/api@1.4.24

1.5.1

Patch Changes

  • #927 df40cd3 Thanks @RhysSullivan! - Fix executor web crashing with no such table: plugin_storage when upgrading from an older v1 release. The v1 → v2 data migration now replays the bundled legacy schema migrations first, so databases last touched by any pre-1.5 version are brought up to the final v1 schema before their data is migrated.

  • Updated dependencies []:

    • @executor-js/sdk@1.5.1
    • @executor-js/runtime-quickjs@1.5.1
    • @executor-js/local@1.4.4
    • @executor-js/api@1.4.23

1.5.0

Minor Changes

  • c7bb2a4 Thanks @RhysSullivan! - Integrations and connections rework.

    Highlights

    • Sources are now split into integrations (the API surface) and connections (the credential). One integration can hold many connections — workspace-shared or personal — and each connection gets its own tool catalog.
    • Tool addresses carry the connection, so agents can target a specific account: tools.vercel_api.org.workspace.deploy vs tools.vercel_api.user.personal.deploy.
    • Existing data migrates automatically on first launch: sources become integrations, secrets and credential bindings become connections, OAuth apps and tool policies carry over, and the previous database is kept as a backup next to the new one.
    • Public no-auth servers (MCP, GraphQL) connect without entering a credential.
    • Connections display the signed-in identity, so you can tell accounts apart at a glance.
    • The CLI, local web app, and desktop app can connect to a shared Executor server instead of each running their own; the desktop app persists server profiles across restarts.
    • Self-hosted Executor now publishes a multi-architecture GHCR image at ghcr.io/rhyssullivan/executor-selfhost (stable releases tagged latest, prereleases tagged beta).

    Reliability

    • OpenAPI, GraphQL, and MCP tools return structured authentication failures with recovery guidance instead of opaque internal errors — covering missing credentials, expired OAuth connections, upstream 401/403 responses, and MCP per-user isolation.
    • OAuth popups complete more reliably in Chrome by preserving the callback channel through the same-origin completion page.
    • OAuth Dynamic Client Registration data is reused across retries and reconnects, including scopes, so providers are not asked to register duplicate clients.
    • Creating a connection with invalid input (no credential for a credentialed method, mixed input origins) returns a clear error with the reason instead of an opaque internal error.
    • The v1 → v2 migration creates connections for no-auth sources, derives OAuth authorize endpoints when v1 only stored a bare issuer origin, keys inline header values per source, and skips malformed credential bindings with a warning instead of silently dropping them. An unreachable OAuth metadata endpoint no longer blocks the migration on launch.
    • Google sources use a bundled OpenAPI flow with valid schemas.
    • MCP tool output schemas match the actual invocation result envelope, including content, structuredContent, _meta, and isError.
    • Integration icons survive migration, connected presets show their icons, and credentials show a loading badge while resolving.

    Breaking changes

    • Tool addresses gained two segments for the connection's owner and name: tools.vercel_api.deploy is now tools.vercel_api.org.workspace.deploy. Saved tool policies are rewritten automatically during migration; agent code that hard-codes v1.4 addresses needs the new shape (tools.search() returns ready-to-call paths).
    • The Google Discovery plugin was removed. Google integrations now go through the bundled Google flow; existing Google sources migrate automatically.

Patch Changes

  • #922 1ba0193 Thanks @RhysSullivan! - Move effect from dependencies to peerDependencies in the published library packages so consumers provide a single shared Effect instance.

  • Updated dependencies [7d7fbbd, 1ba0193]:

    • @executor-js/sdk@1.5.0
    • @executor-js/runtime-quickjs@1.5.0
    • @executor-js/local@1.4.4
    • @executor-js/api@1.4.22