Version Packages - #1906
Merged
Merged
Conversation
Deploying with
|
| Status | Name | Latest Commit | Preview URL | Updated (UTC) |
|---|---|---|---|---|
| ✅ Deployment successful! View logs |
executor-marketing | c0faddd | Commit Preview URL Branch Preview URL |
Sep 05 2026, 08:40 AM |
Deploying with
|
| Status | Name | Latest Commit | Updated (UTC) |
|---|---|---|---|
| ✅ Deployment successful! View logs |
executor-cloud | c0faddd | Sep 05 2026, 08:41 AM |
Contributor
Cloudflare previewTorn down — the PR is closed. |
@executor-js/cli
@executor-js/config
@executor-js/execution
@executor-js/sdk
@executor-js/codemode-core
@executor-js/runtime-quickjs
@executor-js/plugin-file-secrets
@executor-js/plugin-graphql
@executor-js/plugin-keychain
@executor-js/plugin-mcp
@executor-js/plugin-onepassword
@executor-js/plugin-openapi
executor
commit: |
RhysSullivan
force-pushed
the
changeset-release/main
branch
12 times, most recently
from
September 5, 2026 08:11
288f234 to
1f97640
Compare
RhysSullivan
force-pushed
the
changeset-release/main
branch
from
September 5, 2026 08:38
1f97640 to
c0faddd
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR was opened by the Changesets release GitHub action. When you're ready to do a release, you can merge this and publish to npm yourself or setup this action to publish automatically. If you're not ready to do a release yet, that's fine, whenever you add more changesets to main, this PR will be updated.
Releases
@executor-js/cli@0.2.58
Patch Changes
31a8042,b5271a6,caa0391]:@executor-js/config@1.6.8
Patch Changes
31a8042,b5271a6,caa0391]:@executor-js/execution@1.6.8
Patch Changes
31a8042,b5271a6,caa0391]:@executor-js/sdk@1.6.8
Patch Changes
#1947
31a8042Thanks @RhysSullivan! - Allow hosts to control first-party OAuth app listings for each acting user without disrupting existing connections.#1907
b5271a6Thanks @RhysSullivan! - Add a raw HTTP Basic compatibility mode for OAuth providers that reject form-encoded client credentials.#1919
caa0391Thanks @RhysSullivan! - Workspace writes now require an administratorExecutor bindings accept
orgWrites: "allowed" | "denied" | "request".Request-aware hosts use
"request"and bindCurrentOrgWriteAccessfrom theauthenticated principal for each request. An approval, decline, cancellation,
or form response also rebinds the paused execution to the resumer's current
access. Browser approvals derive access from the authenticated browser user's
live organization membership when that user posts the decision, rather than
from the earlier MCP request waiting for it or the user's global role. Self-host
uses the same Better Auth membership lookup for ordinary requests and browser
decisions. A demotion before either kind of resume therefore takes effect
before the paused execution can reach a workspace-write sink.
Principalnow declares its role model explicitly: organization-backed hostscarry
orgRoleModel: "organization"and an optional normalized admin/memberrole, while hosts without roles carry
orgRoleModel: "none"and cannot alsocarry an organization role. Missing role data under the organization model
fails closed, including legacy persisted MCP session metadata. Cloud derives
roles from WorkOS memberships and self-host derives them from Better Auth.
Members may still read and execute shared workspace resources and perform
operational maintenance such as token refresh and tool-catalog synchronization.
User-requested workspace mutations now return
OrgWriteDeniedError(HTTP 403):workspace connections and reconnects, organization OAuth clients and connect
flows, tool policies, and integration add/update/replace/remove/health-check
operations. Personal connection management remains available.
Pasted connection credentials, OAuth client secrets, OAuth connection tokens,
and dependent tool discovery run only after the outermost transaction commits
their row, including when a plugin wraps creation in
ctx.transaction. Eachcommitted row records unique provider item references owned by that write
attempt. Reads resolve only those recorded references, so the post-commit
window fails closed with a retryable incomplete-write error and can never
resolve a predecessor's credential. A process crash leaves detectable missing
references; a later executor incarnation can atomically replace and retry a
stranded pasted connection, while OAuth client and connection retries replace
their rows through their existing update paths.
If credential persistence fails while the process remains alive, row and
provider compensation restore the prior state where possible and surface
incomplete cleanup explicitly. Best-effort cleanup can leave inert orphaned
attempt items, but an attempt never shares an item reference with a successor,
eliminating the former successor-clobber interval without requiring provider
compare-and-set support.
@executor-js/vite-plugin@0.0.68
Patch Changes
31a8042,b5271a6,caa0391]:@executor-js/runtime-quickjs@1.6.8
Patch Changes
@executor-js/plugin-desktop-settings@1.6.8
Patch Changes
31a8042,b5271a6,caa0391]:@executor-js/plugin-example@1.6.8
Patch Changes
31a8042,b5271a6,caa0391]:@executor-js/plugin-file-secrets@1.6.8
Patch Changes
31a8042,b5271a6,caa0391]:@executor-js/plugin-graphql@1.6.8
Patch Changes
#1919
caa0391Thanks @RhysSullivan! - Workspace writes now require an administratorExecutor bindings accept
orgWrites: "allowed" | "denied" | "request".Request-aware hosts use
"request"and bindCurrentOrgWriteAccessfrom theauthenticated principal for each request. An approval, decline, cancellation,
or form response also rebinds the paused execution to the resumer's current
access. Browser approvals derive access from the authenticated browser user's
live organization membership when that user posts the decision, rather than
from the earlier MCP request waiting for it or the user's global role. Self-host
uses the same Better Auth membership lookup for ordinary requests and browser
decisions. A demotion before either kind of resume therefore takes effect
before the paused execution can reach a workspace-write sink.
Principalnow declares its role model explicitly: organization-backed hostscarry
orgRoleModel: "organization"and an optional normalized admin/memberrole, while hosts without roles carry
orgRoleModel: "none"and cannot alsocarry an organization role. Missing role data under the organization model
fails closed, including legacy persisted MCP session metadata. Cloud derives
roles from WorkOS memberships and self-host derives them from Better Auth.
Members may still read and execute shared workspace resources and perform
operational maintenance such as token refresh and tool-catalog synchronization.
User-requested workspace mutations now return
OrgWriteDeniedError(HTTP 403):workspace connections and reconnects, organization OAuth clients and connect
flows, tool policies, and integration add/update/replace/remove/health-check
operations. Personal connection management remains available.
Pasted connection credentials, OAuth client secrets, OAuth connection tokens,
and dependent tool discovery run only after the outermost transaction commits
their row, including when a plugin wraps creation in
ctx.transaction. Eachcommitted row records unique provider item references owned by that write
attempt. Reads resolve only those recorded references, so the post-commit
window fails closed with a retryable incomplete-write error and can never
resolve a predecessor's credential. A process crash leaves detectable missing
references; a later executor incarnation can atomically replace and retry a
stranded pasted connection, while OAuth client and connection retries replace
their rows through their existing update paths.
If credential persistence fails while the process remains alive, row and
provider compensation restore the prior state where possible and surface
incomplete cleanup explicitly. Best-effort cleanup can leave inert orphaned
attempt items, but an attempt never shares an item reference with a successor,
eliminating the former successor-clobber interval without requiring provider
compare-and-set support.
Updated dependencies [
31a8042,b5271a6,caa0391]:@executor-js/plugin-keychain@1.6.8
Patch Changes
31a8042,b5271a6,caa0391]:@executor-js/plugin-mcp@1.6.8
Patch Changes
#1919
caa0391Thanks @RhysSullivan! - Workspace writes now require an administratorExecutor bindings accept
orgWrites: "allowed" | "denied" | "request".Request-aware hosts use
"request"and bindCurrentOrgWriteAccessfrom theauthenticated principal for each request. An approval, decline, cancellation,
or form response also rebinds the paused execution to the resumer's current
access. Browser approvals derive access from the authenticated browser user's
live organization membership when that user posts the decision, rather than
from the earlier MCP request waiting for it or the user's global role. Self-host
uses the same Better Auth membership lookup for ordinary requests and browser
decisions. A demotion before either kind of resume therefore takes effect
before the paused execution can reach a workspace-write sink.
Principalnow declares its role model explicitly: organization-backed hostscarry
orgRoleModel: "organization"and an optional normalized admin/memberrole, while hosts without roles carry
orgRoleModel: "none"and cannot alsocarry an organization role. Missing role data under the organization model
fails closed, including legacy persisted MCP session metadata. Cloud derives
roles from WorkOS memberships and self-host derives them from Better Auth.
Members may still read and execute shared workspace resources and perform
operational maintenance such as token refresh and tool-catalog synchronization.
User-requested workspace mutations now return
OrgWriteDeniedError(HTTP 403):workspace connections and reconnects, organization OAuth clients and connect
flows, tool policies, and integration add/update/replace/remove/health-check
operations. Personal connection management remains available.
Pasted connection credentials, OAuth client secrets, OAuth connection tokens,
and dependent tool discovery run only after the outermost transaction commits
their row, including when a plugin wraps creation in
ctx.transaction. Eachcommitted row records unique provider item references owned by that write
attempt. Reads resolve only those recorded references, so the post-commit
window fails closed with a retryable incomplete-write error and can never
resolve a predecessor's credential. A process crash leaves detectable missing
references; a later executor incarnation can atomically replace and retry a
stranded pasted connection, while OAuth client and connection retries replace
their rows through their existing update paths.
If credential persistence fails while the process remains alive, row and
provider compensation restore the prior state where possible and surface
incomplete cleanup explicitly. Best-effort cleanup can leave inert orphaned
attempt items, but an attempt never shares an item reference with a successor,
eliminating the former successor-clobber interval without requiring provider
compare-and-set support.
Updated dependencies [
31a8042,b5271a6,caa0391]:@executor-js/plugin-onepassword@1.6.8
Patch Changes
31a8042,b5271a6,caa0391]:@executor-js/plugin-openapi@1.6.8
Patch Changes
#1913
6d1f670Thanks @RhysSullivan! - Expose OpenAPI spec updates as an approval-gated Executor tool so agents can refresh URL-backed integrations without removing their connections.#1919
caa0391Thanks @RhysSullivan! - Workspace writes now require an administratorExecutor bindings accept
orgWrites: "allowed" | "denied" | "request".Request-aware hosts use
"request"and bindCurrentOrgWriteAccessfrom theauthenticated principal for each request. An approval, decline, cancellation,
or form response also rebinds the paused execution to the resumer's current
access. Browser approvals derive access from the authenticated browser user's
live organization membership when that user posts the decision, rather than
from the earlier MCP request waiting for it or the user's global role. Self-host
uses the same Better Auth membership lookup for ordinary requests and browser
decisions. A demotion before either kind of resume therefore takes effect
before the paused execution can reach a workspace-write sink.
Principalnow declares its role model explicitly: organization-backed hostscarry
orgRoleModel: "organization"and an optional normalized admin/memberrole, while hosts without roles carry
orgRoleModel: "none"and cannot alsocarry an organization role. Missing role data under the organization model
fails closed, including legacy persisted MCP session metadata. Cloud derives
roles from WorkOS memberships and self-host derives them from Better Auth.
Members may still read and execute shared workspace resources and perform
operational maintenance such as token refresh and tool-catalog synchronization.
User-requested workspace mutations now return
OrgWriteDeniedError(HTTP 403):workspace connections and reconnects, organization OAuth clients and connect
flows, tool policies, and integration add/update/replace/remove/health-check
operations. Personal connection management remains available.
Pasted connection credentials, OAuth client secrets, OAuth connection tokens,
and dependent tool discovery run only after the outermost transaction commits
their row, including when a plugin wraps creation in
ctx.transaction. Eachcommitted row records unique provider item references owned by that write
attempt. Reads resolve only those recorded references, so the post-commit
window fails closed with a retryable incomplete-write error and can never
resolve a predecessor's credential. A process crash leaves detectable missing
references; a later executor incarnation can atomically replace and retry a
stranded pasted connection, while OAuth client and connection retries replace
their rows through their existing update paths.
If credential persistence fails while the process remains alive, row and
provider compensation restore the prior state where possible and surface
incomplete cleanup explicitly. Best-effort cleanup can leave inert orphaned
attempt items, but an attempt never shares an item reference with a successor,
eliminating the former successor-clobber interval without requiring provider
compare-and-set support.
Updated dependencies [
31a8042,b5271a6,caa0391]:@executor-js/plugin-toolkits@1.5.43
Patch Changes
31a8042,b5271a6,caa0391]:@executor-js/codemode-core@1.6.8
executor@1.6.8
Patch Changes
#1904
c27436dThanks @RhysSullivan! - Allow manually registered OAuth apps to use HTTP Basic client authentication for token exchange and refresh.#1834
b22d536Thanks @charliemeyer2000! - Self-host: bring-your-own SSO (Google, Okta, any OIDC IdP) with a verified-domain allowlistOperators can enable a single OIDC sign-in provider on a self-hosted instance by setting
EXECUTOR_SSO_PROVIDER_ID,EXECUTOR_SSO_CLIENT_ID,EXECUTOR_SSO_CLIENT_SECRET, andEXECUTOR_SSO_ALLOWED_DOMAINS(comma-separated email domains), plusEXECUTOR_SSO_DISCOVERY_URLfor providers without a preset (googleis preset;EXECUTOR_SSO_PROVIDER_NAMEoverrides the button label). The login page renders a "Continue with " button when configured (discovered through the new unauthenticatedGET /api/auth-config, which returns provider id + display name only), and the MCP OAuth connect flow's login step gains the same option since it lands on the same page.The domain allowlist replaces the invite code for SSO sign-ups: a sign-in whose IdP-verified email (
email_verified) has an allowlisted domain auto-joins the instance organization as a member; unverified emails and any other domain are refused. Enabling the provider without an allowlist is refused at boot, as is a half-configured client id/secret pair, so SSO can never silently become open registration. Email/password sign-in and invite-based signup are unchanged. The end-to-end flow (discovery → redirect → consent → callback → membership) is exercised in tests against an emulated OIDC IdP from@executor-js/emulate.Updated dependencies [
31a8042,b5271a6,caa0391]:@executor-js/cloud@1.4.69
Patch Changes
31a8042,6d1f670,b5271a6,caa0391]:@executor-js/host-selfhost@0.0.50
Patch Changes
31a8042,6d1f670,b5271a6,caa0391]:@executor-js/local@1.6.8
Patch Changes
31a8042,6d1f670,b5271a6,caa0391]:@executor-js/e2e@0.0.48
Patch Changes
31a8042,6d1f670,b5271a6,caa0391]:@executor-js/example-all-plugins@0.0.69
Patch Changes
31a8042,6d1f670,b5271a6,caa0391]:@executor-js/example-docs-sdk-quickstart@0.0.54
Patch Changes
31a8042,6d1f670,b5271a6,caa0391]:@executor-js/analytics@0.1.15
Patch Changes
@executor-js/api@1.4.71
Patch Changes
#1919
caa0391Thanks @RhysSullivan! - Workspace writes now require an administratorExecutor bindings accept
orgWrites: "allowed" | "denied" | "request".Request-aware hosts use
"request"and bindCurrentOrgWriteAccessfrom theauthenticated principal for each request. An approval, decline, cancellation,
or form response also rebinds the paused execution to the resumer's current
access. Browser approvals derive access from the authenticated browser user's
live organization membership when that user posts the decision, rather than
from the earlier MCP request waiting for it or the user's global role. Self-host
uses the same Better Auth membership lookup for ordinary requests and browser
decisions. A demotion before either kind of resume therefore takes effect
before the paused execution can reach a workspace-write sink.
Principalnow declares its role model explicitly: organization-backed hostscarry
orgRoleModel: "organization"and an optional normalized admin/memberrole, while hosts without roles carry
orgRoleModel: "none"and cannot alsocarry an organization role. Missing role data under the organization model
fails closed, including legacy persisted MCP session metadata. Cloud derives
roles from WorkOS memberships and self-host derives them from Better Auth.
Members may still read and execute shared workspace resources and perform
operational maintenance such as token refresh and tool-catalog synchronization.
User-requested workspace mutations now return
OrgWriteDeniedError(HTTP 403):workspace connections and reconnects, organization OAuth clients and connect
flows, tool policies, and integration add/update/replace/remove/health-check
operations. Personal connection management remains available.
Pasted connection credentials, OAuth client secrets, OAuth connection tokens,
and dependent tool discovery run only after the outermost transaction commits
their row, including when a plugin wraps creation in
ctx.transaction. Eachcommitted row records unique provider item references owned by that write
attempt. Reads resolve only those recorded references, so the post-commit
window fails closed with a retryable incomplete-write error and can never
resolve a predecessor's credential. A process crash leaves detectable missing
references; a later executor incarnation can atomically replace and retry a
stranded pasted connection, while OAuth client and connection retries replace
their rows through their existing update paths.
If credential persistence fails while the process remains alive, row and
provider compensation restore the prior state where possible and surface
incomplete cleanup explicitly. Best-effort cleanup can leave inert orphaned
attempt items, but an attempt never shares an item reference with a successor,
eliminating the former successor-clobber interval without requiring provider
compare-and-set support.
Updated dependencies [
31a8042,b5271a6,caa0391]:@executor-js/cloudflare@0.0.50
Patch Changes
31a8042,b5271a6,caa0391]:@executor-js/mcp-apps-shell@1.4.19
Patch Changes
@executor-js/runtime-workerd-subprocess@0.0.23
Patch Changes
@executor-js/onboarding-demo@0.0.3
Patch Changes
31a8042,6d1f670,b5271a6,caa0391]:@executor-js/plugin-encrypted-secrets@0.0.50
Patch Changes
31a8042,b5271a6,caa0391]:@executor-js/plugin-provider-service-split@0.0.22
Patch Changes
31a8042,6d1f670,b5271a6,caa0391]:@executor-js/react@1.4.71
Patch Changes
31a8042,b5271a6,caa0391]:@executor-js/desktop@1.6.8