feat(admin): introduce admin\Features layer with Store as pilot
fix(steam): preserve return context on OpenID callback
fix(store): drop redundant check in updateField activ normalization
- AdminPageController, ContainerFactory admin route loader, psr-4 admin\Features
- Store: controller/views/BulkAction/Filter moved from app\Features\Store
- Inline edit: patch endpoint, updateField, inline-edit.js
- Filters: disabled stock, cascading server->group, inline in header
- Admin store link in public catalog (out, no PJAX)
- AssetBundle: documentRoot fallback for cross-theme paths
- Acl::checkRestriction: use permissions['owner'] instead of $GLOBALS
- form_submit_ajax/admin: serialize [form=...] fields, Noty instead of #content
- admin_modal_edit_product: BS4, NBT/affixes split to bundle only
- MigrateMySQL19278: store translations
fix(updater): fail-closed restore without manifest
Restore now aborts with manifest-missing when the backup has no manifest
and --force is not given, instead of silently leaving orphan files that
break the DI container (same failure mode as incident 19.2.66).
- BackupManager: add manifest-missing and version-mismatch rules; skip
manifest lookup when versionTo is null (BC preserved); pass warnings
through the legacy --force path
- core_updater: drop redundant !== '' ternaries (PHPStan); treat
manifest-missing as proceedable in the catch block alongside
from-version
- Tests: add testAbortsWhenManifestMissing and
testForceAllowsLegacyRestoreWhenManifestMissing