I propose a counterargument, and say that all three examples you provided are correct, and they all have to do with a specific time.
Allow me to clarify: didn't is used for specific times, yes, but this means that any event which has occurred applies. When you say you
"didn't see that coming"
you are referring to some specific event, whatever "that" is the representative pronoun for. "That" happened, and therefore happened, and stopped happening, at some measurable time. The same goes for
"What did you do yesterday?"
because yesterday is a specific, measurable time. Where I believe you are coming from is the belief that a "specific time" must be a small amount of time, but this is not necessary in this situation. Even if the time is less specific, as with
"you showed me how to use them."
While it is not specified when this person showed you, and it is implied that it was probably over a length of time, that period is specific and somewhat measurable. Indeed, there was a definite beginning and end, though it is probably difficult to pinpoint by memory.
Now, what are some examples where "haven't" works better? Generally speaking, I'd say it better fits hypotheticals, or things that have not yet occurred.
I know that him and I have been dating for a while, but I swear we haven't done anything!
My kids haven't skipped a single class in all their lives.
I haven't drank in 20 years!
That last one may seem a tad confusing, but take note that the specific time mentioned is not the focus, but rather the absence of occurrence within that time frame.