Skip to content

chore(release): version packages - #177

Merged
Madraka merged 1 commit into
mainfrom
changeset-release/main
Nov 10, 2026
Merged

Madraka merged 1 commit into
mainfrom
changeset-release/main

Conversation

@github-actions

@github-actions github-actions Bot commented Nov 9, 2026 •

Copy link
Copy Markdown
Contributor

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

@cloudhal/api@0.7.0

Minor Changes

  • 6057871: Remote MCP clients can now authorize with OAuth 2.1 against the deployment itself (RFC-0044 Phase 2, ADR-0045). Better Auth's mcp() and jwt() plugins run in the Studio's auth instance when the runtime has a stable public origin: the admin Worker uses its origin, cloudhal studio needs --base-url / CLOUDHAL_BASE_URL (it logs why OAuth is off otherwise), and CLOUDHAL_MCP_OAUTH=off turns it off. Access tokens are Ed25519 JWTs bound to /mcp for one hour, refresh tokens rotate with a 30-second reuse window, and each connection is approved on Studio's new consent screen (/oauth/consent), which narrows the requested scopes by the member's role and records an agent_grants row (migration 0031_oauth). A token resolves to the same principal an agent key does; revoking a connection (DELETE /api/agent-grants/:id) or removing the member refuses it on its next call. The Better Auth family moves to 1.7.18. Client registration (CIMD, DCR) and the "Connected agents" screen follow in Phase 3.

Patch Changes

  • d363160: Remote MCP clients can now register themselves (RFC-0044 Phase 3a, ADR-0045). Clients that name an HTTPS Client ID Metadata Document as their client_id (Claude Code, Codex, VS Code) are accepted through @better-auth/cimd, fetched with the media import's SSRF-safe transport (pinned on Node, DoH-checked on Workers; https only, public addresses only, no redirects, 5 KB, 5 s). Clients without one (Cursor) use dynamic client registration at /api/auth/oauth2/register: public clients only, rate-limited per address and per day, capped at 5,000, and pruned by the scheduler after 30 unused days. Document clients are fetched at most hourly per client, with budgets in Cloudhal's own counters that never lock out stored clients, a cap of 5,000 that evicts unused clients (the well-known clients' hosts are exempt), pruning after three hours unused, and a failed refetch that refuses the client; migration 0032_oauth_client_kind_index indexes them. Redirect URIs must be https, loopback http (any port) or a native app's private-use scheme (cursor, vscode, reverse-domain, CLOUDHAL_MCP_REDIRECT_SCHEMES), and the client host list applies at every authorization. With DCR off, the clients it registered earlier cannot start new authorizations. The consent screen shows client names plain and short, a document client's host first, and marks self-registered clients as unverified. CLOUDHAL_MCP_CIMD=off, CLOUDHAL_MCP_DCR=off, CLOUDHAL_MCP_CLIENT_HOSTS and CLOUDHAL_MCP_REDIRECT_SCHEMES control it on both runtimes, and the Docker compose file passes them through. The Phase 2 server-side test client (OauthServer.createClient) is removed. set_embargo through an OAuth connection now files the gate for a person's approval instead of leaving it unapplied, and the request is notified while it waits. safeFetch results carry the response headers.

  • e6fe6eb: Studio shows "Connected agents" and how to connect an MCP client by URL (RFC-0044 Phase 3b). On /agents, each member sees the apps they connected through OAuth. A client is named as the consent screen named it: a metadata document's host first, a self-registered client as not verified, a name that looks like a well-known client with a warning. Each row shows what the connection can do in words, its mode and when it was last used, and has Disconnect, which uses the existing revoke. Administrators see every member's connections under All keys. "Connect an MCP client" gains a Connect by URL tab: the deployment's /mcp URL, steps for Claude, Claude Code, ChatGPT and Codex, Cursor, VS Code and the MCP Inspector, and a note where a client needs dynamic client registration that is off.

    GET /api/agent-grants now returns client (kind, a document client's host, lookalike) with the name sanitized, and with ?all=1 each owner's role. /api/instance reports features.mcpOauthClients: the /mcp resource, and whether metadata documents and dynamic registration are on. The new guide is docs/guides/mcp-oauth.md, and the MCP server README has an Authentication section.

  • Updated dependencies [6057871]

  • Updated dependencies [d363160]

  • Updated dependencies [e6fe6eb]

    • @cloudhal/storage@0.7.0
    • @cloudhal/mcp-server@0.7.0
    • @cloudhal/core-ts@0.7.0
    • @cloudhal/agent-runtime@0.7.0
    • @cloudhal/analytics@0.7.0
    • @cloudhal/astro-renderer@0.7.0
    • @cloudhal/comments@0.7.0
    • @cloudhal/schedules@0.7.0
    • @cloudhal/core-contracts@0.7.0

@cloudhal/cli@0.7.0

Minor Changes

  • 6057871: Remote MCP clients can now authorize with OAuth 2.1 against the deployment itself (RFC-0044 Phase 2, ADR-0045). Better Auth's mcp() and jwt() plugins run in the Studio's auth instance when the runtime has a stable public origin: the admin Worker uses its origin, cloudhal studio needs --base-url / CLOUDHAL_BASE_URL (it logs why OAuth is off otherwise), and CLOUDHAL_MCP_OAUTH=off turns it off. Access tokens are Ed25519 JWTs bound to /mcp for one hour, refresh tokens rotate with a 30-second reuse window, and each connection is approved on Studio's new consent screen (/oauth/consent), which narrows the requested scopes by the member's role and records an agent_grants row (migration 0031_oauth). A token resolves to the same principal an agent key does; revoking a connection (DELETE /api/agent-grants/:id) or removing the member refuses it on its next call. The Better Auth family moves to 1.7.18. Client registration (CIMD, DCR) and the "Connected agents" screen follow in Phase 3.

Patch Changes

  • d363160: Remote MCP clients can now register themselves (RFC-0044 Phase 3a, ADR-0045). Clients that name an HTTPS Client ID Metadata Document as their client_id (Claude Code, Codex, VS Code) are accepted through @better-auth/cimd, fetched with the media import's SSRF-safe transport (pinned on Node, DoH-checked on Workers; https only, public addresses only, no redirects, 5 KB, 5 s). Clients without one (Cursor) use dynamic client registration at /api/auth/oauth2/register: public clients only, rate-limited per address and per day, capped at 5,000, and pruned by the scheduler after 30 unused days. Document clients are fetched at most hourly per client, with budgets in Cloudhal's own counters that never lock out stored clients, a cap of 5,000 that evicts unused clients (the well-known clients' hosts are exempt), pruning after three hours unused, and a failed refetch that refuses the client; migration 0032_oauth_client_kind_index indexes them. Redirect URIs must be https, loopback http (any port) or a native app's private-use scheme (cursor, vscode, reverse-domain, CLOUDHAL_MCP_REDIRECT_SCHEMES), and the client host list applies at every authorization. With DCR off, the clients it registered earlier cannot start new authorizations. The consent screen shows client names plain and short, a document client's host first, and marks self-registered clients as unverified. CLOUDHAL_MCP_CIMD=off, CLOUDHAL_MCP_DCR=off, CLOUDHAL_MCP_CLIENT_HOSTS and CLOUDHAL_MCP_REDIRECT_SCHEMES control it on both runtimes, and the Docker compose file passes them through. The Phase 2 server-side test client (OauthServer.createClient) is removed. set_embargo through an OAuth connection now files the gate for a person's approval instead of leaving it unapplied, and the request is notified while it waits. safeFetch results carry the response headers.

  • e6fe6eb: Studio shows "Connected agents" and how to connect an MCP client by URL (RFC-0044 Phase 3b). On /agents, each member sees the apps they connected through OAuth. A client is named as the consent screen named it: a metadata document's host first, a self-registered client as not verified, a name that looks like a well-known client with a warning. Each row shows what the connection can do in words, its mode and when it was last used, and has Disconnect, which uses the existing revoke. Administrators see every member's connections under All keys. "Connect an MCP client" gains a Connect by URL tab: the deployment's /mcp URL, steps for Claude, Claude Code, ChatGPT and Codex, Cursor, VS Code and the MCP Inspector, and a note where a client needs dynamic client registration that is off.

    GET /api/agent-grants now returns client (kind, a document client's host, lookalike) with the name sanitized, and with ?all=1 each owner's role. /api/instance reports features.mcpOauthClients: the /mcp resource, and whether metadata documents and dynamic registration are on. The new guide is docs/guides/mcp-oauth.md, and the MCP server README has an Authentication section.

  • Updated dependencies [6057871]

  • Updated dependencies [d363160]

  • Updated dependencies [e6fe6eb]

    • @cloudhal/storage@0.7.0
    • @cloudhal/api@0.7.0
    • @cloudhal/cloudflare@0.7.0
    • @cloudhal/mcp-server@0.7.0
    • @cloudhal/core-ts@0.7.0
    • @cloudhal/agent-runtime@0.7.0
    • @cloudhal/analytics@0.7.0
    • @cloudhal/comments@0.7.0
    • @cloudhal/schedules@0.7.0
    • @cloudhal/core-contracts@0.7.0

@cloudhal/cloudflare@0.7.0

Minor Changes

  • 6057871: Remote MCP clients can now authorize with OAuth 2.1 against the deployment itself (RFC-0044 Phase 2, ADR-0045). Better Auth's mcp() and jwt() plugins run in the Studio's auth instance when the runtime has a stable public origin: the admin Worker uses its origin, cloudhal studio needs --base-url / CLOUDHAL_BASE_URL (it logs why OAuth is off otherwise), and CLOUDHAL_MCP_OAUTH=off turns it off. Access tokens are Ed25519 JWTs bound to /mcp for one hour, refresh tokens rotate with a 30-second reuse window, and each connection is approved on Studio's new consent screen (/oauth/consent), which narrows the requested scopes by the member's role and records an agent_grants row (migration 0031_oauth). A token resolves to the same principal an agent key does; revoking a connection (DELETE /api/agent-grants/:id) or removing the member refuses it on its next call. The Better Auth family moves to 1.7.18. Client registration (CIMD, DCR) and the "Connected agents" screen follow in Phase 3.

Patch Changes

  • d363160: Remote MCP clients can now register themselves (RFC-0044 Phase 3a, ADR-0045). Clients that name an HTTPS Client ID Metadata Document as their client_id (Claude Code, Codex, VS Code) are accepted through @better-auth/cimd, fetched with the media import's SSRF-safe transport (pinned on Node, DoH-checked on Workers; https only, public addresses only, no redirects, 5 KB, 5 s). Clients without one (Cursor) use dynamic client registration at /api/auth/oauth2/register: public clients only, rate-limited per address and per day, capped at 5,000, and pruned by the scheduler after 30 unused days. Document clients are fetched at most hourly per client, with budgets in Cloudhal's own counters that never lock out stored clients, a cap of 5,000 that evicts unused clients (the well-known clients' hosts are exempt), pruning after three hours unused, and a failed refetch that refuses the client; migration 0032_oauth_client_kind_index indexes them. Redirect URIs must be https, loopback http (any port) or a native app's private-use scheme (cursor, vscode, reverse-domain, CLOUDHAL_MCP_REDIRECT_SCHEMES), and the client host list applies at every authorization. With DCR off, the clients it registered earlier cannot start new authorizations. The consent screen shows client names plain and short, a document client's host first, and marks self-registered clients as unverified. CLOUDHAL_MCP_CIMD=off, CLOUDHAL_MCP_DCR=off, CLOUDHAL_MCP_CLIENT_HOSTS and CLOUDHAL_MCP_REDIRECT_SCHEMES control it on both runtimes, and the Docker compose file passes them through. The Phase 2 server-side test client (OauthServer.createClient) is removed. set_embargo through an OAuth connection now files the gate for a person's approval instead of leaving it unapplied, and the request is notified while it waits. safeFetch results carry the response headers.
  • Updated dependencies [6057871]
  • Updated dependencies [d363160]
  • Updated dependencies [e6fe6eb]
    • @cloudhal/storage@0.7.0
    • @cloudhal/api@0.7.0
    • @cloudhal/mcp-server@0.7.0
    • @cloudhal/core-ts@0.7.0
    • @cloudhal/agent-runtime@0.7.0
    • @cloudhal/analytics@0.7.0
    • @cloudhal/comments@0.7.0
    • @cloudhal/schedules@0.7.0

@cloudhal/storage@0.7.0

Minor Changes

  • 6057871: Remote MCP clients can now authorize with OAuth 2.1 against the deployment itself (RFC-0044 Phase 2, ADR-0045). Better Auth's mcp() and jwt() plugins run in the Studio's auth instance when the runtime has a stable public origin: the admin Worker uses its origin, cloudhal studio needs --base-url / CLOUDHAL_BASE_URL (it logs why OAuth is off otherwise), and CLOUDHAL_MCP_OAUTH=off turns it off. Access tokens are Ed25519 JWTs bound to /mcp for one hour, refresh tokens rotate with a 30-second reuse window, and each connection is approved on Studio's new consent screen (/oauth/consent), which narrows the requested scopes by the member's role and records an agent_grants row (migration 0031_oauth). A token resolves to the same principal an agent key does; revoking a connection (DELETE /api/agent-grants/:id) or removing the member refuses it on its next call. The Better Auth family moves to 1.7.18. Client registration (CIMD, DCR) and the "Connected agents" screen follow in Phase 3.

Patch Changes

  • d363160: Remote MCP clients can now register themselves (RFC-0044 Phase 3a, ADR-0045). Clients that name an HTTPS Client ID Metadata Document as their client_id (Claude Code, Codex, VS Code) are accepted through @better-auth/cimd, fetched with the media import's SSRF-safe transport (pinned on Node, DoH-checked on Workers; https only, public addresses only, no redirects, 5 KB, 5 s). Clients without one (Cursor) use dynamic client registration at /api/auth/oauth2/register: public clients only, rate-limited per address and per day, capped at 5,000, and pruned by the scheduler after 30 unused days. Document clients are fetched at most hourly per client, with budgets in Cloudhal's own counters that never lock out stored clients, a cap of 5,000 that evicts unused clients (the well-known clients' hosts are exempt), pruning after three hours unused, and a failed refetch that refuses the client; migration 0032_oauth_client_kind_index indexes them. Redirect URIs must be https, loopback http (any port) or a native app's private-use scheme (cursor, vscode, reverse-domain, CLOUDHAL_MCP_REDIRECT_SCHEMES), and the client host list applies at every authorization. With DCR off, the clients it registered earlier cannot start new authorizations. The consent screen shows client names plain and short, a document client's host first, and marks self-registered clients as unverified. CLOUDHAL_MCP_CIMD=off, CLOUDHAL_MCP_DCR=off, CLOUDHAL_MCP_CLIENT_HOSTS and CLOUDHAL_MCP_REDIRECT_SCHEMES control it on both runtimes, and the Docker compose file passes them through. The Phase 2 server-side test client (OauthServer.createClient) is removed. set_embargo through an OAuth connection now files the gate for a person's approval instead of leaving it unapplied, and the request is notified while it waits. safeFetch results carry the response headers.
  • @cloudhal/core-contracts@0.7.0

@cloudhal/agent-runtime@0.7.0

Patch Changes

  • Updated dependencies [6057871]
  • Updated dependencies [d363160]
    • @cloudhal/storage@0.7.0
    • @cloudhal/core-contracts@0.7.0

@cloudhal/analytics@0.7.0

Patch Changes

  • Updated dependencies [6057871]
  • Updated dependencies [d363160]
    • @cloudhal/storage@0.7.0
    • @cloudhal/core-contracts@0.7.0

@cloudhal/astro-renderer@0.7.0

Patch Changes

  • Updated dependencies [6057871]
  • Updated dependencies [d363160]
    • @cloudhal/storage@0.7.0
    • @cloudhal/core-ts@0.7.0
    • @cloudhal/analytics@0.7.0
    • @cloudhal/comments@0.7.0
    • @cloudhal/core-contracts@0.7.0

@cloudhal/comments@0.7.0

Patch Changes

  • Updated dependencies [6057871]
  • Updated dependencies [d363160]
    • @cloudhal/storage@0.7.0
    • @cloudhal/core-ts@0.7.0
    • @cloudhal/core-contracts@0.7.0

@cloudhal/core-ts@0.7.0

Patch Changes

  • d363160: Remote MCP clients can now register themselves (RFC-0044 Phase 3a, ADR-0045). Clients that name an HTTPS Client ID Metadata Document as their client_id (Claude Code, Codex, VS Code) are accepted through @better-auth/cimd, fetched with the media import's SSRF-safe transport (pinned on Node, DoH-checked on Workers; https only, public addresses only, no redirects, 5 KB, 5 s). Clients without one (Cursor) use dynamic client registration at /api/auth/oauth2/register: public clients only, rate-limited per address and per day, capped at 5,000, and pruned by the scheduler after 30 unused days. Document clients are fetched at most hourly per client, with budgets in Cloudhal's own counters that never lock out stored clients, a cap of 5,000 that evicts unused clients (the well-known clients' hosts are exempt), pruning after three hours unused, and a failed refetch that refuses the client; migration 0032_oauth_client_kind_index indexes them. Redirect URIs must be https, loopback http (any port) or a native app's private-use scheme (cursor, vscode, reverse-domain, CLOUDHAL_MCP_REDIRECT_SCHEMES), and the client host list applies at every authorization. With DCR off, the clients it registered earlier cannot start new authorizations. The consent screen shows client names plain and short, a document client's host first, and marks self-registered clients as unverified. CLOUDHAL_MCP_CIMD=off, CLOUDHAL_MCP_DCR=off, CLOUDHAL_MCP_CLIENT_HOSTS and CLOUDHAL_MCP_REDIRECT_SCHEMES control it on both runtimes, and the Docker compose file passes them through. The Phase 2 server-side test client (OauthServer.createClient) is removed. set_embargo through an OAuth connection now files the gate for a person's approval instead of leaving it unapplied, and the request is notified while it waits. safeFetch results carry the response headers.
  • Updated dependencies [6057871]
  • Updated dependencies [d363160]
    • @cloudhal/storage@0.7.0
    • @cloudhal/schedules@0.7.0
    • @cloudhal/core-contracts@0.7.0

create-cloudhal@0.7.0

Patch Changes

  • Updated dependencies [6057871]
  • Updated dependencies [d363160]
  • Updated dependencies [e6fe6eb]
    • @cloudhal/cli@0.7.0

@cloudhal/mcp-server@0.7.0

Patch Changes

  • d363160: Remote MCP clients can now register themselves (RFC-0044 Phase 3a, ADR-0045). Clients that name an HTTPS Client ID Metadata Document as their client_id (Claude Code, Codex, VS Code) are accepted through @better-auth/cimd, fetched with the media import's SSRF-safe transport (pinned on Node, DoH-checked on Workers; https only, public addresses only, no redirects, 5 KB, 5 s). Clients without one (Cursor) use dynamic client registration at /api/auth/oauth2/register: public clients only, rate-limited per address and per day, capped at 5,000, and pruned by the scheduler after 30 unused days. Document clients are fetched at most hourly per client, with budgets in Cloudhal's own counters that never lock out stored clients, a cap of 5,000 that evicts unused clients (the well-known clients' hosts are exempt), pruning after three hours unused, and a failed refetch that refuses the client; migration 0032_oauth_client_kind_index indexes them. Redirect URIs must be https, loopback http (any port) or a native app's private-use scheme (cursor, vscode, reverse-domain, CLOUDHAL_MCP_REDIRECT_SCHEMES), and the client host list applies at every authorization. With DCR off, the clients it registered earlier cannot start new authorizations. The consent screen shows client names plain and short, a document client's host first, and marks self-registered clients as unverified. CLOUDHAL_MCP_CIMD=off, CLOUDHAL_MCP_DCR=off, CLOUDHAL_MCP_CLIENT_HOSTS and CLOUDHAL_MCP_REDIRECT_SCHEMES control it on both runtimes, and the Docker compose file passes them through. The Phase 2 server-side test client (OauthServer.createClient) is removed. set_embargo through an OAuth connection now files the gate for a person's approval instead of leaving it unapplied, and the request is notified while it waits. safeFetch results carry the response headers.

  • e6fe6eb: Studio shows "Connected agents" and how to connect an MCP client by URL (RFC-0044 Phase 3b). On /agents, each member sees the apps they connected through OAuth. A client is named as the consent screen named it: a metadata document's host first, a self-registered client as not verified, a name that looks like a well-known client with a warning. Each row shows what the connection can do in words, its mode and when it was last used, and has Disconnect, which uses the existing revoke. Administrators see every member's connections under All keys. "Connect an MCP client" gains a Connect by URL tab: the deployment's /mcp URL, steps for Claude, Claude Code, ChatGPT and Codex, Cursor, VS Code and the MCP Inspector, and a note where a client needs dynamic client registration that is off.

    GET /api/agent-grants now returns client (kind, a document client's host, lookalike) with the name sanitized, and with ?all=1 each owner's role. /api/instance reports features.mcpOauthClients: the /mcp resource, and whether metadata documents and dynamic registration are on. The new guide is docs/guides/mcp-oauth.md, and the MCP server README has an Authentication section.

  • Updated dependencies [6057871]

  • Updated dependencies [d363160]

    • @cloudhal/storage@0.7.0
    • @cloudhal/core-ts@0.7.0
    • @cloudhal/agent-runtime@0.7.0
    • @cloudhal/analytics@0.7.0
    • @cloudhal/astro-renderer@0.7.0
    • @cloudhal/comments@0.7.0
    • @cloudhal/schedules@0.7.0
    • @cloudhal/core-contracts@0.7.0

@cloudhal/schedules@0.7.0

Patch Changes

  • Updated dependencies [6057871]
  • Updated dependencies [d363160]
    • @cloudhal/storage@0.7.0
    • @cloudhal/core-contracts@0.7.0

@cloudhal/core-contracts@0.7.0

No changes in this release.

@github-actions
github-actions Bot force-pushed the changeset-release/main branch 2 times, most recently from 4fe75c1 to 35466f5 Compare November 10, 2026 00:00
@github-actions
github-actions Bot force-pushed the changeset-release/main branch from 35466f5 to 6f875a1 Compare November 10, 2026 00:22
@Madraka
Madraka merged commit 194499e into main Nov 10, 2026
9 checks passed
@Madraka
Madraka deleted the changeset-release/main branch November 10, 2026 00:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant