diff --git a/.mokogitea/manifest.xml b/.mokogitea/manifest.xml
index 738558b..7404636 100644
--- a/.mokogitea/manifest.xml
+++ b/.mokogitea/manifest.xml
@@ -1,19 +1,24 @@
+
-
- MokoOpenGraph
- MokoConsulting
- Open Graph, SEO meta tags, and social sharing image management for Joomla articles and menu items
- GNU General Public License v3
-
-
- joomla
- 05.00.00
- https://git.mokoconsulting.tech/MokoConsulting/moko-platform
-
-
- PHP
- joomla-extension
- src/
-
+
+ MokoOpenGraph
+ MokoConsulting
+ Open Graph, SEO meta tags, and social sharing image management for Joomla articles and menu items
+ GNU General Public License v3
+
+
+ joomla
+ 05.00.00
+ https://git.mokoconsulting.tech/MokoConsulting/moko-platform
+ 2026-05-23T22:16:00+00:00
+
+
+ PHP
+ joomla-extension
+ src/
+
diff --git a/.mokogitea/workflows/deploy-manual.yml b/.mokogitea/workflows/deploy-manual.yml
deleted file mode 100644
index bb133ed..0000000
--- a/.mokogitea/workflows/deploy-manual.yml
+++ /dev/null
@@ -1,126 +0,0 @@
-# Copyright (C) 2026 Moko Consulting
-#
-# SPDX-License-Identifier: GPL-3.0-or-later
-#
-# FILE INFORMATION
-# DEFGROUP: Gitea.Workflow
-# INGROUP: MokoStandards.Deploy
-# REPO: https://git.mokoconsulting.tech/MokoConsulting/MokoStandards-API
-# PATH: /templates/workflows/joomla/deploy-manual.yml.template
-# VERSION: 04.07.00
-# BRIEF: Manual SFTP deploy to dev server for Joomla repos
-
-name: "Universal: Deploy to Dev (Manual)"
-
-on:
- workflow_dispatch:
- inputs:
- clear_remote:
- description: 'Delete all remote files before uploading'
- required: false
- default: 'false'
- type: boolean
-
-env:
- FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: true
-
-permissions:
- contents: read
-
-jobs:
- deploy:
- name: SFTP Deploy to Dev
- runs-on: ubuntu-latest
-
- steps:
- - name: Checkout repository
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
-
- - name: Setup PHP
- run: |
- php -v && composer --version
-
- - name: Setup MokoStandards tools
- env:
- GA_TOKEN: ${{ secrets.GA_TOKEN || secrets.GA_TOKEN || github.token }}
- MOKO_CLONE_TOKEN: ${{ secrets.GA_TOKEN || secrets.GA_TOKEN || github.token }}
- MOKO_CLONE_HOST: ${{ secrets.GA_TOKEN && 'git.mokoconsulting.tech/MokoConsulting' || 'github.com/mokoconsulting-tech' }}
- COMPOSER_AUTH: '{"github-oauth":{"github.com":"${{ secrets.GA_TOKEN || github.token }}"}}'
- run: |
- git clone --depth 1 --branch main --quiet \
- "https://x-access-token:${MOKO_CLONE_TOKEN}@${MOKO_CLONE_HOST}/MokoStandards-API.git" \
- /tmp/mokostandards-api 2>/dev/null || true
- if [ -d "/tmp/mokostandards-api" ] && [ -f "/tmp/mokostandards-api/composer.json" ]; then
- cd /tmp/mokostandards-api && composer install --no-dev --no-interaction --quiet 2>/dev/null || true
- fi
-
- - name: Check FTP configuration
- id: check
- env:
- HOST: ${{ vars.DEV_FTP_HOST }}
- PATH_VAR: ${{ vars.DEV_FTP_PATH }}
- PORT: ${{ vars.DEV_FTP_PORT }}
- run: |
- if [ -z "$HOST" ] || [ -z "$PATH_VAR" ]; then
- echo "DEV_FTP_HOST or DEV_FTP_PATH not configured -- cannot deploy"
- echo "skip=true" >> "$GITHUB_OUTPUT"
- exit 0
- fi
- echo "skip=false" >> "$GITHUB_OUTPUT"
- echo "host=$HOST" >> "$GITHUB_OUTPUT"
-
- REMOTE="${PATH_VAR%/}"
- echo "remote=$REMOTE" >> "$GITHUB_OUTPUT"
-
- [ -z "$PORT" ] && PORT="22"
- echo "port=$PORT" >> "$GITHUB_OUTPUT"
-
- - name: Deploy via SFTP
- if: steps.check.outputs.skip != 'true'
- env:
- SFTP_KEY: ${{ secrets.DEV_FTP_KEY }}
- SFTP_PASS: ${{ secrets.DEV_FTP_PASSWORD }}
- SFTP_USER: ${{ vars.DEV_FTP_USERNAME }}
- run: |
- SOURCE_DIR="src"
- [ ! -d "$SOURCE_DIR" ] && SOURCE_DIR="htdocs"
- [ ! -d "$SOURCE_DIR" ] && { echo "No src/ or htdocs/ -- nothing to deploy"; exit 0; }
-
- printf '{"host":"%s","port":%s,"username":"%s","remotePath":"%s"' \
- "${{ steps.check.outputs.host }}" "${{ steps.check.outputs.port }}" "$SFTP_USER" "${{ steps.check.outputs.remote }}" \
- > /tmp/sftp-config.json
-
- if [ -n "$SFTP_KEY" ]; then
- echo "$SFTP_KEY" > /tmp/deploy_key
- chmod 600 /tmp/deploy_key
- printf ',"privateKeyPath":"/tmp/deploy_key"}' >> /tmp/sftp-config.json
- else
- printf ',"password":"%s"}' "$SFTP_PASS" >> /tmp/sftp-config.json
- fi
-
- DEPLOY_ARGS=(--path . --src-dir "$SOURCE_DIR" --config /tmp/sftp-config.json)
- [ "${{ inputs.clear_remote }}" = "true" ] && DEPLOY_ARGS+=(--clear-remote)
-
- PLATFORM=$(php /tmp/mokostandards-api/cli/platform_detect.php --path . 2>/dev/null || true)
- if [ "$PLATFORM" = "waas-component" ] && [ -f "/tmp/mokostandards-api/deploy/deploy-joomla.php" ]; then
- php /tmp/mokostandards-api/deploy/deploy-joomla.php "${DEPLOY_ARGS[@]}"
- else
- php /tmp/mokostandards-api/deploy/deploy-sftp.php "${DEPLOY_ARGS[@]}"
- fi
-
- rm -f /tmp/deploy_key /tmp/sftp-config.json
-
- - name: Summary
- if: always()
- run: |
- if [ "${{ steps.check.outputs.skip }}" = "true" ]; then
- echo "### Deploy Skipped -- FTP not configured" >> $GITHUB_STEP_SUMMARY
- else
- echo "### Manual Dev Deploy Complete" >> $GITHUB_STEP_SUMMARY
- echo "" >> $GITHUB_STEP_SUMMARY
- echo "| Field | Value |" >> $GITHUB_STEP_SUMMARY
- echo "|-------|-------|" >> $GITHUB_STEP_SUMMARY
- echo "| Host | \`${{ steps.check.outputs.host }}\` |" >> $GITHUB_STEP_SUMMARY
- echo "| Remote | \`${{ steps.check.outputs.remote }}\` |" >> $GITHUB_STEP_SUMMARY
- echo "| Clear | ${{ inputs.clear_remote }} |" >> $GITHUB_STEP_SUMMARY
- fi
diff --git a/updates.xml b/updates.xml
index dd2dd65..03eebe2 100644
--- a/updates.xml
+++ b/updates.xml
@@ -1,4 +1,95 @@
+
+
+ MokoOpenGraph
+ MokoOpenGraph stable build.
+ pkg_mokoog
+ package
+ 01.00.00
+ 2026-05-23
+ https://git.mokoconsulting.tech/MokoConsulting/MokoOpenGraph/releases/tag/v01
+
+ https://git.mokoconsulting.tech/MokoConsulting/MokoOpenGraph/releases/download/v01/pkg_mokoog-01.00.00.zip
+
+ e2262d9e515af284d6837627d63fb7ef7376aea5c50bebd1f4ea4e92a4ae4a6d
+ development
+ Moko Consulting
+ https://mokoconsulting.tech
+
+
+
+
+ MokoOpenGraph
+ MokoOpenGraph stable build.
+ pkg_mokoog
+ package
+ 01.00.00
+ 2026-05-23
+ https://git.mokoconsulting.tech/MokoConsulting/MokoOpenGraph/releases/tag/v01
+
+ https://git.mokoconsulting.tech/MokoConsulting/MokoOpenGraph/releases/download/v01/pkg_mokoog-01.00.00.zip
+
+ e2262d9e515af284d6837627d63fb7ef7376aea5c50bebd1f4ea4e92a4ae4a6d
+ alpha
+ Moko Consulting
+ https://mokoconsulting.tech
+
+
+
+
+ MokoOpenGraph
+ MokoOpenGraph stable build.
+ pkg_mokoog
+ package
+ 01.00.00
+ 2026-05-23
+ https://git.mokoconsulting.tech/MokoConsulting/MokoOpenGraph/releases/tag/v01
+
+ https://git.mokoconsulting.tech/MokoConsulting/MokoOpenGraph/releases/download/v01/pkg_mokoog-01.00.00.zip
+
+ e2262d9e515af284d6837627d63fb7ef7376aea5c50bebd1f4ea4e92a4ae4a6d
+ beta
+ Moko Consulting
+ https://mokoconsulting.tech
+
+
+
+
+ MokoOpenGraph
+ MokoOpenGraph stable build.
+ pkg_mokoog
+ package
+ 01.00.00
+ 2026-05-23
+ https://git.mokoconsulting.tech/MokoConsulting/MokoOpenGraph/releases/tag/v01
+
+ https://git.mokoconsulting.tech/MokoConsulting/MokoOpenGraph/releases/download/v01/pkg_mokoog-01.00.00.zip
+
+ e2262d9e515af284d6837627d63fb7ef7376aea5c50bebd1f4ea4e92a4ae4a6d
+ rc
+ Moko Consulting
+ https://mokoconsulting.tech
+
+
+
+
+ MokoOpenGraph
+ MokoOpenGraph stable build.
+ pkg_mokoog
+ package
+ 01.00.00
+ 2026-05-23
+ https://git.mokoconsulting.tech/MokoConsulting/MokoOpenGraph/releases/tag/v01
+
+ https://git.mokoconsulting.tech/MokoConsulting/MokoOpenGraph/releases/download/v01/pkg_mokoog-01.00.00.zip
+
+ e2262d9e515af284d6837627d63fb7ef7376aea5c50bebd1f4ea4e92a4ae4a6d
+ stable
+ Moko Consulting
+ https://mokoconsulting.tech
+
+
+