gitea-actions[bot]
b98c2e0b6e
chore(version): bump to 02.01.39 [skip ci]
2026-05-23 20:45:15 +00:00
jmiller
14a96eeb60
fix: sync manifest to 02.01.38 [skip ci]
2026-05-23 20:44:31 +00:00
jmiller
448592440a
fix: sync manifest version to 02.01.37 [skip ci]
2026-05-23 20:26:28 +00:00
Jonathan Miller
e7de6e4c9a
Revert "Merge remote-tracking branch 'origin/dev'"
...
Universal: Cascade Main → Dev / Cascade main → branches (push) Successful in 3s
This reverts commit b27ef3aee3 , reversing
changes made to c4d8381828 .
2026-05-23 00:09:22 -05:00
Jonathan Miller
f1f2785f0f
feat: add 10 new health checks — SSL, cron, errors, DB size, content, users, mail, SEO, template, config
...
New checks:
- ssl: certificate expiry, days left, issuer
- cron: scheduled tasks, failed count, last run
- errors: PHP error log size, recent errors
- db_size: total MB, table count, largest tables
- content: articles, categories, menu items, modules
- users: total, active sessions, failed logins, last login
- mail: mailer type, from address, queue count
- seo: robots.txt, sitemap, htaccess, SEF
- template: site/admin template, override count
- config: debug mode, error reporting, force SSL, caching
Degraded reasons for SSL expiry, failed cron tasks, config drift.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-05-22 23:23:19 -05:00
Jonathan Miller
138af226d1
feat: add site size and total disk to filesystem health check
...
Reports total_disk_mb and site_size_mb (images, media, tmp, cache, logs).
Shows in Infrastructure table on Grafana dashboard.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-05-22 23:13:20 -05:00
Jonathan Miller
17eaaf2347
feat: add Akeeba Backup and Admin Tools checks to health endpoint
...
New health checks:
- backup: last backup date/status/size, days since, total count, 7d count
- security: Admin Tools WAF status, blocked requests 24h/7d
Degraded reasons:
- No backups found
- Last backup older than 7 days
- Last backup failed/incomplete
Dashboard updated with Backup and Security rows.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-05-22 22:43:41 -05:00
Jonathan Miller
21020027d0
feat: add human-readable reason field to health endpoint
...
Status 'degraded' now includes reason like '3 extension updates available'
or 'Low disk space: 45 MB free'. Shows in dashboard Site Info table.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-05-22 22:00:33 -05:00
Jonathan Miller
0d280717f1
Revert "Merge pull request 'chore: merge dev to main' ( #19 ) from dev into main"
...
Universal: Cascade Main → Dev / Cascade main → branches (push) Successful in 1s
This reverts commit a45a6cb59c , reversing
changes made to 018b197147 .
2026-05-22 20:12:46 -05:00
Jonathan Miller
ea66ad4b4a
security: hide MokoWaaS from plugin list for non-master users
...
Injects JS on com_plugins that removes the MokoWaaS row from the
plugin table. Combined with the edit/save block, non-master users
cannot see, edit, or save the plugin settings.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-05-22 05:53:14 -05:00
Jonathan Miller
48cb040505
security: restrict plugin settings to master user + rename Gitea to MokoGitea
...
- Non-master users blocked from editing MokoWaaS plugin config
- isOurPlugin() helper checks extension_id against our plugin
- Blocks both edit view and save task for non-master users
- Renamed bare 'Gitea' references to 'MokoGitea' in docs
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-05-22 05:51:20 -05:00
Jonathan Miller
b17b36e02e
security: make plugin hard to disable + block uninstall
...
- enforceLocked() runs every page load — re-enables, re-locks, re-protects
if someone tampers with the database flags
- preflight() blocks uninstall attempts with error message
- Logs tampering attempts to mokowaas log category
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-05-22 04:56:48 -05:00
Jonathan Miller
b22842f302
refactor: replace Grafana API with heartbeat receiver provisioning
...
Remove all Grafana API code (630 lines), obfuscated tokens, SA tokens,
ensureGrafanaPlugin, provisionGrafanaDatasource, buildDashboardModel.
Replace with simple HTTP POST to heartbeat receiver on bench server.
Receiver writes Grafana provisioning YAML and restarts Grafana container.
No API tokens or RBAC permissions needed.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-05-22 04:40:51 -05:00
Jonathan Miller
2e4fdcb07e
fix: new Grafana SA token with datasource:create + visible heartbeat errors
...
- New service account token with correct RBAC permissions
- script.php postflight now shows success/failure messages to admin
- Logs all heartbeat attempts with HTTP code and cURL errors
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-05-21 23:01:33 -05:00
Jonathan Miller
bfb159d0f0
fix: add SSL bypass and error logging to Grafana provisioning
...
- Add CURLOPT_SSL_VERIFYPEER=false for shared hosting environments
- Add CURLOPT_FOLLOWLOCATION to handle redirects
- Log all Grafana heartbeat attempts with HTTP code and cURL errors
- Helps debug provisioning failures on DreamHost and similar hosts
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-05-21 22:48:49 -05:00
Jonathan Miller
47faa1b289
fix: update Grafana API token (Admin SA) [skip ci]
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-05-21 22:42:49 -05:00
gitea-actions[bot]
9ccd27e809
chore(version): bump 02.01.27 → 02.01.28 [skip ci]
2026-05-22 02:56:54 +00:00
gitea-actions[bot]
1c1b541bc5
chore(version): bump 02.01.26 → 02.01.27 [skip ci]
2026-05-22 02:25:30 +00:00
Jonathan Miller
0bc5504e16
security: obfuscate Grafana credentials with XOR+base64
...
API key and URL stored as XOR-encoded base64 constants. Deobfuscated
at runtime only when needed. Prevents plain-text grep discovery.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-05-21 21:25:01 -05:00
gitea-actions[bot]
f63e46030d
chore(version): bump 02.01.25 → 02.01.26 [skip ci]
2026-05-22 02:21:14 +00:00
Jonathan Miller
34df31b086
feat: hardcode Grafana credentials, always-on health endpoint
...
- Health endpoint always enabled when plugin is installed
- Grafana URL and API key hardcoded as constants
- Removed enable_health_endpoint, grafana_url, grafana_api_key from config UI
- Token still auto-generated and shown as read-only
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-05-21 21:20:44 -05:00
gitea-actions[bot]
94b63ae08f
chore(version): bump 02.01.24 → 02.01.25 [skip ci]
2026-05-22 02:02:17 +00:00
gitea-actions[bot]
444b8c2853
chore(version): bump 02.01.23 → 02.01.24 [skip ci]
2026-05-21 21:00:29 +00:00
gitea-actions[bot]
18f64b5b68
chore(version): bump 02.01.22 → 02.01.23 [skip ci]
2026-05-21 20:56:44 +00:00
Jonathan Miller
d1e2555f00
feat(diagnostics): add health endpoint with Grafana auto-provisioning ( #54 )
...
Implements heartbeat telemetry for WaaS dashboard monitoring:
- JSON health endpoint at /?mokowaas=health with token auth
- Database, filesystem, cache, and extension health checks
- Auto-generated API token (separate from Joomla user tokens)
- Grafana Infinity datasource auto-provisioning via REST API
- Shared dashboard with endpoint dropdown variable
- Auto-provision on plugin install/update via script.php
- Grafana plugin install via API (replaces deprecated CLI)
- Deprovisioning on disable (datasource cleanup)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-05-21 15:44:04 -05:00
jmiller
a0f3e42861
fix(lang): update pretty name to Joomla convention [skip ci]
2026-05-16 22:57:25 +00:00
jmiller
76e0da69bb
fix(lang): update pretty name to Joomla convention [skip ci]
2026-05-16 22:57:25 +00:00
Jonathan Miller
03ee7a95f3
fix(lang): update pretty name to Joomla convention [skip ci]
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-05-16 09:35:02 -05:00
gitea-actions[bot]
9ff176606f
chore: Gitea-only workflows + remove GitHub update server [skip ci]
2026-04-26 21:54:09 -05:00
gitea-actions[bot]
a7cef01ff1
chore(release): build 02.01.21 [skip ci]
2026-04-23 22:52:07 +00:00
jmiller
e8e6c93295
fix: remove CSS injection, lock MokoWaaS + MokoOnyx ( #7 )
...
Standards Compliance / Secret Scanning (push) Failing after 3s
Standards Compliance / License Header Validation (push) Successful in 2s
Standards Compliance / Repository Structure Validation (push) Successful in 3s
Standards Compliance / Coding Standards Check (push) Failing after 3s
Standards Compliance / Documentation Quality Check (push) Successful in 3s
Standards Compliance / Workflow Configuration Check (push) Failing after 4s
Standards Compliance / README Completeness Check (push) Successful in 3s
Standards Compliance / Git Repository Hygiene (push) Successful in 3s
Standards Compliance / Line Length Check (push) Failing after 3s
Standards Compliance / Script Integrity Validation (push) Successful in 4s
Standards Compliance / File Naming Standards (push) Successful in 3s
Standards Compliance / Insecure Code Pattern Detection (push) Successful in 3s
Standards Compliance / Dead Code Detection (push) Successful in 4s
Standards Compliance / File Size Limits (push) Successful in 3s
Standards Compliance / Binary File Detection (push) Successful in 4s
Standards Compliance / TODO/FIXME Tracking (push) Successful in 2s
Standards Compliance / Version Consistency Check (push) Successful in 48s
Standards Compliance / Code Complexity Analysis (push) Successful in 46s
Standards Compliance / Code Duplication Detection (push) Successful in 47s
Standards Compliance / Broken Link Detection (push) Successful in 3s
Standards Compliance / API Documentation Coverage (push) Successful in 2s
Standards Compliance / Accessibility Check (push) Successful in 3s
Standards Compliance / Performance Metrics (push) Successful in 2s
Standards Compliance / Dependency Vulnerability Scanning (push) Successful in 48s
Standards Compliance / Terraform Configuration Validation (push) Successful in 5s
Standards Compliance / Unused Dependencies Check (push) Successful in 53s
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
Standards Compliance / Enterprise Readiness Check (push) Failing after 50s
Update MokoOnyx Payload / update-payload (push) Failing after 33s
Standards Compliance / Repository Health Check (push) Failing after 51s
Standards Compliance / Compliance Summary (push) Failing after 1s
fix: remove CSS injection, lock MokoWaaS + MokoOnyx
2026-04-23 20:14:20 +00:00
jmiller
3a46d20c52
Release 02.01.20 — brand buttons, dev mode, ATS overrides
Standards Compliance / Secret Scanning (push) Failing after 3s
Standards Compliance / Repository Structure Validation (push) Successful in 2s
Standards Compliance / License Header Validation (push) Successful in 2s
Standards Compliance / Coding Standards Check (push) Failing after 3s
Standards Compliance / Workflow Configuration Check (push) Failing after 3s
Standards Compliance / Documentation Quality Check (push) Successful in 3s
Standards Compliance / README Completeness Check (push) Successful in 3s
Standards Compliance / Git Repository Hygiene (push) Successful in 3s
Standards Compliance / Line Length Check (push) Failing after 3s
Standards Compliance / Script Integrity Validation (push) Successful in 3s
Standards Compliance / File Naming Standards (push) Successful in 3s
Standards Compliance / Insecure Code Pattern Detection (push) Successful in 2s
Standards Compliance / Dead Code Detection (push) Successful in 4s
Standards Compliance / File Size Limits (push) Successful in 3s
Standards Compliance / Binary File Detection (push) Successful in 4s
Standards Compliance / TODO/FIXME Tracking (push) Successful in 3s
Standards Compliance / Version Consistency Check (push) Successful in 49s
Standards Compliance / Code Duplication Detection (push) Successful in 43s
Standards Compliance / Broken Link Detection (push) Successful in 3s
Standards Compliance / Code Complexity Analysis (push) Successful in 46s
Standards Compliance / API Documentation Coverage (push) Successful in 3s
Standards Compliance / Accessibility Check (push) Successful in 3s
Standards Compliance / Performance Metrics (push) Successful in 2s
Standards Compliance / Dependency Vulnerability Scanning (push) Successful in 49s
Standards Compliance / Terraform Configuration Validation (push) Successful in 6s
Update MokoOnyx Payload / update-payload (push) Successful in 3s
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
Standards Compliance / Unused Dependencies Check (push) Successful in 53s
Standards Compliance / Enterprise Readiness Check (push) Failing after 47s
Standards Compliance / Repository Health Check (push) Failing after 49s
Standards Compliance / Compliance Summary (push) Failing after 1s
2026-04-23 19:33:59 +00:00
Jonathan Miller
cb03a89f98
fix: Gitea priority 1, GitHub priority 2 for update server
...
Repo Health / Access control (push) Failing after 1s
Repo Health / Release configuration (push) Has been skipped
Repo Health / Scripts governance (push) Has been skipped
Repo Health / Repository health (push) Has been skipped
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-22 03:34:53 -05:00
Jonathan Miller
d4a5367eed
fix: add <element>mokowaas</element> to manifest for correct ZIP naming
...
Repo Health / Access control (push) Failing after 1s
Repo Health / Release configuration (push) Has been skipped
Repo Health / Scripts governance (push) Has been skipped
Repo Health / Repository health (push) Has been skipped
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-22 02:42:34 -05:00
Jonathan Miller
43bd0e2031
Bump 02.01.14 — GitHub-primary update server, MokoOnyx lock support
...
Repo Health / Access control (push) Failing after 1s
Standards Compliance / Secret Scanning (push) Failing after 2s
Standards Compliance / License Header Validation (push) Successful in 2s
Standards Compliance / Repository Structure Validation (push) Successful in 2s
Standards Compliance / Coding Standards Check (push) Failing after 3s
Standards Compliance / Workflow Configuration Check (push) Failing after 3s
Standards Compliance / Documentation Quality Check (push) Successful in 2s
Standards Compliance / README Completeness Check (push) Successful in 2s
Standards Compliance / Git Repository Hygiene (push) Successful in 3s
Standards Compliance / Script Integrity Validation (push) Successful in 3s
Standards Compliance / Line Length Check (push) Failing after 2s
Standards Compliance / File Naming Standards (push) Successful in 3s
Standards Compliance / Insecure Code Pattern Detection (push) Successful in 2s
Standards Compliance / Version Consistency Check (push) Successful in 34s
Standards Compliance / Code Complexity Analysis (push) Successful in 33s
Standards Compliance / Code Duplication Detection (push) Successful in 32s
Standards Compliance / Dead Code Detection (push) Successful in 4s
Standards Compliance / File Size Limits (push) Successful in 3s
Standards Compliance / TODO/FIXME Tracking (push) Successful in 3s
Standards Compliance / Binary File Detection (push) Successful in 4s
Standards Compliance / Dependency Vulnerability Scanning (push) Successful in 40s
Standards Compliance / Broken Link Detection (push) Successful in 3s
Standards Compliance / Unused Dependencies Check (push) Successful in 44s
Standards Compliance / API Documentation Coverage (push) Successful in 2s
Standards Compliance / Accessibility Check (push) Successful in 2s
Standards Compliance / Performance Metrics (push) Successful in 3s
Standards Compliance / Enterprise Readiness Check (push) Failing after 38s
Standards Compliance / Repository Health Check (push) Failing after 37s
Update MokoCassiopeia Payload / update-payload (push) Failing after 3s
Standards Compliance / Terraform Configuration Validation (push) Successful in 5s
Repo Health / Release configuration (push) Has been skipped
Repo Health / Scripts governance (push) Has been skipped
Repo Health / Repository health (push) Has been skipped
Standards Compliance / Compliance Summary (push) Failing after 1s
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-21 17:22:26 -05:00
Jonathan Miller
68f897ffe4
feat: add all update channels, Gitea-primary update server URL
...
Repo Health / Access control (push) Failing after 5s
Standards Compliance / Secret Scanning (push) Failing after 2s
Standards Compliance / License Header Validation (push) Successful in 3s
Standards Compliance / Repository Structure Validation (push) Successful in 3s
Standards Compliance / Coding Standards Check (push) Failing after 2s
Standards Compliance / Workflow Configuration Check (push) Failing after 2s
Standards Compliance / Documentation Quality Check (push) Successful in 3s
Standards Compliance / README Completeness Check (push) Successful in 3s
Standards Compliance / Git Repository Hygiene (push) Successful in 2s
Standards Compliance / Script Integrity Validation (push) Successful in 4s
Standards Compliance / Line Length Check (push) Failing after 3s
Standards Compliance / File Naming Standards (push) Successful in 3s
Standards Compliance / Insecure Code Pattern Detection (push) Successful in 2s
Standards Compliance / Version Consistency Check (push) Successful in 36s
Standards Compliance / Code Complexity Analysis (push) Successful in 42s
Standards Compliance / Dead Code Detection (push) Successful in 4s
Standards Compliance / Code Duplication Detection (push) Successful in 37s
Standards Compliance / File Size Limits (push) Successful in 3s
Standards Compliance / TODO/FIXME Tracking (push) Successful in 3s
Standards Compliance / Binary File Detection (push) Successful in 4s
Standards Compliance / Dependency Vulnerability Scanning (push) Successful in 35s
Standards Compliance / Broken Link Detection (push) Successful in 3s
Standards Compliance / Unused Dependencies Check (push) Successful in 37s
Standards Compliance / API Documentation Coverage (push) Successful in 2s
Standards Compliance / Accessibility Check (push) Successful in 3s
Standards Compliance / Performance Metrics (push) Successful in 2s
Standards Compliance / Enterprise Readiness Check (push) Failing after 33s
Standards Compliance / Repository Health Check (push) Failing after 32s
Standards Compliance / Terraform Configuration Validation (push) Successful in 5s
Update MokoCassiopeia Payload / update-payload (push) Failing after 3s
Repo Health / Release configuration (push) Has been skipped
Repo Health / Scripts governance (push) Has been skipped
Repo Health / Repository health (push) Has been skipped
Standards Compliance / Compliance Summary (push) Failing after 1s
- updates.xml: all 5 channels (dev, alpha, beta, rc, stable)
- manifest: Gitea priority 1, GitHub priority 2
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-21 17:17:53 -05:00
Jonathan Miller
3df40214f3
feat: prefer MokoOnyx over MokoCassiopeia — lock Onyx, unlock Cassiopeia
...
Repo Health / Access control (push) Failing after 4s
Standards Compliance / Secret Scanning (push) Failing after 2s
Standards Compliance / License Header Validation (push) Successful in 2s
Standards Compliance / Repository Structure Validation (push) Successful in 3s
Standards Compliance / Coding Standards Check (push) Failing after 3s
Standards Compliance / Workflow Configuration Check (push) Failing after 3s
Standards Compliance / Documentation Quality Check (push) Successful in 3s
Standards Compliance / README Completeness Check (push) Successful in 2s
Standards Compliance / Git Repository Hygiene (push) Successful in 3s
Standards Compliance / Version Consistency Check (push) Successful in 35s
Standards Compliance / Line Length Check (push) Failing after 3s
Standards Compliance / File Naming Standards (push) Successful in 2s
Standards Compliance / Insecure Code Pattern Detection (push) Successful in 3s
Standards Compliance / Script Integrity Validation (push) Successful in 39s
Standards Compliance / Code Complexity Analysis (push) Successful in 35s
Standards Compliance / Dead Code Detection (push) Successful in 4s
Standards Compliance / File Size Limits (push) Successful in 2s
Standards Compliance / Binary File Detection (push) Successful in 4s
Standards Compliance / TODO/FIXME Tracking (push) Successful in 3s
Standards Compliance / Code Duplication Detection (push) Successful in 39s
Standards Compliance / Dependency Vulnerability Scanning (push) Successful in 34s
Standards Compliance / Broken Link Detection (push) Successful in 4s
Standards Compliance / API Documentation Coverage (push) Successful in 2s
Standards Compliance / Accessibility Check (push) Successful in 3s
Standards Compliance / Performance Metrics (push) Successful in 2s
Standards Compliance / Unused Dependencies Check (push) Successful in 39s
Standards Compliance / Enterprise Readiness Check (push) Failing after 37s
Standards Compliance / Terraform Configuration Validation (push) Successful in 5s
Standards Compliance / Repository Health Check (push) Failing after 34s
Repo Health / Release configuration (push) Has been skipped
Repo Health / Scripts governance (push) Has been skipped
Repo Health / Repository health (push) Has been skipped
Standards Compliance / Compliance Summary (push) Failing after 1s
Update MokoCassiopeia Payload / update-payload (push) Failing after 10s
If MokoOnyx is installed, lock it and set as default.
Unlock MokoCassiopeia to allow uninstall.
Falls back to MokoCassiopeia if Onyx not present.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-21 17:09:18 -05:00
jmiller
72b2d1eace
test: dev version bump to 02.01.11
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-07 19:59:46 -05:00
jmiller
2b539db1d6
release: v02.01.10
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-07 17:19:14 -05:00
jmiller
f4fea85aed
release: v02.01.09 — email reads version from manifest
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-07 17:09:37 -05:00
jmiller
a29008fc99
fix: read version from manifest instead of hardcoding in email
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-07 17:07:59 -05:00
jmiller
b9bf7750dd
fix: sync all version numbers to 02.01.08, add SHA256 checksum
...
Updated version in all .ini, .php, .md files to 02.01.08.
Added SHA256 checksum to updates.xml for install integrity validation.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-07 17:04:44 -05:00
jmiller
13ce80f7c1
release: v02.01.08
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-07 16:59:08 -05:00
jmiller
6078565485
feat: bundle mokocassiopeia as payload inside plugin zip
...
- MokoCassiopeia zip shipped at src/payload/mokocassiopeia.zip
- Install script uses local payload instead of downloading
- Removed getDownloadUrlFromUpdates (no longer needed)
- Added update-payload.yml workflow to refresh payload on merge to main
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-07 16:59:02 -05:00
jmiller
2067d33caf
release: v02.01.07
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-07 16:53:30 -05:00
jmiller
cd6d236670
release: v02.01.06 — patch bump to trigger update
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-07 16:52:26 -05:00
jmiller
31e5cfd23a
release: v02.01.05
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-07 16:49:08 -05:00
jmiller
acfecc383e
fix: use release zip from updates.xml for mokocassiopeia install
...
The release zip is properly structured for Joomla installation.
Simplified extraction logic — release zips have templateDetails.xml
at root or one level deep. Added better error messages with the
failing URL for debugging.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-07 16:49:03 -05:00
jmiller
868b22393c
release: v02.01.04
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-07 16:41:04 -05:00
jmiller
5f4c335876
feat: send email notification on uninstall
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-07 16:40:58 -05:00