2025-12-23 - 2026-06-23
Overview
3 Releases published by 1 user
Published
stable
Package - MokoSuiteCross (VERSION: 01.06.00)
Published
development
Package - MokoSuiteCross (VERSION: 01.05.03-dev)
Published
release-candidate
6 Pull requests merged by 1 user
Merged
#179 Fix: duplicate license warning, wiki folder cleanup
Merged
#166 Release v01.05.00: Instagram, YouTube, Share Content, delete, templates, competitive roadmap
Merged
#148 chore: remove automation directory
Merged
#145 Fix: add missing system plugins to package manifest, remove old src/ (#137)
Merged
#144 Release 01.02.00: MokoSuiteCross rebrand, bug fixes, infrastructure
Merged
#127 fix: remove deprecated .mokogitea/manifest.xml
109 Issues closed from 1 user
Closed
#131 Add delete/unpublish from remote platform capability
Closed
#142 Mailchimp plugin: support Mailchimp templates and structured HTML templates
Closed
#152 Mastodon: scheduled posts, polls, and visibility levels
Closed
#154 UTM auto-tagging for shared links
Closed
#155 Caption rotation: multiple template variants per service
Closed
#158 Bluesky: thread support and quote posts
Closed
#130 Add missing default templates for 16 service types
Closed
#141 Add YouTube service plugin (plg_mokosuitecross_youtube)
Closed
#140 Add Instagram service plugin (plg_mokosuitecross_instagram)
Closed
#134 Update 32 existing test issues: replace MokoJoomCross references with MokoSuiteCross
Closed
#136 Access control: add access.xml for component ACL permissions
Closed
#146 Deep scan: duplicate curl, type bugs, and security hardening across service plugins
Closed
#137 Package manifest missing plg_system_mokosuitecross_events and plg_system_mokosuitecross_gallery
Closed
#128 Rename all MOKOJOOMCROSS language keys to MOKOSUITECROSS
Closed
#138 Rename Joomla events from onMokoJoomCross* to onMokoSuiteCross*
Closed
#139 Fix duplicate curl_setopt_array calls and undefined variable bugs in 4 service plugins
Closed
#51 Retry mechanism for failed posts
Closed
#49 Scheduling UI for timed cross-posts
Closed
#50 Cross-post analytics dashboard
Closed
#48 System plugin hooks for Calendar and Gallery content types
Closed
#47 TikTok service plugin — Content Posting API
Closed
#45 RSS Feed service plugin — dedicated cross-post feed
Closed
#46 Constant Contact service plugin — Email Campaigns
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
#36 Tumblr service plugin — Posts API
Closed
#37 ConvertKit service plugin — Broadcasts
Closed
#35 Ntfy service plugin — Push notifications
Closed
#33 Brevo (Sendinblue) service plugin — Email Campaigns
Closed
#34 WordPress service plugin — REST API cross-posting
Closed
#31 Reddit service plugin — Submit API
Closed
#32 SendGrid service plugin — Marketing Campaigns
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
#16 WebServices REST API — full CRUD endpoints
Closed
#17 Message template management UI
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
#7 Facebook service plugin — Graph API integration
Closed
#8 Discord service plugin — Webhook integration
Closed
#5 Admin component — Dashboard with stats and migration
Closed
#6 Perfect Publisher Pro migration tool
Closed
#3 Admin component — Services CRUD
Closed
#4 Admin component — Post Queue view
Closed
#1 Core cross-posting engine — dispatch articles to service plugins
Closed
#2 Telegram service plugin — Bot API integration
Closed
#125 Enhancement: Google Business plugin uses deprecated API v4
Closed
#119 Enhancement: 8 stub service plugins need real API implementations
Closed
#124 Enhancement: Teams plugin uses deprecated Office 365 Connectors webhook
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
#114 Bug: hasPendingWork() backoff mismatch with processQueue()
Closed
#115 Bug: Race condition in timestamp-based queue lock fallback
Closed
#112 Security: OAuth credentials stored in plaintext JSON
Closed
#113 Bug: Broken <script> tag in dashboard template
Closed
#110 Bug: LinkedIn organization_id missing null-coalesce operator
Closed
#111 Security: SSRF risk in user-controlled service URLs
Closed
#108 Security: OauthController::authorize() missing CSRF check
Closed
#109 Security: REST dispatch endpoint missing ACL 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
#99 Performance: CrossPostDispatcher makes N*M DB queries per dispatch
Closed
#102 Enhancement: DispatchController duplicates template render logic
Closed
#103 Enhancement: Deprecated Sidebar API usage
Closed
#97 Enhancement: Bluesky re-authenticates on every post
Closed
#98 Enhancement: Mailchimp campaigns are created but never sent
Closed
#96 Enhancement: Facebook token should not be in URL query string
Closed
#100 Bug: Duplicate category_rules table in install SQL
Closed
#101 Bug: Evergreen search uses fragile JSON LIKE query
Closed
#95 Bug: PostsController unvalidated datetime in scheduled_at
Closed
#93 Bug: processEvergreen() imports wrong plugin group
Closed
#94 Bug: PostsController::retryFailed() misses permanently_failed status
Closed
#92 Bug: MySQL-only GET_LOCK breaks PostgreSQL/SQLite compatibility
Closed
#90 Fixed: ServiceIconHelper XSS via unescaped extraClass
Closed
#91 Fixed: Article history HTML double-escaped in note field
Closed
#88 Fixed: WebhookService credential key mismatch and missing auth
Closed
#89 Fixed: POST method enforcement on REST dispatch endpoint
Closed
#86 Fixed: Joomla 5 event ArrayAccess pattern for service plugin collection
Closed
#87 Fixed: ServiceTable missing check() method
Closed
#84 Fixed: CSRF nonce on OAuth authorize/callback flow
Closed
#85 Fixed: Service credential fields never saved from form to DB
171 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 38 service credential fields display correctly
Opened
#55 Test: All 38 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
Opened
#128 Rename all MOKOJOOMCROSS language keys to MOKOSUITECROSS
Opened
#129 Implement Nostr WebSocket relay publishing
Opened
#130 Add missing default templates for 16 service types
Opened
#131 Add delete/unpublish from remote platform capability
Opened
#132 Create PHPUnit test suite
Opened
#133 Site frontend: cross-post status display on articles
Opened
#134 Update 32 existing test issues: replace MokoJoomCross references with MokoSuiteCross
Opened
#135 Build system: package build creates proper Joomla package ZIP with sub-packages
Opened
#136 Access control: add access.xml for component ACL permissions
Opened
#137 Package manifest missing plg_system_mokosuitecross_events and plg_system_mokosuitecross_gallery
Opened
#138 Rename Joomla events from onMokoJoomCross* to onMokoSuiteCross*
Opened
#139 Fix duplicate curl_setopt_array calls and undefined variable bugs in 4 service plugins
Opened
#140 Add Instagram service plugin (plg_mokosuitecross_instagram)
Opened
#141 Add YouTube service plugin (plg_mokosuitecross_youtube)
Opened
#142 Mailchimp plugin: support Mailchimp templates and structured HTML templates
Opened
#146 Deep scan: duplicate curl, type bugs, and security hardening across service plugins
Opened
#147 Test: deep scan fixes — curl bugs, type errors, namespace, security hardening
Opened
#149 MASTER: MokoSuiteCross v01.06.00 Release Testing
Opened
#150 [Testing] Verify automation/ removal
Opened
#151 Instagram: carousel, Reels, and Stories support
Opened
#152 Mastodon: scheduled posts, polls, and visibility levels
Opened
#153 Threads: carousel posts and polls support
Opened
#154 UTM auto-tagging for shared links
Opened
#155 Caption rotation: multiple template variants per service
Opened
#156 Social preview: show how posts will render on each platform
Opened
#157 Social image generator: auto-create branded OG images
Opened
#158 Bluesky: thread support and quote posts
Opened
#159 Link shortening: Bitly/Rebrandly integration
Opened
#160 Visual post calendar: admin dashboard view
Opened
#161 AI post generation: auto-generate platform-optimized captions
Opened
#162 Facebook: Reels, Stories, and scheduled post support
Opened
#163 X/Twitter: thread support and cost warning for URL posts
Opened
#164 TikTok: video and photo carousel posting
Opened
#165 Best time to post: engagement analytics and scheduling recommendations
Opened
#167 Test: Instagram plugin cross-posting
Opened
#168 Test: YouTube plugin cross-posting
Opened
#169 Test: Share Content panel and platform-specific placeholders
Opened
#170 Test: Delete from platforms on unpublish/trash
Opened
#171 Test: Mailchimp template injection and responsive wrapper
Opened
#172 Test: UTM auto-tagging and {url_raw} placeholder
Opened
#173 Test: Caption rotation {random:} placeholder
Opened
#174 Test: Mastodon visibility, polls, scheduled posts, and content warnings
Opened
#175 Test: Bluesky auto-thread and link card embeds
Opened
#176 Test: Ntfy default server and plugin configuration
Opened
#177 Test: XML namespace declarations in all 38 plugin manifests
Opened
#178 Test: Default templates use platform-specific placeholders