Governor contract: what if Total Voting power changes while proposal is active?

Hey everyone,
I kindly ask for your advise. My Governor contract is going to deal with a situation when Total Voting power changes while a proposal is active. It happens due to environment I have.
What would be the best?

  • Calculate votes only once at the moment of proposal expire;
  • Recalculate after each new vote is done (obviously requires to recalculate every vote done previously);
  • Some other option that I don't see?

Please advise.

Governor will query the voting power at the block when the proposal becomes active, so if voting power changes after that it will have no effect on votes for that specific proposal. The token must keep checkpoints of past voting power. This is done in ERC20Votes, ERC721Votes, and the abstract functionality is also available in Votes.