fix: CLI backups no longer named joomla.invalid (host placeholder) #235

Merged
jmiller merged 2 commits from fix/cli-host-placeholder into dev 2026-07-06 03:03:34 +00:00
Owner

Cosmetic fix found during suite.dev verification: CLI/console-triggered backups were named joomla.invalid_<ts>_profile1.zip.

Cause

PlaceholderResolver resolves [HOST] from $_SERVER['HTTP_HOST'], but Joomla's console fills that with the reserved sentinel host joomla.invalid (RFC 6761 .invalid TLD). The resolver's "is this host usable?" guard only rejected '' and localhost, so the sentinel passed straight through.

Fix

Treat joomla.invalid as unusable too, and fall through the existing chain: request host → live_site config → system hostname. Web/AJAX/scheduled-web backups are unaffected (they have a real HTTP_HOST).

Note: to get the exact domain in CLI-built names, the site's live_site should be set; otherwise the fallback is the system hostname (still a real, stable identifier instead of the meaningless sentinel).

Verify

  • php -l clean.
  • Will confirm on suite.dev after the dev build (CLI backup name no longer joomla.invalid).

https://claude.ai/code/session_01WbGBN9VyRK61zczYWcCQ2i

Cosmetic fix found during suite.dev verification: CLI/console-triggered backups were named `joomla.invalid_<ts>_profile1.zip`. ## Cause `PlaceholderResolver` resolves `[HOST]` from `$_SERVER['HTTP_HOST']`, but Joomla's console fills that with the reserved sentinel host **`joomla.invalid`** (RFC 6761 `.invalid` TLD). The resolver's "is this host usable?" guard only rejected `''` and `localhost`, so the sentinel passed straight through. ## Fix Treat `joomla.invalid` as unusable too, and fall through the existing chain: request host → `live_site` config → system hostname. Web/AJAX/scheduled-web backups are unaffected (they have a real `HTTP_HOST`). Note: to get the *exact domain* in CLI-built names, the site's **live_site** should be set; otherwise the fallback is the system hostname (still a real, stable identifier instead of the meaningless sentinel). ## Verify - `php -l` clean. - Will confirm on suite.dev after the dev build (CLI backup name no longer `joomla.invalid`). https://claude.ai/code/session_01WbGBN9VyRK61zczYWcCQ2i
jmiller added 1 commit 2026-07-06 03:03:16 +00:00
fix: CLI backups no longer named joomla.invalid (host placeholder)
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 / Branch Policy (pull_request) Successful in 2s
Universal: Pre-Release / Build Pre-Release (${{ inputs.stability || github.ref_name }}) (push) Successful in 40s
Universal: PR Check / Secret Scan (pull_request) Successful in 9s
Generic: Project CI / Lint & Validate (pull_request) Successful in 17s
Joomla: Metadata Validation / Validate Joomla Metadata (pull_request) Successful in 16s
Universal: PR Check / Validate PR (pull_request) Failing after 50s
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
5ffcbcc2f1
Joomla's console fills $_SERVER['HTTP_HOST'] with the reserved sentinel
'joomla.invalid', which the [HOST] placeholder resolver used verbatim
because its unusable-host check only knew about empty/localhost. Treat
'joomla.invalid' as unusable too, falling back to live_site then the
system hostname, so CLI/console/scheduled backups get a real name.

Claude-Session: https://claude.ai/code/session_01WbGBN9VyRK61zczYWcCQ2i
jmiller added 1 commit 2026-07-06 03:03:28 +00:00
chore(version): pre-release bump to 02.58.10-dev [skip ci]
Branch Cleanup / Delete merged branch (pull_request) Successful in 3s
RC Revert / Rename rc/ back to dev/ (pull_request) Has been skipped
7cb0b08cfe
jmiller merged commit fbf97b2cdb into dev 2026-07-06 03:03:34 +00:00
jmiller deleted branch fix/cli-host-placeholder 2026-07-06 03:03:35 +00:00
Sign in to join this conversation.