Commit Graph

397 Commits

Author SHA1 Message Date
gitea-actions[bot] 6e6cd7bb1c chore(version): pre-release bump to 01.13.01-dev [skip ci]
RC Revert / Rename rc/ back to dev/ (pull_request) Has been skipped
Branch Cleanup / Delete merged branch (pull_request) Failing after 1s
2026-06-29 15:14:25 +00:00
jmiller f5fdd59e05 chore: migrate update server URLs to MokoGitea
Universal: PR Check / Branch Policy (pull_request) Successful in 2s
Universal: PR Check / Validate PR (pull_request) Failing after 9s
Universal: PR Check / Secret Scan (pull_request) Successful in 9s
Generic: Project CI / Lint & Validate (pull_request) Successful in 27s
Universal: Pre-Release / Build Pre-Release (${{ inputs.stability || github.ref_name }}) (push) Successful in 21s
Joomla: Metadata Validation / Validate Joomla Metadata (pull_request) Successful in 59s
Generic: Project CI / Tests (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
2026-06-29 15:13:14 +00:00
gitea-actions[bot] 423f2f4cce chore(version): pre-release bump to 01.12.06-dev [skip ci] 2026-06-29 11:40:17 +00:00
jmiller 32bff8e7be Merge pull request 'fix: calendar completeness — submenu entries and language strings' (#216) from fix/changelog-security-readme into dev
Universal: Auto Version Bump / Version Bump (push) Has been skipped
Universal: Pre-Release / Build Pre-Release (${{ inputs.stability || github.ref_name }}) (push) Successful in 14s
2026-06-29 11:40:02 +00:00
gitea-actions[bot] 08a898cd7e chore(version): pre-release bump to 01.08.59-dev [skip ci]
RC Revert / Rename rc/ back to dev/ (pull_request) Has been skipped
Branch Cleanup / Delete merged branch (pull_request) Successful in 2s
2026-06-29 06:39:45 -05:00
gitea-actions[bot] 7de7cea10e chore(version): pre-release bump to 01.12.05-dev [skip ci] 2026-06-29 11:39:00 +00:00
jmiller dff90a26cf Merge pull request 'feat: visual post calendar with drag-drop rescheduling' (#215) from feature/160-visual-calendar into dev
Universal: Auto Version Bump / Version Bump (push) Has been skipped
Universal: Pre-Release / Build Pre-Release (${{ inputs.stability || github.ref_name }}) (push) Successful in 18s
2026-06-29 11:38:39 +00:00
jmiller 0d49195f52 feat: add visual post calendar with drag-drop rescheduling (#160)
Universal: PR Check / Branch Policy (pull_request) Successful in 2s
Universal: PR Check / Validate PR (pull_request) Failing after 6s
Universal: PR Check / Secret Scan (pull_request) Successful in 7s
RC Revert / Rename rc/ back to dev/ (pull_request) Has been skipped
Branch Cleanup / Delete merged branch (pull_request) Failing after 2s
Universal: Auto Version Bump / Version Bump (push) Successful in 13s
Generic: Project CI / Lint & Validate (pull_request) Successful in 50s
Joomla: Metadata Validation / Validate Joomla Metadata (pull_request) Successful in 52s
Generic: Project CI / Tests (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
Authored-by: Moko Consulting
2026-06-29 06:37:56 -05:00
gitea-actions[bot] 9da83f1d40 chore(version): pre-release bump to 01.12.04-dev [skip ci] 2026-06-29 11:37:09 +00:00
jmiller 96261987de Merge pull request 'feat: best time to post analytics with engagement heatmap' (#214) from feature/165-best-time-analytics into dev
Universal: Auto Version Bump / Version Bump (push) Has been skipped
Universal: Pre-Release / Build Pre-Release (${{ inputs.stability || github.ref_name }}) (push) Successful in 15s
2026-06-29 11:36:44 +00:00
jmiller e702eb8d9e feat: add best time to post analytics with engagement heatmap (#165)
Universal: PR Check / Branch Policy (pull_request) Successful in 2s
Branch Cleanup / Delete merged branch (pull_request) Failing after 1s
RC Revert / Rename rc/ back to dev/ (pull_request) Has been skipped
Universal: PR Check / Validate PR (pull_request) Failing after 6s
Universal: PR Check / Secret Scan (pull_request) Successful in 6s
Generic: Project CI / Lint & Validate (pull_request) Successful in 20s
Universal: Auto Version Bump / Version Bump (push) Successful in 11s
Joomla: Metadata Validation / Validate Joomla Metadata (pull_request) Successful in 40s
Generic: Project CI / Tests (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
Authored-by: Moko Consulting
2026-06-29 06:36:07 -05:00
gitea-actions[bot] febaa856c5 chore(version): pre-release bump to 01.12.03-dev [skip ci] 2026-06-29 11:34:43 +00:00
jmiller acd8da441b Merge pull request 'feat: social image generator with GD text overlay' (#213) from feature/157-social-image-generator into dev
Universal: Auto Version Bump / Version Bump (push) Has been skipped
Universal: Pre-Release / Build Pre-Release (${{ inputs.stability || github.ref_name }}) (push) Successful in 16s
2026-06-29 11:34:18 +00:00
jmiller 437189830f feat: add social image generator with GD text overlay (#157)
Universal: PR Check / Branch Policy (pull_request) Successful in 3s
Universal: PR Check / Validate PR (pull_request) Failing after 7s
RC Revert / Rename rc/ back to dev/ (pull_request) Has been skipped
Branch Cleanup / Delete merged branch (pull_request) Failing after 3s
Universal: PR Check / Secret Scan (pull_request) Successful in 9s
Universal: Auto Version Bump / Version Bump (push) Successful in 18s
Generic: Project CI / Lint & Validate (pull_request) Successful in 27s
Joomla: Metadata Validation / Validate Joomla Metadata (pull_request) Successful in 43s
Generic: Project CI / Tests (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
Replace complex multi-platform compositing with simpler spec-compliant
implementation:
- SocialImageHelper: 1200x630 OG images with solid background, title
  overlay using TTF fonts (or GD fallback), and site name watermark
- SocialImageController: AJAX endpoint with CSRF + ACL checks
- Config: enabled toggle, bg/text color, font size, show site name
- Content plugin: Generate Social Image button in Share Content panel
- Saves to media/com_mokosuitecross/social/ with SHA-256 filename

Authored-by: Moko Consulting
2026-06-29 06:33:17 -05:00
jmiller 1aa58e1d8d feat: add social image generator with GD-based OG image compositing (#157)
Replace basic single-size OG image generation with full-featured
multi-platform social image compositing:

- Platform-specific canvas sizes: Facebook 1200x630, Twitter 1200x675,
  Instagram 1080x1080, Stories 1080x1920
- Vertical linear gradient fallback when no source image available
- Semi-transparent overlay with configurable color and opacity (0-100%)
- Logo placement in top-right corner, auto-scaled to 15% of canvas width
- TTF text rendering with word wrap and text shadow for readability
- GD bitmap font fallback when no TTF fonts are available
- Configurable text position: top, center, or bottom
- Output to images/mokosuitecross/{articleId}_{platform}.jpg
- Cache clearing per article via clearCache() method
- ImageController AJAX endpoint with platform parameter validation
- Full config fieldset: enabled toggle, overlay color/opacity,
  text color/position, gradient start/end, logo upload

Authored-by: Moko Consulting
2026-06-29 06:32:18 -05:00
gitea-actions[bot] 4810371bc0 chore(version): pre-release bump to 01.12.01-dev [skip ci] 2026-06-28 19:57:53 +00:00
jmiller 36c9867857 Merge pull request 'fix: sync main back to dev (CI templates, release commits)' (#212) from fix/sync-main-to-dev into dev
Universal: Auto Version Bump / Version Bump (push) Has been skipped
Universal: Pre-Release / Build Pre-Release (${{ inputs.stability || github.ref_name }}) (push) Successful in 15s
2026-06-28 19:57:36 +00:00
jmiller 657e5b2091 chore: sync issue-branch.yml from Template-Generic [skip ci]
RC Revert / Rename rc/ back to dev/ (pull_request) Has been skipped
Branch Cleanup / Delete merged branch (pull_request) Successful in 2s
2026-06-28 19:39:16 +00:00
gitea-actions[bot] eda0d222ed chore: promote changelog [Unreleased] → [01.12.00] 2026-06-28 19:37:02 +00:00
gitea-actions[bot] 1627841983 chore(release): build 01.12.00 [skip ci] 2026-06-28 19:36:58 +00:00
jmiller b8ebd8a5fd Merge pull request 'release: v01.11.01 -- Joomla 6 event fix + docs update' (#211) from release/v01.11.01 into main 2026-06-28 19:36:39 +00:00
jmiller 488f4df65a merge: resolve dev/main divergence for v01.11.01 release
Universal: PR Check / Branch Policy (pull_request) Successful in 2s
Joomla: Extension CI / Release Readiness Check (pull_request) Failing after 6s
Universal: PR Check / Secret Scan (pull_request) Successful in 8s
Universal: PR Check / Validate PR (pull_request) Failing after 7s
Generic: Repo Health / Site Health (pull_request) Has been skipped
Generic: Repo Health / Access control (pull_request) Successful in 3s
Universal: Build & Release / Promote to RC (pull_request) Has been skipped
RC Revert / Rename rc/ back to dev/ (pull_request) Has been skipped
Branch Cleanup / Delete merged branch (pull_request) Successful in 2s
Generic: Project CI / Lint & Validate (pull_request) Successful in 26s
Universal: Build & Release / Build & Release Pipeline (pull_request) Successful in 24s
Joomla: Metadata Validation / Validate Joomla Metadata (pull_request) Successful in 56s
Joomla: Extension CI / Lint & Validate (pull_request) Failing after 9m27s
Universal: Workflow Sync Trigger / Sync workflows to live repos (pull_request) Failing after 21m47s
Generic: Project CI / Tests (pull_request) Has been cancelled
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: Scripts Governance (pull_request) Has been cancelled
Generic: Repo Health / Report: Repository Health (pull_request) Has been cancelled
Authored-by: Moko Consulting
2026-06-28 14:33:40 -05:00
gitea-actions[bot] 96f789dcec chore(version): pre-release bump to 01.11.03-dev [skip ci] 2026-06-28 19:27:29 +00:00
jmiller 97619eea0c Merge pull request 'docs: Joomla 6 event fix changelog, update version target' (#209) from fix/joomla6-docs into dev
Universal: Auto Version Bump / Version Bump (push) Has been skipped
Universal: Pre-Release / Build Pre-Release (${{ inputs.stability || github.ref_name }}) (push) Successful in 16s
2026-06-28 19:26:53 +00:00
jmiller c6ab0cc438 docs: add Joomla 6 event fix to changelog, update Joomla version target
Universal: PR Check / Branch Policy (pull_request) Successful in 1s
Universal: PR Check / Validate PR (pull_request) Failing after 6s
Universal: PR Check / Secret Scan (pull_request) Successful in 7s
Joomla: Metadata Validation / Validate Joomla Metadata (pull_request) Successful in 11s
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 6s
Universal: PR Check / Build RC Package (pull_request) Has been cancelled
Universal: PR Check / Report Issues (pull_request) Has been cancelled
- Add content plugin AfterSaveEvent fix to CHANGELOG under Fixed
- Update README to reflect Joomla 6 target (not 5/6)
- Replace em-dashes with ASCII dashes in CHANGELOG

Authored-by: Moko Consulting
2026-06-28 14:25:10 -05:00
gitea-actions[bot] a54b621f9d chore: promote changelog [Unreleased] → [01.11.00] 2026-06-28 18:49:03 +00:00
gitea-actions[bot] 84513a81a5 chore(release): build 01.11.00 [skip ci] 2026-06-28 18:49:00 +00:00
jmiller fceb3d5bf5 Merge pull request 'fix: Joomla 6 event type compatibility (hotfix)' (#208) from fix/joomla6-event-hotfix into main 2026-06-28 18:48:24 +00:00
jmiller 18e84fbcfe fix: remove Joomla 5-only event type hints for Joomla 6 compatibility
Universal: PR Check / Branch Policy (pull_request) Failing after 2s
Joomla: Extension CI / Release Readiness Check (pull_request) Failing after 5s
Universal: PR Check / Validate PR (pull_request) Failing after 5s
Generic: Repo Health / Site Health (pull_request) Has been skipped
Universal: PR Check / Secret Scan (pull_request) Successful in 6s
Generic: Repo Health / Access control (pull_request) Successful in 1s
RC Revert / Rename rc/ back to dev/ (pull_request) Has been skipped
Branch Cleanup / Delete merged branch (pull_request) Failing after 2s
Generic: Project CI / Lint & Validate (pull_request) Successful in 19s
Universal: Pre-Release / Build Pre-Release (${{ inputs.stability || github.ref_name }}) (push) Failing after 5s
Universal: Build & Release / Promote to RC (pull_request) Has been skipped
Joomla: Metadata Validation / Validate Joomla Metadata (pull_request) Successful in 42s
Universal: Build & Release / Build & Release Pipeline (pull_request) Successful in 18s
Universal: Workflow Sync Trigger / Sync workflows to live repos (pull_request) Successful in 5m40s
Joomla: Extension CI / Lint & Validate (pull_request) Failing after 5m55s
Generic: Project CI / Tests (pull_request) Has been cancelled
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: Scripts Governance (pull_request) Has been cancelled
Generic: Repo Health / Report: Repository Health (pull_request) Has been cancelled
Joomla 6 dispatches Model\AfterSaveEvent instead of Content\AfterSaveEvent.
Remove strict type hints on onContentAfterSave() and onContentChangeState()
to accept both Joomla 5 and 6 event objects.

Authored-by: Moko Consulting
2026-06-28 13:47:45 -05:00
gitea-actions[bot] c552a12a0e chore(version): pre-release bump to 01.11.02-dev [skip ci] 2026-06-28 18:47:14 +00:00
jmiller 133944620b Merge pull request 'fix: Joomla 6 event type compatibility in content plugin' (#207) from fix/joomla6-event-handlers into dev
Universal: Auto Version Bump / Version Bump (push) Has been skipped
Universal: Pre-Release / Build Pre-Release (${{ inputs.stability || github.ref_name }}) (push) Successful in 14s
2026-06-28 18:46:11 +00:00
gitea-actions[bot] ed5a143439 chore(version): pre-release bump to 01.11.01-dev [skip ci]
RC Revert / Rename rc/ back to dev/ (pull_request) Has been skipped
Branch Cleanup / Delete merged branch (pull_request) Successful in 2s
2026-06-28 18:45:54 +00:00
jmiller c1fa8c816e fix: use typed Joomla 6 event parameters, remove legacy fallbacks
Universal: Pre-Release / Build Pre-Release (${{ inputs.stability || github.ref_name }}) (push) Successful in 10s
Joomla 6 dispatches Model\AfterSaveEvent and Model\ContentChangeStateEvent
instead of Content\AfterSaveEvent and Content\ContentChangeStateEvent.
Remove specific type hints to accept both Joomla 5 and 6 event objects.

Authored-by: Moko Consulting
2026-06-28 13:45:17 -05:00
jmiller 1617452a3f chore: sync issue-branch.yml from Template-Generic [skip ci] 2026-06-28 18:35:50 +00:00
gitea-actions[bot] 313035cfa2 chore: promote changelog [Unreleased] → [01.11.00] 2026-06-28 18:35:24 +00:00
gitea-actions[bot] a72028a1ad chore(release): build 01.11.00 [skip ci] 2026-06-28 18:35:20 +00:00
jmiller 24a40a4117 release: v01.08.00 -- AI captions, social images, calendar, analytics alpha beta 2026-06-28 18:33:18 +00:00
jmiller b6ec1cd5b3 merge: resolve conflicts between dev and main for v01.08.00 release
Universal: PR Check / Branch Policy (pull_request) Successful in 2s
Joomla: Extension CI / Release Readiness Check (pull_request) Failing after 5s
Universal: PR Check / Secret Scan (pull_request) Successful in 6s
Universal: PR Check / Validate PR (pull_request) Failing after 4s
Generic: Repo Health / Access control (pull_request) Successful in 1s
Generic: Repo Health / Site Health (pull_request) Has been skipped
Joomla: Metadata Validation / Validate Joomla Metadata (pull_request) Successful in 10s
Branch Cleanup / Delete merged branch (pull_request) Failing after 2s
RC Revert / Rename rc/ back to dev/ (pull_request) Has been skipped
Generic: Project CI / Lint & Validate (pull_request) Successful in 52s
Universal: Auto Version Bump / Version Bump (push) Successful in 10s
Universal: Pre-Release / Build Pre-Release (${{ inputs.stability || github.ref_name }}) (push) Successful in 23s
Universal: Build & Release / Promote to RC (pull_request) Has been skipped
Universal: Build & Release / Build & Release Pipeline (pull_request) Successful in 22s
Joomla: Extension CI / Lint & Validate (pull_request) Failing after 7m57s
Universal: Workflow Sync Trigger / Sync workflows to live repos (pull_request) Failing after 7m54s
Generic: Project CI / Tests (pull_request) Has been cancelled
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: Scripts Governance (pull_request) Has been cancelled
Generic: Repo Health / Report: Repository Health (pull_request) Has been cancelled
Authored-by: Moko Consulting
2026-06-28 13:31:59 -05:00
gitea-actions[bot] acef5eb3a3 chore(version): pre-release bump to 01.08.61-dev [skip ci] 2026-06-28 17:10:30 +00:00
jmiller 5743915447 Merge pull request 'chore: clean up CHANGELOG formatting and add missing features' (#204) from fix/changelog-cleanup into dev
Universal: Auto Version Bump / Version Bump (push) Has been skipped
Universal: Pre-Release / Build Pre-Release (${{ inputs.stability || github.ref_name }}) (push) Successful in 13s
2026-06-28 17:10:10 +00:00
jmiller 9905d1e634 chore: clean up CHANGELOG formatting and add missing features
Universal: PR Check / Branch Policy (pull_request) Successful in 2s
Universal: PR Check / Validate PR (pull_request) Failing after 7s
Universal: PR Check / Secret Scan (pull_request) Successful in 8s
Branch Cleanup / Delete merged branch (pull_request) Successful in 2s
RC Revert / Rename rc/ back to dev/ (pull_request) Has been skipped
Universal: Pre-Release / Build Pre-Release (${{ inputs.stability || github.ref_name }}) (push) Successful in 18s
Joomla: Metadata Validation / Validate Joomla Metadata (pull_request) Successful in 42s
Universal: PR Check / Build RC Package (pull_request) Has been cancelled
Universal: PR Check / Report Issues (pull_request) Has been cancelled
- Fix duplicate section headers for 01.07.00, 01.05.00, 01.04.01
- Move format description and version comment to top of file
- Replace em-dash with ASCII double-dash (Gitea UTF-8 compat)
- Add missing entries: link shortening (#159), site frontend (#133),
  social preview (#156), PHPUnit test suite (#132)

Authored-by: Moko Consulting
2026-06-28 12:08:38 -05:00
gitea-actions[bot] 47594c963d chore(version): pre-release bump to 01.08.58-dev [skip ci] 2026-06-28 17:05:20 +00:00
jmiller 5621542141 Merge pull request 'fix: analytics MVC model, PreviewController IDOR, README/CHANGELOG updates' (#202) from fix/changelog-security-readme into dev
Universal: Auto Version Bump / Version Bump (push) Has been skipped
Universal: Pre-Release / Build Pre-Release (${{ inputs.stability || github.ref_name }}) (push) Successful in 17s
2026-06-28 17:05:04 +00:00
gitea-actions[bot] ee581032c3 chore(version): pre-release bump to 01.08.57-dev [skip ci]
RC Revert / Rename rc/ back to dev/ (pull_request) Has been skipped
Branch Cleanup / Delete merged branch (pull_request) Failing after 2s
2026-06-28 17:04:22 +00:00
jmiller dd4de77202 fix: add missing calendar/analytics submenu entries and language strings
Universal: PR Check / Branch Policy (pull_request) Successful in 2s
Universal: Pre-Release / Build Pre-Release (${{ inputs.stability || github.ref_name }}) (push) Successful in 20s
Universal: PR Check / Validate PR (pull_request) Failing after 8s
Universal: PR Check / Secret Scan (pull_request) Successful in 10s
Joomla: Metadata Validation / Validate Joomla Metadata (pull_request) Successful in 46s
Universal: PR Check / Build RC Package (pull_request) Has been cancelled
Universal: PR Check / Report Issues (pull_request) Has been cancelled
- Add 'calendar' and 'analytics' entries to MokoSuiteCrossHelper submenu
- Add COM_MOKOSUITECROSS_CALENDAR_PREV_MONTH/NEXT_MONTH/TODAY strings
- Add COM_MOKOSUITECROSS_SUBMENU_CALENDAR string

Authored-by: Moko Consulting
2026-06-28 12:02:51 -05:00
jmiller 3d567353c9 fix: PreviewController IDOR + update README and CHANGELOG
- Add ACL check and parameterized query to PreviewController
- Filter articles by user view access levels
- Update README with new features (AI captions, social preview, OG image
  gen, link shortening, post calendar, analytics)
- Update Nostr status from stub to implemented
- Add security fix entry to CHANGELOG

Authored-by: Moko Consulting
2026-06-28 12:02:24 -05:00
gitea-actions[bot] 8e7381e3ea chore(version): pre-release bump to 01.08.56-dev [skip ci] 2026-06-28 16:58:10 +00:00
jmiller 3eb56f738e Merge pull request 'feat: best time to post analytics view (#165)' (#200) from feature/165-analytics into dev
Universal: Auto Version Bump / Version Bump (push) Has been skipped
Universal: Pre-Release / Build Pre-Release (${{ inputs.stability || github.ref_name }}) (push) Successful in 12s
2026-06-28 16:57:56 +00:00
gitea-actions[bot] dba61e3e0c chore(version): auto-bump patch 01.08.55-dev [skip ci]
Branch Cleanup / Delete merged branch (pull_request) Successful in 1s
RC Revert / Rename rc/ back to dev/ (pull_request) Has been skipped
2026-06-28 16:57:47 +00:00
jmiller 9c2dd1bdde feat(#165): add posting analytics with best-time heatmap
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: Auto Version Bump / Version Bump (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
- AnalyticsHelper: posting heatmap (7x24 grid), best times ranking,
  per-service breakdown with success rates
- AnalyticsController: AJAX endpoint for dynamic heatmap filtering
- Analytics HtmlView: toolbar, dashboard link, submenu integration
- Template: heatmap table with color intensity, best times cards,
  service breakdown table, service/period filters
- 16 new language strings for analytics UI

Authored-by: Moko Consulting
Closes #165
2026-06-28 11:57:02 -05:00