Recent Activities

This page shows what are we working on.

breezefront / module-breeze

8 hours ago success
  • head
    • Fixed incorrectly marked lazyload when main image is not the first one d5cd6b

    • Do not add dom duplicates to $.registry 84beb6

  • 2.32.0
    • Version 2.32.0 62d26e

    • Remove unused `lazyAsync` function 98e9d8

    • Gallery: Fixes slider fallback for mobile devices for `expanded` option eb5ff6

    • Center dots when using expanded layout (on mobile) 88f78f

    • Gallery: Restore proper tabindex in destructor 19bb81

    • Gallery: Use slider fallback for mobile devices for `expanded` option 7847d1

    • Improved slider destructor to cleanup listeners and markup dd8400

    • Remove unused code 6292c3

    • Do not close accordion when multipleCollapsible is used b1b4a7

    • LazyAsync 9e0a37

    • Removed redundant 'contentUpdated' dead1b

    • Faster DOM traversal after contentUpdated event 9c2d61

    • Simplify quotedScope from prev commit 37a7b7

    • Improve scope binding match logic
      minicart_content should not match x_minicart_content;
      minicart.content should not match minicart_content 5e9bca

    • Speculation rules: fixed not working exclude rules c78263

    • Added missing destructor to pagebuilderCarousel 81d228

    • Do not close dropdownDialog when dragging the slider inside eed793

    • Do not include requirejs-config if it's empty b4fbfe

    • Defer requirejs-config as all other scripts are deferred too 861179

    • Preload image from category-view block if main image is not found de4258

breezefront / module-breeze-ai

8 hours ago success
  • head
    • feat(content-builder): resolve the build's store and honour per-store settings (#176)

      Nothing in the build pipeline resolved a store, so every Helper\Config read
      inside a build answered from whichever store was ambient — the admin store
      during an admin build, which is the global value. Widening content_builder and
      image_generation to store scope without this would have given the merchant
      controls that save and are then ignored, which is why #174 held them back.

      The store is resolved in Model\Skill\BuildPage rather than in the admin
      controller the issue proposed. Four entry points reach a build — the Build
      controller, the bulk consumer, the console command and the MCP server — and the
      page is the only thing all four have. Resolving there also leaves the queue
      message unchanged, so builds scheduled before this release still run, and a
      batch spanning pages in different store views resolves each page separately
      instead of pinning the run to the scheduling admin's switcher.

      The rule, in Model\ContentBuilder\PageStore: an explicit options.store_id wins
      when the store exists and the page is shown in it; otherwise a page assigned to
      exactly one real store view builds under that store; otherwise — All Store
      Views, several store views, or an explicit id that failed the first test — the
      global value. Deliberately the global value rather than the first assigned
      store: a page spanning five stores has no per-store answer, and quietly picking
      one of them and spending its image budget would be its own bug.

      From there the id is threaded as an optional trailing argument, the shape
      options.assets already uses (#164), down to every class that reads
      configuration during a build: ImageExtractor, ImageGenerator, GeneratorTarget,
      WidgetCatalog, ImagePrice, GenerationNotice, and through PromptBuilder,
      BandAudit and ComponentValidator, which read the widget list. Usage\Writer
      takes it too, so the ledger prices an image by the same per-store override the
      estimate quoted. Every memo those classes keep is now keyed by store as well —
      one memo per instance would hand a second store's build the first store's
      answer.

      Helper\Config's getters take an optional store and pass it as the scope *code*.
      SCOPE_STORE alone names only the scope type. getExtractedImageKeepDays() is
      left alone: it is read by Model\Image\Prune on cron, which sweeps the whole
      media directory in one pass with no store in context — the same reason the
      backup group's retention fields stay global.

      Two things the issue's inventory has slightly wrong, for the record:
      options.store_id is already populated today by assistant.js (the product and
      category edit forms' store switcher) and by the MCP server, but only ever
      reaches loadEntity(); and the bulk build_page payload carries no store at all,
      so the async path was as storeless as the synchronous one. d17cc8

  • 1.8.12
    • chore(release): 1.8.12 d8c1ee

    • feat(config): allow per-store overrides where they mean something (#174) (#175)

      * feat(config): allow per-store overrides where they mean something (#174)

      Only the mcp group (enabled, graphql_url) is widened. Every other group
      stays showInWebsite=0/showInStore=0.

      Why only mcp: Helper\Config's isMcpEnabled()/getMcpGraphqlUrl() omitted the
      scope-type argument, which defaults to ScopeConfigInterface::SCOPE_TYPE_DEFAULT
      ('default'), not store — so before this change a per-store value would have
      been silently ignored even if system.xml allowed setting one. Fixed by
      passing ScopeInterface::SCOPE_STORE explicitly. This is the one field group
      whose consumption path (Magento's own webapi PathProcessor, which calls
      StoreManager::setCurrentStore() from a /rest/<store_code>/V1/... URL before
      McpServer::handle() runs) already resolves the correct store ambiently —
      confirmed live via config:set at store scope + a script driving Helper\Config
      directly (default store read the global value, breeze_blank read its own).

      Every other group was checked the same way and kept global:
      - general (enabled, request_timeout): the enable check is a blanket admin-route
      gate (RefuseWhenDisabled) and an async-consumer/CLI gate (AbstractConsumer,
      AiRequest) — both read ambient scope with no entity binding at all, and
      GenerateService::execute() has a $storeId in hand for entity loading but
      never passes it to the isEnabled() check either. Widening would let an admin
      set "No" for one store while every actual enforcement path keeps reading one
      process-wide value.
      - bulk/orphan_timeout: OrphanRule/OrphanSweeper read it with zero scope
      argument in a cron sweep over every store's operations at once — there is no
      per-operation store lookup to apply a per-store value to.
      - backup (enabled, keep_versions, keep_days): Prune's nightly cleanup reads
      keep_days/keep_versions once, ambiently, and deletes across every store's
      rows in one SQL statement with no per-store WHERE clause. isBackupEnabled()
      is checked in RestoreConsumer (async, no store emulation) and the admin
      Restore controller (ambient) without a store code, even though
      Writer::captureAttributes() already has $storeId in hand and never passes it
      either.
      - content_builder (extract_images, max_images, image_keep_days, widgets) and
      image_generation (all 7 fields): image_keep_days is cron-only (Image\Prune),
      same problem as backup. The rest are genuinely plausible per-store dials in
      principle, but Controller\Adminhtml\Page\Build -> GenerateService ->
      Model\Skill\BuildPage never resolves or threads a store id anywhere in the
      build pipeline — every Config read in ImageExtractor/ImageGenerator/
      GeneratorTarget/WidgetCatalog/ImagePrice/GenerationNotice reads whichever
      store happens to be ambient, not the store the page/product being built
      belongs to. Widening now would present fields that look per-store while
      every build silently keeps reading one fixed value — worse than the current
      state. Threading a real store id through the build pipeline (the same shape
      as #164's options.assets override) is a big enough feature for its own issue.

      Stale premise in the issue text, confirmed and stated here: no api_key,
      backend_model, or obscure field exists anywhere in system.xml any more (#138
      moved credentials to AI Models rows) — the encrypted-per-store-value concern
      the issue raises does not apply to anything left in this section.

      Tests: ConfigTest gets two new cases pinning the scope-type fix (mcp fields
      read 'store', not 'default'), plus the two existing mcp assertions updated to
      expect the explicit scope argument. 1904 -> 1906 tests, 4138 -> 4140
      assertions, 0 failures (memory's prior 1894/4117 baseline for 1.8.11 was
      stale — the installed copy at bd79426 already runs 1904/4138 before this
      branch).

      phpcs --standard=Magento2 and phpstan analyse -l 5: 0 errors on Helper/Config.php
      and the touched test file. McpServer.php is untouched (0 diff) and its 3
      pre-existing phpstan errors are unrelated.

      Verified live: config:set at store scope + a script driving Helper\Config
      through real DI confirmed default vs breeze_blank read different mcp values;
      Magento\Config\Model\Config\Structure confirmed showInStore=true only on the
      mcp group/fields, false everywhere else in the section.

      * fix(config): mcp store scope also covers unprefixed /rest/V1/ (#174)

      The unprefixed webapi URL never gets its store set by PathProcessor
      (the path segment "V1" matches no store code), so it keeps reading
      whatever store was already ambient rather than a fixed default scope
      as the docs claimed. Corrected the comments/docblocks, and pointed
      McpSetup's enabled-check at Helper\Config::isMcpEnabled() so the CLI
      checks the same scope the endpoint actually reads.

      Also dropped two ConfigTest cases that duplicated coverage already
      enforced by the adjacent with(..., 'store') assertions.

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

      ---------

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

    • fix(config): mcp store scope also covers unprefixed /rest/V1/ (#174)

      The unprefixed webapi URL never gets its store set by PathProcessor
      (the path segment "V1" matches no store code), so it keeps reading
      whatever store was already ambient rather than a fixed default scope
      as the docs claimed. Corrected the comments/docblocks, and pointed
      McpSetup's enabled-check at Helper\Config::isMcpEnabled() so the CLI
      checks the same scope the endpoint actually reads.

      Also dropped two ConfigTest cases that duplicated coverage already
      enforced by the adjacent with(..., 'store') assertions.

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

    • feat(config): allow per-store overrides where they mean something (#174)

      Only the mcp group (enabled, graphql_url) is widened. Every other group
      stays showInWebsite=0/showInStore=0.

      Why only mcp: Helper\Config's isMcpEnabled()/getMcpGraphqlUrl() omitted the
      scope-type argument, which defaults to ScopeConfigInterface::SCOPE_TYPE_DEFAULT
      ('default'), not store — so before this change a per-store value would have
      been silently ignored even if system.xml allowed setting one. Fixed by
      passing ScopeInterface::SCOPE_STORE explicitly. This is the one field group
      whose consumption path (Magento's own webapi PathProcessor, which calls
      StoreManager::setCurrentStore() from a /rest/<store_code>/V1/... URL before
      McpServer::handle() runs) already resolves the correct store ambiently —
      confirmed live via config:set at store scope + a script driving Helper\Config
      directly (default store read the global value, breeze_blank read its own).

      Every other group was checked the same way and kept global:
      - general (enabled, request_timeout): the enable check is a blanket admin-route
      gate (RefuseWhenDisabled) and an async-consumer/CLI gate (AbstractConsumer,
      AiRequest) — both read ambient scope with no entity binding at all, and
      GenerateService::execute() has a $storeId in hand for entity loading but
      never passes it to the isEnabled() check either. Widening would let an admin
      set "No" for one store while every actual enforcement path keeps reading one
      process-wide value.
      - bulk/orphan_timeout: OrphanRule/OrphanSweeper read it with zero scope
      argument in a cron sweep over every store's operations at once — there is no
      per-operation store lookup to apply a per-store value to.
      - backup (enabled, keep_versions, keep_days): Prune's nightly cleanup reads
      keep_days/keep_versions once, ambiently, and deletes across every store's
      rows in one SQL statement with no per-store WHERE clause. isBackupEnabled()
      is checked in RestoreConsumer (async, no store emulation) and the admin
      Restore controller (ambient) without a store code, even though
      Writer::captureAttributes() already has $storeId in hand and never passes it
      either.
      - content_builder (extract_images, max_images, image_keep_days, widgets) and
      image_generation (all 7 fields): image_keep_days is cron-only (Image\Prune),
      same problem as backup. The rest are genuinely plausible per-store dials in
      principle, but Controller\Adminhtml\Page\Build -> GenerateService ->
      Model\Skill\BuildPage never resolves or threads a store id anywhere in the
      build pipeline — every Config read in ImageExtractor/ImageGenerator/
      GeneratorTarget/WidgetCatalog/ImagePrice/GenerationNotice reads whichever
      store happens to be ambient, not the store the page/product being built
      belongs to. Widening now would present fields that look per-store while
      every build silently keeps reading one fixed value — worse than the current
      state. Threading a real store id through the build pipeline (the same shape
      as #164's options.assets override) is a big enough feature for its own issue.

      Stale premise in the issue text, confirmed and stated here: no api_key,
      backend_model, or obscure field exists anywhere in system.xml any more (#138
      moved credentials to AI Models rows) — the encrypted-per-store-value concern
      the issue raises does not apply to anything left in this section.

      Tests: ConfigTest gets two new cases pinning the scope-type fix (mcp fields
      read 'store', not 'default'), plus the two existing mcp assertions updated to
      expect the explicit scope argument. 1904 -> 1906 tests, 4138 -> 4140
      assertions, 0 failures (memory's prior 1894/4117 baseline for 1.8.11 was
      stale — the installed copy at bd79426 already runs 1904/4138 before this
      branch).

      phpcs --standard=Magento2 and phpstan analyse -l 5: 0 errors on Helper/Config.php
      and the touched test file. McpServer.php is untouched (0 diff) and its 3
      pre-existing phpstan errors are unrelated.

      Verified live: config:set at store scope + a script driving Helper\Config
      through real DI confirmed default vs breeze_blank read different mcp values;
      Magento\Config\Model\Config\Structure confirmed showInStore=true only on the
      mcp group/fields, false everywhere else in the section. c1ed6b

breezefront / theme-frontend-breeze-enterprise-eir

10 hours ago success
  • head
    • Add noEscape directive to continue shopping button URL ac4b9c

    • Update listing gap variable to use defined spacing 41f0ca

    • Add CSS class to main title in checkout cart layout dc41f6

    • Shopping cart page is done. c1d6d0

    • Shopping cart page in progress 8ca297

    • Shopping cart page 9fa558

    • Enhance quantity input styling and functionality. Apply border-radius to buttons and ensure step attribute is valid. 1bcebb

    • Add padding variable for navigation link caret. aa8d04

    • Quantity wrapper component. f57c8d

    • Product page. Adjustments for related products layout. aa27ee

    • Product page. Add new layout container. Place BCB marquee content there. a2fe52

    • Product page. Enhance gallery configuration and update layout variables for improved styling and responsiveness. b89117

    • Product page. Add grid area for price information and implement gallery layout for improved product display. 76b0b3

    • Product page. Add focus ring styling for checkboxes in related products block to enhance accessibility. ab2227

    • Product page. Refactor related products layout for improved responsiveness and styling consistency. 5aa789

    • Product page. Update quantity button icons to use mask images for better scalability and styling. 9576ee

    • Product page. Related products block. 7ed6de

    • Product page. Implement review popup for full review text display and enhance accessibility. d38885

    • Product page. Add toggle for "Write Your Own Review" form and adjust styles for review list 9973d8

    • Product page. Revies list is done. Revie form next. 5bf007

    • Theme Editor: added Listing, Animations, and Advanced sections a4451d

    • Theme Editor: added Colors section 390891

    • Product page. Reviews in progress... e13b99

    • Theme Editor: added Layout, Typography, Overlay Header, Border Radius, Color and Font Palettes ff5e62

    • Productpage. Review in progress... 7059e9

    • Productpage. Review in progress. 669824

    • BCB featured product component. 0651cf

    • Add styles for featured product details, SKU, and price row in BCB d65f2d

    • BCB accordion styles at product info main. 1a262b

    • Installer. Add accordion for products. 466a5b

    • Add padding to swatch options in product add form for improved layout f10f77

    • Product main info ... in progress bf5c3f

    • Enhance product quantity input with increment/decrement buttons and update styles for better usability 72192e

    • Update product page medium image dimensions to 590x590 012c72

    • Fix minicart styles: set empty counter opacity to 0 79fcd1

    • Increased h2 bottom margin dff6ea

    • Product page action buttons. d008f0

    • Updated footer content links and section titles for improved clarity and user experience 241039

    • BCB homepage: fixed wrong image name b1a4f4

    • Rating stars styles in product listing f17a0f

    • BCB homepage: updated full width banner and sections spacings 2076c7

    • Fixed sort order of product details inside grid listing 9ad360

    • BCB homepage: updated Videos and full width banner sections 072733

    • Product page title font-size. d0987c

    • Footer. Minor fix for ring reval animation. Restore missing divider in footer. (#3) 54cdc4

    • Footer ring reveal animation added (#3) 4a8be8

    • BCB homepage: added animated badges to top banners grid 197e37

    • BCB homepage: added rotation animation for Full Width Banner 1420f9

    • BCB homepage: top banner updated a53bd5

    • Update favicon color 5ea666

    • Update favicon 18d8dc

    • Slightly update footer background. 5fcbfc

    • Footer content update. Add contact block (#3) dea42e

    • Fixed missing minicart overlay on first open (#2) 54feaa

    • BCB homepage: updated Browse categories block dbfa89

    • Breadcrumbs 196469

    • Done with search (#2) d8e0f3

    • Enhance minisearch functionality with slideout behavior and styling adjustments without Ajaxsearch (#2) 8c4a9d

    • Minisearch styles when ajaxsearch disabled... in progress (#2) 259fac

    • Remove unused styles from viewcart action and update empty subtitle styles in minicart (#2) dba7a5

    • Minicart complete (#2) 56efd2

    • Search on desktop (#2) 9c587e

    • BCB homepage: added videos section 7ee864

    • Minicart inprogress (only buttons to adjust)... (#2) c1be91

    • Minicart update in progress.... c3d18b

    • Minicart update in progress... (#2) 55e7b9

    • INstaller. Create dummy CMS block header_panel_info to allow user add custom content (#2) f70d58

    • Adjust minicart counter (#2) 03e843

    • BCB homepage: Added brand logos section b905f1

    • BCB homepage: Added testimonials section 2ab2cf

    • Update newsletter styles: adjust input border and add consent positioning (#2) 02d37d

    • Header. Update search behaviou and look of the result dropown. 993432

    • BCB homepage: Added FAQ a0bfde

    • Add focused search styles. d80f88

    • BCB homepage: added new sections 875068

    • BCB homepage: added ECI and full-width banner d40cfa

    • Top navigation added. 8fa9a3

    • Remove color from menu links dec081

    • Clone currency and store switchers in header slideout menu for improved functionality de36e3

    • Enhance header and newsletter styles for improved layout and responsiveness in header slideout menu. b63dd0

    • Installer. Update header slideout menu styles. 825795

    • Update footer top content HTML to enhance newsletter section styling.
      Don't set font familiy for header in Page Builder ba0b81

    • BCB homepage WIP b228af

    • Basic navpro slideout styles 75ac0e

    • Refactor header slideout menu and newsletter styles for improved layout and consistency 3b42ff

    • Header slideout menu... d4f174

    • Listing styles for the list mode and old price update. cbff61

    • Update README.md to clarify usage of `with-bottom-divider` CSS class and provide detailed instructions 1b9ea5

    • Pagination and make with-bottom-divider general. 37ea17

    • Added list banner 5 config; updated installer, moved it to json a43985

    • Add new layout configuration and remove easybanner references; update footer content and styles 87165b

    • Refactor easybanner configuration and installer for product listing banners 8b1d0d

    • Installer. Listing grid banner added. 914c01

    • Add swatches variables and layout styles d59581

    • Update positioning for filter title and content in layered navigation 8cbd21

    • Add image dimensions for product listings and related widgets in view.xml 6985cd

    • layout and styles for category view, product toolbar, shop by button 08fd27

    • Add layered navigation styles and update imports 944ff1

    • Keep working on prodcut listing and category page. 411088

    • Keep working on product listing toolbar. ebcfac

swissup / theme-stigefabrikken-breeze

2 days ago error

swissup / module-firecheckout

2 days 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

breezefront / theme-frontend-breeze-blank

2 days ago success
  • head
    • Revert "Explicitly set navigation item paddings"

      This reverts commit cb77b10eaf9af978e1548035c957edae74e6da2e. 0b7288

    • Explicitly set navigation item paddings cb77b1

    • Added labels for footer containers 780d47

  • 3.2.2
    • Version 3.2.2 330f6d

    • Allow to remove `displaY:block` from complex prices markup 389332

swissup / module-orderattachment

3 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

3 days ago success

swissup / module-core

3 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

3 days ago success