merge: upstream 378 commits - #313
Open
github-actions[bot] wants to merge 379 commits into
Open
Conversation
github-actions
Bot
force-pushed
the
merge/upstream
branch
from
May 11, 2026 09:21
7c38a1c to
d195b8b
Compare
github-actions
Bot
force-pushed
the
merge/upstream
branch
from
May 18, 2026 09:23
d195b8b to
1e7a651
Compare
github-actions
Bot
force-pushed
the
merge/upstream
branch
from
May 25, 2026 09:31
1e7a651 to
6db4dab
Compare
GitOrigin-RevId: 0e1172e341228f118037c1c7a402b10410e59852
GitOrigin-RevId: e57957ab0cbdc1ed3fa8fa120eb4ff2e87a05d8f
GitOrigin-RevId: b92672fe89aafedaa37af0b887c844dce3451154
GitOrigin-RevId: 465d3fb7e0a6faec492323da79bd1d1590e6b47d
GitOrigin-RevId: c9d1674394ac0c9ed594b1c8a73268c4ae56e9b4
GitOrigin-RevId: d2b9db7ecb626d9579d8f192e70886d2bece8318
GitOrigin-RevId: b7f0777170a4ffe83d7e04e2748ed0aad16042f3
Reverts commit bc4d9fb Customer report of Preview Mode DOM/CSS regressions (empty cart collapsed width, page-width breakage across components, extra wrapper layer acting as flex row). Timing lines up with #2719, which changed project-level CSS architecture, although it's unclear exactly what is causing their specific issue. GitOrigin-RevId: 2ef3a26f029a7d1ff922fb92d354e2802795ccb0
GitOrigin-RevId: 77a692018ac3eeadf7b140042f083ff007a901fb
GitOrigin-RevId: e67b4877ade6f0c9ecd9514b47553a501b02cebc
GitOrigin-RevId: 32c2b217cedc96b7e876664d0d89a4d315b41275
Rename normalizeHtmlEventHandlerAttrName to toReactEventAttr GitOrigin-RevId: 0d17ec02aac6751c2bc523ac2f626e580db337bf
GitOrigin-RevId: d29453f584b8fb35102abfe4383a5249f27471f8
Double click/edit content for inline blocks edits the inner content instead of selecting the parent/root content GitOrigin-RevId: 175719697a9ff0984a7a551b6a4734e65438802c
GitOrigin-RevId: b0c7f7a7751d0676008fa0045b6cd99269861e7e
GitOrigin-RevId: 406be0172b7bd08682aa94687a29bbc0995854a2
GitOrigin-RevId: 46ce7c77c384c3c5b64e35878503e7f68726e4bc
GitOrigin-RevId: 1a697edf6cc7e8fe4854834fa3ab19bebc5c0344
GitOrigin-RevId: dfe3ca8c981bd168a7c5c11eb110d963114cf33a
Add unit tests for tryParseAsObjectPath, ensuring ?. is not parsed as a path Update dynamicStringSchema description, allowing for static strings with single quotes/back ticks. Refactor/reuse TemplatedStringPropEditorValue instead of DynamicStringValue GitOrigin-RevId: b054d277096a9b45081770c4443d63806e41edf2
GitOrigin-RevId: 07e92ce122e5980f0d18dc29378d02674db8fc37
GitOrigin-RevId: af67b3be2a0bd963b4a30fcae47cf1850d1cd887
GitOrigin-RevId: 52aef9354ca1c4da691d5a0207b0876e5501d974
* feat: support dynamic values in content/props * refactor: rework and consolidate dynamic value system * feat: store dynamic object param args as CompositeExpr * refactor: simplify CompositeExpr copilot parsing * fix: address review comments and refactoring * feat: use zod transform for interpolated dynamic values GitOrigin-RevId: 381ae1c79398429a89f1ee7820b4cd9bbadc69f8
* feat: support repeated element and visibility in copilot * feat: support data-visibility for variants * fix: address more review comments and merge issues * fix: merge conflict, improve tests, and match studio behavior GitOrigin-RevId: 3fe620d5e1a3f2cb8ff1e8ab0994e753c0fadd3e
… (#3070)
Replaces the direct openai SDK call (openai.responses.parse) with the
toLanguageModel + generateText + Output.object pattern already used by
enterprise copilot, which supports OpenAI, Anthropic, and Google Vertex /
Gemini via ADC (no API key needed in GKE).
Provider/model/token settings move to a new phishingCheckModelProviderOpts
devflag (like uiCopilotModelProviderOpts), read from req.devflags so it can
be changed via devflag overrides without a deploy. Default is Google
gemini-2.5-flash-lite on Vertex.
Note the check fails closed: if Gemini is unavailable in the Vertex
project, subdomain checks will block until the devflag is flipped back to
{provider: OpenAI, modelName: gpt-5-nano}.
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
GitOrigin-RevId: a81a92cb49e55b0419bd3261e4f8d1b96e809601
Co-authored-by: CharlieHelps <charlie@charlielabs.ai> GitOrigin-RevId: b4ace88b985f8183154e64893640b9f68b5f63f4
* chore: dedupe esbuild and a few others * chore: upgrade vitest and dedupe one esbuild GitOrigin-RevId: a41c578ec6ba88ea10480fc4be2bd0664c29492d
- @plasmicapp/cli@0.1.367 - create-plasmic-app@0.0.161 - @plasmicapp/data-sources@1.0.21 - @plasmicapp/host@2.0.12 - @plasmicapp/loader-gatsby@2.0.17 - @plasmicapp/loader-nextjs@2.0.18 - @plasmicapp/loader-react@2.0.15 - @plasmicapp/react-web@1.0.26 - @plasmicapp/react-web-runtime@1.0.26 - plasmicpkgs-dev@0.0.80 - @plasmicpkgs/airtable@0.0.269 - @plasmicpkgs/antd@2.0.177 - @plasmicpkgs/antd5@0.0.363 - @plasmicpkgs/plasmic-chakra-ui@0.0.85 - @plasmicpkgs/cms@0.0.33 - @plasmicpkgs/commerce@0.0.253 - @plasmicpkgs/commerce-commercetools@0.0.203 - @plasmicpkgs/commerce-local@0.0.253 - @plasmicpkgs/commerce-saleor@0.0.217 - @plasmicpkgs/commerce-shopify@0.0.261 - @plasmicpkgs/commerce-swell@0.0.263 - @plasmicpkgs/contentful@0.0.27 - @plasmicpkgs/dnd-kit@0.0.33 - @plasmicpkgs/fetch@0.0.47 - @plasmicpkgs/framer-motion@0.0.253 - @plasmicpkgs/plasmic-google-maps@0.0.34 - @plasmicpkgs/graphql@0.0.41 - @plasmicpkgs/plasmic-keen-slider@0.0.98 - @plasmicpkgs/lottie-react@0.0.247 - @plasmicpkgs/plasmic-mailchimp@0.0.32 - @plasmicpkgs/plasmic-basic-components@0.0.284 - @plasmicpkgs/plasmic-calendly@0.0.101 - @plasmicpkgs/plasmic-cms@0.0.324 - @plasmicpkgs/plasmic-content-stack@0.0.209 - @plasmicpkgs/plasmic-contentful@0.0.203 - @plasmicpkgs/plasmic-embed-css@0.1.239 - @plasmicpkgs/plasmic-eventbrite@0.0.87 - @plasmicpkgs/plasmic-giphy@0.0.87 - @plasmicpkgs/plasmic-graphcms@0.0.226 - @plasmicpkgs/plasmic-hubspot@0.0.99 - @plasmicpkgs/plasmic-intercom@0.0.32 - @plasmicpkgs/plasmic-link-preview@1.0.165 - @plasmicpkgs/plasmic-nav@0.0.225 - @plasmicpkgs/plasmic-pigeon-maps@0.0.87 - @plasmicpkgs/plasmic-query@0.0.274 - @plasmicpkgs/plasmic-rich-components@1.0.265 - @plasmicpkgs/plasmic-sanity-io@1.0.234 - @plasmicpkgs/plasmic-soundcloud@0.0.99 - @plasmicpkgs/plasmic-strapi@0.1.212 - @plasmicpkgs/plasmic-tabs@0.0.96 - @plasmicpkgs/plasmic-typeform@0.0.99 - @plasmicpkgs/plasmic-wordpress@0.0.182 - @plasmicpkgs/plasmic-wordpress-graphql@0.0.171 - @plasmicpkgs/plasmic-yotpo@0.0.98 - @plasmicpkgs/radix-ui@0.0.113 - @plasmicpkgs/react-aria@0.0.190 - @plasmicpkgs/react-audio-player@0.0.82 - @plasmicpkgs/react-awesome-reveal@3.8.257 - @plasmicpkgs/react-chartjs-2@1.0.165 - @plasmicpkgs/react-parallax-tilt@0.0.255 - @plasmicpkgs/react-quill@1.0.118 - @plasmicpkgs/react-scroll-parallax@0.0.264 - @plasmicpkgs/react-slick@0.0.276 - @plasmicpkgs/react-twitter-widgets@0.0.253 - @plasmicpkgs/react-youtube@7.13.259 - @plasmicpkgs/rive@0.0.41 - @plasmicpkgs/plasmic-spotify@0.0.32 - @plasmicpkgs/strapi@0.0.31 - @plasmicpkgs/tiptap@0.0.46 - @plasmicpkgs/vanilla-cookieconsent@0.0.31 - @plasmicpkgs/wordpress@0.0.32 GitOrigin-RevId: 0e3cfc541089374f7510394a9c2f902b3c01b3df
GitOrigin-RevId: 524732910b32a258decc326dfd19ee5710ed5caf
github-actions
Bot
force-pushed
the
merge/upstream
branch
from
July 27, 2026 09:14
ff9f708 to
e5d32a5
Compare
…058) * [html-parser]: keep the slot content parsing format consistent with the read format; changed to slot element instead of slot attribute * [html-import]: support slot targets in html import and copilot tools * [html-slot-parsing]: throw meaningful error messages for previous format and invalid <slot-target> usage at for component instance usage. * [html-slot-parsing]: rename WISlot to WISlotTarget and minor requested changes GitOrigin-RevId: a007c3092ccef772e6e91d6c9569e2e59de5bc63
…RL validation bypass) (#3019) * [html-parser]: validate URL in CSS values that goes into RuleSet * [html-parser]: validates url() regardless of the function name casing * [css-urls]: moved logic to shared/css/urls and discarded data uri to keep it consistent GitOrigin-RevId: c27482103bfaf4ccf9ee3f5a89d8d2ea7825825c
…riant styles (#3076) * [style-props-validation]: validate style props against the effective ruleset instead of the targeted variant setting * [style-props-validation]: keep isPositioningValidForTpl name * [style-props-validation]: filter empty values from input styles * [style-props-validation]: use existing exps helpers to create the overlay exps GitOrigin-RevId: 48334d90ecc8d1e9f4593c4dc678cee6b13b73e2
… (#1376) Co-authored-by: CharlieHelps <charlie@charlielabs.ai> GitOrigin-RevId: 5501baca025ca9e2e400b31726fee37240ca2087
GitOrigin-RevId: 7bf88e9f9dc70d59fe55be8f0b83733ea92116f5
This allows copying copilot responses or anything else in the top frame that might be selectable. GitOrigin-RevId: 4128a679da37814796098c937b17a781f5c7c9c0
Dynamic value expressions are evaluated in a sandbox whose ENABLED_GLOBALS whitelist was missing encodeURIComponent/decodeURIComponent/encodeURI/ decodeURI, so calling them threw "ReferenceError: encodeURIComponent is not defined". Also add parseFloat, isNaN, and isFinite, the same class of omission as the already-whitelisted parseInt. The expression parser (shared/eval/expression-parser.ts) imports ENABLED_GLOBALS directly, so it picks up the new globals automatically; no other parallel whitelist exists. Adds eval.spec.ts covering the newly enabled globals and that unknown identifiers still throw ReferenceError. GitOrigin-RevId: 14c4405879df14955470cc2ca00f9b2b6b0dcf20
- Synced copilot chat styles from Plasmic - Added markdown for the assistant's messages only - Simplify and fix FloatingWindow to fix overflowing GitOrigin-RevId: c5422752cdaa2bb58e4b2430691e69cdc68f9304
GitOrigin-RevId: 9bc0fe05d0d566ecf5218cc9c7cb1852065db36c
* fix: update packages and plasmicpkgs metadata * refactor: remove new keywords from packages GitOrigin-RevId: 4d6d0e68a46c4aea2f664f16083f9fd48318f98a
- @plasmicapp/auth-api@0.0.19 - @plasmicapp/auth-react@0.0.30 - @plasmicapp/cli@0.1.369 - create-plasmic-app@0.0.163 - @plasmicapp/data-sources@1.0.22 - @plasmicapp/data-sources-context@0.1.25 - @plasmicapp/host@2.0.13 - @plasmicapp/loader-core@2.0.4 - @plasmicapp/loader-edge@1.0.81 - @plasmicapp/loader-fetcher@2.0.4 - @plasmicapp/loader-gatsby@2.0.18 - @plasmicapp/loader-nextjs@2.0.19 - @plasmicapp/loader-react@2.0.16 - @plasmicapp/loader-splits@1.0.75 - @plasmicapp/nextjs-app-router@1.0.29 - @plasmicapp/prepass@1.0.27 - @plasmicapp/query@0.1.87 - @plasmicapp/react-web@1.0.27 - @plasmicapp/react-web-runtime@1.0.27 - @plasmicapp/watcher@1.0.86 - plasmicpkgs-dev@0.0.81 - @plasmicpkgs/airtable@0.0.270 - @plasmicpkgs/antd@2.0.178 - @plasmicpkgs/antd5@0.0.364 - @plasmicpkgs/plasmic-chakra-ui@0.0.86 - @plasmicpkgs/cms@0.0.34 - @plasmicpkgs/commerce@0.0.254 - @plasmicpkgs/commerce-commercetools@0.0.204 - @plasmicpkgs/commerce-local@0.0.254 - @plasmicpkgs/commerce-saleor@0.0.218 - @plasmicpkgs/commerce-shopify@0.0.262 - @plasmicpkgs/commerce-swell@0.0.264 - @plasmicpkgs/contentful@0.0.28 - @plasmicpkgs/dnd-kit@0.0.34 - @plasmicpkgs/fetch@0.0.48 - @plasmicpkgs/framer-motion@0.0.254 - @plasmicpkgs/plasmic-google-maps@0.0.35 - @plasmicpkgs/graphql@0.0.42 - @plasmicpkgs/plasmic-keen-slider@0.0.99 - @plasmicpkgs/lottie-react@0.0.248 - @plasmicpkgs/plasmic-mailchimp@0.0.33 - @plasmicpkgs/plasmic-basic-components@0.0.285 - @plasmicpkgs/plasmic-calendly@0.0.102 - @plasmicpkgs/plasmic-cms@0.0.325 - @plasmicpkgs/plasmic-content-stack@0.0.210 - @plasmicpkgs/plasmic-contentful@0.0.204 - @plasmicpkgs/plasmic-embed-css@0.1.240 - @plasmicpkgs/plasmic-eventbrite@0.0.88 - @plasmicpkgs/plasmic-giphy@0.0.88 - @plasmicpkgs/plasmic-graphcms@0.0.227 - @plasmicpkgs/plasmic-hubspot@0.0.100 - @plasmicpkgs/plasmic-intercom@0.0.33 - @plasmicpkgs/plasmic-link-preview@1.0.166 - @plasmicpkgs/plasmic-nav@0.0.226 - @plasmicpkgs/plasmic-pigeon-maps@0.0.88 - @plasmicpkgs/plasmic-query@0.0.275 - @plasmicpkgs/plasmic-rich-components@1.0.266 - @plasmicpkgs/plasmic-sanity-io@1.0.235 - @plasmicpkgs/plasmic-soundcloud@0.0.100 - @plasmicpkgs/plasmic-strapi@0.1.213 - @plasmicpkgs/plasmic-tabs@0.0.97 - @plasmicpkgs/plasmic-typeform@0.0.100 - @plasmicpkgs/plasmic-wordpress@0.0.183 - @plasmicpkgs/plasmic-wordpress-graphql@0.0.172 - @plasmicpkgs/plasmic-yotpo@0.0.99 - @plasmicpkgs/radix-ui@0.0.114 - @plasmicpkgs/react-aria@0.0.191 - @plasmicpkgs/react-audio-player@0.0.83 - @plasmicpkgs/react-awesome-reveal@3.8.258 - @plasmicpkgs/react-chartjs-2@1.0.166 - @plasmicpkgs/react-parallax-tilt@0.0.256 - @plasmicpkgs/react-quill@1.0.119 - @plasmicpkgs/react-scroll-parallax@0.0.265 - @plasmicpkgs/react-slick@0.0.277 - @plasmicpkgs/react-twitter-widgets@0.0.254 - @plasmicpkgs/react-youtube@7.13.260 - @plasmicpkgs/rive@0.0.42 - @plasmicpkgs/plasmic-spotify@0.0.33 - @plasmicpkgs/strapi@0.0.32 - @plasmicpkgs/tiptap@0.0.47 - @plasmicpkgs/vanilla-cookieconsent@0.0.32 - @plasmicpkgs/wordpress@0.0.33 GitOrigin-RevId: 92ae1ffd373730493306079c912fbbf443f1c9b3
GitOrigin-RevId: 04efd663b44d6d74e7466845abf8f91eb9806b9e
…(#3049) * Create getStaticUrl to find which subdomain should be used (prod or dev) * Replace getPublicUrl by getStaticUrl in all places that uses a /static path * Add infra changes (dns + LB) * Configure MediaCDN * Change canvas host config to use the new domain as were also using the /static paths of studio subdomain * Revert changes to studio.js.template and StudioHtmlPlugin.ts and applied assetPrefix to change subdomain based in env * Pass static base url as a hash parameter to avoid hard code it into our libraries * Add https://static.plasmic.app and https://static.dev.plasmic.app to csp config * Use the right bucket to serve static * Maybe revert: added policy just to match previous config to not rewrite everything * Remove unused studio.dev config * Change pipeline to start build dev and prod seperately * Change test data to have the new env STATIC_URL filled * Replace PUBLICPATH that was unused by new env STATIC_URL that comes from pipeline * Only build to prod when merge to master or start job to prod * Ensure static url is always set * Always generate/build shared sources * Fix envs to try fix studio-test-playwright tests * Add static base url to canvas frame to fix tests * Add static base url to docs preview, live popout button and preview frame to fix tests * Rename target_prod to should_build_prod * Move comment and improve clarity * Remove uneeded comments in workflow * Remove uneeded comments * Replace every point by getStaticBaseUrl * Add compatibility by adding window.location.origin (pointing to studio.plasmic.app) to getPlasmicStaticBaseUrl * Change fallback to get static base url from origin parameter * Remove uneeded comment * Reorder the pipeline steps order * Change source path variables * Change fallback for staticBaseUrl to origin parameter * Remove uneeded studio-spa and fix connect timeout * Apply dev dns config * Apply prod dns config * Save new studio-static url * Apply dev load balancer config * Apply dev mediacdn config * Apply prod mediacdn config * Apply prod load balancer config * Added studio-static csp to style-src GitOrigin-RevId: d5f8e818b6e39370408253ba315dcb8de872ac52
- @plasmicapp/data-sources@1.0.23 - @plasmicapp/host@2.0.14 - @plasmicapp/loader-gatsby@2.0.19 - @plasmicapp/loader-nextjs@2.0.20 - @plasmicapp/loader-react@2.0.17 - @plasmicapp/react-web@1.0.28 - @plasmicapp/react-web-runtime@1.0.28 - plasmicpkgs-dev@0.0.82 - @plasmicpkgs/airtable@0.0.271 - @plasmicpkgs/antd@2.0.179 - @plasmicpkgs/antd5@0.0.365 - @plasmicpkgs/plasmic-chakra-ui@0.0.87 - @plasmicpkgs/cms@0.0.35 - @plasmicpkgs/commerce@0.0.255 - @plasmicpkgs/commerce-commercetools@0.0.205 - @plasmicpkgs/commerce-local@0.0.255 - @plasmicpkgs/commerce-saleor@0.0.219 - @plasmicpkgs/commerce-shopify@0.0.263 - @plasmicpkgs/commerce-swell@0.0.265 - @plasmicpkgs/contentful@0.0.29 - @plasmicpkgs/dnd-kit@0.0.35 - @plasmicpkgs/fetch@0.0.49 - @plasmicpkgs/framer-motion@0.0.255 - @plasmicpkgs/plasmic-google-maps@0.0.36 - @plasmicpkgs/graphql@0.0.43 - @plasmicpkgs/plasmic-keen-slider@0.0.100 - @plasmicpkgs/lottie-react@0.0.249 - @plasmicpkgs/plasmic-mailchimp@0.0.34 - @plasmicpkgs/plasmic-basic-components@0.0.286 - @plasmicpkgs/plasmic-calendly@0.0.103 - @plasmicpkgs/plasmic-cms@0.0.326 - @plasmicpkgs/plasmic-content-stack@0.0.211 - @plasmicpkgs/plasmic-contentful@0.0.205 - @plasmicpkgs/plasmic-embed-css@0.1.241 - @plasmicpkgs/plasmic-eventbrite@0.0.89 - @plasmicpkgs/plasmic-giphy@0.0.89 - @plasmicpkgs/plasmic-graphcms@0.0.228 - @plasmicpkgs/plasmic-hubspot@0.0.101 - @plasmicpkgs/plasmic-intercom@0.0.34 - @plasmicpkgs/plasmic-link-preview@1.0.167 - @plasmicpkgs/plasmic-nav@0.0.227 - @plasmicpkgs/plasmic-pigeon-maps@0.0.89 - @plasmicpkgs/plasmic-query@0.0.276 - @plasmicpkgs/plasmic-rich-components@1.0.267 - @plasmicpkgs/plasmic-sanity-io@1.0.236 - @plasmicpkgs/plasmic-soundcloud@0.0.101 - @plasmicpkgs/plasmic-strapi@0.1.214 - @plasmicpkgs/plasmic-tabs@0.0.98 - @plasmicpkgs/plasmic-typeform@0.0.101 - @plasmicpkgs/plasmic-wordpress@0.0.184 - @plasmicpkgs/plasmic-wordpress-graphql@0.0.173 - @plasmicpkgs/plasmic-yotpo@0.0.100 - @plasmicpkgs/radix-ui@0.0.115 - @plasmicpkgs/react-aria@0.0.192 - @plasmicpkgs/react-audio-player@0.0.84 - @plasmicpkgs/react-awesome-reveal@3.8.259 - @plasmicpkgs/react-chartjs-2@1.0.167 - @plasmicpkgs/react-parallax-tilt@0.0.257 - @plasmicpkgs/react-quill@1.0.120 - @plasmicpkgs/react-scroll-parallax@0.0.266 - @plasmicpkgs/react-slick@0.0.278 - @plasmicpkgs/react-twitter-widgets@0.0.255 - @plasmicpkgs/react-youtube@7.13.261 - @plasmicpkgs/rive@0.0.43 - @plasmicpkgs/plasmic-spotify@0.0.34 - @plasmicpkgs/strapi@0.0.33 - @plasmicpkgs/tiptap@0.0.48 - @plasmicpkgs/vanilla-cookieconsent@0.0.33 - @plasmicpkgs/wordpress@0.0.34 GitOrigin-RevId: 5df9be31ac3d1161e21e11ea6a183c7444ad1a9a
GitOrigin-RevId: 80836ce383ec248de903d40ef70e544dd18d40cc
github-actions
Bot
force-pushed
the
merge/upstream
branch
from
August 3, 2026 09:14
e5d32a5 to
26d4e2a
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.
Upstream Merge
378 new commits from plasmicapp/plasmic master.
Conflicts to resolve
git fetch origin merge/upstream git checkout merge/upstream # Resolve conflicts, then: git push origin merge/upstreamConflicted files:
Before merging
See Upstream Merge Runbook.