Commit Graph

70 Commits

Author SHA1 Message Date
jmiller 7bd151ad62 feat: add Threads carousel, polls, and spoiler support (#153)
Universal: Auto Version Bump / Version Bump (push) Successful in 10s
Authored-by: Moko Consulting
2026-06-27 20:25:33 -05:00
gitea-actions[bot] a111f5b5e9 chore(version): pre-release bump to 01.08.14-dev [skip ci] 2026-06-28 00:38:06 +00:00
gitea-actions[bot] 8919db6fc3 chore(version): pre-release bump to 01.08.13-dev [skip ci]
RC Revert / Rename rc/ back to dev/ (pull_request) Has been skipped
Branch Cleanup / Delete merged branch (pull_request) Failing after 3s
2026-06-28 00:27:20 +00:00
jmiller d69b26af51 fix: update package description to list all 38 platforms and key features
Universal: PR Check / Branch Policy (pull_request) Successful in 1s
Universal: PR Check / Validate PR (pull_request) Failing after 5s
Universal: PR Check / Secret Scan (pull_request) Successful in 6s
Universal: Pre-Release / Build Pre-Release (${{ inputs.stability || github.ref_name }}) (push) Successful in 12s
Joomla: Metadata Validation / Validate Joomla Metadata (pull_request) Successful in 36s
Universal: PR Check / Build RC Package (pull_request) Has been cancelled
Universal: PR Check / Report Issues (pull_request) Has been cancelled
Authored-by: Moko Consulting
2026-06-27 19:26:44 -05:00
gitea-actions[bot] a8dae85f42 chore(version): pre-release bump to 01.08.12-dev [skip ci] 2026-06-27 20:34:25 +00:00
gitea-actions[bot] 13683adfba chore(version): auto-bump patch 01.08.11-dev [skip ci]
RC Revert / Rename rc/ back to dev/ (pull_request) Has been skipped
Branch Cleanup / Delete merged branch (pull_request) Failing after 3s
2026-06-27 20:22:09 +00:00
jmiller e183b62aba feat: implement Nostr NIP-01 WebSocket relay publishing (#129)
Universal: Auto Version Bump / Version Bump (push) Successful in 9s
- BIP-340 Schnorr signatures over secp256k1 (pure PHP, requires ext-gmp)
- Kind-1 text note events with SHA-256 event ID and tagged hashes
- Raw WebSocket client via stream_socket_client (zero external deps)
- Multi-relay failover: tries each relay until one accepts
- Public key derivation from private key for account display
- Validates 64-char hex private key format and wss:// relay URLs

Authored-by: Moko Consulting
2026-06-27 15:21:45 -05:00
gitea-actions[bot] ce9d72b50d chore(version): pre-release bump to 01.08.10-dev [skip ci] 2026-06-27 00:11:16 +00:00
gitea-actions[bot] 92358a673b chore(version): pre-release bump to 01.08.09-dev [skip ci] 2026-06-25 19:46:34 +00:00
gitea-actions[bot] 99308cd7a4 chore(version): pre-release bump to 01.08.08-dev [skip ci] 2026-06-25 17:09:50 +00:00
jmiller 3e1cb9a500 fix: use typed Joomla 6 event parameters, remove legacy fallbacks
Universal: PR Check / Branch Policy (pull_request) Successful in 1s
RC Revert / Rename rc/ back to dev/ (pull_request) Has been skipped
Branch Cleanup / Delete merged branch (pull_request) Successful in 1s
Universal: Pre-Release / Build Pre-Release (${{ inputs.stability || github.ref_name }}) (push) Failing after 4s
Universal: PR Check / Validate PR (pull_request) Failing after 5s
Universal: PR Check / Secret Scan (pull_request) Successful in 5s
Joomla: Metadata Validation / Validate Joomla Metadata (pull_request) Successful in 27s
Universal: PR Check / Build RC Package (pull_request) Has been cancelled
Universal: PR Check / Report Issues (pull_request) Has been cancelled
Remove func_get_arg() legacy fallbacks from onContentBeforeDisplay,
onContentAfterSave, and onContentChangeState. All methods now use
typed event parameters (Joomla 6 only).
2026-06-25 12:08:54 -05:00
gitea-actions[bot] 5ae8e3e001 chore(version): pre-release bump to 01.08.07-dev [skip ci] 2026-06-25 16:27:32 +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