Releases: Citation-Media/wp-ssh-bridge
Releases · Citation-Media/wp-ssh-bridge
Release list
v0.6.0
Added
- Block the widely used remote management plugins during pulls: ManageWP, MainWP, InfiniteWP, and WP Umbrella. They report the site to an external dashboard and accept instructions back, so a development copy shows up alongside the real ones and can be updated or backed up from there by mistake.
- Block the widely used image optimization plugins during pulls: Smush, Imagify, EWWW, ShortPixel, Optimole, TinyPNG, Robin, and reSmush.it. They optimize through a third-party service with the production account's credentials, so on a development copy they spend the client's quota on images nobody will see. Optimizers that convert locally are deliberately left alone.
- Add wp-env (
@wordpress/env) support as a third runtime mode. The CLI detects a wp-env project from.wp-env.jsonor.wp-env.override.json, readswp-env status --jsonfor the local URL and install path, and runs local WP-CLI throughwp-env run cli. Database dumps are staged inside the tree wp-env mounts at/var/www/htmlso the import runs against the container database instead of an unreachable host connection. - Warn before a file pull when
.wp-env.jsondeclaresplugins,themes, ormappings. Those bind mounts shadow the host WordPress tree, so files pulled into them never reach WordPress.
Changed
- Rename the
migratecommand toclone. The target database settings move with it: the config keysmigrate_db_host,migrate_db_name,migrate_db_user,migrate_db_password, andmigrate_db_prefixbecomeclone_db_*, and theWP_SSH_MIGRATE_DB_*environment variables becomeWP_SSH_CLONE_DB_*. The old command name, keys, and variables are no longer accepted; runningmigrateprints a hint pointing toclone. Update saved.wp-ssh.yamlfiles and automation. - Preserve the local
wp-config.phpduring pulls in wp-env mode, as in standalone mode. wp-env generates it with working local database credentials and rewrites it on every start, so its URL constants are left untouched. - Reject
migratein wp-env projects, matching the existing DDEV restriction. The import would otherwise go to the container database instead of the injected target credentials. - Resolve the project root for
plugins removein wp-env projects instead of failing with a DDEV-only lookup error. - Gate runtime detection behind filesystem markers so
ddev describeno longer runs in projects without.ddev/config.yaml, and route every path and WP-CLI helper through the mode detection resolved, so a pinned integration is honored consistently. - Reject
pushin wp-env projects. The local WordPress tree is wp-env-managed and its mounted plugin, theme, and upload directories are empty on the host, sorsync --deletewould erase them on the target. - Require
.wp-env.jsonor.wp-env.override.jsonto enter wp-env mode. A project-localnode_modules/.bin/wp-envis present in any repo listing@wordpress/envas a dev dependency and no longer flips the runtime. - Resolve the wp-env WordPress root from the generated
docker-compose.ymlso acoreentry in.wp-env.jsonis honored instead of assuming<installPath>/WordPress. - Fail instead of falling back to standalone mode when a wp-env project's environment cannot be probed, which previously pointed the local WordPress root at the repository itself.
- Skip blocked-plugin cleanup when
.wp-env.jsondeclares mounts, sincewp plugin deleteruns inside the container where those mounts are the user's source tree. - Remove the staged database dump after a successful import and write a deny-all
.htaccessbeside it; in wp-env mode the scratch directory is inside the tree served over HTTP. - Stop persisting a one-shot
--integrationflag orWP_SSH_INTEGRATIONvalue into the project config file. Onlyinit --integrationwrites it. - Limit the
integrationpin lookup to the project that owns a config file, so an unrelated ancestor.wp-ssh.yamlno longer pins nested projects. - Prompt for missing pull/push values in every non-DDEV mode, not only standalone.
- Exclude wp-env bind-mounted plugin, theme, and mapping paths from file pulls, derived from the generated
docker-compose.yml. Pulled files there would be shadowed by the mounts, andrsync --deleteagainst a live mountpoint can fail. - Stop wp-env detection at the first directory that is a project of its own, so an ancestor
.wp-env.jsoncannot hijack a nested DDEV or standalone project. - Resolve wp-env status from subdirectories and explicit
--project-rootvalues by walking up to the project root, and bound thewp-env status --jsonprobe with a timeout. - Register
--integrationonplugins removeanddomainsas well, and name the DDEV alternative in the wp-env-unreachable error when the repository also carries a DDEV config. - Add an
integrationconfig key,--integrationflag, andWP_SSH_INTEGRATIONenvironment variable to pin the runtime toddev,wp-env, orstandalone. A pin is strict and fails rather than falling back to standalone mode, which would sync into a different local WordPress root.
Full changelog: v0.5.3...v0.6.0
v0.5.3
A maintenance release that carries no functional change to the CLI.
It exists to exercise the release pipeline in the rebuilt repository: the cross-platform build matrix, the version-free asset copies that make releases/latest/download/ a permanent link, and the npm wrapper. The binary is identical in behaviour to v0.5.2.
Use v0.6.0 or later.