2026-03-07 - 2026-06-07
Overview
1 Release published by 1 user
Published
development
Package - MokoJoomCross (VERSION: 01.00.28-dev)
93 Issues closed from 1 user
Closed
#51 Retry mechanism for failed posts
Closed
#50 Cross-post analytics dashboard
Closed
#49 Scheduling UI for timed cross-posts
Closed
#48 System plugin hooks for Calendar and Gallery content types
Closed
#47 TikTok service plugin — Content Posting API
Closed
#46 Constant Contact service plugin — Email Campaigns
Closed
#45 RSS Feed service plugin — dedicated cross-post feed
Closed
#44 Matrix/Element service plugin
Closed
#42 Hashnode service plugin — GraphQL API
Closed
#43 Blogger service plugin — Google Blogger API
Closed
#40 Dev.to service plugin — Forem API
Closed
#41 Ghost service plugin — Admin API
Closed
#39 ActivityPub service plugin — generic Fediverse posting
Closed
#38 Nostr service plugin — decentralized protocol
Closed
#37 ConvertKit service plugin — Broadcasts
Closed
#36 Tumblr service plugin — Posts API
Closed
#35 Ntfy service plugin — Push notifications
Closed
#34 WordPress service plugin — REST API cross-posting
Closed
#33 Brevo (Sendinblue) service plugin — Email Campaigns
Closed
#32 SendGrid service plugin — Marketing Campaigns
Closed
#31 Reddit service plugin — Submit API
Closed
#30 Pinterest service plugin — Pins API
Closed
#28 Google Chat service plugin — Webhooks
Closed
#29 Medium service plugin — Publishing API
Closed
#26 Google Business Profile service plugin
Closed
#27 WhatsApp Business service plugin — Cloud API
Closed
#24 Microsoft Teams service plugin — Incoming Webhooks
Closed
#25 Threads (Meta) service plugin — Threads API
Closed
#23 Generic Webhook service plugin — universal connector
Closed
#22 Load help articles to WaaS live site
Closed
#20 Cross-post analytics dashboard
Closed
#21 OAuth flow for services requiring browser auth
Closed
#19 Selective cross-posting per article
Closed
#18 Activity logs view and log retention
Closed
#17 Message template management UI
Closed
#16 WebServices REST API — full CRUD endpoints
Closed
#15 Mailchimp service plugin — Campaigns API
Closed
#14 Bluesky service plugin — AT Protocol integration
Closed
#13 Mastodon service plugin — API integration
Closed
#11 Post queue processor — retry logic and scheduling
Closed
#12 LinkedIn service plugin — Share API integration
Closed
#9 X/Twitter service plugin — API v2 integration
Closed
#10 Slack service plugin — Incoming Webhooks
Closed
#8 Discord service plugin — Webhook integration
Closed
#7 Facebook service plugin — Graph API integration
Closed
#5 Admin component — Dashboard with stats and migration
Closed
#6 Perfect Publisher Pro migration tool
Closed
#4 Admin component — Post Queue view
Closed
#3 Admin component — Services CRUD
Closed
#2 Telegram service plugin — Bot API integration
Closed
#1 Core cross-posting engine — dispatch articles to service plugins
Closed
#125 Enhancement: Google Business plugin uses deprecated API v4
Closed
#124 Enhancement: Teams plugin uses deprecated Office 365 Connectors webhook
Closed
#119 Enhancement: 8 stub service plugins need real API implementations
Closed
#117 Performance: N+1 queries in renderTemplate() for category/author/tags
Closed
#118 Enhancement: Media attachments not wired up in most service plugins
Closed
#116 Performance: N+1 queries in processEvergreen()
Closed
#123 Bug: Missing curl_error() handling across all service plugins
Closed
#126 Bug: Ntfy supportsMedia() inconsistency
Closed
#122 Bug: updateLastRunTimestamp() race condition on component params
Closed
#121 Bug: schedule() allows re-scheduling already-posted items
Closed
#120 Bug: Dashboard migration link missing CSRF token
Closed
#115 Bug: Race condition in timestamp-based queue lock fallback
Closed
#114 Bug: hasPendingWork() backoff mismatch with processQueue()
Closed
#113 Bug: Broken <script> tag in dashboard template
Closed
#112 Security: OAuth credentials stored in plaintext JSON
Closed
#111 Security: SSRF risk in user-controlled service URLs
Closed
#110 Bug: LinkedIn organization_id missing null-coalesce operator
Closed
#109 Security: REST dispatch endpoint missing ACL check
Closed
#108 Security: OauthController::authorize() missing CSRF check
Closed
#107 Bug: testConnection() broken event dispatch and missing CSRF/ACL
Closed
#104 Security: No ACL/CSRF check on CSV export
Closed
#105 Security: Missing CSRF check on migration action
Closed
#103 Enhancement: Deprecated Sidebar API usage
Closed
#102 Enhancement: DispatchController duplicates template render logic
Closed
#99 Performance: CrossPostDispatcher makes N*M DB queries per dispatch
Closed
#98 Enhancement: Mailchimp campaigns are created but never sent
Closed
#97 Enhancement: Bluesky re-authenticates on every post
Closed
#96 Enhancement: Facebook token should not be in URL query string
Closed
#101 Bug: Evergreen search uses fragile JSON LIKE query
Closed
#100 Bug: Duplicate category_rules table in install SQL
Closed
#95 Bug: PostsController unvalidated datetime in scheduled_at
Closed
#94 Bug: PostsController::retryFailed() misses permanently_failed status
Closed
#93 Bug: processEvergreen() imports wrong plugin group
Closed
#92 Bug: MySQL-only GET_LOCK breaks PostgreSQL/SQLite compatibility
Closed
#91 Fixed: Article history HTML double-escaped in note field
Closed
#90 Fixed: ServiceIconHelper XSS via unescaped extraClass
Closed
#89 Fixed: POST method enforcement on REST dispatch endpoint
Closed
#88 Fixed: WebhookService credential key mismatch and missing auth
Closed
#87 Fixed: ServiceTable missing check() method
Closed
#86 Fixed: Joomla 5 event ArrayAccess pattern for service plugin collection
Closed
#85 Fixed: Service credential fields never saved from form to DB
Closed
#84 Fixed: CSRF nonce on OAuth authorize/callback flow
125 Issues created by 1 user
Opened
#1 Core cross-posting engine — dispatch articles to service plugins
Opened
#2 Telegram service plugin — Bot API integration
Opened
#3 Admin component — Services CRUD
Opened
#4 Admin component — Post Queue view
Opened
#5 Admin component — Dashboard with stats and migration
Opened
#6 Perfect Publisher Pro migration tool
Opened
#7 Facebook service plugin — Graph API integration
Opened
#8 Discord service plugin — Webhook integration
Opened
#9 X/Twitter service plugin — API v2 integration
Opened
#10 Slack service plugin — Incoming Webhooks
Opened
#11 Post queue processor — retry logic and scheduling
Opened
#12 LinkedIn service plugin — Share API integration
Opened
#13 Mastodon service plugin — API integration
Opened
#14 Bluesky service plugin — AT Protocol integration
Opened
#15 Mailchimp service plugin — Campaigns API
Opened
#16 WebServices REST API — full CRUD endpoints
Opened
#17 Message template management UI
Opened
#18 Activity logs view and log retention
Opened
#19 Selective cross-posting per article
Opened
#20 Cross-post analytics dashboard
Opened
#21 OAuth flow for services requiring browser auth
Opened
#22 Load help articles to WaaS live site
Opened
#23 Generic Webhook service plugin — universal connector
Opened
#24 Microsoft Teams service plugin — Incoming Webhooks
Opened
#25 Threads (Meta) service plugin — Threads API
Opened
#26 Google Business Profile service plugin
Opened
#27 WhatsApp Business service plugin — Cloud API
Opened
#28 Google Chat service plugin — Webhooks
Opened
#29 Medium service plugin — Publishing API
Opened
#30 Pinterest service plugin — Pins API
Opened
#31 Reddit service plugin — Submit API
Opened
#32 SendGrid service plugin — Marketing Campaigns
Opened
#33 Brevo (Sendinblue) service plugin — Email Campaigns
Opened
#34 WordPress service plugin — REST API cross-posting
Opened
#35 Ntfy service plugin — Push notifications
Opened
#36 Tumblr service plugin — Posts API
Opened
#37 ConvertKit service plugin — Broadcasts
Opened
#38 Nostr service plugin — decentralized protocol
Opened
#39 ActivityPub service plugin — generic Fediverse posting
Opened
#40 Dev.to service plugin — Forem API
Opened
#41 Ghost service plugin — Admin API
Opened
#42 Hashnode service plugin — GraphQL API
Opened
#43 Blogger service plugin — Google Blogger API
Opened
#44 Matrix/Element service plugin
Opened
#45 RSS Feed service plugin — dedicated cross-post feed
Opened
#46 Constant Contact service plugin — Email Campaigns
Opened
#47 TikTok service plugin — Content Posting API
Opened
#48 System plugin hooks for Calendar and Gallery content types
Opened
#49 Scheduling UI for timed cross-posts
Opened
#50 Cross-post analytics dashboard
Opened
#51 Retry mechanism for failed posts
Opened
#52 Test: Calendar and Gallery cross-post plugins
Opened
#53 Test: Twitter OAuth 1.0a credential fields
Opened
#54 Test: All 34 service credential fields display correctly
Opened
#55 Test: 13 rewritten service plugin API implementations
Opened
#56 Test: Admin views load without errors (Toolbar/Route imports)
Opened
#57 Test: Post edit form, manual post creator, and scheduling
Opened
#58 Test: Evergreen content re-sharing
Opened
#59 Test: Test Connection button on service edit
Opened
#60 Test: Bulk re-queue failed and purge posted
Opened
#61 Test: Dashboard trend chart and date range filter
Opened
#62 Test: Queue depth warning on dashboard
Opened
#63 Test: Exponential backoff for retries
Opened
#64 Test: First-publish-only toggle
Opened
#65 Test: Hashtag injection placeholders ({tags}, {hashtags})
Opened
#66 Test: Custom field placeholders ({field:xxx})
Opened
#67 Test: Posts list filters (service, search) and CSV export
Opened
#68 Test: Image attachment pipeline
Opened
#69 Test: Token auto-refresh for OAuth services
Opened
#70 Test: Lifecycle events (BeforePost, AfterPost, PostFailed)
Opened
#71 Test: REST API dispatch endpoint
Opened
#72 Test: WordPress canonical URL (source link)
Opened
#73 Test: Content-type source plugin architecture
Opened
#74 Test: onContentBeforeDisplay Joomla 5/6 compatibility fix
Opened
#75 Test: getSupportedMediaTypes() on all service plugins
Opened
#76 Test: Per-service help links in service edit sidebar
Opened
#77 Test: KB articles on mokoconsulting.tech
Opened
#78 Test: System hooks, retry, and scheduling
Opened
#79 Test: Category routing rules
Opened
#80 Test: Character counter in template editor
Opened
#81 Test: Service type icons throughout UI
Opened
#82 Test: Per-service analytics drill-down
Opened
#83 Test: Article editor cross-post history panel
Opened
#84 Fixed: CSRF nonce on OAuth authorize/callback flow
Opened
#85 Fixed: Service credential fields never saved from form to DB
Opened
#86 Fixed: Joomla 5 event ArrayAccess pattern for service plugin collection
Opened
#87 Fixed: ServiceTable missing check() method
Opened
#88 Fixed: WebhookService credential key mismatch and missing auth
Opened
#89 Fixed: POST method enforcement on REST dispatch endpoint
Opened
#90 Fixed: ServiceIconHelper XSS via unescaped extraClass
Opened
#91 Fixed: Article history HTML double-escaped in note field
Opened
#92 Bug: MySQL-only GET_LOCK breaks PostgreSQL/SQLite compatibility
Opened
#93 Bug: processEvergreen() imports wrong plugin group
Opened
#94 Bug: PostsController::retryFailed() misses permanently_failed status
Opened
#95 Bug: PostsController unvalidated datetime in scheduled_at
Opened
#96 Enhancement: Facebook token should not be in URL query string
Opened
#97 Enhancement: Bluesky re-authenticates on every post
Opened
#98 Enhancement: Mailchimp campaigns are created but never sent
Opened
#99 Performance: CrossPostDispatcher makes N*M DB queries per dispatch
Opened
#100 Bug: Duplicate category_rules table in install SQL
Opened
#101 Bug: Evergreen search uses fragile JSON LIKE query
Opened
#102 Enhancement: DispatchController duplicates template render logic
Opened
#103 Enhancement: Deprecated Sidebar API usage
Opened
#104 Security: No ACL/CSRF check on CSV export
Opened
#105 Security: Missing CSRF check on migration action
Opened
#107 Bug: testConnection() broken event dispatch and missing CSRF/ACL
Opened
#108 Security: OauthController::authorize() missing CSRF check
Opened
#109 Security: REST dispatch endpoint missing ACL check
Opened
#110 Bug: LinkedIn organization_id missing null-coalesce operator
Opened
#111 Security: SSRF risk in user-controlled service URLs
Opened
#112 Security: OAuth credentials stored in plaintext JSON
Opened
#113 Bug: Broken <script> tag in dashboard template
Opened
#114 Bug: hasPendingWork() backoff mismatch with processQueue()
Opened
#115 Bug: Race condition in timestamp-based queue lock fallback
Opened
#116 Performance: N+1 queries in processEvergreen()
Opened
#117 Performance: N+1 queries in renderTemplate() for category/author/tags
Opened
#118 Enhancement: Media attachments not wired up in most service plugins
Opened
#119 Enhancement: 8 stub service plugins need real API implementations
Opened
#120 Bug: Dashboard migration link missing CSRF token
Opened
#121 Bug: schedule() allows re-scheduling already-posted items
Opened
#122 Bug: updateLastRunTimestamp() race condition on component params
Opened
#123 Bug: Missing curl_error() handling across all service plugins
Opened
#124 Enhancement: Teams plugin uses deprecated Office 365 Connectors webhook
Opened
#125 Enhancement: Google Business plugin uses deprecated API v4
Opened
#126 Bug: Ntfy supportsMedia() inconsistency