123 Commits

Author SHA1 Message Date
gitea-actions[bot] 0ea55601d2 chore(version): pre-release bump to 01.00.26-dev [skip ci] development 2026-06-05 04:08:57 +00:00
Jonathan Miller f46a657534 fix(manifest): fix dlid and blockChildUninstall placement and indentation
Generic: Repo Health / Scripts governance (push) Blocked by required conditions
Generic: Repo Health / Repository health (push) Blocked by required conditions
Generic: Repo Health / Report Issues (push) Blocked by required conditions
Generic: Repo Health / Site Health (push) Has been skipped
Generic: Repo Health / Access control (push) Successful in 1s
Move dlid and blockChildUninstall elements before updateservers and
fix tab indentation to match the 4-space convention used in the rest
of the manifest.

Authored-by: Moko Consulting
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-06-04 23:07:34 -05:00
Jonathan Miller b37a7dd1be feat(license): warn admins when no download key is configured
Generic: Repo Health / Scripts governance (push) Blocked by required conditions
Generic: Repo Health / Repository health (push) Blocked by required conditions
Generic: Repo Health / Report Issues (push) Blocked by required conditions
Generic: Repo Health / Site Health (push) Has been skipped
Generic: Repo Health / Access control (push) Successful in 1s
Adds onAfterRoute hook that checks the update site for a valid
MOKO-XXXX license key and shows a warning message once per session
if missing — directs users to System > Update Sites.

Authored-by: Moko Consulting
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-06-04 23:04:18 -05:00
Jonathan Miller 0b3bd2bda6 chore(changelog): consolidate duplicate Added/Fixed sections
Merge duplicate ### Added and ### Fixed headings into single sections
and fix version format from 01.00.00 to 01.00.

Authored-by: Moko Consulting
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-06-04 23:04:18 -05:00
gitea-actions[bot] 9d48a23e0b chore(version): pre-release bump to 01.00.25-dev [skip ci] 2026-06-05 03:11:46 +00:00
Jonathan Miller ca940c3b70 chore(ci): add pre-release.yml from moko-platform v05.01.00
Generic: Repo Health / Scripts governance (push) Blocked by required conditions
Generic: Repo Health / Repository health (push) Blocked by required conditions
Generic: Repo Health / Report Issues (push) Blocked by required conditions
Generic: Repo Health / Site Health (push) Has been skipped
Generic: Repo Health / Access control (push) Successful in 24s
Restores the pre-release workflow without update-stream steps —
updates.xml is now generated dynamically by the license server.

Authored-by: Moko Consulting
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-06-04 22:09:54 -05:00
jmiller dfd7dd1c9e chore: add dlid and blockChildUninstall to package manifest [skip ci] 2026-06-04 22:02:36 +00:00
jmiller 78a4fa1778 chore: sync .mokogitea/workflows/pr-check.yml from moko-platform [skip ci] 2026-06-04 15:56:52 +00:00
jmiller 47f6061b6f chore: sync .mokogitea/workflows/pr-check.yml from moko-platform [skip ci] 2026-06-04 15:39:20 +00:00
jmiller bf13bd5075 chore: sync .mokogitea/workflows/pr-check.yml from moko-platform [skip ci] 2026-06-04 15:30:27 +00:00
jmiller b2459dc6cd chore: remove updates.xml [skip ci] 2026-06-04 15:27:09 +00:00
jmiller 09211b6e3d chore: sync .mokogitea/workflows/pr-check.yml from moko-platform [skip ci] 2026-06-04 15:14:27 +00:00
jmiller 9f8ebaeb5c feat(update): migrate update server URL to Gitea Pages [skip ci] 2026-06-04 14:34:02 +00:00
jmiller 7cd81a8ae5 chore: sync .mokogitea/workflows/auto-release.yml from moko-platform [skip ci] 2026-06-04 14:21:16 +00:00
jmiller aebd01a5c4 chore: sync .mokogitea/workflows/repo-health.yml from moko-platform [skip ci] 2026-06-03 09:37:36 +00:00
jmiller 2b433fd569 chore: sync .mokogitea/workflows/repo-health.yml from moko-platform [skip ci] 2026-06-03 03:11:23 +00:00
jmiller b97c5bb8d4 chore: add .mokogitea/workflows/auto-release.yml from moko-platform [skip ci] 2026-06-02 23:48:01 +00:00
jmiller cff210ec96 chore: sync .mokogitea/workflows/pr-check.yml from moko-platform [skip ci] 2026-06-02 21:52:14 +00:00
Moko Consulting c1a063be27 chore(ci): add CI issue reporter for auto-filing gate failures
Generic: Repo Health / Access control (push) Successful in 1s
Generic: Repo Health / Site Health (push) Has been skipped
Generic: Repo Health / Release configuration (push) Has been cancelled
Generic: Repo Health / Scripts governance (push) Has been cancelled
Generic: Repo Health / Repository health (push) Has been cancelled
Generic: Repo Health / Report Issues (push) Has been cancelled
2026-06-02 20:38:42 +00:00
Moko Consulting bd03dbab09 chore(ci): add CI issue reporter for auto-filing gate failures
Generic: Repo Health / Access control (push) Successful in 2s
Generic: Repo Health / Site Health (push) Has been skipped
Generic: Repo Health / Release configuration (push) Has been cancelled
Generic: Repo Health / Scripts governance (push) Has been cancelled
Generic: Repo Health / Repository health (push) Has been cancelled
Generic: Repo Health / Report Issues (push) Has been cancelled
2026-06-02 20:38:41 +00:00
Moko Consulting 0ac43185e5 chore(ci): add CI issue reporter for auto-filing gate failures
Generic: Repo Health / Site Health (push) Has been skipped
Generic: Repo Health / Access control (push) Successful in 2s
Generic: Repo Health / Release configuration (push) Has been cancelled
Generic: Repo Health / Scripts governance (push) Has been cancelled
Generic: Repo Health / Repository health (push) Has been cancelled
Generic: Repo Health / Report Issues (push) Has been cancelled
2026-06-02 20:38:40 +00:00
gitea-actions[bot] 66704c9cee chore(ci): remove update-server.yml for update server migration [skip ci] 2026-05-31 03:46:56 +00:00
gitea-actions[bot] dc2497a513 chore(ci): remove cascade-dev.yml for update server migration [skip ci] 2026-05-31 03:46:55 +00:00
gitea-actions[bot] 38fba65a3d chore(ci): remove auto-bump.yml for update server migration [skip ci] 2026-05-31 03:46:53 +00:00
gitea-actions[bot] c00a658c0b chore(ci): remove pre-release.yml for update server migration [skip ci] 2026-05-31 03:46:51 +00:00
gitea-actions[bot] f47a928cd5 chore(ci): remove auto-release.yml for update server migration [skip ci] 2026-05-31 03:46:49 +00:00
jmiller 1ee8269b8e chore: sync .mokogitea/workflows/cascade-dev.yml from moko-platform [skip ci] 2026-05-31 01:46:12 +00:00
Jonathan Miller 2c480e8d31 chore(manifest): fix display-name structure and update CONTRIBUTING.md
Universal: Auto Version Bump / Version Bump (push) Failing after 4s
Standardize manifest.xml identity block: ensure <name> contains only
the machine identifier (PascalCase) and <display-name> contains the
human-readable label with Joomla extension type prefix. Remove duplicate
<version> tags where present. Update CONTRIBUTING.md from moko-platform
default.

Authored-by: Moko Consulting
2026-05-30 19:11:09 -05:00
jmiller 5d2c32422a chore: add .mokogitea/workflows/pr-check.yml from moko-platform [skip ci] 2026-05-30 16:03:58 +00:00
jmiller 49c0484061 chore: sync .mokogitea/workflows/auto-release.yml from moko-platform [skip ci] 2026-05-30 15:05:05 +00:00
jmiller 4708bb66fd chore: sync .mokogitea/workflows/auto-bump.yml from moko-platform [skip ci] 2026-05-30 15:02:30 +00:00
jmiller 17be4ff0f1 chore: sync .mokogitea/workflows/auto-release.yml from moko-platform [skip ci] 2026-05-30 01:17:13 +00:00
jmiller 0ad4963115 chore: sync .mokogitea/workflows/auto-bump.yml from moko-platform [skip ci] 2026-05-29 10:32:38 +00:00
gitea-actions[bot] f88c760c0f chore: update development channel 01.00.06-dev-dev [skip ci] 2026-05-29 05:29:02 +00:00
gitea-actions[bot] 40e540461e chore(version): auto-bump 01.00.06-dev-dev [skip ci] 2026-05-29 05:29:01 +00:00
Jonathan Miller 8dd6fdd926 fix: critical and high severity audit fixes
Universal: Auto Version Bump / Version Bump (push) Successful in 4s
Update Server / Update Server (push) Successful in 10s
C-1: CSRF nonce on OAuth authorize/callback flow
C-2: POST method enforcement on REST dispatch endpoint
C-5: Service credential fields now saved from form to JSON column
     (collect cred_* fields, strip prefix, JSON encode on save;
      expand back on load for editing)
H-1: Joomla 5 event ArrayAccess pattern for service plugin collection
     (reads from Event indices instead of broken by-reference)
H-4: ServiceTable::check() with alias generation, required validation
H-9: WebhookService credential keys match form XML field names,
     Bearer/Basic auth headers implemented correctly
M-4: XSS fix — escape $extraClass in ServiceIconHelper::renderIcon()
M-5: Article history HTML injection via setFieldAttribute() instead
     of double-escaped XML description attribute

Authored-by: Moko Consulting
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-05-29 00:28:36 -05:00
gitea-actions[bot] 353c037907 chore: update development channel 01.00.06-dev-dev [skip ci] 2026-05-29 05:13:42 +00:00
gitea-actions[bot] fcb332ea00 chore(version): auto-bump 01.00.06-dev-dev [skip ci] 2026-05-29 05:13:40 +00:00
Jonathan Miller 20ee39f54b feat: 5 final features — category routing, char counter, service icons, drill-down analytics, article history
Universal: Auto Version Bump / Version Bump (push) Successful in 3s
Update Server / Update Server (push) Successful in 9s
1. Category routing rules — new DB table #__mokojoomcross_category_rules
   maps Joomla categories to specific services (whitelist). Integrated
   into CrossPostDispatcher before per-article filters.
2. Character counter — live JS counter in template editor shows
   remaining chars per platform with color coding (green/yellow/red)
3. Service type icons — ServiceIconHelper maps 34 types to Bootstrap
   icons, used in services list, posts list, and dashboard
4. Per-service analytics drill-down — ServiceStats view with stats
   cards, daily trend chart, recent posts, top articles. Dashboard
   service rows are now clickable links.
5. Article editor cross-post history — read-only panel in the
   Cross-Posting fieldset showing last 10 post results with status
   badges, service names, and timestamps

Authored-by: Moko Consulting
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-05-29 00:13:30 -05:00
gitea-actions[bot] 57f34f0fc7 chore: update development channel 01.00.06-dev-dev [skip ci] 2026-05-29 03:56:02 +00:00
gitea-actions[bot] 58a9641b94 chore(version): auto-bump 01.00.06-dev-dev [skip ci] 2026-05-29 03:56:01 +00:00
Jonathan Miller 16c068b4b0 feat: getSupportedMediaTypes() on all 36 service plugins
Universal: Auto Version Bump / Version Bump (push) Successful in 3s
Update Server / Update Server (push) Successful in 9s
Add media capability reporting to MokoJoomCrossServiceInterface.
Each plugin now returns its supported media types:
- image, video, gif, document (per platform capability)
- Empty array for text-only services (Nostr, Ntfy, ConvertKit)

Enables the dispatcher to skip media attachments for text-only
services and choose appropriate media types per platform.

Authored-by: Moko Consulting
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-05-28 22:55:51 -05:00
gitea-actions[bot] de869c2b5d chore: update development channel 01.00.06-dev-dev [skip ci] 2026-05-29 03:52:43 +00:00
gitea-actions[bot] b8cd0253e1 chore(version): auto-bump 01.00.06-dev-dev [skip ci] 2026-05-29 03:52:42 +00:00
Jonathan Miller c3899b65d3 feat: bulk re-queue, purge posted, CSV export, package manifest update
Universal: Auto Version Bump / Version Bump (push) Successful in 3s
Update Server / Update Server (push) Successful in 8s
- PostsController: retryFailed(), purgePosted(), exportCsv() tasks
- Posts HtmlView: Retry Failed, Purge Posted, Export CSV toolbar buttons
- pkg_mokojoomcross.xml: added new sub-extension entries

Authored-by: Moko Consulting
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-05-28 22:52:30 -05:00
gitea-actions[bot] 7777ffca32 chore: update development channel 01.00.06-dev-dev [skip ci] 2026-05-29 03:48:32 +00:00
gitea-actions[bot] 90340dd499 chore(version): auto-bump 01.00.06-dev-dev [skip ci] 2026-05-29 03:48:31 +00:00
Jonathan Miller 7747fef50e refactor: split content-type dispatch into pluggable source plugins
Universal: Auto Version Bump / Version Bump (push) Successful in 3s
Update Server / Update Server (push) Successful in 8s
Extract dispatch logic from monolithic system plugin into a shared
CrossPostDispatcher helper. Each content type now has its own plugin:

- plg_content_mokojoomcross — articles (onContentAfterSave/ChangeState)
- plg_system_mokojoomcross_events — MokoJoomCalendar events
- plg_system_mokojoomcross_gallery — MokoJoomGallery galleries/images
- plg_mokojoomcross_mokojoomcalendar — calendar service enrichment
- plg_mokojoomcross_mokojoomgallery — gallery service enrichment

System plugin stripped to page-load queue processing only.

Also fixes: onContentBeforeDisplay Joomla 5/6 BeforeDisplayEvent
compatibility (was crashing with wrong argument type).

Authored-by: Moko Consulting
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-05-28 22:48:18 -05:00
gitea-actions[bot] 3586ce7661 chore: update development channel 01.00.06-dev-dev [skip ci] 2026-05-29 03:33:54 +00:00
gitea-actions[bot] 83dc2fa013 chore(version): auto-bump 01.00.06-dev-dev [skip ci] 2026-05-29 03:33:52 +00:00