jmiller
9db54ac60c
fix(manifest): component <name> must be element-safe (com_mokosuitebackup)
...
Universal: Pre-Release / Build Pre-Release (${{ inputs.stability || github.ref_name }}) (push) Successful in 34s
The "Type - Name" convention (commit d155958 ) set the component <name> to
"Component - MokoSuiteBackup". Joomla derives a component's element from its
<name> (com_ + sanitized name), so this produced element
`com_component-mokosuitebackup` instead of `com_mokosuitebackup`. On update,
Joomla registered a NEW component (new element + folder) at the current
version and orphaned the real `com_mokosuitebackup` at its old version — which
is what `?option=com_mokosuitebackup` and the admin menu still load. Net
effect: the component appears "stuck" on the old version with the old UI.
Revert the component <name> to "MokoSuiteBackup" (-> com_mokosuitebackup) and
document why the display convention must not be applied to a component's
<name>. Packages are exempt (they use <packagename>); plugins/modules are
exempt (<name> is only a display label there).
Refs #171-area remote tab reports; fixes the duplicate-component registration.
Claude-Session: https://claude.ai/code/session_01WbGBN9VyRK61zczYWcCQ2i
2026-07-05 16:58:37 -05:00
jmiller
0c7c3552ed
chore: sync workflow-sync-trigger.yml from Template-Generic [skip ci]
2026-07-05 21:49:42 +00:00
jmiller
351321161a
chore: sync version-set.yml from Template-Generic [skip ci]
2026-07-05 21:49:40 +00:00
jmiller
d2cc234fce
chore: sync repo-health.yml from Template-Generic [skip ci]
2026-07-05 21:49:37 +00:00
jmiller
2389df8670
chore: sync rc-revert.yml from Template-Generic [skip ci]
2026-07-05 21:49:34 +00:00
jmiller
55f29498b0
chore: sync pre-release.yml from Template-Generic [skip ci]
2026-07-05 21:49:31 +00:00
jmiller
a5397c0f16
chore: sync pr-check.yml from Template-Generic [skip ci]
2026-07-05 21:49:28 +00:00
jmiller
c0792a6ba0
chore: sync notify.yml from Template-Generic [skip ci]
2026-07-05 21:49:26 +00:00
jmiller
7a3f0f914e
chore: sync issue-branch.yml from Template-Generic [skip ci]
2026-07-05 21:49:24 +00:00
jmiller
cc7f18ae45
chore: sync gitleaks.yml from Template-Generic [skip ci]
2026-07-05 21:49:22 +00:00
jmiller
4cf8f8243d
chore: sync cleanup.yml from Template-Generic [skip ci]
2026-07-05 21:49:20 +00:00
jmiller
efb28fa386
chore: sync ci-issue-reporter.yml from Template-Generic [skip ci]
2026-07-05 21:49:17 +00:00
jmiller
68043c9a37
chore: sync ci-generic.yml from Template-Generic [skip ci]
2026-07-05 21:49:15 +00:00
jmiller
e5558fad26
chore: sync cascade-dev.yml from Template-Generic [skip ci]
2026-07-05 21:49:12 +00:00
jmiller
60c5c00333
chore: sync branch-cleanup.yml from Template-Generic [skip ci]
2026-07-05 21:49:10 +00:00
jmiller
f9169fd9f7
chore: sync auto-release.yml from Template-Generic [skip ci]
2026-07-05 21:49:07 +00:00
jmiller
d69db6fac3
chore: sync auto-bump.yml from Template-Generic [skip ci]
2026-07-05 21:49:05 +00:00
gitea-actions[bot]
1f7c2ef1ba
chore: promote changelog [Unreleased] → [02.56.07]
Universal: PR Check / Branch Policy (pull_request) Successful in 1s
Universal: PR Check / Require Docs Update (pull_request) Has been skipped
Universal: PR Check / Wiki Update Reminder (pull_request) Has been skipped
Universal: PR Check / Secret Scan (pull_request) Successful in 7s
Generic: Project CI / Lint & Validate (pull_request) Successful in 12s
Cascade Main -> Dev / Cascade main -> dev (push) Successful in 4s
Universal: PR Check / Validate PR (pull_request) Failing after 12s
Joomla: Metadata Validation / Validate Joomla Metadata (pull_request) Successful in 11s
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-07-05 21:34:17 +00:00
gitea-actions[bot]
24d7dc0064
chore(release): build 02.56.07 [skip ci]
2026-07-05 21:34:06 +00:00
jmiller
f4bc1d128c
Merge pull request 'fix: security + data-integrity fixes (P0/P1)' ( #211 ) from fix/security-integrity-p0p1 into main
Sync Workflows to Repos / sync (push) Has been skipped
Cascade Main -> Dev / Cascade main -> dev (push) Successful in 5s
Universal: PR Check / Require Docs Update (pull_request) Has been skipped
Universal: PR Check / Branch Policy (pull_request) Successful in 1s
Universal: PR Check / Wiki Update Reminder (pull_request) Has been skipped
Universal: PR Check / Secret Scan (pull_request) Successful in 5s
Generic: Project CI / Lint & Validate (pull_request) Successful in 49s
Universal: PR Check / Validate PR (pull_request) Failing after 48s
Joomla: Metadata Validation / Validate Joomla Metadata (pull_request) Successful in 54s
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-07-05 21:33:49 +00:00
gitea-actions[bot]
6ab31c12be
chore(version): pre-release bump to 02.56.07-dev [skip ci]
RC Revert / Rename rc/ back to dev/ (pull_request) Has been skipped
Universal: Workflow Sync Trigger / Sync workflows to live repos (pull_request) Has been skipped
Branch Cleanup / Delete merged branch (pull_request) Successful in 2s
Universal: Build & Release / Promote to RC (pull_request) Has been skipped
Universal: Build & Release / Build & Release Pipeline (pull_request) Successful in 32s
2026-07-05 21:33:32 +00:00
jmiller
99b844e04a
fix: security + data-integrity fixes (P0/P1)
...
Universal: PR Check / Branch Policy (pull_request) Successful in 1s
Joomla: Extension CI / Release Readiness Check (pull_request) Failing after 6s
Universal: PR Check / Wiki Update Reminder (pull_request) Successful in 2s
Universal: PR Check / Require Docs Update (pull_request) Failing after 8s
Universal: PR Check / Secret Scan (pull_request) Successful in 9s
Generic: Repo Health / Access control (pull_request) Successful in 2s
Generic: Repo Health / Site Health (pull_request) Has been skipped
Universal: PR Check / Validate PR (pull_request) Failing after 13s
Joomla: Metadata Validation / Validate Joomla Metadata (pull_request) Successful in 12s
Universal: Pre-Release / Build Pre-Release (${{ inputs.stability || github.ref_name }}) (push) Successful in 28s
Universal: Build & Release / Promote to RC (pull_request) Has been skipped
Universal: Build & Release / Build & Release Pipeline (pull_request) Has been skipped
Generic: Project CI / Lint & Validate (pull_request) Successful in 46s
Joomla: Extension CI / Lint & Validate (pull_request) Failing after 50s
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
Security (P0):
- #169 mask FTP password in AjaxController maskSecrets()/mergeExistingSecrets()
- #187 stop leaking absolute_path in API item view (JsonapiView)
- #182 SftpUploader StrictHostKeyChecking=no -> accept-new (MITM)
Data integrity / correctness (P1):
- #179 DatabaseDumper: real newline after DROP TABLE (was literal backslash-n)
- #180 profile-picker forms ORDER BY id (the 'ordering' column is dropped on
upgraded sites, breaking the query) — run_profile.xml + plg_content xml
- #181 uninstall.mysql.sql: add missing DROP for snapshots table
- #184 CLI snapshot delete uses data_file column (file_path does not exist,
so snapshot files were never deleted)
- #186 remove duplicate pre-update backup: content plugin no longer subscribes
to onExtensionBeforeUpdate (owned by the system plugin); keeps pre-install
- #188 DatabaseImporter now collects non-fatal statement errors
(getErrors()/hasErrors()) so restores are no longer silent and callers can
surface a warning status
Also folds in the .mokogitea/CLAUDE.md mokoplatform -> mokocli fix (stale repo
name after the rename).
Claude-Session: https://claude.ai/code/session_01WbGBN9VyRK61zczYWcCQ2i
2026-07-05 16:32:56 -05:00
jmiller
75bbb55e29
chore: sync workflow-sync-trigger.yml from Template-Generic [skip ci]
2026-07-05 21:10:07 +00:00
jmiller
11b0ea3c21
chore: sync pr-check.yml from Template-Generic [skip ci]
2026-07-05 21:10:04 +00:00
jmiller
bcb4368bd1
chore: sync version-set.yml from Template-Generic [skip ci]
2026-07-05 20:46:36 +00:00
jmiller
8ac3bedff3
chore: sync sync-on-merge.yml from Template-Generic [skip ci]
2026-07-05 20:46:35 +00:00
jmiller
4ab9ab3806
chore: sync repo-health.yml from Template-Generic [skip ci]
2026-07-05 20:46:33 +00:00
jmiller
4740a09d79
chore: sync rc-revert.yml from Template-Generic [skip ci]
2026-07-05 20:46:31 +00:00
jmiller
26121e3628
chore: sync pre-release.yml from Template-Generic [skip ci]
2026-07-05 20:46:29 +00:00
jmiller
478adfcde8
chore: sync pr-check.yml from Template-Generic [skip ci]
2026-07-05 20:46:27 +00:00
jmiller
f4b6e23d58
chore: sync gitleaks.yml from Template-Generic [skip ci]
2026-07-05 20:46:25 +00:00
jmiller
af215482bd
chore: sync ci-issue-reporter.yml from Template-Generic [skip ci]
2026-07-05 20:46:22 +00:00
jmiller
cd721d450e
chore: sync cascade-dev.yml from Template-Generic [skip ci]
2026-07-05 20:46:20 +00:00
jmiller
b38ddb5b62
chore: sync branch-cleanup.yml from Template-Generic [skip ci]
2026-07-05 20:46:18 +00:00
jmiller
6e66de4c65
chore: sync auto-release.yml from Template-Generic [skip ci]
2026-07-05 20:46:16 +00:00
jmiller
b2d35bc9b3
chore: sync auto-bump.yml from Template-Generic [skip ci]
2026-07-05 20:46:14 +00:00
jmiller
d780e10a2f
chore: sync notify.yml from Template-Generic [skip ci]
2026-07-05 00:06:25 +00:00
jmiller
b2770df80f
chore: sync issue-branch.yml from Template-Generic [skip ci]
2026-07-05 00:06:23 +00:00
jmiller
1c643b097f
chore: sync cleanup.yml from Template-Generic [skip ci]
2026-07-05 00:06:21 +00:00
gitea-actions[bot]
ee293e8038
chore: promote changelog [Unreleased] → [02.56.05]
2026-07-05 00:03:28 +00:00
gitea-actions[bot]
8e3e473426
chore(release): build 02.56.05 [skip ci]
2026-07-05 00:03:11 +00:00
jmiller
2a7fb74ef9
Merge pull request 'fix(sql): purge stranded legacy remote-storage columns (MySQL 8 safe)' ( #210 ) from fix/purge-legacy-remote-columns into main
Sync Workflows to Repos / sync (push) Failing after 3s
2026-07-05 00:02:28 +00:00
gitea-actions[bot]
c7a57116a7
chore(version): pre-release bump to 02.56.05-dev [skip ci]
RC Revert / Rename rc/ back to dev/ (pull_request) Has been skipped
Branch Cleanup / Delete merged branch (pull_request) Successful in 3s
Universal: Build & Release / Promote to RC (pull_request) Has been skipped
Universal: Build & Release / Build & Release Pipeline (pull_request) Successful in 44s
Universal: Workflow Sync Trigger / Sync workflows to live repos (pull_request) Successful in 9m41s
2026-07-05 00:02:14 +00:00
jmiller
6a62868881
fix(sql): purge stranded legacy remote-storage columns (MySQL 8 safe)
...
Universal: PR Check / Branch Policy (pull_request) Successful in 2s
Joomla: Extension CI / Release Readiness Check (pull_request) Failing after 8s
Universal: PR Check / Secret Scan (pull_request) Successful in 9s
Universal: Pre-Release / Build Pre-Release (${{ inputs.stability || github.ref_name }}) (push) Successful in 34s
Universal: PR Check / Validate PR (pull_request) Failing after 15s
Generic: Repo Health / Site Health (pull_request) Has been skipped
Generic: Repo Health / Access control (pull_request) Successful in 2s
Joomla: Metadata Validation / Validate Joomla Metadata (pull_request) Successful in 15s
Universal: Build & Release / Promote to RC (pull_request) Failing after 17s
Universal: Build & Release / Build & Release Pipeline (pull_request) Has been skipped
Generic: Project CI / Lint & Validate (pull_request) Successful in 1m2s
Joomla: Extension CI / Lint & Validate (pull_request) Failing after 1m6s
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
02.52.25.sql used `DROP COLUMN IF EXISTS` (MariaDB-only), which errors on
Oracle MySQL 8.x — so on MySQL 8 installs the 26 legacy remote_storage/ftp_*/
sftp_*/gdrive_*/s3_* columns were never dropped, yet Joomla recorded the schema
as applied (confirmed on suite.dev: MySQL 8.0.41, all 26 columns still present,
0 profiles with legacy remote data).
New 02.56.01 migration removes them portably: an INFORMATION_SCHEMA-gated
prepared-statement ALTER that drops all 26 columns where present (plain
DROP COLUMN, valid on MySQL 8 + MariaDB) and is a no-op where already gone
(so it's safe on already-migrated installs too). Validated non-destructively
against suite.dev (gate=1, ALTER PREPAREs cleanly).
Claude-Session: https://claude.ai/code/session_01WbGBN9VyRK61zczYWcCQ2i
2026-07-04 19:01:50 -05:00
jmiller
0926e82465
chore: sync auto-release.yml from Template-Generic [skip ci]
2026-07-04 23:28:45 +00:00
gitea-actions[bot]
e37a52df4e
chore: promote changelog [Unreleased] → [02.56.00]
2026-07-04 22:01:21 +00:00
gitea-actions[bot]
a7611d17d9
chore(release): build 02.56.00 [skip ci]
2026-07-04 22:01:12 +00:00
jmiller
183b2d2d6f
Merge pull request 'fix: remote destinations tab broken (Add Destination + stuck loading)' ( #208 ) from fix/remote-destinations-modal into main
2026-07-04 22:00:44 +00:00
jmiller
4ca9e23630
fix(profile): remote destinations tab broken — lazy-init Bootstrap modal
...
Joomla: Extension CI / Release Readiness Check (pull_request) Failing after 7s
Joomla: Extension CI / Lint & Validate (pull_request) Failing after 11s
Universal: PR Check / Branch Policy (pull_request) Successful in 3s
Universal: PR Check / Secret Scan (pull_request) Successful in 10s
Generic: Repo Health / Site Health (pull_request) Has been skipped
Universal: PR Check / Validate PR (pull_request) Failing after 14s
Generic: Repo Health / Access control (pull_request) Successful in 3s
Joomla: Metadata Validation / Validate Joomla Metadata (pull_request) Successful in 14s
Universal: Pre-Release / Build Pre-Release (${{ inputs.stability || github.ref_name }}) (push) Successful in 39s
Universal: Build & Release / Promote to RC (pull_request) Has been skipped
Universal: Build & Release / Build & Release Pipeline (pull_request) Has been skipped
Generic: Project CI / Lint & Validate (pull_request) Successful in 45s
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
The remote destinations table stayed stuck at "Loading…" and the "Add
Destination" button did nothing. Root cause: the profile-edit DOMContentLoaded
handler instantiated the Bootstrap modal eagerly at the top
(`bootstrap.Modal.getOrCreateInstance`). In Joomla 6, Bootstrap loads as a
deferred ES module, so `bootstrap` is undefined at DOMContentLoaded — the
reference threw a ReferenceError that aborted the entire handler, so
loadRemotes() never ran and the Add button was never bound. (The purge and
stepped-backup modals worked because they resolve the modal lazily inside
click handlers.)
- Resolve the modal lazily via getModal() at click-time (matches the working modals)
- Explicitly load the bootstrap.modal web asset so window.bootstrap.Modal is registered
Claude-Session: https://claude.ai/code/session_01WbGBN9VyRK61zczYWcCQ2i
2026-07-04 17:00:15 -05:00
jmiller
d0ce09abf0
chore: sync issue-branch.yml from Template-Generic [skip ci]
2026-07-04 21:52:23 +00:00