Fix #75: atomic-or-recoverable org creation #84
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!84
Loading…
Reference in a new issue
No description provided.
Delete branch "fix/issue-75"
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 #75 (codex major): a failed org creation left an irrecoverable ownerless namespace (org.json reserved, members.json write failed, retries 409 forever).
Atomic-or-recoverable CreateOrg (internal/identity/orgs.go):
Concurrency note (hazard + avoidance) on CreateOrg; store CAS is the only lock, no new mutexes.
Tests: new internal/identity/orgs_recover_test.go — fault-injected members write (fails pre-fix: reservation left behind, retry 409s; passes post-fix: retry binds owner), failed-rollback heals via resume, crash residue, ownerless roster, rival-409-keeps-roster, idempotent owner, stale-members both ways, corrupt roster, 16-way concurrent-create one-winner. http_test.go dup-org updated to the idempotent contract. internal/identity: gofmt/vet clean, go test -race green (incl. race test x10), coverage 97.3% (gate >=95%). Doc 01 Decisions entry appended (law 12).