From d07f568ba259e28a83691def1a324c4a64cc2622 Mon Sep 17 00:00:00 2001 From: Eva Marco Date: Thu, 12 Feb 2026 17:01:36 +0100 Subject: [PATCH 1/3] :bug: Avoid modifying shape by apply negative tokens to border radius (#8336) --- CHANGES.md | 1 + .../data/workspace/tokens/application.cljs | 31 ++++++++++--------- 2 files changed, 17 insertions(+), 15 deletions(-) diff --git a/CHANGES.md b/CHANGES.md index 41e8413c55..013fd00c38 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -5,6 +5,7 @@ ### :bug: Bugs fixed +- Fix modifying shapes by apply negative tokens to border radius [Taiga #13317](https://tree.taiga.io/project/penpot/issue/13317) - Fix security issue (Path Traversal Vulnerability) on fonts related RPC method diff --git a/frontend/src/app/main/data/workspace/tokens/application.cljs b/frontend/src/app/main/data/workspace/tokens/application.cljs index c58b8c8135..80421642b1 100644 --- a/frontend/src/app/main/data/workspace/tokens/application.cljs +++ b/frontend/src/app/main/data/workspace/tokens/application.cljs @@ -49,26 +49,27 @@ ([value shape-ids attributes] (update-shape-radius-all value shape-ids attributes nil)) ([value shape-ids _attributes page-id] ; The attributes param is needed to have the same arity that other update functions (when (number? value) - (dwsh/update-shapes shape-ids - (fn [shape] - (ctsr/set-radius-to-all-corners shape value)) - {:reg-objects? true - :ignore-touched true - :page-id page-id - :attrs ctt/border-radius-keys})))) + (let [value (max 0 value)] + (dwsh/update-shapes shape-ids + (fn [shape] + (ctsr/set-radius-to-all-corners shape value)) + {:reg-objects? true + :ignore-touched true + :page-id page-id + :attrs ctt/border-radius-keys}))))) (defn update-shape-radius-for-corners ([value shape-ids attributes] (update-shape-radius-for-corners value shape-ids attributes nil)) ([value shape-ids attributes page-id] (when (number? value) - (dwsh/update-shapes shape-ids - (fn [shape] - (ctsr/set-radius-for-corners shape attributes value)) - {:reg-objects? true - :ignore-touched true - :page-id page-id - :attrs ctt/border-radius-keys})))) - + (let [value (max 0 value)] + (dwsh/update-shapes shape-ids + (fn [shape] + (ctsr/set-radius-for-corners shape attributes value)) + {:reg-objects? true + :ignore-touched true + :page-id page-id + :attrs ctt/border-radius-keys}))))) (defn update-opacity ([value shape-ids attributes] (update-opacity value shape-ids attributes nil)) ([value shape-ids _attributes page-id] ; The attributes param is needed to have the same arity that other update functions From 61f3e090dabe2ab6d4c095630dec6561631116fe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Barrag=C3=A1n=20Merino?= Date: Thu, 12 Feb 2026 11:21:43 +0100 Subject: [PATCH 2/3] :wrench: Fix the plugin bundle build command --- .github/workflows/plugins-deploy-package.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/plugins-deploy-package.yml b/.github/workflows/plugins-deploy-package.yml index cad4b1524f..ae61d3105d 100644 --- a/.github/workflows/plugins-deploy-package.yml +++ b/.github/workflows/plugins-deploy-package.yml @@ -80,7 +80,7 @@ jobs: - name: "Build package for ${{ inputs.plugin_name }}-plugin" working-directory: plugins shell: bash - run: npx nx build ${{ inputs.plugin_name }}-plugin + run: pnpm --filter ${{ inputs.plugin_name }}-plugin build - name: Select Worker name run: | From 8dbb1690612431af6102e38e1a9a8fb8fb6cb1a7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Barrag=C3=A1n=20Merino?= Date: Fri, 13 Feb 2026 14:05:54 +0100 Subject: [PATCH 3/3] :wrench: Fix the plugin style documentation build command --- .github/workflows/plugins-deploy-styles-doc.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/plugins-deploy-styles-doc.yml b/.github/workflows/plugins-deploy-styles-doc.yml index 0ab376cb6e..1e2b39e74d 100644 --- a/.github/workflows/plugins-deploy-styles-doc.yml +++ b/.github/workflows/plugins-deploy-styles-doc.yml @@ -78,7 +78,7 @@ jobs: - name: Build styles working-directory: plugins shell: bash - run: npx nx run example-styles:build + run: pnpm run build:styles-example - name: Select Worker name run: |