Release: dev → main — schema-checker fix + unified progress theme #282

Merged
jmiller merged 19 commits from release/dev-to-main into main 2026-07-16 14:36:07 +00:00
Owner

Releases the reviewed dev work to main:

  • fix(db): reconcile #__mokosuitebackup_profiles with the schema checker (#278)
  • feat(ui): unify backup/restore progress modals with the runbackup theme (#281)

Config resolution: keeps main's fuller gitea→git rebrand (MokoGIT, GIT_ORG, mokogit-actions bot, MOKOGIT_TOKEN) and removes the botched nested .mokogit/.mokogit/ cruft; restores .mokogit/CLAUDE.md to the correct path. All source code merges cleanly from dev.

https://claude.ai/code/session_01WbGBN9VyRK61zczYWcCQ2i

Releases the reviewed dev work to main: - **fix(db)**: reconcile #__mokosuitebackup_profiles with the schema checker (#278) - **feat(ui)**: unify backup/restore progress modals with the runbackup theme (#281) Config resolution: keeps main's fuller gitea→git rebrand (MokoGIT, GIT_ORG, mokogit-actions bot, MOKOGIT_TOKEN) and removes the botched nested `.mokogit/.mokogit/` cruft; restores `.mokogit/CLAUDE.md` to the correct path. All source code merges cleanly from dev. https://claude.ai/code/session_01WbGBN9VyRK61zczYWcCQ2i
jmiller added 19 commits 2026-07-16 14:35:42 +00:00
fix(task): scheduled-task fieldset label renders raw string
Universal: PR Check / Branch Policy (pull_request) Successful in 1s
Universal: PR Check / Secret Scan (pull_request) Successful in 6s
Generic: Project CI / Lint & Validate (pull_request) Successful in 11s
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) Failing after 10s
Universal: PR Check / Validate PR (pull_request) Failing after 11s
Joomla: Metadata Validation / Validate Joomla Metadata (pull_request) Successful in 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
9e7ebfe89e
com_scheduler's task edit view renders a params fieldset legend as
Text::_($fieldset->label ?: 'COM_SCHEDULER_FIELDSET_'.$name). The
run_profile / run_snapshot fieldsets had no `label` attribute, so it fell
back to an undefined generated key (COM_SCHEDULER_RUN_PROFILE_FIELDSET_LABEL)
and showed the raw constant. Give each fieldset a label attribute pointing
to a plugin-defined constant, and define them in en-GB/en-US.

Claude-Session: https://claude.ai/code/session_01WbGBN9VyRK61zczYWcCQ2i
Merge pull request 'fix(task): scheduled-task fieldset label renders raw string' (#276) from fix/scheduler-fieldset-label 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 24s
6fc57eb163
feat: lock the admin UI while a backup is actively running
Generic: Project CI / Lint & Validate (pull_request) Successful in 13s
Universal: PR Check / Branch Policy (pull_request) Successful in 2s
Universal: PR Check / Secret Scan (pull_request) Successful in 7s
Universal: PR Check / Validate PR (pull_request) Failing after 9s
Joomla: Metadata Validation / Validate Joomla Metadata (pull_request) Successful in 10s
Branch Cleanup / Delete merged branch (pull_request) Successful in 3s
RC Revert / Rename rc/ back to dev/ (pull_request) Has been skipped
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
257003fb74
New "Lock admin during backup" option (on by default). While a stepped
backup is running, every admin page load except the full-screen backup
screen and the login page is replaced by a "backup in progress"
interstitial that auto-refreshes, so no other window can navigate or change
anything mid-backup.

Detection uses the stepped-backup session file heartbeat
(JPATH_ROOT/tmp/mokosuitebackup-sessions/mb_*.json is rewritten every step
and deleted on completion) — a file with an mtime within ~45s means a
backup is live. A crashed/abandoned backup goes stale and releases the lock
on its own, so the admin is never permanently locked. Implemented in the
system plugin's onAfterRoute (admin, HTML page loads only; AJAX/assets and
the backup's own step requests are unaffected).

Claude-Session: https://claude.ai/code/session_01WbGBN9VyRK61zczYWcCQ2i
Merge pull request 'feat: lock admin UI while a backup is running' (#277) from feat/lock-admin-during-backup 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 49s
536a9b0c78
Server-side Actions scanning path was reconfigured to .mokogit/workflows.
Renames the directory (history preserved) and updates every internal path
reference: trigger globs, reusable-workflow `uses:` includes, WORKFLOWS_DIR,
REPO_REQUIRED_ARTIFACTS, PATH headers, and .gitattributes export-ignore.
Scope: this repo only. Product name "MokoGitea", the actions bot, env vars,
and URLs are unaffected.

Claude-Session: https://claude.ai/code/session_01WbGBN9VyRK61zczYWcCQ2i
Completes the .mokogit rebrand to match main: the server secret was
renamed MOKOGITEA_TOKEN -> MOKOGIT_TOKEN and the workflow env var
MOKOGITEA_URL -> MOKOGIT_URL. Without this the merged workflows would
reference an undefined secret and CI auth would fail.

Claude-Session: https://claude.ai/code/session_01WbGBN9VyRK61zczYWcCQ2i
Joomla's Database maintenance view reported "One Problem" on
MokoSuiteBackup with four sub-issues in #__mokosuitebackup_profiles.
All were schema-definition drift, not data corruption (confirmed
against Joomla 6.1 core: ChangeSet/MysqlChangeItem check each update
statement independently, with no cross-file supersession).

- install.mysql.sql: restore the legacy sftp_* columns so the old
  ADD COLUMN checks (01.35.00/01.36.00) pass on fresh installs. The
  data itself lives in #__mokosuitebackup_remotes; these columns are
  retained only for checker consistency with upgraded sites.
- 01.01.01.sql: declare include_mokorestore as VARCHAR(20) (was
  TINYINT, later widened in 01.39.00). Without supersession the stale
  TINYINT check fails forever against the now-VARCHAR column.
- 01.39.00.sql: MODIFY COLUMN -> MODIFY. The checker misparses
  "MODIFY COLUMN x" as column-name="COLUMN".
- 02.64.05.sql: idempotent MODIFY to guarantee VARCHAR on stragglers;
  version bump 02.64.04 -> 02.64.05 with its matching update file.

Claude-Session: https://claude.ai/code/session_01WbGBN9VyRK61zczYWcCQ2i
Review of PR #278 caught that script.php postflight
(dropLegacyRemoteColumns) and 02.52.25.sql deliberately purge the
legacy sftp_* columns on every install/update, so re-adding them to
install.mysql.sql was futile — postflight drops them right back,
leaving the ADD-COLUMN checks (01.35.00/01.36.00) still failing.

Corrected approach:
- Revert the install.mysql.sql sftp_* block.
- Rewrite the retired sftp_* ADD COLUMN statements in 01.35.00/01.36.00
  as bare ADD. MySQL treats ADD and ADD COLUMN identically, but Joomla's
  MysqlChangeItem only builds an ADD-COLUMN check for the `ADD COLUMN`
  form; bare `ADD` is skipped. Upgrades still add the columns (so the
  01.41.00 migration works) and 02.52.25/postflight still drop them, so
  they stay absent at rest and the checker no longer flags them.

include_mokorestore fixes (01.01.01 VARCHAR, 01.39.00 MODIFY) and the
02.64.05 bump are unchanged.

Claude-Session: https://claude.ai/code/session_01WbGBN9VyRK61zczYWcCQ2i
Gives the stepped backup-progress and restore-progress modals in the
backups view the same full-screen black, big-text, Atum-coloured
progress-bar look as the view=runbackup screen, so every backup progress
surface matches.

- New media/css/backup-progress.css: black is scoped to .msb-progress-modal
  (not html/body), reuses the runbackup .msb-rb-progress/.msb-rb-bar bar with
  animated/success/danger states.
- Registered com_mokosuitebackup.backup-progress asset; loaded in the backups
  view via addStyleSheet (useStyle does not emit for this component).
- Both modals: full-screen dialog, big heading, big status text, shared bar.
- setBarState() drives animated -> green(complete)/red(fail) for both bars.

Claude-Session: https://claude.ai/code/session_01WbGBN9VyRK61zczYWcCQ2i
Claude-Session: https://claude.ai/code/session_01WbGBN9VyRK61zczYWcCQ2i
# Conflicts:
#	.mokogit/.mokogit/CLAUDE.md
#	.mokogit/.mokogit/workflows/branch-cleanup.yml
#	.mokogit/.mokogit/workflows/issue-branch.yml
#	.mokogit/CLAUDE.md
#	.mokogit/workflows/auto-release.yml
#	.mokogit/workflows/branch-cleanup.yml
#	.mokogit/workflows/ci-joomla.yml
#	.mokogit/workflows/issue-branch.yml
#	.mokogit/workflows/pr-metadata-check.yml
#	.mokogit/workflows/pre-release.yml
#	.mokogit/workflows/rc-revert.yml
#	.mokogitea/CLAUDE.md
#	.mokogitea/workflows/branch-cleanup.yml
#	.mokogitea/workflows/issue-branch.yml
jmiller merged commit 775942e9f7 into main 2026-07-16 14:36:07 +00:00
jmiller deleted branch release/dev-to-main 2026-07-16 14:36:07 +00:00
Sign in to join this conversation.