v2.12.0

Automattic/harperv2.12.0Oct 1, 2026by github-actions[bot]

Upgrading?

AI Summary

This release introduces new user-facing features for the Chrome Extension and Desktop app, improves linter accuracy with better grammar suggestions, and fixes various bugs across the core engine, editor, and desktop tray icon handling.

Key Highlights

  • Launch of a brand-new Chrome Extension 'Installed!' page.
  • Improved desktop onboarding experience and automatic app addition capabilities.
  • Enhanced linter suggestions for QuoteSpacing and common phrasing corrections.
  • Fixes for macOS icon display issues and Google Docs integration problems.

New Features

  • Chrome Extension 'Installed!' page
  • Desktop onboarding experience
  • Automatic addition of new apps in desktop
  • Suggestions added to QuoteSpacing
  • Show deltas on graphs in web
  • Loading state for report buttons in Chrome extension
  • Capture range for SequenceExpr in core

Full Release Notes

## What's Changed
* feat: flag redundant "almost" + "nearly" by @hippietrail in https://github.com/Automattic/harper/pull/4408
* fix(desktop): only update the tray icon when the service state changes by @willherr72 in https://github.com/Automattic/harper/pull/4017
* build(deps): bump pnpm/action-setup from 6.0.10 to 6.1.0 in the actions-minor-patch group across 1 directory by @dependabot[bot] in https://github.com/Automattic/harper/pull/4382
* feat(web): brand-new Chrome Extension "Installed!" page by @elijah-potter in https://github.com/Automattic/harper/pull/4419
* feat: condensated → condensed by @hippietrail in https://github.com/Automattic/harper/pull/4439
* feat: adds suggestions to `QuoteSpacing` by @hippietrail in https://github.com/Automattic/harper/pull/3724
* feat(core): capture range for `SequenceExpr` by @86xsk in https://github.com/Automattic/harper/pull/2994
* fix(core): someone being pedantic in my presentation by @elijah-potter in https://github.com/Automattic/harper/pull/4443
* build(deps): bump rustls-webpki from 0.103.10 to 0.103.13 by @dependabot[bot] in https://github.com/Automattic/harper/pull/3221
* build(deps): bump is-macro from 0.3.7 to 0.3.8 by @dependabot[bot] in https://github.com/Automattic/harper/pull/4444
* feat(desktop): allow users to add new apps automatically by @elijah-potter in https://github.com/Automattic/harper/pull/4356
* fix(harper-editor): do not adopt text color of pasted input by @elijah-potter in https://github.com/Automattic/harper/pull/4441
* fix(harper-typst): contraction parsing errors by @Koranir in https://github.com/Automattic/harper/pull/4418
* feat: warn when a linter test has the same text for the error and the fix by @hippietrail in https://github.com/Automattic/harper/pull/4433
* fix: missing static analysis from some projects by @elijah-potter in https://github.com/Automattic/harper/pull/4451
* feat(web): show deltas on graphs by @elijah-potter in https://github.com/Automattic/harper/pull/4424
* fix(missing_to): avoid false positive on participial verbs in prepositional phrases by @vjymisal0 in https://github.com/Automattic/harper/pull/4204
* feat: went ahead and enable→went ahead and enabled by @hippietrail in https://github.com/Automattic/harper/pull/4456
* refactor(web): SlideDeck into own component by @elijah-potter in https://github.com/Automattic/harper/pull/4449
* fix(linting): stop OneOfTheSingular flagging 'one of the latter/former' by @Yi-111-a in https://github.com/Automattic/harper/pull/4463
* fix: typo 'than' correct to 'that' by @hippietrail in https://github.com/Automattic/harper/pull/4466
* fix(desktop): the weird macOS icon problem by @elijah-potter in https://github.com/Automattic/harper/pull/4457
* fix(core): stop SplitWords treating short non-anchor words as split anchors by @vjymisal0 in https://github.com/Automattic/harper/pull/4212
* fix(chrome-ext): fix test setup to avoid race conditions by @elijah-potter in https://github.com/Automattic/harper/pull/4485
* feat(chrome-ext): add loading state to report buttons by @elijah-potter in https://github.com/Automattic/harper/pull/4462
* fix(chrome-ext): fix several Google Docs problems by @elijah-potter in https://github.com/Automattic/harper/pull/4484
* chore: add 'trilemma' to dictionary by @Yi-111-a in https://github.com/Automattic/harper/pull/4475
* fix: rename `is_verb_regular_past_form()` to `is_verb_preterite_and_participle_form()` by @hippietrail in https://github.com/Automattic/harper/pull/4461
* feat: on daily basis → on a daily basis by @hippietrail in https://github.com/Automattic/harper/pull/4427
* Dictionary curation 2026-09-12 by @hippietrail in https://github.com/Automattic/harper/pull/4365
* feat: set up a bad example→set a bad example by @hippietrail in https://github.com/Automattic/harper/pull/4488
* feat: add a debug printf to the linter asserts using `cfg!(debug_assertions)` by @hippietrail in https://github.com/Automattic/harper/pull/4354
* build(deps): bump clap from 4.6.6 to 4.6.7 by @dependabot[bot] in https://github.com/Automattic/harper/pull/4497
* fix(dict): remove noun flag from e.g. to prevent OxfordComma false positives (#4479) by @Yi-111-a in https://github.com/Automattic/harper/pull/4480
* fix(harper-core): keep possessive its unflagged after prepositions by @Punisheroot in https://github.com/Automattic/harper/pull/4437
* refactor(desktop): move update checking to Rust and run it on a schedule by @elijah-potter in https://github.com/Automattic/harper/pull/4494
* feat: seize control over→seize control of by @hippietrail in https://github.com/Automattic/harper/pull/4515
* feat: hallucinization→hallucination by @hippietrail in https://github.com/Automattic/harper/pull/4516
* feat(desktop): create a better onboarding experience by @elijah-potter in https://github.com/Automattic/harper/pull/4495
* feat: comfortable of→comfortable with by @hippietrail in https://github.com/Automattic/harper/pull/4519

## New Contributors
* @Koranir made their first contribution in https://github.com/Automattic/harper/pull/4418
* @vjymisal0 made their first contribution in https://github.com/Automattic/harper/pull/4204
* @Yi-111-a made their first contribution in https://github.com/Automattic/harper/pull/4463
* @Punisheroot made their first contribution in https://github.com/Automattic/harper/pull/4437

**Full Changelog**: https://github.com/Automattic/harper/compare/v2.11.0...v2.12.0

Related Repositories