For everyone thinking about Sansa's motivation to not tell Jon about the Knights of the Vale. My take on it is the following.
Sansa knows Jon very well, but she thinks the risk of telling him is still to high, because he would have to absolutely not tell anyone, which she isn't 100% sure he would agree upon.
Not only would Jon have to not tell anyone, he also would have to start the battle before the Vale knights arrive and basically sent most of his men to die as if he didn't know reinforcements are coming.
And here we are at the start again, Sansa knows Jon, she knows that he would never be able to give up on Rickon and probably would also not sent most his men to certain death.
Now you might say the same thing Jon would have probably demanded, wait for the knights of the vale and have an more even fight with Ramsey, sounds like the most reasonable thing to do right?
No. The element of surprise is the only thing winning the battle for the Starks. For one Ramsey could otherwise adjust his tactics, and it would maybe be a 50/50 who would win, but the way more likely and problematic outcome is the following:
This isn't some battle in the middle of nowhere, this is the battle of Winterfell. The only reason this battle is even talking place on this battlefield is that Ramsey knows that there is no way he would lose it. But if the Knights of Vale would also be there, why would he still fight that battle? He would never fight a fight with an uncertain winner, he would just take his forces back into Winterfell and let them try their luck with a siege wich they would have no chance of winning.
That is why Sansa can take absolutely no chances in telling anyone about the reinforcements, the risk is just to high. This information gets to Ramsey, it's over. And Jon is just to much of good guy as that she could be sure that he would accept that.
She also has no interest in Jon dying, that i'm sure about. Does she put him at a great risk and gamble with his life. Absolutely, but that are the stakes she has to take.