- WordPress:
wp openreceive doctorasks each configured swap provider for its asset list and fails on a named line ("Swap provider <name>") when one does not answer or offers no assets. A set LSC code alone used to pass, so an agent facing a dead provider read the plugin source instead. The gateway's Doctor panel shows the same line. - WordPress:
wp openreceive test-invoicealso lists the methods the order-pay page offers for that invoice: Bitcoin Lightning, then each swap asset with its network, available or with the reason it is not. - WooCommerce agent directions, from an eval run of the 0.4.16 directions that
never finished: nothing about PHP, images or the database before both codes
are in the chat; Step 3 ends setup at
test-invoiceand a clean doctor, says the agent cannot pay the invoice and must not look for a way to, and rules out mail, extra containers and cron. Cron is one sentence of recommendation in the finished message, not an offer, and cron or the notifications worker is set up only when the user asks for it by name. A new non-negotiable keeps every command inside the store: no other project's files, no browser or Playwright, no plugin source. The quickstart gains two Dockerfiles and thebuild:keys for Compose files that run the official images with onlyimage:lines, and marks its wp-admin screens as the path for hosting without WP-CLI. - WooCommerce quickstart and agent directions agree on settlement: a system
cron is a recommendation for low-traffic stores,
wp openreceive notificationsan optional worker, and setup needs neither. The quickstart no longer lists doctor and reconcile, both one-shot commands, as process manager material. An unavailable swap method'stest-invoicereason is the answer: "below the provider minimum" is the test order's amount, and only an unreachable provider sends the agent to doctor. - WordPress: doctor's "Swap provider" line no longer HTML-escapes the
provider's error, which the Doctor panel then escaped again; a
&or<now reads as itself on the CLI and in wp-admin. - WordPress: with a swap provider configured, the default payment title is now “Bitcoin & stablecoins (OpenReceive)”, matching the site's wording. A store that saved the earlier default, “Bitcoin & crypto (OpenReceive)”, follows the new default; a custom title is preserved.
- Refresh development tooling and Angular: Dependabot's dev-tooling group
(Biome 2.5.15, Playwright 1.63.0 with the matching CI browser image, Prisma
7.10.0, ng-packagr 22.2.4, webpack 5.111.1 and others) and Angular 22.2.1,
with the overrides moved together. npm regenerated the lockfile, because
Dependabot's copy left the Rails demo's
@swc/coreunresolved andnpm cifailed. These are repository and demo updates only; published package constraints are unchanged. The checkout CSS toolchain (Tailwind 4.3.2, daisyUI 5.6.16) is held back: daisyUI 5.7 grew the shipped checkout stylesheet from 225 KB to 303 KB with component variants the checkout never uses. The stylesheet stays byte-identical to 0.4.17. Dependabot now ignores the better-sqlite3, webpack-cli and mobx-react majors until the migrations that unblock them. The rootGemfile.lockmoves to Rails 8.1.4. - Agent directions survive a summarizing fetch. Claude Code's web tool handed
an agent 1.6 KB of the 17 KB WooCommerce payload, with Step 0 gone: it kept
code blocks and short bullets and dropped the prose. Every payload now opens,
right under its title, with a code block that states the file's size and
says to download it whole with
curl(skipped when the agent already has the whole file: pasted, read from disk or fetched raw), then "Step 0 in brief": five or six bullets under 120 characters each. BTCPay gets its own list. The raw-fetch sentence they replace is gone. The Non-negotiables of every payload now say not to suggest rotating, revoking or replacing a code because it was pasted into the chat. - The agent-directions URL people paste is now a cover page. The first fix
did not survive: Claude Code's fetch tool rewrote the payload into 1 KB in
its own voice and cut both the download block and most of Step 0 in brief.
So
/agent-directions/<stack>.mdis now about 300 bytes: a title with the release, the full file's size, and onecurl -fsSLline to/agent-directions/<stack>/full.md. The full directions moved there and open with "This is the full file; follow it from Step 0." The copy button,llms.txt, the skills and the agents page use the full file. Site contract v7: covers are kindagent-directions-cover, and each framework row gainsagent_full_pathfor the copy button. A test caps each cover at 400 characters with exactly one curl line, to its ownfull.md.
The matching WordPress/WooCommerce ZIP bundles the 0.4.18 PHP engine and
checkout. Its wp openreceive test-invoice lists the order-pay page's
checkout methods, and wp openreceive doctor checks each configured swap
provider.
Validation: full cross-platform CI and Release Dry Run on the release commit,
WordPress integration (including the swap-provider doctor line and the
test-invoice method list), and Plugin Check. No real invoice or manual
payment was requested.