gitea-actions[bot]
738a76c348
chore(version): pre-release bump to 01.08.06-dev [skip ci]
2026-06-25 16:26:41 +00:00
jmiller
79eaa5217d
fix: add SQL update file to match manifest version
...
Universal: PR Check / Branch Policy (pull_request) Successful in 2s
Universal: PR Check / Validate PR (pull_request) Failing after 5s
Universal: PR Check / Secret Scan (pull_request) Successful in 6s
Joomla: Metadata Validation / Validate Joomla Metadata (pull_request) Successful in 12s
RC Revert / Rename rc/ back to dev/ (pull_request) Has been skipped
Branch Cleanup / Delete merged branch (pull_request) Failing after 2s
Universal: Pre-Release / Build Pre-Release (${{ inputs.stability || github.ref_name }}) (push) Successful in 16s
Universal: PR Check / Build RC Package (pull_request) Has been cancelled
Universal: PR Check / Report Issues (pull_request) Has been cancelled
Joomla's Database view requires a SQL update file matching the manifest
version. Missing file causes persistent schema version mismatch warning.
2026-06-25 11:25:24 -05:00
gitea-actions[bot]
0e0891f1a8
chore(version): pre-release bump to 01.08.05-dev [skip ci]
2026-06-25 16:15:51 +00:00
gitea-actions[bot]
33aaf666ae
chore(version): pre-release bump to 01.08.04-dev [skip ci]
2026-06-25 16:15:19 +00:00
gitea-actions[bot]
a634938799
chore(version): auto-bump patch 01.08.03-dev [skip ci]
2026-06-25 16:15:03 +00:00
gitea-actions[bot]
b3de21e7d1
chore(version): pre-release bump to 01.08.02-dev [skip ci]
2026-06-25 14:54:01 +00:00
gitea-actions[bot]
72a373b17c
chore(version): auto-bump patch 01.07.04-dev [skip ci]
2026-06-25 14:53:44 +00:00
jmiller
bc290f3bed
fix: Joomla 6 compat for webservices API route event
...
Universal: Auto Version Bump / Version Bump (push) Successful in 10s
Universal: Pre-Release / Build Pre-Release (${{ inputs.stability || github.ref_name }}) (push) Successful in 22s
Joomla 6 passes a BeforeApiRouteEvent object instead of the router
directly. Extract the router from the event for Joomla 5/6 dual compat.
2026-06-25 09:53:29 -05:00
gitea-actions[bot]
a4704ad267
chore(version): pre-release bump to 01.07.03-dev [skip ci]
2026-06-23 22:53:09 +00:00
gitea-actions[bot]
d1762ad5df
chore(version): auto-bump patch 01.07.02-dev [skip ci]
2026-06-23 22:52:52 +00:00
gitea-actions[bot]
56699fdd4d
chore(version): pre-release bump to 01.07.01-dev [skip ci]
2026-06-23 22:27:51 +00:00
gitea-actions[bot]
fcf1cc41c8
chore(version): auto-bump patch 01.06.10-dev [skip ci]
2026-06-23 22:27:41 +00:00
Jonathan Miller
b8640ccb1d
fix: content plugin func_get_arg crash on non-article saves
...
Universal: Auto Version Bump / Version Bump (push) Successful in 10s
Universal: Pre-Release / Build Pre-Release (${{ inputs.stability || github.ref_name }}) (push) Successful in 12s
onContentAfterSave and onContentChangeState fire for ALL content types
in Joomla (articles, update sites, installer, etc). The legacy fallback
used func_get_arg() without checking argument count, crashing when
com_installer saved update sites (only 1 arg, not 3).
Fix: check context early in the event object path, and guard legacy
path with func_num_args() >= N before calling func_get_arg().
2026-06-23 17:25:59 -05:00
gitea-actions[bot]
ca06298e64
chore(version): pre-release bump to 01.06.09-dev [skip ci]
2026-06-23 21:51:30 +00:00
gitea-actions[bot]
55d2123c33
chore(version): auto-bump patch 01.06.08-dev [skip ci]
Branch Cleanup / Delete merged branch (pull_request) Has been skipped
RC Revert / Rename rc/ back to dev/ (pull_request) Has been skipped
Universal: Build & Release / Promote to RC (pull_request) Has been skipped
Universal: Build & Release / Build & Release Pipeline (pull_request) Successful in 16s
Universal: Workflow Sync Trigger / Sync workflows to live repos (pull_request) Failing after 3m7s
2026-06-23 21:51:18 +00:00
gitea-actions[bot]
f1ea8ead74
chore(version): pre-release bump to 01.06.07-dev [skip ci]
2026-06-23 19:22:40 +00:00
gitea-actions[bot]
23de84610e
chore(version): auto-bump patch 01.06.06-dev [skip ci]
2026-06-23 19:22:17 +00:00
Jonathan Miller
0cb24b4759
feat: full ACL system with 12 granular permissions across entire codebase
...
Universal: Auto Version Bump / Version Bump (push) Successful in 17s
Universal: Pre-Release / Build Pre-Release (${{ inputs.stability || github.ref_name }}) (push) Successful in 24s
access.xml: 12 component-specific actions added:
- mokosuitecross.crosspost (auto cross-post on publish)
- mokosuitecross.crosspost.manual (manually create posts)
- mokosuitecross.delete.remote (delete from remote platforms)
- mokosuitecross.services.manage (create/edit/delete services)
- mokosuitecross.services.credentials (view decrypted credentials)
- mokosuitecross.templates.manage (create/edit/delete templates)
- mokosuitecross.logs.view (view activity logs)
- mokosuitecross.logs.purge (purge old logs)
- mokosuitecross.queue.manage (manage post queue)
- mokosuitecross.queue.export (export posts as CSV)
- mokosuitecross.dispatch (trigger REST API dispatch)
- mokosuitecross.migrate (run Perfect Publisher migration)
config.xml: permissions fieldset with rules field for admin UI.
Enforcement:
- DisplayController: core.manage gate on all views
- ServicesController: publish/delete ACL checks
- TemplatesController: publish/delete ACL checks
- PostsController: queue.export permission
- ServiceController: services.manage for test connection
- DispatchController: dispatch permission for REST API
- All list views: preferences button gated by core.admin
- All edit views: save/apply buttons gated by section permission
- MokoSuiteCrossHelper::getActions() centralizes ACL lookups
2026-06-23 14:21:55 -05:00
gitea-actions[bot]
7fa97231a1
chore(version): pre-release bump to 01.06.05-dev [skip ci]
2026-06-23 18:09:37 +00:00
gitea-actions[bot]
2291db32c5
chore(version): auto-bump patch 01.06.04-dev [skip ci]
2026-06-23 18:09:18 +00:00
gitea-actions[bot]
064d5e3ab1
chore(version): pre-release bump to 01.06.03-dev [skip ci]
2026-06-23 17:57:35 +00:00
gitea-actions[bot]
c512829cd4
chore(version): auto-bump patch 01.06.02-dev [skip ci]
2026-06-23 17:57:19 +00:00
gitea-actions[bot]
b9d8eb3950
chore(version): pre-release bump to 01.06.01-dev [skip ci]
Publish to Composer / Publish Package (release) Failing after 8s
2026-06-23 17:35:55 +00:00
gitea-actions[bot]
053fe2d52c
chore(version): auto-bump patch 01.05.04-dev [skip ci]
2026-06-23 17:35:28 +00:00
gitea-actions[bot]
f65d261598
chore(version): pre-release bump to 01.05.03-dev [skip ci]
Publish to Composer / Publish Package (release) Failing after 6s
2026-06-23 17:09:09 +00:00
gitea-actions[bot]
78cbd1f370
chore(version): pre-release bump to 01.05.02-dev [skip ci]
Publish to Composer / Publish Package (release) Failing after 38s
2026-06-23 17:01:51 +00:00
Jonathan Miller
70d2bab52d
fix: remove duplicate license warning from system plugin
...
Universal: Auto Version Bump / Version Bump (push) Successful in 8s
Universal: Pre-Release / Build Pre-Release (${{ inputs.stability || github.ref_name }}) (push) Successful in 18s
The license key warning was firing twice:
1. Package install script (source/script.php) - has direct "Enter Key" button
2. System plugin (onAfterRoute) - every admin session, less actionable
Removed #2 entirely. The install script version is better UX (button links
directly to update site edit page) and only fires during install/update.
Also eliminates the uninstall bug where the warning fired during removal.
2026-06-23 11:59:56 -05:00
gitea-actions[bot]
166a6366f8
chore(version): pre-release bump to 01.05.01-dev [skip ci]
Publish to Composer / Publish Package (release) Failing after 33s
2026-06-23 16:45:37 +00:00
Jonathan Miller
ac8a64c4c1
fix: license key warning no longer shows during uninstall
...
Universal: Auto Version Bump / Version Bump (push) Successful in 12s
Universal: Pre-Release / Build Pre-Release (${{ inputs.stability || github.ref_name }}) (push) Successful in 12s
Check if com_mokosuitecross is still in #__extensions before warning
about missing license key. Prevents the warning from firing during
package uninstall when the update site row is already deleted.
2026-06-23 11:45:05 -05:00
gitea-actions[bot]
62a8e9bd99
chore(version): pre-release bump to 01.04.12-dev [skip ci]
Branch Cleanup / Delete merged branch (pull_request) Has been skipped
RC Revert / Rename rc/ back to dev/ (pull_request) Has been skipped
Universal: Build & Release / Promote to RC (pull_request) Has been skipped
Universal: Workflow Sync Trigger / Sync workflows to live repos (pull_request) Failing after 3s
Publish to Composer / Publish Package (release) Failing after 35s
Universal: Build & Release / Build & Release Pipeline (pull_request) Successful in 32s
2026-06-23 16:07:11 +00:00
Jonathan Miller
de0b588be0
fix: resolve broken namespace placeholders in 7 plugin XML manifests
Universal: PR Check / Branch Policy (pull_request) Successful in 1s
Joomla: Extension CI / Lint & Validate (pull_request) Failing after 7s
Joomla: Extension CI / Release Readiness Check (pull_request) Failing after 4s
Generic: Repo Health / Site Health (pull_request) Has been skipped
Universal: PR Check / Secret Scan (pull_request) Successful in 7s
Generic: Repo Health / Access control (pull_request) Successful in 2s
Universal: Auto Version Bump / Version Bump (push) Successful in 12s
Universal: Pre-Release / Build Pre-Release (${{ inputs.stability || github.ref_name }}) (push) Successful in 24s
Universal: PR Check / Validate PR (pull_request) Failing after 48s
Joomla: Metadata Validation / Validate Joomla Metadata (pull_request) Successful in 49s
Joomla: Extension CI / Tests (PHP 8.2) (pull_request) Has been cancelled
Joomla: Extension CI / Tests (PHP 8.3) (pull_request) Has been cancelled
Joomla: Extension CI / PHPStan Analysis (pull_request) Has been cancelled
Joomla: Extension CI / Build RC Pre-Release (pull_request) Has been cancelled
Universal: PR Check / Build RC Package (pull_request) Has been cancelled
Universal: PR Check / Report Issues (pull_request) Has been cancelled
Generic: Repo Health / Scripts governance (pull_request) Has been cancelled
Generic: Repo Health / Repository health (pull_request) Has been cancelled
Generic: Repo Health / Report Issues (pull_request) Has been cancelled
2026-06-23 11:06:34 -05:00
gitea-actions[bot]
4650f9ba46
chore(version): pre-release bump to 01.04.11-dev [skip ci]
Publish to Composer / Publish Package (release) Failing after 5s
2026-06-23 15:46:32 +00:00
Jonathan Miller
be58716391
feat: ntfy default server ntfy.mokoconsulting.tech with config params
...
Universal: Auto Version Bump / Version Bump (push) Successful in 10s
Universal: Pre-Release / Build Pre-Release (${{ inputs.stability || github.ref_name }}) (push) Successful in 12s
- Default server URL changed from ntfy.sh to ntfy.mokoconsulting.tech
- Added plugin config fieldset with default_server_url and default_topic
- Server URL reads from plugin params, overridable per-service in credentials
- Updated language strings
2026-06-23 10:46:10 -05:00
gitea-actions[bot]
03870dce33
chore(version): pre-release bump to 01.04.10-dev [skip ci]
Publish to Composer / Publish Package (release) Failing after 34s
2026-06-23 15:38:31 +00:00
Jonathan Miller
5fee5d7810
feat: Mastodon polls/visibility/scheduling + Bluesky threads ( closes #152 , #158 )
...
Universal: Auto Version Bump / Version Bump (push) Successful in 12s
Universal: Pre-Release / Build Pre-Release (${{ inputs.stability || github.ref_name }}) (push) Successful in 12s
Mastodon (#152 ):
- Visibility levels (public/unlisted/private/direct) from params or config
- Content warnings via spoiler_text param
- Scheduled posts via scheduled_at param
- Poll creation (options, expires_in, multiple) mutually exclusive with media
- Language tag support
- Fixed broken ${CLASS_NAME} namespace in mastodon.xml
Bluesky (#158 ):
- Auto-thread: split long messages at sentence boundaries into reply chains
- External link card embed (app.bsky.embed.external) with article title/description
- Link card attached to last post in thread
- Dispatcher now passes article_title to service plugins
Closes #152 , closes #158
2026-06-23 10:38:04 -05:00
gitea-actions[bot]
c13c2a372e
chore(version): pre-release bump to 01.04.09-dev [skip ci]
Publish to Composer / Publish Package (release) Failing after 7s
2026-06-23 14:08:10 +00:00
gitea-actions[bot]
9bfbf36090
chore(version): pre-release bump to 01.04.08-dev [skip ci]
Publish to Composer / Publish Package (release) Failing after 3s
2026-06-23 13:48:28 +00:00
Jonathan Miller
7e5ff12d03
feat: UTM auto-tagging and caption rotation ( closes #154 , closes #155 )
...
Universal: Auto Version Bump / Version Bump (push) Successful in 7s
Universal: Pre-Release / Build Pre-Release (${{ inputs.stability || github.ref_name }}) (push) Successful in 9s
UTM tracking (#154 ):
- New config fieldset with utm_source, utm_medium, utm_campaign, utm_content
- {platform} token in UTM values auto-replaced with service type
- {url} gets UTM params appended when enabled
- {url_raw} placeholder for clean URLs without UTM
Caption rotation (#155 ):
- {random:option1|option2|option3} placeholder in templates
- Picks one option at random per post render
- Great for evergreen re-shares to vary messaging
Closes #154 , closes #155
2026-06-23 08:48:08 -05:00
gitea-actions[bot]
42f7a09bb3
chore(version): pre-release bump to 01.04.07-dev [skip ci]
Publish to Composer / Publish Package (release) Failing after 6s
2026-06-23 13:25:07 +00:00
gitea-actions[bot]
eb1b112a93
chore(version): pre-release bump to 01.04.06-dev [skip ci]
Publish to Composer / Publish Package (release) Failing after 37s
2026-06-23 13:21:41 +00:00
Jonathan Miller
4918879eec
feat: delete/unpublish from remote platforms ( closes #131 )
...
Universal: Auto Version Bump / Version Bump (push) Successful in 8s
Universal: Pre-Release / Build Pre-Release (${{ inputs.stability || github.ref_name }}) (push) Successful in 18s
New MokoSuiteCrossDeleteInterface (separate from main interface to avoid
breaking all 38 plugins). Plugins that support deletion implement both.
deletePost() implemented for 7 platforms:
- Twitter: DELETE /2/tweets/{id} with OAuth 1.0a
- Mastodon: DELETE /api/v1/statuses/{id}
- Bluesky: com.atproto.repo.deleteRecord
- Facebook: DELETE /{post_id} via Graph API
- LinkedIn: DELETE /v2/ugcPosts/{urn}
- Telegram: POST /deleteMessage
- Discord: DELETE webhook /messages/{id}
Infrastructure:
- CrossPostDispatcher::deleteFromPlatforms() finds posted entries and
calls deletePost() on plugins that implement the delete interface
- Content plugin hooks onContentChangeState for unpublish/trash
- New component config: 'Delete from Platforms on Unpublish'
- Post status 'deleted' added to schema
Closes #131
2026-06-23 08:21:18 -05:00
gitea-actions[bot]
add973771b
chore(version): pre-release bump to 01.04.05-dev [skip ci]
Publish to Composer / Publish Package (release) Failing after 7s
2026-06-23 13:07:08 +00:00
Jonathan Miller
5753c307c6
feat: Mailchimp template support + responsive email wrapper ( closes #142 )
...
Universal: Auto Version Bump / Version Bump (push) Successful in 14s
Universal: Pre-Release / Build Pre-Release (${{ inputs.stability || github.ref_name }}) (push) Successful in 19s
- Add template_id and template_section config fields
- When template_id set, inject content into Mailchimp template sections
- When empty, wrap HTML in responsive email skeleton (600px table layout)
- Fix broken ${CLASS_NAME} namespace placeholder in mailchimp.xml
- New language strings for template fieldset
Closes #142
2026-06-23 08:06:34 -05:00
gitea-actions[bot]
bfe4432c78
chore(version): pre-release bump to 01.04.04-dev [skip ci]
Publish to Composer / Publish Package (release) Failing after 8s
2026-06-23 12:58:31 +00:00
Jonathan Miller
3c1f3a2421
feat: add per-article Share Content panel with platform-specific placeholders
...
Universal: Auto Version Bump / Version Bump (push) Successful in 8s
Universal: Pre-Release / Build Pre-Release (${{ inputs.stability || github.ref_name }}) (push) Successful in 13s
New article editor fieldset 'Share Content' with fields:
- Social Media Text ({social}) - Facebook, LinkedIn, Threads, Mastodon
- Short Text ({short}) - Twitter/X (280), Bluesky (300)
- Chat Text ({chat}) - Telegram, Discord, Slack, Teams
- Email Subject ({email_subject}) + Email Body ({email_body}) - Mailchimp, SendGrid, Brevo
- Share Image picker (intro/fulltext/custom/none)
All placeholders fall back gracefully to introtext/title if empty.
Default templates updated to use platform-specific placeholders.
2026-06-23 07:58:08 -05:00
gitea-actions[bot]
9017b06c7d
chore(version): pre-release bump to 01.04.03-dev [skip ci]
Publish to Composer / Publish Package (release) Failing after 26s
2026-06-23 12:39:07 +00:00
Jonathan Miller
1cb5c77bec
feat: add Instagram + YouTube plugins, re-apply deep scan fixes ( #140 , #141 )
...
Universal: Auto Version Bump / Version Bump (push) Successful in 12s
Universal: Pre-Release / Build Pre-Release (${{ inputs.stability || github.ref_name }}) (push) Successful in 11s
New plugins:
- plg_mokosuitecross_instagram: Meta Content Publishing API (2-step flow)
- plg_mokosuitecross_youtube: YouTube Data API v3 channel bulletins
Bug fixes (re-applied after rebase loss):
- ConvertKit/Brevo/ConstantContact: duplicate curl_setopt_array removed
- Mailchimp: campaign creation accepts 2xx range (not just 200)
- Medium: getUserId() returns '' on error (not array)
- Bluesky: sha256 instead of md5 for cache key
- ServiceController: generic error message instead of exception details
Closes #140 , closes #141
2026-06-23 07:38:41 -05:00
gitea-actions[bot]
dc5feaa9aa
chore(version): pre-release bump to 01.04.02-dev [skip ci]
Publish to Composer / Publish Package (release) Failing after 48s
2026-06-21 23:40:48 +00:00
gitea-actions[bot]
a1b2bf40ce
chore(release): build 01.04.01 [skip ci]
Publish to Composer / Publish Package (release) Failing after 5s
2026-06-21 23:25:01 +00:00
gitea-actions[bot]
c8918df03e
chore(version): pre-release bump to 01.04.01-dev [skip ci]
Universal: Build & Release / Promote to RC (pull_request) Has been skipped
Universal: Build & Release / Build & Release Pipeline (pull_request) Successful in 25s
Publish to Composer / Publish Package (release) Failing after 49s
Branch Cleanup / Delete merged branch (pull_request) Failing after 1s
RC Revert / Rename rc/ back to dev/ (pull_request) Has been skipped
Universal: Workflow Sync Trigger / Sync workflows to live repos (pull_request) Failing after 4s
2026-06-21 23:09:49 +00:00