Fix #64: pr.json CAS retry field-merge #67
No reviewers
Labels
No labels
actions
bug
cli
duplicate
enhancement
fork
forum
git storage
help wanted
insights
invalid
issues
moderation
oidc
ownership transfer
packages
pr/merge protection rules
projects
pull requests
question
releases
sponsorships
tags
webhooks
wiki
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
crueber/walhub!67
Loading…
Reference in a new issue
No description provided.
Delete branch "fix/issue-64"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Fixes #64 (follow-up from #59 audit): savePR CAS-retry wholesale *cur = *p could clobber a landed merge outcome, and refreshHead / merge-commit saved stale structs under fresh versions with no 412 at all.
Each pr.json writer now re-applies only its owned delta onto the fresh doc (UpdatePR: body; refreshHead: head sha/stamp; merge: outcome fields); the savePR retry field-merges with a monotonic write-once guard on merged/*. New prcas_test.go interleavings fail pre-fix, pass post-fix. Docs: features/03 §2.3 + Decisions entry.
Tests: go test ./internal/pulls/ -race green; new race tests -count=20 green; cover 97.7% (>=95%). No new imports; merge success path unchanged.