2025-12-07 - 2026-06-07

Overview

0 Active Pull Requests
125 Active Issues
Excluding merges, 3 authors have pushed 64 commits to main and 204 commits to all branches. On main, 253 files have changed and there have been 11917 additions and 2808 deletions.

1 Release published by 1 user

Published development Package - MokoJoomCross (VERSION: 01.00.28-dev) 2026-06-07 01:10:13 +00:00

93 Issues closed from 1 user

Closed #51 Retry mechanism for failed posts 2026-06-06 14:59:09 +00:00

Closed #50 Cross-post analytics dashboard 2026-06-06 14:59:08 +00:00

Closed #49 Scheduling UI for timed cross-posts 2026-06-06 14:59:08 +00:00

Closed #48 System plugin hooks for Calendar and Gallery content types 2026-06-06 14:59:07 +00:00

Closed #47 TikTok service plugin — Content Posting API 2026-06-06 14:59:06 +00:00

Closed #46 Constant Contact service plugin — Email Campaigns 2026-06-06 14:59:05 +00:00

Closed #45 RSS Feed service plugin — dedicated cross-post feed 2026-06-06 14:59:05 +00:00

Closed #44 Matrix/Element service plugin 2026-06-06 14:59:04 +00:00

Closed #42 Hashnode service plugin — GraphQL API 2026-06-06 14:59:03 +00:00

Closed #43 Blogger service plugin — Google Blogger API 2026-06-06 14:59:03 +00:00

Closed #40 Dev.to service plugin — Forem API 2026-06-06 14:59:02 +00:00

Closed #41 Ghost service plugin — Admin API 2026-06-06 14:59:02 +00:00

Closed #39 ActivityPub service plugin — generic Fediverse posting 2026-06-06 14:59:01 +00:00

Closed #38 Nostr service plugin — decentralized protocol 2026-06-06 14:59:00 +00:00

Closed #37 ConvertKit service plugin — Broadcasts 2026-06-06 14:58:59 +00:00

Closed #36 Tumblr service plugin — Posts API 2026-06-06 14:58:59 +00:00

Closed #35 Ntfy service plugin — Push notifications 2026-06-06 14:58:58 +00:00

Closed #34 WordPress service plugin — REST API cross-posting 2026-06-06 14:58:57 +00:00

Closed #33 Brevo (Sendinblue) service plugin — Email Campaigns 2026-06-06 14:58:57 +00:00

Closed #32 SendGrid service plugin — Marketing Campaigns 2026-06-06 14:58:56 +00:00

Closed #31 Reddit service plugin — Submit API 2026-06-06 14:58:56 +00:00

Closed #30 Pinterest service plugin — Pins API 2026-06-06 14:58:55 +00:00

Closed #28 Google Chat service plugin — Webhooks 2026-06-06 14:58:54 +00:00

Closed #29 Medium service plugin — Publishing API 2026-06-06 14:58:54 +00:00

Closed #26 Google Business Profile service plugin 2026-06-06 14:58:53 +00:00

Closed #27 WhatsApp Business service plugin — Cloud API 2026-06-06 14:58:53 +00:00

Closed #24 Microsoft Teams service plugin — Incoming Webhooks 2026-06-06 14:58:52 +00:00

Closed #25 Threads (Meta) service plugin — Threads API 2026-06-06 14:58:52 +00:00

Closed #23 Generic Webhook service plugin — universal connector 2026-06-06 14:58:51 +00:00

Closed #22 Load help articles to WaaS live site 2026-06-06 14:58:50 +00:00

Closed #20 Cross-post analytics dashboard 2026-06-06 14:58:49 +00:00

Closed #21 OAuth flow for services requiring browser auth 2026-06-06 14:58:49 +00:00

Closed #19 Selective cross-posting per article 2026-06-06 14:58:48 +00:00

Closed #18 Activity logs view and log retention 2026-06-06 14:58:47 +00:00

Closed #17 Message template management UI 2026-06-06 14:58:46 +00:00

Closed #16 WebServices REST API — full CRUD endpoints 2026-06-06 14:58:46 +00:00

Closed #15 Mailchimp service plugin — Campaigns API 2026-06-06 14:58:45 +00:00

Closed #14 Bluesky service plugin — AT Protocol integration 2026-06-06 14:58:44 +00:00

Closed #13 Mastodon service plugin — API integration 2026-06-06 14:58:43 +00:00

Closed #11 Post queue processor — retry logic and scheduling 2026-06-06 14:58:42 +00:00

Closed #12 LinkedIn service plugin — Share API integration 2026-06-06 14:58:42 +00:00

Closed #9 X/Twitter service plugin — API v2 integration 2026-06-06 14:58:41 +00:00

Closed #10 Slack service plugin — Incoming Webhooks 2026-06-06 14:58:41 +00:00

Closed #8 Discord service plugin — Webhook integration 2026-06-06 14:58:40 +00:00

Closed #7 Facebook service plugin — Graph API integration 2026-06-06 14:58:40 +00:00

Closed #5 Admin component — Dashboard with stats and migration 2026-06-06 14:58:39 +00:00

Closed #6 Perfect Publisher Pro migration tool 2026-06-06 14:58:39 +00:00

Closed #4 Admin component — Post Queue view 2026-06-06 14:58:38 +00:00

Closed #3 Admin component — Services CRUD 2026-06-06 14:58:38 +00:00

Closed #2 Telegram service plugin — Bot API integration 2026-06-06 14:58:37 +00:00

Closed #1 Core cross-posting engine — dispatch articles to service plugins 2026-06-06 14:58:37 +00:00

Closed #125 Enhancement: Google Business plugin uses deprecated API v4 2026-06-06 14:56:57 +00:00

Closed #124 Enhancement: Teams plugin uses deprecated Office 365 Connectors webhook 2026-06-06 14:56:56 +00:00

Closed #119 Enhancement: 8 stub service plugins need real API implementations 2026-06-06 14:56:56 +00:00

Closed #117 Performance: N+1 queries in renderTemplate() for category/author/tags 2026-06-06 14:56:55 +00:00

Closed #118 Enhancement: Media attachments not wired up in most service plugins 2026-06-06 14:56:55 +00:00

Closed #116 Performance: N+1 queries in processEvergreen() 2026-06-06 14:56:54 +00:00

Closed #123 Bug: Missing curl_error() handling across all service plugins 2026-06-06 14:42:26 +00:00

Closed #126 Bug: Ntfy supportsMedia() inconsistency 2026-06-06 14:42:26 +00:00

Closed #122 Bug: updateLastRunTimestamp() race condition on component params 2026-06-06 14:42:25 +00:00

Closed #121 Bug: schedule() allows re-scheduling already-posted items 2026-06-06 14:42:24 +00:00

Closed #120 Bug: Dashboard migration link missing CSRF token 2026-06-06 14:35:12 +00:00

Closed #115 Bug: Race condition in timestamp-based queue lock fallback 2026-06-06 14:35:11 +00:00

Closed #114 Bug: hasPendingWork() backoff mismatch with processQueue() 2026-06-06 14:35:11 +00:00

Closed #113 Bug: Broken <script> tag in dashboard template 2026-06-06 14:35:10 +00:00

Closed #112 Security: OAuth credentials stored in plaintext JSON 2026-06-06 14:35:10 +00:00

Closed #111 Security: SSRF risk in user-controlled service URLs 2026-06-06 14:35:09 +00:00

Closed #110 Bug: LinkedIn organization_id missing null-coalesce operator 2026-06-06 14:35:09 +00:00

Closed #109 Security: REST dispatch endpoint missing ACL check 2026-06-06 14:35:08 +00:00

Closed #108 Security: OauthController::authorize() missing CSRF check 2026-06-06 14:35:08 +00:00

Closed #107 Bug: testConnection() broken event dispatch and missing CSRF/ACL 2026-06-06 14:35:07 +00:00

Closed #104 Security: No ACL/CSRF check on CSV export 2026-06-06 11:41:00 +00:00

Closed #105 Security: Missing CSRF check on migration action 2026-06-06 11:41:00 +00:00

Closed #103 Enhancement: Deprecated Sidebar API usage 2026-06-06 11:28:36 +00:00

Closed #102 Enhancement: DispatchController duplicates template render logic 2026-06-06 11:28:36 +00:00

Closed #99 Performance: CrossPostDispatcher makes N*M DB queries per dispatch 2026-06-06 11:28:36 +00:00

Closed #98 Enhancement: Mailchimp campaigns are created but never sent 2026-06-06 11:28:35 +00:00

Closed #97 Enhancement: Bluesky re-authenticates on every post 2026-06-06 11:28:35 +00:00

Closed #96 Enhancement: Facebook token should not be in URL query string 2026-06-06 11:28:34 +00:00

Closed #101 Bug: Evergreen search uses fragile JSON LIKE query 2026-06-06 11:05:12 +00:00

Closed #100 Bug: Duplicate category_rules table in install SQL 2026-06-06 11:05:12 +00:00

Closed #95 Bug: PostsController unvalidated datetime in scheduled_at 2026-06-06 11:05:11 +00:00

Closed #94 Bug: PostsController::retryFailed() misses permanently_failed status 2026-06-06 11:05:10 +00:00

Closed #93 Bug: processEvergreen() imports wrong plugin group 2026-06-06 11:05:10 +00:00

Closed #92 Bug: MySQL-only GET_LOCK breaks PostgreSQL/SQLite compatibility 2026-06-06 11:05:09 +00:00

Closed #91 Fixed: Article history HTML double-escaped in note field 2026-06-05 05:10:51 +00:00

Closed #90 Fixed: ServiceIconHelper XSS via unescaped extraClass 2026-06-05 05:10:51 +00:00

Closed #89 Fixed: POST method enforcement on REST dispatch endpoint 2026-06-05 05:10:50 +00:00

Closed #88 Fixed: WebhookService credential key mismatch and missing auth 2026-06-05 05:10:50 +00:00

Closed #87 Fixed: ServiceTable missing check() method 2026-06-05 05:10:49 +00:00

Closed #86 Fixed: Joomla 5 event ArrayAccess pattern for service plugin collection 2026-06-05 05:10:49 +00:00

Closed #85 Fixed: Service credential fields never saved from form to DB 2026-06-05 05:10:48 +00:00

Closed #84 Fixed: CSRF nonce on OAuth authorize/callback flow 2026-06-05 05:10:48 +00:00

125 Issues created by 1 user

Opened #1 Core cross-posting engine — dispatch articles to service plugins 2026-05-28 17:58:08 +00:00

Opened #2 Telegram service plugin — Bot API integration 2026-05-28 17:58:08 +00:00

Opened #3 Admin component — Services CRUD 2026-05-28 17:58:09 +00:00

Opened #4 Admin component — Post Queue view 2026-05-28 17:58:09 +00:00

Opened #5 Admin component — Dashboard with stats and migration 2026-05-28 17:58:09 +00:00

Opened #6 Perfect Publisher Pro migration tool 2026-05-28 17:58:10 +00:00

Opened #7 Facebook service plugin — Graph API integration 2026-05-28 17:58:10 +00:00

Opened #8 Discord service plugin — Webhook integration 2026-05-28 17:58:11 +00:00

Opened #9 X/Twitter service plugin — API v2 integration 2026-05-28 17:58:11 +00:00

Opened #10 Slack service plugin — Incoming Webhooks 2026-05-28 17:58:11 +00:00

Opened #11 Post queue processor — retry logic and scheduling 2026-05-28 17:58:12 +00:00

Opened #12 LinkedIn service plugin — Share API integration 2026-05-28 17:58:12 +00:00

Opened #13 Mastodon service plugin — API integration 2026-05-28 17:58:13 +00:00

Opened #14 Bluesky service plugin — AT Protocol integration 2026-05-28 17:58:13 +00:00

Opened #15 Mailchimp service plugin — Campaigns API 2026-05-28 17:58:14 +00:00

Opened #16 WebServices REST API — full CRUD endpoints 2026-05-28 17:58:15 +00:00

Opened #17 Message template management UI 2026-05-28 17:58:15 +00:00

Opened #18 Activity logs view and log retention 2026-05-28 17:58:16 +00:00

Opened #19 Selective cross-posting per article 2026-05-28 17:58:16 +00:00

Opened #20 Cross-post analytics dashboard 2026-05-28 17:58:17 +00:00

Opened #21 OAuth flow for services requiring browser auth 2026-05-28 17:58:17 +00:00

Opened #22 Load help articles to WaaS live site 2026-05-28 17:58:18 +00:00

Opened #23 Generic Webhook service plugin — universal connector 2026-05-28 18:51:50 +00:00

Opened #24 Microsoft Teams service plugin — Incoming Webhooks 2026-05-28 18:51:50 +00:00

Opened #25 Threads (Meta) service plugin — Threads API 2026-05-28 18:51:50 +00:00

Opened #26 Google Business Profile service plugin 2026-05-28 18:51:50 +00:00

Opened #27 WhatsApp Business service plugin — Cloud API 2026-05-28 18:51:50 +00:00

Opened #28 Google Chat service plugin — Webhooks 2026-05-28 18:51:51 +00:00

Opened #29 Medium service plugin — Publishing API 2026-05-28 18:51:51 +00:00

Opened #30 Pinterest service plugin — Pins API 2026-05-28 18:51:51 +00:00

Opened #31 Reddit service plugin — Submit API 2026-05-28 18:51:51 +00:00

Opened #32 SendGrid service plugin — Marketing Campaigns 2026-05-28 18:51:52 +00:00

Opened #33 Brevo (Sendinblue) service plugin — Email Campaigns 2026-05-28 18:51:52 +00:00

Opened #34 WordPress service plugin — REST API cross-posting 2026-05-28 18:51:52 +00:00

Opened #35 Ntfy service plugin — Push notifications 2026-05-28 18:51:53 +00:00

Opened #36 Tumblr service plugin — Posts API 2026-05-28 18:51:53 +00:00

Opened #37 ConvertKit service plugin — Broadcasts 2026-05-28 18:51:53 +00:00

Opened #38 Nostr service plugin — decentralized protocol 2026-05-28 18:51:54 +00:00

Opened #39 ActivityPub service plugin — generic Fediverse posting 2026-05-28 18:51:54 +00:00

Opened #40 Dev.to service plugin — Forem API 2026-05-28 18:51:54 +00:00

Opened #41 Ghost service plugin — Admin API 2026-05-28 18:51:55 +00:00

Opened #42 Hashnode service plugin — GraphQL API 2026-05-28 18:51:55 +00:00

Opened #43 Blogger service plugin — Google Blogger API 2026-05-28 18:51:55 +00:00

Opened #44 Matrix/Element service plugin 2026-05-28 18:51:56 +00:00

Opened #45 RSS Feed service plugin — dedicated cross-post feed 2026-05-28 18:51:56 +00:00

Opened #46 Constant Contact service plugin — Email Campaigns 2026-05-28 18:51:56 +00:00

Opened #47 TikTok service plugin — Content Posting API 2026-05-28 18:51:57 +00:00

Opened #48 System plugin hooks for Calendar and Gallery content types 2026-05-29 02:08:10 +00:00

Opened #49 Scheduling UI for timed cross-posts 2026-05-29 02:08:11 +00:00

Opened #50 Cross-post analytics dashboard 2026-05-29 02:08:12 +00:00

Opened #51 Retry mechanism for failed posts 2026-05-29 02:08:14 +00:00

Opened #52 Test: Calendar and Gallery cross-post plugins 2026-05-29 02:08:21 +00:00

Opened #53 Test: Twitter OAuth 1.0a credential fields 2026-05-29 04:12:28 +00:00

Opened #54 Test: All 34 service credential fields display correctly 2026-05-29 04:12:29 +00:00

Opened #55 Test: 13 rewritten service plugin API implementations 2026-05-29 04:12:29 +00:00

Opened #56 Test: Admin views load without errors (Toolbar/Route imports) 2026-05-29 04:12:30 +00:00

Opened #57 Test: Post edit form, manual post creator, and scheduling 2026-05-29 04:12:30 +00:00

Opened #58 Test: Evergreen content re-sharing 2026-05-29 04:12:31 +00:00

Opened #59 Test: Test Connection button on service edit 2026-05-29 04:12:32 +00:00

Opened #60 Test: Bulk re-queue failed and purge posted 2026-05-29 04:12:32 +00:00

Opened #61 Test: Dashboard trend chart and date range filter 2026-05-29 04:12:33 +00:00

Opened #62 Test: Queue depth warning on dashboard 2026-05-29 04:12:33 +00:00

Opened #63 Test: Exponential backoff for retries 2026-05-29 04:12:34 +00:00

Opened #64 Test: First-publish-only toggle 2026-05-29 04:12:35 +00:00

Opened #65 Test: Hashtag injection placeholders ({tags}, {hashtags}) 2026-05-29 04:12:36 +00:00

Opened #66 Test: Custom field placeholders ({field:xxx}) 2026-05-29 04:12:36 +00:00

Opened #67 Test: Posts list filters (service, search) and CSV export 2026-05-29 04:12:37 +00:00

Opened #68 Test: Image attachment pipeline 2026-05-29 04:12:37 +00:00

Opened #69 Test: Token auto-refresh for OAuth services 2026-05-29 04:12:38 +00:00

Opened #70 Test: Lifecycle events (BeforePost, AfterPost, PostFailed) 2026-05-29 04:12:39 +00:00

Opened #71 Test: REST API dispatch endpoint 2026-05-29 04:12:40 +00:00

Opened #72 Test: WordPress canonical URL (source link) 2026-05-29 04:12:40 +00:00

Opened #73 Test: Content-type source plugin architecture 2026-05-29 04:12:41 +00:00

Opened #74 Test: onContentBeforeDisplay Joomla 5/6 compatibility fix 2026-05-29 04:12:41 +00:00

Opened #75 Test: getSupportedMediaTypes() on all service plugins 2026-05-29 04:12:42 +00:00

Opened #76 Test: Per-service help links in service edit sidebar 2026-05-29 04:12:43 +00:00

Opened #77 Test: KB articles on mokoconsulting.tech 2026-05-29 04:12:43 +00:00

Opened #78 Test: System hooks, retry, and scheduling 2026-05-29 05:09:18 +00:00

Opened #79 Test: Category routing rules 2026-05-29 05:14:07 +00:00

Opened #80 Test: Character counter in template editor 2026-05-29 05:14:08 +00:00

Opened #81 Test: Service type icons throughout UI 2026-05-29 05:14:08 +00:00

Opened #82 Test: Per-service analytics drill-down 2026-05-29 05:14:09 +00:00

Opened #83 Test: Article editor cross-post history panel 2026-05-29 05:14:09 +00:00

Opened #84 Fixed: CSRF nonce on OAuth authorize/callback flow 2026-05-29 05:30:23 +00:00

Opened #85 Fixed: Service credential fields never saved from form to DB 2026-05-29 05:30:23 +00:00

Opened #86 Fixed: Joomla 5 event ArrayAccess pattern for service plugin collection 2026-05-29 05:30:24 +00:00

Opened #87 Fixed: ServiceTable missing check() method 2026-05-29 05:30:25 +00:00

Opened #88 Fixed: WebhookService credential key mismatch and missing auth 2026-05-29 05:30:25 +00:00

Opened #89 Fixed: POST method enforcement on REST dispatch endpoint 2026-05-29 05:30:26 +00:00

Opened #90 Fixed: ServiceIconHelper XSS via unescaped extraClass 2026-05-29 05:30:26 +00:00

Opened #91 Fixed: Article history HTML double-escaped in note field 2026-05-29 05:30:27 +00:00

Opened #92 Bug: MySQL-only GET_LOCK breaks PostgreSQL/SQLite compatibility 2026-05-29 05:30:28 +00:00

Opened #93 Bug: processEvergreen() imports wrong plugin group 2026-05-29 05:30:28 +00:00

Opened #94 Bug: PostsController::retryFailed() misses permanently_failed status 2026-05-29 05:30:29 +00:00

Opened #95 Bug: PostsController unvalidated datetime in scheduled_at 2026-05-29 05:30:29 +00:00

Opened #96 Enhancement: Facebook token should not be in URL query string 2026-05-29 05:30:30 +00:00

Opened #97 Enhancement: Bluesky re-authenticates on every post 2026-05-29 05:30:30 +00:00

Opened #98 Enhancement: Mailchimp campaigns are created but never sent 2026-05-29 05:30:31 +00:00

Opened #99 Performance: CrossPostDispatcher makes N*M DB queries per dispatch 2026-05-29 05:30:32 +00:00

Opened #100 Bug: Duplicate category_rules table in install SQL 2026-05-29 05:30:32 +00:00

Opened #101 Bug: Evergreen search uses fragile JSON LIKE query 2026-05-29 05:30:33 +00:00

Opened #102 Enhancement: DispatchController duplicates template render logic 2026-05-29 05:30:33 +00:00

Opened #103 Enhancement: Deprecated Sidebar API usage 2026-05-29 05:30:34 +00:00

Opened #104 Security: No ACL/CSRF check on CSV export 2026-05-29 05:30:34 +00:00

Opened #105 Security: Missing CSRF check on migration action 2026-05-29 05:30:35 +00:00

Opened #107 Bug: testConnection() broken event dispatch and missing CSRF/ACL 2026-06-06 11:50:06 +00:00

Opened #108 Security: OauthController::authorize() missing CSRF check 2026-06-06 11:50:06 +00:00

Opened #109 Security: REST dispatch endpoint missing ACL check 2026-06-06 11:50:07 +00:00

Opened #110 Bug: LinkedIn organization_id missing null-coalesce operator 2026-06-06 11:50:07 +00:00

Opened #111 Security: SSRF risk in user-controlled service URLs 2026-06-06 11:50:07 +00:00

Opened #112 Security: OAuth credentials stored in plaintext JSON 2026-06-06 11:50:08 +00:00

Opened #113 Bug: Broken <script> tag in dashboard template 2026-06-06 11:50:08 +00:00

Opened #114 Bug: hasPendingWork() backoff mismatch with processQueue() 2026-06-06 11:50:08 +00:00

Opened #115 Bug: Race condition in timestamp-based queue lock fallback 2026-06-06 11:50:08 +00:00

Opened #116 Performance: N+1 queries in processEvergreen() 2026-06-06 11:50:09 +00:00

Opened #117 Performance: N+1 queries in renderTemplate() for category/author/tags 2026-06-06 11:50:09 +00:00

Opened #118 Enhancement: Media attachments not wired up in most service plugins 2026-06-06 11:50:09 +00:00

Opened #119 Enhancement: 8 stub service plugins need real API implementations 2026-06-06 11:50:09 +00:00

Opened #120 Bug: Dashboard migration link missing CSRF token 2026-06-06 11:50:10 +00:00

Opened #121 Bug: schedule() allows re-scheduling already-posted items 2026-06-06 11:50:10 +00:00

Opened #122 Bug: updateLastRunTimestamp() race condition on component params 2026-06-06 11:50:10 +00:00

Opened #123 Bug: Missing curl_error() handling across all service plugins 2026-06-06 11:50:11 +00:00

Opened #124 Enhancement: Teams plugin uses deprecated Office 365 Connectors webhook 2026-06-06 11:50:11 +00:00

Opened #125 Enhancement: Google Business plugin uses deprecated API v4 2026-06-06 11:50:11 +00:00

Opened #126 Bug: Ntfy supportsMedia() inconsistency 2026-06-06 11:50:12 +00:00