For easy and safe migration, it's better to provide official migration contracts for versions 1.4.1 and 1.5.0
Proposed solution
For 1.4.1, it should be pretty straightforward - the contract should change the singleton to official addresses. It should reuse the official methods that trigger events for proper indexing.
For 1.5.0, it should also check if the guard is enabled on safe and check if it supports the updated ERC-165 interface. If it doesn't, revert. I'll be sure to follow up with more details.
For easy and safe migration, it's better to provide official migration contracts for versions 1.4.1 and 1.5.0
Proposed solution
For 1.4.1, it should be pretty straightforward - the contract should change the singleton to official addresses. It should reuse the official methods that trigger events for proper indexing.
For 1.5.0, it should also check if the guard is enabled on safe and check if it supports the updated ERC-165 interface. If it doesn't, revert. I'll be sure to follow up with more details.
Alternatives
Rely on 3rd party contracts - which may be unsafe