v1.10.0

Automattic/harperv1.10.0Mar 11, 2026by github-actions[bot]

AI Summary

Chrome extension improvements including Google Docs and Typst playground support, plus CLI formatting capabilities.

Key Highlights

  • Google Docs support for Chrome extension
  • Typst playground support
  • CLI `--format` flag with JSON output

New Features

  • Google Docs support
  • Typst playground support
  • CLI JSON formatting
  • Obsidian file watching
  • Grammar fixes (hidden in, fed up with, IIUC)

Full Release Notes

## What's Changed
* build(deps): bump pulldown-cmark from 0.13.0 to 0.13.1 by @dependabot[bot] in https://github.com/Automattic/harper/pull/2848
* build(deps): bump chrono from 0.4.43 to 0.4.44 by @dependabot[bot] in https://github.com/Automattic/harper/pull/2852
* build(deps): bump quickcheck from 1.0.3 to 1.1.0 by @dependabot[bot] in https://github.com/Automattic/harper/pull/2850
* chore: dictionary curation by @hippietrail in https://github.com/Automattic/harper/pull/2822
* build(deps): bump zip from 8.0.0 to 8.1.0 by @dependabot[bot] in https://github.com/Automattic/harper/pull/2849
* build(deps): bump strum_macros from 0.27.2 to 0.28.0 by @dependabot[bot] in https://github.com/Automattic/harper/pull/2851
* feat: hidden into→hidden in by @hippietrail in https://github.com/Automattic/harper/pull/2844
* feat: the point for→the point of by @hippietrail in https://github.com/Automattic/harper/pull/2834
* feat(core): more edge cases in `MissingTo` rule by @lewismiddleton in https://github.com/Automattic/harper/pull/2837
* feat(core): `chalkboard` is a closed compound by @elijah-potter in https://github.com/Automattic/harper/pull/2858
* feat(chrome-ext): build out support for the online Typst playground by @elijah-potter in https://github.com/Automattic/harper/pull/2706
* fix(core): edge case in `ItsPossessive` rule by @elijah-potter in https://github.com/Automattic/harper/pull/2857
* feat: print linter match with context by @hippietrail in https://github.com/Automattic/harper/pull/2303
* feat: fed up of→fed up with by @hippietrail in https://github.com/Automattic/harper/pull/2833
* feat(obsidian): listen to changes to `data.json` by @elijah-potter in https://github.com/Automattic/harper/pull/2868
* fix(obsidian): remove default hotkey by @elijah-potter in https://github.com/Automattic/harper/pull/2869
* feat: get used of→get used to by @hippietrail in https://github.com/Automattic/harper/pull/2831
* fix: don't flag "our IT" by @hippietrail in https://github.com/Automattic/harper/pull/2872
* feat: flag "often never" and similar by @hippietrail in https://github.com/Automattic/harper/pull/2871
* fix(core): recognize "esp." as an abbreviation by @NaveenPrasanth in https://github.com/Automattic/harper/pull/2816
* fix(core): adjust how words are iterated in `title_case` by @elijah-potter in https://github.com/Automattic/harper/pull/2875
* feat: off coarse→of course by @hippietrail in https://github.com/Automattic/harper/pull/2878
* feat(chrome-ext): support for Google Docs by @elijah-potter in https://github.com/Automattic/harper/pull/2791
* refactor(core): refactor code in `MissingTo` by @86xsk in https://github.com/Automattic/harper/pull/2876
* feat: IIUC→if I understand correctly by @hippietrail in https://github.com/Automattic/harper/pull/2896
* build(deps): bump tree-sitter-powershell from 0.25.10 to 0.26.3 by @dependabot[bot] in https://github.com/Automattic/harper/pull/2890
* build(deps): bump uuid from 1.21.0 to 1.22.0 by @dependabot[bot] in https://github.com/Automattic/harper/pull/2889
* build(deps): bump tokio from 1.49.0 to 1.50.0 by @dependabot[bot] in https://github.com/Automattic/harper/pull/2891
* fix(harper-tex): math mode problems by @elijah-potter in https://github.com/Automattic/harper/pull/2899
* build(deps): bump sysinfo from 0.38.2 to 0.38.3 by @dependabot[bot] in https://github.com/Automattic/harper/pull/2893
* refactor: tests for spell/mod.rs and and linting/spell_check.rs were arbitrarily mixed by @hippietrail in https://github.com/Automattic/harper/pull/2809
* feat: aware about→aware of by @hippietrail in https://github.com/Automattic/harper/pull/2902
* feat: it´s→it's by @hippietrail in https://github.com/Automattic/harper/pull/2884
* feat: in some degree→to some degree by @hippietrail in https://github.com/Automattic/harper/pull/2883
* feat(chrome-ext): surface update instructions by @elijah-potter in https://github.com/Automattic/harper/pull/2873
* feat: take/claim/assume responsibility of→responsibility for by @hippietrail in https://github.com/Automattic/harper/pull/2880
* feat: correct decades with apostrophes by @hippietrail in https://github.com/Automattic/harper/pull/2886
* fix(core): false positives in the `NeedToNoun` rule by @elijah-potter in https://github.com/Automattic/harper/pull/2905
* fix(chrome-ext): formatted text in Google Docs causing false-positives by @elijah-potter in https://github.com/Automattic/harper/pull/2904
* feat: rise the ranks→rise through/from the ranks by @hippietrail in https://github.com/Automattic/harper/pull/2903
* perf(core): add early exits for `lex_url`, `lex_email_address` by @86xsk in https://github.com/Automattic/harper/pull/2910
* build(deps): bump quinn-proto from 0.11.13 to 0.11.14 by @dependabot[bot] in https://github.com/Automattic/harper/pull/2908
* fix(core): `VerbToAdjective` false positives by @elijah-potter in https://github.com/Automattic/harper/pull/2906
* feat: not only it is→not only is it by @hippietrail in https://github.com/Automattic/harper/pull/2907
* feat: compulse→compel by @hippietrail in https://github.com/Automattic/harper/pull/2909
* feat(harper-cli): add --format flag with json and compact output modes by @dumb-kevin in https://github.com/Automattic/harper/pull/2843

## New Contributors
* @lewismiddleton made their first contribution in https://github.com/Automattic/harper/pull/2837
* @dumb-kevin made their first contribution in https://github.com/Automattic/harper/pull/2843

**Full Changelog**: https://github.com/Automattic/harper/compare/v1.9.0...v1.10.0