Skip to content
Merged

Release #2848

Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
231 commits
Select commit Hold shift + click to select a range
1e72ae1
feat: add ACF repeater field support
girishpanchal30 Apr 15, 2026
10730ae
fix: phpcs
girishpanchal30 Apr 15, 2026
f17e161
enhance dynamic content handling
girishpanchal30 Apr 16, 2026
8099406
fix: button group global settings
girishpanchal30 May 19, 2026
45eb585
Sync branch [skip ci]
pirate-bot May 27, 2026
f05511f
Sync branch [skip ci]
pirate-bot May 27, 2026
3eec786
dev: update packages and workflows (#2818)
Soare-Robert-Daniel May 28, 2026
561d4a0
fix: minor English language typos in form-response-data.php (#2825)
Claude May 28, 2026
95fe104
Initial plan
Codex May 28, 2026
9024ea3
fix: prevent duplicate Custom CSS editor on WP 7.0
Codex May 28, 2026
a7d79a6
refactor: use a modern sortable elements library (#2829)
Soare-Robert-Daniel May 29, 2026
8d06f47
Merge pull request #2774 from Codeinwp/feat/2236
abaicus Jun 4, 2026
4a1b06f
Merge pull request #2812 from Codeinwp/bugfix/2267
abaicus Jun 4, 2026
002bdec
Initial plan
Claude Jun 4, 2026
cb97727
Fix undefined array key 'cat' warning in Live Search
Claude Jun 4, 2026
e9e96c2
Remove failing test that depends on OTTER_PRO_BASEFILE constant
Copilot Jun 4, 2026
bf8d9b1
Merge pull request #2831 from Codeinwp/codex/wp-70-fix-duplicated-css…
abaicus Jun 4, 2026
f2f321e
Merge pull request #2850 from Codeinwp/claude/fix-undefined-array-key…
abaicus Jun 4, 2026
b617069
Add YouTube tutorials card to Otter dashboard
harshitarora-in Jun 4, 2026
8361722
Potential fix for pull request finding
harshitarora-in Jun 4, 2026
6096a95
Potential fix for pull request finding
harshitarora-in Jun 4, 2026
27f211c
dashboard: route active pro users to pro support link
harshitarora-in Jun 5, 2026
4e20676
onboarding: fix final-step checkbox spacing and alignment
harshitarora-in Jun 5, 2026
a9d3c35
onboarding: fix final-step checkbox spacing and modal overflow
harshitarora-in Jun 5, 2026
d9eea2d
fix: proper variables for checks
abaicus Jun 9, 2026
0d6744a
Merge pull request #2852 from Codeinwp/chore/update-support-link
abaicus Jun 9, 2026
a5925e2
refactor: improve YouTube feed usage and dashboard card
abaicus Jun 9, 2026
d9eb967
Merge pull request #2851 from Codeinwp/feature/youtube-playlist-card
abaicus Jun 9, 2026
f826f4d
dev: migrate wp-env to single environment with per-checkout ports
Soare-Robert-Daniel Jun 11, 2026
aa0c271
test: fix e2e selectors broken by the WP 7.0 editor UI
Soare-Robert-Daniel Jun 11, 2026
e67c41c
Potential fix for pull request finding
harshitarora-in Jun 11, 2026
f290872
feat: show meaningful names for atomic wind blocks in List View
ineagu Jun 12, 2026
c7bb373
fix: resolve tag labels lazily and decode entities once
ineagu Jun 12, 2026
767e52b
feat: track block add and remove events via telemetry
ineagu Jun 13, 2026
98eb756
feat: new UI/UX for the visibility conditions (#2857)
abaicus Jun 15, 2026
cafdcf8
feat: modal & ai actions
Soare-Robert-Daniel Jun 11, 2026
2f93cfe
chore: block generator
Soare-Robert-Daniel Jun 11, 2026
404cd47
feat: enhance AI content handling with block attributes and markup de…
Soare-Robert-Daniel Jun 11, 2026
d3b83d6
chore: mini-loop
Soare-Robert-Daniel Jun 15, 2026
63395cf
fix: update block version to 3 (#2833)
Soare-Robert-Daniel Jun 16, 2026
3909bdb
fix: NotFoundError when duplicating slider block (#2834)
Codex Jun 16, 2026
8e06fe9
feat: use WP 7 AI adaptors (#2835)
Soare-Robert-Daniel Jun 16, 2026
ff7701d
feat: add form reply-to (#2858)
Soare-Robert-Daniel Jun 16, 2026
9d210fe
build(deps): bump codeinwp/themeisle-sdk from 3.3.51 to 3.3.52
dependabot[bot] Jun 16, 2026
254e74d
feat: add Cloudflare Turnstile captcha for Form block(#2832)
Codex Jun 16, 2026
58810c5
Merge development into feat/content-ai
Soare-Robert-Daniel Jun 16, 2026
ca984a2
feat: rework pattern library and patterns
abaicus Jun 16, 2026
9b9b63f
feat: adds searchable description for each pattern in design-library
abaicus Jun 16, 2026
02bb24f
test: cover design-library smart filtering and pro pattern upsells
abaicus Jun 16, 2026
e34053a
feat: save form submissions before delivery (#2856)
Soare-Robert-Daniel Jun 16, 2026
1975ea7
chore: fix eslint
abaicus Jun 16, 2026
7cc3118
chore: fix code style
abaicus Jun 16, 2026
c94a2fb
Merge branch 'development' of https://github.com/codeinwp/otter-block…
abaicus Jun 16, 2026
3ad2f5d
chore: adds e2e tests
abaicus Jun 16, 2026
2a98c93
Merge branch 'development' into feat/content-ai
Soare-Robert-Daniel Jun 17, 2026
ebccb1c
Merge pull request #2853 from Codeinwp/fix/onboarding-final-step-chec…
abaicus Jun 17, 2026
e4ec03b
chore: improve tracking to lower memory footprint & account for atomi…
abaicus Jun 17, 2026
38a0ccc
Merge branch 'development' of https://github.com/codeinwp/otter-block…
abaicus Jun 17, 2026
9efdb4c
Merge pull request #2837 from Codeinwp/dependabot/composer/developmen…
abaicus Jun 17, 2026
8f2a178
fix: restore last used prompt in AI content generator from history
Soare-Robert-Daniel Jun 17, 2026
badb2a3
test: align e2e AI mocks with block-generation JSON and keep Pro acti…
Soare-Robert-Daniel Jun 17, 2026
e9d8715
feat: collapse AI block result actions into a single Done action
Soare-Robert-Daniel Jun 17, 2026
9c74c9e
fix: don't hardcode OpenAI/gpt-5-mini in AI block debug logs
Soare-Robert-Daniel Jun 17, 2026
767602a
feat: guide AI block generation toward good design and no duplicate f…
Soare-Robert-Daniel Jun 17, 2026
79018b2
chore: remove AI block development debug logging
Soare-Robert-Daniel Jun 17, 2026
a7e1106
fix: remove noisy CSS save notices and reset saving flag on error
Soare-Robert-Daniel Jun 17, 2026
dbf0793
fix: restore per-prompt placeholder/title in AI content generator
Soare-Robert-Daniel Jun 17, 2026
1721c57
chore: remove verbose comment
abaicus Jun 17, 2026
29118ff
fix: restore AI form generation and harden accordion add-item e2e
Soare-Robert-Daniel Jun 17, 2026
c212a38
fix: render accordion add-item button as content for WP 7.0 iframe
Soare-Robert-Daniel Jun 18, 2026
2277347
fix: add alt attrs (#2859)
Soare-Robert-Daniel Jun 18, 2026
0a1c21f
feat: add AI autoresponder for the Form block (#2869)
Soare-Robert-Daniel Jun 18, 2026
7825c52
Merge pull request #2862 from Codeinwp/feat/track-block-add-remove
abaicus Jun 18, 2026
c49cc85
fix: Maps block markers, loading, zoom, and scroll controls
Soare-Robert-Daniel Jun 18, 2026
586da6a
fix: Maps block deeper zoom and exclusive hover/click popups
Soare-Robert-Daniel Jun 18, 2026
a379cd5
feat: atomic-wind CSS generator warmup
abaicus Jun 18, 2026
caa7de6
test: cover deeper-zoom fix for the Maps block
Soare-Robert-Daniel Jun 18, 2026
944e93a
fix: show "Any block" AI toolbar actions on text blocks
Soare-Robert-Daniel Jun 18, 2026
2991421
test: assert hover tooltip is absent when the toggle is off
Soare-Robert-Daniel Jun 18, 2026
0ec8143
feat: let AI block generation use block colors for a polished result
Soare-Robert-Daniel Jun 18, 2026
868aa1f
test: cover map load speed and marker draggability
Soare-Robert-Daniel Jun 18, 2026
719ad13
Merge pull request #2861 from Codeinwp/feat/atomic-wind-list-view-labels
abaicus Jun 18, 2026
6af0487
Merge branch 'development' of https://github.com/codeinwp/otter-block…
abaicus Jun 18, 2026
53bd7a8
feat: plan-driven, progressive AI block generation
Soare-Robert-Daniel Jun 18, 2026
5c01fbb
fix: recover from transient AI request timeouts
Soare-Robert-Daniel Jun 18, 2026
76cf855
Merge pull request #2870 from Codeinwp/fix/css-saving-notice
abaicus Jun 19, 2026
011e1e2
test: stabilize alt attributes Playwright locators
Copilot Jun 19, 2026
d282082
fix: render Maps add-marker icon as inline SVG in editor
Soare-Robert-Daniel Jun 19, 2026
fb97aef
feat: adds usage-aware install flow [closes Codeinwp/otter-internals#…
abaicus Jun 19, 2026
2ea1888
feat: move AI generation into a polished modal
Soare-Robert-Daniel Jun 19, 2026
5a994be
fix: required checkbox asterisk in email notifications (#2826)
Claude Jun 22, 2026
fd2b617
Merge pull request #2873 from Codeinwp/fix/maps
abaicus Jun 22, 2026
3294dd9
fix: consistently use output buffering for rendering & update the Rat…
abaicus Jun 22, 2026
766b018
Merge branch 'development' into feat/content-ai
Soare-Robert-Daniel Jun 22, 2026
6f41b3a
feat(ai-content): polished section modal, theme palette, safe inserti…
Soare-Robert-Daniel Jun 22, 2026
17705d5
test(ai-content): full-modal section insertion e2e + Atomic Wind stub
Soare-Robert-Daniel Jun 22, 2026
da4047b
feat: add Content Slider block (#2872)
Soare-Robert-Daniel Jun 23, 2026
5546398
fix(ai-content): avoid modal crash after AI block insertion
Soare-Robert-Daniel Jun 23, 2026
95942d9
feat(ai-content): add AI modal versioning
Soare-Robert-Daniel Jun 23, 2026
4adba0b
Merge pull request #2868 from Codeinwp/feat/design-library
abaicus Jun 23, 2026
ea07b20
Merge pull request #2874 from Codeinwp/feat/aw-warmup
abaicus Jun 23, 2026
2eb701b
fix: keyboard arrow navigation through Otter blocks on WP (#2830)
Codex Jun 23, 2026
51b0cb9
fix: modal close button accessibility issues (#2827)
Codex Jun 23, 2026
bc490f9
chore: tweaks
Soare-Robert-Daniel Jun 23, 2026
e9575ec
Merge branch 'development' into feat/content-ai
Soare-Robert-Daniel Jun 23, 2026
83c4d07
chore: update dependencies
abaicus Jun 23, 2026
a732021
Improve AI content transform flow with preview clones and patch edits.
Soare-Robert-Daniel Jun 23, 2026
a75a4e0
Fix AI modal close behavior and add refine quick-action chips.
Soare-Robert-Daniel Jun 23, 2026
435ab96
Merge branch 'development' of https://github.com/codeinwp/otter-block…
abaicus Jun 24, 2026
8ccf5ba
chore: update uninstall popup design
abaicus Jun 24, 2026
5ecc2a3
feat: add support for hiding archive title prefix [closes Codeinwp/ot…
abaicus Jun 24, 2026
a65c0e6
test: fix slider spec ambiguous slash command after Content Slider added
Copilot Jun 24, 2026
ae0ef9f
Add WP AI Client provider settings and simplify modal prompt echo.
Soare-Robert-Daniel Jun 24, 2026
d97a170
Simplify the AI modal and add local structure-edit operations.
Soare-Robert-Daniel Jun 24, 2026
2d3bf4c
Merge pull request #2875 from Codeinwp/feat/uninstall-flow
abaicus Jun 24, 2026
8ffd314
Add tool-calling AI agent with session context and pattern-first crea…
Soare-Robert-Daniel Jun 24, 2026
59aab29
Update AI E2E mocks and specs for the multi-step generation pipeline.
Soare-Robert-Daniel Jun 24, 2026
af05199
Merge branch 'development' into feat/content-ai
Soare-Robert-Daniel Jun 24, 2026
dfa3578
perf: cache Plugin Card plugins_api in a 12h transient
abaicus Jun 25, 2026
85b1f15
perf: split Patterns Library into its own bundle
abaicus Jun 25, 2026
ca5bab7
perf: read blocks.asset.php once, not per block
abaicus Jun 25, 2026
87e0838
perf: drop *.map sourcemaps from the dist zip
abaicus Jun 25, 2026
51025b0
perf: lazy-load the Font Awesome icon list
abaicus Jun 25, 2026
f2a907f
perf: defer dynamic-content and ai-content modules
abaicus Jun 25, 2026
d2b9bcc
chore: trim verbose comments from perf changes
abaicus Jun 25, 2026
1c1f0e3
chore: fix PHPStan issue
abaicus Jun 25, 2026
d756396
chore: move captcha block to apiVersion 3
abaicus Jun 25, 2026
9a24542
fix: atomic-wind generator with top frame handling and preview iframe…
abaicus Jun 25, 2026
13e7629
chore: remove weird default calculation for library column count
abaicus Jun 25, 2026
821f62c
fix: favorite patterns not being consistent between free & pro
abaicus Jun 25, 2026
3789ed3
fix: visual flash when loading pattern previews in design library
abaicus Jun 25, 2026
de89b78
Merge pull request #2882 from Codeinwp/fix/devtools-tab-render-crash
abaicus Jun 25, 2026
9178fe5
Merge branch 'development' of https://github.com/codeinwp/otter-block…
abaicus Jun 25, 2026
19c0077
Merge pull request #2880 from Codeinwp/feat/categ-title-prefix
abaicus Jun 26, 2026
04ff81f
Merge branch 'development' of https://github.com/codeinwp/otter-block…
abaicus Jun 26, 2026
9da5502
Merge branch 'development' into feat/content-ai
Soare-Robert-Daniel Jun 30, 2026
1dd4478
feat: add unified consent-gated editor telemetry
Soare-Robert-Daniel Jun 30, 2026
ca291de
Enable Atomic Wind blocks by default for fresh Otter installs.
Soare-Robert-Daniel Jun 30, 2026
3d6a370
Fix CodeQL and code quality findings from PR review.
Soare-Robert-Daniel Jun 30, 2026
6dad053
Merge pull request #2878 from Codeinwp/fix/woo-builder
abaicus Jun 30, 2026
3c73064
feat: stabilize AI generation & editing
abaicus Jun 30, 2026
8d92d92
chore: prune dead code and polish AI block labels and branding
abaicus Jun 30, 2026
42e354a
feat: match current page style on generate and redesign the AI block …
abaicus Jun 30, 2026
d545451
feat: offer form and map blocks in generation and de-dupe the modal s…
abaicus Jun 30, 2026
d7dea08
chore: remove AI prompt debug logging from editor and server
abaicus Jun 30, 2026
4ca47c4
Use SDK migrator for Atomic Wind default on fresh installs.
Soare-Robert-Daniel Jul 1, 2026
404b118
Fix migration linting and make PHPUnit tests reliable in wp-env.
Soare-Robert-Daniel Jul 1, 2026
e41f4e5
fix: repair AI follow-up edits and polish the generation modal UX
abaicus Jul 1, 2026
8bf9380
fix: prevent oversized rewrites from truncating and stop leaking raw …
abaicus Jul 1, 2026
f9829a8
feat: route style edits through a className splice instead of a whole…
abaicus Jul 1, 2026
e4c6ad6
Set PR build version to patch bump plus branch and SHA suffix.
Soare-Robert-Daniel Jul 1, 2026
3961269
feat: broaden AI style edits to all block types and detect structural…
abaicus Jul 1, 2026
bfee416
chore: code style fixes
abaicus Jul 1, 2026
c934ac3
Add E2E coverage for Atomic Wind SDK migration on admin load.
Soare-Robert-Daniel Jul 1, 2026
dc95a19
chore: cleanup comments
abaicus Jul 1, 2026
06a4929
chore: fix tests
abaicus Jul 1, 2026
a57a334
Simplify Atomic Wind fresh install defaulting
Soare-Robert-Daniel Jul 1, 2026
b1113f0
Reset build URL workflow
Soare-Robert-Daniel Jul 1, 2026
47d750b
chore: lint js
abaicus Jul 1, 2026
c7f3f0c
Merge pull request #2888 from Codeinwp/feat/ai-generation
abaicus Jul 1, 2026
ad877b4
chore: fix e2e tests
abaicus Jul 1, 2026
3680ffd
chore: lint js & remove missing icon reference
abaicus Jul 1, 2026
6bec2cd
Merge pull request #2881 from Codeinwp/chore/performance
abaicus Jul 1, 2026
15d54a0
Merge pull request #2886 from Codeinwp/refactor/atomic-blocks-enabled
abaicus Jul 1, 2026
daaa50f
build(deps): bump codeinwp/themeisle-sdk in /plugins/blocks-animation…
dependabot[bot] Jul 2, 2026
be9d00c
build(deps-dev): bump @playwright/test from 1.60.0 to 1.61.1 (#2901)
dependabot[bot] Jul 2, 2026
7aeb48f
build(deps-dev): bump @wordpress/env from 11.6.0 to 11.10.0 (#2897)
dependabot[bot] Jul 2, 2026
937cfff
build(deps-dev): bump @wordpress/e2e-test-utils-playwright (#2895)
dependabot[bot] Jul 2, 2026
ee60a0d
build(deps-dev): bump php-stubs/woocommerce-stubs from 10.8.0 to 10.9…
dependabot[bot] Jul 2, 2026
724e9da
build(deps-dev): bump eslint from 10.4.0 to 10.6.0 (#2898)
dependabot[bot] Jul 2, 2026
d639da7
build(deps): bump tailwindcss from 4.3.0 to 4.3.2 (#2903)
dependabot[bot] Jul 2, 2026
7fcfd89
Merge branch 'development' into dev/tracking
Soare-Robert-Daniel Jul 2, 2026
1afe1c7
test: cover Form Records admin security gates
Soare-Robert-Daniel Jul 2, 2026
da54141
test: add AI Usage tracker unit tests
Soare-Robert-Daniel Jul 2, 2026
70f8564
test: cover form Reply-To header end-to-end
Soare-Robert-Daniel Jul 2, 2026
aaa30f2
test: cover the visibility conditions rule builder
Soare-Robert-Daniel Jul 2, 2026
dc48f99
dev: set pretty permalinks on wp-env start
Soare-Robert-Daniel Jul 2, 2026
288be1e
fix(security): block protected meta keys in dynamic content getters
Soare-Robert-Daniel Jul 2, 2026
853b35a
fix(security): sanitize test-email recipient in form server
Soare-Robert-Daniel Jul 2, 2026
26df67f
Merge branch 'development' into feat/content-ai
Soare-Robert-Daniel Jul 2, 2026
291c8bf
fix(security): sanitize form SVG uploads by content, not metadata name
Soare-Robert-Daniel Jul 2, 2026
a42d5a6
fix(security): restrict dynamic image fallback to the uploads directory
Soare-Robert-Daniel Jul 2, 2026
fb08377
test: cover the Form Records list table
Soare-Robert-Daniel Jul 2, 2026
e43323a
test: cover the Form Captcha block render
Soare-Robert-Daniel Jul 2, 2026
0e037a6
test: cover the Plugin Card plugins_api cache
Soare-Robert-Daniel Jul 2, 2026
8bccb5a
test: cover Atomic Wind List View labels
Soare-Robert-Daniel Jul 2, 2026
eaa814f
test: assert Live Search renders cleanly without a category
Soare-Robert-Daniel Jul 2, 2026
edd90f7
test: cover Button Group global defaults typography mapping
Soare-Robert-Daniel Jul 2, 2026
1cf24a2
test: self-heal permalinks in the e2e global setup
Soare-Robert-Daniel Jul 2, 2026
13fe22d
fix: dashboard AI settings link and AI provider label wrap
Soare-Robert-Daniel Jul 2, 2026
d4324db
fix(security): validate client IP before use in geolocation lookup
Soare-Robert-Daniel Jul 2, 2026
a9894a6
fix(security): scope o_post_type override to the main search query
Soare-Robert-Daniel Jul 2, 2026
4a6d6ce
fix(security): enable TLS verification for template-cloud source fetch
Soare-Robert-Daniel Jul 2, 2026
e189d74
fix: guard the editor against a corrupt global defaults option
Soare-Robert-Daniel Jul 2, 2026
9c425c0
test: e2e regression for the empty global defaults option
Soare-Robert-Daniel Jul 2, 2026
ec01f93
fix(build): isolate the pro bundle's webpack runtime
Soare-Robert-Daniel Jul 2, 2026
2e5b54c
test: fail fast when free and pro bundles share a webpack runtime
Soare-Robert-Daniel Jul 2, 2026
ba0c3be
fix: keep the global defaults guard PHP 5.6 compatible
Soare-Robert-Daniel Jul 2, 2026
c9742f1
fix(security): escape referenced-block values in review comparison
Soare-Robert-Daniel Jul 2, 2026
99716bd
fix(security): escape plugin-card author field
Soare-Robert-Daniel Jul 2, 2026
553f97b
fix(security): escape Stripe field block output
Soare-Robert-Daniel Jul 2, 2026
9b80e24
Merge pull request #2907 from Codeinwp/test/release-coverage-gaps
Soare-Robert-Daniel Jul 2, 2026
35e74e3
Merge branch 'development' into feat/content-ai
Soare-Robert-Daniel Jul 2, 2026
40005e0
Merge pull request #2908 from Codeinwp/fix/securty
Soare-Robert-Daniel Jul 2, 2026
e3fa53e
build(deps): bump codeinwp/themeisle-sdk in /plugins/blocks-css (#2905)
dependabot[bot] Jul 2, 2026
b404072
build(deps-dev): bump @automattic/babel-plugin-replace-textdomain (#2…
dependabot[bot] Jul 2, 2026
8be769a
Merge pull request #2860 from Codeinwp/feat/content-ai
abaicus Jul 2, 2026
24d3013
fix: resolve WP 7.0 / Gutenberg editor deprecations (#2876)
Soare-Robert-Daniel Jul 3, 2026
483565a
fix: AI generation backwards compat with old core version
abaicus Jul 3, 2026
5563506
Merge branch 'development' of https://github.com/codeinwp/otter-block…
abaicus Jul 3, 2026
583bc17
fix: resolve WordPress Plugin Check security and readme warnings (#2909)
Soare-Robert-Daniel Jul 3, 2026
ab743d2
fix: preserve translator comments in minified bundles and fix leaked …
Soare-Robert-Daniel Jul 3, 2026
5cc0446
Merge branch 'development' into dev/tracking
Soare-Robert-Daniel Jul 3, 2026
94d4d6c
Merge pull request #2911 from Codeinwp/fix/core6.6compat
abaicus Jul 3, 2026
037a769
feat: track AI generation outcome (kept vs discarded) and retry depth
Soare-Robert-Daniel Jul 3, 2026
c3c8993
refactor: dedupe AI telemetry payloads behind a shared trackAiEvent h…
Soare-Robert-Daniel Jul 3, 2026
b1c8336
chore: drop redundant telemetry helper comment
Soare-Robert-Daniel Jul 3, 2026
57b5ec0
feat: flush pending telemetry when the AI modal session ends
Soare-Robert-Daniel Jul 3, 2026
4105ce1
chore: drop telemetry flush comment
Soare-Robert-Daniel Jul 3, 2026
0d0c01a
chore: fix jsdoc alignment lint error in block-health
Soare-Robert-Daniel Jul 3, 2026
ec9c363
chore: fix PHPCS array indentation in class-registration
Soare-Robert-Daniel Jul 3, 2026
ff5f8b4
Merge pull request #2885 from Codeinwp/dev/tracking
abaicus Jul 3, 2026
b18f0b2
fix: use exact match in heading toolbar e2e test
abaicus Jul 3, 2026
3d91b5d
test: expand unit coverage for icon SVG sanitization, dashboard, dyna…
Soare-Robert-Daniel Jul 6, 2026
0c2d097
test: cover blocks animation frontend loading and form record meta bo…
Soare-Robert-Daniel Jul 6, 2026
1142aa2
fix: replace regex tag-stripping with DOM text extraction to resolve …
Soare-Robert-Daniel Jul 6, 2026
82c2999
fix: complete DOM-based tag stripping migration and quote style in la…
Soare-Robert-Daniel Jul 6, 2026
ac206c4
chore: restrict workflow token permissions, drop stale multisite scri…
Soare-Robert-Daniel Jul 6, 2026
2c4b5a9
test: e2e coverage for error rendering on Submission Records (#2913)
Soare-Robert-Daniel Jul 6, 2026
bb7ac42
Merge pull request #2912 from Codeinwp/dev/unit-tests
Soare-Robert-Daniel Jul 6, 2026
055c87a
test: make e2e Pro license state deterministic
Soare-Robert-Daniel Jul 6, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
1 change: 1 addition & 0 deletions .distignore
Original file line number Diff line number Diff line change
Expand Up @@ -42,4 +42,5 @@ tsconfig.json
/plugins
/docs
/build/pro/
*.map
AGENTS.md
94 changes: 0 additions & 94 deletions .eslintrc

This file was deleted.

14 changes: 7 additions & 7 deletions .github/workflows/build-size.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Check out source files
uses: actions/checkout@v4
uses: actions/checkout@v6
with:
ref: ${{ github.base_ref }}
- name: Install composer deps
Expand All @@ -21,7 +21,7 @@ jobs:
- name: Build files
run: npm run analyzer
- name: Upload base stats.json
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@v7
with:
name: base
path: ./build/**/stats.json
Expand All @@ -33,15 +33,15 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Check out source files
uses: actions/checkout@v4
uses: actions/checkout@v6
- name: Install composer deps
run: composer install --no-dev --prefer-dist --no-progress --no-suggest
- name: Install npm deps
run: npm ci
- name: Build files
run: npm run analyzer
- name: Upload base stats.json
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@v7
with:
name: pr
path: ./build/**/stats.json
Expand All @@ -54,14 +54,14 @@ jobs:

steps:
- name: Checkout PR
uses: actions/checkout@v2
uses: actions/checkout@v6
- name: Download base stats
uses: actions/download-artifact@v4
uses: actions/download-artifact@v8
with:
name: base
path: base
- name: Download PR stats
uses: actions/download-artifact@v4
uses: actions/download-artifact@v8
with:
name: pr
path: pr
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/create-build-url.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,8 @@ jobs:
git-sha-8: ${{ steps.retrieve-git-sha-8.outputs.sha8 }}
steps:
- name: Check out source files
uses: actions/checkout@v4
- uses: actions/setup-node@v4
uses: actions/checkout@v6
- uses: actions/setup-node@v6
with:
node-version: 20
cache: "npm"
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/create-tag.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ jobs:
with:
persist-credentials: false
- name: Build files using Node
uses: actions/setup-node@v4
uses: actions/setup-node@v6
with:
node-version: 20
cache: "npm"
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/deploy-stagging.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,8 @@ jobs:
SSH_PATH: ${{ secrets.SSH_PATH }}
steps:
- name: Check out source files
uses: actions/checkout@v4
- uses: actions/setup-node@v4
uses: actions/checkout@v6
- uses: actions/setup-node@v6
with:
node-version: 20
cache: "npm"
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/deploy.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@master
- uses: actions/setup-node@v4
- uses: actions/setup-node@v6
with:
node-version: 20
cache: "npm"
Expand Down
46 changes: 31 additions & 15 deletions .github/workflows/e2e-js.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,11 +10,28 @@ jobs:
e2e:
runs-on: ubuntu-latest
if: github.event.pull_request.draft == false && github.event.pull_request.head.repo.full_name == github.event.pull_request.base.repo.full_name
name: ${{ matrix.name }}
strategy:
fail-fast: false
matrix:
include:
- name: Playwright Blocks Serial
suite: e2e-serial
command: npm run test:e2e:playwright:serial
artifact: artifacts-e2e-serial
- name: Playwright Blocks Parallel
suite: e2e-parallel
command: npm run test:e2e:playwright:parallel
artifact: artifacts-e2e-parallel
- name: Performance
suite: performance
command: npm run test:performance
artifact: artifacts-performance

steps:
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
- uses: actions/checkout@v6
- uses: actions/setup-node@v6
with:
node-version: 20
cache: "npm"
Expand All @@ -30,46 +47,45 @@ jobs:
run: |
npm run build-dev

- name: Create License File
run: |
printf "{\"key\":\"${{ secrets.OTTER_PRO_LICENSE }}\"}" > license.json

- name: Setup WP Env
run: |
npm run wp-env start

- name: Install Playwright
run: |
npm install -g playwright-cli
npx playwright install
npx playwright install --with-deps chromium

- name: Playwright Blocks
- name: Run ${{ matrix.name }}
env:
PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD: true
run: |
npm run test:e2e:playwright && echo "PLAYWRIGHT_SUCCESS=true" >> $GITHUB_ENV || echo "PLAYWRIGHT_SUCCESS=false" >> $GITHUB_EN
continue-on-error: true
${{ matrix.command }}

- name: Performance check
- name: Print performance results
if: matrix.suite == 'performance'
run: |
npm run test:performance
cat artifacts/post-editor.performance-results.json

- name: Upload tests artifacts
if: always()
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@v7
with:
name: artifact
name: ${{ matrix.artifact }}
path: ./artifacts
retention-days: 1

- name: Print the results
if: matrix.suite == 'performance'
run: |
RESULTS=$(jq -r 'to_entries|map("\(.key): \(.value)")|join(", ")' artifacts/post-editor.performance-results.json)
FLAKY_TEST_STATUS="Playwright Test Status: $PLAYWRIGHT_SUCCESS"
FLAKY_TEST_STATUS="Playwright Test Status: See serial and parallel matrix jobs"
echo "::set-output name=PERFORMANCE_OUTPUT::$RESULTS"
echo "::set-output name=FLAKY_TEST_STATUS::$FLAKY_TEST_STATUS"
id: summary

- name: Comment
if: matrix.suite == 'performance'
uses: NejcZdovc/comment-pr@v2
with:
file: "e2e-summary.md"
Expand Down
7 changes: 5 additions & 2 deletions .github/workflows/plugin-check.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,19 +8,22 @@ concurrency:
group: ${{ github.workflow }}-${{ github.head_ref || github.ref }}
cancel-in-progress: true

permissions:
contents: read

jobs:
plugin-check:
name: WordPress.org Guidelines Check
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6

- name: Neutralize wp-env override
run: |
echo '{}' > .wp-env.override.json

- name: Setup Node.js
uses: actions/setup-node@v4
uses: actions/setup-node@v6
with:
node-version: 20
cache: 'npm'
Expand Down
3 changes: 3 additions & 0 deletions .github/workflows/tastewp.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,9 @@ on:
tags:
- "*"

permissions:
contents: read

jobs:
create-wp-for-testing:
runs-on: ubuntu-latest
Expand Down
5 changes: 4 additions & 1 deletion .github/workflows/test-js.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,9 @@ on:
pull_request:
types: [opened, synchronize, ready_for_review]

permissions:
contents: read

jobs:
run:
runs-on: ubuntu-latest
Expand All @@ -14,7 +17,7 @@ jobs:
with:
persist-credentials: false
- name: Build files using 20
uses: actions/setup-node@v4
uses: actions/setup-node@v6
with:
node-version: 20
cache: "npm"
Expand Down
23 changes: 18 additions & 5 deletions .github/workflows/test-php.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,9 @@ on:
pull_request:
types: [opened, synchronize, ready_for_review]

permissions:
contents: read

jobs:
phplint:
name: Phplint
Expand All @@ -16,7 +19,7 @@ jobs:
php-version: "7.2"
extensions: simplexml
- name: Checkout source code
uses: actions/checkout@v4
uses: actions/checkout@v6
- name: Install composer
run: composer install --prefer-dist --no-progress --no-suggest
- name: Run PHPCS
Expand All @@ -33,9 +36,19 @@ jobs:
php-version: "7.4"
extensions: simplexml, mysql
- name: Checkout source code
uses: actions/checkout@v4
uses: actions/checkout@v6
- name: Install composer
run: composer install --prefer-dist --no-progress --no-suggest
- uses: actions/setup-node@v6
with:
node-version: 22
cache: "npm"
- name: npm ci
run: |
npm ci
- name: npm run build
run: |
npm run build
- name: PHPStan Static Analysis
run: composer phpstan

Expand All @@ -45,10 +58,10 @@ jobs:
if: github.event.pull_request.draft == false && github.event.pull_request.head.repo.full_name == github.event.pull_request.base.repo.full_name
steps:
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
- uses: actions/checkout@v6
- uses: actions/setup-node@v6
with:
node-version: 20
node-version: 22
cache: "npm"
# run composer install
- name: Install composer
Expand Down
Loading
Loading