Let's create a new branch, named stable, which squashes all Git history.
We can configure stable to be updated automatically by the CI, and not accept any pushes.
Furthermore, we can set stable as the default branch, but target all PRs towards dev by default, so that cloning is always fast when done naively, but PRs take slightly more work.