Skip to content

[codex] Cover stale post_parent semantic references#168

Merged
adamziel merged 1 commit into
trunkfrom
codex/post-parent-semantic-validator
May 16, 2026
Merged

[codex] Cover stale post_parent semantic references#168
adamziel merged 1 commit into
trunkfrom
codex/post-parent-semantic-validator

Conversation

@adamziel
Copy link
Copy Markdown
Contributor

What it does

Adds a focused WordPress semantic validator regression for wp_posts.post_parent references. The fixture covers a source branch deleting a parent post while the target edits child page and attachment rows that still point at that parent.

Rationale

post_parent is a WordPress object edge, not just a scalar column. A row-level merge can legally apply the parent delete and keep target child edits, but the merged state is incoherent unless a semantic validator reports the stale parent reference for review.

Implementation

The new discovered validator scans child posts with post_parent > 0, checks that the parent row still exists, and emits plugin-wp-post-parent-missing-reference findings with the child post ID, post type, field name, and missing parent ID. The test asserts that the parent delete remains staged, target child edits remain visible, and the audit output exposes both the page and attachment children.

The merge reliability matrix now lists post_parent references in the covered WordPress semantic validator evidence.

Testing instructions

php -l tests/cow/wp_semantic_validator.php
make test-cow-wp-semantic-validator
make test-cow-semantic-fast
npm run check
git diff --check

@adamziel adamziel merged commit f6d41b5 into trunk May 16, 2026
5 checks passed
@adamziel adamziel deleted the codex/post-parent-semantic-validator branch May 16, 2026 13:43
@adamziel adamziel mentioned this pull request May 16, 2026
adamziel added a commit that referenced this pull request May 16, 2026
## Release `v0.1.22`

Version bump and release metadata update for `v0.1.22`.

**Changelog draft:**
* Document v0.1.21 release gate evidence
([#162](#162))
* Cover taxonomy menu reference validation
([#163](#163))
* Cover navigation block reference validation
([#164](#164))
* Cover media filesize drift validation
([#165](#165))
* Cover generated media filesize drift validation
([#166](#166))
* Cover missing media metadata validation
([#167](#167))
* Cover stale post_parent semantic references
([#168](#168))
* Cover stale term parent semantic references
([#169](#169))
* Cover stale post author semantic references
([#170](#170))
* Cover stale menu parent semantic references
([#171](#171))
* Cover stale usermeta semantic references
([#172](#172))
* Cover stale postmeta semantic references
([#173](#173))
* Cover stale termmeta semantic references
([#174](#174))
* Cover stale term taxonomy semantic references
([#175](#175))

**Full changelog:**
v0.1.21...release/v0.1.22

## Next steps

1. **Review** the changes in this pull request.
2. **Push** any additional edits to this branch (`release/v0.1.22`).
3. **Merge** this pull request to publish `v0.1.22`.

Merging will automatically build ForkPress binaries, create a GitHub
release, and update the Homebrew formula.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant