We currently discard a pending operation when we see it in a block.
But, there may be reorgs. The relay should keep sending it until we see a block at level N+2 and block at level N has the transaction included.
Tenderbake has 2 level finality, so existence of a N+2 block implies that the block N is final.
There is no impact on privacy: when we see a block at level N, others can see it.
There are 2 ways to implement: either ingest every block and tag them internally as pending/final/uncle(you need to watch for parent-child relationship), or query the block at level N-2 whever you see a block level N.