Skip to content

[codex] Cover pre-metadata Git push crash recovery#66

Merged
adamziel merged 1 commit into
trunkfrom
codex/git-push-pre-metadata-e2e
May 16, 2026
Merged

[codex] Cover pre-metadata Git push crash recovery#66
adamziel merged 1 commit into
trunkfrom
codex/git-push-pre-metadata-e2e

Conversation

@adamziel
Copy link
Copy Markdown
Contributor

What it does

Adds a product E2E case for an actual smart-HTTP Git-created branch push where the server is killed at before-created-branch-metadata.

The test restarts ForkPress and verifies the half-published branch is not visible, has no DB/file merge-base artifacts, and has no ID-band or row-identity metadata. It then retries the push with a fresh commit and verifies the branch can publish and merge into main.

Rationale

The lower-level Git server suite already covers this failpoint. The product E2E suite only covered the later after-created-branch-list smart-HTTP crash. This closes the earlier branch-birth boundary where publishing before metadata would make later merges unsafe.

Implementation

Updates tests/cow/e2e.sh with the pre-metadata kill/restart/retry flow and adds failure-log dumps for the new artifacts. Updates the merge reliability docs to map this new product-level evidence.

Testing instructions

bash -n tests/cow/e2e.sh
git diff --check
php tests/cow/git_server.php
npm run validate
make test-cow-merge-smoke

I did not run the full product E2E locally because this checkout does not have a built forkpress binary in target/; CI will run the release-built E2E path.

@adamziel adamziel force-pushed the codex/git-push-pre-metadata-e2e branch from 88f5386 to ce9f2ed Compare May 16, 2026 05:24
@adamziel adamziel merged commit 93e85e1 into trunk May 16, 2026
8 checks passed
@adamziel adamziel deleted the codex/git-push-pre-metadata-e2e branch May 16, 2026 05:42
@JanJakes JanJakes mentioned this pull request May 16, 2026
adamziel pushed a commit that referenced this pull request May 16, 2026
## Release `v0.1.15`

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

**Changelog draft:**
* Fix Homebrew tap update detection
* Document release and install paths
* Document latest aarch64 mac release gate evidence
([#62](#62))
* Harden WP UI nonce E2E helper
([#49](#49))
* Use routed WP helper for E2E post creation
([#60](#60))
* Keep session tokens target-local during COW merges
([#63](#63))
* Cover remote cache branch merge E2E
([#61](#61))
* Add fast COW merge smoke gate
([#64](#64))
* Document latest merge release gate evidence
([#65](#65))
* Cover pre-metadata Git push crash recovery
([#66](#66))
* Document fast COW Git merge gates
([#67](#67))
* Cover Git-created pre-list crash E2E
([#68](#68))
* Cover incomplete generated media metadata
([#69](#69))
* Add focused COW ID-band gate
([#70](#70))
* Add focused COW stale-audit gate
([#71](#71))
* Add focused COW schema review gate
([#72](#72))
* Add focused COW plugin validator gate
([#73](#73))
* Add focused COW filesystem gate
([#74](#74))
* Add focused COW explicit ID gate
([#75](#75))
* Add focused COW branch birth gate
([#76](#76))
* Expand focused COW filesystem gate
([#77](#77))
* Expand focused COW media validator gate
([#78](#78))
* Expand focused COW stale audit gate
([#79](#79))
* Expand focused COW plugin validator gate
([#80](#80))
* Expand focused COW schema review gate
([#81](#81))
* Expand focused COW ID-band gate
([#82](#82))
* Expand focused COW media validator gate
([#83](#83))
* Expand focused COW schema dependency gate
([#84](#84))
* Expand focused COW filesystem symlink gate
([#85](#85))
* Expand focused COW branch birth cleanup gate
([#86](#86))
* Expand focused COW plugin validator contract gate
([#87](#87))
* Expand focused COW explicit ID gate
([#88](#88))
* Expand focused COW stale audit gate
([#89](#89))
* Add focused COW WordPress semantic validator gate
([#90](#90))
* Expand focused COW WordPress semantic validator gate
([#91](#91))
* Expand focused COW WordPress media reference gate
([#92](#92))
* Expand focused COW WordPress image block gate
([#93](#93))
* Expand focused COW WordPress term relationship gate
([#94](#94))
* Expand focused COW WordPress option reference gate
([#95](#95))
* Expand focused COW plugin serialized validator gate
([#96](#96))
* Expand focused COW media unsafe path gate
([#97](#97))
* Expand focused COW branch birth file-base gate
([#98](#98))
* Expand focused COW plain IPK ID-band gate
([#99](#99))
* Expand focused COW schema trigger ordering gate
([#100](#100))
* Expand focused COW stale audit keyless gate
([#101](#101))
* Expand focused COW stale audit missing row gate
([#102](#102))
* Expand focused COW media unsafe path gate
([#103](#103))
* Expand focused COW media duplicate ownership gate
([#104](#104))
* Expand focused COW media invalid metadata gate
([#105](#105))
* Expand focused COW media missing generated-file gate
([#106](#106))
* Expand focused COW plugin JSON reference gate
([#107](#107))
* Expand focused COW media dimension drift gate
([#108](#108))
* Expand focused COW media generated filename gate
([#109](#109))
* Expand focused COW filesystem directory delete gate
([#110](#110))
* Add fast router branch action gate
([#111](#111))
* Expand focused filesystem binary conflict gate
([#112](#112))
* Expand focused branch birth file-base gate
([#113](#113))
* Expand focused explicit ID band gate
* Expand focused media metadata gate
* Expand focused stale audit semantic gate
* Expand focused plugin file validator gate
* Expand focused schema dependency gate
* Expand focused ID-band reuse gate
* Expand focused media metadata gate
* Expand focused filesystem symlink gate
* Expand focused stale audit option gate
* Expand focused stale audit identity gate
* Expand focused schema index gate
* Add focused branch UI test gates
* Expand focused stale audit semantic gate
* Add page merge smoke regression
* Add semantic fast COW test target
* Add WordPress comment reference validator coverage
* Document comment validator finding shape
* Cover plugin validator source evidence drift
* Clarify stale audit plugin and schema boundaries
* Add schema index stale audit evidence
* Add schema object stale audit evidence
* Add schema table restore stale audit evidence
* Add schema table rebuild stale audit evidence

**Full changelog:**
v0.1.14...release/v0.1.15

## Next steps

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

Merging will automatically build ForkPress binaries, create a GitHub
release, and update the Homebrew formula.

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.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