[MAG] ACP Enhancements

[MAG] ACP Enhancements 1.1.4

No permission to buy ($45.00)
What's New:
  • Contract v2: Added search for catalog entities and package versions.
  • Pagination: Support for limiting the number of results and using continuation tokens for large catalogs.
  • Entity descriptions: The catalog provides information about the entity type and its name.
  • Internal integration: ACP Enhancements fully utilizes Contract v2.
  • Contract v1: The deprecated API and its public classes have been removed.
Important for developers:
  • Integrations that use Contract v1 must be migrated to Contract v2.
  • Backward compatibility with the old API is not supported.
  • Existing catalog packages and the core functions of the Package Catalog have been preserved.
Version 1.1.3 combines the 1.1.1–1.1.3 changes and completes a major Package Catalog development stage.

The update not only expands Package Catalog capabilities, but also corrects several issues in its data model, catalog isolation, and integration behavior.

What's new:
  • New Package Catalog model — stored packages now belong to a specific catalog instead of sharing one global package space.
  • Built-in XenForo catalog — XenForo packages are stored inside the built-in XenForo Package Catalog.
  • Safe migration — existing packages are migrated to the new model while preserving ZIP files, versions, SHA-256 identities, preferred state, and Deleted state.
  • Updated ACP Package Catalog — Upload, Preferred, Archive, Restore, Delete permanently, Install, Upgrade, and Downgrade operate within the current catalog.
  • Active / Deleted views — active and deleted packages remain clearly separated.
  • Catalog-scoped identity — package identity now includes the catalog, product, version, and SHA-256.
  • Package Catalog Contract v2 — a new public integration contract for other add-ons.
  • Full catalog traversal — Catalog → Product → Version → Exact Package.
  • Product Access integration — provides a stable package-selection boundary for [MAG] Product Access and future MAG add-ons.

Fixes & stability:
  • Fixed the previous overlap between Package Catalog and Custom Catalogs — they are now separate independent systems.
  • Fixed global package identity handling so the same product/version can exist correctly in different Package Catalogs.
  • Fixed duplicate and identity-conflict detection so catalog scope is taken into account.
  • Fixed Preferred version handling so it is scoped to the correct catalog and product.
  • Fixed ACP package operations so they cannot accidentally act on a package owned by another catalog.
  • Added a safe upgrade and migration path for existing stored packages without losing or unnecessarily rewriting ZIP files.
  • Corrected the Package Catalog integration model so consumers no longer need to depend on ACP Enhancements internal tables, entities, or storage paths.
  • Strengthened package identity and SHA-256 validation during package resolution and use.
  • Improved handling of missing, deleted, or unavailable packages with predictable fail-closed behavior for integrations.

This update establishes a stable Package Catalog foundation for deeper integration between MAG products without duplicating ZIP packages or exposing ACP Enhancements internal implementation details.
Version 1.1.0 is a substantial update focused on package management, safer add-on administration, improved Debug workflows, and a public package integration contract for other XenForo add-ons.

Package Catalog
  • Added a dedicated Package Catalog page inside ACP Enhancements.
  • Store multiple versions of the same add-on package in one managed library.
  • Mark one stored version as Preferred.
  • Added separate Active and Deleted package views.
  • Added safe package deletion: deleted packages keep their stored archive and durable package identity until permanently removed.
  • Added Restore for deleted packages.
  • Added Delete permanently for packages already in Deleted state.
  • Package removal now deletes the stored archive before removing its catalog record, preventing orphaned state.
  • Added clear Installed / Install / Upgrade / Downgrade states for stored versions.
  • The currently installed XenForo version is used to determine the correct available action.
  • Installing the same version again is rejected instead of unnecessarily reinstalling it.
  • Added controlled downgrade support using XenForo's native lifecycle: uninstall the current version first, then install the selected older package.
  • Downgrades always require confirmation.
  • If uninstall fails, the older version is not installed.
  • If the older installation fails after uninstall, ACP Enhancements reports the failure instead of pretending a rollback occurred.

Package uploads and storage
  • Added reliable multi-file package upload.
  • Multiple ZIP files are processed sequentially with individual results.
  • Upload progress is visible directly on the Package Catalog page.
  • Fixed an issue where selecting multiple ZIP files could result in only one archive being processed.
  • Fixed JSON response handling that could incorrectly report a successful upload as Upload failed.
  • Older valid add-on archives can now be stored in Package Catalog even when their version is lower than the currently installed version.
  • Native XenForo archive structure and requirement validation is still preserved.
  • Added Add to PC for an add-on available on disk but not installed.
  • Added Move to PC to move a locally built add-on package into Package Catalog.
  • Move removes the original source package only after the stored package has been materialized and its SHA-256 has been verified.

Package Catalog interface
  • Reworked Package Catalog into a compact XenForo-native management interface.
  • Added collapsible add-on package groups.
  • Added separate package-count badges for each add-on.
  • Improved alignment of package headers, disclosure controls, row actions, and installed state.
  • Package actions now stay aligned consistently on the right side of each row.
  • Added an always-visible operation status area with a Ready idle state.
  • Package operations remain on the current page instead of unnecessarily redirecting the administrator.
  • Added selectable Continue on error and Stop on first error policies.
  • The selected error policy is persisted and used by the actual queue operation.
  • Added selection-aware Apply selected versions and Delete selected actions.
  • Selection-dependent controls are visibly disabled until at least one applicable package is selected.
  • Fixed stale disabled tooltips after a package becomes selected.
  • Delete controls are muted while unavailable and return to the destructive warning color only when active.

Add-on selection and catalog organization
  • Added Add selected to catalog and Remove selected from catalog.
  • Catalog actions preserve the exact selected add-on IDs when their dialog opens.
  • Added clear dedicated dialog titles for adding and removing selected add-ons.
  • Catalog submit actions remain disabled until a valid target catalog or new catalog name is provided.
  • Existing-catalog and new-catalog selection are now mutually unambiguous.
  • Selection-dependent Actions menu entries are visually disabled when no applicable add-on is selected.
  • Installed-only and installable-only actions keep their separate eligibility rules.
  • Added a single menu hint explaining that add-ons must be selected before applicable actions become available.

Debug Session improvements
  • Debug selection-dependent actions now require an explicit current add-on selection.
  • Fixed false The debug session changed in another surface errors caused by empty selections.
  • Fixed same-page Debug session-version synchronization after successful actions.
  • Multiple consecutive Debug actions can now be performed from the same page without unnecessary reloads.
  • True stale-session protection between different surfaces remains enforced.
  • Improved selection state for:
    • Set/update Isolation set
    • Disable selected
    • Disable all except selected
    • Cumulative: next
    • One-by-one: next
  • These controls remain disabled until at least one valid add-on is selected.
  • Added clear disabled-state tooltips for selection-dependent Debug controls.

Safer ACP Enhancements self-management
  • ACP Enhancements can no longer accidentally disable itself from inside its own administration interface.
  • Self-protection covers disable, uninstall, delete-files, Debug isolation, sequential Debug actions, and package install/upgrade/downgrade paths that could interrupt the running ACPE interface.
  • Fixed the failure where Disable all except selected could disable ACP Enhancements itself and leave the page with an invalid route.
  • When ACP Enhancements is included together with other targets, the administrator can choose Exclude ACPE and continue.
  • When ACP Enhancements is the only destructive target, the action is blocked inside ACPE.
  • A direct link to XenForo's native Add-ons page is provided for administrators who intentionally want to disable, uninstall, or otherwise manage ACP Enhancements itself.
  • Backend protection remains active even if the browser-side protection UI is bypassed.

Restore workflow
  • Renamed Restore session to Restore original state.
  • Renamed Restore except isolated to Restore, keep isolated disabled.
  • Added explanatory tooltips describing exactly what each restore action does.
  • Both restore operations now run directly on the ACP Enhancements page through XHR.
  • Restore operations use the existing progress/status area instead of navigating to an intermediate processing page.
  • The interface shows an active indeterminate state while restore is running.
  • After restoration, the add-on list is reconciled and Debug controls are updated automatically.
  • A successful restore ends the current Debug Session as expected.
  • Legacy isolation state can no longer cause ACP Enhancements itself to be disabled during restore.

Public Package Catalog Contract v1
  • Added a supported same-install PHP integration contract for other XenForo add-ons.
  • Added public package discovery and registration through PackageCatalogGateway.
  • Consumers can register a package, resolve a durable package identity, list stored versions, read the preferred version, and temporarily materialize package bytes.
  • Durable package identity uses provider + add-on ID + version ID + SHA-256.
  • Package IDs remain optional local hints and are not part of durable identity.
  • The same add-on/version with different package bytes is reported as an identity conflict instead of silently replacing the stored package.
  • Materialized packages are provided through temporary verified files without exposing ACP Enhancements' permanent storage paths.
  • The public integration contract does not require an ACP administrator session.
  • The contract does not expose private entities, database tables, repositories, or internal package paths.
  • The public contract does not install, upgrade, delete, or change the preferred package version.

Reliability and UX fixes
  • Fixed Package Catalog row refresh URLs that could incorrectly inject the ACP Home page into the package list.
  • Improved Package Catalog row refresh and selection synchronization after Preferred, Delete, Restore, upload, and queue operations.
  • Added clipboard fallback support for Error Watch Copy and Copy selected when the browser Clipboard API is unavailable.
  • Improved compact toolbar, action alignment, button sizing, package state presentation, and XenForo-native visual consistency.
  • Preserved XenForo native lifecycle services and validation wherever ACP Enhancements performs add-on lifecycle operations.
Additional fixes and improvements
  • Fixed upgrades from previous versions so required database changes are applied correctly during the standard XenForo upgrade process.
  • Added queue history retention controls with safe cleanup of completed operations.
  • Fixed concurrent Debug Session state changes and stale-action handling.
  • Fixed permission-denied handling for Debug actions to use the standard XenForo response.
  • Fixed Package Catalog AJAX/JSON responses for uploads, row refreshes, and package actions.
  • Fixed an issue where the ACP home page could appear inside the Package Catalog instead of the package list.
  • Fixed Continue on error / Stop on first error policy selection for batch installs.
  • Improved alignment and consistency of ACP headers, buttons, icons, and controls.
  • Improved overall stability and consistency of Package Catalog, Queue Center, and Debug tools.
What's new in version 1.0.4
  • Frontend Debug tools — administrators can start and control a Debug Session directly from the frontend staff bar without leaving the current page.
  • Compact inline Debug toolbar — the main operations now use concise, human-readable labels: Targets, Isolate, Disable, Keep only, Next set, Next one, Restore, Restore rest, Undo and End.
  • Clear Debug state — opening the toolbar changes Debug to Close Debug and gives it an active state. Closing the toolbar does not end the Debug Session.
  • Debug command information — a fa-circle-info Info menu at the end of the toolbar provides a compact explanation of every available Debug action.
  • First-use Debug introduction — an informational dialog explains the workflow before the first use and can be dismissed permanently for that administrator.
  • Desktop-only Debug workflow — Debug tools are intentionally hidden on mobile devices in both the frontend and ACP.
  • Global Error Watch — Errors is available in both ACP and the frontend and uses the same native XenForo error log and shared per-administrator seen state.
  • Compact Error Watch dropdown — the error list scrolls independently while the footer remains permanently visible.
  • Minimal error footer — Selected, Copy selected, Rows and Open error log are presented on one compact line with subtle separators.
  • Miniature row-count control — the large standard selector is replaced by a compact Rows menu with 5, 10, 20, 50 and 100 options.
  • Full error log without leaving the page — Open error log provides a read-only overlay with pagination and error details.
  • Global ACP shortcuts — configured custom shortcuts are available from the ACP header while contextual Add-ons controls remain limited to the Add-ons workspace.
  • Improved installed add-on filtering — State is now a dedicated selector beside Group and Sort for quick access to All, Enabled, Disabled and Pending add-ons.
  • Collapsible workspace sections — Installed add-ons, Package catalog and Install selected packages can be collapsed directly from their section headers.
  • Improved package workflow — the local Package catalog keeps validated add-on ZIP packages, while Install selected packages processes selected packages through the existing ACPE queue.
  • Cleaner ACP header layout — ACPE shortcuts, Errors and contextual Add-ons controls are kept together without mixing them into XenForo's native header controls.
What's new in version 1.0.3
  • Improved Add-ons page lifecycle actions so Enable, Disable, Build and Uninstall can update in place without unnecessary redirects.
  • Added convenient post-install actions to install another archive or return directly to the ACPE Add-ons page.
  • Refined the operation progress bar to better match XenForo ACP styling and prevent semantic colors from visually blending during status changes.
  • Completed operations now remain at 100% for 8 seconds, then smoothly return to 0% over 3 seconds before entering the muted last-operation state.
  • Expanded Recently installed add-ons from 5 to 8 historical events.
  • Added same-page Enable, Disable, Uninstall and eligible Delete files actions to recent installation history without turning it into a second current-state add-on list.
  • Added an option to disable the separate ACPE install-result redirect and remain on the main Add-ons page with live operation progress. Existing install-result behavior remains the default.
  • Made Error Watch available across ACP pages instead of only during an active debug session.
  • Error Watch now keeps both new and previously seen errors visible, with previously seen entries shown in a muted style.
  • Error seen/unseen state is tracked separately for each administrator.
  • Added a configurable Error Watch dropdown size, with 10 entries shown by default.
  • Fixed long error messages, stack traces and request data overflowing Error Watch popup and overlay windows.
Back
Top Bottom