v2.13.0

Automattic/harperv2.13.0Oct 16, 2026by github-actions[bot]

Upgrading?

AI Summary

This release focuses on grammar correction improvements, desktop application stability fixes, and dependency updates. It introduces new linting options and refactors the codebase for better maintainability.

Key Highlights

  • Added a `no_parallel` switch to the `harper-cli lint` command to control parallel execution.
  • Introduced new grammar corrections including 'will gonna' → 'will' and 'bare with me' → 'bear with me'.
  • Fixed critical desktop app bugs such as accidental locking of the broker and hidden rules in Obsidian.
  • Refactored the codebase by splitting the `lint.rs` file into new modules and simplifying the module tree.
  • Updated Rust dependencies including `dirs`, `rand`, and `zstd`.

New Features

  • `no_parallel` switch for `harper-cli lint`
  • Grammar correction: 'will gonna / will going to' → 'will'
  • Grammar correction: 'AIUI' → 'as I understand it'
  • Grammar correction: 'deference' → 'dereference'
  • Grammar correction: 'sky rocketing' → 'skyrocketing'
  • Desktop debug mode for the highlighter
  • Chrome extension tip for configuring 'delay'

Full Release Notes

## What's Changed
* build(deps): bump bitflags from 2.13.1 to 2.13.2 by @dependabot[bot] in https://github.com/Automattic/harper/pull/4498
* chore: add strive/strove/striven to `irregular_verbs.json` by @hippietrail in https://github.com/Automattic/harper/pull/4524
* feat: life time, trade off→lifetime, tradeoff by @hippietrail in https://github.com/Automattic/harper/pull/4526
* feat: add `no_parallel` switch to `harper-cli lint` by @hippietrail in https://github.com/Automattic/harper/pull/4517
* chore: dictionary curation by @hippietrail in https://github.com/Automattic/harper/pull/4535
* feat: their self / selves → themself / themselves by @hippietrail in https://github.com/Automattic/harper/pull/4328
* feat: detect mixing up `descend` and `descent` by @hippietrail in https://github.com/Automattic/harper/pull/4523
* docs(sublime): document setup for linting git commit messages by @costajohnt in https://github.com/Automattic/harper/pull/4029
* feat: subjective/objective pronoun→subject/object pronoun by @hippietrail in https://github.com/Automattic/harper/pull/4548
* feat: beckon call → beck and call by @hippietrail in https://github.com/Automattic/harper/pull/4549
* feat: AIUI → as I understand it by @hippietrail in https://github.com/Automattic/harper/pull/4553
* fix(desktop): tweak copy and layout in the Desktop settings page by @elijah-potter in https://github.com/Automattic/harper/pull/4542
* fix(desktop): use real Harper logo instead of placeholder by @elijah-potter in https://github.com/Automattic/harper/pull/4543
* fix(desktop): accidental locking of the broker by @elijah-potter in https://github.com/Automattic/harper/pull/4544
* fix(obsidian): rules are hidden by @elijah-potter in https://github.com/Automattic/harper/pull/4546
* fix: add missing static analysis tools by @elijah-potter in https://github.com/Automattic/harper/pull/4551
* build(deps): bump rustls from 0.23.44 to 0.23.45 in /harper-desktop/src-tauri by @dependabot[bot] in https://github.com/Automattic/harper/pull/4556
* build(deps): bump rustls from 0.23.43 to 0.23.45 by @dependabot[bot] in https://github.com/Automattic/harper/pull/4557
* build(deps): bump rand from 0.10.2 to 0.10.3 by @dependabot[bot] in https://github.com/Automattic/harper/pull/4559
* build(deps): bump zstd from 0.13.3 to 0.14.0 by @dependabot[bot] in https://github.com/Automattic/harper/pull/4558
* fix(linting): flag bellow for below before determiners and numbers (#4540) by @Yi-111-a in https://github.com/Automattic/harper/pull/4561
* refactor: split out about 400 lines from `lint.rs` into new modules by @hippietrail in https://github.com/Automattic/harper/pull/4303
* feat: responsible about → responsible for by @hippietrail in https://github.com/Automattic/harper/pull/4567
* fix(linting): replace leftover skeleton descriptions (#4564) by @Yi-111-a in https://github.com/Automattic/harper/pull/4566
* feat: there in → therein by @hippietrail in https://github.com/Automattic/harper/pull/4529
* fix(lint-framework): keep render boxes out of editable content by @braklo in https://github.com/Automattic/harper/pull/4508
* fix(desktop): clear clippy lints in the Windows broker by @willherr72 in https://github.com/Automattic/harper/pull/4438
* feat: have low standard → low standards by @hippietrail in https://github.com/Automattic/harper/pull/4583
* feat: guess work → guesswork by @hippietrail in https://github.com/Automattic/harper/pull/4584
* feat: by extent → by extension by @hippietrail in https://github.com/Automattic/harper/pull/4586
* chore: dictionary curation by @hippietrail in https://github.com/Automattic/harper/pull/4568
* feat: often times → oftentimes by @hippietrail in https://github.com/Automattic/harper/pull/4594
* feat: bare with me → bear with me by @hippietrail in https://github.com/Automattic/harper/pull/4599
* fix(web): preload logo for aesthetics by @elijah-potter in https://github.com/Automattic/harper/pull/4602
* feat: deference → dereference by @hippietrail in https://github.com/Automattic/harper/pull/4607
* feat: sky rocketing → skyrocketing by @hippietrail in https://github.com/Automattic/harper/pull/4612
* build(deps): bump dirs from 6.0.0 to 7.0.0 by @dependabot[bot] in https://github.com/Automattic/harper/pull/4604
* fix(web): give the home page FAQ section the #faqs anchor by @ozenyunus35 in https://github.com/Automattic/harper/pull/4620
* refactor(chrome-ext): speed up tests by @elijah-potter in https://github.com/Automattic/harper/pull/4603
* refactor(desktop): simplify module tree by @elijah-potter in https://github.com/Automattic/harper/pull/4608
* feat(desktop): create debug mode for the highlighter by @elijah-potter in https://github.com/Automattic/harper/pull/4609
* feat(desktop): make the popup appear similar to the Chrome Extension's by @elijah-potter in https://github.com/Automattic/harper/pull/4610
* ci(desktop): sign Windows releases with Buildkite by @iangmaia in https://github.com/Automattic/harper/pull/4576
* chore: update all Rust deps by @elijah-potter in https://github.com/Automattic/harper/pull/4623
* feat(chrome-ext): add tip to configure "delay" if Harper is being annoying by @elijah-potter in https://github.com/Automattic/harper/pull/4621
* feat: to my defense → in my defense by @ozenyunus35 in https://github.com/Automattic/harper/pull/4626
* fix(chrome-ext): Lexical tests now wait for linting to complete by @elijah-potter in https://github.com/Automattic/harper/pull/4624
* feat: will gonna / will going to → will by @ozenyunus35 in https://github.com/Automattic/harper/pull/4625

## New Contributors
* @costajohnt made their first contribution in https://github.com/Automattic/harper/pull/4029
* @braklo made their first contribution in https://github.com/Automattic/harper/pull/4508
* @ozenyunus35 made their first contribution in https://github.com/Automattic/harper/pull/4620
* @iangmaia made their first contribution in https://github.com/Automattic/harper/pull/4576

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

Related Repositories