From cd31fe5f5a008039f9e724b0d7e43b198ea7cd88 Mon Sep 17 00:00:00 2001
From: Jonathan Miller
Date: Fri, 29 May 2026 05:12:23 -0500
Subject: [PATCH 1/8] docs: add CONTRIBUTING.md linking to universal guide
[skip bump]
Authored-by: Moko Consulting
Co-Authored-By: Claude Opus 4.6 (1M context)
---
CONTRIBUTING.md | 30 ++++++++++++++++++++++++++++++
1 file changed, 30 insertions(+)
create mode 100644 CONTRIBUTING.md
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
new file mode 100644
index 0000000..bd9c4d1
--- /dev/null
+++ b/CONTRIBUTING.md
@@ -0,0 +1,30 @@
+# Contributing to MokoOnyx
+
+See the [universal contributing guide](https://git.mokoconsulting.tech/MokoConsulting/moko-platform/blob/main/CONTRIBUTING.md) for branching workflow, version policy, and code standards.
+
+## Repo-specific setup
+
+```bash
+composer install
+```
+
+## Building
+
+This is a Joomla site template. The source lives in `src/` and is packaged into a ZIP for installation.
+
+- CSS/JS minification is handled at build time (CI) and runtime (`MokoMinifyHelper`)
+- Custom theme CSS goes in `src/media/css/theme/`
+- Template overrides go in `src/html/`
+
+## Testing
+
+Install the template on a Joomla 5.x or 6.x site and verify:
+
+- Theme switching (light/dark/custom)
+- Mobile responsive behaviour (hamburger menu, layout)
+- Font Awesome icons render correctly
+- Table of Contents auto-generation works
+
+---
+
+*Moko Consulting *
--
2.52.0
From 2d140febb28aa6d6eadcdfb73493b946da200384 Mon Sep 17 00:00:00 2001
From: Jonathan Miller <1+jmiller@noreply.git.mokoconsulting.tech>
Date: Fri, 29 May 2026 10:31:57 +0000
Subject: [PATCH 2/8] chore: sync .mokogitea/workflows/auto-bump.yml from
moko-platform [skip ci]
---
.mokogitea/workflows/auto-bump.yml | 134 ++++++++++++++---------------
1 file changed, 67 insertions(+), 67 deletions(-)
diff --git a/.mokogitea/workflows/auto-bump.yml b/.mokogitea/workflows/auto-bump.yml
index 8673649..a397a9e 100644
--- a/.mokogitea/workflows/auto-bump.yml
+++ b/.mokogitea/workflows/auto-bump.yml
@@ -1,67 +1,67 @@
-# Copyright (C) 2026 Moko Consulting
-#
-# SPDX-License-Identifier: GPL-3.0-or-later
-#
-# FILE INFORMATION
-# DEFGROUP: Gitea.Workflow
-# INGROUP: moko-platform.Release
-# REPO: https://git.mokoconsulting.tech/MokoConsulting/moko-platform
-# PATH: /.mokogitea/workflows/auto-bump.yml
-# VERSION: 09.02.00
-# BRIEF: Auto patch-bump version on every push to dev (skips merge commits)
-
-name: "Universal: Auto Version Bump"
-
-on:
- push:
- branches:
- - dev
- - alpha
- - beta
- - rc
- - 'feature/**'
-
-env:
- FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: true
- GITEA_URL: ${{ vars.GITEA_URL || 'https://git.mokoconsulting.tech' }}
-
-permissions:
- contents: write
-
-jobs:
- bump:
- name: Version Bump
- runs-on: release
- if: >-
- !contains(github.event.head_commit.message, '[skip ci]') &&
- !contains(github.event.head_commit.message, '[skip bump]') &&
- !startsWith(github.event.head_commit.message, 'Merge pull request')
-
- steps:
- - name: Checkout
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
- with:
- token: ${{ secrets.MOKOGITEA_TOKEN }}
- fetch-depth: 1
-
- - name: Setup moko-platform tools
- run: |
- if ! command -v composer &> /dev/null; then
- sudo apt-get update -qq && sudo apt-get install -y -qq php-cli php-mbstring php-xml php-zip php-curl composer >/dev/null 2>&1
- fi
- if [ -d "/opt/moko-platform/cli" ]; then
- echo "MOKO_CLI=/opt/moko-platform/cli" >> "$GITHUB_ENV"
- else
- git clone --depth 1 --branch main --quiet \
- "https://x-access-token:${{ secrets.MOKOGITEA_TOKEN }}@git.mokoconsulting.tech/MokoConsulting/moko-platform.git" \
- /tmp/moko-platform-api
- cd /tmp/moko-platform-api && composer install --no-dev --no-interaction --quiet
- echo "MOKO_CLI=/tmp/moko-platform-api/cli" >> "$GITHUB_ENV"
- fi
-
- - name: Bump version
- run: |
- php ${MOKO_CLI}/version_auto_bump.php \
- --path . --branch "${GITHUB_REF_NAME}" \
- --token "${{ secrets.MOKOGITEA_TOKEN }}" \
- --repo-url "https://x-access-token:${{ secrets.MOKOGITEA_TOKEN }}@git.mokoconsulting.tech/${{ github.repository }}.git"
+# Copyright (C) 2026 Moko Consulting
+#
+# SPDX-License-Identifier: GPL-3.0-or-later
+#
+# FILE INFORMATION
+# DEFGROUP: Gitea.Workflow
+# INGROUP: moko-platform.Release
+# REPO: https://git.mokoconsulting.tech/MokoConsulting/moko-platform
+# PATH: /.mokogitea/workflows/auto-bump.yml
+# VERSION: 09.02.00
+# BRIEF: Auto patch-bump version on every push to dev (skips merge commits)
+
+name: "Universal: Auto Version Bump"
+
+on:
+ push:
+ branches:
+ - dev
+ - alpha
+ - beta
+ - rc
+ - 'feature/**'
+
+env:
+ FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: true
+ GITEA_URL: ${{ vars.GITEA_URL || 'https://git.mokoconsulting.tech' }}
+
+permissions:
+ contents: write
+
+jobs:
+ bump:
+ name: Version Bump
+ runs-on: release
+ if: >-
+ !contains(github.event.head_commit.message, '[skip ci]') &&
+ !contains(github.event.head_commit.message, '[skip bump]') &&
+ !startsWith(github.event.head_commit.message, 'Merge pull request')
+
+ steps:
+ - name: Checkout
+ uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
+ with:
+ token: ${{ secrets.MOKOGITEA_TOKEN }}
+ fetch-depth: 1
+
+ - name: Setup moko-platform tools
+ run: |
+ if ! command -v composer &> /dev/null; then
+ sudo apt-get update -qq && sudo apt-get install -y -qq php-cli php-mbstring php-xml php-zip php-curl composer >/dev/null 2>&1
+ fi
+ if [ -d "/opt/moko-platform/cli" ]; then
+ echo "MOKO_CLI=/opt/moko-platform/cli" >> "$GITHUB_ENV"
+ else
+ git clone --depth 1 --branch main --quiet \
+ "https://x-access-token:${{ secrets.MOKOGITEA_TOKEN }}@git.mokoconsulting.tech/MokoConsulting/moko-platform.git" \
+ /tmp/moko-platform-api
+ cd /tmp/moko-platform-api && composer install --no-dev --no-interaction --quiet
+ echo "MOKO_CLI=/tmp/moko-platform-api/cli" >> "$GITHUB_ENV"
+ fi
+
+ - name: Bump version
+ run: |
+ php ${MOKO_CLI}/version_auto_bump.php \
+ --path . --branch "${GITHUB_REF_NAME}" \
+ --token "${{ secrets.MOKOGITEA_TOKEN }}" \
+ --repo-url "https://x-access-token:${{ secrets.MOKOGITEA_TOKEN }}@git.mokoconsulting.tech/${{ github.repository }}.git"
--
2.52.0
From 613c3092945d261dbfc2ceae683f7b37d855f917 Mon Sep 17 00:00:00 2001
From: Jonathan Miller
Date: Fri, 29 May 2026 05:52:41 -0500
Subject: [PATCH 3/8] fix: add php_minimum, remove stale version comment [skip
bump]
Authored-by: Moko Consulting
Co-Authored-By: Claude Opus 4.6 (1M context)
---
src/templateDetails.xml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/templateDetails.xml b/src/templateDetails.xml
index 859482e..1d186f7 100644
--- a/src/templateDetails.xml
+++ b/src/templateDetails.xml
@@ -43,6 +43,7 @@
hello@mokoconsulting.tech
(C)GNU General Public License Version 3 - 2026 Moko Consulting

MokoOnyx
MokoOnyx is a modern, lightweight enhancement layer built on Joomla's Cassiopeia template. It adds Font Awesome 7, Bootstrap 5 helpers, automatic Table of Contents, advanced Dark Mode theming, and optional Google Tag Manager / GA4 integration — all with minimal core overrides for maximum upgrade compatibility.
Custom Colour Themes
Copy templates/mokoonyx/templates/light.custom.css to media/templates/site/mokoonyx/css/theme/light.custom.css (or dark equivalent), customise the CSS variables, then select "Custom" in the Theme tab.
Custom CSS & JavaScript
media/templates/site/mokoonyx/css/user.css — custom CSS overrides media/templates/site/mokoonyx/js/user.js — custom JavaScript
These files survive template updates.
]]>
+ 8.1.0
1
component.php
@@ -365,5 +366,4 @@
-
--
2.52.0
From bb8a59d8afb1ee9533deac7210129bf25a02db0c Mon Sep 17 00:00:00 2001
From: "gitea-actions[bot]"
Date: Fri, 29 May 2026 10:52:56 +0000
Subject: [PATCH 4/8] chore(version): auto-bump 02.09.01-dev [skip ci]
---
.mokogitea/manifest.xml | 2 +-
.mokogitea/workflows/issue-branch.yml | 2 +-
CHANGELOG.md | 4 ++--
SECURITY.md | 2 +-
src/html/com_joomgallery/category/default.php | 2 +-
src/html/com_joomgallery/category/default_cat.php | 2 +-
src/html/com_joomgallery/gallery/default.php | 2 +-
src/html/com_joomgallery/image/default.php | 2 +-
src/html/layouts/joomla/module/card.php | 2 +-
src/html/layouts/mokoonyx/article-metadata.php | 2 +-
src/media/css/a11y-high-contrast.css | 2 +-
src/templateDetails.xml | 2 +-
updates.xml | 2 +-
13 files changed, 14 insertions(+), 14 deletions(-)
diff --git a/.mokogitea/manifest.xml b/.mokogitea/manifest.xml
index 9febe09..b0a6860 100644
--- a/.mokogitea/manifest.xml
+++ b/.mokogitea/manifest.xml
@@ -8,7 +8,7 @@
Template - MokoOnyx
MokoConsulting
MokoOnyx - Joomla site template (successor to MokoCassiopeia)
- 02.09.00
+ 02.09.01
GNU General Public License v3
diff --git a/.mokogitea/workflows/issue-branch.yml b/.mokogitea/workflows/issue-branch.yml
index f084fe1..d08e87a 100644
--- a/.mokogitea/workflows/issue-branch.yml
+++ b/.mokogitea/workflows/issue-branch.yml
@@ -5,7 +5,7 @@
# FILE INFORMATION
# DEFGROUP: Gitea.Workflow
# INGROUP: moko-platform.Automation
-# VERSION: 01.00.00
+# VERSION: 02.09.01
# BRIEF: Auto-create feature branch when an issue is opened
name: "Universal: Issue Branch"
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 14bfa7e..261ab91 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -8,11 +8,11 @@
DEFGROUP: Joomla.Template.Site
INGROUP: MokoOnyx.Documentation
PATH: ./CHANGELOG.md
- VERSION: 03.09.03
+ VERSION: 02.09.01
BRIEF: Changelog file documenting version history of MokoOnyx
-->
-# Changelog — MokoOnyx (VERSION: 03.09.03)
+# Changelog — MokoOnyx (VERSION: 02.09.01)
## [Unreleased]
## [02.08.00] --- 2026-05-29
diff --git a/SECURITY.md b/SECURITY.md
index 7016afe..9647471 100644
--- a/SECURITY.md
+++ b/SECURITY.md
@@ -10,7 +10,7 @@
INGROUP: MokoOnyx.Governance
REPO: https://git.mokoconsulting.tech/MokoConsulting/MokoOnyx
FILE: SECURITY.md
- VERSION: 03.09.03
+ VERSION: 02.09.01
BRIEF: Security policy and vulnerability reporting process for MokoOnyx.
PATH: /SECURITY.md
NOTE: This policy is process oriented and does not replace secure engineering practices.
diff --git a/src/html/com_joomgallery/category/default.php b/src/html/com_joomgallery/category/default.php
index a3118e2..c2a07a9 100644
--- a/src/html/com_joomgallery/category/default.php
+++ b/src/html/com_joomgallery/category/default.php
@@ -11,7 +11,7 @@
* INGROUP: MokoOnyx
* REPO: https://git.mokoconsulting.tech/MokoConsulting/MokoOnyx
* PATH: /html/com_joomgallery/category/default.php
- * VERSION: 01.00.00
+ * VERSION: 02.09.01
* BRIEF: Category view override — password gate then loads default_cat sub-layout
*/
diff --git a/src/html/com_joomgallery/category/default_cat.php b/src/html/com_joomgallery/category/default_cat.php
index fbbcad2..a5b62ac 100644
--- a/src/html/com_joomgallery/category/default_cat.php
+++ b/src/html/com_joomgallery/category/default_cat.php
@@ -11,7 +11,7 @@
* INGROUP: MokoOnyx
* REPO: https://git.mokoconsulting.tech/MokoConsulting/MokoOnyx
* PATH: /html/com_joomgallery/category/default_cat.php
- * VERSION: 01.00.00
+ * VERSION: 02.09.01
* BRIEF: Category sub-layout — subcategories grid + images grid with pagination
*/
diff --git a/src/html/com_joomgallery/gallery/default.php b/src/html/com_joomgallery/gallery/default.php
index 8eb0aae..f3e62ba 100644
--- a/src/html/com_joomgallery/gallery/default.php
+++ b/src/html/com_joomgallery/gallery/default.php
@@ -11,7 +11,7 @@
* INGROUP: MokoOnyx
* REPO: https://git.mokoconsulting.tech/MokoConsulting/MokoOnyx
* PATH: /html/com_joomgallery/gallery/default.php
- * VERSION: 01.00.00
+ * VERSION: 02.09.01
* BRIEF: Gallery view override — main image grid with masonry/justified layout
*/
diff --git a/src/html/com_joomgallery/image/default.php b/src/html/com_joomgallery/image/default.php
index 536fcdc..ba2b27e 100644
--- a/src/html/com_joomgallery/image/default.php
+++ b/src/html/com_joomgallery/image/default.php
@@ -11,7 +11,7 @@
* INGROUP: MokoOnyx
* REPO: https://git.mokoconsulting.tech/MokoConsulting/MokoOnyx
* PATH: /html/com_joomgallery/image/default.php
- * VERSION: 01.00.00
+ * VERSION: 02.09.01
* BRIEF: Image detail view override — single image with metadata, tags, custom fields
*/
diff --git a/src/html/layouts/joomla/module/card.php b/src/html/layouts/joomla/module/card.php
index 1c9de60..52bf39e 100644
--- a/src/html/layouts/joomla/module/card.php
+++ b/src/html/layouts/joomla/module/card.php
@@ -10,7 +10,7 @@
* INGROUP: MokoOnyx
* REPO: https://git.mokoconsulting.tech/MokoConsulting/MokoOnyx
* PATH: /html/layouts/joomla/module/card.php
- * VERSION: 01.00.07
+ * VERSION: 02.09.01
* BRIEF: Custom card module chrome — renders module titles for all modules
*/
diff --git a/src/html/layouts/mokoonyx/article-metadata.php b/src/html/layouts/mokoonyx/article-metadata.php
index 418f164..9509c63 100644
--- a/src/html/layouts/mokoonyx/article-metadata.php
+++ b/src/html/layouts/mokoonyx/article-metadata.php
@@ -11,7 +11,7 @@
* INGROUP: MokoOnyx.Layouts
* REPO: https://git.mokoconsulting.tech/MokoConsulting/MokoOnyx
* PATH: /src/html/layouts/mokoonyx/article-metadata.php
- * VERSION: 03.09.04
+ * VERSION: 02.09.01
* BRIEF: Article metadata footer layout -- renders jcfields grouped by field group
*/
diff --git a/src/media/css/a11y-high-contrast.css b/src/media/css/a11y-high-contrast.css
index dac45c4..ac1a13c 100644
--- a/src/media/css/a11y-high-contrast.css
+++ b/src/media/css/a11y-high-contrast.css
@@ -10,7 +10,7 @@
* INGROUP: MokoOnyx.Accessibility
* REPO: https://git.mokoconsulting.tech/MokoConsulting/MokoOnyx
* PATH: ./media/css/a11y-high-contrast.css
- * VERSION: 03.09.14
+ * VERSION: 02.09.01
* BRIEF: High-contrast stylesheet for accessibility toolbar
*/
diff --git a/src/templateDetails.xml b/src/templateDetails.xml
index 1d186f7..fa98770 100644
--- a/src/templateDetails.xml
+++ b/src/templateDetails.xml
@@ -36,7 +36,7 @@
Template - MokoOnyx
- 02.08.00-dev
+ 02.09.01-dev
script.php
2026-05-16
Jonathan Miller || Moko Consulting
diff --git a/updates.xml b/updates.xml
index bbef77b..0af0498 100644
--- a/updates.xml
+++ b/updates.xml
@@ -1,7 +1,7 @@
--
2.52.0
From da84c02ba6c298d4ea12f88513025628e38d9f2b Mon Sep 17 00:00:00 2001
From: Jonathan Miller
Date: Fri, 29 May 2026 05:53:57 -0500
Subject: [PATCH 5/8] style: add margin-right to .fa-regular icons
Authored-by: Moko Consulting
Co-Authored-By: Claude Opus 4.6 (1M context)
---
src/media/css/template.css | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/src/media/css/template.css b/src/media/css/template.css
index 129d4c4..dc5b887 100644
--- a/src/media/css/template.css
+++ b/src/media/css/template.css
@@ -23510,3 +23510,7 @@ font-size: 0.8125rem;
.fa-solid {
margin-right: 0.25rem;
}
+
+.fa-regular {
+ margin-right: 0.25rem;
+}
--
2.52.0
From c2c2389d718991aacd39e6e0b6804ce0171c10b7 Mon Sep 17 00:00:00 2001
From: "gitea-actions[bot]"
Date: Fri, 29 May 2026 10:54:33 +0000
Subject: [PATCH 6/8] chore(version): auto-bump 02.09.02-dev [skip ci]
---
.mokogitea/manifest.xml | 2 +-
.mokogitea/workflows/issue-branch.yml | 2 +-
CHANGELOG.md | 4 ++--
SECURITY.md | 2 +-
src/html/com_joomgallery/category/default.php | 2 +-
src/html/com_joomgallery/category/default_cat.php | 2 +-
src/html/com_joomgallery/gallery/default.php | 2 +-
src/html/com_joomgallery/image/default.php | 2 +-
src/html/layouts/joomla/module/card.php | 2 +-
src/html/layouts/mokoonyx/article-metadata.php | 2 +-
src/media/css/a11y-high-contrast.css | 2 +-
src/templateDetails.xml | 2 +-
updates.xml | 2 +-
13 files changed, 14 insertions(+), 14 deletions(-)
diff --git a/.mokogitea/manifest.xml b/.mokogitea/manifest.xml
index b0a6860..5af7967 100644
--- a/.mokogitea/manifest.xml
+++ b/.mokogitea/manifest.xml
@@ -8,7 +8,7 @@
Template - MokoOnyx
MokoConsulting
MokoOnyx - Joomla site template (successor to MokoCassiopeia)
- 02.09.01
+ 02.09.02
GNU General Public License v3
diff --git a/.mokogitea/workflows/issue-branch.yml b/.mokogitea/workflows/issue-branch.yml
index d08e87a..becb3a5 100644
--- a/.mokogitea/workflows/issue-branch.yml
+++ b/.mokogitea/workflows/issue-branch.yml
@@ -5,7 +5,7 @@
# FILE INFORMATION
# DEFGROUP: Gitea.Workflow
# INGROUP: moko-platform.Automation
-# VERSION: 02.09.01
+# VERSION: 02.09.02
# BRIEF: Auto-create feature branch when an issue is opened
name: "Universal: Issue Branch"
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 261ab91..f1868e2 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -8,11 +8,11 @@
DEFGROUP: Joomla.Template.Site
INGROUP: MokoOnyx.Documentation
PATH: ./CHANGELOG.md
- VERSION: 02.09.01
+ VERSION: 02.09.02
BRIEF: Changelog file documenting version history of MokoOnyx
-->
-# Changelog — MokoOnyx (VERSION: 02.09.01)
+# Changelog — MokoOnyx (VERSION: 02.09.02)
## [Unreleased]
## [02.08.00] --- 2026-05-29
diff --git a/SECURITY.md b/SECURITY.md
index 9647471..ce424e0 100644
--- a/SECURITY.md
+++ b/SECURITY.md
@@ -10,7 +10,7 @@
INGROUP: MokoOnyx.Governance
REPO: https://git.mokoconsulting.tech/MokoConsulting/MokoOnyx
FILE: SECURITY.md
- VERSION: 02.09.01
+ VERSION: 02.09.02
BRIEF: Security policy and vulnerability reporting process for MokoOnyx.
PATH: /SECURITY.md
NOTE: This policy is process oriented and does not replace secure engineering practices.
diff --git a/src/html/com_joomgallery/category/default.php b/src/html/com_joomgallery/category/default.php
index c2a07a9..f806229 100644
--- a/src/html/com_joomgallery/category/default.php
+++ b/src/html/com_joomgallery/category/default.php
@@ -11,7 +11,7 @@
* INGROUP: MokoOnyx
* REPO: https://git.mokoconsulting.tech/MokoConsulting/MokoOnyx
* PATH: /html/com_joomgallery/category/default.php
- * VERSION: 02.09.01
+ * VERSION: 02.09.02
* BRIEF: Category view override — password gate then loads default_cat sub-layout
*/
diff --git a/src/html/com_joomgallery/category/default_cat.php b/src/html/com_joomgallery/category/default_cat.php
index a5b62ac..f09db12 100644
--- a/src/html/com_joomgallery/category/default_cat.php
+++ b/src/html/com_joomgallery/category/default_cat.php
@@ -11,7 +11,7 @@
* INGROUP: MokoOnyx
* REPO: https://git.mokoconsulting.tech/MokoConsulting/MokoOnyx
* PATH: /html/com_joomgallery/category/default_cat.php
- * VERSION: 02.09.01
+ * VERSION: 02.09.02
* BRIEF: Category sub-layout — subcategories grid + images grid with pagination
*/
diff --git a/src/html/com_joomgallery/gallery/default.php b/src/html/com_joomgallery/gallery/default.php
index f3e62ba..a87a87f 100644
--- a/src/html/com_joomgallery/gallery/default.php
+++ b/src/html/com_joomgallery/gallery/default.php
@@ -11,7 +11,7 @@
* INGROUP: MokoOnyx
* REPO: https://git.mokoconsulting.tech/MokoConsulting/MokoOnyx
* PATH: /html/com_joomgallery/gallery/default.php
- * VERSION: 02.09.01
+ * VERSION: 02.09.02
* BRIEF: Gallery view override — main image grid with masonry/justified layout
*/
diff --git a/src/html/com_joomgallery/image/default.php b/src/html/com_joomgallery/image/default.php
index ba2b27e..ef7efb2 100644
--- a/src/html/com_joomgallery/image/default.php
+++ b/src/html/com_joomgallery/image/default.php
@@ -11,7 +11,7 @@
* INGROUP: MokoOnyx
* REPO: https://git.mokoconsulting.tech/MokoConsulting/MokoOnyx
* PATH: /html/com_joomgallery/image/default.php
- * VERSION: 02.09.01
+ * VERSION: 02.09.02
* BRIEF: Image detail view override — single image with metadata, tags, custom fields
*/
diff --git a/src/html/layouts/joomla/module/card.php b/src/html/layouts/joomla/module/card.php
index 52bf39e..bf0cd1f 100644
--- a/src/html/layouts/joomla/module/card.php
+++ b/src/html/layouts/joomla/module/card.php
@@ -10,7 +10,7 @@
* INGROUP: MokoOnyx
* REPO: https://git.mokoconsulting.tech/MokoConsulting/MokoOnyx
* PATH: /html/layouts/joomla/module/card.php
- * VERSION: 02.09.01
+ * VERSION: 02.09.02
* BRIEF: Custom card module chrome — renders module titles for all modules
*/
diff --git a/src/html/layouts/mokoonyx/article-metadata.php b/src/html/layouts/mokoonyx/article-metadata.php
index 9509c63..a0b2e69 100644
--- a/src/html/layouts/mokoonyx/article-metadata.php
+++ b/src/html/layouts/mokoonyx/article-metadata.php
@@ -11,7 +11,7 @@
* INGROUP: MokoOnyx.Layouts
* REPO: https://git.mokoconsulting.tech/MokoConsulting/MokoOnyx
* PATH: /src/html/layouts/mokoonyx/article-metadata.php
- * VERSION: 02.09.01
+ * VERSION: 02.09.02
* BRIEF: Article metadata footer layout -- renders jcfields grouped by field group
*/
diff --git a/src/media/css/a11y-high-contrast.css b/src/media/css/a11y-high-contrast.css
index ac1a13c..d8ac8f9 100644
--- a/src/media/css/a11y-high-contrast.css
+++ b/src/media/css/a11y-high-contrast.css
@@ -10,7 +10,7 @@
* INGROUP: MokoOnyx.Accessibility
* REPO: https://git.mokoconsulting.tech/MokoConsulting/MokoOnyx
* PATH: ./media/css/a11y-high-contrast.css
- * VERSION: 02.09.01
+ * VERSION: 02.09.02
* BRIEF: High-contrast stylesheet for accessibility toolbar
*/
diff --git a/src/templateDetails.xml b/src/templateDetails.xml
index fa98770..701973b 100644
--- a/src/templateDetails.xml
+++ b/src/templateDetails.xml
@@ -36,7 +36,7 @@
Template - MokoOnyx
- 02.09.01-dev
+ 02.09.02-dev
script.php
2026-05-16
Jonathan Miller || Moko Consulting
diff --git a/updates.xml b/updates.xml
index 0af0498..a3a4196 100644
--- a/updates.xml
+++ b/updates.xml
@@ -1,7 +1,7 @@
--
2.52.0
From 3fc84f5aaadbff29ae85958a3a9d82ee171e27dc Mon Sep 17 00:00:00 2001
From: Jonathan Miller
Date: Fri, 29 May 2026 18:41:01 -0500
Subject: [PATCH 7/8] fix(workflows): trigger promote-rc on PR opened to main
[skip bump]
Authored-by: Moko Consulting
Co-Authored-By: Claude Opus 4.6 (1M context)
---
.mokogitea/workflows/auto-release.yml | 82 +++++++++++++++++++++------
1 file changed, 65 insertions(+), 17 deletions(-)
diff --git a/.mokogitea/workflows/auto-release.yml b/.mokogitea/workflows/auto-release.yml
index 72ce95a..5216e6b 100644
--- a/.mokogitea/workflows/auto-release.yml
+++ b/.mokogitea/workflows/auto-release.yml
@@ -51,12 +51,12 @@ permissions:
contents: write
jobs:
- # ── Draft PR → Promote highest pre-release to RC ─────────────────────────────
+ # ── PR Opened → Rename branch to RC and build RC release ─────────────────────
promote-rc:
- name: Promote Pre-Release to RC
+ name: Promote to RC
runs-on: release
if: >-
- (github.event.action == 'opened' && github.event.pull_request.draft == true) ||
+ (github.event.action == 'opened' && github.event.pull_request.merged != true) ||
(github.event_name == 'workflow_dispatch' && inputs.action == 'promote-rc')
steps:
@@ -82,14 +82,56 @@ jobs:
cd /tmp/moko-platform-api
composer install --no-dev --no-interaction --quiet
- - name: Promote to release-candidate
+ - name: Rename source branch to rc
run: |
+ SOURCE_BRANCH="${{ github.event.pull_request.head.ref || 'dev' }}"
API_BASE="${GITEA_URL}/api/v1/repos/${GITEA_ORG}/${GITEA_REPO}"
- php /tmp/moko-platform-api/cli/release_promote.php \
- --from auto --to release-candidate \
+ PR_NUM="${{ github.event.pull_request.number }}"
+ php /tmp/moko-platform-api/cli/branch_rename.php \
+ --from "$SOURCE_BRANCH" --to rc \
--token "${{ secrets.MOKOGITEA_TOKEN }}" \
--api-base "${API_BASE}" \
- --branch "${{ github.event.pull_request.head.ref || 'dev' }}"
+ --pr "$PR_NUM"
+
+ - name: Set RC version on renamed branch
+ run: |
+ # Checkout the new rc branch
+ git fetch origin rc
+ git checkout rc
+ API_BASE="${GITEA_URL}/api/v1/repos/${GITEA_ORG}/${GITEA_REPO}"
+ MOKO_CLI="/tmp/moko-platform-api/cli"
+
+ VERSION=$(php ${MOKO_CLI}/version_read.php --path .) || true
+ [ -z "$VERSION" ] && { echo "No version — skipping"; exit 0; }
+
+ php ${MOKO_CLI}/version_set_platform.php \
+ --path . --version "$VERSION" --branch rc --stability rc 2>/dev/null || true
+ php ${MOKO_CLI}/version_check.php --path . --fix 2>/dev/null || true
+
+ if ! git diff --quiet || ! git diff --cached --quiet; then
+ git config --local user.email "gitea-actions[bot]@mokoconsulting.tech"
+ git config --local user.name "gitea-actions[bot]"
+ git add -A
+ git commit -m "chore(version): set RC stability suffix [skip ci]" \
+ --author="gitea-actions[bot] "
+ git push origin rc
+ fi
+
+ - name: Build RC release
+ run: |
+ API_BASE="${GITEA_URL}/api/v1/repos/${GITEA_ORG}/${GITEA_REPO}"
+ MOKO_CLI="/tmp/moko-platform-api/cli"
+ VERSION=$(php ${MOKO_CLI}/version_read.php --path .) || true
+
+ php ${MOKO_CLI}/release_create.php \
+ --path . --version "$VERSION" --tag "release-candidate" \
+ --token "${{ secrets.MOKOGITEA_TOKEN }}" --api-base "$API_BASE" \
+ --repo "${GITEA_REPO}" --branch rc 2>&1 || true
+
+ php ${MOKO_CLI}/release_package.php \
+ --path . --version "$VERSION" --tag "release-candidate" \
+ --token "${{ secrets.MOKOGITEA_TOKEN }}" --api-base "$API_BASE" \
+ --repo "${GITEA_REPO}" --output /tmp 2>&1 || true
- name: Cascade lesser channels
continue-on-error: true
@@ -104,7 +146,7 @@ jobs:
if: always()
run: |
echo "## Promoted to Release Candidate" >> $GITHUB_STEP_SUMMARY
- echo "Draft PR opened — promoted highest pre-release to RC" >> $GITHUB_STEP_SUMMARY
+ echo "Draft PR opened — branch renamed to rc, RC release built" >> $GITHUB_STEP_SUMMARY
# ── Merged PR → Build & Release (or promote RC to stable) ────────────────────
release:
@@ -165,9 +207,8 @@ jobs:
echo "skip=true" >> "$GITHUB_OUTPUT"
exit 0
fi
- # Strip any pre-release suffix merged from dev (e.g. 01.02.20-dev → 01.02.20)
- VERSION=$(echo "$VERSION" | sed 's/-\(dev\|alpha\|beta\|rc\)$//')
- MAJOR=$(echo "$VERSION" | cut -d. -f1)
+ # version_set_platform strips suffixes internally when --stability stable
+ MAJOR=$(echo "$VERSION" | cut -d. -f1 | sed 's/-.*//')
echo "version=${VERSION}" >> "$GITHUB_OUTPUT"
echo "release_tag=stable" >> "$GITHUB_OUTPUT"
echo "skip=false" >> "$GITHUB_OUTPUT"
@@ -181,7 +222,7 @@ jobs:
API_BASE="${GITEA_URL}/api/v1/repos/${GITEA_ORG}/${GITEA_REPO}"
RC_JSON=$(curl -sf -H "Authorization: token ${{ secrets.MOKOGITEA_TOKEN }}" \
"${API_BASE}/releases/tags/release-candidate" 2>/dev/null || echo "{}")
- RC_ID=$(echo "$RC_JSON" | python3 -c "import sys,json; d=json.load(sys.stdin); print(d.get('id',''))" 2>/dev/null || true)
+ RC_ID=$(echo "$RC_JSON" | php -r "\$d=json_decode(file_get_contents('php://stdin'),true); echo \$d['id'] ?? '';" 2>/dev/null || true)
if [ -n "$RC_ID" ] && [ "$RC_ID" != "None" ] && [ "$RC_ID" != "" ]; then
echo "promote=true" >> "$GITHUB_OUTPUT"
@@ -201,8 +242,7 @@ jobs:
MOKO_API="/tmp/moko-platform-api/cli"
php ${MOKO_API}/version_bump.php --path . --minor 2>&1 || true
VERSION=$(php ${MOKO_API}/version_read.php --path .)
- # Strip any pre-release suffix — stable releases have no suffix
- VERSION=$(echo "$VERSION" | sed 's/-\(dev\|alpha\|beta\|rc\)$//')
+ # version_set_platform handles suffix stripping — just pass clean base version
echo "version=${VERSION}" >> "$GITHUB_OUTPUT"
echo "Bumped to: ${VERSION}"
@@ -376,7 +416,7 @@ jobs:
API="${GITEA_URL}/api/v1/repos/${{ github.repository }}"
curl -sf -H "Authorization: token ${GITEA_TOKEN}" \
"${API}/contents/updates.xml?ref=main" 2>/dev/null | \
- python3 -c "import sys,json,base64; print(base64.b64decode(json.load(sys.stdin)['content']).decode())" \
+ php -r "\$d=json_decode(file_get_contents('php://stdin'),true); echo base64_decode(\$d['content'] ?? '');" \
> updates.xml 2>/dev/null || true
SHA_FLAG=""
@@ -457,13 +497,21 @@ jobs:
--token "${{ secrets.MOKOGITEA_TOKEN }}" \
--api-base "${API_BASE}" 2>/dev/null || true
- - name: "Step 11: Delete and recreate dev branch from main"
+ - name: "Step 11: Clean up pre-release branches and recreate dev from main"
if: steps.version.outputs.skip != 'true'
continue-on-error: true
run: |
API_BASE="${GITEA_URL}/api/v1/repos/${GITEA_ORG}/${GITEA_REPO}"
TOKEN="${{ secrets.MOKOGITEA_TOKEN }}"
+ # Delete ephemeral pre-release branches (rc, alpha, beta)
+ for EPHEMERAL in rc alpha beta; do
+ curl -sf -X DELETE -H "Authorization: token ${TOKEN}" \
+ "${API_BASE}/branches/${EPHEMERAL}" 2>/dev/null \
+ && echo "Deleted ${EPHEMERAL} branch" \
+ || echo "${EPHEMERAL} branch not found"
+ done
+
# Delete dev branch
curl -sf -X DELETE -H "Authorization: token ${TOKEN}" \
"${API_BASE}/branches/dev" 2>/dev/null && echo "Deleted dev branch"
@@ -474,7 +522,7 @@ jobs:
"${API_BASE}/branches" \
-d '{"new_branch_name":"dev","old_branch_name":"main"}' 2>/dev/null && echo "Recreated dev from main"
- echo "Dev branch reset from main (keeps dev ahead after release)" >> $GITHUB_STEP_SUMMARY
+ echo "Pre-release branches cleaned, dev reset from main" >> $GITHUB_STEP_SUMMARY
- name: "Step 12: Create version branch from main"
if: steps.version.outputs.skip != 'true'
--
2.52.0
From 8353651f8da9be9153ae12f51ba9601b0e31d70c Mon Sep 17 00:00:00 2001
From: "gitea-actions[bot]"
Date: Sat, 30 May 2026 00:27:35 +0000
Subject: [PATCH 8/8] chore(version): set RC stability suffix [skip ci]
---
src/templateDetails.xml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/templateDetails.xml b/src/templateDetails.xml
index 701973b..94cb8c8 100644
--- a/src/templateDetails.xml
+++ b/src/templateDetails.xml
@@ -36,7 +36,7 @@
Template - MokoOnyx
- 02.09.02-dev
+ 02.09.02-rc
script.php
2026-05-16
Jonathan Miller || Moko Consulting
--
2.52.0