Recent Activities

This page shows what are we working on.

swissup / theme-stigefabrikken-breeze

1 day ago error

swissup / module-firecheckout

1 day ago success
  • head
    • CSS fixes for checkbox inside address and address lookup button f5c3e8

  • 1.36.0
    • Version 1.36.0 c6b511

    • Fix readonly env: deploy jsbuild during static content deployment f29be0

    • Fix "Maximum call stack size exceeded" in jsbuild

      mage/requirejs/static.js patches the global require.load and parks the
      previous function on require._load. That patch is not idempotent, and its
      modules are reachable two ways on a FireCheckout page: as the plain
      <script> we inject after require.js, and via the bundles entry below.
      requirejs keeps `defined` per context, so with a second context on the
      page (e.g. "$" next to "_") the jsbuild factory runs twice: require._load
      then holds the first wrapper, whose own fallback is itself, and
      require.load recurses forever. Symptoms are the RangeError plus
      "Load timeout for modules: mage/requirejs/text".

      Pin require._load to the real loader before static.js can install the
      wrapper, so any number of jsbuild evaluations stay harmless.

      Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> bed9ef

    • Replace curl-powered deployment with Asset\Publisher
      This commit should improve speed of jsbuild in development mode a13472

    • Replace curl-powered deployment with Asset\Publisher
      This commit should improve speed of jsbuild in development mode 46c4d4

swissup / module-orderattachment

2 days ago success
  • head
    • Fixed security issues in attachment upload and preview

      - Detect the file mime type on the server instead of trusting the browser,
      and serve the preview inline only for known-safe types, with nosniff
      - Enforce the file size and files count limits on the server
      - Require a quote to upload an attachment at checkout
      - Do not treat an attachment with no quote_id as editable by a visitor
      with no cart
      - Escape the error message in the js widget
      - Check that the file exists before the preview, and stop exposing
      exception messages to the storefront
      - Use hash_equals to compare the attachment hash

      Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> a38b7c

swissup / core

2 days ago success

swissup / module-core

2 days ago success
  • 1.14.0
    • Version 1.14.0 87e44a

    • Add `--clear-static-content` option to require|remove commands 783277

    • Remove unused code fdbe14

    • Cleanup 3a5c60

    • Do not use module code for themes 289912

    • Move Installer clases to Installer folder 94dafa

    • Move Installer clases to Installer folder 299078

    • Migrate installer from marketplace (#27) 3c85de

    • Fixed date attribute creation inside collection command 16207b

    • Address review comments 607252

    • Better actions dropdown f44d35

    • Explain why the installer re-run passes --no-download

      Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> 8d0f80

    • Update Readme 4bd0de

    • Offer to remove duplicate access keys in auth:check

      Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> ad254b

    • Rework auth:show and auth:check output

      auth:show prints plain Username/Password lines, auth:check adds
      Username column and moves provider into its own column.

      Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> 390313

    • Key components by package name instead of module code

      A metapackage and the module it requires share one module code, since
      convertPackageNameToModuleName strips the "module-" prefix. Both
      collapsed into a single item, and the metapackage - which sorts first
      in the feed - won every field. The remote loader worked around that by
      dropping metapackages altogether.

      Key the items by package name, which is unique, and let the consumers
      that list components hide the metapackages instead.

      This fixes latest_version for the packages whose metapackage lags
      behind the module: Swissup_BreezeAi reported 1.2.0 instead of 1.8.8,
      so no update was ever offered for it.

      The synthetic swissup/subscription entry is dropped as well - it
      collided with swissup/module-subscription the same way, and the only
      field it contributed that anything still reads is a homepage link.

      Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> f21245

    • swissup:auth:check command 5feae9

    • Fix outdated urls in comments c57ea4

    • Remove swissup_core_module table, model and collection

      The table stored nothing but the identity key used by the deprecated
      subscription-checker module, and keeping db_schema.xml forced a
      setup:upgrade run. Dropped the model, resource model, collection and the
      Module\{Installer,LicenseValidator,MessageLogger} classes that only
      served it, along with setup_version.

      swissup:module now reads dependencies from PackageInfo directly and no
      longer prints the identity key.

      Core replaces swissup/module-subscription-checker in composer.

      Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> 04c1c0

    • WIP d6dc01

    • Cleanup terminal composer output keeping installation info 9015f9

    • Fixed failing ci.swissuplabs tests cc0b30

    • Use psr/log dependency f375c1

    • Update deps 975f93

    • WIP dc009f

    • Keep installer classes in Installer folder 2db105

    • Ready for psr/log 9e58a3

    • Use constructor property promotion in installer classes

      Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> 662344

    • Require and then install in one shot 8d3822

    • Installer command c09401

    • Copy Marketplace Installer engine 42c579

    • WIP d6d017

    • Allow passing package names to swissup:package:update

      Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> 553041

    • WIP 9ffeb4

    • Repo => Channel to match old command 1e3a63

    • Use `swissup.extra` params as primary source 69fcf1

    • Update command descriptions 48a007

    • Remove useless comment e857e3

    • Array offset cannot be null e4017c

    • Add swissup:update command

      - Update swissup/* packages only; -w also updates their 3rd party dependencies
      - Move ensureRepositoryEnabled into PackageAbstractCommand to share with update
      - Drop disabled modules check: setup:upgrade runs with --safe-mode=1 anyway

      Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> 3c3f3b

    • WIP 434bf2

    • WIP a8a711

    • Remove unused code 599915

    • Installer => ModuleManager 0f7da5

    • Drop outdated code (Magento < 2.3.3) e5542c

    • Remove outdated code 7c5b9a

    • Open links in new tab 81a541

    • "How to update" added to the grid 4fdc59

    • Add latest version to the grid 21367b

    • Move outdated modules to the top of the grid be87e7

    • Add outdated badge to the Swissup menu aae4b5

  • 1.13.1
    • Version 1.13.1 5b7b24

    • Fixed invisible update instructions when Mollie Payments is installed 72aab6

swissup / module-firecheckout-integrations

2 days ago success

swissup / module-pagespeed

3 days ago success
  • 1.19.2
    • Version 1.19.2 90e18b

    • fix(webp): resolve webp variant for uppercase image extensions (#120) (#121)

      UrlResolver lowercased the extension before building the webp
      candidate filename, but generated webp files preserve the original
      extension case (HandGuard.JPG.webp). The lookup for
      HandGuard.jpg.webp never matched, so the webp version was silently
      skipped for images with uppercase extensions.

      Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com> 5640a2

    • fix(webp): resolve webp variant for uppercase image extensions (#120)

      UrlResolver lowercased the extension before building the webp
      candidate filename, but generated webp files preserve the original
      extension case (HandGuard.JPG.webp). The lookup for
      HandGuard.jpg.webp never matched, so the webp version was silently
      skipped for images with uppercase extensions.

      Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> a58d1f

  • 1.19.1
    • Version 1.19.1

      Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> 2e1f10

    • fix(lazyload): never lazy-load the LCP image (#119)

      The lazy-load optimizer skipped only two hardcoded Luma class names
      (gallery-placeholder__image, product-image-photo), so on Argento/Breeze
      storefronts it added loading="lazy" to the product page main image -
      the LCP element. The image kept the theme's fetchpriority="high" while
      also being lazy, which delays the LCP request and fails Lighthouse's
      "Largest Contentful Paint image was lazily loaded" audit.

      Skip any image the page already marks as fetchpriority="high". That is
      a theme-agnostic LCP hint, so it also covers themes we do not know
      about. Add main-image to the class ignore list as a fallback for themes
      that mark the LCP element without setting fetchpriority.

      Found on minisport (Argento/Breeze): enabling the optimizer pipeline
      added loading="lazy" to the LCP product image and dropped the audit to
      a failure.

      Co-authored-by: Claude Opus 5 <noreply@anthropic.com> 221998

    • fix(lazyload): never lazy-load the LCP image

      The lazy-load optimizer skipped only two hardcoded Luma class names
      (gallery-placeholder__image, product-image-photo), so on Argento/Breeze
      storefronts it added loading="lazy" to the product page main image -
      the LCP element. The image kept the theme's fetchpriority="high" while
      also being lazy, which delays the LCP request and fails Lighthouse's
      "Largest Contentful Paint image was lazily loaded" audit.

      Skip any image the page already marks as fetchpriority="high". That is
      a theme-agnostic LCP hint, so it also covers themes we do not know
      about. Add main-image to the class ignore list as a fallback for themes
      that mark the LCP element without setting fetchpriority.

      Found on minisport (Argento/Breeze): enabling the optimizer pipeline
      added loading="lazy" to the LCP product image and dropped the audit to
      a failure.

      Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> e975df

swissup / module-subscription-checker

3 days ago success
  • 1.2.4
    • Version 1.2.4 08992e

    • Update readme 2c4823

    • Deprecate module, drop dependency on removed core Module model

      Swissup\Core\Model\Module and its table are gone. Replaced it with a
      local dummy that stores and validates nothing, so the license screens
      keep working instead of fataling. Activation now points at
      bin/magento swissup:channel:enable.

      Marked the package abandoned in favour of swissup/module-core.

      Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> 15adcd

    • Move class from core to the consumer code eb76e7

swissup / module-ajaxlayerednavigation

6 days ago success
  • 1.6.10
    • Version 1.6.10 5b55b3

    • Merge pull request #110 from swissup/fix/issue-109-aggregation-bucket-size

      fix(category filter): request all term buckets from the search engine (#109) 0c2c7c

    • fix(category filter): resize only the category aggregation (#109)

      Lifting the bucket limit for every faceted field at once lets the buckets
      of all the high cardinality attributes add up beyond the cluster's
      search.max_buckets - 10000 on Elasticsearch 7.0-7.10 - and the engine
      answers that with too_many_buckets_exception, so the whole listing errors
      out instead of one facet losing its tail.

      Resize the fields named in the new fieldNames argument, which holds just
      category_ids by default. An empty list restores the previous behavior of
      resizing every term aggregation.

      Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> 8a902c

    • test: use the DataProvider attribute, not the annotation (#109)

      PHPUnit 12 no longer reads data providers from annotations, which is what
      the rest of Test/Unit was migrated away from in #107.

      Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> 552c4e

    • fix(category filter): request all term buckets from the search engine (#109)

      Magento hardcodes the Elasticsearch/OpenSearch terms aggregation size to
      500, so the engine returns only the 500 most popular values of a faceted
      field and silently drops the rest. On a catalog whose result set spans
      more categories than that, the category filter loses the child categories
      with the lowest product counts, while the header menu keeps showing them.

      The existing fallback to Category::getProductCount() cannot cover for it:
      addCountToCategories() runs against a search collection whose SQL select
      only carries the ids of the current page, so the count comes back as 0 and
      the option is skipped altogether.

      Raise the term bucket size with a plugin on the aggregation query builder.
      The size is a DI argument, so it can be tuned per project.

      Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> 233e61

  • 1.6.9

swissup / firecheckout

6 days ago success