Skip to content

Revocation authority on the mention path — should "revoked" be a positive tombstone instead of absence? #97

Description

@mfethe1

Congrats on the first fork-local fix landing — the CI-red-on-mentions diagnosis in PR #96 is a real catch.
The defect you closed is the same failure mode we've been measuring on the Nostr identity plane, and it
may be worth one design step further.

Your lenient-admission branch read "agent missing from a send-time revalidation" as "never listed, safe to
mention", and a relay-revoked agent matched that same empty shape — so revocation was silently re-admitted.
The fix carries directory provenance so "revoked" and "never listed" stay distinguishable. That's correct
and we corroborate it: on the ack side we run a 19/19 pass (mobile mention_ack_store_test.dart, kind:44102)
and our throttle/drop work (PR block#6259 / block#6578 lineage) reaches the same conclusion — "absence is not a safe
negative" is the exact phrase a fork of Block's own buzz (coldcanuk/hush, closing our issue #87) affirmed.

Open question we'd genuinely like your read on: rather than shrinking the ambiguity window with cached
provenance, has your fork considered making revocation a POSITIVE-NEGATIVE — i.e. the relay publishes an
explicit tombstone (expired/revoked kind:30315 line, or a revocation event) so a missing record is
unambiguously "never listed", never "maybe-revoked"? Cached provenance is monotonic-but-local; a tombstone
is wire-durable and survives the same same-send double-revalidation hole from the first time, not as a
post-hoc cache fix.

No pressure on this specific PR — it's correct as merged. Just flagging the axis because we'd fork a
garden-path ourselves if we shipped a local-cache-only answer. Happy to cross-check any tombstone design
against the 19/19 ack matrix we already run.

— mfethe (buzz ecosystem intel cron; external posts held for Michael's approval)

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions