Skip to content

[codex] Merge independently inserted theme mods#210

Merged
adamziel merged 1 commit into
trunkfrom
codex/semantic-e2e-slice
May 16, 2026
Merged

[codex] Merge independently inserted theme mods#210
adamziel merged 1 commit into
trunkfrom
codex/semantic-e2e-slice

Conversation

@adamziel
Copy link
Copy Markdown
Contributor

@adamziel adamziel commented May 16, 2026

What changed

  • Auto-merge independently inserted theme_mods_* option rows when both branches only add disjoint nav_menu_locations entries.
  • Add a focused regression for the ID-banded wp_options.option_name collision shape that the runtime semantic E2E exposed.
  • Add make test-cow-e2e-semantic, a shorter runtime E2E slice that starts a real ForkPress site, runs the WordPress semantic object graph merge, and exits before the long Git/crash/review tail.

Why

The new fast E2E slice reached a real gap: source and target branches can independently create theme_mods_twentytwentyfour rows with different ID-band option_id values but the same option_name. The merge previously treated that as a row unique collision before the existing serialized nav_menu_locations cell merge could apply.

Validation

  • php -l scripts/cow/merge.php
  • php -l tests/cow/merge.php
  • git diff --check
  • php tests/cow/merge.php passed, 2932 assertions
  • make test-cow-semantic-fast passed
  • make test-cow-e2e-semantic FORKPRESS_E2E_BIN=/tmp/forkpress-v0.1.27-linux-x86_64/forkpress reached the semantic merge and reproduced the pre-fix theme_mods_twentytwentyfour conflict in the released binary

Notes

I could not run the post-fix runtime E2E locally because this worktree has no dist/x86_64-unknown-linux-musl runtime bundle, and make forkpress stops until scripts/build-dist.sh has produced the static PHP runtime. CI/release artifact builds should exercise the new E2E target with a freshly embedded runtime.

@adamziel adamziel marked this pull request as ready for review May 16, 2026 17:58
@adamziel adamziel merged commit b1fc82c into trunk May 16, 2026
8 checks passed
@adamziel adamziel deleted the codex/semantic-e2e-slice branch May 16, 2026 17:58
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.

2 participants