Cover WooCommerce duplicate address semantics#325
Merged
Conversation
128fd61 to
1d6a0e2
Compare
Contributor
Author
|
Rebased onto current trunk after #324. Local verification after rebase:\n\n- |
1d6a0e2 to
d9bc667
Compare
Merged
adamziel
added a commit
that referenced
this pull request
May 18, 2026
## Release `v0.1.35` Version bump and release metadata update for `v0.1.35`. **Changelog draft:** * Extend merge revalidation and WordPress semantic guards ([#313](#313)) * Add Events Calendar-shaped merge smoke coverage ([#318](#318)) * Extend semantic E2E with Site Editor objects ([#317](#317)) * Add thin SSH remote clone command ([#315](#315)) * Update release gate evidence for v0.1.34 ([#319](#319)) * Guard plugin children behind logical identity collisions ([#320](#320)) * Hold case-insensitive upload path collisions ([#322](#322)) * Cover scoped crash recovery ([#323](#323)) * Hold malformed attachment metadata shapes ([#324](#324)) * Cover thin remote clone branch metadata ([#326](#326)) * Cover source-added trigger view dependencies ([#321](#321)) * Cover WooCommerce duplicate address semantics ([#325](#325)) * Cover Events Calendar organizer validator semantics ([#327](#327)) * Cover Elementor widget media validator semantics ([#328](#328)) * Reject duplicate attachment upload metadata rows ([#329](#329)) * Cover existing branch Git update crash recovery ([#330](#330)) * Mark WordPress media repairs review-only ([#331](#331)) * Cover backup attachment metadata drift ([#332](#332)) * Limit release verification for COW-only PRs ([#335](#335)) * Batch merge reliability roadmap coverage ([#336](#336)) * Cover WordPress upload MIME drift ([#333](#333)) * Add branch merge history commands ([#334](#334)) * Show restored stale-audit reviews ([#337](#337)) * Cover Yoast duplicate indexable permalinks ([#338](#338)) * Cover Yoast indexable hierarchy drift ([#339](#339)) * Cover revision parent semantic drift ([#340](#340)) * Expose merge history in branch switcher ([#341](#341)) * Cover ACF relationship validator drift ([#342](#342)) * Show merge history on branch admin page ([#343](#343)) * Drill into conflicts from branch admin history ([#344](#344)) * Expose branch tree on admin page ([#345](#345)) * Resolve conflicts from branch admin page ([#346](#346)) * Document conflict review workflow ([#347](#347)) **Full changelog:** v0.1.34...release/v0.1.35 ## Next steps 1. **Review** the changes in this pull request. 2. **Push** any additional edits to this branch (`release/v0.1.35`). 3. **Merge** this pull request to publish `v0.1.35`. Merging will automatically build ForkPress binaries, create a GitHub release, and update the Homebrew formula. Co-authored-by: Codex <codex@openai.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What it does
Adds focused WooCommerce HPOS plugin-validator coverage for duplicate address types on the same order. The test now models both branches independently adding a
billingaddress for order20and verifies the merged state is held for review asplugin-woocommerce-hpos-duplicate-address-type.Rationale
Generic SQLite merging can preserve all three rows because their IDs differ, but WooCommerce semantics expect one address per
order_id+address_type. This is exactly the kind of plugin-owned invariant ForkPress needs validators to catch instead of auto-accepting as coherent.Implementation
The WooCommerce HPOS test validator now groups
wp_wc_order_addressesbyorder_idandaddress_type, skips missing-order cases already covered by existing checks, and emits a plugin conflict with structured logical identity:{"plugin":"woocommerce","kind":"order_address_type","order_id":20,"address_type":"billing"}The regression asserts the audit payload includes the base, source-created, and target-created address candidates.
Testing instructions
Ran locally after rebasing onto current
origin/trunk:make test-cow-plugin-validatorpassed with 423 assertions.