Recent Activities

This page shows what are we working on.

breezefront / module-breeze-ai

2 minutes ago success
  • head
    • Merge pull request #120 from breezefront/feat/116-bulk-cancel

      feat(bulk): cancel a run, and close operations an external kill left open (#116) 2bba39

    • fix(bulk): say what a cancel could not reach (#116)

      finish() inserts a row with a null operation_key for a message an earlier release
      queued, so the first such operation to end puts its run in the AI Jobs grid — and
      if it failed, offers Cancel. Cancelling rejected that one row, MAX(status) read
      the run as cancelled, and the operations that were never recorded went on running.

      Canceller::countUntracked() is operation_count minus the rows this module has, and
      both cancel paths now warn with it. The cancel is not blocked: rejecting the rows
      it can see is still worth doing, and a recording that failed part-way is a run
      that needs cancelling more than most.

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

    • fix(bulk): say what a cancel cannot stop in the plural (#116)

      A topic can be drained by several consumer processes at once, so more than one
      operation of a run can be in flight. "One already running... the rest will not
      be started" is wrong on any installation running more than one consumer.

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

    • fix(bulk): stop the operation results claiming more than they know (#116)

      The cancel message named the admin on a row breezeai:bulk:cancel also writes;
      the sweep's promised nothing more would be written, which a redelivery or a slow
      consumer can contradict; and both counts were reported as work stopped when they
      include operations that will finish anyway.

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

    • fix(backup): keep operation key zero as an id (#116)

      Read with `?:`, which is false for 0. Harmless while operations carried no key,
      but they are keyed within their bulk now and the first chunk is key 0 — so every
      capture and usage-log row of the first chunk, and of any run that fits in one,
      lost its operation id.

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

    • fix(bulk): lock the bulk row, not a gap in the operations (#116)

      Gap locks are purely inhibitive and do not exclude each other, so the recording
      and an overtaking finish() both acquired the FOR UPDATE on the empty bulk_uuid
      range and their inserts then deadlocked. Measured: ERROR 1213 for the operation
      range, a proper wait for the bulk row, which is a guaranteed primary-key record.

      A finish() chosen as the victim throws after the AI work has run and out of
      process(), so the message is never acknowledged and the broker hands the
      operation back to be paid for a second time.

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

    • refactor(bulk): append the operation recorder to the schedule constructors (#116)

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

    • docs(bulk): name Magento's own orphan cron and what 0 leaves to it (#116)

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

    • fix(bulk): cancel the operations a sweep had already closed (#116)

      A failed operation is not finished business under AMQP: its message was never
      acknowledged, the broker hands it back, and OperationRecord::start() reopens the
      row. Cancel only touched open rows, so a run whose operations the sweep had
      closed — the ordinary state of an interrupted run by the time anyone presses
      Cancel — could not be stopped, and the grid hid the control besides.

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

    • test(consumer): construct the consumer with its OperationRecord (#116)

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

    • Merge branch 'master' into feat/116-bulk-cancel 38f0f9

    • test(bulk): cover the CLI commands and the job grid's ACL gates (#116)

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

    • fix(bulk): compare-and-set the claim, serialise both insert paths (#116)

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

    • style(test): give SelectProbe its own file, drop the trait constant (#116)

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

    • fix(bulk): refuse a redelivered completed operation, bound the sweep query (#116)

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

    • fix(bulk): close the schedule and sweep races the review found (#116)

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

    • feat(bulk): cancel a run, and close operations an external kill left open (#116)

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

    • Merge pull request #118 from breezefront/fix/114-provider-timeout

      fix(providers): give every text call an HTTP timeout (#114) 9bc731

    • refactor(providers): make the request timeout per model (#114)

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

    • Merge pull request #117 from breezefront/fix/115-consumer-throwable

      Reviewed and re-ran the unit suite from the installed copy: OK (1358 tests, 2949 assertions), 9 over the 1349 baseline on master. Reverting the catch to \Exception errors the 6 new tests with the uncaught TypeError, so they do gate the fix. phpcs --standard=Magento2: 0 errors on all three files.

      Two judgement calls, both kept as the author had them:

      - The generic \Exception branch was removed rather than kept above the new one. \Throwable is last, so it catches everything \Exception did with a byte-identical body — a kept branch would be dead weight, not a safety net. The three specific branches above it still own their messages and retriability.
      - $errorCode = $e->getCode() now applies to \Error too, storing error_code = 0 where getCode() is 0. That is not new: a plain \Exception also reports 0, so the branch this replaces already stored 0 for most of what it caught. Making \Error alone store null would split the behaviour for no gain.

      Trimmed before merge: the comment above the new catch went from five lines to two, keeping why \Throwable and dropping the restatement of what the \Exception branch used to do. 2829cf

    • style(consumer): trim the \Throwable catch comment to the decision (#115) 8f1d80

    • fix(providers): give every text call an HTTP timeout (#114)

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

    • fix(consumer): end an operation with a status on any \Throwable (#115)

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

  • 1.6.1
    • chore(release): 1.6.1

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

    • Merge pull request #113 from breezefront/fix/111-chat-panel-page-id

      fix(content-builder): show the chat panel when the editor opens without page_id (#111) 75370d

    • test(content-builder): skip the chat-panel specs when the prerequisites are absent (#111)

      bin/test all runs the E2E suite, and page-builder.spec.js already treats "no
      Content Builder, or no vision-capable model" as a legitimate CI state rather
      than a failure. These specs had no such guard, so on that box all four would
      have failed and looked like a #111 regression.

      The discriminator is the CMS form's "Build from screenshot" control:
      BuildFromScreenshot::canShow() is AiChatConfig::canShow() plus the page gate,
      so on a saved page the two are equivalent. Present means every prerequisite
      the chat panel has is met, which is what makes a missing chat button #111 and
      not a missing prerequisite — so the check runs before either door is entered.

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

    • Merge pull request #110 from breezefront/fix/107-widget-discoverability

      feat(content-builder): name the widgets that could have covered an unplaced band (#107) 6bd60d

    • feat(content-builder): name the widgets that could have covered an unplaced band (#107)

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

    • Merge pull request #112 from breezefront/fix/104-image-budget-ranking

      fix(content-builder): spend the image budget on pictures before icons (#104) c31f2a

    • Merge pull request #109 from breezefront/fix/103-unrequested-row-background

      fix(content-builder): fill a row's background only where the design has one (#103) ef8aeb

    • fix(content-builder): spend the image budget on pictures before icons (#104)

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

    • fix(content-builder): fill a row's background only where the design has one (#103)

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

    • test(content-builder): cover both doors into the editor's chat panel (#111)

      The bug was invisible to the unit tests because both halves of it are about
      wiring: which URL the editor was reached by, and what BCB hands the mixin
      afterwards. Follows field-actions-layout.spec.js, added for the same class of
      regression in #96 — a control that is present, absent or misplaced depending
      on how the page was reached.

      Four assertions: the chat button is there from the admin-menu door (the one
      that carries no page_id) and still there from the CMS-page door, the panel
      opens when the button is clicked, and it is torn down while no page is
      selected.

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

    • fix(content-builder): show the chat panel when the editor opens without page_id (#111)

      Swissup_BreezeContentBuilder's menu entry opens the editor as
      breeze_editor/editor/index/activate_panel/content-builder, which carries no
      page_id. AiChatConfig::canShow() required one, so the block emitted nothing,
      chat-config-store stayed null, and bcb-chat-mixin.js injected no button —
      silently, which is why the logs were clean. Picking a page from the toolbar
      afterwards could not recover it. Opening the editor from the CMS page form,
      which does pass page_id, worked; that is the difference behind "I don't see
      the chat interface anymore".

      The page is the client's to know: bcb-chat-panel.js already takes its pageId
      from the mount, which BCB resolves and re-supplies on every switchPage(). So
      canShow() drops the clause and getConfigJson() stops publishing a second,
      staler copy of the id.

      The mixin now checks the pageId it is handed, which fixes a second bug from
      the same gap: BCB drives _startContentBuilder(0) on a store switch and when a
      BLB product or category page takes the editor over, and the panel used to
      remount against page 0 and post entityId 0.

      Also log both failure branches of Controller\Adminhtml\Page\Build. Everything
      that endpoint refused reached the browser and nowhere else, so the "not valid
      JSON: Syntax error" from #91 left no trace to go back to. Refusals log at
      error naming the page; an unexpected throwable logs at critical with the
      exception in the context so the trace is written too.

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

swissup / hyva-highlight

1 hour ago success

swissup / theme-frontend-argentohyva-stripes

4 hours ago success

breezefront / theme-frontend-breeze-enterprise-eir

2 days ago success
  • head
    • 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

    • Working on product listing and toolbar look. 1ab39d

    • Add Cooper* font 132906

    • Add listing item styles and variables e725b5

    • Product lisnting in progress - grey bg and border radius. 4e7c35

    • Add new variable files for colors, typography, header, footer, icons, navigation, popover, minisearch, and gradient ba122c

    • Refactor footer and newsletter styles for improved consistency and responsiveness d831e4

    • Footer top newsletter - some updates. 452ca5

    • Add footer top content block and styles for newsletter integration (WIP) 128131

    • Footer bottom. 8d58ea

    • Add footer content block and styles for enhanced footer layout 4d6b1b

    • Header. Hide menu on medium screens. Update search look on monile. e0146d

    • Installer. Add navigation slideout menu a89fd5

breezefront / module-breeze-content-builder

2 days ago success
  • head
    • feat(components): inline newsletter layout and image-led benefit card (#108)

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

  • 1.2.2
    • Version 1.2.2 214d13

    • Fixed ignored text color when heading used in content c92d33

swissup / module-navigationpro

2 days ago success
  • head
    • Do not build the tree in prepareLayout 52e1ba

  • 1.19.3
    • Version 1.19.3 421267

    • Do not use `is_active` from remote entity when creating new item
      Since we have new option `use_remote_include_in_menu`, use it instead
      of syncing `is_active` on item creation. 7c215a

    • Fixed not working ribbon for vertical menu 8fdb50

    • LESS 5.3.0 compatibility 922d05

swissup / module-search-mysql-legacy

3 days ago success
  • head
    • docs: correct the consequences of patching the version list (#27)

      The previous wording blamed getMariaDbSuffixKey(). That was wrong: every
      MariaDB branch there except 10.4 already returns the 10.6.11 key, so an
      unmatched version falling back to the same default is harmless.

      The actual damage from adding a pattern is elsewhere. getSqlVersion()
      returns the matched prefix, and two consumers key off it with entries for
      10.4./10.6./11.4. only: Dto\Factories\Table falls through to the 'default'
      charset, so declarative schema starts creating utf8mb3/utf8_general_ci
      tables alongside the existing utf8mb4 ones, and
      DbSchemaWriter::isNeedToSplitSql() returns false, dropping the ALTER
      splitting MariaDB relies on.

      Also state that the check lives entirely in Setup\Declaration\Schema, so
      it cannot break storefront rendering — broken pages after the abort come
      from the half-applied upgrade — and add a collation query for stores that
      already applied the patch.

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

    • docs: correct the consequences of patching the version list

      The previous wording blamed getMariaDbSuffixKey(). That was wrong: every
      MariaDB branch there except 10.4 already returns the 10.6.11 key, so an
      unmatched version falling back to the same default is harmless.

      The actual damage from adding a pattern is elsewhere. getSqlVersion()
      returns the matched prefix, and two consumers key off it with entries for
      10.4./10.6./11.4. only: Dto\Factories\Table falls through to the 'default'
      charset, so declarative schema starts creating utf8mb3/utf8_general_ci
      tables alongside the existing utf8mb4 ones, and
      DbSchemaWriter::isNeedToSplitSql() returns false, dropping the ALTER
      splitting MariaDB relies on.

      Also state that the check lives entirely in Setup\Declaration\Schema, so
      it cannot break storefront rendering — broken pages after the abort come
      from the half-applied upgrade — and add a collation query for stores that
      already applied the patch.

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

    • docs: document supported DB versions and the MariaDB 10.11 gap (#26)

      Magento 2.4.8's SqlVersionProvider accepts only MySQL 5.7/8.0/8.4 and
      MariaDB 10.2-10.6/11.4, so a hosting-side upgrade from MariaDB 10.6 to
      10.11 aborts setup:upgrade with "Current version of RDBMS is not
      supported" while the storefront keeps running. That reaches us as an
      extension-compatibility report, because this module is popular exactly
      on hostings with older, hosting-managed stacks.

      Add a F.A.Q. entry with the accepted version list, state that the module
      imposes no database requirement of its own, and warn against patching
      di.xml as a workaround (getMariaDbSuffixKey() has no branch for those
      releases and falls back to its 10.6 profile, so declarative schema emits
      DDL against the wrong engine profile).

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

    • docs: document supported DB versions and the MariaDB 10.11 gap

      Magento 2.4.8's SqlVersionProvider accepts only MySQL 5.7/8.0/8.4 and
      MariaDB 10.2-10.6/11.4, so a hosting-side upgrade from MariaDB 10.6 to
      10.11 aborts setup:upgrade with "Current version of RDBMS is not
      supported" while the storefront keeps running. That reaches us as an
      extension-compatibility report, because this module is popular exactly
      on hostings with older, hosting-managed stacks.

      Add a F.A.Q. entry with the accepted version list, state that the module
      imposes no database requirement of its own, and warn against patching
      di.xml as a workaround (getMariaDbSuffixKey() has no branch for those
      releases and falls back to its 10.6 profile, so declarative schema emits
      DDL against the wrong engine profile).

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

breezefront / theme-frontend-breeze-enterprise-apollo

3 days ago success

swissup / floriteshop-chic-custom

3 days ago error

breezefront / theme-frontend-breeze-enterprise-blank

3 days ago success