I wonder whether we can use couldn't in this sentence, and if no, why:
She misses her family living abroad. She __ visit them for years, but they just got an e-mail account, so now they can keep in touch daily.
A test I've been solving says one should use hasn't been able to, not couldn't, but I'm not sure why.
One textbook (Downing & Locke) says that we use 'could' for extended actions in the past and 'was able to' for perfective actions, but that in negative phrases this distinction is not obligatory:
He was able to escape. (OK)
*He could escape. (Error)
But:
He wasn't able to escape.
He couldn't escape.
Is it that the words "for years" together with the "but-clause" containing the word "just" stress the "perfectivity" and force us to use the construction (to be able to) better suited for perfective actions?