What is a phrase or a word for someone who says "I knew that would happen" after the fact?
You can call this person a day late and a dollar short.
This is different from hindsight, which is the ability to describe things in the past and only bring them up in the future.
A person who is a day late and a dollar short may certainly have been aware of some important fact prior to or during the time when sharing that information would be helpful. But the fact that the person doesn't share makes their offering the information after the fact essentially useless.
A person with hindsight (or someone who is a Monday morning quarterback) doesn't necessarily know anything useful when it matters. That person is only able to pretend to be knowledgeable and aware afterwards.
A more literal, less idiomatic phrase might be too little, too late.
Here is an example of a day late and a dollar short in use:
I knew you would get stuck on the sand bar at low tide when you told me you were arriving this afternoon.
Well, as usual, you are a day late and a dollar short. It would have helped a lot if you had told us that when we were talking to you this morning.
Captain Hindsight
(I knew it the whole time.)
Using a sports pun that person would be a "Monday Morning Quarterback".