mirror of
https://github.com/penpot/penpot.git
synced 2026-09-09 12:19:58 -04:00
Compare commits
base: mirror/penpot:staging
mirror/penpot:develop
mirror/penpot:niwinz-enable-closed-schemas-for-rpc
mirror/penpot:staging
mirror/penpot:hiru-validate-changes
mirror/penpot:issue-11586-add-plugins-validation
mirror/penpot:elenatorro-fix-image-bounds-on-wasm-export
mirror/penpot:eva-add-menu-DS-component
mirror/penpot:juan-link-share-th
mirror/penpot:mavalroot-nitrate-not-configured-page
mirror/penpot:issue-11579
mirror/penpot:niwinz-jobs-refactor-phase-a
mirror/penpot:elenatorro-fix-wasm-text-decorator
mirror/penpot:superalex-wasm-svg-layer-blur
mirror/penpot:elenatorro-11462-fix-text-flattening
mirror/penpot:superalex-wasm-svg-text-strokes
mirror/penpot:issue-11530
mirror/penpot:bameda-ci-release-admin-console-image-on-dockerhub
mirror/penpot:issue-11573
mirror/penpot:superalex-wasm-svg-image-strokes
mirror/penpot:niwinz-telemetry-fixes
mirror/penpot:niwinz-agentic-flow-changes
mirror/penpot:eva-fix-project-name
mirror/penpot:issue-11562
mirror/penpot:issue-11415
mirror/penpot:eva-fix-connected-library-title
mirror/penpot:bameda-nitrate-on-docker
mirror/penpot:hiru-add-more-tests
mirror/penpot:issue-11546
mirror/penpot:hiru-tokens-in-libs
mirror/penpot:elenatorro-test-stroke-joins
mirror/penpot:elenatorro-fix-empty-text-persistence
mirror/penpot:UniversalWill-fix/oidc-public-uri-subpath
mirror/penpot:issue-11426-management-api-timing-attack
mirror/penpot:eva-fix-viewer-request
mirror/penpot:issue-11067
mirror/penpot:eva-fix-create-typography-with-nil
mirror/penpot:bameda-csp-security-headers
mirror/penpot:elenatorro-refactor-dedup
mirror/penpot:main
mirror/penpot:bameda-dhi-migration-docker-image-for-media-processor
mirror/penpot:bameda-csp-inline-script-hashes
mirror/penpot:issue-11455
mirror/penpot:eva-add-new-favicons
mirror/penpot:luis-toolbar-accesibility-improvements
mirror/penpot:juan-slides-release-2.18
mirror/penpot:issue-11424
mirror/penpot:niwinz-sse-content-negotiation
mirror/penpot:issue-11397
mirror/penpot:yong2bba-fix/image-fill-export-preload
mirror/penpot:issue-11392
mirror/penpot:hiru-fix-sync-components-reorder
mirror/penpot:bameda-ci-use-ref-slug-instead-of-gh-ref
mirror/penpot:niwinz-bug-experiment-1
mirror/penpot:andy-persist-comments-visibility
mirror/penpot:elenatorro-fix-fast-path-return
mirror/penpot:feature/graph-consumer-contract
mirror/penpot:luis-9842-apply-tokens-stroke-per-side
mirror/penpot:elenatorro-render-perf-counters
mirror/penpot:elenatorro-tile-repaint-culling
mirror/penpot:niwinz-performance-tests
mirror/penpot:eva-fix-delete-node
mirror/penpot:issue-11092
mirror/penpot:ladybenko-fix-dependency-draftjs
mirror/penpot:issue-11084
mirror/penpot:niwinz-bugfixes-batch-1
mirror/penpot:issue-10995
mirror/penpot:niwinz-binfile-optimizations
mirror/penpot:eva-fix-color-on-recover-mail
mirror/penpot:issue-10948
mirror/penpot:ladybenko-gh-10840-fix-selrect-not-updated
mirror/penpot:elenatorro-13939-exporter-wasm-worker-pool
mirror/penpot:elenatorro-fix-stroke-path-caps
mirror/penpot:palba-fix-bad-nitrate-url
mirror/penpot:elenatorro-exporter-metrics
mirror/penpot:issue-10587
mirror/penpot:niwinz-scripts-improvements
mirror/penpot:ladybenko-ui-scale
mirror/penpot:poc-japanese-text
mirror/penpot:superalex-graph-arrow-api
mirror/penpot:tmp-issue-pending-review
mirror/penpot:copilot/research-penpot-architecture
mirror/penpot:elenatorro-test-multiple-borders
mirror/penpot:issue-10621
mirror/penpot:elenatorro-13939-headless-exporter
mirror/penpot:superalex-wasm-svg-export
mirror/penpot:azazeln28-refactor-performance-structures
mirror/penpot:eva-fix-text-layout-item-menu
mirror/penpot:elenatorro-13939-render-wasm-headless
mirror/penpot:elenatorro-test-pencil-loader-webgl-render
mirror/penpot:elenatorro-fix-panning
mirror/penpot:elenatorro-fix-empty-tiles
mirror/penpot:elenatorro-test-render-changes-spiral
mirror/penpot:elenatorro-simplify-render
mirror/penpot:elenatorro-improve-tiles-glitch
mirror/penpot:yms-improve-mcp-configuration
mirror/penpot:elenatorro-fix-ui-performance
mirror/penpot:elenatorro-modifier-perf-fixes
mirror/penpot:elenatorro-improve-text-performance
mirror/penpot:azazeln28-refactor-performance
mirror/penpot:ladybenko-gh-10060-fix-ttf-variants
mirror/penpot:azazeln28-refactor-backbuffer-crop-cache
mirror/penpot:elenatorro-10002-simplify-stroke-to-path
mirror/penpot:10008-add-rpc-proxy-methods-for-exporter-service
mirror/penpot:elenatorro-fix-mask-blur
mirror/penpot:elenatorro-test-export-pdf
mirror/penpot:azazeln28-refactor-render-pipeline-1
mirror/penpot:azazeln28-feat-tile-atlas
mirror/penpot:elenatorro-test-wasm-rulers
mirror/penpot:moorsecopers99-fix/token-validation-group-nodes
mirror/penpot:superalex-update-skia-version-0.97.0
mirror/penpot:fc-8590-oidc-selfhosted-setup
mirror/penpot:elenatorro-14213-fix-race-on-trying-to-persist-file
mirror/penpot:fc-8897-disable-ipv6-listen-env
mirror/penpot:palba-fix-copy-pasted-swapped
mirror/penpot:elenatorro-review-texture-leaks
mirror/penpot:palba-fix-14177
mirror/penpot:fix-drag
mirror/penpot:elenatorro-fix-drag-end
mirror/penpot:elenatorro-14100-atlas-backdrop
mirror/penpot:elenatorro-14127-add-render-wasm-skill
mirror/penpot:elenatorro-revert-drag-fix
mirror/penpot:elenatorro-fix-text-drag
mirror/penpot:elenatorro-improve-drag-on-start
mirror/penpot:xaviju-share-agents
mirror/penpot:elenatorro-improve-performance-on-dragging-3
mirror/penpot:azazeln28-refactor-render-pipeline
mirror/penpot:elenatorro-fix-shape-multi-selection
mirror/penpot:elenatorro-improve-react-events
mirror/penpot:niwinz-perf-refactor-part-3
mirror/penpot:elenatorro-improve-dragging-sprites
mirror/penpot:elenatorro-research-pan
mirror/penpot:palba-fix-ellipsis
mirror/penpot:azazeln28-performance-optimizations
mirror/penpot:elenatorro-improve-render-on-pan-zoom-2
mirror/penpot:elenatorro-improve-drag-drop-perf
mirror/penpot:elenatorro-13972-fix-thumbnails-generation-after-propagation
mirror/penpot:test-atlas-rect-invalidation
mirror/penpot:palba-fix-nitrate-leave-org-bad-check
mirror/penpot:eva-implement-token-inputs-on-text
mirror/penpot:elenatorro-13830-fix-layer-lag
mirror/penpot:superalex-atlas-2-loading
mirror/penpot:elenatorro-fix-boolean-panic-error
mirror/penpot:elenatorro-fix-path-creation
mirror/penpot:elenatorro-improve-initial-load
mirror/penpot:ladybenko-13351-wasm-rulers
mirror/penpot:niwinz-staging-refactor-path-content-attr
mirror/penpot:hiru-migrate-bad-name-tokens
mirror/penpot:elenatorro-improve-webgl-not-supported-error
mirror/penpot:juanfran-org-selector-visibility
mirror/penpot:azazeln28-apply-styles-to-selection-apply-serialization
mirror/penpot:elenatorro-13282-perf-chunked-async-tile-rebuild
mirror/penpot:palba-nitrate-create-team-in-org2
mirror/penpot:palba-nitrate-create-team-in-org
mirror/penpot:copilot/update-pnpm-in-submodules
mirror/penpot:eva-fix-br-token
mirror/penpot:fix-ipv6-frontend
mirror/penpot:ladybenko-13302-fix-token-highlight
mirror/penpot:juanfran-delete-nx
mirror/penpot:juanfran-ts-ui
mirror/penpot:ladybenko-update-tmux-render-wasm
mirror/penpot:azazeln28-issue-13012-sometimes-font-variant-id-keeps-a-mixed-invalid-value
mirror/penpot:azazeln28-wip-memory-64
mirror/penpot:eva-fix-sticky-buttons
mirror/penpot:superalex-graph-wasm
mirror/penpot:marina-menu-covered-by-toolbar
mirror/penpot:juanfran-test-ts
mirror/penpot:niwinz-develop-nginx-cache-esm
mirror/penpot:palba-fix-missing-slots
mirror/penpot:eva-replace-offset-names
mirror/penpot:eva-replace-token-creation-forms-4
mirror/penpot:azazeln28-fix-letter-spacing-not-applying-to-paragraphs
mirror/penpot:azazeln28-add-text-editor-v2-tests
mirror/penpot:niwinz-develop-migrate-to-pnpm
mirror/penpot:niwinz-develop-pnpm-experiments
mirror/penpot:niwinz-experiments-clipboard
mirror/penpot:azazeln28-refactor-clipboard-behavior
mirror/penpot:niwinz-develop-poc-nitrate-module
mirror/penpot:palba-nitrate-playground
mirror/penpot:eva-fix-shadow-token-ui
mirror/penpot:niwinz-staging-improve-error-handling
mirror/penpot:eva-create-new-token-input
mirror/penpot:palba-fix-variants-switch-layouts
mirror/penpot:palba-fix-alt-duplicate-variant
mirror/penpot:eva-bugfix-tooltip-position
mirror/penpot:niwinz-staging-hotfix-5
mirror/penpot:niwinz-staging-library-changes
mirror/penpot:juan-component-switch
mirror/penpot:andy-docs-selfhost-disclaimer
mirror/penpot:azazeln28-feat-caret-position
mirror/penpot:niwinz-staging-library-fixes
mirror/penpot:azazeln28-fix-text-auto-width-height-layout
mirror/penpot:azazeln28-fix-text-editor-v2
mirror/penpot:tokens-studio-hyma/112-add-text-decoration-token
mirror/penpot:tokens-studio-hyma/113-text-case
mirror/penpot:andy-highlight-font-search
mirror/penpot:azazeln28-fix-issue-7372-view-mode-pointer-selecting
mirror/penpot:azazeln28-feat-split-dwarf
mirror/penpot:add-numeric-tokens
mirror/penpot:revert-6463-develop
mirror/penpot:rsanchez-docs-metadata-improvements
mirror/penpot:azazeln28-wip-performance-research
mirror/penpot:azazeln28-fix-text-editor-copy-paste
mirror/penpot:niwinz-non-block-ui-token
mirror/penpot:juan-filename-status
mirror/penpot:eva-niwinz-fix-thumbnails-when-token-set-change
mirror/penpot:renderer-pocs
mirror/penpot:piweek-webgl2-renderer
mirror/penpot:skia-renderer-experiment
mirror/penpot:azazeln28-webgl2-renderer
mirror/penpot:hiru-rxspy
mirror/penpot:niwinz-poc-webauthn
mirror/penpot:hiru-refactor-sync
mirror/penpot:hiru-fix-library-updates
mirror/penpot:hiru-fix-alt-tab-out
mirror/penpot:hiru-sync-nightmare
mirror/penpot:niwinz-admin
mirror/penpot:hiru-transient-changes
mirror/penpot:hiru-transient-changes-old
mirror/penpot:niwinz-namedtuple
mirror/penpot:2.17.2
mirror/penpot:2.17.2-RC2
mirror/penpot:2.17.2-RC1
mirror/penpot:2.17.1
mirror/penpot:2.18.0-RC1
mirror/penpot:2.17.1-RC5
mirror/penpot:2.17.1-RC4
mirror/penpot:2.17.1-RC3
mirror/penpot:2.17.1-RC2
mirror/penpot:2.17.1-RC1
mirror/penpot:2.17.0
mirror/penpot:2.17.0-RC6
mirror/penpot:2.17.0-RC5
mirror/penpot:2.17.0-RC4
mirror/penpot:2.17.0-RC3
mirror/penpot:2.17.0-RC2
mirror/penpot:2.16.2
mirror/penpot:2.16.2-RC1
mirror/penpot:2.16.1
mirror/penpot:2.16.1-RC4
mirror/penpot:2.16.1-RC3
mirror/penpot:2.17.0-RC1
mirror/penpot:2.16.1-RC2
mirror/penpot:2.16.1-RC1
mirror/penpot:2.16.0
mirror/penpot:2.16.0-RC13
mirror/penpot:2.16.0-RC12
mirror/penpot:2.16.0-RC11
mirror/penpot:2.16.0-RC10
mirror/penpot:2.16.0-RC9
mirror/penpot:2.16.0-RC8
mirror/penpot:2.16.0-RC7
mirror/penpot:2.16.0-RC6
mirror/penpot:2.16.0-RC5
mirror/penpot:2.16.0-RC4
mirror/penpot:2.16.0-RC3
mirror/penpot:2.15.4
mirror/penpot:2.15.4-RC4
mirror/penpot:2.15.4-RC3
mirror/penpot:2.15.4-RC2
mirror/penpot:2.15.4-RC1
mirror/penpot:2.15.3
mirror/penpot:2.15.2
mirror/penpot:2.15.2-RC1
mirror/penpot:2.15.1
mirror/penpot:2.15.0
mirror/penpot:2.15.0-RC10
mirror/penpot:2.15.0-RC9
mirror/penpot:2.15.0-RC8
mirror/penpot:2.15.0-RC7
mirror/penpot:2.15.0-RC6
mirror/penpot:2.15.0-RC5
mirror/penpot:2.14.5
mirror/penpot:2.15.0-RC4
mirror/penpot:2.16.0-RC2
mirror/penpot:2.15.0-RC3
mirror/penpot:2.15.0-RC2
mirror/penpot:2.14.5-RC2
mirror/penpot:2.14.5-RC1
mirror/penpot:2.14.4
mirror/penpot:2.15.0-RC1
mirror/penpot:2.16.0-RC1
mirror/penpot:2.14.3
mirror/penpot:2.14.3-RC1
mirror/penpot:2.14.2
mirror/penpot:2.14.1
mirror/penpot:2.14.1-RC1
mirror/penpot:2.14.0
mirror/penpot:2.14.0-RC5
mirror/penpot:2.14.0-RC4
mirror/penpot:2.14.0-RC3
mirror/penpot:2.14.0-RC2
mirror/penpot:2.13.3
mirror/penpot:2.14.0-RC1
mirror/penpot:2.13.2
mirror/penpot:2.13.1
mirror/penpot:2.13.0
mirror/penpot:2.13.0-RC11
mirror/penpot:2.13.0-RC10
mirror/penpot:2.13.0-RC9
mirror/penpot:2.13.0-RC8
mirror/penpot:2.13.0-RC7
mirror/penpot:2.13.0-RC6
mirror/penpot:2.13.0-RC5
mirror/penpot:2.13.0-RC4
mirror/penpot:2.13.0-RC3
mirror/penpot:2.13.0-RC2
mirror/penpot:2.13.0-RC1
mirror/penpot:2.12.1
mirror/penpot:2.12.0-RC5
mirror/penpot:2.12.0
mirror/penpot:2.12.0-RC4
mirror/penpot:2.12.0-RC3
mirror/penpot:2.12.0-RC2
mirror/penpot:2.12.0-RC1
mirror/penpot:2.11.1
mirror/penpot:2.11.0
mirror/penpot:2.11.0-RC7
mirror/penpot:2.11.0-RC6
mirror/penpot:2.11.0-RC5
mirror/penpot:2.11.0-RC4
mirror/penpot:2.11.0-RC3
mirror/penpot:2.11.0-RC2
mirror/penpot:2.10.2-RC2
mirror/penpot:2.10.2-RC1
mirror/penpot:2.10.1
mirror/penpot:2.11.0-RC1
mirror/penpot:2.10.1-RC3
mirror/penpot:2.10.1-RC2
mirror/penpot:2.10.1-RC1
mirror/penpot:2.10.0
mirror/penpot:2.10.0-RC5
mirror/penpot:2.10.0-RC4
mirror/penpot:2.10.0-RC3
mirror/penpot:2.10.0-RC2
mirror/penpot:2.10.0-RC1
mirror/penpot:2.9.1-RC1
mirror/penpot:2.9.0-RC9
mirror/penpot:2.9.0
mirror/penpot:2.9.0-RC8
mirror/penpot:2.9.0-RC7
mirror/penpot:2.9.0-RC6
mirror/penpot:2.9.0-RC5
mirror/penpot:2.9.0-RC4
mirror/penpot:2.9.0-RC3
mirror/penpot:2.8.1
mirror/penpot:2.8.1-RC2
mirror/penpot:2.9.0-RC2
mirror/penpot:2.9.0-RC1
mirror/penpot:2.8.1-RC1
mirror/penpot:2.8.0
mirror/penpot:2.8.0-RC9
mirror/penpot:2.8.0-RC8
mirror/penpot:2.8.0-RC7
mirror/penpot:2.8.0-RC6
mirror/penpot:2.8.0-RC5
mirror/penpot:2.8.0-RC4
mirror/penpot:2.8.0-RC3
mirror/penpot:2.8.0-RC2
mirror/penpot:2.8.0-RC1
mirror/penpot:2.7.2
mirror/penpot:2.7.2-RC1
mirror/penpot:2.7.1
mirror/penpot:2.7.0
mirror/penpot:2.7.0-RC7
mirror/penpot:2.7.0-RC6
mirror/penpot:2.7.0-RC5
mirror/penpot:2.7.0-RC4
mirror/penpot:2.7.0-RC3
mirror/penpot:2.7.0-RC2
mirror/penpot:2.6.2
mirror/penpot:2.7.0-RC1
mirror/penpot:2.6.2-RC5
mirror/penpot:2.6.2-RC4
mirror/penpot:2.6.2-RC3
mirror/penpot:2.6.2-RC2
mirror/penpot:2.6.1-RC2
mirror/penpot:2.6.2-RC1
mirror/penpot:2.6.1
mirror/penpot:2.6.1-RC1
mirror/penpot:2.6.0
mirror/penpot:2.6.0-RC6
mirror/penpot:2.6.0-RC5
mirror/penpot:2.6.0-RC4
mirror/penpot:2.6.0-RC3
mirror/penpot:2.6.0-RC2
mirror/penpot:2.5.4-RC3
mirror/penpot:2.6.0-RC1
mirror/penpot:2.5.4
mirror/penpot:2.5.4-RC2
mirror/penpot:2.5.4-RC1
mirror/penpot:2.5.3-RC1
mirror/penpot:2.5.3
mirror/penpot:2.5.2-RC5
mirror/penpot:2.5.2
mirror/penpot:2.5.2-RC4
mirror/penpot:2.5.2-RC3
mirror/penpot:2.5.2-RC2
mirror/penpot:2.5.2-RC1
mirror/penpot:2.5.1
mirror/penpot:2.5.0-RC5
mirror/penpot:2.5.0-RC4
mirror/penpot:2.5.0-RC3
mirror/penpot:2.5.0-RC2
mirror/penpot:2.5.0-RC1
mirror/penpot:2.4.3
mirror/penpot:2.4.3-RC2
mirror/penpot:2.4.3-RC1
mirror/penpot:2.4.2
mirror/penpot:2.4.1
mirror/penpot:2.4.0
mirror/penpot:2.4.0-RC10
mirror/penpot:2.4.0-RC9
mirror/penpot:2.4.0-RC8
mirror/penpot:2.4.0-RC7
mirror/penpot:2.4.0-RC6
mirror/penpot:2.4.0-RC5
mirror/penpot:2.4.0-RC4
mirror/penpot:2.4.0-RC3
mirror/penpot:2.4.0-RC2
mirror/penpot:2.3.3
mirror/penpot:2.4.0-RC1
mirror/penpot:2.5.0-DEV
mirror/penpot:2.3.2
mirror/penpot:2.3.1
mirror/penpot:2.3.0-RC9
mirror/penpot:2.3.0
mirror/penpot:2.3.0-RC8
mirror/penpot:2.3.0-RC7
mirror/penpot:2.3.0-RC6
mirror/penpot:2.3.0-RC5
mirror/penpot:2.3.0-RC4
mirror/penpot:2.3.0-RC3
mirror/penpot:2.3.0-RC2
mirror/penpot:2.3.0-RC1
mirror/penpot:2.2.1
mirror/penpot:2.2.1-RC2
mirror/penpot:2.2.1-RC1
mirror/penpot:2.2.0
mirror/penpot:2.2.0-RC7
mirror/penpot:2.1.5-RC5
mirror/penpot:2.2.0-RC6
mirror/penpot:2.1.5-RC4
mirror/penpot:2.2.0-RC5
mirror/penpot:2.1.5-RC3
mirror/penpot:2.2.0-RC4
mirror/penpot:2.1.5-RC2
mirror/penpot:2.2.0-RC3
mirror/penpot:2.1.5-RC1
mirror/penpot:2.2.0-RC2
mirror/penpot:2.1.4
mirror/penpot:2.1.4-RC2
mirror/penpot:2.1.4-RC1
mirror/penpot:2.1.3
mirror/penpot:2.1.2
mirror/penpot:2.1.2-RC3
mirror/penpot:2.1.2-RC2
mirror/penpot:2.1.2-RC1
mirror/penpot:2.1.1-RC2
mirror/penpot:2.1.1
mirror/penpot:2.1.1-RC1
mirror/penpot:2.1.0
mirror/penpot:rm
mirror/penpot:2.1-RC2
mirror/penpot:2.1.0-RC2
mirror/penpot:2.1.0-RC1
mirror/penpot:2.1-RC1
mirror/penpot:2.0.3
mirror/penpot:2.0.2
mirror/penpot:2.0.1
mirror/penpot:2.0.0
mirror/penpot:pre-lazy-loading
mirror/penpot:1.19.3
mirror/penpot:1.19.2
mirror/penpot:1.19.1
mirror/penpot:1.19.0
mirror/penpot:1.18.6
mirror/penpot:1.18.5
mirror/penpot:1.18.4
mirror/penpot:1.18.3
mirror/penpot:1.18.1
mirror/penpot:1.18.0
mirror/penpot:1.17.3
mirror/penpot:1.17.2
mirror/penpot:1.17.1
mirror/penpot:1.17.0
mirror/penpot:staging-ambulance-1
mirror/penpot:1.16.2-beta
mirror/penpot:1.16.1-beta
mirror/penpot:1.16.0-beta
mirror/penpot:1.15.4-beta
mirror/penpot:1.15.3-beta
mirror/penpot:1.15.2-beta
mirror/penpot:1.15.1-beta
mirror/penpot:1.15.0-beta
mirror/penpot:1.14.1-beta
mirror/penpot:1.14.0-beta
mirror/penpot:1.13.7-beta
mirror/penpot:1.13.6-beta
mirror/penpot:1.13.5-beta
mirror/penpot:1.13.4-beta
mirror/penpot:1.13.3-beta
mirror/penpot:1.13.1-beta
mirror/penpot:1.13.2-beta
mirror/penpot:1.13.0-beta
mirror/penpot:1.12.4-beta
mirror/penpot:1.12.3-beta
mirror/penpot:1.12.2-beta
mirror/penpot:1.12.1-beta
mirror/penpot:1.12.0-beta
mirror/penpot:1.11.2-beta
mirror/penpot:1.11.1-beta
mirror/penpot:1.11.0-beta
mirror/penpot:1.10.4-beta
mirror/penpot:1.10.3-beta
mirror/penpot:1.10.2-beta
mirror/penpot:1.10.1-beta
mirror/penpot:1.10.0-beta
mirror/penpot:1.9.0-alpha
mirror/penpot:1.8.2-alpha
mirror/penpot:1.8.1-alpha
mirror/penpot:1.8.0-alpha
mirror/penpot:1.7.4-alpha
mirror/penpot:1.7.3-alpha
mirror/penpot:1.7.2-alpha
mirror/penpot:1.7.1-alpha
mirror/penpot:1.7.0-alpha
mirror/penpot:1.6.5-alpha
mirror/penpot:1.6.4-alpha
mirror/penpot:1.6.3-alpha
mirror/penpot:1.6.2-alpha
mirror/penpot:1.6.1-alpha
mirror/penpot:1.6.0-alpha
mirror/penpot:1.5.4-alpha
mirror/penpot:1.5.3-alpha
mirror/penpot:1.5.2-alpha
mirror/penpot:1.5.1-alpha
mirror/penpot:1.5.0-alpha
mirror/penpot:1.4.1-alpha
mirror/penpot:1.4.0-alpha
mirror/penpot:1.4.0-dev
mirror/penpot:1.3.0-alpha
mirror/penpot:1.2.0-alpha
mirror/penpot:1.1.0-alpha
mirror/penpot:1.0.0-alpha
mirror/penpot:0.1.0
mirror/penpot:0.0.0
...
compare: mirror/penpot:issue-11546
mirror/penpot:develop
mirror/penpot:niwinz-enable-closed-schemas-for-rpc
mirror/penpot:staging
mirror/penpot:hiru-validate-changes
mirror/penpot:issue-11586-add-plugins-validation
mirror/penpot:elenatorro-fix-image-bounds-on-wasm-export
mirror/penpot:eva-add-menu-DS-component
mirror/penpot:juan-link-share-th
mirror/penpot:mavalroot-nitrate-not-configured-page
mirror/penpot:issue-11579
mirror/penpot:niwinz-jobs-refactor-phase-a
mirror/penpot:elenatorro-fix-wasm-text-decorator
mirror/penpot:superalex-wasm-svg-layer-blur
mirror/penpot:elenatorro-11462-fix-text-flattening
mirror/penpot:superalex-wasm-svg-text-strokes
mirror/penpot:issue-11530
mirror/penpot:bameda-ci-release-admin-console-image-on-dockerhub
mirror/penpot:issue-11573
mirror/penpot:superalex-wasm-svg-image-strokes
mirror/penpot:niwinz-telemetry-fixes
mirror/penpot:niwinz-agentic-flow-changes
mirror/penpot:eva-fix-project-name
mirror/penpot:issue-11562
mirror/penpot:issue-11415
mirror/penpot:eva-fix-connected-library-title
mirror/penpot:bameda-nitrate-on-docker
mirror/penpot:hiru-add-more-tests
mirror/penpot:issue-11546
mirror/penpot:hiru-tokens-in-libs
mirror/penpot:elenatorro-test-stroke-joins
mirror/penpot:elenatorro-fix-empty-text-persistence
mirror/penpot:UniversalWill-fix/oidc-public-uri-subpath
mirror/penpot:issue-11426-management-api-timing-attack
mirror/penpot:eva-fix-viewer-request
mirror/penpot:issue-11067
mirror/penpot:eva-fix-create-typography-with-nil
mirror/penpot:bameda-csp-security-headers
mirror/penpot:elenatorro-refactor-dedup
mirror/penpot:main
mirror/penpot:bameda-dhi-migration-docker-image-for-media-processor
mirror/penpot:bameda-csp-inline-script-hashes
mirror/penpot:issue-11455
mirror/penpot:eva-add-new-favicons
mirror/penpot:luis-toolbar-accesibility-improvements
mirror/penpot:juan-slides-release-2.18
mirror/penpot:issue-11424
mirror/penpot:niwinz-sse-content-negotiation
mirror/penpot:issue-11397
mirror/penpot:yong2bba-fix/image-fill-export-preload
mirror/penpot:issue-11392
mirror/penpot:hiru-fix-sync-components-reorder
mirror/penpot:bameda-ci-use-ref-slug-instead-of-gh-ref
mirror/penpot:niwinz-bug-experiment-1
mirror/penpot:andy-persist-comments-visibility
mirror/penpot:elenatorro-fix-fast-path-return
mirror/penpot:feature/graph-consumer-contract
mirror/penpot:luis-9842-apply-tokens-stroke-per-side
mirror/penpot:elenatorro-render-perf-counters
mirror/penpot:elenatorro-tile-repaint-culling
mirror/penpot:niwinz-performance-tests
mirror/penpot:eva-fix-delete-node
mirror/penpot:issue-11092
mirror/penpot:ladybenko-fix-dependency-draftjs
mirror/penpot:issue-11084
mirror/penpot:niwinz-bugfixes-batch-1
mirror/penpot:issue-10995
mirror/penpot:niwinz-binfile-optimizations
mirror/penpot:eva-fix-color-on-recover-mail
mirror/penpot:issue-10948
mirror/penpot:ladybenko-gh-10840-fix-selrect-not-updated
mirror/penpot:elenatorro-13939-exporter-wasm-worker-pool
mirror/penpot:elenatorro-fix-stroke-path-caps
mirror/penpot:palba-fix-bad-nitrate-url
mirror/penpot:elenatorro-exporter-metrics
mirror/penpot:issue-10587
mirror/penpot:niwinz-scripts-improvements
mirror/penpot:ladybenko-ui-scale
mirror/penpot:poc-japanese-text
mirror/penpot:superalex-graph-arrow-api
mirror/penpot:tmp-issue-pending-review
mirror/penpot:copilot/research-penpot-architecture
mirror/penpot:elenatorro-test-multiple-borders
mirror/penpot:issue-10621
mirror/penpot:elenatorro-13939-headless-exporter
mirror/penpot:superalex-wasm-svg-export
mirror/penpot:azazeln28-refactor-performance-structures
mirror/penpot:eva-fix-text-layout-item-menu
mirror/penpot:elenatorro-13939-render-wasm-headless
mirror/penpot:elenatorro-test-pencil-loader-webgl-render
mirror/penpot:elenatorro-fix-panning
mirror/penpot:elenatorro-fix-empty-tiles
mirror/penpot:elenatorro-test-render-changes-spiral
mirror/penpot:elenatorro-simplify-render
mirror/penpot:elenatorro-improve-tiles-glitch
mirror/penpot:yms-improve-mcp-configuration
mirror/penpot:elenatorro-fix-ui-performance
mirror/penpot:elenatorro-modifier-perf-fixes
mirror/penpot:elenatorro-improve-text-performance
mirror/penpot:azazeln28-refactor-performance
mirror/penpot:ladybenko-gh-10060-fix-ttf-variants
mirror/penpot:azazeln28-refactor-backbuffer-crop-cache
mirror/penpot:elenatorro-10002-simplify-stroke-to-path
mirror/penpot:10008-add-rpc-proxy-methods-for-exporter-service
mirror/penpot:elenatorro-fix-mask-blur
mirror/penpot:elenatorro-test-export-pdf
mirror/penpot:azazeln28-refactor-render-pipeline-1
mirror/penpot:azazeln28-feat-tile-atlas
mirror/penpot:elenatorro-test-wasm-rulers
mirror/penpot:moorsecopers99-fix/token-validation-group-nodes
mirror/penpot:superalex-update-skia-version-0.97.0
mirror/penpot:fc-8590-oidc-selfhosted-setup
mirror/penpot:elenatorro-14213-fix-race-on-trying-to-persist-file
mirror/penpot:fc-8897-disable-ipv6-listen-env
mirror/penpot:palba-fix-copy-pasted-swapped
mirror/penpot:elenatorro-review-texture-leaks
mirror/penpot:palba-fix-14177
mirror/penpot:fix-drag
mirror/penpot:elenatorro-fix-drag-end
mirror/penpot:elenatorro-14100-atlas-backdrop
mirror/penpot:elenatorro-14127-add-render-wasm-skill
mirror/penpot:elenatorro-revert-drag-fix
mirror/penpot:elenatorro-fix-text-drag
mirror/penpot:elenatorro-improve-drag-on-start
mirror/penpot:xaviju-share-agents
mirror/penpot:elenatorro-improve-performance-on-dragging-3
mirror/penpot:azazeln28-refactor-render-pipeline
mirror/penpot:elenatorro-fix-shape-multi-selection
mirror/penpot:elenatorro-improve-react-events
mirror/penpot:niwinz-perf-refactor-part-3
mirror/penpot:elenatorro-improve-dragging-sprites
mirror/penpot:elenatorro-research-pan
mirror/penpot:palba-fix-ellipsis
mirror/penpot:azazeln28-performance-optimizations
mirror/penpot:elenatorro-improve-render-on-pan-zoom-2
mirror/penpot:elenatorro-improve-drag-drop-perf
mirror/penpot:elenatorro-13972-fix-thumbnails-generation-after-propagation
mirror/penpot:test-atlas-rect-invalidation
mirror/penpot:palba-fix-nitrate-leave-org-bad-check
mirror/penpot:eva-implement-token-inputs-on-text
mirror/penpot:elenatorro-13830-fix-layer-lag
mirror/penpot:superalex-atlas-2-loading
mirror/penpot:elenatorro-fix-boolean-panic-error
mirror/penpot:elenatorro-fix-path-creation
mirror/penpot:elenatorro-improve-initial-load
mirror/penpot:ladybenko-13351-wasm-rulers
mirror/penpot:niwinz-staging-refactor-path-content-attr
mirror/penpot:hiru-migrate-bad-name-tokens
mirror/penpot:elenatorro-improve-webgl-not-supported-error
mirror/penpot:juanfran-org-selector-visibility
mirror/penpot:azazeln28-apply-styles-to-selection-apply-serialization
mirror/penpot:elenatorro-13282-perf-chunked-async-tile-rebuild
mirror/penpot:palba-nitrate-create-team-in-org2
mirror/penpot:palba-nitrate-create-team-in-org
mirror/penpot:copilot/update-pnpm-in-submodules
mirror/penpot:eva-fix-br-token
mirror/penpot:fix-ipv6-frontend
mirror/penpot:ladybenko-13302-fix-token-highlight
mirror/penpot:juanfran-delete-nx
mirror/penpot:juanfran-ts-ui
mirror/penpot:ladybenko-update-tmux-render-wasm
mirror/penpot:azazeln28-issue-13012-sometimes-font-variant-id-keeps-a-mixed-invalid-value
mirror/penpot:azazeln28-wip-memory-64
mirror/penpot:eva-fix-sticky-buttons
mirror/penpot:superalex-graph-wasm
mirror/penpot:marina-menu-covered-by-toolbar
mirror/penpot:juanfran-test-ts
mirror/penpot:niwinz-develop-nginx-cache-esm
mirror/penpot:palba-fix-missing-slots
mirror/penpot:eva-replace-offset-names
mirror/penpot:eva-replace-token-creation-forms-4
mirror/penpot:azazeln28-fix-letter-spacing-not-applying-to-paragraphs
mirror/penpot:azazeln28-add-text-editor-v2-tests
mirror/penpot:niwinz-develop-migrate-to-pnpm
mirror/penpot:niwinz-develop-pnpm-experiments
mirror/penpot:niwinz-experiments-clipboard
mirror/penpot:azazeln28-refactor-clipboard-behavior
mirror/penpot:niwinz-develop-poc-nitrate-module
mirror/penpot:palba-nitrate-playground
mirror/penpot:eva-fix-shadow-token-ui
mirror/penpot:niwinz-staging-improve-error-handling
mirror/penpot:eva-create-new-token-input
mirror/penpot:palba-fix-variants-switch-layouts
mirror/penpot:palba-fix-alt-duplicate-variant
mirror/penpot:eva-bugfix-tooltip-position
mirror/penpot:niwinz-staging-hotfix-5
mirror/penpot:niwinz-staging-library-changes
mirror/penpot:juan-component-switch
mirror/penpot:andy-docs-selfhost-disclaimer
mirror/penpot:azazeln28-feat-caret-position
mirror/penpot:niwinz-staging-library-fixes
mirror/penpot:azazeln28-fix-text-auto-width-height-layout
mirror/penpot:azazeln28-fix-text-editor-v2
mirror/penpot:tokens-studio-hyma/112-add-text-decoration-token
mirror/penpot:tokens-studio-hyma/113-text-case
mirror/penpot:andy-highlight-font-search
mirror/penpot:azazeln28-fix-issue-7372-view-mode-pointer-selecting
mirror/penpot:azazeln28-feat-split-dwarf
mirror/penpot:add-numeric-tokens
mirror/penpot:revert-6463-develop
mirror/penpot:rsanchez-docs-metadata-improvements
mirror/penpot:azazeln28-wip-performance-research
mirror/penpot:azazeln28-fix-text-editor-copy-paste
mirror/penpot:niwinz-non-block-ui-token
mirror/penpot:juan-filename-status
mirror/penpot:eva-niwinz-fix-thumbnails-when-token-set-change
mirror/penpot:renderer-pocs
mirror/penpot:piweek-webgl2-renderer
mirror/penpot:skia-renderer-experiment
mirror/penpot:azazeln28-webgl2-renderer
mirror/penpot:hiru-rxspy
mirror/penpot:niwinz-poc-webauthn
mirror/penpot:hiru-refactor-sync
mirror/penpot:hiru-fix-library-updates
mirror/penpot:hiru-fix-alt-tab-out
mirror/penpot:hiru-sync-nightmare
mirror/penpot:niwinz-admin
mirror/penpot:hiru-transient-changes
mirror/penpot:hiru-transient-changes-old
mirror/penpot:niwinz-namedtuple
mirror/penpot:2.17.2
mirror/penpot:2.17.2-RC2
mirror/penpot:2.17.2-RC1
mirror/penpot:2.17.1
mirror/penpot:2.18.0-RC1
mirror/penpot:2.17.1-RC5
mirror/penpot:2.17.1-RC4
mirror/penpot:2.17.1-RC3
mirror/penpot:2.17.1-RC2
mirror/penpot:2.17.1-RC1
mirror/penpot:2.17.0
mirror/penpot:2.17.0-RC6
mirror/penpot:2.17.0-RC5
mirror/penpot:2.17.0-RC4
mirror/penpot:2.17.0-RC3
mirror/penpot:2.17.0-RC2
mirror/penpot:2.16.2
mirror/penpot:2.16.2-RC1
mirror/penpot:2.16.1
mirror/penpot:2.16.1-RC4
mirror/penpot:2.16.1-RC3
mirror/penpot:2.17.0-RC1
mirror/penpot:2.16.1-RC2
mirror/penpot:2.16.1-RC1
mirror/penpot:2.16.0
mirror/penpot:2.16.0-RC13
mirror/penpot:2.16.0-RC12
mirror/penpot:2.16.0-RC11
mirror/penpot:2.16.0-RC10
mirror/penpot:2.16.0-RC9
mirror/penpot:2.16.0-RC8
mirror/penpot:2.16.0-RC7
mirror/penpot:2.16.0-RC6
mirror/penpot:2.16.0-RC5
mirror/penpot:2.16.0-RC4
mirror/penpot:2.16.0-RC3
mirror/penpot:2.15.4
mirror/penpot:2.15.4-RC4
mirror/penpot:2.15.4-RC3
mirror/penpot:2.15.4-RC2
mirror/penpot:2.15.4-RC1
mirror/penpot:2.15.3
mirror/penpot:2.15.2
mirror/penpot:2.15.2-RC1
mirror/penpot:2.15.1
mirror/penpot:2.15.0
mirror/penpot:2.15.0-RC10
mirror/penpot:2.15.0-RC9
mirror/penpot:2.15.0-RC8
mirror/penpot:2.15.0-RC7
mirror/penpot:2.15.0-RC6
mirror/penpot:2.15.0-RC5
mirror/penpot:2.14.5
mirror/penpot:2.15.0-RC4
mirror/penpot:2.16.0-RC2
mirror/penpot:2.15.0-RC3
mirror/penpot:2.15.0-RC2
mirror/penpot:2.14.5-RC2
mirror/penpot:2.14.5-RC1
mirror/penpot:2.14.4
mirror/penpot:2.15.0-RC1
mirror/penpot:2.16.0-RC1
mirror/penpot:2.14.3
mirror/penpot:2.14.3-RC1
mirror/penpot:2.14.2
mirror/penpot:2.14.1
mirror/penpot:2.14.1-RC1
mirror/penpot:2.14.0
mirror/penpot:2.14.0-RC5
mirror/penpot:2.14.0-RC4
mirror/penpot:2.14.0-RC3
mirror/penpot:2.14.0-RC2
mirror/penpot:2.13.3
mirror/penpot:2.14.0-RC1
mirror/penpot:2.13.2
mirror/penpot:2.13.1
mirror/penpot:2.13.0
mirror/penpot:2.13.0-RC11
mirror/penpot:2.13.0-RC10
mirror/penpot:2.13.0-RC9
mirror/penpot:2.13.0-RC8
mirror/penpot:2.13.0-RC7
mirror/penpot:2.13.0-RC6
mirror/penpot:2.13.0-RC5
mirror/penpot:2.13.0-RC4
mirror/penpot:2.13.0-RC3
mirror/penpot:2.13.0-RC2
mirror/penpot:2.13.0-RC1
mirror/penpot:2.12.1
mirror/penpot:2.12.0-RC5
mirror/penpot:2.12.0
mirror/penpot:2.12.0-RC4
mirror/penpot:2.12.0-RC3
mirror/penpot:2.12.0-RC2
mirror/penpot:2.12.0-RC1
mirror/penpot:2.11.1
mirror/penpot:2.11.0
mirror/penpot:2.11.0-RC7
mirror/penpot:2.11.0-RC6
mirror/penpot:2.11.0-RC5
mirror/penpot:2.11.0-RC4
mirror/penpot:2.11.0-RC3
mirror/penpot:2.11.0-RC2
mirror/penpot:2.10.2-RC2
mirror/penpot:2.10.2-RC1
mirror/penpot:2.10.1
mirror/penpot:2.11.0-RC1
mirror/penpot:2.10.1-RC3
mirror/penpot:2.10.1-RC2
mirror/penpot:2.10.1-RC1
mirror/penpot:2.10.0
mirror/penpot:2.10.0-RC5
mirror/penpot:2.10.0-RC4
mirror/penpot:2.10.0-RC3
mirror/penpot:2.10.0-RC2
mirror/penpot:2.10.0-RC1
mirror/penpot:2.9.1-RC1
mirror/penpot:2.9.0-RC9
mirror/penpot:2.9.0
mirror/penpot:2.9.0-RC8
mirror/penpot:2.9.0-RC7
mirror/penpot:2.9.0-RC6
mirror/penpot:2.9.0-RC5
mirror/penpot:2.9.0-RC4
mirror/penpot:2.9.0-RC3
mirror/penpot:2.8.1
mirror/penpot:2.8.1-RC2
mirror/penpot:2.9.0-RC2
mirror/penpot:2.9.0-RC1
mirror/penpot:2.8.1-RC1
mirror/penpot:2.8.0
mirror/penpot:2.8.0-RC9
mirror/penpot:2.8.0-RC8
mirror/penpot:2.8.0-RC7
mirror/penpot:2.8.0-RC6
mirror/penpot:2.8.0-RC5
mirror/penpot:2.8.0-RC4
mirror/penpot:2.8.0-RC3
mirror/penpot:2.8.0-RC2
mirror/penpot:2.8.0-RC1
mirror/penpot:2.7.2
mirror/penpot:2.7.2-RC1
mirror/penpot:2.7.1
mirror/penpot:2.7.0
mirror/penpot:2.7.0-RC7
mirror/penpot:2.7.0-RC6
mirror/penpot:2.7.0-RC5
mirror/penpot:2.7.0-RC4
mirror/penpot:2.7.0-RC3
mirror/penpot:2.7.0-RC2
mirror/penpot:2.6.2
mirror/penpot:2.7.0-RC1
mirror/penpot:2.6.2-RC5
mirror/penpot:2.6.2-RC4
mirror/penpot:2.6.2-RC3
mirror/penpot:2.6.2-RC2
mirror/penpot:2.6.1-RC2
mirror/penpot:2.6.2-RC1
mirror/penpot:2.6.1
mirror/penpot:2.6.1-RC1
mirror/penpot:2.6.0
mirror/penpot:2.6.0-RC6
mirror/penpot:2.6.0-RC5
mirror/penpot:2.6.0-RC4
mirror/penpot:2.6.0-RC3
mirror/penpot:2.6.0-RC2
mirror/penpot:2.5.4-RC3
mirror/penpot:2.6.0-RC1
mirror/penpot:2.5.4
mirror/penpot:2.5.4-RC2
mirror/penpot:2.5.4-RC1
mirror/penpot:2.5.3-RC1
mirror/penpot:2.5.3
mirror/penpot:2.5.2-RC5
mirror/penpot:2.5.2
mirror/penpot:2.5.2-RC4
mirror/penpot:2.5.2-RC3
mirror/penpot:2.5.2-RC2
mirror/penpot:2.5.2-RC1
mirror/penpot:2.5.1
mirror/penpot:2.5.0-RC5
mirror/penpot:2.5.0-RC4
mirror/penpot:2.5.0-RC3
mirror/penpot:2.5.0-RC2
mirror/penpot:2.5.0-RC1
mirror/penpot:2.4.3
mirror/penpot:2.4.3-RC2
mirror/penpot:2.4.3-RC1
mirror/penpot:2.4.2
mirror/penpot:2.4.1
mirror/penpot:2.4.0
mirror/penpot:2.4.0-RC10
mirror/penpot:2.4.0-RC9
mirror/penpot:2.4.0-RC8
mirror/penpot:2.4.0-RC7
mirror/penpot:2.4.0-RC6
mirror/penpot:2.4.0-RC5
mirror/penpot:2.4.0-RC4
mirror/penpot:2.4.0-RC3
mirror/penpot:2.4.0-RC2
mirror/penpot:2.3.3
mirror/penpot:2.4.0-RC1
mirror/penpot:2.5.0-DEV
mirror/penpot:2.3.2
mirror/penpot:2.3.1
mirror/penpot:2.3.0-RC9
mirror/penpot:2.3.0
mirror/penpot:2.3.0-RC8
mirror/penpot:2.3.0-RC7
mirror/penpot:2.3.0-RC6
mirror/penpot:2.3.0-RC5
mirror/penpot:2.3.0-RC4
mirror/penpot:2.3.0-RC3
mirror/penpot:2.3.0-RC2
mirror/penpot:2.3.0-RC1
mirror/penpot:2.2.1
mirror/penpot:2.2.1-RC2
mirror/penpot:2.2.1-RC1
mirror/penpot:2.2.0
mirror/penpot:2.2.0-RC7
mirror/penpot:2.1.5-RC5
mirror/penpot:2.2.0-RC6
mirror/penpot:2.1.5-RC4
mirror/penpot:2.2.0-RC5
mirror/penpot:2.1.5-RC3
mirror/penpot:2.2.0-RC4
mirror/penpot:2.1.5-RC2
mirror/penpot:2.2.0-RC3
mirror/penpot:2.1.5-RC1
mirror/penpot:2.2.0-RC2
mirror/penpot:2.1.4
mirror/penpot:2.1.4-RC2
mirror/penpot:2.1.4-RC1
mirror/penpot:2.1.3
mirror/penpot:2.1.2
mirror/penpot:2.1.2-RC3
mirror/penpot:2.1.2-RC2
mirror/penpot:2.1.2-RC1
mirror/penpot:2.1.1-RC2
mirror/penpot:2.1.1
mirror/penpot:2.1.1-RC1
mirror/penpot:2.1.0
mirror/penpot:rm
mirror/penpot:2.1-RC2
mirror/penpot:2.1.0-RC2
mirror/penpot:2.1.0-RC1
mirror/penpot:2.1-RC1
mirror/penpot:2.0.3
mirror/penpot:2.0.2
mirror/penpot:2.0.1
mirror/penpot:2.0.0
mirror/penpot:pre-lazy-loading
mirror/penpot:1.19.3
mirror/penpot:1.19.2
mirror/penpot:1.19.1
mirror/penpot:1.19.0
mirror/penpot:1.18.6
mirror/penpot:1.18.5
mirror/penpot:1.18.4
mirror/penpot:1.18.3
mirror/penpot:1.18.1
mirror/penpot:1.18.0
mirror/penpot:1.17.3
mirror/penpot:1.17.2
mirror/penpot:1.17.1
mirror/penpot:1.17.0
mirror/penpot:staging-ambulance-1
mirror/penpot:1.16.2-beta
mirror/penpot:1.16.1-beta
mirror/penpot:1.16.0-beta
mirror/penpot:1.15.4-beta
mirror/penpot:1.15.3-beta
mirror/penpot:1.15.2-beta
mirror/penpot:1.15.1-beta
mirror/penpot:1.15.0-beta
mirror/penpot:1.14.1-beta
mirror/penpot:1.14.0-beta
mirror/penpot:1.13.7-beta
mirror/penpot:1.13.6-beta
mirror/penpot:1.13.5-beta
mirror/penpot:1.13.4-beta
mirror/penpot:1.13.3-beta
mirror/penpot:1.13.1-beta
mirror/penpot:1.13.2-beta
mirror/penpot:1.13.0-beta
mirror/penpot:1.12.4-beta
mirror/penpot:1.12.3-beta
mirror/penpot:1.12.2-beta
mirror/penpot:1.12.1-beta
mirror/penpot:1.12.0-beta
mirror/penpot:1.11.2-beta
mirror/penpot:1.11.1-beta
mirror/penpot:1.11.0-beta
mirror/penpot:1.10.4-beta
mirror/penpot:1.10.3-beta
mirror/penpot:1.10.2-beta
mirror/penpot:1.10.1-beta
mirror/penpot:1.10.0-beta
mirror/penpot:1.9.0-alpha
mirror/penpot:1.8.2-alpha
mirror/penpot:1.8.1-alpha
mirror/penpot:1.8.0-alpha
mirror/penpot:1.7.4-alpha
mirror/penpot:1.7.3-alpha
mirror/penpot:1.7.2-alpha
mirror/penpot:1.7.1-alpha
mirror/penpot:1.7.0-alpha
mirror/penpot:1.6.5-alpha
mirror/penpot:1.6.4-alpha
mirror/penpot:1.6.3-alpha
mirror/penpot:1.6.2-alpha
mirror/penpot:1.6.1-alpha
mirror/penpot:1.6.0-alpha
mirror/penpot:1.5.4-alpha
mirror/penpot:1.5.3-alpha
mirror/penpot:1.5.2-alpha
mirror/penpot:1.5.1-alpha
mirror/penpot:1.5.0-alpha
mirror/penpot:1.4.1-alpha
mirror/penpot:1.4.0-alpha
mirror/penpot:1.4.0-dev
mirror/penpot:1.3.0-alpha
mirror/penpot:1.2.0-alpha
mirror/penpot:1.1.0-alpha
mirror/penpot:1.0.0-alpha
mirror/penpot:0.1.0
mirror/penpot:0.0.0
1
Commits
staging
...
issue-11546
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
9e0a9905bd |
🐛 Add bounds checking to remove-interaction to prevent crashes
The remove-interaction function used subvec without validating that the index was within bounds, causing 'Index out of bounds' errors when removing multiple interactions in rapid succession. Add bounds validation to return the unchanged interactions vector when an invalid index is provided. This prevents crashes while maintaining data integrity and idempotent behavior. Closes #11546 AI-assisted-by: qwen3.7-plus |
2 changed files with 35 additions and 2 deletions
No files matched your search
@@ -714,8 +714,10 @@
|
||||
(defn remove-interaction
|
||||
[interactions index]
|
||||
(let [interactions (or interactions [])]
|
||||
(into (subvec interactions 0 index)
|
||||
(subvec interactions (inc index)))))
|
||||
(if (and (>= index 0) (< index (count interactions)))
|
||||
(into (subvec interactions 0 index)
|
||||
(subvec interactions (inc index)))
|
||||
interactions)))
|
||||
|
||||
(defn update-interaction
|
||||
[interactions index update-fn]
|
||||
|
||||
@@ -861,6 +861,37 @@
|
||||
(t/is (= (:action-type (last new-interactions)) :open-url))))))
|
||||
|
||||
|
||||
(t/deftest remove-interaction-bounds-check
|
||||
(let [i1 (ctsi/set-action-type ctsi/default-interaction :open-overlay)
|
||||
i2 (ctsi/set-action-type ctsi/default-interaction :close-overlay)
|
||||
i3 (ctsi/set-action-type ctsi/default-interaction :prev-screen)
|
||||
interactions [i1 i2 i3]]
|
||||
|
||||
(t/testing "Remove interaction with valid index"
|
||||
(let [new-interactions (ctsi/remove-interaction interactions 1)]
|
||||
(t/is (= 2 (count new-interactions)))
|
||||
(t/is (= :open-overlay (:action-type (first new-interactions))))
|
||||
(t/is (= :prev-screen (:action-type (second new-interactions))))))
|
||||
|
||||
(t/testing "Remove interaction with index out of bounds (too high)"
|
||||
(let [new-interactions (ctsi/remove-interaction interactions 10)]
|
||||
(t/is (= 3 (count new-interactions)))
|
||||
(t/is (= interactions new-interactions))))
|
||||
|
||||
(t/testing "Remove interaction with negative index"
|
||||
(let [new-interactions (ctsi/remove-interaction interactions -1)]
|
||||
(t/is (= 3 (count new-interactions)))
|
||||
(t/is (= interactions new-interactions))))
|
||||
|
||||
(t/testing "Remove interaction from empty vector"
|
||||
(let [new-interactions (ctsi/remove-interaction [] 0)]
|
||||
(t/is (= 0 (count new-interactions)))))
|
||||
|
||||
(t/testing "Remove interaction from nil"
|
||||
(let [new-interactions (ctsi/remove-interaction nil 0)]
|
||||
(t/is (= 0 (count new-interactions)))))))
|
||||
|
||||
|
||||
(t/deftest remap-interactions
|
||||
(let [frame1 (cts/setup-shape {:type :frame})
|
||||
frame2 (cts/setup-shape {:type :frame})
|
||||
|
||||
Reference in new issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.