Skip to content

[codex] Cover stale usermeta semantic references#172

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

[codex] Cover stale usermeta semantic references#172
adamziel merged 1 commit into
trunkfrom
codex/usermeta-semantic-validator

Conversation

@adamziel
Copy link
Copy Markdown
Contributor

What it does

Adds a focused WordPress semantic validator regression for wp_usermeta.user_id references. The fixture covers a source branch deleting a user while the target edits scalar and JSON usermeta rows that still point at that user.

Rationale

wp_usermeta.user_id is a WordPress object edge into wp_users. A row-level merge can preserve target metadata edits and apply the source user delete, but that leaves orphaned user metadata unless a semantic validator reports the stale owner for review.

Implementation

The new discovered validator scans usermeta rows with user_id > 0, verifies the referenced user row still exists, and emits plugin-wp-usermeta-missing-user findings. The test asserts that the user delete remains staged, target scalar and JSON metadata edits remain visible, and plugin audit output identifies the missing user, stale user_id field, and JSON metadata row.

The merge reliability matrix now records usermeta reference coverage alongside existing post author, post parent, menu, taxonomy, media, comment, and option reference coverage.

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 6c92c3a into trunk May 16, 2026
5 checks passed
@adamziel adamziel deleted the codex/usermeta-semantic-validator branch May 16, 2026 13:54
@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.
mokagio added a commit that referenced this pull request May 18, 2026
Build #172 failed with `rustup: The term ... is not recognized` after
the `cargo` `Get-Command` check returned truthy:
the agent has some `cargo.exe` on PATH (possibly chocolatey) without a
matching `rustup`,
so the install branch was skipped and the immediate `rustup target add`
line threw.

Drop the conditional and let rustup-init run every time;
it's a no-op when the toolchain is already in-place,
and the explicit `%USERPROFILE%\.cargo\bin` prepend ensures the
rustup-managed `cargo.exe` wins over any prior install on PATH.

---

Generated with the help of Claude Code, https://claude.com/claude-code

Co-Authored-By: Claude Code Opus 4.7 (1M context) <noreply@anthropic.com>
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