To be fair, they supported two different git backends, one of them being go-git which was the one corrupting repositories. However, it was never enabled by default, you specifically had to build Forgejo with a specific tag to instead use that as the backend. If you just built normally or pulled ready-made containers or bins then it was always the default git backend.
It’s by design as mentioned in this bug report.
There is a hidden config to cap the over magnification on shake
[Effect-shakecursor] OverMagnification=0