v2.1.2July 2026
Important
- If you synced ACF content while running 2.1.1, please update and spot-check non-media ACF fields on the destination. 2.1.1 reconnected ACF image fields to the destination media library, but treated every ACF field as a possible media field, so a relationship, number or date field whose value matched an attachment ID could be rewritten to point at an image. Remapping is now limited to genuine ACF image, gallery and file fields.
Sync accuracy
- A skip import no longer modifies the items it skipped. Skipped pages could be moved to the top level, flattening a page tree, and their media and builder references could be rewritten.
- Widget images, menus and page links survive a cross-site sync. Image, gallery, audio, video, navigation-menu and page-list widgets now reconnect to the destination own media, menus and pages instead of pointing back at the source site.
- Menu items reconnect to their page in any import order. An item whose target page had not arrived yet used to become a hardcoded link to the source site and stay that way.
- Menu theme-location assignments and single-sidebar widget files import correctly, imports no longer erase destination settings that are simply unset on the source, and builder component overrides are no longer wiped.
Workflows and batches
- A failed run no longer reports success. It could previously show a green dialog, return HTTP 200 to a webhook, and exit 0 in the CLI.
- Approvals are bound to the step they were granted for, so editing or reordering a workflow mid-approval can no longer apply that approval to a different step. Approval deadlines are enforced, and scheduled workflows no longer stack up a run every interval while one is still awaiting approval.
- Runs scoped to selected items no longer pull everything on pull steps, Webhook and Shell steps can finally run, and network-level workflows can be edited.
- Interrupted batch jobs no longer stay stuck on Running and block every later job, retry settings now behave as described, a mostly-failed job reports completed with errors, and schedules keep their cadence instead of drifting later on every late cron tick.
Reported by you
- The Bricks Global Classes section no longer times out on large class lists, and Library file hashes are cached between page loads.
- Storage settings no longer show the legacy brickssync-json folder from a stale option on multisite. The display now resolves storage through the same network and site precedence the sync engine uses.
- Migrations: the permanent-delete bulk override can actually be enabled, through an explicit checkbox, the deletion preview is accurate for remote-scoped profiles, and remote pulls skip deletion propagation entirely.
- Bundles and custom sources: bundle imports find their files again, a skip-conflicts import no longer overwrites existing components, and licence keys and API secrets are reliably excluded from custom-source exports.
Security
- The editor Pull action no longer sends the application password when a remote redirects HTTPS to plain HTTP, matching the hardening already applied to the other push and pull paths.
- Bundled ACF field groups can no longer overwrite an existing field group through a mismatched payload.
Quality
- Two full independent code-review passes over the sync engine, the admin surface, workflow and batch orchestration, and every supporting subsystem. The automated suite grew from 583 to 632 tests.