Skip to content

fix(cli): refresh stale repository timestamps - #6282

Open
cwschroeder wants to merge 1 commit into
block:mainfrom
cwschroeder:fix/cli-repo-protect-stale-timestamp
Open

fix(cli): refresh stale repository timestamps#6282
cwschroeder wants to merge 1 commit into
block:mainfrom
cwschroeder:fix/cli-repo-protect-stale-timestamp

Conversation

@cwschroeder

Copy link
Copy Markdown

Problem

buzz repos protect set/remove (und repos bind) schreiben das kind:30617-Update mit existing.created_at + 1. Bei einer Repo-Ankündigung, die älter als 15 Minuten ist, lehnt der Relay das Event mit „event timestamp too far from server time“ ab — Schutzregeln werden dauerhaft unveränderbar.

Realer Ausfall

Ein Buzz-Git-Mirror hing seit über zwei Wochen still, weil sich die require-patch-Regel einer alten Ankündigung nicht mehr entfernen ließ. Erst die lokal gebaute CLI mit diesem Fix akzeptierte den Write in unter einer Minute.

Fix

Stemple das Ersatz-Event mit max(now, head + 1) statt head + 1:

  • head + 1-Boden behält die NIP-33-Monotonie über den beobachteten Head (kein Leapfrogging zwischen parallelen Writern).
  • now-Boden hält den Writer innerhalb des Relay-Driftfensters (±15 min), sodass alte Repos aktualisierbar bleiben.

Mit Regressionstest (stale Head, Update bekommt aktuelle Wall-Clock) und angepasster Monotonie-Assertion.

Hinweis auf parallele PRs

Dasselbe Problem adressieren bereits #2901, #4509, #4363 und #5111. Dieser PR ist inhaltlich identisch gelöst, zusätzlich mit realem Ausfallbeleg aus Produktion (Mirror seit 01.08. auf altem Stand, Fix danach akzeptiert).

Signed-off-by: Christian Schröder <christian.w.schroeder@gmail.com>
@cwschroeder
cwschroeder requested a review from a team as a code owner August 19, 2026 02:57
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