You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Deferred out of PR #196's review rounds (all verified real, all needing one coherent design pass rather than per-site patches):
Slug normalization (one decision, several sites)
Lock keys normalize the owner slug but cascade predicates and stored repo values do not: a same-slug create and purge do not mutually exclude.
The purge cascade matches only the shortened slug, so child rows stored under a full did:key: owner survive purge, and matching pending sync items stay eligible for dequeue.
Any fix must pick one canonical storage/matching form across lock keys, cascade predicates, and get_repo selection, and handle existing rows (normalizing future writes alone leaves them behind).
Mirror-ingest / writer serialization
create_bounty inserts do not take the normalized slug lock, so authorize-then-insert can straddle the purge tombstone update. The lock shape depends on the normalization decision above.
Cache-publication fencing
A cache-miss acquire can download the archive before purge and publish it after purge removes the row, directory, and archive. Needs cross-process fencing for in-flight downloads.
Canonical policy on sibling survival
Purging a private canonical repo can leave a public same-slug mirror selected by get_repo; the skip-when-sibling-exists guard's sibling lookup needs the same normalization so the canonical policy is preserved.
Activity