v1.6.0

Automattic/harperv1.6.0Feb 4, 2026by github-actions[bot]

AI Summary

This major release introduces Weirpacks for packaging linting rules, adds AsciiDoc support, enables Firefox CSS Custom Highlights API, and includes significant performance improvements.

Key Highlights

  • Introduced Weirpacks for packaging linting rules
  • Added AsciiDoc support
  • Enabled CSS Custom Highlights API for Firefox
  • Performance improvements: cached Weir ASTs, optimized test builds
  • New grammar rules: prev→previous, as of currently→currently, yea/yeh→yeah, cybersec→cybersecurity

New Features

  • Weirpacks (rule packaging system)
  • AsciiDoc support
  • Firefox CSS Custom Highlights API
  • Weir AST caching
  • New Weir rules
  • Typst parser exposed in harper.js

Full Release Notes

## What's Changed
* refactor(brill): remove `lazy_static` dependency by @86xsk in https://github.com/Automattic/harper/pull/2571
* feat: afterall → after all by @hippietrail in https://github.com/Automattic/harper/pull/2582
* perf(core): cache Wier ASTs by @86xsk in https://github.com/Automattic/harper/pull/2584
* deps(cli): bump ariadne from 0.4.1 to 0.6.0 by @86xsk in https://github.com/Automattic/harper/pull/2577
* feat: prev → previous by @hippietrail in https://github.com/Automattic/harper/pull/2598
* build(deps): bump uuid from 1.19.0 to 1.20.0 by @dependabot[bot] in https://github.com/Automattic/harper/pull/2595
* fix: confusing wording in `OneOfTheSingular` by @hippietrail in https://github.com/Automattic/harper/pull/2586
* feat: as of currently→ currently / as of now by @hippietrail in https://github.com/Automattic/harper/pull/2599
* chore: add words/annotations to curated dict by @86xsk in https://github.com/Automattic/harper/pull/2570
* feat: nor I would→nor would I by @hippietrail in https://github.com/Automattic/harper/pull/2590
* build(deps): bump sysinfo from 0.37.2 to 0.38.0 by @dependabot[bot] in https://github.com/Automattic/harper/pull/2594
* fix(chrome-ext): Draft.js multiline suggestion replacement corruption by @draphy in https://github.com/Automattic/harper/pull/2597
* fix: `rm` old vscode versions after `just test-vscode` by @hippietrail in https://github.com/Automattic/harper/pull/2574
* fix(chrome-ext): force visibility on Reddit by @elijah-potter in https://github.com/Automattic/harper/pull/2603
* docs(chrome-ext): notify users that Harper will clash with Gmail's grammar checker by @elijah-potter in https://github.com/Automattic/harper/pull/2605
* feat: yea/yeh →yeah by @hippietrail in https://github.com/Automattic/harper/pull/2604
* fix(obsidian-plugin): postpone initialization until layout is ready by @Vinzent03 in https://github.com/Automattic/harper/pull/2611
* feat: no only is there → not only is there by @hippietrail in https://github.com/Automattic/harper/pull/2610
* feat(chrome-ext): enable use of the CSS Custom Highlights API for Firefox by @elijah-potter in https://github.com/Automattic/harper/pull/2607
* refactor(core): adjustments in `Number` by @86xsk in https://github.com/Automattic/harper/pull/2591
* feat(core): write rule to correct `cybersec` -> `cybersecurity` by @elijah-potter in https://github.com/Automattic/harper/pull/2613
* fix(chrome-ext): improve test reliability by @elijah-potter in https://github.com/Automattic/harper/pull/2615
* feat: try one‘s hands at→try one‘s hand at by @hippietrail in https://github.com/Automattic/harper/pull/2614
* feat(core): add `allows` keyword to Weir by @elijah-potter in https://github.com/Automattic/harper/pull/2602
* build(deps): bump clap from 4.5.54 to 4.5.56 by @dependabot[bot] in https://github.com/Automattic/harper/pull/2641
* Flash in the pans -> Flashes in the pan by @hippietrail in https://github.com/Automattic/harper/pull/2621
* chore: curate dictionary by @hippietrail in https://github.com/Automattic/harper/pull/2580
* feat: go at war → go to war by @hippietrail in https://github.com/Automattic/harper/pull/2646
* fix(chrome-ext): preserve cursor position in generic contenteditable replacement by @draphy in https://github.com/Automattic/harper/pull/2617
* feat: peak behind the curtain→peek behind the curtain by @hippietrail in https://github.com/Automattic/harper/pull/2635
* fix: AsciiDoc support by @mcecode in https://github.com/Automattic/harper/pull/2633
* build(deps): bump bytes from 1.10.1 to 1.11.1 by @dependabot[bot] in https://github.com/Automattic/harper/pull/2647
* docs: add Tally to section for projects using Harper by @twocaretcat in https://github.com/Automattic/harper/pull/2645
* feat(core): improve debug formatting for `Suggestion` by @86xsk in https://github.com/Automattic/harper/pull/2619
* refactor(core): adjustments in lexing code by @86xsk in https://github.com/Automattic/harper/pull/2618
* feat: look one's nose down→look down one's nose by @hippietrail in https://github.com/Automattic/harper/pull/2644
* feat(core): introduce Weirpacks by @elijah-potter in https://github.com/Automattic/harper/pull/2491
* fix(lint-framework): preserve cursor position in textarea after applying suggestion by @draphy in https://github.com/Automattic/harper/pull/2650
* feat: like no tomorrow → like there's no tomorrow by @hippietrail in https://github.com/Automattic/harper/pull/2652
* build(test): improve test build time by @86xsk in https://github.com/Automattic/harper/pull/2648
* refactor(core): use a macro and document the methods by @elijah-potter in https://github.com/Automattic/harper/pull/2655
* build: `panic = abort` and `lto = fat` for release by @86xsk in https://github.com/Automattic/harper/pull/2572
* refactor(harper.js): we do not need named types for Weirpacks by @elijah-potter in https://github.com/Automattic/harper/pull/2657

## New Contributors
* @twocaretcat made their first contribution in https://github.com/Automattic/harper/pull/2645

**Full Changelog**: https://github.com/Automattic/harper/compare/v1.5.1...v1.6.0