I am part of a non-commercial bazaar-style open source project which is developed and maintained entirely by unpaid volunteers.
A few months ago a new programmer joined our team who is both skilled and prolific. They provide a large number of commits and, contrary to the question "How do I deal with (enthusiastic) contributors who damage more than they help?", their code quality is more than adequate. By any sensible metric, their productivity in the past few months was higher than that of all other contributors combined. They have also taken over some non-programming related maintenance and project infrastructure responsibilities nobody had the time and motivation to do.
Unfortunately, it has lately crystallized that their vision for the project differs quite a lot from that of the other project members. They want to move the focus of the project into a completely different direction than the rest of us.
Lately they even started to remove features from the codebase, which they consider "poorly developed", "unnecessary bloat" or "must be removed before I can remake them much better". To be fair most of these feature were indeed in an unusable state, obsolete or not used by anybody, but their intentions are clear.
How can we as the original founders of the project keep our vision intact without losing this very valuable contributor?