What's New:
Important for developers:
- 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.
- 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
Additional fixes and improvements
- 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.
- 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-infoInfo 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.
We use essential cookies to make this site work, and optional cookies to enhance your experience.