Do random forests use weak learners (like XGBoost) or fully grown trees? So it sounds like boosting techniques (eg. XGBoost) uses weak learners (stumps) to gradually learn sequentially. This is not in dispute I hope.
However, with bagging techniques (eg. Random Forest) I'm not sure if it grows weak learners (like stumps) in parallel, or fully grown trees in parallel? Since the definition of "Ensemble modeling" is using many weak learners to form 1 powerful model, I'm leaning towards Random Forests using stumps, but I can be swayed the other direction as well?

The original motivation for random forests is to make decision trees less overfit, and in that sense fully grown trees are the expectation.  However, in practice I find that some pruning still provides a benefit.
Stumps are quite unlikely to be optimal though.  Unlike boosting, where each subsequent tree improves upon the current fit, bagging weak learners doesn't let them learn from each other.  Most likely you'll end up with lots of the stumps being exactly the same: their bags just aren't different enough from each other to choose different splits.
