What's shipped.

Real bugs, real fixes, in the order they happened. If a release changes what gets stored or how something gets classified, it's here.

1.10.3
Jul 14, 2026
Fix

Packaging cleanup

  • An old nrc-lexicon.json from before the emotion lexicon rename had been quietly sitting in every release since 1.6. Build script now cleans dist/ first.
  • Fix wording in manifest description, the text that shows up in the Web Store listing.
  • Live nudge card delay bumped from 20s to 25s. It's asking for a real decision, so it can wait a beat longer.
1.10.2
Jul 6, 2026
Fix

Fixed a real overcount on Twitter/X and Reddit

Both platforms recycle DOM nodes as users scroll. A post can unmount when it leaves view, then remount as a "new" element the moment user scroll back to it, even slightly. The old dedup logic only checked DOM identity, so a remount got counted again. In testing this pushed scan counts about 30% above what was actually scrolled past.

Added a second check: a short hash of each post's opening text, kept in memory only, never written to disk or sent anywhere. Two unrelated posts that happen to share their first ~120 characters would now register as one duplicate. Rare and a far better trade-off than triple-counting a post because the feed recycled its node.

1.10.1
Jun 28, 2026
Polish

Settings reorganized

  • Appearance is its own section now instead of sitting under Preferences.
  • Digest schedule and daily summary notification merged into one Notifications card.
  • No functional changes, no element IDs touched. Just moved things where they make more sense.
1.10
Jun 20, 2026
Feature

Milestones, custom topics, a local badge

Added

  • Milestones. Calmest week, most diverse week, longest streak, that kind of thing. Won't fire on your first tracked week, needs a minimum post count, shows up at most once a week so it doesn't get annoying.
  • Custom topics. Add your own with a name, emoji, and keywords, on top of the built-in 27. Capped at 10 topics / 40 keywords each. Free tier.
  • "100% local" badge in the popup header and on the digest page.

Changed

  • Settings grouped under headers now: Detection & topics, Stay on track, Preferences.
  • Digest page defaults to the most recently completed week if that week has a fresh milestone attached.
1.9
Jun 2, 2026
Feature

Live widget, Goals, and two bugs worth mentioning

Fixed

  • Scan counts were firing on discovery, not visibility. Posts pre-rendered below the fold got counted the moment they hit the DOM, so Reddit alone could turn 5-10 actually-viewed posts into a scan count of 27. Now shares the same IntersectionObserver as the dwell timer.
  • The "words we couldn't classify" list was surfacing place names, numbers, one-off typos, none of it useful. Added a blocklist and a minimum occurrence threshold.

Added

  • Live in-session widget. Small ambient pill after 3 minutes of real reading. One nudge max per session, only past 25 minutes or during a heavily negative stretch. One click to turn off.
  • Goals / Focus mode. Daily per-platform caps, weekly Doomscroll Index ceiling.
  • Daily summary notification. Opt-in, off by default.

Also

  • Pulled the unnecessary em dashes out of every user-facing string in the extension.
  • Topic dropdowns are custom components now instead of native selects, so the scrollbar doesn't look broken.
  • Onboarding explains pinning before it ever mentions the toolbar badge.
1.8
May 12, 2026
Feature

Archetype trends and a better misclassification fix

  • Weekly archetype delta (Pro). Compares this week against last week on the fly, no extra storage needed.
  • Rebuilt the misclassification detector. It used to ask you to type a word from memory. Now it shows a chip list of frequent words it couldn't place, tap to correct. Still never touches post text, only aggregate word counts.
  • YouTube added to the attention funnel. A watch or Shorts page now counts the same way a feed post does.
1.7
Apr 21, 2026
Feature

Local NLP got a real upgrade

Everything below still runs fully offline. No new network calls, nothing new sent anywhere.

  • Lemmatization. "Investing / invested / investments" all collapse to one root now.
  • Negation detection. "Not interested in politics" stopped scoring as politics.
  • Cross-topic weighting, a word appearing in five topics now counts for less than one unique to a single topic.
  • Emoji-aware sentiment, roughly 150 common emoji mapped by hand.
  • Rebalanced the emotion lexicon. It had way more fear entries than joy entries, so fear started every post with a head start regardless of content. Expanded to ~800 words, spread evenly across all eight emotions.
  • Moved session analytics (count, average length, binge sessions) from Pro to free. It's basic usage data, not worth gating.

Known issue

Sentiment scoring still misreads some hard-news phrasing. "The war has ended and a ceasefire now holds" can still score negative, because "war" is weighted negatively regardless of what's around it. Needs a proper domain-specific lexicon, not a quick patch. Still on the list.

1.6
Mar 30, 2026
Feature

The 864 vs 46 thing, and a bug that was actually breaking topic accuracy

  • The "864 vs 46" number people kept asking about wasn't data loss, it was two different numbers with no labels on them: posts scrolled past vs. posts recorded in detail. The digest only ever showed the second one. Added a breakdown showing scanned, dwelled, and recorded as three separate numbers.
  • Found the actual bug behind repetitive or wrong topics: 15-20% of every topic's keywords were multi-word phrases like "interest rate" or "machine learning", but posts were only ever tokenized into single words. That entire slice of the vocabulary was never matching anything. Fixed by splitting each topic's keywords into words and phrases at load time.
  • Fear and anger were dominating every digest regardless of actual content, because the emotion lexicon hard-codes ordinary news vocabulary (war, crisis, attack) as automatic hits. Emotion scoring is now gated by the post's own sentiment direction, plus a per-post cap so one link-heavy post can't skew a whole week.
  • An outdated JSON import in the sentiment module was silently failing the test suite. Fixed.
  • Expanded from 19 to 27 topics: Automotive, Real Estate, Education, Parenting, Spirituality, Beauty & Fashion, True Crime, DIY & Home.
  • New: local behavioral insights, computed from data already being stored, nothing new tracked. Digital Archetype, Topic Diversity Index, Chronotype, Doomscroll Index (Pro), session analytics, platform mood gap (Pro), streaks.
  • Renamed nrc-lexicon.json to emotion-lexicon.json and started treating it as our own going forward. The full NRC lexicon needs a commercial licence for paid products, and attribution on the 374-word file we'd been shipping wasn't clean either way. Not worth the risk.
  • Toolbar badge recomputes from storage on every check now instead of caching, which used to leave a stale number carrying over into the next week on light weeks (under 5 posts).