jmiller
8ee1ee1215
chore: sync gitleaks.yml from Template-Generic [skip ci]
2026-07-05 20:44:42 +00:00
jmiller
22b60342ff
chore: sync ci-issue-reporter.yml from Template-Generic [skip ci]
2026-07-05 20:44:38 +00:00
jmiller
13ead69edb
chore: sync cascade-dev.yml from Template-Generic [skip ci]
2026-07-05 20:44:33 +00:00
jmiller
55aa70cb35
chore: sync branch-cleanup.yml from Template-Generic [skip ci]
2026-07-05 20:44:29 +00:00
jmiller
a35afba514
chore: sync auto-release.yml from Template-Generic [skip ci]
2026-07-05 20:44:26 +00:00
jmiller
51e6284a28
chore: sync auto-bump.yml from Template-Generic [skip ci]
2026-07-05 20:44:22 +00:00
jmiller
afa5b02471
chore: sync notify.yml from Template-Generic [skip ci]
2026-07-05 00:05:51 +00:00
jmiller
36d77f2a8a
chore: sync cleanup.yml from Template-Generic [skip ci]
2026-07-05 00:05:48 +00:00
jmiller
8a6b133354
chore: sync auto-release.yml from Template-Generic [skip ci]
2026-07-04 23:28:02 +00:00
jmiller
7e1ebfefae
chore: sync pr-check.yml from Template-Generic [skip ci]
2026-07-04 20:25:51 +00:00
jmiller
e62c5090bf
chore: sync pr-check.yml from Template-Generic [skip ci]
2026-07-04 20:23:02 +00:00
jmiller
8eb296115c
chore: sync ci-generic.yml from Template-Generic [skip ci]
2026-07-04 20:23:01 +00:00
jmiller
440aaff550
chore: sync pr-check.yml from Template-Generic [skip ci]
2026-07-04 19:38:48 +00:00
jmiller
5ede6f05f6
chore: sync ci-generic.yml from Template-Generic [skip ci]
2026-07-04 19:38:47 +00:00
jmiller
c0aab4873e
chore: sync branch-cleanup.yml from Template-Generic [skip ci]
2026-07-04 19:38:45 +00:00
jmiller
585b156b84
chore: sync sync-on-merge.yml from Template-Generic [skip ci]
2026-07-04 19:06:14 +00:00
jmiller
513efe57f9
chore: sync pre-release.yml from Template-Generic [skip ci]
2026-07-04 19:06:13 +00:00
jmiller
23ae4de3fa
chore: sync pr-check.yml from Template-Generic [skip ci]
2026-07-04 19:06:11 +00:00
jmiller
b3e9cb33dd
chore: sync notify.yml from Template-Generic [skip ci]
2026-07-04 19:06:10 +00:00
jmiller
e19bda1a39
chore: sync cleanup.yml from Template-Generic [skip ci]
2026-07-04 19:06:09 +00:00
jmiller
54ba0828c5
chore: sync ci-generic.yml from Template-Generic [skip ci]
2026-07-04 19:06:07 +00:00
jmiller
a26a831460
chore: sync auto-release.yml from Template-Generic [skip ci]
2026-07-04 19:06:05 +00:00
gitea-actions[bot]
84b3d9dc2c
chore(version): pre-release bump to 01.07.03-dev [skip ci]
2026-06-29 17:26:56 +00:00
jmiller
d6d93bddd9
Merge pull request 'refactor: consolidate ImageHelper resize paths + drop unused validate() ( #104 )' ( #117 ) from fix/imagehelper-consolidate-104 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 9s
2026-06-29 17:26:45 +00:00
gitea-actions[bot]
3e6c8d685b
chore(version): pre-release bump to 01.07.02-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-29 17:26:29 +00:00
jmiller
236baed80d
refactor: consolidate ImageHelper resize paths, drop unused validate() ( #104 )
...
Universal: Pre-Release / Build Pre-Release (${{ inputs.stability || github.ref_name }}) (push) Successful in 12s
- resize() is now a thin wrapper over resizeToSize() (added a $quality param),
removing ~80 lines of duplicated crop/resample/encode logic. resize(path)
and resizeToSize(path, 1200, 630, '') produce identical output paths/files,
so behavior is unchanged.
- Removed the unused ImageHelper::validate() method (no callers).
Net: -130/+11 lines. Closes the remaining #104 consolidation items.
2026-06-29 12:26:13 -05:00
gitea-actions[bot]
fd28cb8a93
chore(version): pre-release bump to 01.07.01-dev [skip ci]
2026-06-29 17:18:29 +00:00
jmiller
cb0e5596ea
Merge pull request 'refactor: sitemap throttle + SEF URLs ( #100 ) and batch cursor pagination ( #106 )' ( #116 ) from feat/sitemap-batch-redesign 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 17:18:11 +00:00
jmiller
7532446e46
refactor: sitemap throttle + SEF URLs ( #100 ) and batch cursor pagination ( #106 )
...
Generic: Project CI / Lint & Validate (pull_request) Successful in 13s
Universal: PR Check / Branch Policy (pull_request) Successful in 1s
Universal: PR Check / Secret Scan (pull_request) Successful in 6s
Universal: PR Check / Validate PR (pull_request) Failing after 5s
Branch Cleanup / Delete merged branch (pull_request) Failing after 1s
RC Revert / Rename rc/ back to dev/ (pull_request) Has been skipped
Joomla: Metadata Validation / Validate Joomla Metadata (pull_request) Failing after 10s
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
#106 — BatchController now paginates by id cursor (WHERE c.id > :lastId)
instead of always querying offset 0. A row that fails to insert falls behind
the cursor and is not re-fetched, so the batch always terminates and reaches
100% even with persistent failures. process() returns examined + last_id; the
editor JS drives the cursor and stops when a chunk examines 0 rows.
#100 — Sitemap:
- Throttle: regenerate at most once per 60s on content save (SITEMAP_MIN_INTERVAL)
so bulk edits/imports don't rebuild the whole file every save
- SEF URLs: route each article via Route::link('site', ...) with a fallback to
the non-SEF index.php URL if routing fails (worst case = prior behavior)
(access-level filtering + atomic write were done earlier in the cycle)
2026-06-29 12:17:37 -05:00
jmiller
73bd957808
chore: sync issue-branch.yml from Template-Generic [skip ci]
2026-06-29 16:51:19 +00:00
gitea-actions[bot]
faf65c5d9c
chore: promote changelog [Unreleased] → [01.07.00]
2026-06-29 16:27:41 +00:00
gitea-actions[bot]
a038e43a3c
chore(release): build 01.07.00 [skip ci]
2026-06-29 16:27:35 +00:00
jmiller
b93ce7b872
Release: promote dev → main — v01.06.x cycle (dashboard, edit UI, ACL, security, forward-compat)
2026-06-29 16:27:20 +00:00
gitea-actions[bot]
320b842c6e
chore(version): pre-release bump to 01.06.13-dev [skip ci]
Universal: Build & Release / Promote to RC (pull_request) Has been skipped
Universal: Build & Release / Build & Release Pipeline (pull_request) Successful in 20s
Branch Cleanup / Delete merged branch (pull_request) Has been skipped
RC Revert / Rename rc/ back to dev/ (pull_request) Has been skipped
Universal: Workflow Sync Trigger / Sync workflows to live repos (pull_request) Failing after 3m3s
2026-06-29 16:26:31 +00:00
gitea-actions[bot]
47f073539a
chore(version): auto-bump patch 01.06.12-dev [skip ci]
2026-06-29 16:26:22 +00:00
jmiller
36c37c8e67
Merge origin/main into dev — resync 01.06.00 release chores before promotion
Universal: Auto Version Bump / Version Bump (push) Successful in 7s
Universal: Pre-Release / Build Pre-Release (${{ inputs.stability || github.ref_name }}) (push) Successful in 11s
2026-06-29 11:25:28 -05:00
gitea-actions[bot]
e7d0395be0
chore(version): pre-release bump to 01.06.11-dev [skip ci]
2026-06-29 16:01:33 +00:00
jmiller
2e45d7ea5a
Merge pull request 'docs: CHANGELOG + README for the current development cycle' ( #114 ) from docs/session-updates 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 16:01:13 +00:00
jmiller
0a5e2b94e2
docs: update CHANGELOG and README for this development cycle
...
Universal: PR Check / Branch Policy (pull_request) Successful in 1s
Generic: Project CI / Lint & Validate (pull_request) Successful in 11s
Universal: PR Check / Validate PR (pull_request) Failing after 13s
Universal: PR Check / Secret Scan (pull_request) Successful in 20s
RC Revert / Rename rc/ back to dev/ (pull_request) Has been skipped
Branch Cleanup / Delete merged branch (pull_request) Successful in 3s
Joomla: Metadata Validation / Validate Joomla Metadata (pull_request) Failing after 1m1s
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
- CHANGELOG: fix the mangled header (duplicate empty [01.05.00], misplaced
intro) and add a full [Unreleased] section covering the dashboard, edit UI,
CSV import UI, access.xml/config.xml, AI/sitemap hardening, forward-compat,
dead-code removal, and the new unit tests
- README: add Coverage dashboard / Manual tag editor / Component permissions to
Admin Tools; drop the removed ImageGenerator overlay feature; note sitemap
access-level filtering; add a Joomla 6.0+ / PHP 8.2+ Requirements line
2026-06-29 11:00:24 -05:00
jmiller
903d4d37c8
test: add unit tests for pure JsonLdBuilder methods ( #33 partial)
...
Universal: PR Check / Branch Policy (pull_request) Successful in 2s
Universal: PR Check / Validate PR (pull_request) Failing after 4s
Universal: PR Check / Secret Scan (pull_request) Successful in 5s
Generic: Project CI / Lint & Validate (pull_request) Successful in 11s
Joomla: Metadata Validation / Validate Joomla Metadata (pull_request) Failing after 28s
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
RC Revert / Rename rc/ back to dev/ (pull_request) Has been skipped
Branch Cleanup / Delete merged branch (pull_request) Successful in 1s
- JsonLdBuilderLocalBusinessTest: buildLocalBusiness() null/minimal/custom-type/
partial-address/geo-requires-both-coords cases
- JsonLdScriptTagTest: toScriptTag() wraps in ld+json, escapes </ to prevent
</script> breakout, and produces valid JSON after unescaping
Covers the pure (Factory/Uri/DB-free) helpers that run under the existing
minimal bootstrap. The remaining #33 targets (ImageHelper, BatchController,
CSV import, content/system plugin integration) need a Joomla test harness.
2026-06-29 10:52:55 -05:00
gitea-actions[bot]
1dec76ff0c
chore(version): pre-release bump to 01.06.10-dev [skip ci]
2026-06-29 15:49:30 +00:00
jmiller
60c243a733
Merge pull request 'feat: OG coverage dashboard as default admin view ( #94 )' ( #112 ) from feat/dashboard-94 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 15:49:11 +00:00
jmiller
696e369ec1
feat: OG coverage dashboard as default admin view ( #94 )
...
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 10s
Generic: Project CI / Lint & Validate (pull_request) Successful in 17s
RC Revert / Rename rc/ back to dev/ (pull_request) Has been skipped
Branch Cleanup / Delete merged branch (pull_request) Successful in 2s
Joomla: Metadata Validation / Validate Joomla Metadata (pull_request) Failing after 48s
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
- New DashboardModel (BaseDatabaseModel) with getStats(), getCoverageByType(),
getMissingArticles() — coverage logic moved out of the list template
- New View/Dashboard/HtmlView + tmpl/dashboard/default.php: SVG donut coverage
gauge, field-gap badges, per-content_type breakdown table, and a list of
published articles missing OG tags (linking to the article editor) with a
Batch Generate shortcut
- DisplayController default_view -> dashboard; Dashboard + Tags submenu entries
- Removed the inline coverage.php include from the tags list (it ran 6 uncached
COUNT queries on every list load); that logic now lives in DashboardModel
- Declared tmpl/dashboard in the manifest; added language strings (en-GB, en-US)
2026-06-29 10:48:33 -05:00
gitea-actions[bot]
93b28a851e
chore(version): pre-release bump to 01.06.09-dev [skip ci]
2026-06-29 15:29:14 +00:00
jmiller
cb28cb12cd
Merge pull request 'fix: features & quality — access.xml/config.xml, CSV import UI, dead-code/leak, packaging ( #95 #103 #104 #107 )' ( #111 ) from fix/features-quality-batch 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 15:26:40 +00:00
jmiller
d8376d6cdf
fix: features & quality batch ( #95 , #103 , #104 , #107 )
...
Universal: PR Check / Branch Policy (pull_request) Successful in 2s
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 2s
Universal: PR Check / Secret Scan (pull_request) Successful in 16s
Generic: Project CI / Lint & Validate (pull_request) Successful in 48s
Joomla: Metadata Validation / Validate Joomla Metadata (pull_request) Failing after 52s
Universal: Pre-Release / Build Pre-Release (${{ inputs.stability || github.ref_name }}) (push) Failing after 5s
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
#95 — ACL + Options:
- Add access.xml (core actions + mokoog.batch / mokoog.import custom actions)
- Add config.xml (Permissions tab + note pointing settings to the system plugin)
- Declare both in the manifest; Batch/ImportExport controllers now check the
custom actions with a fallback to the prior core checks (no lockout)
#103 — CSV import is now reachable:
- Add an Import toolbar button that toggles a multipart file-upload form
(jform[csv_file]) posting to importexport.import with a CSRF token
#104 — Dead code + disk leak:
- Delete unused ImageGenerator class and JsonLdBuilder::buildOrganization()
- Add ImageHelper::pruneOldFiles() (deletes generated images older than 30d)
and call it on content save so the generated-image cache is bounded
#107 — Packaging:
- Declare language/en-US in the component manifest (was never installed)
- Remove undeclared empty stub dirs src/Field, src/Service
2026-06-29 10:25:59 -05:00
gitea-actions[bot]
543bd2b464
chore(version): pre-release bump to 01.06.08-dev [skip ci]
2026-06-29 15:23:05 +00:00
gitea-actions[bot]
32bb72d12d
chore(version): auto-bump patch 01.06.07-dev [skip ci]
2026-06-29 15:22:48 +00:00
jmiller
4f92b4e508
chore: migrate update server URLs to MokoGitea
Universal: Auto Version Bump / Version Bump (push) Successful in 14s
Universal: Pre-Release / Build Pre-Release (${{ inputs.stability || github.ref_name }}) (push) Successful in 20s
2026-06-29 15:21:55 +00:00
gitea-actions[bot]
53bf4a3187
chore(version): pre-release bump to 01.06.06-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:04 +00:00