1. Negation crosses the break now
People do not write in one block. They write a paragraph, then another one. The feeling can start in the first and land in the second.
Before this fix, Textheat read each block on its own. It saw the word "terrible" and colored it negative. It never saw the "not" sitting one line up. Now the end of one block rides along as context when the next block is read. The highlighting still lands only in the block it belongs to, and the context itself is never highlighted.
The outlook is not
terrible at all.
Before: each block read alone. "Terrible" scores negative, full stop.
The outlook is not
terrible at all.
After: the "not" (underlined) is carried in as context, so "terrible" flips positive. This is an illustration of the shipped behavior, rendered by hand to match what the extension now produces.
The same carry also quiets false alarms. End one block with "not" and start the next with "bad", and the warning color goes away entirely, because together they score under the line. Split negation was the most common way the old reading got a sentence exactly backwards.
2. Reactions wait their turn
Textheat can pop a small emoji next to strong feelings. Bursts are capped, so a busy page stays calm, and only so many requests can wait in line at once.
When that line filled up, new reactions were dropped. Quietly, and for good: a dropped reaction never got another chance, even after the page calmed down. Now overflow waits in a second line and gets promoted as slots free up, on the next scroll or refresh. The caps did not change. The line just stopped eating tickets.
3. Tested in a real browser this time
Most of Textheat's tests fake the browser. That is fine for word scoring. It proves nothing about typing in a real editor, so the extension now has a small suite that runs the real, built thing in real Chromium.
It checks that your cursor stays on the same characters when highlights land in an editor. It checks that text typed with an IME is left alone mid-composition and picked back up when the composition ends. And it checked undo, with an honest result: after highlights land, Ctrl+Z does nothing in Chrome, because the wrap clears the typing undo entry. The text is never scrambled, and the editor keeps working. That is written down and tested now instead of assumed.
Try the real thing
The playground is live and the extension download is on the same page: dominic.balass.one/textheat. Everything runs locally in your browser. Your text is never sent anywhere.