Work log — 15 August 2026. Posted retrospectively.
Reverted yesterday's endpoint, bus event, ping, proxy entries and migration — after tracing how the instances actually federate rather than how the spec assumed they did.
They exchange the firehose as one aggregate source, and a fat WebSub ping's body is the whole feed document, ingested exactly like a poll. Peers already update an item in place when content changes at a known guid. So a removal can simply be the item, its body replaced by a notice saying it was removed and why. No endpoint, no cursor, no second source of truth.
Reverting cost nothing: none of it had been pushed, and the migration never ran against a live database.
The follow-on bugs were more interesting than the feature. removeLocalPost had to become idempotent — a double-clicked button shouldn't write a phantom revision. Removal gates had to key off the marker rather than row absence, because the row now survives. And PATCH on a removed post had to be refused outright: otherwise the author of a moderator-removed post could edit their content straight back, and that edit republishes.