v1.9.0

Automattic/harperv1.9.0Feb 27, 2026by github-actions[bot]

AI Summary

Adds Weirpack support for custom dictionaries and PowerShell comments support.

Key Highlights

  • Weirpack support (load/unload)
  • PowerShell comments support
  • Chrome extension enabled on Substack

New Features

  • Weirpack support
  • PowerShell comments
  • Substack support
  • Grammar fixes (seem/seam, out of sync)

Full Release Notes

## What's Changed
* Propagating newer methods of `SequenceExpr` through the codebase by @hippietrail in https://github.com/Automattic/harper/pull/2759
* feat(core): many more Weir rules by @elijah-potter in https://github.com/Automattic/harper/pull/2742
* feat(chrome-ext): the ability to load/unload Weirpacks by @elijah-potter in https://github.com/Automattic/harper/pull/2752
* fix(chrome-ext): suggestions being displayed as `0` by @elijah-potter in https://github.com/Automattic/harper/pull/2757
* feat: PowerShell comments support by @elijah-potter in https://github.com/Automattic/harper/pull/2762
* feat(core): dictionary additions by @scop in https://github.com/Automattic/harper/pull/2636
* feat(cli): support --no-color flag and NO_COLOR env var by @verri in https://github.com/Automattic/harper/pull/2738
* fix(core): adjust ToTwoToo linter to ignore transitions by @elijah-potter in https://github.com/Automattic/harper/pull/2761
* Dictionary curation for Feb 20, 2026 by @hippietrail in https://github.com/Automattic/harper/pull/2768
* build(deps): bump strum from 0.27.2 to 0.28.0 by @dependabot[bot] in https://github.com/Automattic/harper/pull/2782
* build(deps): bump uuid from 1.20.0 to 1.21.0 by @dependabot[bot] in https://github.com/Automattic/harper/pull/2781
* build(deps): bump anyhow from 1.0.101 to 1.0.102 by @dependabot[bot] in https://github.com/Automattic/harper/pull/2779
* feat: for argument sake→for argument's sake by @hippietrail in https://github.com/Automattic/harper/pull/2774
* build(deps): bump libfuzzer-sys from 0.4.10 to 0.4.12 by @dependabot[bot] in https://github.com/Automattic/harper/pull/2778
* fix(core): make the `ItsPossessive` rule more robust by @elijah-potter in https://github.com/Automattic/harper/pull/2769
* build(deps): bump clap from 4.5.57 to 4.5.60 by @dependabot[bot] in https://github.com/Automattic/harper/pull/2780
* chore: Curate dictionary by @anyllmarkevich in https://github.com/Automattic/harper/pull/2724
* feat: wrote→rote by @hippietrail in https://github.com/Automattic/harper/pull/2794
* fix: don't flag "May of" by @hippietrail in https://github.com/Automattic/harper/pull/2795
* Flag plural "damages" when not used for judicial compensation by @hippietrail in https://github.com/Automattic/harper/pull/2365
* Dictionary curation 2026 02 22 by @hippietrail in https://github.com/Automattic/harper/pull/2785
* feat: add words from fantasy, politics, religion, and adverbs by @rauletaveras in https://github.com/Automattic/harper/pull/2643
* feat(chrome-ext): enable on all Substack sites by @elijah-potter in https://github.com/Automattic/harper/pull/2800
* chore: add "one fowl swoop" to "one foul swoop", rename from `InOneFellSwoop` by @hippietrail in https://github.com/Automattic/harper/pull/2758
* fix(core): stop flagging "Czech Republic" as outdated by @NaveenPrasanth in https://github.com/Automattic/harper/pull/2797
* fix: don't flag "can of" by @hippietrail in https://github.com/Automattic/harper/pull/2814
* feat(core): create rule to correct `now way` by @elijah-potter in https://github.com/Automattic/harper/pull/2806
* fix(harper-tex): parse triple-hyphens as an em-dash by @elijah-potter in https://github.com/Automattic/harper/pull/2805
* fix(core): coverage for confusion of `they're`/`there`/`their` by @elijah-potter in https://github.com/Automattic/harper/pull/2798
* fix(obsidian): avoid command palette crashes from null tooltip entries by @stanley-910 in https://github.com/Automattic/harper/pull/2804
* feat(web): add loading message to lazily-loaded editor by @elijah-potter in https://github.com/Automattic/harper/pull/2817
* feat: support adjectives in "on accident" by @hippietrail in https://github.com/Automattic/harper/pull/2828
* fear: for most part→for the most part by @hippietrail in https://github.com/Automattic/harper/pull/2827
* feat: seam→seem by @hippietrail in https://github.com/Automattic/harper/pull/2826
* feat: out of sink→out of sync/synch by @hippietrail in https://github.com/Automattic/harper/pull/2829
* feat: in hurry→in a hurry by @hippietrail in https://github.com/Automattic/harper/pull/2825
* feat(core): address edge cases in `MissingTo` rule by @elijah-potter in https://github.com/Automattic/harper/pull/2818
* feat(core): create rule to detect confusion between `principle of` and `principal of` by @elijah-potter in https://github.com/Automattic/harper/pull/2799
* feat: do diligence→due diligence/do due diligence by @hippietrail in https://github.com/Automattic/harper/pull/2810
* fix(obsidian): find temporary fix for escape button override by @elijah-potter in https://github.com/Automattic/harper/pull/2819
* feat: all hell break out→all hell break loose by @hippietrail in https://github.com/Automattic/harper/pull/2813
* refactor: heuristic debugging easier by @hippietrail in https://github.com/Automattic/harper/pull/2508
* feat: if only there was→if only there were, etc. by @hippietrail in https://github.com/Automattic/harper/pull/2823

## New Contributors
* @anyllmarkevich made their first contribution in https://github.com/Automattic/harper/pull/2724
* @NaveenPrasanth made their first contribution in https://github.com/Automattic/harper/pull/2797

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