<?xml version="1.0" encoding="UTF-8"?><?xml-stylesheet href="/rss/styles.xsl" type="text/xsl"?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Membrane Changelog</title><description>What&apos;s new in Membrane — SDK, CLI, Platform, and API updates</description><link>https://changelog.getmembrane.com/</link><language>en-us</language><atom:link href="https://changelog.getmembrane.com/rss.xml" rel="self" type="application/rss+xml"/><item><title>Platform 2026-09-15</title><link>https://changelog.getmembrane.com/#platform/2026-09-15/</link><guid isPermaLink="false">platform/2026-09-15</guid><pubDate>Tue, 15 Sep 2026 00:00:00 GMT</pubDate><content:encoded>&lt;ul&gt;
&lt;li&gt;security patches&lt;/li&gt;
&lt;/ul&gt;
</content:encoded><category>Platform</category></item><item><title>Platform 2026-09-07</title><link>https://changelog.getmembrane.com/#platform/2026-09-07/</link><guid isPermaLink="false">platform/2026-09-07</guid><pubDate>Mon, 07 Sep 2026 00:00:00 GMT</pubDate><content:encoded>&lt;ul&gt;
&lt;li&gt;security patches&lt;/li&gt;
&lt;/ul&gt;
</content:encoded><category>Platform</category></item><item><title>Platform 2026-09-01</title><link>https://changelog.getmembrane.com/#platform/2026-09-01/</link><guid isPermaLink="false">platform/2026-09-01</guid><pubDate>Tue, 01 Sep 2026 00:00:00 GMT</pubDate><content:encoded>&lt;ul&gt;
&lt;li&gt;&lt;p&gt;perf(customers): make the tenant search prefix-matched and index-served&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;name the workspace and app on the auth-proxy consent screen&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;make consent-screen Decline resolve the connect request as declined&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;feat(auth-proxy): revoke the provider-side grant when a proxy connection disconnects&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;show a clear &amp;#39;Authorization was declined&amp;#39; page on OAuth access_denied&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;keep action request overrides when a run refreshes credentials&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;report limit enforcement to the console&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;add stable /install/ route for marketplace listings&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
</content:encoded><category>Platform</category></item><item><title>Platform 2026-08-18</title><link>https://changelog.getmembrane.com/#platform/2026-08-18/</link><guid isPermaLink="false">platform/2026-08-18</guid><pubDate>Tue, 18 Aug 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;- Fix the embedded UI being replaced by an error screen when a screen rendered an internal console link. &lt;code&gt;GlobalLink&lt;/code&gt; threw &lt;code&gt;GlobalLink must be used within PanelsProvider&lt;/code&gt; outside the console&amp;#39;s panel system, which took down the whole embedded surface — most visibly the flow builder&lt;/p&gt;
&lt;p&gt;- Embedded screens now fail into a scoped recovery message instead of React Router&amp;#39;s developer error screen&lt;/p&gt;
&lt;p&gt;- Security updates: bump &lt;code&gt;linkify-it&lt;/code&gt; to 5.0.2&lt;/p&gt;
</content:encoded><category>Platform</category></item><item><title>Platform 2026-08-17</title><link>https://changelog.getmembrane.com/#platform/2026-08-17/</link><guid isPermaLink="false">platform/2026-08-17</guid><pubDate>Mon, 17 Aug 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;- Fix externally-initiated OAuth connections failing when the caller forwards the provider&amp;#39;s &lt;code&gt;state&lt;/code&gt; parameter&lt;/p&gt;
&lt;p&gt;- Security updates: patch all high and critical dependency vulnerabilities reported by Dependabot and Trivy&lt;/p&gt;
</content:encoded><category>Platform</category></item><item><title>Platform 2026-08-13</title><link>https://changelog.getmembrane.com/#platform/2026-08-13/</link><guid isPermaLink="false">platform/2026-08-13</guid><pubDate>Thu, 13 Aug 2026 00:00:00 GMT</pubDate><content:encoded>&lt;ul&gt;
&lt;li&gt;update SDK to version &lt;code&gt;0.29.2&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
</content:encoded><category>Platform</category></item><item><title>CLI 1.18.3</title><link>https://changelog.getmembrane.com/#cli/1.18.3</link><guid isPermaLink="false">cli/1.18.3</guid><pubDate>Wed, 12 Aug 2026 00:00:00 GMT</pubDate><content:encoded>&lt;h2&gt;Fixed&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;membrane push&lt;/code&gt; no longer hangs and then fails with &lt;code&gt;socket hang up&lt;/code&gt; when the upload has to be retried. An upload body can be read once, so a retry sent an empty body under a &lt;code&gt;Content-Length&lt;/code&gt; that still promised the whole archive. The engine waited for bytes that never arrived, and one transient network error became a certain failure. Each attempt now builds its own upload body.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;membrane push&lt;/code&gt; no longer fails with &lt;code&gt;Request timeout after 120000ms&lt;/code&gt; while the import is still running on the engine. Waiting for the import ran inside the timeout that covers a single HTTP request, so a push of a large workspace timed out on the wait rather than on any request, and the abandoned wait kept polling the engine in the background. The push now starts the import in one request and polls it in separate requests, so the timeout covers only a request and the wait around them is bounded by the job budget alone.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;A poll that fails on a transient network error now retries the poll. It used to abandon the wait, so a push reported failure for an import that had in fact completed.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
</content:encoded><category>CLI</category></item><item><title>SDK 0.29.2</title><link>https://changelog.getmembrane.com/#sdk/0.29.2</link><guid isPermaLink="false">sdk/0.29.2</guid><pubDate>Wed, 12 Aug 2026 00:00:00 GMT</pubDate><content:encoded>&lt;h2&gt;Added&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;GenerateOrgAccessTokenRequest&lt;/code&gt; and &lt;code&gt;GenerateOrgAccessTokenResponse&lt;/code&gt; describe the read-only organization access token, which can mint read-only workspace tokens. The request takes an optional &lt;code&gt;expiresIn&lt;/code&gt; in seconds, defaulting to 30 days and capped at 90, and an optional &lt;code&gt;name&lt;/code&gt; that identifies the token holder in logs.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;GenerateWorkspaceAccessTokenRequest&lt;/code&gt; accepts an optional &lt;code&gt;expiresIn&lt;/code&gt; in seconds, defaulting to 1 hour and capped at 90 days.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;BaseExternalEventLogRecord&lt;/code&gt; carries an optional &lt;code&gt;flowTriggerSkipReason&lt;/code&gt;. It reports why an event that was received launched no flow run, and lists the dependent flow instances in &lt;code&gt;dependentFlowInstanceIds&lt;/code&gt;. The first reason code is &lt;code&gt;all-dependent-flow-instances-disabled&lt;/code&gt;, for an event whose every dependent flow instance is disabled.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Changed&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;MIN_FULL_SYNC_INTERVAL_SECONDS&lt;/code&gt; is now 600 seconds instead of 60. A data source that requests a full-sync interval under 10 minutes is clamped to the new minimum.&lt;/li&gt;
&lt;/ul&gt;
</content:encoded><category>SDK</category></item><item><title>Platform 2026-08-11</title><link>https://changelog.getmembrane.com/#platform/2026-08-11/</link><guid isPermaLink="false">platform/2026-08-11</guid><pubDate>Tue, 11 Aug 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;- Bug fixing&lt;/p&gt;
&lt;p&gt;- Security updates&lt;/p&gt;
&lt;p&gt;- Performance improvements across the API, action-run path, and code sandbox&lt;/p&gt;
&lt;p&gt;- Add read-only org access token&lt;/p&gt;
&lt;p&gt;- Add DISABLED_USAGE_TRACKING, WORKSPACE_LIMIT_OVERRIDES&lt;/p&gt;
&lt;p&gt;- Raise default per-hour rate limits&lt;/p&gt;
&lt;p&gt;- Raise minimum full-sync interval to 10 minutes&lt;/p&gt;
</content:encoded><category>Platform</category></item><item><title>Platform 2026-07-30</title><link>https://changelog.getmembrane.com/#platform/2026-07-30/</link><guid isPermaLink="false">platform/2026-07-30</guid><pubDate>Thu, 30 Jul 2026 00:00:00 GMT</pubDate><content:encoded>&lt;ul&gt;
&lt;li&gt;&lt;p&gt;release: SDK 0.29.1&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;fix Dependabot security alerts across manifests&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Handle obsolete data-collection event subscriptions&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
</content:encoded><category>Platform</category></item><item><title>CLI 1.18.2</title><link>https://changelog.getmembrane.com/#cli/1.18.2</link><guid isPermaLink="false">cli/1.18.2</guid><pubDate>Thu, 30 Jul 2026 00:00:00 GMT</pubDate><content:encoded>&lt;h2&gt;Fixed&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;Using apiUri:&lt;/code&gt; now reports the host the CLI actually talks to, and names where that value came from. Every command resolves the API host the same way: &lt;code&gt;--apiUri&lt;/code&gt;, then &lt;code&gt;MEMBRANE_API_URI&lt;/code&gt;, then &lt;code&gt;membrane.config.yml&lt;/code&gt;, then the host stored by &lt;code&gt;membrane login&lt;/code&gt;, then the public cloud. &lt;code&gt;MEMBRANE_API_URI&lt;/code&gt; was previously ignored by every command except &lt;code&gt;membrane mcp&lt;/code&gt;, and an &lt;code&gt;apiUri&lt;/code&gt; declared in &lt;code&gt;membrane.config.yml&lt;/code&gt; was dropped unless the file also carried workspace credentials.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;membrane push&lt;/code&gt; no longer fails with &lt;code&gt;Cannot read properties of undefined (reading &amp;#39;create&amp;#39;)&lt;/code&gt;. The import result is now read by its actual shape instead of by the engine&amp;#39;s reported API version, which does not describe the payload the worker produces. When an engine genuinely returns no comparison, the conflict check reports what came back and how to proceed instead of crashing.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
</content:encoded><category>CLI</category></item><item><title>Platform 2026-07-21</title><link>https://changelog.getmembrane.com/#platform/2026-07-21/</link><guid isPermaLink="false">platform/2026-07-21</guid><pubDate>Tue, 21 Jul 2026 00:00:00 GMT</pubDate><content:encoded>&lt;h2&gt;&lt;strong&gt;Fixes&lt;/strong&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Match workspace-import elements by uuid first so key renames and key swaps import correctly&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Defer auto-create flow instances until connection is READY&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Add per-pull telemetry for all pull strategies to help troubleshooting subscriptions&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Support authOptionKey on external OAuth callbacks&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
</content:encoded><category>Platform</category></item><item><title>Platform 2026-07-14</title><link>https://changelog.getmembrane.com/#platform/2026-07-14/</link><guid isPermaLink="false">platform/2026-07-14</guid><pubDate>Tue, 14 Jul 2026 00:00:00 GMT</pubDate><content:encoded>&lt;h1&gt;Security updates and bug fixing:&lt;/h1&gt;
&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Security updates&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Propagate customState through connect screens&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Fix stale connection errors stopping flow runs&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Show integration global webhook links&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Add workspace-level user roles&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Add actor attribution to element checkpoints&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Prevent duplicate connection on failed connect attempt&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
</content:encoded><category>Platform</category></item><item><title>CLI 1.18.1</title><link>https://changelog.getmembrane.com/#cli/1.18.1</link><guid isPermaLink="false">cli/1.18.1</guid><pubDate>Fri, 12 Jun 2026 00:00:00 GMT</pubDate><content:encoded>&lt;h2&gt;Fixed&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Fixed partial push operations to properly scope to targeted connectors and report accurate pushed counts.&lt;/li&gt;
&lt;/ul&gt;
</content:encoded><category>CLI</category></item><item><title>Platform 2026-06-08</title><link>https://changelog.getmembrane.com/#platform/2026-06-08/</link><guid isPermaLink="false">platform/2026-06-08</guid><pubDate>Mon, 08 Jun 2026 00:00:00 GMT</pubDate><content:encoded>&lt;h2&gt;Added&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;p&gt;You can now connect to arbitrary MCP (Model Context Protocol) servers as a new connection type.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The new Membrane Electron desktop app includes sign-in functionality, in-app agent, and real connect screen over IPC.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Security&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Updated better-auth dependency to version 1.6.14 to address security vulnerability CVE-2026-45337.&lt;/li&gt;
&lt;/ul&gt;
</content:encoded><category>Platform</category></item><item><title>Platform 2026-06-03</title><link>https://changelog.getmembrane.com/#platform/2026-06-03/</link><guid isPermaLink="false">platform/2026-06-03</guid><pubDate>Wed, 03 Jun 2026 00:00:00 GMT</pubDate><content:encoded>&lt;h2&gt;Added&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;p&gt;You can now import workspaces directly from another workspace without exporting to a file first.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Added &lt;code&gt;simplified&lt;/code&gt; flag to workspace import/export operations for faster processing.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;You can now include or exclude connector files during workspace export/import using the &lt;code&gt;includeConnectorFiles&lt;/code&gt; toggle.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Added connector cloning functionality and search-then-connect workflow in CLI and kits.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Agent harness sessions now support snapshotting for better debugging capabilities.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Added CRUD API and console UI for custom agent management.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;DataSchema now supports numeric enum values in the SDK.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Added &lt;code&gt;DISABLE_SELF_SIGNUP&lt;/code&gt; flag to control self-service sign-up access.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Changed&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Billing UI is now hidden for organizations on the Core plan.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Agent autoscaling behavior has been adjusted for better resource management.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Fixed&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Connection credentials are now stored before state recomputation to ensure connections land in READY state.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Pre-populated connector parameters are now preserved in the connect UI.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Identity fields are now applied before storing connection credentials.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Connect screen now displays real error messages and accepts connectorKey parameter.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Connections no longer get stuck in DISCONNECTING state after disconnect completes.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Universal-mirror fields now sync properly to customized field mappings.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Data link table pages now properly surface loading and error states.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Transform variables now include custom output fields in the console.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
</content:encoded><category>Platform</category></item><item><title>Platform 2026-05-15</title><link>https://changelog.getmembrane.com/#platform/2026-05-15/</link><guid isPermaLink="false">platform/2026-05-15</guid><pubDate>Fri, 15 May 2026 00:00:00 GMT</pubDate><content:encoded>&lt;h2&gt;Added&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;p&gt;You can now view per-connection engine credit breakdown in the Usage section with direct links from Billing to Usage pages&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Element exports larger than 6MB are now rejected during workspace import to prevent performance issues&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Import archive download URLs are now stored in async request metadata for better tracking&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Changed&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Connector uploads and element imports now use streaming and byte-batching for better performance&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Workspace element imports now use batched refresh with server-sent events for improved performance&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Fixed&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Console refresh buttons now correctly hit the refresh endpoint instead of reloading the page&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;External event pulls in slow queue now properly finalize on uncaught exceptions&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Connection credentials now refresh properly during pre-flight checks&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Fixed workspace element session context filtering in agent operations&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Agent turn errors now display correctly in message history&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Workspace imports no longer leave orphan universal elements behind&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Fixed checkpoint handling during workspace import processes&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Organization Workspaces table has been restored on the Manage Organization page&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Fixed stale agent prompt navigation issues&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
</content:encoded><category>Platform</category></item><item><title>SDK 0.29.0</title><link>https://changelog.getmembrane.com/#sdk/0.29.0</link><guid isPermaLink="false">sdk/0.29.0</guid><pubDate>Wed, 13 May 2026 00:00:00 GMT</pubDate><content:encoded>&lt;h2&gt;Breaking&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;External event subscription field rename.&lt;/strong&gt; &lt;code&gt;webhookUri&lt;/code&gt; on &lt;code&gt;BaseExternalEventSubscription&lt;/code&gt; is now the &lt;strong&gt;outgoing&lt;/strong&gt; delivery URL for per-subscription webhooks. The incoming Membrane URL (the previous meaning of &lt;code&gt;webhookUri&lt;/code&gt;) has moved to a new read-only &lt;code&gt;incomingWebhookUri&lt;/code&gt; field. If you currently read &lt;code&gt;subscription.webhookUri&lt;/code&gt; to get the Membrane-hosted endpoint, switch to &lt;code&gt;subscription.incomingWebhookUri&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Added&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;You can now scope &lt;code&gt;allowMultipleConnections&lt;/code&gt; to a specific &lt;code&gt;connectorId&lt;/code&gt; or &lt;code&gt;externalAppId&lt;/code&gt; for finer control over connection reuse.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;ActionRun&lt;/code&gt; objects now include an &lt;code&gt;action&lt;/code&gt; snapshot field that preserves the action definition at execution time.&lt;/li&gt;
&lt;li&gt;New &lt;code&gt;lateEvents&lt;/code&gt; option for handling OAuth terminal events that arrive after the popup closes.&lt;/li&gt;
&lt;li&gt;New &lt;code&gt;intent&lt;/code&gt; field on &lt;code&gt;CreateIntegrationRequest&lt;/code&gt; enables intent-based integration creation.&lt;/li&gt;
&lt;li&gt;Integration CRUD tools are now available in the developer MCP kit.&lt;/li&gt;
&lt;li&gt;New per-side (hub / instance) client-token management endpoints and a matching MCP configuration tool.&lt;/li&gt;
&lt;li&gt;Client tokens now record and expose a &lt;code&gt;lastUsedAt&lt;/code&gt; date.&lt;/li&gt;
&lt;li&gt;External Event Types can now be defined independently of a connector.&lt;/li&gt;
&lt;li&gt;Per-subscription outgoing webhook delivery — set the new writable &lt;code&gt;webhookUri&lt;/code&gt; to have Membrane forward events to your endpoint.&lt;/li&gt;
&lt;li&gt;Auto-generated integrations can now be materialized with synthetic keys, so you can act on them like any other integration.&lt;/li&gt;
&lt;li&gt;Workspace exports can now be validated before importing.&lt;/li&gt;
&lt;li&gt;Search actions by integration key.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;/integrations&lt;/code&gt; now de-duplicates across sources (workspace, marketplace, hub) so a single integration appears once.&lt;/li&gt;
&lt;li&gt;Element-import async request metadata now includes the archive download URL.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Changed&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;@membranehq/react&lt;/code&gt; styling internals fully migrated from Panda CSS to Tailwind v3 + &lt;code&gt;tailwind-variants&lt;/code&gt;. Visual parity preserved. The &lt;code&gt;@pandacss/*&lt;/code&gt; peer dependencies are gone. If you override styles by targeting Panda-generated class names, those selectors will need to be updated.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;ActionRun&lt;/code&gt; API restructured. The old &lt;code&gt;POST /actions/:selector/run&lt;/code&gt; endpoint and top-level &lt;code&gt;ActionRun&lt;/code&gt; fields are deprecated.&lt;/li&gt;
&lt;li&gt;Client-token management is now split between hub and instance scopes.&lt;/li&gt;
&lt;li&gt;File-backed read operations now no-op (instead of throwing) on fileless connectors.&lt;/li&gt;
&lt;li&gt;User-facing labels aligned to &amp;quot;Internal Event&amp;quot; terminology across the SDK.&lt;/li&gt;
&lt;li&gt;Element imports larger than 6 MB are now rejected explicitly instead of failing opaquely.&lt;/li&gt;
&lt;li&gt;Connector-published webhook payload slimmed to drop unused fields.&lt;/li&gt;
&lt;li&gt;Flow launch now short-circuits cleanly on throttle and config errors instead of retrying noisily.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Fixed&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Condition operand picker now stays editable for read-only variables.&lt;/li&gt;
&lt;li&gt;Remote-repository connectors are now usable end-to-end.&lt;/li&gt;
&lt;li&gt;Workspace import: orphan universal elements no longer left behind, and checkpoints work correctly mid-import.&lt;/li&gt;
&lt;li&gt;Workspace element counts no longer inflated by deactivated records.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;/connect&lt;/code&gt; correctly resolves synthetic integration keys.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;app-event-trigger&lt;/code&gt; subscription lookups are now scoped by tenant.&lt;/li&gt;
&lt;li&gt;Clearer error message when running an action whose status is still &lt;code&gt;BUILDING&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;name&lt;/code&gt; is no longer required when creating an action.&lt;/li&gt;
&lt;li&gt;CORS cookie origin now accepts any localhost port (dev experience).&lt;/li&gt;
&lt;li&gt;Client-action descriptions now name the integration.&lt;/li&gt;
&lt;/ul&gt;
</content:encoded><category>SDK</category></item><item><title>Platform 2026-04-30</title><link>https://changelog.getmembrane.com/#platform/2026-04-30/</link><guid isPermaLink="false">platform/2026-04-30</guid><pubDate>Thu, 30 Apr 2026 00:00:00 GMT</pubDate><content:encoded>&lt;h2&gt;Added&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Self-hosted instances now have an experimental &amp;quot;Remote repository&amp;quot; setting that enables access to public connectors and actions from Membrane Universe.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Intent-based integration management: similar to connections and actions, you can now create and update integrations using &lt;code&gt;intent&lt;/code&gt; field instead of structured configuration.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;development&lt;/code&gt; and &lt;code&gt;app-use&lt;/code&gt; MCP servers were completely revamped and now make agents much smarter at building and using integrations.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Infinite integrations will be enabled by default starting tomorrow (May 1).&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Searching actions by intent can now be done in integration, connector, or external app contexts (additionally to connection context before)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;allowMultipleConnections&lt;/code&gt; expanded to support &lt;code&gt;connectorId&lt;/code&gt; and &lt;code&gt;externalAppId&lt;/code&gt; parameters.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Developer tokens and tenant tokens now track last-used date for better usage insights.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Experimental: connector-independent External Event Types with direct webhook delivery (without creating flows).&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Changed&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Many UX improvements in agentic connection UI.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Membrane Agent now fetches live workspace elements for more accurate context.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Proxy authentication option moved to the top of connection options for better visibility and simpler default flow.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;ActionRun now includes action snapshot data for improved debugging.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Integration parameter validation only occurs when parameters are provided. If integration parameters are not provided, they will be asked during connection process.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Fixed&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Content-hash client entry prevents 404 errors on stale HTML during deployments.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Clearer error messages when attempting to run actions in BUILDING state.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Action creation no longer requires a name parameter.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Embed and isolated-embed flow editor functionality restored.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Workspace element context now properly included in agent prompts.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Workspace element recalculations now have per-element timeouts to prevent hanging.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Editable sections hidden on synthetic integrations to prevent confusion.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Console now shows toast notifications and warnings when saves fail.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Long unbroken text now wraps properly in connection error modals.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Connection name fallback fixed for external app name in tracking events.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Workspace element counts no longer inflated by deactivated records.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Token-expired errors now properly preserved through auth proxy hub.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Token extraction fixed for &lt;code&gt;/screens/*&lt;/code&gt; endpoints from flat body structure.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Code-mode deletions now properly honored when saving in console.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Flow drafts now preserved across panel navigation.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;App-event-trigger subscription lookup now properly scoped by tenant.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Synthetic integration keys now resolve correctly in &lt;code&gt;/connect&lt;/code&gt; endpoint.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Connection reuse fixed across retries within popup sessions.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Auth-proxy hub client timeout increased to 2 minutes.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Workspace element recalculations now re-enqueue mid-loop to prevent stalling.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
</content:encoded><category>Platform</category></item><item><title>Platform 2026-04-23</title><link>https://changelog.getmembrane.com/#platform/2026-04-23/</link><guid isPermaLink="false">platform/2026-04-23</guid><pubDate>Thu, 23 Apr 2026 00:00:00 GMT</pubDate><content:encoded>&lt;h2&gt;Added&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Agent tools now include a sandboxed bash environment for executing shell commands&lt;/li&gt;
&lt;li&gt;Agent tools restored web fetching capabilities for retrieving web content&lt;/li&gt;
&lt;li&gt;Agent tools added file reading capabilities to the agent loop&lt;/li&gt;
&lt;li&gt;Web search integration via Perplexity/Sonar for enhanced search capabilities&lt;/li&gt;
&lt;li&gt;Auto-generating integrations from public connectors and external apps&lt;/li&gt;
&lt;li&gt;POST /act endpoint for executing actions with reference dispatches, inline API calls, and code execution&lt;/li&gt;
&lt;li&gt;Developer kit with comprehensive CRUD operations and documentation search&lt;/li&gt;
&lt;li&gt;CLI now auto-selects appropriate token scope when creating, updating, or deleting actions&lt;/li&gt;
&lt;li&gt;Connection forms now auto-populate agent instructions with connector-specific playbooks&lt;/li&gt;
&lt;li&gt;Connection forms now auto-persist edits and support CLI patch operations with SSR pre-fill&lt;/li&gt;
&lt;li&gt;&amp;quot;Manage Organizations&amp;quot; button added to workspace selector&lt;/li&gt;
&lt;li&gt;User goal capture during onboarding flow&lt;/li&gt;
&lt;li&gt;Console now captures PostHog logs and connection error logging&lt;/li&gt;
&lt;li&gt;Prototype-without-auth development path with credentials endpoint, CLI support, and MCP tooling&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Changed&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Console package editor now uses explicit save instead of autosave&lt;/li&gt;
&lt;li&gt;Connection editor migrated to snapshot-based editing architecture&lt;/li&gt;
&lt;li&gt;Explore overview page redesigned with improved layout&lt;/li&gt;
&lt;li&gt;Console editing now spreads code-mode changes into save payload instead of nesting&lt;/li&gt;
&lt;li&gt;Action listing by intent now requires connectionId or connectionKey parameter&lt;/li&gt;
&lt;li&gt;Enhanced debugging documentation for membrane instances&lt;/li&gt;
&lt;li&gt;Documentation migrated to Mintlify platform&lt;/li&gt;
&lt;li&gt;Agent now uses Claude Haiku 4.5 for connection-building benchmarks with structural validation&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Removed&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&amp;quot;Create and build with Agent&amp;quot; buttons removed from interface&lt;/li&gt;
&lt;li&gt;In-process code execution path discontinued in favor of sandboxed execution&lt;/li&gt;
&lt;li&gt;Reactive code execution fallback disabled&lt;/li&gt;
&lt;li&gt;Removed &amp;quot;Add to your product&amp;quot; buttons and pages from the platform interface.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Fixed&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Expired client tokens now return 401 status instead of silent 404 errors&lt;/li&gt;
&lt;li&gt;Agent inline tools now align with actual API schemas&lt;/li&gt;
&lt;li&gt;Authentication workspace and tenant caches properly invalidate after changes&lt;/li&gt;
&lt;li&gt;Cookie-based authentication no longer cached from pre-body-parse hooks&lt;/li&gt;
&lt;li&gt;Database migration compatibility issues with DocumentDB resolved&lt;/li&gt;
&lt;li&gt;Connection save button added to Internal API settings&lt;/li&gt;
&lt;li&gt;Flow launches now handle disconnected connections gracefully&lt;/li&gt;
&lt;li&gt;Search functionality drops stale hits and heals orphaned index records&lt;/li&gt;
&lt;li&gt;Auto-generated integrations properly handle synthetic keys&lt;/li&gt;
&lt;li&gt;Connector parameters no longer incorrectly copied from integration to connection&lt;/li&gt;
&lt;li&gt;Code sandbox properly handles trusted files in require() operations&lt;/li&gt;
&lt;li&gt;Agent Docker builds now include required kits workspace&lt;/li&gt;
&lt;li&gt;Security vulnerabilities addressed by updating Fastify to 5.8.5 and protobufjs to 7.5.5&lt;/li&gt;
&lt;li&gt;Fixed an issue where opening a panel in the console would incorrectly trigger the unsaved changes popup.&lt;/li&gt;
&lt;li&gt;Fixed aggregation queries for DocumentDB compatibility by properly handling placeholder replacement in the 2026-04-15-1 aggregation.&lt;/li&gt;
&lt;/ul&gt;
</content:encoded><category>Platform</category></item><item><title>CLI 1.18.0</title><link>https://changelog.getmembrane.com/#cli/1.18.0</link><guid isPermaLink="false">cli/1.18.0</guid><pubDate>Wed, 22 Apr 2026 00:00:00 GMT</pubDate><content:encoded>&lt;h2&gt;Added&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;membrane workspace&lt;/code&gt; prefix for all workspace management commands. This clearly separates workspace tenant vs workspace manager scopes in CLI. All workspace management commands are now prefixed with &lt;code&gt;membrane workspace&lt;/code&gt;. Old commands (like &lt;code&gt;membrane pull&lt;/code&gt;) keep working as before but are marked as deprecated.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Organized auth: the &lt;code&gt;membrane login&lt;/code&gt; command is now the default authentication method for &lt;code&gt;push&lt;/code&gt;, &lt;code&gt;pull&lt;/code&gt;, and &lt;code&gt;sync&lt;/code&gt; operations, providing unified workspace authentication.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Fixed&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;The &lt;code&gt;membrane open&lt;/code&gt; command now uses platform-user sessions and no longer requires workspace credentials to function.&lt;/li&gt;
&lt;/ul&gt;
</content:encoded><category>CLI</category></item><item><title>CLI 1.17.1</title><link>https://changelog.getmembrane.com/#cli/1.17.1</link><guid isPermaLink="false">cli/1.17.1</guid><pubDate>Tue, 21 Apr 2026 00:00:00 GMT</pubDate><content:encoded>&lt;h2&gt;Added&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;membrane push --debug&lt;/code&gt; writes a &lt;code&gt;debug.zip&lt;/code&gt; to the current directory on failure, containing metadata, the serialized error, and the source/target workspace zips — a single artifact you can attach to a support ticket.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;connection patch&lt;/code&gt; command for writing &lt;code&gt;connectorParameters&lt;/code&gt;, &lt;code&gt;input&lt;/code&gt;, or &lt;code&gt;credentials&lt;/code&gt; to an existing connection.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
</content:encoded><category>CLI</category></item><item><title>API Contract 1.12</title><link>https://changelog.getmembrane.com/#api-contract/1.12</link><guid isPermaLink="false">api-contract/1.12</guid><pubDate>Tue, 21 Apr 2026 00:00:00 GMT</pubDate><content:encoded>&lt;h2&gt;Added&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;p&gt;New endpoint &lt;code&gt;POST /act&lt;/code&gt; for executing reusable actions, inline API requests, or custom code.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;New endpoint &lt;code&gt;POST /connections/{elementSelector}/refresh&lt;/code&gt; for triggering backend connection refreshes&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Parameter &lt;code&gt;connectionKey&lt;/code&gt; added to all connection-related endpoints for stable connection identification&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Parameter &lt;code&gt;status&lt;/code&gt; added to &lt;code&gt;GET /external-event-subscriptions&lt;/code&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;GET /integrations&lt;/code&gt; endpoint now supports dynamic generation of integrations based on connectors, external apps, and web search (experimental).&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;connectorParameters&lt;/code&gt; and &lt;code&gt;input&lt;/code&gt; are now retrievable for connections by tenant.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Changed&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;POST /import&lt;/code&gt; schema has been modified&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Added &lt;code&gt;DISCONNECTING&lt;/code&gt; state to connections to make disconnection process more robust and predictable.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
</content:encoded><category>API Contract</category></item><item><title>SDK 0.28.3</title><link>https://changelog.getmembrane.com/#sdk/0.28.3</link><guid isPermaLink="false">sdk/0.28.3</guid><pubDate>Tue, 21 Apr 2026 00:00:00 GMT</pubDate><content:encoded>&lt;h2&gt;Added&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Modified &lt;code&gt;ConnectionApiResponse&lt;/code&gt; to expose new fields related to connection patching&lt;/li&gt;
&lt;/ul&gt;
</content:encoded><category>SDK</category></item><item><title>CLI 1.17.0</title><link>https://changelog.getmembrane.com/#cli/1.17.0</link><guid isPermaLink="false">cli/1.17.0</guid><pubDate>Mon, 20 Apr 2026 00:00:00 GMT</pubDate><content:encoded>&lt;h2&gt;Added&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;credentials&lt;/code&gt; command for simple management of workspace credentials&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;token&lt;/code&gt; command for minting Membrane Tokens&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Actions CRUD now automatically selects token scope (tenant or workspace manager) based on whether action has connection.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;... more changes to support the &lt;a href=&quot;https://github.com/membranehq/agent-skills/tree/main/skills/integration-development&quot;&gt;integration-development skill.&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Fixed&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Action listing by intent now properly requires either &lt;code&gt;connectionId&lt;/code&gt; or &lt;code&gt;connectionKey&lt;/code&gt; parameter.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;MCP server no longer exits immediately after startup, ensuring stable operation.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
</content:encoded><category>CLI</category></item><item><title>SDK 0.28.2</title><link>https://changelog.getmembrane.com/#sdk/0.28.2</link><guid isPermaLink="false">sdk/0.28.2</guid><pubDate>Mon, 20 Apr 2026 00:00:00 GMT</pubDate><content:encoded>&lt;h2&gt;Added&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;New types to support the new CLI release.&lt;/li&gt;
&lt;/ul&gt;
</content:encoded><category>SDK</category></item><item><title>Platform 2026-04-16</title><link>https://changelog.getmembrane.com/#platform/2026-04-16/</link><guid isPermaLink="false">platform/2026-04-16</guid><pubDate>Thu, 16 Apr 2026 00:00:00 GMT</pubDate><content:encoded>&lt;h2&gt;Major Updates&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Membrane dashboard was fully re-designed to simplify understanding of your workspace.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;p&gt;It is now possible to connect any app (including ones found in the web or just typed-in by you) right from the dashboard.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Management of your connected software was refactored and simplified.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Added agent onboarding guides for Claude Code, Codex, Cursor, Copilot, and Windsurf&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Agentic Connection UI underwent many improvement based on usage feedback.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Self-hosted auth no longer depends on Auth0 or any other external services.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Added&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Connections now have &lt;code&gt;key&lt;/code&gt; and can be identified in code-friendly way.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Added workspace instance name display in workspace general setting.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Added support for &lt;code&gt;tenantKey&lt;/code&gt; in client JWT tokens (to replace deprecated &lt;code&gt;id&lt;/code&gt;)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Added &lt;code&gt;flowRunsQueueSizePerConnection&lt;/code&gt; to workspace limits configuration&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Code sandbox jobs are now automatically re-routed when runners are over capacity - it will improve latency in some cases.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Changed&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;p&gt;External apps are now sorted by popularity in the interface&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Connections now start in a disconnected state until successfully authenticated. This only affects behavior of the new &lt;code&gt;connected&lt;/code&gt; field and doesn&amp;#39;t affect the old/deprecated &lt;code&gt;disconnected&lt;/code&gt; field.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Connector versioning now auto-determines latest version by semantic versioning on publish.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Custom code now handles large inputs in batches with out-of-memory protection.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Base64 encoding is now applied to Buffers in custom code JSON output - it should speed up data transfer for large custom code jobs.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Fixed&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;p&gt;OAuth loopback redirect URIs now support any port number per RFC 8252 standards&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Connection refresh button in the console now triggers a backend refresh of the connection&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Auth Proxies admin link now appears correctly on self-hosted installations&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Unsupported event types now show proper error messages instead of crashing&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Flow run errors from individual nodes now properly propagate to the overall flow run&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;OAuth consent page now properly displays tenant dropdown options&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Workspace logo and app icon components now include fallback image handling&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Connection refresh attempts no longer cause authentication errors when retrying disconnected connections&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Schedule triggers no longer fire multiple times due to duplicate node schedules&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Organization invitation acceptance is now idempotent instead of failing silently&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Expert tasks route now displays properly under the activity section&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;External app are now marked as connected immediately after connection creation.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Connection building agent sessions now receive complete context information&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Archived connectors are now properly excluded from workspace exports&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Rate-limited event pulls are now handled proactively with proper backoff strategies&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Queued runs are now properly stopped for misconfigured and disconnected connections&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
</content:encoded><category>Platform</category></item><item><title>CLI 1.16.2</title><link>https://changelog.getmembrane.com/#cli/1.16.2</link><guid isPermaLink="false">cli/1.16.2</guid><pubDate>Thu, 16 Apr 2026 00:00:00 GMT</pubDate><content:encoded>&lt;h2&gt;Fixed&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Fixed a crash caused by missing exports in the CLI package.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Fixed login flow to use the correct API URI when authenticating.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Fixed internal dependency version pinning to ensure stable package installations.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
</content:encoded><category>CLI</category></item><item><title>CLI 1.16.0</title><link>https://changelog.getmembrane.com/#cli/1.16.0</link><guid isPermaLink="false">cli/1.16.0</guid><pubDate>Mon, 13 Apr 2026 00:00:00 GMT</pubDate><content:encoded>&lt;h2&gt;Added&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;p&gt;CLI telemetry events now include organization group information to provide better usage analytics.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Connector token types are now differentiated per MCP type with JWT claims containing settings information.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Fixed&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Workspace imports now use UUID-only matching to prevent import conflicts and improve reliability.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; This change may affect workspaces where elements have different UUIDs across environments. Before pushing, pull from the target workspace first so you can revert if elements don&amp;#39;t match as expected.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Archive file paths now use connector UUIDs instead of names to prevent key collisions when multiple connectors have the same name.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
</content:encoded><category>CLI</category></item><item><title>API Contract 1.11</title><link>https://changelog.getmembrane.com/#api-contract/1.11</link><guid isPermaLink="false">api-contract/1.11</guid><pubDate>Mon, 13 Apr 2026 00:00:00 GMT</pubDate><content:encoded>&lt;h2&gt;Added&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Field &lt;code&gt;usage&lt;/code&gt; (number) added to &lt;code&gt;AgentSessionDto&lt;/code&gt; to track session usage metrics&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Field &lt;code&gt;archivedAt&lt;/code&gt; (string) added to &lt;code&gt;ConnectorDto&lt;/code&gt; to indicate when a connector was archived&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Is is not possible to edit &lt;code&gt;isReadOnly&lt;/code&gt; field when updating org-workspaces.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
</content:encoded><category>API Contract</category></item><item><title>CLI 1.15.1</title><link>https://changelog.getmembrane.com/#cli/1.15.1</link><guid isPermaLink="false">cli/1.15.1</guid><pubDate>Fri, 10 Apr 2026 00:00:00 GMT</pubDate><content:encoded>&lt;h2&gt;Changed&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;feat(cli): add --clientName flag to login for signup source tracking&lt;/li&gt;
&lt;/ul&gt;
</content:encoded><category>CLI</category></item><item><title>CLI 1.15.0</title><link>https://changelog.getmembrane.com/#cli/1.15.0</link><guid isPermaLink="false">cli/1.15.0</guid><pubDate>Tue, 07 Apr 2026 00:00:00 GMT</pubDate><content:encoded>&lt;h2&gt;Changed&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Login flow now uses a simplified single-mode authentication architecture for improved reliability - no more &lt;code&gt;--tenant&lt;/code&gt; parameter (it&amp;#39;s silently ignored).&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Improved &lt;code&gt;membrane status&lt;/code&gt; output.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
</content:encoded><category>CLI</category></item><item><title>Platform 2026-04-03</title><link>https://changelog.getmembrane.com/#platform/2026-04-03/</link><guid isPermaLink="false">platform/2026-04-03</guid><pubDate>Fri, 03 Apr 2026 00:00:00 GMT</pubDate><content:encoded>&lt;h2&gt;Major Changes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Custom code execution engine was refactored to V8 isolates. It makes it much faster and less resource-consuming.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;p&gt;About 5% of custom code requests use functionality not supported by isolates. They fall back to the previous implementation (sandboxed node.js processes).&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;If you self-hoste, you can disable the new custom code engine by adding &lt;code&gt;CUSTOM_CODE_RUNNER_DISABLE_IVM&lt;/code&gt; env variable. This can act as workaround if you hit features not supported by V8 isolate and fallback doesn&amp;#39;t work.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Agentic Connection UI is now used by default instead of &amp;quot;static&amp;quot; connection UI.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Changed&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Connection state tracking simplified with clearer &lt;code&gt;connected&lt;/code&gt; and error status fields.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Non-agentic connection screens now redirect to the improved agentic flow&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Flow descriptions automatically sync between universal and integration-specific versions.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Fixed&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Connect buttons now work properly for connectors without named authentication options&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;OAuth consent page shows helpful messages when revisited after approval&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Connection configuration errors clear automatically after successful recovery&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Action tabs between universal and integration versions navigate correctly&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Console navigation works properly when flow re-runs fail&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Actions and elements can no longer be created without required key fields&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
</content:encoded><category>Platform</category></item><item><title>CLI 1.14.2</title><link>https://changelog.getmembrane.com/#cli/1.14.2</link><guid isPermaLink="false">cli/1.14.2</guid><pubDate>Fri, 03 Apr 2026 00:00:00 GMT</pubDate><content:encoded>&lt;h2&gt;Fixed&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;The &lt;code&gt;membrane connect&lt;/code&gt; command now works consistently with the &lt;code&gt;membrane connection&lt;/code&gt; command.&lt;/li&gt;
&lt;/ul&gt;
</content:encoded><category>CLI</category></item><item><title>API Contract 1.10</title><link>https://changelog.getmembrane.com/#api-contract/1.10</link><guid isPermaLink="false">api-contract/1.10</guid><pubDate>Fri, 03 Apr 2026 00:00:00 GMT</pubDate><content:encoded>&lt;h2&gt;Added&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;New endpoint:&lt;/strong&gt; &lt;code&gt;PATCH /org-workspaces/{id}/user-settings&lt;/code&gt; &lt;strong&gt;for updating user workspace settings&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Changed&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Changes in connection API:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;connected&lt;/code&gt; field on connections that will replace deprecated disconnected field&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;GET /connections&lt;/code&gt; now accepts a &lt;code&gt;connected&lt;/code&gt; query parameter for filtering connections by status&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Connection errors are now more consistent with the rest of elements:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;requestError&lt;/code&gt; contains the latest problem with connectivity that made connection disconnected.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;errors&lt;/code&gt; field has all the errors for connection: requestError and any configuration errors&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;error&lt;/code&gt; field still stays but is deprecated.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
</content:encoded><category>API Contract</category></item><item><title>SDK 0.28.0</title><link>https://changelog.getmembrane.com/#sdk/0.28.0</link><guid isPermaLink="false">sdk/0.28.0</guid><pubDate>Fri, 03 Apr 2026 00:00:00 GMT</pubDate><content:encoded>&lt;h2&gt;Fixed&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Fixed crash when using the SDK in browser environments that don&amp;#39;t support CommonJS require() in the error handling code path.&lt;/li&gt;
&lt;/ul&gt;
</content:encoded><category>SDK</category></item><item><title>CLI 1.14.1</title><link>https://changelog.getmembrane.com/#cli/1.14.1</link><guid isPermaLink="false">cli/1.14.1</guid><pubDate>Thu, 02 Apr 2026 00:00:00 GMT</pubDate><content:encoded>&lt;h2&gt;Fixed&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Authentication now properly re-authenticates with tenant scope when using platform-user tokens&lt;/li&gt;
&lt;li&gt;Removed unnecessary direct dependency that could cause package conflicts&lt;/li&gt;
&lt;/ul&gt;
</content:encoded><category>CLI</category></item><item><title>CLI 1.14.0</title><link>https://changelog.getmembrane.com/#cli/1.14.0</link><guid isPermaLink="false">cli/1.14.0</guid><pubDate>Wed, 01 Apr 2026 00:00:00 GMT</pubDate><content:encoded>&lt;h2&gt;Fixed&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;CLI version is now correctly reported in telemetry data&lt;/li&gt;
&lt;li&gt;Non-agentic connection screens now properly redirect users to the agentic flow&lt;/li&gt;
&lt;/ul&gt;
</content:encoded><category>CLI</category></item><item><title>CLI 1.13.4</title><link>https://changelog.getmembrane.com/#cli/1.13.4</link><guid isPermaLink="false">cli/1.13.4</guid><pubDate>Tue, 31 Mar 2026 00:00:00 GMT</pubDate><content:encoded>&lt;h2&gt;Fixed&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;OAuth token responses now include the user&amp;#39;s email address for proper telemetry tracking&lt;/li&gt;
&lt;/ul&gt;
</content:encoded><category>CLI</category></item></channel></rss>