v0.4.0
This release cuts the control channel over from the Novamira MCP to the Kntnt Extractor REST API (ADR-0016, ADR-0017). Breaking: production now requires the Kntnt Extractor plugin (REST API version ≥ 2) and an Application Password in place of the Novamira MCP server.
Changed
- The control channel is now the Kntnt Extractor plugin's REST API instead of the Novamira MCP
execute-phpchannel.cloneandpullreach production over HTTPS as a real WordPress user authenticated with an Application Password (HTTP basic auth), and every data call is gated on both thekntnt_extractor_operateandmanage_optionscapabilities. Production now requires Kntnt Extractor (REST API version ≥ 2) installed and enabled in place of the Novamira MCP server; there is no arbitrary PHP or WP-CLI execution and no SSH path (#24, ADR-0016, ADR-0017). - Discovery is now a two-phase reconstruction over that surface:
GET /environment,GET /tables, and the pagedGET /filessupply the runtime, table, and file facts, and a cheap bootstrap extraction — parsed client-side — supplies the attachment metadata, entity counts, and mass-send poised-campaign scan that shape the main extraction, replacing the single server-sideexecute-phpdiscovery scan. - The extraction, per-segment sealing, one-time download link, and cleanup are now owned by the plugin's own background job; the engine only builds the selection, submits it, polls the job to completion, downloads, and unseals the sealed container to the run's ephemeral X25519 key pair. Data comes down sealed under authenticated encryption rather than a passphrase-encrypted archive, so no passphrase is ever generated or web-served, and the database password and the auth keys/salts/nonces are masked server-side and never enter model context.
- The
mkwpskill now recommends installing Kntnt Extractor by default on a freshly scaffolded site — resolvingkntnt-extractor-*.zipfrom the plugin's latest GitHub release, with a graceful drop on failure — so the new site is already reachable by a laterclone/pull. - The required CLI tool floor is now
uv,jq, andcurl.shasum/sha256sumandopensslare no longer needed: integrity is authenticated encryption verified when the container unseals, and the unseal is auv-run helper withpynaclas an inline dependency.
Removed
- The Novamira MCP control channel and its
execute-php/run-wp-cliabilities, the SSH path, and the entire client-side pack machinery — the generatedpack.sh, the server-side passphrase, theopensslencryption, the outside-docroot working directory, and the docroot download directory — all superseded by the plugin-owned background extraction (#24, ADR-0016, ADR-0017).
Full changelog: https://github.com/Kntnt/kntnt-wp-skills/blob/v0.4.0/CHANGELOG.md