2025-12-30 - 2026-06-30
Overview
5 Releases published by 1 user
Published
development
MokoSuiteCross (VERSION: 01.13.04-dev)
Published
stable
MokoSuiteCross (VERSION: 01.13.00)
Published
release-candidate
MokoSuiteCross (VERSION: 01.10.00-rc)
Published
alpha
MokoSuiteCross (VERSION: 01.09.00-rc)
Published
beta
MokoSuiteCross (VERSION: 01.09.00-rc)
39 Pull requests merged by 1 user
Merged
#251 chore: migrate update server URLs to MokoGitea
Merged
#222 release: v01.13.00 -- social image gen, calendar, analytics
Merged
#216 fix: calendar completeness — submenu entries and language strings
Merged
#215 feat: visual post calendar with drag-drop rescheduling
Merged
#214 feat: best time to post analytics with engagement heatmap
Merged
#213 feat: social image generator with GD text overlay
Merged
#212 fix: sync main back to dev (CI templates, release commits)
Merged
#211 release: v01.11.01 -- Joomla 6 event fix + docs update
Merged
#209 docs: Joomla 6 event fix changelog, update version target
Merged
#208 fix: Joomla 6 event type compatibility (hotfix)
Merged
#207 fix: Joomla 6 event type compatibility in content plugin
Merged
#206 release: v01.08.00 -- AI captions, social images, calendar, analytics
Merged
#204 chore: clean up CHANGELOG formatting and add missing features
Merged
#202 fix: analytics MVC model, PreviewController IDOR, README/CHANGELOG updates
Merged
#200 feat: best time to post analytics view (#165)
Merged
#198 feat: visual post calendar admin view (#160)
Merged
#199 feat: social image generator with GD-based OG images (#157)
Merged
#197 fix: prevent GitHub Actions injection in CI issue reporter
Merged
#196 feat: TikTok video upload and photo carousel (#164)
Merged
#195 feat: AI caption generation with Claude/OpenAI (#161)
Merged
#187 feat(#133): Site frontend with cross-post list and detail views
Merged
#186 feat(#159): Link shortening (Bitly, Rebrandly, YOURLS)
Merged
#185 feat(#132): PHPUnit test suite
Merged
#188 feat(#156): Social preview panel for article editor
Merged
#194 feat: add Twitter thread support and cost warning
Merged
#193 feat: add Facebook Reels, Stories, and scheduled post support
Merged
#192 feat: add Threads carousel, polls, and spoiler support
Merged
#191 feat: add Instagram carousel, Reels, and Stories support
Merged
#190 fix: update package description to list all 38 platforms
Merged
#189 feat: implement Nostr NIP-01 WebSocket relay publishing
Merged
#184 fix: use typed Joomla 6 event parameters, remove legacy fallbacks
Merged
#183 fix: add SQL update file to match manifest version
Merged
#180 Release v01.06.00: Full ACL system, workflow cleanup, housekeeping
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
1 Pull request proposed by 1 user
Proposed
#252 fix: resolve 10 critical/medium bugs from deep dive audit
127 Issues closed from 1 user
Closed
#241 bug: CHANGELOG.md has duplicate version headers
Closed
#236 feature: missing default templates for 16 service types
Closed
#223 bug: deleteFromPlatforms() uses wrong credential decryption and deprecated event API
Closed
#165 Best time to post: engagement analytics and scheduling recommendations
Closed
#157 Social image generator: auto-create branded OG images
Closed
#160 Visual post calendar: admin dashboard view
Closed
#164 TikTok: video and photo carousel posting
Closed
#161 AI post generation: auto-generate platform-optimized captions
Closed
#163 X/Twitter: thread support and cost warning for URL posts
Closed
#162 Facebook: Reels, Stories, and scheduled post support
Closed
#153 Threads: carousel posts and polls support
Closed
#151 Instagram: carousel, Reels, and Stories support
Closed
#129 Implement Nostr WebSocket relay publishing
Closed
#133 Site frontend: cross-post status display on articles
Closed
#159 Link shortening: Bitly/Rebrandly integration
Closed
#132 Create PHPUnit test suite
Closed
#156 Social preview: show how posts will render on each platform
Closed
#135 Build system: package build creates proper Joomla package ZIP with sub-packages
Closed
#158 Bluesky: thread support and quote posts
Closed
#155 Caption rotation: multiple template variants per service
Closed
#154 UTM auto-tagging for shared links
Closed
#152 Mastodon: scheduled posts, polls, and visibility levels
Closed
#142 Mailchimp plugin: support Mailchimp templates and structured HTML templates
Closed
#141 Add YouTube service plugin (plg_mokosuitecross_youtube)
Closed
#140 Add Instagram service plugin (plg_mokosuitecross_instagram)
Closed
#131 Add delete/unpublish from remote platform capability
Closed
#130 Add missing default templates for 16 service types
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
154 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
#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
#149 MASTER: MokoSuiteCross v01.06.00 Release Testing
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
#178 Test: Default templates use platform-specific placeholders
Opened
#223 bug: deleteFromPlatforms() uses wrong credential decryption and deprecated event API
Opened
#224 bug: PostsController missing ACL checks on queue management actions
Opened
#225 bug: uninstall SQL missing analytics and category_rules table drops
Opened
#226 bug: deleteFromPlatforms() does not decrypt credentials before passing to service plugins
Opened
#227 enhancement: add missing default templates for 16 service types
Opened
#228 bug: deleteFromPlatforms() uses deprecated triggerEvent() instead of Event dispatcher
Opened
#229 enhancement: add check() validation to PostTable and TemplateTable
Opened
#230 enhancement: LogsModel missing service_id and search filters
Opened
#231 bug: evergreen re-shares use incomplete template rendering -- missing placeholders
Opened
#232 bug: Twitter plugin ignores media attachments despite declaring supportsMedia()
Opened
#233 bug: Facebook plugin ignores media attachments for feed posts
Opened
#234 bug: Bluesky plugin ignores media attachments -- no blob upload support
Opened
#235 bug: stuck 'posting' status entries never get reprocessed
Opened
#236 feature: missing default templates for 16 service types
Opened
#237 feature: category routing rules have no admin UI -- table exists but no CRUD
Opened
#238 bug: onContentChangeState auto-post does not check for duplicate cross-posts
Opened
#239 chore: Facebook/Instagram API version pinned to v19.0 -- should be a constant
Opened
#240 chore: duplicate changelog version headers
Opened
#241 bug: CHANGELOG.md has duplicate version headers
Opened
#242 feature: OAuthHelper only supports 3 of 38 platforms
Opened
#243 security: no rate limiting on AI and social image AJAX endpoints
Opened
#244 bug: systemic -- most plugins declare supportsMedia() true but ignore $media parameter
Opened
#245 bug: uninstall SQL misses analytics and category_rules tables
Opened
#246 bug: AnalyticsController AJAX endpoints query unpopulated analytics table
Opened
#247 bug: README claims 38 supported platforms but only 36 are external platforms
Opened
#248 bug: MokoSuiteCrossHelper::addSubmenu() has duplicate 'calendar' key
Opened
#249 chore: LinkedIn plugin uses deprecated UGC Posts API -- migrate to Community Management API
Opened
#250 bug: Dashboard and Calendar views use deprecated Sidebar::render()