Skip to content

merge: upstream 393 commits - #313

Open
github-actions[bot] wants to merge 406 commits into
masterfrom
merge/upstream
Open

merge: upstream 393 commits#313
github-actions[bot] wants to merge 406 commits into
masterfrom
merge/upstream

Conversation

@github-actions

@github-actions github-actions Bot commented May 4, 2026

Copy link
Copy Markdown
Contributor

Upstream sync: plasmicapp/plasmic, Apr 27 → Aug 5 (393 commits)

Brings the fork up to date with upstream master. ~95 of the commits are upstream's
Publish/upgrade-internal release noise; the rest is real change. All 114 merge
conflicts are resolved, EP customizations are verified intact, and the fork-integrity
suite has been extended to cover everything EP added since the April merge.

What we get from upstream

Security fixes (the main reason to land this promptly)

  • Postgres data-source sort.field SQL-injection fix
  • SSRF protection: all server fetches of user-supplied URLs go through a new
    fetchUntrusted wrapper (request-filtering-agent)
  • HTML-import CSS url() validation bypass fix
  • Sanitized user text in transactional emails; password-length cap (bcrypt DoS);
    rate-limited grant-revoke; workspace owners can manage data sources

Studio

  • Large Copilot tool buildout (state variables, extract/delete component, tokens,
    animations, data queries, slot targets). Off for regular users: gated behind
    enableUiCopilot/enableChatCopilot, default false, enabled only for
    admin-team-domain accounts. Model defaults moved to Vertex-hosted models.
  • New floating-window comments/chat UI; rich text rebuilt on TemplatedString
    (rendering now shared between canvas and codegen); HostConfig/trusted-host modal
    rewrite; Next 16 canvas fixes (blank artboards, HMR/React debug channel — supersedes
    the reactDebugChannel: false app-host workaround once deployed)

SDK / loader / codegen

  • Breaking renames in the npm packages: unstable__getServerQueriesData
    getPlasmicQueriesData, unstable_usePlasmicQueriesusePlasmicQueries,
    PlasmicClientRootProviderClientPlasmicRootProvider. Deployed storefronts are
    unaffected (the names live in the app's own npm dep; loader wire protocol unchanged,
    v7+ still supported) — but any app bumping its loader version must update. Our
    example app + 0.1.0 field guide need the same update (tracked as follow-up).
  • Loader packages: native fetch (Node ≥18 floor); required-param validation on
    registered functions (EP commerce functions don't set required — unaffected)
  • Codegen: animations support, app-router/SSG fixes, loader cache hit/miss metrics

Server / infra

  • OpenTelemetry distributed tracing for codegen; worker-pool gauges; multiplayer
    connection-leak fixes; serialized loader prefill
  • New env vars: STATIC_URL (optional, defaults to PUBLIC_URL — our single-domain
    deploys unaffected; build-time PUBLICPATH removed, we never set it) and
    SERVER_KEEP_ALIVE_TIMEOUT (default 60s — should be set above the ALB idle timeout
    in terraservices before/with deploy)
  • Amplitude analytics writes removed upstream

Migrations

  • One TypeORM migration: lz4 compression on project_revision.data (auto-applies at
    startup, transparent to rollback)
  • One new bundle migration, renumbered 257 → 258 on our side (we hold
    255-fix-ep-addtocart-import-path); same collision pattern as April, now documented
    as a standing procedure in the runbook

Fork-side work in this PR (beyond conflict resolution)

  • ep-fork-integrity extended with ~20 tests covering post-April customizations that
    had no protection: Redis rate limiters, adminOnly gates, CloudFront invalidation on
    publish, loader URL split + SSR data host, Server-Timing/S3-cache cluster, Datadog
    (no-Sentry) guard, bundle-migration numbering, yarn root + MCP workspaces
  • Kept yarn at root — upstream moved the monorepo to pnpm. Root workspaces,
    resolutions, and yarn scripts preserved; ~76 package scripts that upstream
    pnpm-ified restored to their yarn forms; upstream's pnpm files land inert.
    Full pnpm adoption is a separate decision (recurring per-merge cost until made).
  • Deleted six zombie files (tutorial frags, HtmlImporter, WebImporter,
    AnimationsSection) that upstream removed before the merge-base and that had wrongly
    survived an earlier merge — unreferenced, broken by this merge's import changes
  • @babel/* pinned in root resolutions (lockfile regen had split resolutions and
    broken the cli build); new upstream vitest suites (host, data-sources) routed to
    vitest steps in CI instead of the jest sweep
  • Runbook updated with six new EP-customization entries + the renumbering procedure

Verification

  • ep-fork-integrity 48/48; cm-cors, WebImporter, prefill-cloudfront (CloudFront
    invalidation behavior), ep-loader-fast-path, host+data-sources vitest all pass
  • tsc --noEmit introduces zero errors vs master (master carries ~46 pre-existing)
  • Every EP commit since April that touched upstream-shared files audited: no EP work
    lost; per-file resolution log in docs/internal/merges/PR-313-august-2026.md
  • Note: master's own Tests runs currently fail WAB shards 3/4 (pre-existing). This PR
    runs the full WAB shards via the run-wab-tests label — judge against that baseline.

Merging & deploy

  • Merge with "Create a merge commit" — do NOT squash (preserves upstream ancestry;
    squashing makes every future weekly merge see all 393 commits as conflicts again)
  • Post-merge: integration auto-deploys → verify migration ran → publish-hostless →
    smoke (Studio, EP commerce, storefront golden path, no Copilot for non-admin users)
    → bake ≥1 day (bundle migration 258 makes rollback fix-forward once projects are
    opened) → prod promote + publish-hostless both regions
  • Pre-deploy (outside this repo): audit DevFlagOverrides (adminTeamDomain, pin
    copilot flags false if wanted fully dark); set SERVER_KEEP_ALIVE_TIMEOUT in
    terraservices

@github-actions github-actions Bot changed the title merge: upstream 29 commits merge: upstream 54 commits May 11, 2026
@github-actions github-actions Bot changed the title merge: upstream 54 commits merge: upstream 100 commits May 18, 2026
@github-actions github-actions Bot changed the title merge: upstream 100 commits merge: upstream 121 commits May 25, 2026
sampullman and others added 9 commits May 29, 2026 10:18
GitOrigin-RevId: a3aabeecb8499bb144874843efeebc86b8e220d2
GitOrigin-RevId: 26c82c9cc38e456ffd6cefecd0cfa6e54226cafb
 - create-plasmic-app@0.0.151
 - @plasmicapp/data-sources@1.0.9
 - @plasmicapp/host@2.0.4
 - @plasmicapp/loader-gatsby@2.0.7
 - @plasmicapp/loader-nextjs@2.0.6
 - @plasmicapp/loader-react@2.0.6
 - @plasmicapp/react-web@1.0.10
 - @plasmicapp/react-web-runtime@1.0.10
 - plasmicpkgs-dev@0.0.67
 - @plasmicpkgs/airtable@0.0.261
 - @plasmicpkgs/antd@2.0.169
 - @plasmicpkgs/antd5@0.0.347
 - @plasmicpkgs/plasmic-chakra-ui@0.0.77
 - @plasmicpkgs/cms@0.0.25
 - @plasmicpkgs/commerce@0.0.245
 - @plasmicpkgs/commerce-commercetools@0.0.195
 - @plasmicpkgs/commerce-local@0.0.245
 - @plasmicpkgs/commerce-saleor@0.0.209
 - @plasmicpkgs/commerce-shopify@0.0.253
 - @plasmicpkgs/commerce-swell@0.0.255
 - @plasmicpkgs/contentful@0.0.19
 - @plasmicpkgs/dnd-kit@0.0.24
 - @plasmicpkgs/fetch@0.0.39
 - @plasmicpkgs/framer-motion@0.0.245
 - @plasmicpkgs/plasmic-google-maps@0.0.26
 - @plasmicpkgs/graphql@0.0.33
 - @plasmicpkgs/plasmic-keen-slider@0.0.90
 - @plasmicpkgs/lottie-react@0.0.239
 - @plasmicpkgs/plasmic-mailchimp@0.0.24
 - @plasmicpkgs/plasmic-basic-components@0.0.276
 - @plasmicpkgs/plasmic-calendly@0.0.93
 - @plasmicpkgs/plasmic-cms@0.0.316
 - @plasmicpkgs/plasmic-content-stack@0.0.201
 - @plasmicpkgs/plasmic-contentful@0.0.195
 - @plasmicpkgs/plasmic-embed-css@0.1.231
 - @plasmicpkgs/plasmic-eventbrite@0.0.79
 - @plasmicpkgs/plasmic-giphy@0.0.79
 - @plasmicpkgs/plasmic-graphcms@0.0.218
 - @plasmicpkgs/plasmic-hubspot@0.0.91
 - @plasmicpkgs/plasmic-intercom@0.0.24
 - @plasmicpkgs/plasmic-link-preview@1.0.153
 - @plasmicpkgs/plasmic-nav@0.0.217
 - @plasmicpkgs/plasmic-pigeon-maps@0.0.79
 - @plasmicpkgs/plasmic-query@0.0.266
 - @plasmicpkgs/plasmic-rich-components@1.0.253
 - @plasmicpkgs/plasmic-sanity-io@1.0.226
 - @plasmicpkgs/plasmic-soundcloud@0.0.91
 - @plasmicpkgs/plasmic-strapi@0.1.204
 - @plasmicpkgs/plasmic-tabs@0.0.88
 - @plasmicpkgs/plasmic-typeform@0.0.91
 - @plasmicpkgs/plasmic-wordpress@0.0.174
 - @plasmicpkgs/plasmic-wordpress-graphql@0.0.163
 - @plasmicpkgs/plasmic-yotpo@0.0.90
 - @plasmicpkgs/radix-ui@0.0.105
 - @plasmicpkgs/react-aria@0.0.180
 - @plasmicpkgs/react-audio-player@0.0.74
 - @plasmicpkgs/react-awesome-reveal@3.8.249
 - @plasmicpkgs/react-chartjs-2@1.0.157
 - @plasmicpkgs/react-parallax-tilt@0.0.247
 - @plasmicpkgs/react-quill@1.0.110
 - @plasmicpkgs/react-scroll-parallax@0.0.256
 - @plasmicpkgs/react-slick@0.0.268
 - @plasmicpkgs/react-twitter-widgets@0.0.245
 - @plasmicpkgs/react-youtube@7.13.251
 - @plasmicpkgs/rive@0.0.33
 - @plasmicpkgs/plasmic-spotify@0.0.24
 - @plasmicpkgs/strapi@0.0.23
 - @plasmicpkgs/tiptap@0.0.34
 - @plasmicpkgs/vanilla-cookieconsent@0.0.23
 - @plasmicpkgs/wordpress@0.0.24

GitOrigin-RevId: f9760e92bc673fce71817beaf70d910d4137fbd0
GitOrigin-RevId: 246698e94ad573ef925a5f6893310ceaf8688bdd
GitOrigin-RevId: c8d96bebff5d2755ce970d03b35bfb34112341f4
GitOrigin-RevId: f4166ff66f0d8f96ce5a263a3be34232dcca7a10
This PR adds a new option in the prop editor submenu, to shortcut using data tokens as dynamic value.

GitOrigin-RevId: f235da45f7027085ef60c745803136dc76853334
…#2757)

This PR fixes several issues with arbitrary code in data queries:

- The stored arbitrary code wasn't wrapped in parentheses, which the codebase uses to mark a value as evaluable code rather than a literal. This PR wraps it on store and strips the parentheses before parsing.
- 1 was partly why the Studio crashed when using a Use Data Query action with arbitrary code; 1 fixes this.
- $steps was not available in the data context of the Use Data Query action.
- await was not allowed in arbitrary code inside a Use Data Query action.
- Adds a test for arbitrary code in Use Data Query action

GitOrigin-RevId: 5e7f8db0df11aa40216794d4008788538df4de24
GitOrigin-RevId: ca2cbf553007520ee80b2416e960cf81352811f5
@github-actions github-actions Bot changed the title merge: upstream 121 commits merge: upstream 165 commits Jun 1, 2026
asimkhan73301 and others added 12 commits June 1, 2026 15:58
…operations (#2777)

* feat(ai-mcp): added identify tool for logging AI client metadata

* feat(ai-mcp): add logging and identify function for MCP only

* chore: minor improvements

* chore: rename AiClientMeta field names

* chore: use zod validation for aiClientMeta

* feat(ai-mcp): add tool call instrumentation (#2799)

* chore: rename meta to aiClientMeta

GitOrigin-RevId: 7cb3efc29f1f7fe7179952eb706e704152df49e8
…848)

GitOrigin-RevId: fe2e4854a498ca945f0fd1d4939ff9fc6b68025e
 - @plasmicpkgs/dnd-kit@0.0.25

GitOrigin-RevId: b0b885975ea2aa0ca5974e203a751e249d00e399
GitOrigin-RevId: 5d7971fa4a267d78e274cd41e4dbf8eaa8ebecfd
 - @plasmicpkgs/react-aria@0.0.181

GitOrigin-RevId: cfb299fd038ffa315623b05f2414ffbbdb6e30ba
GitOrigin-RevId: 20130992cd0e8698d67987c245620dcb276332ac
GitOrigin-RevId: 741d54282e85ec9a6f745e9b2eaaba74f3c37305
GitOrigin-RevId: 13556108621efba0a9e44c7af6160d820ac31371
GitOrigin-RevId: 45bf8fc0b06e7655f58a4890f0f5cd20b2325eb6
GitOrigin-RevId: b8b44058ad26d0531cd3c68ebe84e678eacec6fc
* fix: duplicate animations serilaization in getStylesFromVariantSetting

* fix: serialize only applicable styles for tpl

GitOrigin-RevId: 54ad4bc6975185f927c9d519f9f6302242931993
GitOrigin-RevId: f50f7333afb86e4c620d72e9f8309da29a31a5b3
Jenkins and others added 9 commits August 3, 2026 17:26
GitOrigin-RevId: 497162059ce8f56036a73970142b8c63d21ed52d
Deleting the only li of a ul/ol crashed with "Could not find owning component for ul": tryDelete picked the parent ul as the next focus target, but deleteTpl also removes list containers that become empty, so focus landed on a detached node.

Extract deleteTpl's empty-list-container cascade into computeTplsToDelete, which returns the full set of nodes a delete removes. deleteTpl now deletes exactly that set, and tryDelete excludes it when finding the nearest focusable element, so both stay in sync.

GitOrigin-RevId: b7125c975c90d046f6af04bac50ae26d7b06a56e
* feat: copilot read old and new queries

* feat: include function param fields in copilot read

* feat: include object param data query args on read

* fix: comment cleanup and rebase fixes

* fix: address review comments

Intepolated string functions to dynamic-value-input.ts
flatten queries param obj in buildComponentResource

* fix: add unsupported expr sentinel to avoid read confusion

Shows "{{ /* unsupported expression */ }}" instead of empty string when the
expr can't (yet) be serialized.
Clean up some comments
Refactor tests and reuse data source stub function

* fix: address review comments and improve tool description

GitOrigin-RevId: d32cee4e5090eaa8d95abeded00584158a9caef8
* fix: proper fix for nested custom controls

* fix: address review feedback, remove lodash and cleanup

GitOrigin-RevId: 21ea240032c653bd98e66b305617fa09ac3e1e1e
* feat: use indexdb for copilot chat storage

* fix: pr review feedback and cleanup

* feat: cross tab sync for copilot chat local persistence

* fix: address more review comments and refactor validation

* refactor: rename restore-chat-message to chat-serialization and fix conflicts

* fix: block chat before restore and use fake-indexeddb in test

* test: add better concurrent save copilot chat test

GitOrigin-RevId: 17aecdd0ddffb0de41acf3ecceef234b26c53bf8
* fix: avoid resetting grid child position on parent update

* fix: address review comments and avoid creating empty vs

GitOrigin-RevId: deea101983bc036d95c5302a9d1b1d302ea9f081
* fix: sync wab/storybook chrome and fix runner image

* fix: use wab db instead of cypress in data sources test

GitOrigin-RevId: 7c42f9af32a915dd8bc6e5a88747107b76b99069
* [element-interaction-tools]: add support for managing element interactions in copilot

* [element-interaction-tools]: make batch interaction delete order-independent

* [element-interaction-tools]: rebase with master

* [interactions]: fix uniqueness check for new interactions

* [copilot-interactions]: consider canonical representation for copilot interactions schema, and improved read serialization

* [interactions]: refactor interaction schema and added support for builtin actions

* [interactions]: conflicts resolution during rebase with master

* [interactions-params]: consistent param name normalization across read ouptut

* [interactions]: remove buildArgs definition from ACTIONS

* [interactions]: fix handling of repeated element arrays

* [component-exporter]: keep expr serialization in single fucntion

* [chore: fix function comments placement misplaced during rebase, and variable rename

GitOrigin-RevId: b446d80e39ce2be3f1a258bbc8c09064e25683a3
* feat: implement path filtering for copilot data context read

* test: update some copilot read tests to use snapshots

* fix: address reviewer feedback and cleanup

GitOrigin-RevId: a81cd018ef42a0e52f50cfb2f54c6d8afd42611e
@github-actions github-actions Bot changed the title merge: upstream 378 commits merge: upstream 393 commits Aug 6, 2026
Resolves the PR #313 upstream merge. Key resolutions:
- bundle migration renumbering: upstream 257-add-code-component-subtree-prefetching-config -> 258 (EP holds 255)
- keep yarn at root (upstream moved to pnpm); carried upstream dep bumps
- preserve EP loader features: CloudFront invalidation, S3 early cache, Server-Timing, semaphore; threaded upstream source opt + OTel trace propagation
- neverthrow migration: upstream structure + EP Datadog observability
- cypress removal adopted; EP img-optimizer specs retained
Covers the customizations added May-Aug that had no integrity protection:
Redis rate limiters, adminOnly gates, CloudFront invalidation on publish,
loader URL split + SSR data host, Server-Timing/S3-cache perf cluster,
Datadog (no-Sentry) observability, EP bundle migration 255 + unique
numbering, yarn root + MCP workspaces, wab runtime deps, EP branding.
Documents the same in the upstream merge runbook.
…ypes

- Delete six files upstream removed before the merge-base that survived an
  earlier merge (tours/tutorials frags, HtmlImporter, WebImporter,
  AnimationsSection); unreferenced, and this merge removed their imports.
- ep-loader-fast-path.spec: add required source opt.
- projects.spec: add subtreePrefetchingConfig to code-component-meta fixture.

tsc --noEmit now introduces zero errors vs master baseline (master carries
46 pre-existing errors).
@field123 field123 closed this Aug 6, 2026
@field123 field123 reopened this Aug 6, 2026
The object-first (pino-style) call logged the metadata object as the
message under our logger; also clears two pre-existing type errors.
# Conflicts:
#	platform/canvas-packages/package.json
#	platform/canvas-packages/yarn.lock
#	platform/loader-bundle-env/package.json
#	platform/loader-bundle-env/yarn.lock
Upstream's pnpm migration rewrote build/test scripts across packages/ and
plasmicpkgs/ to invoke pnpm, which broke our yarn-based CI (pnpm: not found,
19 package builds failed). Restore each affected script entry to its
merge-base yarn form; react-aria's new test script gets the sibling yarn
form. cpa-out fixtures left as upstream (generated snapshots).
…ctly

- Pin @babel/{core,parser,types,traverse,generator} in root resolutions:
  lockfile regeneration split @babel/types across 7.26/7.29, nesting an
  incompatible copy under packages/cli and breaking its build.
- Upstream moved packages/host and packages/data-sources tests to vitest;
  exclude them from the jest sweep and run host vitest as its own step
  (mirroring the existing data-sources step).
@field123 field123 added the run-wab-tests Runs the wab e2e tests in a PR label Aug 6, 2026
The spec compares prettier-formatted strings, so key order matters. The
fixtures taken from upstream were generated by upstream's migration order;
regenerated via the spec's WRITE_FILES mode under our renumbered chain.
Content is deep-equal (order-only churn); version strings remain 258-*.
@field123 field123 removed the run-wab-tests Runs the wab e2e tests in a PR label Aug 6, 2026
The merge updated platform/live-frame/package.json but its lockfile never
conflicted, so it was missed by the resolution-time regeneration pass.
- ep-rate-limit.spec: mock res lacked Express's res.locals; the middleware's
  res.locals.rateLimit write (added by #295) threw, failed open, and only the
  429-expecting tests noticed. Prod unaffected (Express provides locals).
- auth/routes.spec deleteSelf: POST /api/v1/teams is admin-gated since #331;
  create the team via DbMgr as the user — the test is about deleteSelf.
- auth/routes.spec new upstream tests (password length, grantRevoke): create
  pending invitations so signups pass EP's invitation gate.
@field123 field123 added the run-wab-tests Runs the wab e2e tests in a PR label Aug 6, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

run-wab-tests Runs the wab e2e tests in a PR upstream-merge

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants