"I couldn't read that book yesterday but I can read it tonight."
Translation:wa'Hu' paqvetlh vIlaDlaHbe' 'ach DaHjaj ram vIlaDlaH.
Klingon is not SVO but OVS (object–verb–subject)
This sentence is made up of two main clauses or sub-sentences joined by the conjunction 'ach "but".
Each of those two sub-sentences has OVS word order: paqvetlh vIlaDlaHbe' "I could not read that book" is OV and vIlaDlaH "I can read it" is V, neither of which contradicts OVS.
The phrases wa'Hu' "yesterday" and DaHjaj ram "tonight" are time expressions -- not a subject or an object -- and occur at the beginning of a (sub-)sentence.
The order of the two sentences joined by a conjunction is the same as it would be in English, e.g. ABC 'ach DEF is "ABC but DEF", not "DEF but ABC".
This lesson presented me with the following new words (amongst others) DaH : now wa'Hu' : yesterday wa'leS : tomorrow DaHjaj : today
When I got to this question I hadn't heard about DaHjaj yet and so I left it off: wa'Hu' paqvetlh vIlaDlaHbe' 'ach ram vIlaDlaH.
I understand it makes it more clear about the night belonging to today... but if it was left off, as I did, would it be assumed tonight or would I be asked to clarify because I was speaking nonsense?
Duolingo is supposed to never give you a word in a sentence until they have shown you the word alone. But the software is not always reliable.
The difference between ram and DaHjaj ram is exactly like the difference between "I can read it at night" and "I can read it tonight". I think most people would understand that you meant that very night, but that's not actually what you said.