fix(plugin): production readiness + Gitea update server #80

Closed
jmiller wants to merge 130 commits from dev into main

130 Commits

Author SHA1 Message Date
Jonathan Miller 3042431620 fix(manifest): add Gitea update server URL to updateservers block
Points to updates.xml on the main branch of the Gitea repository
so Joomla can check for new versions automatically.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-05-16 08:14:28 -05:00
Jonathan Miller 174c6ba3f4 fix(plugin): harden installation script and resolve production issues
Fixes hardcoded category/component IDs, missing language key,
unqualified exception catches, and removes legacy plugin directory.

- Query Uncategorised category ID dynamically instead of assuming ID 2
- Remove fragile component_id fallback (fail gracefully with log)
- Use installing admin's user ID for article ownership
- Add missing PLG_SYSTEM_MOKOJOOMTOS_ERROR_LOADING_MENU_ITEMS key
- Qualify all Exception catches with backslash for namespace safety
- Standardize help text URL across all locale files
- Remove obsolete src/plugins/ legacy directory

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-05-16 08:14:28 -05:00
jmiller ce885c1ce4 chore: force-sync .mokogitea/ISSUE_TEMPLATE/version.md [skip ci] 2026-05-12 19:26:28 +00:00
jmiller e044f3bd33 chore: force-sync .mokogitea/ISSUE_TEMPLATE/security.md [skip ci] 2026-05-12 19:26:28 +00:00
jmiller 6b79c6fe76 chore: force-sync .mokogitea/ISSUE_TEMPLATE/rfc.md [skip ci] 2026-05-12 19:26:28 +00:00
jmiller 111d6ec205 chore: force-sync .mokogitea/ISSUE_TEMPLATE/question.md [skip ci] 2026-05-12 19:26:27 +00:00
jmiller 39bc8cd464 chore: force-sync .mokogitea/ISSUE_TEMPLATE/joomla_issue.md [skip ci] 2026-05-12 19:26:27 +00:00
jmiller b961374c8d chore: force-sync .mokogitea/ISSUE_TEMPLATE/feature_request.md [skip ci] 2026-05-12 19:26:26 +00:00
jmiller 25768e6547 chore: force-sync .mokogitea/ISSUE_TEMPLATE/documentation.md [skip ci] 2026-05-12 19:26:26 +00:00
jmiller d9d7234071 chore: force-sync .mokogitea/ISSUE_TEMPLATE/config.yml [skip ci] 2026-05-12 19:26:26 +00:00
jmiller 2148baa900 chore: force-sync .mokogitea/ISSUE_TEMPLATE/bug_report.md [skip ci] 2026-05-12 19:26:25 +00:00
jmiller 6d9f2dba9c chore: force-sync .mokogitea/ISSUE_TEMPLATE/adr.md [skip ci] 2026-05-12 19:26:25 +00:00
jmiller e0a1d51b17 chore: force-sync .mokogitea/workflows/update-server.yml [skip ci] 2026-05-12 19:26:25 +00:00
jmiller b033cdb187 chore: force-sync .mokogitea/workflows/security-audit.yml [skip ci] 2026-05-12 19:26:24 +00:00
jmiller 727a9210de chore: force-sync .mokogitea/workflows/repo-health.yml [skip ci] 2026-05-12 19:26:24 +00:00
jmiller be4e5123ea chore: force-sync .mokogitea/workflows/pre-release.yml [skip ci] 2026-05-12 19:26:23 +00:00
jmiller e165d47eb4 chore: force-sync .mokogitea/workflows/pr-check.yml [skip ci] 2026-05-12 19:26:23 +00:00
jmiller 996ac9e5a8 chore: force-sync .mokogitea/workflows/notify.yml [skip ci] 2026-05-12 19:26:23 +00:00
jmiller e00b674d65 chore: force-sync .mokogitea/workflows/gitleaks.yml [skip ci] 2026-05-12 19:26:22 +00:00
jmiller d9c4316055 chore: force-sync .mokogitea/workflows/deploy-manual.yml [skip ci] 2026-05-12 19:26:22 +00:00
jmiller 5f21066c2b chore: force-sync .mokogitea/workflows/cleanup.yml [skip ci] 2026-05-12 19:26:21 +00:00
jmiller c70a16df42 chore: force-sync .mokogitea/workflows/ci-joomla.yml [skip ci] 2026-05-12 19:26:21 +00:00
jmiller 9373b75d4e chore: force-sync .mokogitea/workflows/cascade-dev.yml [skip ci] 2026-05-12 19:26:21 +00:00
jmiller b5eb05a634 chore: force-sync .mokogitea/workflows/auto-release.yml [skip ci] 2026-05-12 19:26:20 +00:00
jmiller e74e7ea481 chore: sync .mokogitea/ISSUE_TEMPLATE/version.md from template [skip ci] 2026-05-12 18:56:08 +00:00
jmiller 0a2bd230e0 chore: sync .mokogitea/ISSUE_TEMPLATE/security.md from template [skip ci] 2026-05-12 18:56:08 +00:00
jmiller 256c3c0937 chore: sync .mokogitea/ISSUE_TEMPLATE/rfc.md from template [skip ci] 2026-05-12 18:56:08 +00:00
jmiller 9cb224dad9 chore: sync .mokogitea/ISSUE_TEMPLATE/question.md from template [skip ci] 2026-05-12 18:56:07 +00:00
jmiller b9185722d0 chore: sync .mokogitea/ISSUE_TEMPLATE/joomla_issue.md from template [skip ci] 2026-05-12 18:56:07 +00:00
jmiller 24a6e8eecf chore: sync .mokogitea/ISSUE_TEMPLATE/feature_request.md from template [skip ci] 2026-05-12 18:56:07 +00:00
jmiller 4846a265a5 chore: sync .mokogitea/ISSUE_TEMPLATE/documentation.md from template [skip ci] 2026-05-12 18:56:06 +00:00
jmiller 0978ae3856 chore: sync .mokogitea/ISSUE_TEMPLATE/config.yml from template [skip ci] 2026-05-12 18:56:06 +00:00
jmiller 31c0d9fb7b chore: sync .mokogitea/ISSUE_TEMPLATE/bug_report.md from template [skip ci] 2026-05-12 18:56:05 +00:00
jmiller 0c5d476405 chore: sync .mokogitea/ISSUE_TEMPLATE/adr.md from template [skip ci] 2026-05-12 18:56:05 +00:00
jmiller 205f1eb568 chore: sync .mokogitea/workflows/update-server.yml from template [skip ci] 2026-05-12 18:56:05 +00:00
jmiller b24ee8b8eb chore: sync .mokogitea/workflows/security-audit.yml from template [skip ci] 2026-05-12 18:56:04 +00:00
jmiller 7cf36d91ad chore: sync .mokogitea/workflows/repo-health.yml from template [skip ci] 2026-05-12 18:56:04 +00:00
jmiller 47310e992e chore: sync .mokogitea/workflows/pre-release.yml from template [skip ci] 2026-05-12 18:56:04 +00:00
jmiller 7158025f33 chore: sync .mokogitea/workflows/pr-check.yml from template [skip ci] 2026-05-12 18:56:03 +00:00
jmiller d63199578e chore: sync .mokogitea/workflows/notify.yml from template [skip ci] 2026-05-12 18:56:03 +00:00
jmiller 066738eba9 chore: sync .mokogitea/workflows/gitleaks.yml from template [skip ci] 2026-05-12 18:56:03 +00:00
jmiller 50ed436776 chore: sync .mokogitea/workflows/deploy-manual.yml from template [skip ci] 2026-05-12 18:56:02 +00:00
jmiller 7998f33030 chore: sync .mokogitea/workflows/cleanup.yml from template [skip ci] 2026-05-12 18:56:02 +00:00
jmiller 17d2ecb6f9 chore: sync .mokogitea/workflows/ci-joomla.yml from template [skip ci] 2026-05-12 18:56:01 +00:00
jmiller 1608057ab6 chore: sync .mokogitea/workflows/cascade-dev.yml from template [skip ci] 2026-05-12 18:56:01 +00:00
jmiller ad96c264e8 chore: sync .mokogitea/workflows/auto-release.yml from template [skip ci] 2026-05-12 18:56:01 +00:00
jmiller c5efc968dc chore: remove .github/copilot.yml (moved to .mokogitea/) [skip ci] 2026-05-12 05:10:25 +00:00
jmiller 9ea1fbebb7 chore: move .github/copilot.yml to .mokogitea/copilot.yml [skip ci] 2026-05-12 05:10:25 +00:00
jmiller 7acab51c11 chore: remove .github/copilot-instructions.md (moved to .mokogitea/) [skip ci] 2026-05-12 05:10:25 +00:00
jmiller 3570c7d9c6 chore: move .github/copilot-instructions.md to .mokogitea/copilot-instructions.md [skip ci] 2026-05-12 05:10:24 +00:00
jmiller 5f8543c296 chore: remove .github/ISSUE_TEMPLATE/security.md (moved to .mokogitea/) [skip ci] 2026-05-12 05:10:24 +00:00
jmiller 17c6edfb41 chore: move .github/ISSUE_TEMPLATE/security.md to .mokogitea/security.md [skip ci] 2026-05-12 05:10:23 +00:00
jmiller 5120aeb832 chore: remove .github/ISSUE_TEMPLATE/rfc.md (moved to .mokogitea/) [skip ci] 2026-05-12 05:10:23 +00:00
jmiller cf1de20131 chore: move .github/ISSUE_TEMPLATE/rfc.md to .mokogitea/rfc.md [skip ci] 2026-05-12 05:10:23 +00:00
jmiller 74c2d7bf37 chore: remove .github/ISSUE_TEMPLATE/request-license.md (moved to .mokogitea/) [skip ci] 2026-05-12 05:10:22 +00:00
jmiller a56331d4e1 chore: move .github/ISSUE_TEMPLATE/request-license.md to .mokogitea/request-license.md [skip ci] 2026-05-12 05:10:22 +00:00
jmiller b1c5c50704 chore: remove .github/ISSUE_TEMPLATE/question.md (moved to .mokogitea/) [skip ci] 2026-05-12 05:10:21 +00:00
jmiller d6f4f43718 chore: move .github/ISSUE_TEMPLATE/question.md to .mokogitea/question.md [skip ci] 2026-05-12 05:10:21 +00:00
jmiller a6329ed7e4 chore: remove .github/ISSUE_TEMPLATE/joomla_issue.md (moved to .mokogitea/) [skip ci] 2026-05-12 05:10:21 +00:00
jmiller eb4d9959f9 chore: move .github/ISSUE_TEMPLATE/joomla_issue.md to .mokogitea/joomla_issue.md [skip ci] 2026-05-12 05:10:20 +00:00
jmiller abcaeabf4d chore: remove .github/ISSUE_TEMPLATE/firewall-request.md (moved to .mokogitea/) [skip ci] 2026-05-12 05:10:20 +00:00
jmiller 192f87daff chore: move .github/ISSUE_TEMPLATE/firewall-request.md to .mokogitea/firewall-request.md [skip ci] 2026-05-12 05:10:20 +00:00
jmiller c74b276b56 chore: remove .github/ISSUE_TEMPLATE/feature_request.md (moved to .mokogitea/) [skip ci] 2026-05-12 05:10:19 +00:00
jmiller eb226f29e5 chore: move .github/ISSUE_TEMPLATE/feature_request.md to .mokogitea/feature_request.md [skip ci] 2026-05-12 05:10:19 +00:00
jmiller 76f564457d chore: remove .github/ISSUE_TEMPLATE/enterprise_support.md (moved to .mokogitea/) [skip ci] 2026-05-12 05:10:18 +00:00
jmiller 85f7427152 chore: move .github/ISSUE_TEMPLATE/enterprise_support.md to .mokogitea/enterprise_support.md [skip ci] 2026-05-12 05:10:18 +00:00
jmiller 6be0dff047 chore: remove .github/ISSUE_TEMPLATE/documentation.md (moved to .mokogitea/) [skip ci] 2026-05-12 05:10:18 +00:00
jmiller fed7e5597e chore: move .github/ISSUE_TEMPLATE/documentation.md to .mokogitea/documentation.md [skip ci] 2026-05-12 05:10:17 +00:00
jmiller 3c6e8c267f chore: remove .github/ISSUE_TEMPLATE/config.yml (moved to .mokogitea/) [skip ci] 2026-05-12 05:10:17 +00:00
jmiller 4f2e306c0f chore: move .github/ISSUE_TEMPLATE/config.yml to .mokogitea/config.yml [skip ci] 2026-05-12 05:10:17 +00:00
jmiller f0af7f7cb0 chore: remove .github/ISSUE_TEMPLATE/bug_report.md (moved to .mokogitea/) [skip ci] 2026-05-12 05:10:16 +00:00
jmiller 6c04d0575d chore: move .github/ISSUE_TEMPLATE/bug_report.md to .mokogitea/bug_report.md [skip ci] 2026-05-12 05:10:16 +00:00
jmiller d70903009a chore: remove .github/ISSUE_TEMPLATE/adr.md (moved to .mokogitea/) [skip ci] 2026-05-12 05:10:15 +00:00
jmiller 62f82376ab chore: move .github/ISSUE_TEMPLATE/adr.md to .mokogitea/adr.md [skip ci] 2026-05-12 05:10:15 +00:00
jmiller ae4d919442 chore: remove .github/CODEOWNERS (moved to .mokogitea/) [skip ci] 2026-05-12 05:10:15 +00:00
jmiller 447479166c chore: move .github/CODEOWNERS to .mokogitea/CODEOWNERS [skip ci] 2026-05-12 05:10:14 +00:00
jmiller 0e3e073145 chore: remove .github/CLAUDE.md (moved to .mokogitea/) [skip ci] 2026-05-12 05:10:14 +00:00
jmiller 23fce99d47 chore: move .github/CLAUDE.md to .mokogitea/CLAUDE.md [skip ci] 2026-05-12 05:10:13 +00:00
jmiller d272f97ce1 chore: remove .github/.mokostandards (moved to .mokogitea/) [skip ci] 2026-05-12 05:10:13 +00:00
jmiller 1f2f8649d5 chore: move .github/.mokostandards to .mokogitea/.mokostandards [skip ci] 2026-05-12 05:10:13 +00:00
jmiller 609141c20b chore: remove .gitea/workflows/update-server.yml (moved to .mokogitea/) [skip ci] 2026-05-12 05:10:12 +00:00
jmiller 03fdc85b2c chore: move .gitea/workflows/update-server.yml to .mokogitea/update-server.yml [skip ci] 2026-05-12 05:10:12 +00:00
jmiller df9bbb9646 chore: remove .gitea/workflows/security-audit.yml (moved to .mokogitea/) [skip ci] 2026-05-12 05:10:11 +00:00
jmiller d8c38c5966 chore: move .gitea/workflows/security-audit.yml to .mokogitea/security-audit.yml [skip ci] 2026-05-12 05:10:11 +00:00
jmiller 57b587c607 chore: remove .gitea/workflows/repo-health.yml (moved to .mokogitea/) [skip ci] 2026-05-12 05:10:11 +00:00
jmiller 3691155367 chore: move .gitea/workflows/repo-health.yml to .mokogitea/repo-health.yml [skip ci] 2026-05-12 05:10:10 +00:00
jmiller ae50b035e5 chore: remove .gitea/workflows/release.yml (moved to .mokogitea/) [skip ci] 2026-05-12 05:10:10 +00:00
jmiller fc0327dec8 chore: move .gitea/workflows/release.yml to .mokogitea/release.yml [skip ci] 2026-05-12 05:10:10 +00:00
jmiller 364d475624 chore: remove .gitea/workflows/pre-release.yml (moved to .mokogitea/) [skip ci] 2026-05-12 05:10:09 +00:00
jmiller 724d4948df chore: move .gitea/workflows/pre-release.yml to .mokogitea/pre-release.yml [skip ci] 2026-05-12 05:10:09 +00:00
jmiller 98f1ae45a4 chore: remove .gitea/workflows/pr-check.yml (moved to .mokogitea/) [skip ci] 2026-05-12 05:10:08 +00:00
jmiller 72a8ff31bd chore: move .gitea/workflows/pr-check.yml to .mokogitea/pr-check.yml [skip ci] 2026-05-12 05:10:08 +00:00
jmiller e165b16dcb chore: remove .gitea/workflows/pr-branch-check.yml (moved to .mokogitea/) [skip ci] 2026-05-12 05:10:08 +00:00
jmiller 051b234f12 chore: move .gitea/workflows/pr-branch-check.yml to .mokogitea/pr-branch-check.yml [skip ci] 2026-05-12 05:10:07 +00:00
jmiller ec6649020a chore: remove .gitea/workflows/notify.yml (moved to .mokogitea/) [skip ci] 2026-05-12 05:10:07 +00:00
jmiller d631e0ca14 chore: move .gitea/workflows/notify.yml to .mokogitea/notify.yml [skip ci] 2026-05-12 05:10:07 +00:00
jmiller e8a1ce7984 chore: remove .gitea/workflows/gitleaks.yml (moved to .mokogitea/) [skip ci] 2026-05-12 05:10:06 +00:00
jmiller d3ff2d5879 chore: move .gitea/workflows/gitleaks.yml to .mokogitea/gitleaks.yml [skip ci] 2026-05-12 05:10:06 +00:00
jmiller 47e6700b7b chore: remove .gitea/workflows/deploy-manual.yml (moved to .mokogitea/) [skip ci] 2026-05-12 05:10:06 +00:00
jmiller a0d0808239 chore: move .gitea/workflows/deploy-manual.yml to .mokogitea/deploy-manual.yml [skip ci] 2026-05-12 05:10:05 +00:00
jmiller 5cb3c2e142 chore: remove .gitea/workflows/cleanup.yml (moved to .mokogitea/) [skip ci] 2026-05-12 05:10:05 +00:00
jmiller 096e7ece6d chore: move .gitea/workflows/cleanup.yml to .mokogitea/cleanup.yml [skip ci] 2026-05-12 05:10:04 +00:00
jmiller fd9f33b72b chore: remove .gitea/workflows/ci-joomla.yml (moved to .mokogitea/) [skip ci] 2026-05-12 05:10:04 +00:00
jmiller 6ce149ef27 chore: move .gitea/workflows/ci-joomla.yml to .mokogitea/ci-joomla.yml [skip ci] 2026-05-12 05:10:04 +00:00
jmiller 742a82637d chore: remove .gitea/workflows/cascade-dev.yml (moved to .mokogitea/) [skip ci] 2026-05-12 05:10:03 +00:00
jmiller 0129035916 chore: move .gitea/workflows/cascade-dev.yml to .mokogitea/cascade-dev.yml [skip ci] 2026-05-12 05:10:03 +00:00
jmiller 88d4cc9ba3 chore: remove .gitea/workflows/auto-release.yml (moved to .mokogitea/) [skip ci] 2026-05-12 05:10:02 +00:00
jmiller 51128bbdea chore: move .gitea/workflows/auto-release.yml to .mokogitea/auto-release.yml [skip ci] 2026-05-12 05:10:02 +00:00
jmiller 2427889da6 chore: sync security-audit.yml from Template-Joomla [skip ci] 2026-05-11 21:27:54 +00:00
jmiller 5e5da20fa9 chore: sync repo-health.yml from Template-Joomla [skip ci] 2026-05-11 21:27:52 +00:00
jmiller 7f0834d768 chore: sync pre-release.yml from Template-Joomla [skip ci] 2026-05-11 21:27:51 +00:00
jmiller da9b4c1642 chore: sync pr-check.yml from Template-Joomla [skip ci] 2026-05-11 21:27:49 +00:00
jmiller 91f7d9b22b chore: sync pr-branch-check.yml from Template-Joomla [skip ci] 2026-05-11 21:27:47 +00:00
jmiller e509255fe7 chore: sync notify.yml from Template-Joomla [skip ci] 2026-05-11 21:27:46 +00:00
jmiller 998f8eca17 chore: sync gitleaks.yml from Template-Joomla [skip ci] 2026-05-11 21:27:45 +00:00
jmiller c0efd6902c chore: sync deploy-manual.yml from Template-Joomla [skip ci] 2026-05-11 21:27:43 +00:00
jmiller 2ebebb6f9e chore: sync cleanup.yml from Template-Joomla [skip ci] 2026-05-11 21:27:41 +00:00
jmiller 5d7a7ce4c6 chore: sync ci-joomla.yml from Template-Joomla [skip ci] 2026-05-11 21:27:40 +00:00
jmiller 010ac75edd chore: sync cascade-dev.yml from Template-Joomla [skip ci] 2026-05-11 21:27:38 +00:00
jmiller 4fd67f9ef6 chore: sync auto-release.yml from Template-Joomla [skip ci] 2026-05-11 21:27:37 +00:00
jmiller 5b41a3f9c4 chore: sync update-server.yml from Template-Joomla [skip ci] 2026-05-11 21:17:22 +00:00
gitea-actions[bot] 4efebf17ba chore: Gitea-only workflows + remove GitHub update server [skip ci] 2026-04-26 21:54:32 -05:00
gitea-actions[bot] 28fff57535 ci: sync release workflows v2 [skip ci] 2026-04-26 21:48:35 -05:00
jmiller 00ec710249 chore: add TODO.md from MokoStandards
Repo Health / Access control (push) Failing after 2s
Repo Health / Release configuration (push) Has been skipped
Repo Health / Scripts governance (push) Has been skipped
Repo Health / Repository health (push) Has been skipped
2026-04-26 16:35:40 +00:00
jmiller 1c728abd18 chore: bump patch version for release pipeline fixes [skip ci] 2026-04-24 00:29:27 +00:00
Jonathan Miller 10eb84cf60 chore: sync workflows from latest MokoStandards-API templates + remove update.xml
Repo Health / Access control (push) Failing after 2s
Repo Health / Release configuration (push) Has been skipped
Repo Health / Scripts governance (push) Has been skipped
Repo Health / Repository health (push) Has been skipped
- runs-on: release (dedicated runner)
- PHP+Composer auto-install
- Direct API sync for updates.xml to main
- Stream-based tags
- Element from XML filename
- Removed stale update.xml

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-23 01:37:49 -05:00
jmiller 43df32fccd chore: update updates.xml from MokoStandards
Repo Health / Access control (push) Failing after 2s
Repo Health / Release configuration (push) Has been skipped
Repo Health / Scripts governance (push) Has been skipped
Repo Health / Repository health (push) Has been skipped
2026-04-19 05:54:15 +00:00
jmiller b5600260dd chore: update update.xml from MokoStandards
Repo Health / Access control (push) Failing after 2s
Repo Health / Release configuration (push) Has been skipped
Repo Health / Scripts governance (push) Has been skipped
Repo Health / Repository health (push) Has been skipped
2026-04-17 10:47:27 +00:00
jmiller 5902277561 chore: update update.xml from MokoStandards
Repo Health / Access control (push) Has been cancelled
Repo Health / Release configuration (push) Has been cancelled
Repo Health / Scripts governance (push) Has been cancelled
Repo Health / Repository health (push) Has been cancelled
2026-04-17 10:39:24 +00:00
jmiller 0b034a430b chore: add update.xml from MokoStandards
Repo Health / Access control (push) Has been cancelled
Repo Health / Release configuration (push) Has been cancelled
Repo Health / Scripts governance (push) Has been cancelled
Repo Health / Repository health (push) Has been cancelled
2026-04-17 10:33:16 +00:00