Aquí hi ha 86 versions d’Harper Language Server, des de 10 de febrer del 2025 fins a l’actual, 2.13.0. Cadascuna enllaça amb els instal·ladors del mateix desenvolupador.
86 versions en 2 anys · unes 51 per any
| Versió | Data | Mida | Fitxers |
|---|---|---|---|
| 2.13.0Darrera versió | 16 d’octubre del 2026 | — | 64 bits ZIP Notes de la versióWhat's Changed
- build(deps): bump bitflags from 2.13.1 to 2.13.2 by @dependabot[bot] in #4498
- chore: add strive/strove/striven to irregular_verbs.json by @hippietrail in #4524
- feat: life time, trade off→lifetime, tradeoff by @hippietrail in #4526
- feat: add no_parallel switch to harper-cli lint by @hippietrail in #4517
- chore: dictionary curation by @hippietrail in #4535
- feat: their self / selves → themself / themselves by @hippietrail in #4328
- feat: detect mixing up descend and descent by @hippietrail in #4523
- docs(sublime): document setup for linting git commit messages by @costajohnt in #4029
- feat: subjective/objective pronoun→subject/object pronoun by @hippietrail in #4548
- feat: beckon call → beck and call by @hippietrail in #4549
- feat: AIUI → as I understand it by @hippietrail in #4553
- fix(desktop): tweak copy and layout in the Desktop settings page by @elijah-potter in #4542
- fix(desktop): use real Harper logo instead of placeholder by @elijah-potter in #4543
- fix(desktop): accidental locking of the broker by @elijah-potter in #4544
- fix(obsidian): rules are hidden by @elijah-potter in #4546
- fix: add missing static analysis tools by @elijah-potter in #4551
- build(deps): bump rustls from 0.23.44 to 0.23.45 in /harper-desktop/src-tauri by @dependabot[bot] in #4556
- build(deps): bump rustls from 0.23.43 to 0.23.45 by @dependabot[bot] in #4557
- build(deps): bump rand from 0.10.2 to 0.10.3 by @dependabot[bot] in #4559
- build(deps): bump zstd from 0.13.3 to 0.14.0 by @dependabot[bot] in #4558
- fix(linting): flag bellow for below before determiners and numbers (#4540) by @Yi-111-a in #4561
- refactor: split out about 400 lines from lint.rs into new modules by @hippietrail in #4303
- feat: responsible about → responsible for by @hippietrail in #4567
- fix(linting): replace leftover skeleton descriptions (#4564) by @Yi-111-a in #4566
- feat: there in → therein by @hippietrail in #4529
- fix(lint-framework): keep render boxes out of editable content by @braklo in #4508
- fix(desktop): clear clippy lints in the Windows broker by @willherr72 in #4438
- feat: have low standard → low standards by @hippietrail in #4583
- feat: guess work → guesswork by @hippietrail in #4584
- feat: by extent → by extension by @hippietrail in #4586
- chore: dictionary curation by @hippietrail in #4568
- feat: often times → oftentimes by @hippietrail in #4594
- feat: bare with me → bear with me by @hippietrail in #4599
- fix(web): preload logo for aesthetics by @elijah-potter in #4602
- feat: deference → dereference by @hippietrail in #4607
- feat: sky rocketing → skyrocketing by @hippietrail in #4612
- build(deps): bump dirs from 6.0.0 to 7.0.0 by @dependabot[bot] in #4604
- fix(web): give the home page FAQ section the #faqs anchor by @ozenyunus35 in #4620
- refactor(chrome-ext): speed up tests by @elijah-potter in #4603
- refactor(desktop): simplify module tree by @elijah-potter in #4608
- feat(desktop): create debug mode for the highlighter by @elijah-potter in #4609
- feat(desktop): make the popup appear similar to the Chrome Extension's by @elijah-potter in #4610
- ci(desktop): sign Windows releases with Buildkite by @iangmaia in #4576
- chore: update all Rust deps by @elijah-potter in #4623
- feat(chrome-ext): add tip to configure "delay" if Harper is being annoying by @elijah-potter in #4621
- feat: to my defense → in my defense by @ozenyunus35 in #4626
- fix(chrome-ext): Lexical tests now wait for linting to complete by @elijah-potter in #4624
- feat: will gonna / will going to → will by @ozenyunus35 in #4625
New Contributors
- @costajohnt made their first contribution in #4029
- @braklo made their first contribution in #4508
- @ozenyunus35 made their first contribution in #4620
- @iangmaia made their first contribution in #4576
Full Changelog: v2.12.0...v2.13.0 |
| 2.12.0 | 1 d’octubre del 2026 | — | 64 bits ZIP Notes de la versióWhat's Changed
- feat: flag redundant "almost" + "nearly" by @hippietrail in #4408
- fix(desktop): only update the tray icon when the service state changes by @willherr72 in #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 #4382
- feat(web): brand-new Chrome Extension "Installed!" page by @elijah-potter in #4419
- feat: condensated → condensed by @hippietrail in #4439
- feat: adds suggestions to QuoteSpacing by @hippietrail in #3724
- feat(core): capture range for SequenceExpr by @86xsk in #2994
- fix(core): someone being pedantic in my presentation by @elijah-potter in #4443
- build(deps): bump rustls-webpki from 0.103.10 to 0.103.13 by @dependabot[bot] in #3221
- build(deps): bump is-macro from 0.3.7 to 0.3.8 by @dependabot[bot] in #4444
- feat(desktop): allow users to add new apps automatically by @elijah-potter in #4356
- fix(harper-editor): do not adopt text color of pasted input by @elijah-potter in #4441
- fix(harper-typst): contraction parsing errors by @Koranir in #4418
- feat: warn when a linter test has the same text for the error and the fix by @hippietrail in #4433
- fix: missing static analysis from some projects by @elijah-potter in #4451
- feat(web): show deltas on graphs by @elijah-potter in #4424
- fix(missing_to): avoid false positive on participial verbs in prepositional phrases by @vjymisal0 in #4204
- feat: went ahead and enable→went ahead and enabled by @hippietrail in #4456
- refactor(web): SlideDeck into own component by @elijah-potter in #4449
- fix(linting): stop OneOfTheSingular flagging 'one of the latter/former' by @Yi-111-a in #4463
- fix: typo 'than' correct to 'that' by @hippietrail in #4466
- fix(desktop): the weird macOS icon problem by @elijah-potter in #4457
- fix(core): stop SplitWords treating short non-anchor words as split anchors by @vjymisal0 in #4212
- fix(chrome-ext): fix test setup to avoid race conditions by @elijah-potter in #4485
- feat(chrome-ext): add loading state to report buttons by @elijah-potter in #4462
- fix(chrome-ext): fix several Google Docs problems by @elijah-potter in #4484
- chore: add 'trilemma' to dictionary by @Yi-111-a in #4475
- fix: rename is_verb_regular_past_form() to is_verb_preterite_and_participle_form() by @hippietrail in #4461
- feat: on daily basis → on a daily basis by @hippietrail in #4427
- Dictionary curation 2026-09-12 by @hippietrail in #4365
- feat: set up a bad example→set a bad example by @hippietrail in #4488
- feat: add a debug printf to the linter asserts using cfg!(debug_assertions) by @hippietrail in #4354
- build(deps): bump clap from 4.6.6 to 4.6.7 by @dependabot[bot] in #4497
- fix(dict): remove noun flag from e.g. to prevent OxfordComma false positives (#4479) by @Yi-111-a in #4480
- fix(harper-core): keep possessive its unflagged after prepositions by @Punisheroot in #4437
- refactor(desktop): move update checking to Rust and run it on a schedule by @elijah-potter in #4494
- feat: seize control over→seize control of by @hippietrail in #4515
- feat: hallucinization→hallucination by @hippietrail in #4516
- feat(desktop): create a better onboarding experience by @elijah-potter in #4495
- feat: comfortable of→comfortable with by @hippietrail in #4519
New Contributors
- @Koranir made their first contribution in #4418
- @vjymisal0 made their first contribution in #4204
- @Yi-111-a made their first contribution in #4463
- @Punisheroot made their first contribution in #4437
Full Changelog: v2.11.0...v2.12.0 |
| 2.11.0 | 16 de setembre del 2026 | — | 64 bits ZIP Notes de la versióWhat's Changed
- fix(web): color of the logo used in loading animation by @elijah-potter in #4349
- feat: mixing up "bane" (of one's existence) and "bain" (marie) by @hippietrail in #4353
- feat: hi-jack/high jack → hijack by @hippietrail in #4355
- feat: such shame → such a shame by @hippietrail in #4359
- chore: dictionary curation by @hippietrail in #4360
- feat: mixing up summary and summery by @hippietrail in #4363
- feat(web): count update check requests by @elijah-potter in #4362
- fix(harper-tex): mask horizontal whitespace before % comments by @jurajkl in #3108
- chore: enhance SummarySummery and ThenThan by @hippietrail in #4366
- feat: add "FFT" and "BWT" transforms to RedundantAcronyms by @hippietrail in #4369
- feat: bare-bone → bare-bones by @hippietrail in #4372
- feat: in of themselves → in (and of) themselves by @hippietrail in #4373
- feat: ootb → out of the box by @hippietrail in #4378
- feat: a break through → a breakthrough by @hippietrail in #4380
- build: remove Harper Desktop from workspace by @elijah-potter in #4329
- feat: rogue vs rouge by @hippietrail in #4280
- fix: don't flag "defo" by @hippietrail in #4390
- build(deps): bump open from 5.4.2 to 5.4.4 by @dependabot[bot] in #4396
- build(deps): bump indexmap from 2.14.0 to 2.14.2 by @dependabot[bot] in #4397
- fix: give MassPlurals higher priority than SplitWords by @hippietrail in #4347
- fix(web): make the <Loader /> less irksome by @elijah-potter in #4401
- feat(chrome-ext): redesign suggestion popup by @elijah-potter in #4406
- fix(desktop): major barriers to good performance by @elijah-potter in #4394
- feat(desktop): add Day One as a default app. by @elijah-potter in #4402
- fix(desktop): don't close service when closing settings by @elijah-potter in #4403
Full Changelog: v2.10.0...v2.11.0 |
| 2.10.0 | 9 de setembre del 2026 | — | 64 bits ZIP Notes de la versióWhat's Changed
- feat: a jar & a kimbo → ajar & akimbo by @hippietrail in #4249
- feat: final nail on the coffin → in by @hippietrail in #4251
- build(deps): bump cargo-bins/cargo-binstall from 910d9e4456ce4b039662d2a02a34ef1d23c3c50c to 5aafaaca52423a22d83a812fa3ca77492e2895db by @dependabot[bot] in #4259
- build(deps): bump redhat-actions/buildah-build from 2.13 to 3 in the actions-major group by @dependabot[bot] in #4258
- feat: take control over→take control of by @hippietrail in #4262
- feat: remove redundant relative pronoun after which- pronouns by @hippietrail in #4254
- refactor: convert two linter pairs to use OneOfMany by @hippietrail in #4211
- feat: take pride of → take pride in by @hippietrail in #4273
- feat: legit → legitimate by @hippietrail in #4271
- build(deps): bump itertools from 0.14.0 to 0.15.0 by @dependabot[bot] in #4276
- build(deps): bump open from 5.4.1 to 5.4.2 by @dependabot[bot] in #4277
- chore(chrome-ext): remove Prettier dep by @elijah-potter in #4266
- refactor(web): move web components into central library by @elijah-potter in #4264
- feat: provocate → provoke by @hippietrail in #4278
- feat: fix odd variants of chicken-and-egg problem by @hippietrail in #4222
- feat: at the first place→in the first place by @hippietrail in #4215
- chore: dictionary curation by @hippietrail in #4248
- feat: various mistakes with lots, lot's, and a lot by @hippietrail in #4289
- feat: on a fence → on the fence by @hippietrail in #4300
- feat: afict → as far as I can tell by @hippietrail in #4301
- fix(core): replace the reexecute dictionary entry with re-execute by @mauropereiira in #4042
- feat: not without a lack of → not for lack of by @hippietrail in #4306
- feat: pleaded vs pled by @hippietrail in #4308
- feat: play a factor → play a part/role / be a factor by @hippietrail in #4310
- feat: a waist of → a waste of by @hippietrail in #4317
- feat: take advantage a→take advantage of by @jvoisin in #3999
- fix: correct also with singular "purpose" by @hippietrail in #4295
- fix(title-case): keep lowercase x as a connector word by @pyrooka in #4238
- feat(web): add dashboard for user-submitted domain problem reports by @elijah-potter in #4267
- feat: OTOH → on the other hand by @hippietrail in #4313
- feat: methods for matching sg/pl nouns that are not both by @hippietrail in #4319
- build(deps): bump cargo-bins/cargo-binstall from 5aafaaca52423a22d83a812fa3ca77492e2895db to b874e25ea559687bec77e281e9b271aa1367b624 by @dependabot[bot] in #4324
- feat: publish some linter priorities that other linters refer to by @hippietrail in #4255
- fix: feeded → fed by @hippietrail in #4327
- feat: reversed engineer → reverse engineer by @hippietrail in #4312
- feat: Word ctor for standard case combos; fave → favourite by @hippietrail in #3263
- feat: for same reason→for the same reason by @hippietrail in #3941
- refactor: WordSet now takes an iterator by @hippietrail in #4247
- feat(harper-ls): add configurable diagnostic delay by @Dronakurl in #3282
- Dictionary curation 2026 09 04 by @hippietrail in #4332
- feat: in ideal world → in an ideal world by @hippietrail in #4325
- feat: slippy slope → slippery slope by @hippietrail in #4338
- feat(web): add a link to the Edge extension by @elijah-potter in #4330
- fix: Google Docs bridge and replaceText issue for the popup suggestion by @Yuvi-raj-P in #3847
- feat: what dose -> what does by @FranBowden in #4318
- feat(web): add more interesting loader to the web editor by @elijah-potter in #4340
- build(deps): bump base64 from 0.22.1 to 0.23.1 by @dependabot[bot] in #4341
- build(deps): bump uiautomation from 0.25.0 to 0.25.1 by @dependabot[bot] in #4342
- feat: straight forward → straightforward by @hippietrail in #4343
- feat: show case → showcase by @hippietrail in #4345
- feat: deny offer → decline/reject by @hippietrail in #4348
New Contributors
- @pyrooka made their first contribution in #4238
- @Yuvi-raj-P made their first contribution in #3847
- @FranBowden made thei |
| 2.9.1 | 29 d’agost del 2026 | — | 64 bits ZIP Notes de la versióWhat's Changed
- chore: more irregular plurals by @hippietrail in #4040
- feat: look-a-like→lookalike/look-alike by @hippietrail in #4074
- chore: add "first founded" to RedundantFirsts by @hippietrail in #4072
- feat: curious on/of→curious about by @hippietrail in #4080
- feat: finish touches→finishing touches by @hippietrail in #4081
- fix(core): do not flag Dickens as a swear by @mauropereiira in #4031
- feat: surrealness→surreality by @hippietrail in #4101
- feat: enhance the ToTo linter by @hippietrail in #4100
- Update build tooling (fastlane to 2.238.0, Ruby 3.4.9, Xcode 26.6) by @mokagio in #4099
- fix(desktop): repair application picker by @mauropereiira in #4024
- fix(web): fix problems with the footer by @elijah-potter in #4046
- build(deps): bump uuid from 1.24.0 to 1.24.1 by @dependabot[bot] in #4123
- feat: 'npm' requires 'an', not 'a' by @hippietrail in #4146
- feat: flag confusing "tote" and "tout" by @hippietrail in #4147
- feat: dissemble→disassemble by @hippietrail in #3923
- feat: better off served→better off/better served by @hippietrail in #3946
- chore: dictionary curation by @hippietrail in #4073
- feat: get/go pass→get/go past by @hippietrail in #4121
- feat: a whole another/nother/'nother → a whole other by @hippietrail in #4145
- feat: all well in good→all well and good by @hippietrail in #4102
- feat: off-limit→off-limits by @hippietrail in #4083
- feat: underneath of→underneath/under by @hippietrail in #4148
- feat(editor): add placeholder text to the web editor by @elijah-potter in #4097
- build(deps): bump cached from 0.59.0 to 2.0.2 by @dependabot[bot] in #4125
- fix(core): stop LetsConfusion flagging quantifiers after let's by @mauropereiira in #4082
- fix(core): don't flag "no thanks to" as a missing refusal comma by @mauropereiira in #4088
- build(deps): bump the actions-minor-patch group with 2 updates by @dependabot[bot] in #4092
- feat: become missing→go missing by @hippietrail in #4021
- feat: backhand compliment→backhanded compliment by @hippietrail in #4169
- feat: three simple linters by @hippietrail in #4158
- feat: go into sleep→go to sleep by @hippietrail in #4201
- feat: in/on the grand scale of things→grand scheme by @hippietrail in #4179
- feat: combinate→combine by @hippietrail in #4178
- feat: strike of genius/luck → stroke of genius/luck by @hippietrail in #4217
- feat: dig under the hood → look under the hood by @hippietrail in #3878
- feat: in the same vain/vane/veins → in the same vein by @hippietrail in #4216
- feat: claim for fame → claim to fame by @hippietrail in #4221
- build(deps): bump ordered-float from 5.3.0 to 5.5.0 by @dependabot[bot] in #4225
- build(deps): bump pollster from 0.4.0 to 1.0.1 by @dependabot[bot] in #4227
- feat: seize to do → cease to do by @hippietrail in #4235
- fix(web): allow the Firefox extension to POST by @elijah-potter in #4231
- fix(web): weird spacing on the landing page by @elijah-potter in #4237
- refactor: upgrade VeryLess to Rust linter to handle "too less" etc. by @hippietrail in #4229
- feat: correct wrong variants of welcome/greet with open arms by @hippietrail in #4241
- chore: dictionary curation by @hippietrail in #4230
- feat(desktop): add a WindowsBroker and use the Automation API to read text from apps by @elijah-potter in #4174
- feat(desktop): be able to apply suggestions by @elijah-potter in #4175
- refactor(desktop): remove default implementations of OsBroker by @elijah-potter in #4176
- feat(desktop): add methods to query installed applications by @elijah-potter in #4214
- feat(desktop): ignore disabled integrations on Windows by @elijah-potter in #4239
- feat(desktop): add padding to highlight hit boxes by @elijah-potter in #4240
- fix(desktop): suggestions will close before user interaction by @elijah-potter in #4243
- feat(desktop): disable highlights while windows move by @elijah-potter in #4245
- build(desktop): prepare workflow for building Windows by @elijah-potter in #4246
Full Changelog: v2.8.0...v2.9.1 |
| 2.8.0 | 13 d’agost del 2026 | — | 64 bits ZIP Notes de la versióWhat's Changed
- feat(core): create pool of instantiated linters to amortize construction cost by @elijah-potter in #3904
- build(deps): bump regex from 1.12.3 to 1.13.1 by @dependabot[bot] in #3784
- feat(web): produce graphs and tables for reports by @elijah-potter in #3858
- fix(chrome-ext): do not allow lint updates to run at the same time or get dropped by @elijah-potter in #3908
- feat: PCB board redundancy by @hippietrail in #3919
- feat(dictionary): add entries for 'precess' and derivatives by @Silzinc in #3877
- build(deps): bump serde_with from 3.20.0 to 3.21.0 by @dependabot[bot] in #3831
- feat: take care about→take care of by @hippietrail in #3927
- fix(core): more adjustments to SplitWords by @elijah-potter in #3922
- feat: don't lint .DS_Store or .json files in dirs in harper-cli lint and just lint by @hippietrail in #3401
- chore: "YAMLs" was incorrectly generated by @hippietrail in #3928
- fix(core): avoid to-too false positives outside adjective contexts by @hydraxman in #3883
- feat(bench): add WASM benchmark harness and native allocation profiler by @k4sperski in #3153
- fix: avoid memory leak in JS products by @elijah-potter in #3917
- fix: "a software renderer" no longer flagged by @hippietrail in #3945
- docs(github): add a new option to the "AI Disclosure section" by @hippietrail in #3947
- chore: dictionary curation by @hippietrail in #3953
- build(deps): bump uuid from 1.23.0 to 1.24.0 by @dependabot[bot] in #3963
- build(deps): bump indexmap from 2.13.1 to 2.14.0 by @dependabot[bot] in #3962
- build(deps): bump clap from 4.6.0 to 4.6.1 by @dependabot[bot] in #3246
- fix(core): tag fought and wrought as past forms by @hydraxman in #3930
- Dictionary curation 2026 08 04 b by @hippietrail in #3965
- feat: accuse for→accuse of by @hippietrail in #3976
- chore: dictionary curation by @hippietrail in #3977
- fix: distracting warning in desktop app by @hippietrail in #4005
- fix(core): proper-noun coverage for Apple i-products and product phrases by @johndecker3 in #3436
- fix(core): preserve camelCase proper nouns in title case by @johndecker3 in #3438
- fix: remove dead TAILWIND_MODE env var that breaks Windows builds by @willherr72 in #3957
- build(deps): bump actions/stale from 10 to 11 in the actions-major group across 1 directory by @dependabot[bot] in #4003
- feat: implement into→implement in by @hippietrail in #3959
- chore: dictionary curation by @hippietrail in #4018
- Add Elixir as a supported language (comments only) by @jaller698 in #3934
- feat(core): flag extraneous "so" in "very much so" by @ozpool in #3817
- Obsidian sidebar by @LukeBenhase in #3915
- fix(obsidian): plugin failing to load due to race condition by @elijah-potter in #4020
- build(deps): bump rand from 0.10.1 to 0.10.2 by @dependabot[bot] in #4027
- build(deps): bump libfuzzer-sys from 0.4.12 to 0.4.13 by @dependabot[bot] in #4026
- build(deps): bump ruzstd from 0.8.3 to 0.9.0 by @dependabot[bot] in #4025
- feat(core): add zero-width negation expression by @floze-the-genius in #3850
- fix(core): add "understand" to the irregular verb list by @mauropereiira in #4036
- feat: unpossible etc. → impossible by @hippietrail in #3081
- chore: some .toml files had divergent description, edition, or version fields by @hippietrail in #3969
- fix(core): remove redundant copy of dictionary in FstDictionary by @elijah-potter in #4030
- fix(desktop): persist onboarding completion by @mauropereiira in #4022
- Fix/slack quill editor linting by @iuooip in #4033
New Contributors
- @Silzinc made their first contribution in #3877
- @hydraxman made their first contribution in #3883
- @johndecker3 made their first contribution in #3436
- @willherr72 made their first contribution in #3957
- @jaller698 made their first contribution in #3934
- @ozpool made their first contribution in #3817
- @LukeBenhase made their first contribution in #3915
- @floze-the-genius made their first contribution in #3850
- @mauropereiira made their first contribution in #4 |
| 2.7.0 | 28 de juliol del 2026 | — | 64 bits ZIP Notes de la versióWhat's Changed
- refactor: more vec ctors and builders converted to iterators per #3670 by @hippietrail in #3712
- build(deps): bump egui from 0.34.2 to 0.34.3 by @dependabot[bot] in #3674
- build(deps): bump the actions-minor-patch group across 1 directory with 3 updates by @dependabot[bot] in #3695
- build(deps): bump nokogiri from 1.19.3 to 1.19.4 by @dependabot[bot] in #3701
- feat: max exodus→mass exodus by @hippietrail in #3637
- feat: add "standard option" to Oxymorons by @hippietrail in #3651
- feat: level of details→level of detail/levels of detail by @hippietrail in #3486
- feat: on one's own accord→of one's own accord by @hippietrail in #3646
- feat: on top off/ontop off/on topof → on top of by @hippietrail in #3400
- feat: that's here nor there→that's neither here nor there by @hippietrail in #3606
- feat: as much than→as much as by @hippietrail in #3493
- feat: Expand conf, config, perf, and pref by @hippietrail in #3535
- feat: over [number] plus→over [number] + [number] plus by @hippietrail in #3634
- Fixes three false positives when "A" or "B" are school test grades by @hippietrail in #3718
- feat: no longer I→I no longer by @hippietrail in #3611
- fix: remove debug print statements and related comments by @hippietrail in #3358
- refactor: standardize inline bounds syntax for linters by @hippietrail in #3601
- refactor: PhrasalVerbAsCompoundNoun now doesn't flag "meltdown ended up" by @hippietrail in #3599
- feat: in this/that regards→in this/that regard by @hippietrail in #3482
- feat: in retaliation to→in retaliation for/in response to by @hippietrail in #3476
- feat: jump a gun/jump the guns→jump the gun by @hippietrail in #3404
- feat:by my own→on my own/by myself by @hippietrail in #3322
- docs: add inline-scribe to Projects Using Harper by @mk668a in #3719
- feat: a mean to an end→a means to an end by @hippietrail in #3720
- refactor(core): introduce SequenceExpr::number() constructor by @hippietrail in #3732
- build(deps): bump actions/checkout from 6.0.3 to 7.0.0 in the actions-major group by @dependabot[bot] in #3727
- fix: allow lowercase mp3 after an by @cfcryptotrader-rgb in #3369
- Expose English isolation in harper.js and browser extension by @mirsella in #3669
- build(deps): bump faraday from 1.10.5 to 1.10.6 by @dependabot[bot] in #3735
- feat: call it quit→call it quits by @hippietrail in #3740
- feat(core): criterion by @elijah-potter in #3698
- docs: copy the agent policy to be inside the repository by @elijah-potter in #3738
- docs(obsidian): make the "Ignored Files" setting description more helpful by @elijah-potter in #3737
- build(deps): bump sysinfo from 0.38.4 to 0.39.5 by @dependabot[bot] in #3747
- feat: lint the Source Control commit message box by @dmytrosorokame in #3729
- chore: dictionary curation for 2026/06/13 by @hippietrail in #3654
- docs(harper-ls): declare that we only support the latest stable Rust version by @elijah-potter in #3745
- refactor(desktop): make things human-readable by @elijah-potter in #3734
- refactor(web): de-slopify and centralize components by @elijah-potter in #3744
- feat: link list→linked list by @hippietrail in #3742
- refactor: centralize suggestion transformation depth limit #3597 by @jdgajjar in #3614
- build(deps): bump cargo-bins/cargo-binstall from f8810ffa11196f23afb38e6fb64716fbf814ad8f to 910d9e4456ce4b039662d2a02a34ef1d23c3c50c by @dependabot[bot] in #3728
- refactor: missed lint message .to_string() change to .to_owned() by @hippietrail in #3749
- feat: for nth time→for the nth time by @hippietrail in #3750
- feat: clearly state that the desktop app is in beta by @elijah-potter in #3751
- fix(desktop): improve battery life by @elijah-potter in #3753
- Avoid mass noun lints for ing modifiers by @puneetdixit200 in #3457
- fix(core): use default_config.json as the canonical config by @elijah-potter in #3755
- perf(lint-framework): remove unconditional lint polling by @Elias0419 in #3678
- feat: truth to the fact→truth to the claim etc. by @h |
| 2.6.0 | 24 de juny del 2026 | — | 64 bits ZIP Notes de la versióWhat's Changed
- feat: now a days→nowadays; add to discourse markers by @hippietrail in #3392
- feat: the entire of→the entirety of by @hippietrail in #3604
- feat: leaving in drones→leaving in droves by @hippietrail in #3636
- fix(core): support multiple brackets in rune matcher by @marcbachmann in #3608
- feat: tho→though by @hippietrail in #3526
- feat(desktop): mark support for Slack and Discord by @elijah-potter in #3641
- docs: grammar fix(es) in contributors/desktop by @hippietrail in #3645
- feat: dir → directory by @hippietrail in #3470
- fix: don't flag missing "to" between "want" and a noun+verb word by @hippietrail in #3649
- feat(cli): allow forms subcommand to accept multiple arguments by @abhishekDeshmukh74 in #2996
- feat: app picker bundle ID lookup by @hippietrail in #3653
- feat: as compare to→as compared to by @hippietrail in #3647
- refactor: introduce SequenceExpr::word_seq() by @hippietrail in #3659
- Add version numbers next to key integrations that are often not up-to-date with the GitHub version by @hippietrail in #3553
- feat: (since) indefinite durations by @hippietrail in #3283
- feat: a handful of more → a handful more by @hippietrail in #3223
- feat: convenient store→convenience store by @hippietrail in #3113
- feat: the last days→the last few days by @hippietrail in #3268
- feat: feet/inches and minutes/seconds from '/" to ′/″ by @hippietrail in #3275
- feat: fix run into problem/a trouble/troubles by @hippietrail in #3685
- feat: in depth→in-depth by @hippietrail in #3684
- docs: Describe what a Harper Committer is by @elijah-potter in #3687
- feat: cross platform→cross-platform by @hippietrail in #3689
- feat: and the such→and such; as long that→as long as by @hippietrail in #3675
- feat: hazzle→hassle by @hippietrail in #3690
- feat: in do course→in due course by @hippietrail in #3693
- chore(dict): add 'Juneteenth' to dictionary by @yunusey in #3692
- feat: read and write→reads and writes/read and write by @hippietrail in #3697
- chore(harper.js): update examples to latest API by @elijah-potter in #3668
- Add PhrAIse to "Projects Using Harper" by @hqrrr in #3676
- fix(chrome-ext): work within Gutenberg <iframe />s by @elijah-potter in #3702
- fix(obsidian): stale data on the Settings page by @elijah-potter in #3703
- feat(gitcommit): use tree-sitter for gitcommit by @Crysthamus in #3681
- refactor: optimize FirstMatchOf/LongestMatchOf ctors to accept generic iterators by @hippietrail in #3670
- feat: to to -> to do by @Cyncrovee in #3294
- feat(desktop): better search and icons for app modal by @elijah-potter in #3704
New Contributors
- @marcbachmann made their first contribution in #3608
- @abhishekDeshmukh74 made their first contribution in #2996
- @yunusey made their first contribution in #3692
- @hqrrr made their first contribution in #3676
- @Crysthamus made their first contribution in #3681
- @Cyncrovee made their first contribution in #3294
Full Changelog: v2.5.0...v2.6.0 |
| 2.5.0 | 11 de juny del 2026 | — | 64 bits ZIP Notes de la versióWhat's Changed
- fix(core): false-positive after contraction by @elijah-potter in #3595
- fix(core): ignore the letter s when found in a parenthesis after a word by @elijah-potter in #3596
- feat(weir): add BoarderBorder rule to catch boarder/border word confusion by @jlaportebot in #3481
- feat: impressed of→impressed by/with by @hippietrail in #3566
- fix(title_case): don't capitalize am/pm in time expressions by @jlaportebot in #3456
- fix: treat semicolons as chunk separators by @azmifarih in #3426
- feat: GOP party → GOP / Grand Old Party by @hippietrail in #3232
- fix(desktop): make macOS accessibility activation work when AXEnhancedUserInterface is rejected by @markduan in #3600
- refactor: standardize on .to_owned() for message in linters by @hippietrail in #3569
- feat: as how→as to how by @hippietrail in #3629
- docs: add Indian English to web meta/description by @hippietrail in #3626
- feat: a complain→a complaint by @hippietrail in #3622
- fix: digged→dug by @hippietrail in #3618
- feat: indian english "godown" is "warehouse" elsewhere by @hippietrail in #3619
- feat: out (of) the window variant matching dialect by @hippietrail in #3620
- feat: lmk→let me know by @hippietrail in #3616
- feat: inspired from→inspired by by @hippietrail in #3427
- feat: in the very least→at the very least by @hippietrail in #3441
- feat: quiet switch for harper-cli lint by @hippietrail in #3583
- feat: environmental variable→environment variable by @hippietrail in #3537
- Capitalize off by @hippietrail in #3521
- feat: now know as→now known as by @hippietrail in #3609
- dictionary curation 2026-06-05 by @hippietrail in #3598
- fix: don't flag when contraction comes after a form of be, only before by @hippietrail in #3572
- build(deps): bump serde_json from 1.0.149 to 1.0.150 by @dependabot[bot] in #3624
New Contributors
- @azmifarih made their first contribution in #3426
- @markduan made their first contribution in #3600
Full Changelog: v2.4.0...v2.5.0 |
| 2.4.0 | 4 de juny del 2026 | — | 64 bits ZIP Notes de la versióWhat's Changed
- docs: add Desktop app to list of platforms by @hippietrail in #3530
- feat: fellow coworker→fellow worker/coworker by @hippietrail in #3478
- feat: proof-of-concepts→proofs-of-concept by @hippietrail in #3562
- feat: pay for check/fee/price→pay check/fee/price by @hippietrail in #3567
- docs: add comprehensive website contribution guide by @jdgajjar in #3561
- fix: don't flag more low-hanging fruit→lower-hanging by @hippietrail in #3571
- chore: pin third-party GitHub Actions to commit SHAs by @mahangu in #3573
- fix: don't flag CVEs by @hippietrail in #3582
- feat: at face values→at face value by @hippietrail in #3578
- chore: dictionary curation by @hippietrail in #3579
- Update vulnerable JS transitive dependencies by @lancewillett in #3555
- feat(desktop): expand role selection by @elijah-potter in #3546
- fix: prevent false positive "quite" → "quiet" (#3560) by @jdgajjar in #3575
- refactor: avoid complex type warning by @hippietrail in #3570
- feat: the the→that the by @hippietrail in #3549
- feat: incidence report→incident report by @hippietrail in #3593
- refactor(desktop): misc. changes and documentation by @elijah-potter in #3594
- fix(harper.js): slow message passing from slow cache lookups by @elijah-potter in #3588
- build(deps): bump tar from 0.4.45 to 0.4.46 by @dependabot[bot] in #3547
- build(deps): bump jwt from 2.10.3 to 3.2.0 by @dependabot[bot] in #3534
- build(deps): bump lru from 0.16.3 to 0.18.0 by @dependabot[bot] in #3556
- feat: curious/unsure to why etc→as to why etc by @hippietrail in #3538
- chore: add chocked/chucked/choked full to chock-full linter by @hippietrail in #3335
- feat: cache 22/cash 22→catch 22 by @hippietrail in #3548
- feat: USD dollars→USD/US dollars by @hippietrail in #3467
- build(deps): bump the actions-major group with 6 updates by @dependabot[bot] in #3585
New Contributors
- @jdgajjar made their first contribution in #3561
- @mahangu made their first contribution in #3573
- @lancewillett made their first contribution in #3555
Full Changelog: v2.3.1...v2.4.0 |
| 2.3.1 | 29 de maig del 2026 | — | 64 bits ZIP Notes de la versióWhat's Changed
- feat(desktop): add report issue buttons to menus by @elijah-potter in #3543
- fix(desktop): rename to Harper by @elijah-potter in #3542
- Dictionary curation for May 22, 2026 by @hippietrail in #3469
- fix(desktop): exit child when parent stops by @elijah-potter in #3544
- fix(web): make correct font "important" by @elijah-potter in #3545
Full Changelog: v2.3.0...v2.3.1 |
| 2.2.1 | 23 de maig del 2026 | — | 64 bits ZIP Notes de la versióWhat's Changed
- fix(ci): produce universal desktop binaries by @elijah-potter in #3462
- feat(desktop): generate Harper-branded icons by @elijah-potter in #3430
- Quarto language detection for vscode by @silverhikari in #3465
- refactor: OwnedExprExt::and_not → but_not by @hippietrail in #3399
- feat: add check vs cheque, tire vs tyre by @hippietrail in #3472
- Website redesign and Harper Desktop page by @JasonTheAdams in #3439
New Contributors
- @silverhikari made their first contribution in #3465
Full Changelog: v2.2.0...v2.2.1 |
| 2.2.0 | 21 de maig del 2026 | — | 64 bits ZIP Notes de la versióWhat's Changed
- feat: at lest→at least by @hippietrail in #3243
- chore: add "day of age" to DayAndAge rule by @hippietrail in #3272
- feat: less confident SplitWords message when either word is only 1 char by @hippietrail in #3265
- fix(chrome-plugin): auto-close report page on tab switch or navigation #3225 by @muhammed-mukthar in #3227
- docs: link to QOwnNotes and Grammate, two apps using Harper by @hippietrail in #3261
- feat: monumentously→momentously/monumentally by @hippietrail in #3264
- feat: separate web editor into own package by @elijah-potter in #3191
- docs: remove mentions of Matcher and WrongQuotes linters by @hippietrail in #3262
- build(deps): bump tree-sitter-scala from 0.25.0 to 0.26.0 by @dependabot[bot] in #3247
- feat: fond on→found on/fond of by @hippietrail in #3251
- feat: formidable years→formative years by @hippietrail in #3249
- chore: dictionary curation by @hippietrail in #3240
- feat: on hindsight/in hind sight etc.→in hindsight by @hippietrail in #3305
- feat: expand coord, vuln, notif, algo by @hippietrail in #3291
- Dictionary Curation 2025-05-01 by @hippietrail in #3279
- build(deps): bump clap_complete from 4.6.0 to 4.6.3 by @dependabot[bot] in #3301
- build(deps): bump tokio from 1.51.1 to 1.52.1 by @dependabot[bot] in #3300
- feat: side tangent→tangent/aside by @hippietrail in #3298
- refactor: move dictionary_io into own crate by @elijah-potter in #3307
- feat(harper.js): make it easier to ignore all lints by @elijah-potter in #3315
- fix: a some time→some time by @hippietrail in #3318
- fix(lint-framework): handle soft breaks in contenteditable text extraction by @draphy in #3317
- Redesign harper-editor UI by @JasonTheAdams in #3278
- feat: LLM model→LLM/large language model by @hippietrail in #3308
- fix: restore CallThem linter that got unlinked from the project at some point by @hippietrail in #3320
- feat: in favour doing→in favour of doing by @hippietrail in #3293
- feat: "there is" agreement by @hippietrail in #3303
- fix(chrome-ext): extend test timeout by @elijah-potter in #3328
- feat: argument to be said→argument to be made by @hippietrail in #3360
- chore: dictionary curation 2026-05-06 by @hippietrail in #3312
- build(deps): bump zip from 8.5.1 to 8.6.0 by @dependabot[bot] in #3341
- build(deps): bump tree-sitter-c from 0.24.1 to 0.24.2 by @dependabot[bot] in #3342
- feat: add backtick as another wrong-apostrophe mistake by @hippietrail in #3349
- Let me laugh by @JasonTheAdams in #3365
- feat(desktop): create Harper Desktop by @elijah-potter in #3324
- fix(harper-typst): crash by @elijah-potter in #3366
- feat(desktop): fill out setup flow by @elijah-potter in #3381
- chore: Tickboxes for AI use and test provenance by @hippietrail in #3375
- style: clean up some imports by @86xsk in #3179
- fix(core): delegate to correct underlying method by @elijah-potter in #3387
- fix(ci): issue with Rust Cache on new macOS runners by @elijah-potter in #3389
- fix(harper-tex): out-of-bounds error by @elijah-potter in #3386
- feat(core): allow scope config in Weir rules by @elijah-potter in #3382
- build(desktop): create release workflow for Harper Desktop by @elijah-potter in #3388
- feat(core): create CantWay rule by @elijah-potter in #3383
- fix(core): refine BetterOffPhrase contexts by @cfcryptotrader-rgb in #3376
- feat: long time ago→a long time ago by @hippietrail in #3395
- feat: add ThereOwn linter for "there own" → "their own" by @kimjune01 in #3336
- Fix FindFine false positive on 'is find ' by @SAY-5 in #3363
- Add verb past form only helpers by @impetus82 in #3379
- feat: just with default recipe now prints a help message by @ninjamar in #3414
- feat: for free of charge → for free / free of charge by @hippietrail in #3413
- feat: improve just clean and hard-clean recipes by fixing some bugs by @ninjamar in #3415
- build(deps): bump tree-sitter-swift from 0.7.1 to 0.7.2 by @dependabot[bot] in #3411
- build(deps): bump tree-sitter-c-sharp from 0.23.1 to 0.23.5 by @dependabot |
| 2.1.0 | 24 d’abril del 2026 | — | 64 bits ZIP Notes de la versióWhat's Changed
- fix(chrome-ext): Harper not activating in Instagram DMs by @elijah-potter in #3145
- fix: all to/too linters now use same LintKind by @hippietrail in #3135
- chore: dictionary curation 2026/04/02 by @hippietrail in #3094
- refactor(core)!: remove unused argument/member by @86xsk in #3072
- feat: just ls-config, grep-config, and grep-config-settings by @hippietrail in #3144
- feat: add soft-clean and hard-clean recipes to justfile by @ninjamar in #3142
- fix: "it damages the environment" by @hippietrail in #3149
- fix: refering -> referring in damages message string by @Inhishonor in #3148
- fix(core): many small issues by @elijah-potter in #3150
- build(deps): bump zip from 8.5.0 to 8.5.1 by @dependabot[bot] in #3163
- build(deps): bump tokio from 1.50.0 to 1.51.1 by @dependabot[bot] in #3162
- build(deps): bump tree-sitter-asciidoc from 0.6.0 to 0.7.0 by @dependabot[bot] in #3160
- build(deps): bump rand from 0.10.0 to 0.10.1 by @dependabot[bot] in #3159
- fix(dict): remove stale ElasticSearch entry in favour of Elasticsearch by @unlimitedsola in #3154
- feat(chrome-ext): add delay option by @elijah-potter in #3166
- refactor(core): refactor TokenStringExt by @86xsk in #2888
- feat(core): rule that requires that the dash between numbers in a range is an en dash by @elijah-potter in #2961
- fix(core): address several outstanding issues by @elijah-potter in #3169
- feat: code on rust→code in rust etc. by @hippietrail in #3172
- fix: don't flag "should soft-fork" by @hippietrail in #3171
- feat: govt → government by @hippietrail in #3212
- feat: close/tight nit → knit by @hippietrail in #3200
- fix: lint comments after shebangs by @lawrence3699 in #3199
- refactor: don't flag "a fun and fantastic" by @hippietrail in #3201
- build(deps): bump thin-vec from 0.2.14 to 0.2.16 by @dependabot[bot] in #3182
- Hereby: require verb that is not also a noun by @joaquinhuigomez in #3213
- feat: more than what meets the eye/more that meets the eye→more than meets the eye by @hippietrail in #3178
- feat: infliction point → inflection point by @hippietrail in #3216
- Dictionary curation 2026 04 14 by @hippietrail in #3189
- fix: delete superseded linter by @hippietrail in #3231
- chore: dictionary curation by @hippietrail in #3228
- fix(vscode): pre-select current dialect in the dialect picker by @LanceYing2004 in #3198
New Contributors
- @ninjamar made their first contribution in #3142
- @unlimitedsola made their first contribution in #3154
- @lawrence3699 made their first contribution in #3199
- @LanceYing2004 made their first contribution in #3198
Full Changelog: v2.0.0...v2.1.0 |
| 2.0.0 | 8 d’abril del 2026 | — | 64 bits ZIP Notes de la versióWhat's Changed
Hey all! We're finally releasing Harper 2.0. Why?
It isn't because we have any new groundbreaking features in this release, because we don't let major versioning stop us from pushing those out as soon as they're ready. It's because we have some breaking changes.
The biggest one only applies to you if you consume harper.js. From now on, instead of importing your binary from the main Harper module, you'll import it from one of four specialized modules.
Previously, you'd import the Harper WebAssembly binary with:
import { LocalLinter, binary } from "harper.js";
As of Harper 2.0, you'll import it like this:
import { LocalLinter } from "harper.js";
import { binary } from "harper.js/binary";
It's that simple! Thanks to this change, you'll find that your applications are more conducive to tree-shaking and therefore might even be a bit smaller!
In addition to that large breaking change, we also have a bunch of smaller improvements rolling out. I won't go through them one by one, but you're free to read through any of the linked pull requests below.
- refactor(core): use Option::get_or_insert_with by @86xsk in #2977
- test(linting): add comprehensive test cases for were/where lint rule by @estefafdez in #2984
- feat: means a lot for→means a lot to by @hippietrail in #2982
- feat: add subcommand to generate shell completions by @deckstose in #2978
- refactor(core): extract indefinite article logic into its own module by @mvanhorn in #2980
- feat(web): auto-detect dark theme from OS preference in #2963
- build(deps): bump tar from 0.4.44 to 0.4.45 by @dependabot[bot] in #2986
- feat: as evident by -> as evidenced by by @mvanhorn in #2985
- fix(core): SplitWords allowing uncommon merges by @elijah-potter in #2874
- feat: add lint rule for flaunt/flout mix-up in #2962
- test: add regression tests for need_to_noun false positives (#2320) by @majiayu000 in #3014
- fix: case-insensitive same-form check in SimplePastToPastParticiple by @saschabuehrle in #3012
- build(deps): bump pulldown-cmark from 0.13.1 to 0.13.3 by @dependabot[bot] in #3002
- build(deps): bump tree-sitter-rust from 0.24.0 to 0.24.1 by @dependabot[bot] in #3003
- build(deps): bump zip from 8.1.0 to 8.3.1 by @dependabot[bot] in #3000
- build(deps): bump cached from 0.56.0 to 0.59.0 by @dependabot[bot] in #3001
- chore(harper.js): update raw-web example to 1.12.0 by @elijah-potter in #3015
- feat: "a" & "an" both OK for "URL" by @hippietrail in #2981
- feat: except of→except for / exception of by @hippietrail in #2997
- build(deps): bump rustls-webpki from 0.103.8 to 0.103.10 by @dependabot[bot] in #2991
- feat: aspire for → aspire to by @hippietrail in #3004
- docs: added link to agent policy by @elijah-potter in #3016
- fix(lint-framework): reconnect popup host after DOM replacement by @k4sperski in #2998
- fix(harper-cli): return exit code 0 when no lints are found by @Ryujiyasu in #2836
- chore: dictionary curation 2026-03-19 by @hippietrail in #2968
- Added native Neovim LSP config to docs by @RobertCrummett in #2987
- fix: don't flag "more orange than red" etc. by @hippietrail in #2928
- perf(core): cache WordSet in ModalVerb by @86xsk in #3017
- feat: flag "use to" when "used to" is intended in #2975
- feat: flag nonstandard "verse" used as a verb (from "versus") in #2973
- feat: flag "date back from" as blend of "date from" and "date back to" in #2976
- feat(core): allow users to include dictionaries in Weirpacks by @elijah-potter in #2922
- feat: try out one's luck→try one's luck by @hippietrail in #2916
- fix(chrome-ext): reverse the toggle button to it appears "on" by @elijah-potter in #3026
- chore: dictionary curation by @hippietrail in #3023
- Improve embedded form support in iframes by @k4sperski in #3010
- refactor: compact token/lint content & char comparison by @hippietrail in #2957
- feat: expression to match pronoun-be, word pair or contraction by @hippietrail in #2944
- fix(chrome-ext): persist lint rule changes from settings page by @queeli |
| 1.12.0 | 19 de març del 2026 | — | 64 bits ZIP Notes de la versióWhat's Changed
- fix(chrome-ext): formatting issues on Google Docs by @elijah-potter in #2960
- feat: grind to halt → grind to a halt by @hippietrail in #2972
- fix: correct typos and grammar in docs and comments by @cl2t in #2971
- feat: bullocks→bollocks by @hippietrail in #2970
- feat: add lint rule for "more that likely" typo by @ctonneslan in #2964
- fix: solve issue #2966 by @hippietrail in #2967
- feat: I am worry→I am worried by @hippietrail in #2943
- feat: add lint rule for "cutting age" eggcorn by @ctonneslan in #2965
- feat: at the expanse of→at the expense of by @hippietrail in #2926
New Contributors
- @cl2t made their first contribution in #2971
- @ctonneslan made their first contribution in #2964
Full Changelog: v1.11.0...v1.12.0 |
| 1.11.0 | 18 de març del 2026 | — | 64 bits ZIP Notes de la versióWhat's Changed
- chore: dictionary curation by @hippietrail in #2867
- feat: do a mistake→make a mistake by @hippietrail in #2463
- refactor: two-digit decade support by @hippietrail in #2911
- fix: warn about clashing linter names by @hippietrail in #2374
- feat(core): flag redundant use of progressive verbs followed by "more" by @elijah-potter in #2859
- feat: hit the nail in the head→on the head by @hippietrail in #2918
- build(deps): bump tempfile from 3.20.0 to 3.27.0 by @dependabot[bot] in #2939
- build(deps): bump tree-sitter-lua from 0.4.1 to 0.5.0 by @dependabot[bot] in #2938
- build(deps): bump clap from 4.5.60 to 4.6.0 by @dependabot[bot] in #2937
- fix(core): test which was testing the wrong thing by @elijah-potter in #2946
- feature/obsidian-colored lints by @stanley-910 in #2931
- refactor: once_cell→LazyLock by @hippietrail in #2942
- deps: bump rand to 0.10.0 by @86xsk in #2947
- feat: commitment toward(s) → commitment to by @hippietrail in #2948
- feat: add geo acronyms by @tongpu in #2687
- feat: bump spell fixes differing by an apostrophe by @hippietrail in #2927
- build(deps): bump once_cell from 1.21.3 to 1.21.4 by @dependabot[bot] in #2936
- feat(chrome-ext): replace icons with cleaner variants by @elijah-potter in #2949
- feat: reason of doing→reason for doing by @hippietrail in #2953
- feat: the different(s) between→the difference between by @hippietrail in #2951
- Dictionary curation 2026 03 13 by @hippietrail in #2941
- perf(core): avoid cloning in DictWordMetadata::append by @86xsk in #2912
- refactor: most ExprLinters don't need to be boxed by @hippietrail in #2885
- feat: womans→women, writed→wrote, etc. by @hippietrail in #2812
New Contributors
- @tongpu made their first contribution in #2687
Full Changelog: v1.10.0...v1.11.0 |
| 1.10.0 | 11 de març del 2026 | — | 64 bits ZIP Notes de la versióWhat's Changed
- build(deps): bump pulldown-cmark from 0.13.0 to 0.13.1 by @dependabot[bot] in #2848
- build(deps): bump chrono from 0.4.43 to 0.4.44 by @dependabot[bot] in #2852
- build(deps): bump quickcheck from 1.0.3 to 1.1.0 by @dependabot[bot] in #2850
- chore: dictionary curation by @hippietrail in #2822
- build(deps): bump zip from 8.0.0 to 8.1.0 by @dependabot[bot] in #2849
- build(deps): bump strum_macros from 0.27.2 to 0.28.0 by @dependabot[bot] in #2851
- feat: hidden into→hidden in by @hippietrail in #2844
- feat: the point for→the point of by @hippietrail in #2834
- feat(core): more edge cases in MissingTo rule by @lewismiddleton in #2837
- feat(core): chalkboard is a closed compound by @elijah-potter in #2858
- feat(chrome-ext): build out support for the online Typst playground by @elijah-potter in #2706
- fix(core): edge case in ItsPossessive rule by @elijah-potter in #2857
- feat: print linter match with context by @hippietrail in #2303
- feat: fed up of→fed up with by @hippietrail in #2833
- feat(obsidian): listen to changes to data.json by @elijah-potter in #2868
- fix(obsidian): remove default hotkey by @elijah-potter in #2869
- feat: get used of→get used to by @hippietrail in #2831
- fix: don't flag "our IT" by @hippietrail in #2872
- feat: flag "often never" and similar by @hippietrail in #2871
- fix(core): recognize "esp." as an abbreviation by @NaveenPrasanth in #2816
- fix(core): adjust how words are iterated in title_case by @elijah-potter in #2875
- feat: off coarse→of course by @hippietrail in #2878
- feat(chrome-ext): support for Google Docs by @elijah-potter in #2791
- refactor(core): refactor code in MissingTo by @86xsk in #2876
- feat: IIUC→if I understand correctly by @hippietrail in #2896
- build(deps): bump tree-sitter-powershell from 0.25.10 to 0.26.3 by @dependabot[bot] in #2890
- build(deps): bump uuid from 1.21.0 to 1.22.0 by @dependabot[bot] in #2889
- build(deps): bump tokio from 1.49.0 to 1.50.0 by @dependabot[bot] in #2891
- fix(harper-tex): math mode problems by @elijah-potter in #2899
- build(deps): bump sysinfo from 0.38.2 to 0.38.3 by @dependabot[bot] in #2893
- refactor: tests for spell/mod.rs and and linting/spell_check.rs were arbitrarily mixed by @hippietrail in #2809
- feat: aware about→aware of by @hippietrail in #2902
- feat: it´s→it's by @hippietrail in #2884
- feat: in some degree→to some degree by @hippietrail in #2883
- feat(chrome-ext): surface update instructions by @elijah-potter in #2873
- feat: take/claim/assume responsibility of→responsibility for by @hippietrail in #2880
- feat: correct decades with apostrophes by @hippietrail in #2886
- fix(core): false positives in the NeedToNoun rule by @elijah-potter in #2905
- fix(chrome-ext): formatted text in Google Docs causing false-positives by @elijah-potter in #2904
- feat: rise the ranks→rise through/from the ranks by @hippietrail in #2903
- perf(core): add early exits for lex_url, lex_email_address by @86xsk in #2910
- build(deps): bump quinn-proto from 0.11.13 to 0.11.14 by @dependabot[bot] in #2908
- fix(core): VerbToAdjective false positives by @elijah-potter in #2906
- feat: not only it is→not only is it by @hippietrail in #2907
- feat: compulse→compel by @hippietrail in #2909
- feat(harper-cli): add --format flag with json and compact output modes by @dumb-kevin in #2843
New Contributors
- @lewismiddleton made their first contribution in #2837
- @dumb-kevin made their first contribution in #2843
Full Changelog: v1.9.0...v1.10.0 |
| 1.9.0 | 27 de febrer del 2026 | — | 64 bits ZIP Notes de la versióWhat's Changed
- Propagating newer methods of SequenceExpr through the codebase by @hippietrail in #2759
- feat(core): many more Weir rules by @elijah-potter in #2742
- feat(chrome-ext): the ability to load/unload Weirpacks by @elijah-potter in #2752
- fix(chrome-ext): suggestions being displayed as 0 by @elijah-potter in #2757
- feat: PowerShell comments support by @elijah-potter in #2762
- feat(core): dictionary additions by @scop in #2636
- feat(cli): support --no-color flag and NO_COLOR env var by @verri in #2738
- fix(core): adjust ToTwoToo linter to ignore transitions by @elijah-potter in #2761
- Dictionary curation for Feb 20, 2026 by @hippietrail in #2768
- build(deps): bump strum from 0.27.2 to 0.28.0 by @dependabot[bot] in #2782
- build(deps): bump uuid from 1.20.0 to 1.21.0 by @dependabot[bot] in #2781
- build(deps): bump anyhow from 1.0.101 to 1.0.102 by @dependabot[bot] in #2779
- feat: for argument sake→for argument's sake by @hippietrail in #2774
- build(deps): bump libfuzzer-sys from 0.4.10 to 0.4.12 by @dependabot[bot] in #2778
- fix(core): make the ItsPossessive rule more robust by @elijah-potter in #2769
- build(deps): bump clap from 4.5.57 to 4.5.60 by @dependabot[bot] in #2780
- chore: Curate dictionary by @anyllmarkevich in #2724
- feat: wrote→rote by @hippietrail in #2794
- fix: don't flag "May of" by @hippietrail in #2795
- Flag plural "damages" when not used for judicial compensation by @hippietrail in #2365
- Dictionary curation 2026 02 22 by @hippietrail in #2785
- feat: add words from fantasy, politics, religion, and adverbs by @rauletaveras in #2643
- feat(chrome-ext): enable on all Substack sites by @elijah-potter in #2800
- chore: add "one fowl swoop" to "one foul swoop", rename from InOneFellSwoop by @hippietrail in #2758
- fix(core): stop flagging "Czech Republic" as outdated by @NaveenPrasanth in #2797
- fix: don't flag "can of" by @hippietrail in #2814
- feat(core): create rule to correct now way by @elijah-potter in #2806
- fix(harper-tex): parse triple-hyphens as an em-dash by @elijah-potter in #2805
- fix(core): coverage for confusion of they're/there/their by @elijah-potter in #2798
- fix(obsidian): avoid command palette crashes from null tooltip entries by @stanley-910 in #2804
- feat(web): add loading message to lazily-loaded editor by @elijah-potter in #2817
- feat: support adjectives in "on accident" by @hippietrail in #2828
- fear: for most part→for the most part by @hippietrail in #2827
- feat: seam→seem by @hippietrail in #2826
- feat: out of sink→out of sync/synch by @hippietrail in #2829
- feat: in hurry→in a hurry by @hippietrail in #2825
- feat(core): address edge cases in MissingTo rule by @elijah-potter in #2818
- feat(core): create rule to detect confusion between principle of and principal of by @elijah-potter in #2799
- feat: do diligence→due diligence/do due diligence by @hippietrail in #2810
- fix(obsidian): find temporary fix for escape button override by @elijah-potter in #2819
- feat: all hell break out→all hell break loose by @hippietrail in #2813
- refactor: heuristic debugging easier by @hippietrail in #2508
- feat: if only there was→if only there were, etc. by @hippietrail in #2823
New Contributors
- @anyllmarkevich made their first contribution in #2724
- @NaveenPrasanth made their first contribution in #2797
Full Changelog: v1.8.0...v1.9.0 |
| 1.8.0 | 18 de febrer del 2026 | — | 64 bits ZIP Notes de la versióWhat's Changed
- build(thesaurus): reduce compression level for debug builds by @86xsk in #2694
- feat(chrome-ext): move the review request to 14 days after installation by @elijah-potter in #2707
- feat(web): show better explanation for how the Chrome extension works by @elijah-potter in #2712
- fix: add Zig to places I missed on the previous PR by @hippietrail in #2709
- fix: better fix for "more foreign" → "foreigner" by @hippietrail in #2711
- docs: update link to correct destination by @hulet in #2714
- Dictionary curation by @hippietrail in #2662
- feat(harper-comments): add Groovy support by @elijah-potter in #2713
- fix(chrome-ext): tips should refer to "Dismiss" button, not an "Ignore" button by @elijah-potter in #2719
- feat(ls): add support for TeX and derivative languages by @elijah-potter in #2689
- build(deps): bump bitflags from 2.10.0 to 2.11.0 by @dependabot[bot] in #2737
- build(deps): bump sysinfo from 0.38.1 to 0.38.2 by @dependabot[bot] in #2735
- build(deps): bump zip from 2.4.2 to 8.0.0 by @dependabot[bot] in #2733
- build(deps): bump futures from 0.3.31 to 0.3.32 by @dependabot[bot] in #2736
- build(deps): bump quickcheck_macros from 1.1.0 to 1.2.0 by @dependabot[bot] in #2734
- feat(core): a good helping of new Weir rules by @elijah-potter in #2710
- feat(cli): add support for TeX and derivative languages by @verri in #2731
- feat(obsidian): add keyboard tooltip actions by @stanley-910 in #2732
- feat: add adjective support to not longer→no longer by @hippietrail in #2723
- fix(web): hide the erroring "Last Updated" field by @elijah-potter in #2722
- feat:lead rise to→give rise to by @hippietrail in #2729
- fix(core): false positive in the ToTwoToo rule by @elijah-potter in #2721
- fix(core): false positive from ItsContraction by @elijah-potter in #2720
- feat: all be it/al be it→albeit by @hippietrail in #2741
- fix: adaptive message to address issue #2743 by @hippietrail in #2748
- fix: is_possessive_nominal() had wrong logic by @hippietrail in #2740
- feat: ctrl→control by @hippietrail in #2747
- fix(core): ignore top-level domains by @elijah-potter in #2750
- chore: dictionary curation 2026-02-14 by @hippietrail in #2728
- feat: did went→did go by @hippietrail in #2744
- feat: create an AGENTS.md by @elijah-potter in #2751
New Contributors
- @hulet made their first contribution in #2714
- @verri made their first contribution in #2731
- @stanley-910 made their first contribution in #2732
Full Changelog: v1.7.0...v1.8.0 |
| 1.7.0 | 11 de febrer del 2026 | — | 64 bits ZIP Notes de la versióWhat's Changed
- feat: worth to do → worth doing by @hippietrail in #2638
- build(deps): bump time from 0.3.41 to 0.3.47 by @dependabot[bot] in #2663
- refactor: use Span::empty to create empty spans by @86xsk in #2658
- feat(core): create expression references by @elijah-potter in #2664
- feat: replace DayAndAge Weir with more flexible linter by @hippietrail in #2666
- build(deps): bump criterion from 0.8.1 to 0.8.2 by @dependabot[bot] in #2678
- build(deps): bump sysinfo from 0.38.0 to 0.38.1 by @dependabot[bot] in #2677
- build(deps): bump anyhow from 1.0.100 to 1.0.101 by @dependabot[bot] in #2674
- feat: thru→through by @hippietrail in #2680
- fix(core): overlap removal did not respect priority by @elijah-potter in #2685
- fix: don't lowercase "This" by @hippietrail in #2651
- feat: layouted/layouting→laid out/laying out by @hippietrail in #2669
- build(deps): bump clap from 4.5.56 to 4.5.57 by @dependabot[bot] in #2675
- refactor(core): simplify loops via iterators by @86xsk in #2686
- fix: don't flag more foreign → foreigner by @hippietrail in #2659
- feat: atall→at all by @hippietrail in #2679
- feat: SplitWords makes multiple suggestions by @hippietrail in #2683
- feat: harper-cli accept common dialect synonyms, abbreviations by @hippietrail in #2562
- chore: justfile recipe names consistent+guessable by @hippietrail in #2581
- feat: Add Zig support by @hippietrail in #2688
- feat(obsidian): allow users to mask out text using regular expressions by @elijah-potter in #2684
- feat: not longer→no longer by @hippietrail in #2691
- fix(lint-framework): SuggestionKind.InsertAfter removing text by @elijah-potter in #2693
Full Changelog: v1.6.0...v1.7.0 |
| 1.6.0 | 4 de febrer del 2026 | — | 64 bits ZIP Notes de la versióWhat's Changed
- refactor(brill): remove lazy_static dependency by @86xsk in #2571
- feat: afterall → after all by @hippietrail in #2582
- perf(core): cache Wier ASTs by @86xsk in #2584
- deps(cli): bump ariadne from 0.4.1 to 0.6.0 by @86xsk in #2577
- feat: prev → previous by @hippietrail in #2598
- build(deps): bump uuid from 1.19.0 to 1.20.0 by @dependabot[bot] in #2595
- fix: confusing wording in OneOfTheSingular by @hippietrail in #2586
- feat: as of currently→ currently / as of now by @hippietrail in #2599
- chore: add words/annotations to curated dict by @86xsk in #2570
- feat: nor I would→nor would I by @hippietrail in #2590
- build(deps): bump sysinfo from 0.37.2 to 0.38.0 by @dependabot[bot] in #2594
- fix(chrome-ext): Draft.js multiline suggestion replacement corruption by @draphy in #2597
- fix: rm old vscode versions after just test-vscode by @hippietrail in #2574
- fix(chrome-ext): force visibility on Reddit by @elijah-potter in #2603
- docs(chrome-ext): notify users that Harper will clash with Gmail's grammar checker by @elijah-potter in #2605
- feat: yea/yeh →yeah by @hippietrail in #2604
- fix(obsidian-plugin): postpone initialization until layout is ready by @Vinzent03 in #2611
- feat: no only is there → not only is there by @hippietrail in #2610
- feat(chrome-ext): enable use of the CSS Custom Highlights API for Firefox by @elijah-potter in #2607
- refactor(core): adjustments in Number by @86xsk in #2591
- feat(core): write rule to correct cybersec -> cybersecurity by @elijah-potter in #2613
- fix(chrome-ext): improve test reliability by @elijah-potter in #2615
- feat: try one‘s hands at→try one‘s hand at by @hippietrail in #2614
- feat(core): add allows keyword to Weir by @elijah-potter in #2602
- build(deps): bump clap from 4.5.54 to 4.5.56 by @dependabot[bot] in #2641
- Flash in the pans -> Flashes in the pan by @hippietrail in #2621
- chore: curate dictionary by @hippietrail in #2580
- feat: go at war → go to war by @hippietrail in #2646
- fix(chrome-ext): preserve cursor position in generic contenteditable replacement by @draphy in #2617
- feat: peak behind the curtain→peek behind the curtain by @hippietrail in #2635
- fix: AsciiDoc support by @mcecode in #2633
- build(deps): bump bytes from 1.10.1 to 1.11.1 by @dependabot[bot] in #2647
- docs: add Tally to section for projects using Harper by @twocaretcat in #2645
- feat(core): improve debug formatting for Suggestion by @86xsk in #2619
- refactor(core): adjustments in lexing code by @86xsk in #2618
- feat: look one's nose down→look down one's nose by @hippietrail in #2644
- feat(core): introduce Weirpacks by @elijah-potter in #2491
- fix(lint-framework): preserve cursor position in textarea after applying suggestion by @draphy in #2650
- feat: like no tomorrow → like there's no tomorrow by @hippietrail in #2652
- build(test): improve test build time by @86xsk in #2648
- refactor(core): use a macro and document the methods by @elijah-potter in #2655
- build: panic = abort and lto = fat for release by @86xsk in #2572
- refactor(harper.js): we do not need named types for Weirpacks by @elijah-potter in #2657
New Contributors
- @twocaretcat made their first contribution in #2645
Full Changelog: v1.5.1...v1.6.0 |
| 1.5.1 | 22 de gener del 2026 | — | 64 bits ZIP Notes de la versióWhat's Changed
- fix(chrome-ext): problems with incorrect dialect selection and reversion by @elijah-potter in #2569
Full Changelog: v1.5.0...v1.5.1 |
| 1.4.1 | 8 de gener del 2026 | — | 64 bits ZIP Notes de la versióWhat's Changed
- fix(chrome-ext): properly support Zendesk by @elijah-potter in #2424
- refactor(cli): refactor Input and adjacent code by @86xsk in #2412
- fix(obsidian): bug causing the Indian dialect to crash the settings page by @elijah-potter in #2444
- fix: don't flag "need to run into" by @hippietrail in #2437
- feat: alloc→allocate/allocation deref→dereference ptr→pointer by @hippietrail in #2427
- build(deps): bump lru from 0.16.2 to 0.16.3 by @dependabot[bot] in #2440
- fix(harper.js): create disposal function and use it by @elijah-potter in #2445
Full Changelog: v1.4.0...v1.4.1 |
| 1.4.0 | 6 de gener del 2026 | — | 64 bits ZIP Notes de la versióWhat's Changed
- feat: be good in sth. → be good at sth. by @hippietrail in #2368
- fix: issue 1722 by @hippietrail in #2373
- fix: expand BestOfAllTime linter by @hippietrail in #2381
- fix: don't change 'you' to 'your' if the previous word is a verb by @hippietrail in #2390
- feat: behind the scene → behind the scenes by @hippietrail in #2382
- feat: implement Indian English dialect by @hippietrail in #2397
- fix: Handful was in linting/mod.rs but missing from linting/lint_group.rs by @hippietrail in #2401
- build(deps): bump serde_json from 1.0.145 to 1.0.148 by @dependabot[bot] in #2392
- refactor(core): simplify code by @86xsk in #2393
- fix: a vs an for "herb" and "SQL" by @hippietrail in #2385
- build(deps): bump tracing from 0.1.43 to 0.1.44 by @dependabot[bot] in #2371
- feat(cli): recognize *.markdown as Markdown by @scop in #2404
- feat: more abbreviation expansions by @hippietrail in #2310
- feat: as oppose to & double edge sword by @hippietrail in #2375
- feat: line(s) of codes→lines of code by @hippietrail in #2405
- Feature/add asciidoc support by @Crown0815 in #2407
- fix: mark "heading" as a countable noun by @hippietrail in #2379
- feat: escape goat → scapegoat by @hippietrail in #2408
- docs: fix broken links on Language Server page by @kaushik327 in #2421
- build(deps): bump clap from 4.5.53 to 4.5.54 by @dependabot[bot] in #2420
- build(deps): bump tree-sitter-lua from 0.2.0 to 0.4.1 by @dependabot[bot] in #2418
- chore: normalize annotations; fix characteristicallyally by @hippietrail in #2409
- feat: one of the thing → one of the things by @hippietrail in #2395
- feat: flag "the" used before possessive proper noun eg. "The Harper's code" by @hippietrail in #2331
- Untangle mixups between "flesh out" and "fully fledged" by @hippietrail in #2332
- chore: add "arise the question" to "rise the question" linter by @hippietrail in #2413
- feat: australian regionalism "blood nose" = "nosebleed" by @hippietrail in #2360
- feat(chrome-ext): request that users review the extension by @elijah-potter in #2359
- build(deps): bump tokio from 1.48.0 to 1.49.0 by @dependabot[bot] in #2419
- feat: foam out the mouth → foam at the mouth by @hippietrail in #2428
New Contributors
- @scop made their first contribution in #2404
- @Crown0815 made their first contribution in #2407
- @kaushik327 made their first contribution in #2421
Full Changelog: v1.3.0...v1.4.0 |
| 1.3.0 | 22 de desembre del 2025 | — | 64 bits ZIP Notes de la versióWhat's Changed
- feat: daml support by @Sengoku11 in #2347
- fix: false positive for "since N years old" by @hippietrail in #2342
- feat: make senses→make sense by @hippietrail in #2330
- build(deps): bump uuid from 1.18.1 to 1.19.0 by @dependabot[bot] in #2334
- feat: part of speeches → parts of speech by @hippietrail in #2346
- feat(chrome-ext): show Harper version string in the popup by @elijah-potter in #2348
- fix(chrome-ext): enable on GitHub CM Markdown fields by @elijah-potter in #2350
- fix: don't flag "plugin developer" by @hippietrail in #2370
- feat: oldest in the books→oldest in the book by @hippietrail in #2337
- feat: try to detect space in wrong spot between words by @hippietrail in #2363
- Dictionary curation 2025 12 10 by @hippietrail in #2336
- feat: as nauseam→ad nauseam by @hippietrail in #2354
- feat: every once and again→every once in a while & once again by @hippietrail in #2361
- docs: add section for projects using Harper by @elijah-potter in #2351
New Contributors
- @Sengoku11 made their first contribution in #2347
Full Changelog: v1.2.0...v1.3.0 |
| 1.2.0 | 11 de desembre del 2025 | — | 64 bits ZIP Notes de la versióWhat's Changed
- feat(core): many new rules by @elijah-potter in #2292
- fix: flag "piece of advise" by @hippietrail in #2266
- fix(web): problems with the title casing page by @elijah-potter in #2293
- feat: implement #1135 missing "be" by @hippietrail in #2296
- fix(core): add canonicalize to the dictionary by @claydugo in #2294
- feat: implement #1036 join prefix to word by @hippietrail in #2299
- feat(core): create rule to title-case headings by @elijah-potter in #2297
- build(deps): bump unicode-script from 0.5.7 to 0.5.8 by @dependabot[bot] in #2305
- build(deps): bump criterion from 0.8.0 to 0.8.1 by @dependabot[bot] in #2306
- build(deps): bump tree-sitter-bash from 0.25.0 to 0.25.1 by @dependabot[bot] in #2304
- fix(ls): prevent panic when workspace/configuration is unsupported by @mcecode in #2309
- Irregular verbs by @hippietrail in #2285
- Fascinated about by @hippietrail in #2319
- feat(obsidian): add button to disable rules from within popup by @elijah-potter in #2300
- chore: add weigh/weight to noun/verb confusion by @hippietrail in #2315
- refactor: made a new lint_group from two mass noun linters by @hippietrail in #2290
- feat: typo every → ever by @hippietrail in #2311
- doc(core): clarify difference between chunker NPs and pattern NPs by @elijah-potter in #2312
- feat: PIN number → PIN / personal identification number etc. by @hippietrail in #2318
- feat: brandish→brand by @hippietrail in #2325
- feat: wreck havoc→wreak havoc by @hippietrail in #2321
- fix(chrome-ext): text in dark mode not legible by @elijah-potter in #2326
- feat: adding prefixes to dictionary by @hippietrail in #2212
Full Changelog: v1.1.0...v1.2.0 |
| 1.1.0 | 3 de desembre del 2025 | — | 64 bits ZIP Notes de la versióWhat's Changed
- build(deps): bump tracing from 0.1.41 to 0.1.43 by @dependabot[bot] in #2271
- build(deps): bump indexmap from 2.12.0 to 2.12.1 by @dependabot[bot] in #2274
- build(deps): bump criterion from 0.7.0 to 0.8.0 by @dependabot[bot] in #2272
- refactor: upgrade Expatriate to phrase_set_corrections by @hippietrail in #2265
- build(deps): bump tracing-subscriber from 0.3.20 to 0.3.22 by @dependabot[bot] in #2273
- fix(dict): update webpack entry by @mcecode in #2278
- fix(core): address edge cases in title_case module by @elijah-potter in #2284
- fix(chrome-ext): return focus to source element when SuggestionBox is closed by @elijah-potter in #2282
- fix(core): ignore inflections of be in compound noun rule by @elijah-potter in #2281
- fix(core): add bypassable to the dictionary by @elijah-potter in #2280
- feat: copywritten → copyrighted by @hippietrail in #2276
- feat: add chroot to dictionary by @jvoisin in #2270
- refactor: new SequenceExpr and CharStringExt methods by @hippietrail in #2269
- feat(ls): add octo as a supported filetype by @elijah-potter in #2279
- fix(core): issues with spell check by @elijah-potter in #2288
- feat: wish x can → wish x could by @hippietrail in #2291
- fix(core): ensure news isn't corrected to news by @elijah-potter in #2289
- fix(core): fix problems with the NeedToNoun rule by @elijah-potter in #2287
Full Changelog: v1.0.0...v1.1.0 |
| 1.0.0 | 28 de novembre del 2025 | — | 64 bits ZIP Notes de la versióWhat's Changed
- build(deps): bump open from 5.3.2 to 5.3.3 by @dependabot[bot] in #2235
- refactor: improvements to ProgressiveNeedsBe by @hippietrail in #2232
- feat: filter out unknown only and ignore rules only once by @hippietrail in #2231
- build(deps): bump hashbrown from 0.16.0 to 0.16.1 by @dependabot[bot] in #2237
- feat: create component library + use in relevant places by @elijah-potter in #2229
- build(deps): bump clap from 4.5.51 to 4.5.53 by @dependabot[bot] in #2236
- fix(chrome-ext): ignore inline markup in contenteditable fields by @elijah-potter in #2242
- feat: add technical words to dictionary by @rauletaveras in #2219
- fix: 15 ExprLinters in lint_group.rs wrongly use insert_struct_rule! by @hippietrail in #2249
- test: #2233 and #1097 by @elijah-potter in #2239
- test(core): check that #1772 is resolved by @elijah-potter in #2247
- feat(core): FindFine by @elijah-potter in #2248
- feat: await for → await / wait for by @hippietrail in #2250
- feat(cli): use Rayon when linting many items by @elijah-potter in #2244
- fix(ls): use code key in diagnostics by @elijah-potter in #2254
- fix(core): edge case in dictionary by @elijah-potter in #2255
- fix: don't flag 'every day free' by @hippietrail in #2260
- feat: allow ExprLinter to work on sentences as well as chunks by @hippietrail in #2165
- feat: per say / per-se → per se by @hippietrail in #2258
- refactor: most pub use lines in mod.rs not needed by @hippietrail in #2259
- docs: define a versioning policy by @elijah-potter in #2257
- feat(core): create rule to catch Me and <PRON> by @elijah-potter in #2245
- refactor(core): remove implementation details from public API by @elijah-potter in #2256
- feat(core): create more specialized rule for #2144 by @elijah-potter in #2253
New Contributors
- @rauletaveras made their first contribution in #2219
Full Changelog: v0.73.0...v1.0.0 |
| 0.73.0 | 24 de novembre del 2025 | — | 64 bits ZIP Notes de la versióWhat's Changed
- fix(chrome-ext): find permanent solution to HN integration test failures by @elijah-potter in #2213
- fix: change AndIn from phrase_correction to a linter by @hippietrail in #2207
- fix indefinite article for "Euler" by @Ordoviz in #2211
- feat(core): make it clearer that two that tokens can always be condensed by @elijah-potter in #2193
- fix: comments and variable names with "pattern linter" by @hippietrail in #2201
- feat: go so far to→go so far as to by @hippietrail in #2188
- feat: If I would've done→If I had done by @hippietrail in #2214
- feat(core): add new jargon terms to dictionary by @ccoVeille in #2199
- feat(core): add these vs theses linter by @elijah-potter in #2215
- feat(core): detect missing spaces after some punctuation by @elijah-potter in #2196
- feat: brief output for just getmetadata by @hippietrail in #2197
- feat: harper-cli warn setting unknown rules by @hippietrail in #2210
- fix: is_quantifier matched all determiners, not just quantifiers by @hippietrail in #2200
- test: add failing example for markdown comment parser by @rnxpyke in #1948
- feat(core): create linter to detect improper use of need to <nominal> by @elijah-potter in #2177
- feat: in lue of→in lieu of by @hippietrail in #2221
- fix: "popup window" false positive by @hippietrail in #2218
- feat(core): support additional initialisms by @ccoVeille in #2198
- fuzz: add example fuzzing targets by @rnxpyke in #1949
- feat: add match_to_lint_with_context to ExprLinter by @hippietrail in #2173
- feat: holly war → holy war by @hippietrail in #2222
- fix(#2216): consider words in user dictionary to be of the user dialect for wasm by @grantlemons in #2223
- fix: "will of -> will have" false positives by @LionelKarlen in #2226
- feat: I've went → I've gone etc. by @hippietrail in #2228
- Harper cli lint many by @hippietrail in #2138
- chore: normalize, noun countability, -obsolete POSes by @hippietrail in #2202
- feat: upgrade AndTheLike phrase_correction to a full linter by @hippietrail in #2225
New Contributors
- @Ordoviz made their first contribution in #2211
- @LionelKarlen made their first contribution in #2226
Full Changelog: v0.72.0...v0.73.0 |
| 0.72.0 | 14 de novembre del 2025 | — | 64 bits ZIP Notes de la versióWhat's Changed
- feat: more bigger→bigger, most best→best by @hippietrail in #2148
- feat: flag "allow to do" by @hippietrail in #2159
- feat: nerve wreck→nervous wreck by @hippietrail in #2154
- build(deps): bump burn from 0.19.0 to 0.19.1 by @dependabot[bot] in #2161
- fix: CloudFlare→Cloudflare by @hippietrail in #2153
- fix(core): add JetBrains as a proper noun by @elijah-potter in #2167
- fix(core): problems with EffectAffect linter by @elijah-potter in #2171
- fix(core): address #2003 by @elijah-potter in #2170
- test(core): ensure #2054 is no longer a problem by @elijah-potter in #2168
- feat(core): add new linter to detect call as <pronoun> by @elijah-potter in #2172
- fix(core): use subject pronouns instead by @elijah-potter in #2178
- feat(chrome-ext): add buttons to reset and toggle all rules by @elijah-potter in #2174
- feat: add suggestions to mass plurals linter by @hippietrail in #2162
- feat: harper-cli audit-dictionary by @hippietrail in #2136
- chore: add & update several TeX-related proper nouns by @Andrew15-5 in #1889
- feat(web): use Quill instead of a <textarea /> by @elijah-potter in #2183
- fix(core): false-positive in affect -> effect by @elijah-potter in #2180
- fix(core): address false-positives by adding an exception for verbs by @elijah-potter in #2179
- refactor: added missing irregular verbs by @hippietrail in #2187
- feat: add the 3 main types of adverb by @hippietrail in #2158
- fix(core): adjust spell check suggestion score function by @elijah-potter in #2189
- feat(core): create rule to detect incorrect verbs in nominal phrase by @elijah-potter in #2176
- fix(core): make nominal phrases an exception for HowTo by @elijah-potter in #2190
- fix(core): improve the initialisms linter for all-caps inputs by @elijah-potter in #2184
- feat(chrome-ext): add dark mode to options and popup pages by @elijah-potter in #2192
- feat:far be it for→far be it from by @hippietrail in #2152
New Contributors
- @Andrew15-5 made their first contribution in #1889
Full Changelog: v0.71.0...v0.72.0 |
| 0.71.0 | 6 de novembre del 2025 | — | 64 bits ZIP Notes de la versióWhat's Changed
- build(deps): bump clap from 4.5.48 to 4.5.50 by @dependabot[bot] in #2112
- build(deps): bump getrandom from 0.3.3 to 0.3.4 by @dependabot[bot] in #2113
- feat(vscode): support more platforms by @mcecode in #2116
- feat: introduce stale bot by @elijah-potter in #2117
- Add wasm-bindgen-cli to nix flake by @bjtitus in #2108
- fix(core): refine acronym detection in AnA by @86xsk in #2109
- feat(core): create SplitWords linter by @elijah-potter in #2118
- Change tact by @hippietrail in #2130
- feat: quite many→quite a few by @hippietrail in #2129
- Fix typo in front page FAQ by @adamchainz in #2125
- build(deps): bump clap from 4.5.50 to 4.5.51 by @dependabot[bot] in #2127
- feat: sync language support by @mcecode in #2123
- feat: passerbys→passersby by @hippietrail in #2135
- chore: reduce dependency load for new contributors by @elijah-potter in #2131
- feat(web): Add testimonials by @elijah-potter in #2139
- feat(core): more rules by @elijah-potter in #2107
- feat: let/lets <pronoun> to do→let/lets <pronoun> do by @hippietrail in #2140
- feat:a lot of/most of the times→time by @hippietrail in #2141
- fix(obsidian): ignore files by @Vinzent03 in #2143
- fix: "reservation" annotations; issue #2120 by @hippietrail in #2134
- feat(chrome-ext): 'block rule' button by @elijah-potter in #2145
- fix: description and message were copypasted from another linter! by @hippietrail in #2147
- feat: redundant "after later" by @hippietrail in #2146
New Contributors
- @bjtitus made their first contribution in #2108
- @adamchainz made their first contribution in #2125
- @Vinzent03 made their first contribution in #2143
Full Changelog: v0.70.0...v0.71.0 |
| 0.70.0 | 24 d’octubre del 2025 | — | 64 bits ZIP Notes de la versióWhat's Changed
- fix(chrome-ext): use Harper-specific HTML tag to avoid CSS conflicts by @elijah-potter in #2101
- feat(ls): add lint origin tags to the diagnostics by @elijah-potter in #2102
- fix(chrome-ext): don't override with activation from WordPress page by @elijah-potter in #2103
- fix(obsidian): problems when converting from Rust char indexes by @elijah-potter in #2104
- fix(obsidian): store user dictionary in sorted order by @elijah-potter in #2106
- feat(obsidian): add method to ignore all errors in file by @elijah-potter in #2105
Full Changelog: v0.69.0...v0.70.0 |
| 0.69.0 | 22 d’octubre del 2025 | — | 64 bits ZIP Notes de la versióWhat's Changed
- feat(core): create new rule for detecting missing nouns by @elijah-potter in #2023
- docs(integrations): fix ignoredLintsPath and add excludePatterns in sample configs by @mcecode in #2097
- build(deps): bump lru from 0.16.1 to 0.16.2 by @dependabot[bot] in #2092
- build(deps): bump indexmap from 2.11.4 to 2.12.0 by @dependabot[bot] in #2095
- build(deps): bump bitflags from 2.9.4 to 2.10.0 by @dependabot[bot] in #2093
- feat: add jjdescription parser by @Tijs-B in #2082
- build(deps): bump tokio from 1.47.1 to 1.48.0 by @dependabot[bot] in #2091
- build(deps): bump globset from 0.4.16 to 0.4.17 by @dependabot[bot] in #2094
- feat(core): add threw as a suggestion by @elijah-potter in #2088
- refactor(web): build out feedback mechanisms by @elijah-potter in #2069
- feat(core): more rules by @elijah-potter in #2090
New Contributors
- @Tijs-B made their first contribution in #2082
Full Changelog: v0.68.0...v0.69.0 |
| 0.68.0 | 15 d’octubre del 2025 | — | 64 bits ZIP Notes de la versióWhat's Changed
- feat(core): rule to condense miss spell and friends by @elijah-potter in #2066
- feat(chrome-ext): enable by default on WordPress pages by @elijah-potter in #2065
- fix(chrome-ext): duplication test on Reddit by @elijah-potter in #2068
- build(deps): bump unicode-width from 0.2.1 to 0.2.2 by @dependabot[bot] in #2076
- fix(core): detect acronyms in AnA by @86xsk in #2072
- 2075 -- Harper Auto-submits Reddit Comments by @LoganBrinsmead in #2079
- fix(typst): fix paragraph break spans by @86xsk in #2080
- feat(core): Add various new rules by @elijah-potter in #2084
New Contributors
- @LoganBrinsmead made their first contribution in #2079
Full Changelog: v0.67.0...v0.68.0 |
| 0.67.0 | 6 d’octubre del 2025 | — | 64 bits ZIP Notes de la versióWhat's Changed
- feat(core): Add support for Python docstrings by @rushter in #2038
- feat(web): revise landing page by @elijah-potter in #2046
- fix(web): remove faq link by @mcecode in #2047
- fix(obsidian): properly manage dictionary by @elijah-potter in #2050
- fix(web): will now work on Hacker News by @elijah-potter in #2053
- docs: remove or update remaining faq page links by @mcecode in #2061
- build(deps): bump ordered-float from 5.0.0 to 5.1.0 by @dependabot[bot] in #2059
- refactor(chrome-ext): drop jquery dependency by @Ingramz in #2052
- fix(wasm): remove overlaps in the proper order by @elijah-potter in #2062
- fix(chrome-plugin): errors saving rule state in Firefox by @elijah-potter in #2064
- fix(chrome-ext): disable on comboboxes by @elijah-potter in #2063
- More irregular verbs for 'have went' linter by @hippietrail in #1973
New Contributors
- @rushter made their first contribution in #2038
- @Ingramz made their first contribution in #2052
Full Changelog: v0.66.0...v0.67.0 |
| 0.66.0 | 1 d’octubre del 2025 | — | 64 bits ZIP Notes de la versióWhat's Changed
- fix: format of checkboxes was broken in feature request template by @hippietrail in #1992
- fix: org-mode add list item parsing with tab normalization by @eloycoto in #1989
- feat(chrome-ext): use new CSS Highlights API where possible by @elijah-potter in #1970
- feat: add ink support by @FreddieGilbraith in #1894
- feat:besides the point→beside the point, don't can→can't by @hippietrail in #2021
- Add more phrasal verb exceptions by @hippietrail in #2002
- feat(core): create initial MissingTo rule by @elijah-potter in #1990
- fix(core): address problems with prepositional phrases by @elijah-potter in #2022
- build(deps): bump tree-sitter from 0.25.9 to 0.25.10 by @dependabot[bot] in #2029
- Criteria phenomena by @TomasoAlbinoni in #2028
- build(deps): bump serde from 1.0.226 to 1.0.228 by @dependabot[bot] in #2032
- build(deps): bump thiserror from 2.0.16 to 2.0.17 by @dependabot[bot] in #2030
- chore: missing words, annotations by @hippietrail in #1999
- feat(core): create tagged linting function by @elijah-potter in #1998
- build(deps): bump indexmap from 2.11.1 to 2.11.4 by @dependabot[bot] in #2031
- fix: nominal wants issue #2010 by @hippietrail in #2034
- fix(ci): reduce redundancy in CI by @elijah-potter in #2037
- feat(core): use a better quote-pairing algorithm by @elijah-potter in #2036
New Contributors
- @FreddieGilbraith made their first contribution in #1894
- @TomasoAlbinoni made their first contribution in #2028
Full Changelog: v0.65.0...v0.66.0 |
| 0.65.0 | 22 de setembre del 2025 | — | 64 bits ZIP Notes de la versióWhat's Changed
- feat: mixed bad→mixed bag by @hippietrail in #1946
- feat(core): add rule for unnecessary double-negatives by @elijah-potter in #1943
- feat: correct "though" when typo for "thought" by @hippietrail in #1952
- refactor: metadata attribute naming and commenting by @hippietrail in #1572
- feat(web): link to the Microsoft Edge extension by @elijah-potter in #1953
- fix: #1956 by @hippietrail in #1958
- feat:rule of thumbs→rules of thumb/flip the bill→foot the bill by @hippietrail in #1957
- chore: new words, annotation fixes by @hippietrail in #1944
- feat(core): rule to fix affect -> effect by @elijah-potter in #1954
- feat: when "it looks like that" should be "it looks like" by @hippietrail in #1968
- feat:many more variants of "for/to all intents and purposes" by @hippietrail in #1964
- build(deps): bump chrono from 0.4.41 to 0.4.42 by @dependabot[bot] in #1983
- build(deps): bump anyhow from 1.0.99 to 1.0.100 by @dependabot[bot] in #1980
- build(deps): bump serde from 1.0.224 to 1.0.226 by @dependabot[bot] in #1982
- build(deps): bump ammonia from 4.1.1 to 4.1.2 by @dependabot[bot] in #1986
- build(deps): bump bitflags from 2.9.3 to 2.9.4 by @dependabot[bot] in #1981
- feat: aslong as→as long as by @hippietrail in #1974
- build(deps): bump clap from 4.5.47 to 4.5.48 by @dependabot[bot] in #1979
- fix: adverbs that can come before "quite" by @hippietrail in #1972
- fix: remove dupes and remnants of lints moved from phrase_corrections by @hippietrail in #1976
- feat: support ClojureDart by @jcpsantiago in #1984
- chore: curation of annotations by @hippietrail in #1967
- docs: improve message and description for SomewhatSomething by @hippietrail in #1931
- feat:fell→feel by @hippietrail in #1977
New Contributors
- @jcpsantiago made their first contribution in #1984
Full Changelog: v0.64.0...v0.65.0 |
| 0.64.0 | 15 de setembre del 2025 | — | 64 bits ZIP Notes de la versióWhat's Changed
- feat(core): enable all rendering options for lint messages by @elijah-potter in #1920
- feat(core): create OughtToBe rule by @elijah-potter in #1908
- chore(dict): add Amdahl as proper noun by @rnxpyke in #1940
- fix(#1898): do not panic on typst parsing error by @grantlemons in #1921
- chore: curate dict; improve POS tag snapshots by @hippietrail in #1928
- build(deps): bump serde_json from 1.0.143 to 1.0.145 by @dependabot[bot] in #1938
- build(deps): bump tree-sitter-python from 0.23.6 to 0.25.0 by @dependabot[bot] in #1936
- build(deps): bump lru from 0.16.0 to 0.16.1 by @dependabot[bot] in #1937
- fix(#1926): isolate typst content blocks with parbreaks by @grantlemons in #1927
- build(deps): bump indexmap from 2.11.0 to 2.11.1 by @dependabot[bot] in #1934
- build(deps): bump serde from 1.0.219 to 1.0.223 by @dependabot[bot] in #1935
- fix(#1876): merge dialects from curated, file, user, and workspace dicts by @grantlemons in #1922
- fix(#1898): do not panic on other typst parsing error by @grantlemons in #1941
- feat(web): apply feedback from #1878 by @elijah-potter in #1942
New Contributors
- @rnxpyke made their first contribution in #1940
Full Changelog: v0.63.0...v0.64.0 |
| 0.63.0 | 12 de setembre del 2025 | — | 64 bits ZIP Notes de la versióWhat's Changed
- feat: condense I/O and other pairs into a single token by @hippietrail in #1803
- feat(core): create initial ToTwoToo rule by @elijah-potter in #1712
- feat: "as if though" + "far and few between" by @hippietrail in #1885
- Use the Chrome-extension's LintFramework for the web demo by @elijah-potter in #1893
- feat(#1897): transposition costs one instead of two by @grantlemons in #1899
- feat(core): wrote IveGerund rule by @elijah-potter in #1860
- feat(chrome-ext): use scroll deltas to minimize perceived lag by @elijah-potter in #1906
- feat(chrome-ext): show hints randomly by @elijah-potter in #1909
- fix: verb lemma logic wasn't working for default case by @hippietrail in #1912
- Replaced HaveGone phrase correction with a more expansive linter by @hippietrail in #1913
- feat: flag "real estates" which doesn't pluralize by @hippietrail in #1915
- test(core): examples from #1902 by @elijah-potter in #1916
- fix(core): correct capitalization with contractions by @elijah-potter in #1917
- feat: to/too mixups in set phrases by @hippietrail in #1839
- chore: normalize flags, +noun & verb flags by @hippietrail in #1891
Full Changelog: v0.62.0...v0.63.0 |
| 0.62.0 | 8 de setembre del 2025 | — | 64 bits ZIP Notes de la versióWhat's Changed
- Implement full verb form annotations by @hippietrail in #1730
- feat(core): create rule to detect duplicate punctuation by @elijah-potter in #1694
- feat: add correction of degrees kelvin to -> kelvin by @lukasmwerner in #1829
- docs: add path to stats.txt for Linux and macOS by @hippietrail in #1854
- fix: missing LintKinds from LintKind::new_from_str by @hippietrail in #1850
- chore: various improvements to phrasal verb linter by @hippietrail in #1824
- feat:interested at/into/on/with→interested in by @hippietrail in #1809
- Add core.trac.wordrpess.org support to Chrome extension by @sirreal in #1865
- feat: quiet⇔quite by @hippietrail in #1781
- feat:digestive track→digestive tract by @hippietrail in #1837
- Dictionary curation 2025 08 27 by @hippietrail in #1853
- fix: compound nouns that shouldn't be phrasal verbs by @hippietrail in #1870
- feat: would've never/would never have→never would have by @hippietrail in #1794
- fix(chrome-ext): flaky tests by @elijah-potter in #1868
- build(deps): bump uuid from 1.18.0 to 1.18.1 by @dependabot[bot] in #1883
- build(deps): bump clap from 4.5.45 to 4.5.47 by @dependabot[bot] in #1879
- build(deps): bump tree-sitter from 0.25.8 to 0.25.9 by @dependabot[bot] in #1880
- chore: mostly annotating verbs and nouns by @hippietrail in #1874
- build(deps): bump tree-sitter-javascript from 0.23.1 to 0.25.0 by @dependabot[bot] in #1882
- build(deps): bump foldhash from 0.1.5 to 0.2.0 by @dependabot[bot] in #1881
- feat: addicting→addictive by @hippietrail in #1886
- Update place names 978 by @hippietrail in #1013
- feat: windscreen vs windshield regionalism by @hippietrail in #1888
- feat: support roman numerals by @hippietrail in #1851
- feat: add colour to harper-cli nominal-phrases and just getnps-colour by @hippietrail in #1869
New Contributors
- @sirreal made their first contribution in #1865
Full Changelog: v0.61.0...v0.62.0 |
| 0.61.0 | 2 de setembre del 2025 | — | 64 bits ZIP Notes de la versióWhat's Changed
- build(deps): bump hashbrown from 0.15.5 to 0.16.0 by @dependabot[bot] in #1845
- build(deps): bump serde_json from 1.0.142 to 1.0.143 by @dependabot[bot] in #1842
- build(deps): bump tracing-subscriber from 0.3.19 to 0.3.20 by @dependabot[bot] in #1828
- build(deps): bump rayon from 1.10.0 to 1.11.0 by @dependabot[bot] in #1843
- build(deps): bump tree-sitter-go from 0.23.4 to 0.25.0 by @dependabot[bot] in #1844
- feat: just getmetadata and harper-cli metadata now accept multiple words by @hippietrail in #1847
- feat:to a great length→to great lengths by @hippietrail in #1835
- feat: implements #1838 by @hippietrail in #1840
- feat: add idioms to then/than linter by @hippietrail in #1819
- fix: false positive from #1492 and new one with proper noun by @hippietrail in #1846
- Restore Harper linter active/inactive status between sessions. by @iBenMoore in #1852
Full Changelog: v0.60.0...v0.61.0 |
| 0.60.0 | 28 d’agost del 2025 | — | 64 bits ZIP Notes de la versióWhat's Changed
- fix: YAML headers of GitHub issue templates by @hippietrail in #1791
- build(deps): bump tree-sitter-php from 0.23.11 to 0.24.2 by @dependabot[bot] in #1816
- build(deps): bump thiserror from 2.0.15 to 2.0.16 by @dependabot[bot] in #1814
- feat:upto→up to by @hippietrail in #1808
- build(deps): bump clap from 4.5.43 to 4.5.45 by @dependabot[bot] in #1812
- build(deps): bump bitflags from 2.9.2 to 2.9.3 by @dependabot[bot] in #1813
- fix: amounts_for was using Lrc unnecessarily by @hippietrail in #1817
- build(deps): bump indexmap from 2.10.0 to 2.11.0 by @dependabot[bot] in #1815
- pos-tag simplification and dictionary curation 2025 08 19 by @hippietrail in #1800
- fix: no longer flag with plugin or , layout by @hippietrail in #1801
- feat:through great lengths→to great lengths by @hippietrail in #1811
- feat:at worse→at worst by @hippietrail in #1797
- feat:expand memory shorhands based on expand time shorthands linter by @hippietrail in #1810
- feat:a punctuation→a punctuation mark by @hippietrail in #1805
- feat: censor swear words by @hippietrail in #1783
- Add LuaDoc Support by @lukasmwerner in #1820
- feat(chrome-ext): export enabled domains by @elijah-potter in #1821
Full Changelog: v0.59.0...v0.60.0 |
| 0.59.0 | 21 d’agost del 2025 | — | 64 bits ZIP Notes de la versióWhat's Changed
- feat: condense R&D and Q&A to single word tokens by @hippietrail in #1758
- fix(harper-ls): remove version check by @mcecode in #1782
- feat:sort after→sought after by @hippietrail in #1780
- chore: simplify / minimalize github templates by @hippietrail in #1762
- Neovim code action does not hide Harper diagnostic #1785 fix by @JanikkinaJ in #1788
- feat(chrome-ext): allow the hotkey to be configured by @elijah-potter in #1787
- feat(obsidian): change how default values are displayed by @elijah-potter in #1789
- fix(chrome-ext): Reddit comments on comments by @elijah-potter in #1784
New Contributors
- @JanikkinaJ made their first contribution in #1788
Full Changelog: v0.58.0...v0.59.0 |
| 0.58.0 | 18 d’agost del 2025 | — | 64 bits ZIP Notes de la versióWhat's Changed
- Dictionary 2025 08 12 by @hippietrail in #1754
- build(deps): bump reqwest from 0.12.22 to 0.12.23 by @dependabot[bot] in #1771
- build(deps): bump anyhow from 1.0.98 to 1.0.99 by @dependabot[bot] in #1767
- build(deps): bump bitflags from 2.9.1 to 2.9.2 by @dependabot[bot] in #1768
- build(deps): bump thiserror from 2.0.12 to 2.0.15 by @dependabot[bot] in #1769
- build(deps): bump uuid from 1.17.0 to 1.18.0 by @dependabot[bot] in #1770
- chore: new words, annotation fixes by @hippietrail in #1763
- fix: dont flag "playback latency" by @hippietrail in #1765
- Fix 1734 by @kinnison in #1761
- feat: separate joined "afew" and "infact" by @hippietrail in #1755
- feat: split out DurationExpr from since_duration linter by @hippietrail in #1764
- fix(core): don't push Harper version by @elijah-potter in #1775
- feat(harper-ls): add excludePatterns config by @mcecode in #1737
Full Changelog: v0.57.0...v0.58.0 |
| 0.57.0 | 14 d’agost del 2025 | — | 64 bits ZIP Notes de la versióWhat's Changed
- fix: canonicalize workspace_root in configuration by @kinnison in #1713
- fix(core): edge-case in ShouldContract rule by @elijah-potter in #1714
- feat: condense TL;DR by @hippietrail in #1700
- fix: don't make compounds with conjunctions by @hippietrail in #1735
- build(deps): bump hashbrown from 0.15.4 to 0.15.5 by @dependabot[bot] in #1729
- feat: best of all times→best of all time by @hippietrail in #1715
- build(deps): bump tower-lsp-server from 0.22.0 to 0.22.1 by @dependabot[bot] in #1726
- chore: new words by @hippietrail in #1719
- fix: false positives in phrasal verb to compound noun by @hippietrail in #1720
- build(deps): bump tree-sitter-solidity from 1.2.12 to 1.2.13 by @dependabot[bot] in #1728
- build(deps): bump clap from 4.5.42 to 4.5.43 by @dependabot[bot] in #1727
- doc: fix outdated link by @johan456789 in #1746
- fix(cli): disable training feature by default to fix OOM by @elijah-potter in #1747
- build(deps): bump slab from 0.4.10 to 0.4.11 by @dependabot[bot] in #1738
- Add a "disabled" version of the logo for the Obsidian plugin. by @iBenMoore in #1740
New Contributors
- @johan456789 made their first contribution in #1746
- @iBenMoore made their first contribution in #1740
Full Changelog: v0.56.0...v0.57.0 |
| 0.56.0 | 6 d’agost del 2025 | — | 64 bits ZIP Notes de la versióWhat's Changed
- feat(docs): update the CDN example to v0.54.0 by @elijah-potter in #1689
- fix(chrome-ext): properly position highlights in Ghost editor DOM by @elijah-potter in #1691
- feat(core): make French spaces configurable by @elijah-potter in #1693
- fix(core): false-positive from #1682 by @elijah-potter in #1692
- fix(core): address second part of #1492 by @elijah-potter in #1695
- feat(core): increase scope of ItsContraction + add tests by @elijah-potter in #1706
- feat:every since→ever since by @hippietrail in #1704
- chore: noun attrs, words from trending GitHub readmes by @hippietrail in #1662
- fix: add emphasis/emphasize to noun-instead-of-verb by @hippietrail in #1703
- fix(core): PiqueInterest now works with possessive determiners by @elijah-potter in #1708
- feat(chrome-ext): close the SuggestionBox with the Escape key by @elijah-potter in #1705
- feat(core): add rule to correct a missing of after the word couple by @elijah-potter in #1709
Full Changelog: v0.55.0...v0.56.0 |
| 0.55.0 | 4 d’agost del 2025 | — | 64 bits ZIP Notes de la versióWhat's Changed
- Dictionary curation 2025 07 29 by @hippietrail in #1657
- feat: that typo for than by @hippietrail in #1639
- feat(chrome-ext): fade suggestion box in by @elijah-potter in #1655
- feat(obsidian): notify users of Harper updates by @elijah-potter in #1659
- fix(core): false-positives by @elijah-potter in #1660
- fix: condense file extensions inside parens by @hippietrail in #1640
- ci: update PR template to encourage linking issues by @86xsk in #1667
- fix: solve that/than false positive by @hippietrail in #1664
- feat(chunker): build new chunker with Burn by @elijah-potter in #1579
- fix(core): typo in phrase correction message by @jj15asmr in #1677
- feat: correct "dose" as typo for "does" by @hippietrail in #1637
- (feat) Add concept of workspace dictionary to harper-ls by @kinnison in #1669
- feat: flag mass nouns used as plurals by @hippietrail in #1671
- feat(chrome-ext): add close button by @elijah-potter in #1675
- fix(chrome-ext): edge cases by @elijah-potter in #1674
- feat: quality-of-life methods for SequenceExpr by @hippietrail in #1668
- build(deps): bump clap from 4.5.41 to 4.5.42 by @dependabot[bot] in #1686
- build(deps): bump serde_json from 1.0.141 to 1.0.142 by @dependabot[bot] in #1685
- feat: a friend of me→friend of mine by @hippietrail in #1679
- fix: don't flag repeated words if either is hyphenated by @hippietrail in #1681
- build(deps): bump tokio from 1.47.0 to 1.47.1 by @dependabot[bot] in #1684
New Contributors
- @jj15asmr made their first contribution in #1677
- @kinnison made their first contribution in #1669
Full Changelog: v0.54.0...v0.55.0 |
| 0.54.0 | 28 de juliol del 2025 | — | 64 bits ZIP Notes de la versióWhat's Changed
- build(deps): bump cached from 0.55.1 to 0.56.0 by @dependabot[bot] in #1646
- build(deps): bump tree-sitter-solidity from 1.2.11 to 1.2.12 by @dependabot[bot] in #1648
- build(deps): bump criterion from 0.6.0 to 0.7.0 by @dependabot[bot] in #1649
- refactor(core): span refactorings by @86xsk in #1638
- build(deps): bump tokio from 1.46.1 to 1.47.0 by @dependabot[bot] in #1647
- chore(dict): Add Forgejo noun by @JadedBlueEyes in #1630
- fix: don't flag "you and I are" by @hippietrail in #1650
- chore: noun attrs, new words from trending GitHub readmes by @hippietrail in #1635
- feat: don't flag mass noun in hyphenated compound by @hippietrail in #1636
- fix(chrome-ext): filter out erroneous double-clicking by @elijah-potter in #1653
- fix(core): several false-positives by @elijah-potter in #1652
- fix(chrome-ext): shrink LintBoxes by @elijah-potter in #1654
New Contributors
- @JadedBlueEyes made their first contribution in #1630
Full Changelog: v0.53.0...v0.54.0 |
| 0.53.0 | 25 de juliol del 2025 | — | 64 bits ZIP Notes de la versióWhat's Changed
- feat(chrome-ext): add double-shift hotkey by @elijah-potter in #1574
- feat: condense file extensions into single token by @hippietrail in #1602
- feat(web): add detail to onboarding page + add site request form by @elijah-potter in #1611
- feat: new LintKinds, optional LintKind param for phrase_corrections by @hippietrail in #1596
- fix: correct a/an before MP3 by @hippietrail in #1608
- feat:make it seems→make it seem by @hippietrail in #1609
- chore: marking mass nouns by @hippietrail in #1607
- feat: VerbInsteadOfNoun to complement NounInsteadOfVerb by @hippietrail in #1565
- test: #[ignore]d failing test from issue #1582 by @hippietrail in #1587
- Fix variety of false-positives by @elijah-potter in #1614
- feat(chrome-ext): add GitLab + dark mode by @elijah-potter in #1612
- feat(core): add special case for teh by @elijah-potter in #1613
- feat(core): create rule that fixes it's -> its by @elijah-potter in #1622
- Dictionary curation 2025 07 23 by @hippietrail in #1623
- feat: add letter-case flags to WordMetadata by @hippietrail in #1578
- chore: add "investment into" to the "invest into" linter by @hippietrail in #1616
- feat:make it/them worst→worse by @hippietrail in #1619
- refactor: typed spans by @86xsk in #1595
- fix: align comment field in printannotations by @hippietrail in #1617
- feat: remove filler words "uh" and "um" by @hippietrail in #1626
- fix: install wasm-pack with cargo by @elijah-potter in #1629
- fix: issues with wasm-pack installation by @elijah-potter in #1633
- fix(chrome-ext): Harper highlight hosts creating a new stacking context by @elijah-potter in #1627
- chore(dict): add plural tag to 'people' by @86xsk in #1554
- feat:have a look vs. take a look by @hippietrail in #1624
- chore: dictionary curation by @hippietrail in #1625
- feat: conform that→confirm that by @hippietrail in #1632
Full Changelog: v0.52.0...v0.53.0 |
| 0.52.0 | 21 de juliol del 2025 | — | 64 bits ZIP Notes de la versióWhat's Changed
- feat: chomp at the bit→champ at the bit by @hippietrail in #1563
- fix: add ofcourse→of course phrase correction by @hippietrail in #1570
- feat: add lint for on the floor phrase by @thuan1412 in #1555
- feat(lint): add LookingForwardTo rule by @thuan1412 in #1567
- feat(web): add margin to footer by @elijah-potter in #1575
- feat: get worst→get worse; become worst→become worse by @hippietrail in #1571
- feat(obsidian): allow users to exclude files and paths by @elijah-potter in #1569
- feat: detect "more faster", "most best" by @hippietrail in #1507
- Fix typo for +page.md by @kkremitzki in #1577
- fix: remove ThereIsAny linter, sort others by @hippietrail in #1588
- perf(core): prefer FirstMatchOf when possible by @86xsk in #1576
- build(deps): bump strum from 0.27.1 to 0.27.2 by @dependabot[bot] in #1601
- build(deps): bump tree-sitter-nix from 0.0.2 to 0.3.0 by @dependabot[bot] in #1599
- build(deps): bump serde_json from 1.0.140 to 1.0.141 by @dependabot[bot] in #1598
- build(deps): bump strum_macros from 0.27.1 to 0.27.2 by @dependabot[bot] in #1600
- chore(docs): update link to zed extension repo by @Stef16Robbe in #1603
- feat: make due with → make do with by @hippietrail in #1594
- feat: like as if→like / as if by @hippietrail in #1592
- Capitalize months by @hippietrail in #1604
- feat: remaining inflections of rise the question→raise by @hippietrail in #1593
- feat: ahead an→ahead and by @hippietrail in #1591
- chore: new words from trending GitHub readmes by @hippietrail in #1584
New Contributors
- @thuan1412 made their first contribution in #1555
- @kkremitzki made their first contribution in #1577
- @Stef16Robbe made their first contribution in #1603
Full Changelog: v0.51.0...v0.52.0 |
| 0.51.0 | 15 de juliol del 2025 | — | 64 bits ZIP Notes de la versióWhat's Changed
- feat: phrase set corrections to group phrase corrections by @hippietrail in #1529
- chore: dictionary curation by @hippietrail in #1539
- feat: implement #1559 semicolon typos by @hippietrail in #1560
- build(deps): bump clap from 4.5.40 to 4.5.41 by @dependabot[bot] in #1557
- build(deps): bump tree-sitter from 0.25.6 to 0.25.8 by @dependabot[bot] in #1558
- build(deps): bump ammonia from 4.1.0 to 4.1.1 by @dependabot[bot] in #1556
- feat: just printaffixes prints letters free for new flags by @hippietrail in #1540
- feat: extend→extent when used as noun by @hippietrail in #1552
- feat: ontop of→on top of by @hippietrail in #1550
- feat: .is_oov() method on TokenKind by @hippietrail in #1551
- feat: very unique→unique / very special by @hippietrail in #1561
- refactor(core): adjust to reduce ambiguity by @86xsk in #1545
- feat(core): add rule for missing preposition by @elijah-potter in #1530
- feat(core): add rule for redundant modal verbs by @elijah-potter in #1536
- feat: support quantifier as type of determiner by @hippietrail in #1564
- feat: IIRC correctly→IIRC by @hippietrail in #1566
- feat: mass nouns after countable determiners/quantifiers by @hippietrail in #1498
- doc(core): document lint_group macros by @elijah-potter in #1568
Full Changelog: v0.50.0...v0.51.0 |
| 0.50.0 | 10 de juliol del 2025 | — | 64 bits ZIP Notes de la versióWhat's Changed
- fix(chrome-ext): don't interfere with the Gutenberg rendering process by @elijah-potter in #1534
- fix(chrome-ext): properly place highlights relative to Draft.js root by @elijah-potter in #1535
- feat(cli): add annotate-tokens subcommand by @86xsk in #1533
- chore(core): rename + document items by @elijah-potter in #1523
Full Changelog: v0.49.0...v0.50.0 |
| 0.49.0 | 9 de juliol del 2025 | — | 64 bits ZIP Notes de la versióWhat's Changed
- build(deps): bump reqwest from 0.12.20 to 0.12.22 by @dependabot in #1515
- build(deps): bump lru from 0.15.0 to 0.16.0 by @dependabot in #1516
- build(deps): bump tokio from 1.45.1 to 1.46.1 by @dependabot in #1517
- chore: rename affixes.json to annotations.json by @hippietrail in #1504
- chore: mostly marking mass nouns by @hippietrail in #1506
- feat: statue of limitations→statute by @hippietrail in #1510
- fix: fixes a bug in SequenceExpr found when using the Optional Expr in a linter by @hippietrail in #1519
- feat: flag redundant series of "also", "as well", "too" by @hippietrail in #1514
- feat: add clojure support by @jerielverissimo in #1520
- fix(chrome-ext): don't run on disabled inputs by @elijah-potter in #1525
- feat: dict curation & concise snapshot dialects by @hippietrail in #1521
New Contributors
- @jerielverissimo made their first contribution in #1520
Full Changelog: v0.48.0...v0.49.0 |
| 0.48.0 | 4 de juliol del 2025 | — | 64 bits ZIP Notes de la versióWhat's Changed
- feat(core): create linter for discourse markers by @elijah-potter in #1470
- refactor(core): rename insert_pattern_rule! by @86xsk in #1487
- fix(ls): duplicate lints by @elijah-potter in #1490
- chore: augment and refactor metadata by @hippietrail in #1488
- fix(core): use tagger to improve certainty in HowTo lint by @elijah-potter in #1489
- feat: replace terms from dialects with local synonyms by @hippietrail in #1475
- feat(core): write linter to detect erroneous use of plurality by @elijah-potter in #1486
- fix: fix issue 1495 by @hippietrail in #1502
- chore: curate dictionary by @hippietrail in #1501
- test(chrome-ext): on Firefox in Playwright by @elijah-potter in #1491
Full Changelog: v0.47.0...v0.48.0 |
| 0.47.0 | 30 de juny del 2025 | — | 64 bits ZIP Notes de la versióWhat's Changed
- fix(core): support progressive/perfect forms after "its" + 1 by @kiding in #1469
- build(deps): bump indexmap from 2.9.0 to 2.10.0 by @dependabot in #1479
- build(deps): bump lru from 0.14.0 to 0.15.0 by @dependabot in #1480
- feat: add LintKind colours to the Playwright HTML report by @hippietrail in #1481
- feat: no match against/of/to → no match for by @hippietrail in #1458
- feat(cli): allow direct text (non-file) input by @86xsk in #1476
- feat: thing→think by @hippietrail in #1451
- fix(chrome-ext): address scrolling problems by @elijah-potter in #1485
Full Changelog: v0.46.0...v0.47.0 |
| 0.46.0 | 27 de juny del 2025 | — | 64 bits ZIP Notes de la versióWhat's Changed
- feat(chrome-ext): add configuration options by @elijah-potter in #1461
- feat: linter for less worst, least worse, etc. by @hippietrail in #1457
- feat:in the end of the day→at the end of the day by @hippietrail in #1456
- fix: just printaffixes got broken by @hippietrail in #1460
- fix(chrome-ext): ProseMirror problems in ChatGPT by @elijah-potter in #1459
- feat(core): add to and tweak rule set by @elijah-potter in #1462
- fix(core): auto detect dialect for snapshots by @86xsk in #1433
- fix(core): we cannot respect spellcheck="off" by @elijah-potter in #1467
- feat: in the cards ⇔ on the cards by @hippietrail in #1454
Full Changelog: v0.45.0...v0.46.0 |
| 0.45.0 | 26 de juny del 2025 | — | 64 bits ZIP Notes de la versióWhat's Changed
- build(deps): bump tower-lsp-server from 0.21.1 to 0.22.0 by @dependabot in #1435
- feat: make including bad forms optional by @hippietrail in #1424
- test(core): remove duplicate tests by @86xsk in #1432
- docs(POS): document UPOS variants by @86xsk in #1444
- feat: don't pass unused dialect to Linters that don't use them by @hippietrail in #1453
- feat: as it so happens→as it happens / on route→en route by @hippietrail in #1436
- feat: add solidity support by @beeb in #1443
- feat: improvements to pronoun metadata by @hippietrail in #1445
- feat: somebody's else / else's by @hippietrail in #1448
- feat: another thing coming vs another think coming by @hippietrail in #1438
- feat: at/in the spur of the moment by @hippietrail in #1447
- feat(core): add rule for pronouns followed by an inflection of be by @elijah-potter in #1442
New Contributors
- @beeb made their first contribution in #1443
Full Changelog: v0.44.0...v0.45.0 |
| 0.44.0 | 20 de juny del 2025 | — | 64 bits ZIP Notes de la versióWhat's Changed
- feat: split affixes and properties and support propagating properties by @RunDevelopment in #1251
- fix: missing words in #1401 by @hippietrail in #1402
- fix: ensure grey is suggested when gray is wrong by @hippietrail in #1403
- feat: take sth. serious→take sth. seriously by @hippietrail in #1405
- feat(core): add linter for #346 by @elijah-potter in #1407
- feat(web): show Firefox link to applicable users by @elijah-potter in #1409
- feat(chrome-plugin): set up build system for Firefox by @elijah-potter in #1408
- feat:Shoot oneself into a leg → oneself in the foot by @hippietrail in #1391
- chore: re-sort phrase corrections by @hippietrail in #1410
- docs: add page for Firefox + update FAQ by @elijah-potter in #1412
- feat(core): cover case from #381 + remove useless rule by @elijah-potter in #1416
- feat: add types of determiner by @hippietrail in #1415
- Major performance improvements to the Chrome extension by @elijah-potter in #1417
- feat: handle the recieved→received part of #1411 by @hippietrail in #1418
- fix(chrome-ext): dispatch input events on form els by @elijah-potter in #1330
- fix(core): use POS tags for PronounKnew accuracy by @elijah-potter in #1413
- feat: Implement #405 - the "5am in the morning" redundancy by @hippietrail in #1414
- feat: add "except if" and "except when" for "unless if" by @hippietrail in #1318
- feat: touristic → tourist / tourism / touristic by @hippietrail in #1345
- fix: some very important adverbs were not marked by @hippietrail in #1420
Full Changelog: v0.43.0...v0.44.0 |
| 0.43.0 | 16 de juny del 2025 | — | 64 bits ZIP Notes de la versióWhat's Changed
- refactor(core): Pattern -> Expr by @elijah-potter in #1393
- feat: fix nonstandard variants of two idioms by @hippietrail in #1392
- feat: update untitled handling by @mcecode in #1385
- build(deps): bump clap from 4.5.39 to 4.5.40 by @dependabot in #1397
- build(deps): bump reqwest from 0.12.19 to 0.12.20 by @dependabot in #1396
- chore: sort alphabetically by @hippietrail in #1399
- build(deps): bump unicode-width from 0.2.0 to 0.2.1 by @dependabot in #1398
- feat(brill): train and use Brill tagger by @elijah-potter in #1344
Full Changelog: v0.42.0...v0.43.0 |
| v0.42.0 | 10 de juny del 2025 | — | 64 bits ZIP Notes de la versióWhat's Changed
- feat: kinda of→kind of / kinda by @hippietrail in #1363
- build(deps): bump smallvec from 1.15.0 to 1.15.1 by @dependabot in #1379
- build(deps): bump reqwest from 0.12.18 to 0.12.19 by @dependabot in #1380
- dictionary: add some (mostly) phone-related terms by @86xsk in #1377
- build(deps): bump hashbrown from 0.15.3 to 0.15.4 by @dependabot in #1378
- fix(core): handle words with multiple dialects by @86xsk in #1372
- feat(obsidian): misc. QoL improvements by @elijah-potter in #1382
- feat: Added ORGMODE parser by @eloycoto in #1369
- feat: harper-cli command to rename affix annotation flags by @hippietrail in #1348
- chore: refactor most common affix annotation flags by @hippietrail in #1349
- feat: few time-units ago→a few time-units ago by @hippietrail in #1343
- feat(core): add rule for some the -> some of the by @elijah-potter in #1333
- feat(core): add rule to expand btw by @elijah-potter in #1329
New Contributors
- @eloycoto made their first contribution in #1369
Full Changelog: v0.41.0...v0.42.0 |
| v0.41.0 | 6 de juny del 2025 | — | 64 bits ZIP Notes de la versióWhat's Changed
- Implement server_info by @jvoisin in #1341
- fix: correct and improve verb morphology by @hippietrail in #1257
- docs(sublime-text): added sublime text integration by @ssahayam-zd in #1346
- feat: piece of mind→peace of mind by @hippietrail in #1360
- Dictionary curation 2025 05 30 by @hippietrail in #1352
- feat: fix noun that should be related verb by @hippietrail in #1362
- fix: missing the from SufficeItToSay message by @hippietrail in #1350
- feat: open a device→turn on a device by @hippietrail in #1356
- fix: don't close compound if open is in dictionary by @hippietrail in #1347
- feat: throw rubbish→throw rubbish away / throw away rubbish by @hippietrail in #1274
- fix: different messages for wrong word vs missing hyphen by @hippietrail in #1354
- feat(obsidian): tweak style of code block by @elijah-potter in #1367
- fix: add special case for "how come" by @hippietrail in #1279
- test: exact_phrase and exact_word differ in case sensitivity by @hippietrail in #1361
- feat: in need for→in need of by @hippietrail in #1359
- build(deps): bump clap from 4.5.38 to 4.5.39 by @dependabot in #1358
- build(deps): bump reqwest from 0.12.15 to 0.12.18 by @dependabot in #1357
- fix: false positives after object case pronouns by @hippietrail in #1353
- feat: harper-cli compounds command by @hippietrail in #1351
- dictionary: Add UUID by @jpds in #1371
- feat:a couple of more→a couple more by @hippietrail in #1374
- feat(chrome-ext): Improve onboarding experience by @elijah-potter in #1375
New Contributors
- @ssahayam-zd made their first contribution in #1346
Full Changelog: v0.40.0...v0.41.0 |
| v0.40.0 | 29 de maig del 2025 | — | 64 bits ZIP Notes de la versióWhat's Changed
- dictionary: Add some chat terms/RSS/OSS by @jpds in #1323
- feat: spelled-number pattern & since duration linter by @hippietrail in #1325
- feat(ls): allow skipping the version check by @elijah-potter in #1334
- fix(ls): do not emit diagnostics on save by @elijah-potter in #1332
- Implement a way to get harper-ls version by @jvoisin in #1338
- build: add release-debug profile by @86xsk in #1342
- feat(ls): configurable max length by @86xsk in #1335
- feat: unsurmountable→insurmountable, brutalness→brutality by @hippietrail in #1339
New Contributors
- @jvoisin made their first contribution in #1338
Full Changelog: v0.39.0...v0.40.0 |
| v0.39.0 | 26 de maig del 2025 | — | 64 bits ZIP Notes de la versióWhat's Changed
- fix: use community maintained fork of tower-lsp by @jfly in #1316
- refactor: make the three compound noun linters consistent by @hippietrail in #1294
- feat: as of lately→as of late by @hippietrail in #1319
- feat: Every day vs Everyday linter by @hippietrail in #1265
- build(deps): bump tokio from 1.45.0 to 1.45.1 by @dependabot in #1328
- feat:point of views→points of view by @hippietrail in #1324
- build(deps): bump uuid from 1.16.0 to 1.17.0 by @dependabot in #1327
- fix(vscode-plugin): make test reliable with waitForDiagnosticChange by @kiding in #1322
- Dictionary curation 2025 05 22 by @hippietrail in #1321
- feat:amount for→account for/amount to by @hippietrail in #1320
- fix(chrome-ext): scrolling on Notion + other tweaks by @elijah-potter in #1317
Full Changelog: v0.38.0...v0.39.0 |
| v0.38.0 | 22 de maig del 2025 | — | 64 bits ZIP Notes de la versióWhat's Changed
- Dictionary curation 2025 05 21 by @hippietrail in #1309
- fix: solve part 1. of #1298 by making "that" a special case by @hippietrail in #1302
- fix: solve part 2. of #1298 by allowing indefinite pronouns before "new" by @hippietrail in #1303
- fix: solve part 3. of #1298 if it's following a noun+"and" it's probably a compound noun by @hippietrail in #1304
- feat(web): tweaks for SEO by @elijah-potter in #1311
- feat(chrome-ext): bring the selections closer to the cursor by @elijah-potter in #1283
- chore: add 'togglable' to curated dict by @86xsk in #1312
- refactor(core): box within function by @elijah-potter in #1313
- feat(web): add page with feedback form by @elijah-potter in #1315
- fix: Y flag for -ly suffix adverb POS fixes by @hippietrail in #1232
Full Changelog: v0.37.0...v0.38.0 |
| v0.37.0 | 19 de maig del 2025 | — | 64 bits ZIP Notes de la versióWhat's Changed
- feat(comments): add Kotlin support by @elijah-potter in #1271
- fix: no longer prompt to change "new" to "knew" after possessives by @hippietrail in #1293
- fix: 'a very' no longer flagged to change to 'Avery' by @hippietrail in #1292
- fix: don't flag "can not" to join as a "compound noun" by @hippietrail in #1287
- build(deps): bump criterion from 0.5.1 to 0.6.0 by @dependabot in #1288
- Dictionary curation 2025 05 16 by @hippietrail in #1290
- feat: take it personal→take it personally by @hippietrail in #1285
- feat: add "maximum amount" and "maximum number" to suggestions by @hippietrail in #1291
- feat: correct mixing up "apart" and "a part" by @hippietrail in #1284
- refactor: reduce false positive blacklist with new logic by @hippietrail in #1282
- feat(core): make sentence capitalization replace whole word by @elijah-potter in #1295
- test(chrome-ext): e2e test for the Slate editor by @elijah-potter in #1281
- chore: sort and dedup lint group rules by @hippietrail in #1296
- test(chrome-ext): fix underline positioning on GitHub textareas by @elijah-potter in #1297
Full Changelog: v0.36.0...v0.37.0 |
| v0.36.0 | 15 de maig del 2025 | — | 64 bits ZIP Notes de la versióWhat's Changed
- fix(obsidian): problems with updating lint config by @elijah-potter in #1278
- fix(chrome-ext): properly support the Slate editor. by @elijah-potter in #1275
- chore: new words, annotation corrections, adj-of-a exceptions by @hippietrail in #1270
- feat: most amount/number→highest amount/number by @hippietrail in #1238
Full Changelog: v0.35.0...v0.36.0 |
| v0.35.0 | 14 de maig del 2025 | — | 64 bits ZIP Notes de la versióWhat's Changed
- feat: improve spell check suggestions by accounting for common misspellings by @RunDevelopment in #1245
- chore: new words, tag fixes, add phrasal verbs by @hippietrail in #1219
- build(deps): bump quickcheck_macros from 1.0.0 to 1.1.0 by @dependabot in #1260
- feat: adieu→ado by @hippietrail in #1256
- build(deps): bump clap from 4.5.37 to 4.5.38 by @dependabot in #1259
- Dictionary curation 2025 05 13 by @hippietrail in #1264
- feat: a fare bit→a fair bit by @hippietrail in #1266
- build(deps): bump tokio from 1.44.2 to 1.45.0 by @dependabot in #1258
- feat(chrome-ext): add support for more sites by @elijah-potter in #1255
- fix: fix logic and improve explanatory comments by @hippietrail in #1267
- feat(ls): persist lint ignores by @elijah-potter in #1250
- fix(obsidian): move max-height css rule lower in the tree by @elijah-potter in #1273
- feat(core): add several new rules by @elijah-potter in #1241
- fix(ls): fix position_to_index by @86xsk in #1276
- feat(chrome-ext): ignore lints by @elijah-potter in #1272
Full Changelog: v0.34.1...v0.35.0 |
| v0.34.1 | 8 de maig del 2025 | — | 64 bits ZIP Notes de la versióWhat's Changed
- feat:definitive article→definite article by @hippietrail in #1248
- fix(obsidian): odd padding around message by @elijah-potter in #1252
- feat: Correct "infront" and other phrases written as a single word by @hippietrail in #1192
Full Changelog: v0.34.0...v0.34.1 |
| v0.34.0 | 8 de maig del 2025 | — | 64 bits ZIP Notes de la versióWhat's Changed
- feat: articles implies no verb by @RunDevelopment in #1188
- build(deps): bump hashbrown from 0.15.2 to 0.15.3 by @dependabot in #1230
- fix(obsidian): pretty-print the lint kind by @elijah-potter in #1235
- test: add snapshots for linters by @RunDevelopment in #1228
- feat: disambiguate prepositions followed by determiners by @RunDevelopment in #1187
- Nominal phrase test helper by @hippietrail in #1227
- feat: add single token pattern trait by @RunDevelopment in #1209
- feat:one in the same→one and the same by @hippietrail in #1154
- fix(core): long sentence lint should start with word by @elijah-potter in #1236
- refactor: remove unnecessary Option in PhrasalVerbAsCompoundNoun by @RunDevelopment in #1243
- refactor: don't allocate when linting chunks by @RunDevelopment in #1242
- feat(core): use Rayon in snapshot tests by @elijah-potter in #1237
- Tweaks for Chrome Extension by @elijah-potter in #1244
- feat(web): render HTML descriptions on rules page by @elijah-potter in #1240
- fix(core): don't misplace ParagraphBreak tokens by @86xsk in #1239
- fix: fix indefinite article for "utter(ly)" by @RunDevelopment in #1247
- feat: Improved metadata applied by affix system by @RunDevelopment in #1214
Full Changelog: v0.33.0...v0.34.0 |
| v0.33.0 | 5 de maig del 2025 | — | 64 bits ZIP Notes de la versióWhat's Changed
- Create a Chrome extension by @elijah-potter in #1072
- Documentation updates by @mcecode in #1233
- ci: add cargo hack by @RunDevelopment in #1160
- fix(chrome-ext): render on scroll by @elijah-potter in #1234
- refactor: use LSend trait to simplify trait definitions by @RunDevelopment in #1225
- build(deps): bump chrono from 0.4.40 to 0.4.41 by @dependabot in #1231
- fix: "towards" is a preposition by @RunDevelopment in #1213
- perf(core): PlainEnglish parser in ExactPhrase by @86xsk in #1217
- test(ls): ensure we write sorted dictionaries by @86xsk in #1205
- fix: prevent crash in PhrasalVerbAsCompoundNoun by @RunDevelopment in #1210
- fix: Remove verb property from "of" by @RunDevelopment in #1206
- feat(cli): fallback to PlainEnglish parser by @86xsk in #1223
- fix: heuristic for no-contraction-with-verb for "let go" by @hippietrail in #1203
- chore: minor typos in two files' comments by @hippietrail in #1218
Full Changelog: v0.32.1...v0.33.0 |
| 0.32.1 | 1 de maig del 2025 | — | 64 bits ZIP Notes de la versióWhat's Changed
- feat: aswell→as well by @hippietrail in #1161
- Fix false positive in let/lets→let's by @hippietrail in #1158
- feat: last ditched/ditch→last-ditch by @hippietrail in #1147
- build: add caching by @elijah-potter in #1172
- feat: implement assert_any_suggestion_result as in #950 by @hippietrail in #1033
- Add core_version to harper-core by @HobbitJack in #1168
- fix(core): runaway harper-ls processes by @elijah-potter in #1163
- fix(core): ignore whitespace when matching case by @elijah-potter in #1165
- Rules by @elijah-potter in #1128
- fix(core): don't lex the last period as part of a number by @elijah-potter in #1162
- fix(#1051): Ignore potential ordinal suffixes of length greater than 2 by @grantlemons in #1054
- docs: fix incorrect documentation for some linters by @86xsk in #1151
- refactor: Rename ACO to Word by @RunDevelopment in #1149
- fix(core): allow erroneous shift usage in spellcheck by @elijah-potter in #1166
- feat: iterator API for pattern matches by @RunDevelopment in #1155
- feat: Flag phrasal verbs spelled as compound nouns by @hippietrail in #991
- fix(core): improve Dashes description by @elijah-potter in #1174
- Add snapshot tests for token metadata (aka part-of-speech tags) by @RunDevelopment in #1119
- docs(readme): fix grammar and minor rephrasing by @86xsk in #1176
- feat: zero-width patterns by @RunDevelopment in #1153
- chore(harper-core/dictionary): add unpublish(ing) forms with flags by @uncenter in #1180
- feat(core): avoid providing multiple lints for a single long hyphen sequence in Dashes by @86xsk in #1182
- feat: once a while→once in a while by @hippietrail in #1191
- chore(harper-core/dictionary): add developer-related nouns by @uncenter in #1179
- fix: running individual tests was broken by @hippietrail in #1184
- feat: how it looks like→how it looks/what it looks like by @hippietrail in #1146
- chore(harper-core/dictionary): add Tree-sitter by @uncenter in #1193
- fix: add exception to possessive_your linter by @hippietrail in #1201
- feat(ls): write sorted dictionaries by @86xsk in #1195
- feat: dictionary curation and dialect tests by @hippietrail in #1197
- chore(harper-core/dictionary): add manufacturable and favicon by @uncenter in #1194
- fix: exception for "how did you" in how-to linter by @hippietrail in #1200
- feat:Guilded Age→Gilded Age; once and a while→once in a while by @hippietrail in #1196
- fix: heuristics to fix "comparison to expected results" by @hippietrail in #1186
- chore: convert commented out tests to use #[ignore] by @hippietrail in #1199
- Print version numbers by @elijah-potter in #1204
New Contributors
- @HobbitJack made their first contribution in #1168
- @uncenter made their first contribution in #1180
Full Changelog: v0.31.0...v0.32.1 |
| v0.31.0 | 26 d’abril del 2025 | — | 64 bits ZIP Notes de la versióWhat's Changed
- No invalid private = true fields in Cargo.toml by @RunDevelopment in #1120
- Dictionary curation 2025 04 22 by @hippietrail in #1122
- Flags the definite article used together with a possessive by @hippietrail in #1112
- dictionary: Added Schengen by @jpds in #1083
- Removed the useless SequencePattern in IndefiniteArticle by @RunDevelopment in #1125
- Use Option<NonZeroUsize> as the return type of Pattern::matches by @RunDevelopment in #1124
- fix: Make code compile without concurrent feature by @RunDevelopment in #1140
- refactor: removed unused patterns by @RunDevelopment in #1141
- Dictionary curation 2025 04 25 by @hippietrail in #1136
- feat: Document QoL functions for tokens & words by @hippietrail in #1117
- feat: invest into→invest in by @hippietrail in #1139
New Contributors
- @jpds made their first contribution in #1083
Full Changelog: v0.30.0...v0.31.0 |
| v0.30.0 | 23 d’abril del 2025 | — | 64 bits ZIP Notes de la versióWhat's Changed
- docs: clarify question on FAQ by @elijah-potter in #1087
- feat: handle some false positives in let/lets/let's/let us by @hippietrail in #1085
- feat: have past→have passed by @hippietrail in #1088
- build(deps): bump clap from 4.5.36 to 4.5.37 by @dependabot in #1093
- feat: Australian English affix annotation _ by @hippietrail in #1094
- fix: reset vscode version to 1.96.2 by @hippietrail in #1084
- Dictionary (and adj-of-a) curation 2025 04 18 by @hippietrail in #1090
- Updated justfile to check tests and benches by @RunDevelopment in #1098
- feat: worse-case scenario→worst-case scenario by @hippietrail in #1104
- docs(obsidian): wrote initial contributor's guide by @elijah-potter in #1105
- feat: incase→in case by @hippietrail in #1103
- feat: adds a t_ws() shorthand for then_whitespace() in the spirit of t_aco() by @hippietrail in #1115
- feat: implement dialect indicator for Obsidian plugin by @hippietrail in #1102
- Fix Lua syntax in neovim example config by @nikosavola in #1110
- feat: client's side→client-side, server's side→server side by @hippietrail in #1109
- fix(obsidian): console contamination by @elijah-potter in #1116
- feat(core): add several novel rules by @elijah-potter in #1108
New Contributors
- @nikosavola made their first contribution in #1110
Full Changelog: v0.29.1...v0.30.0 |
| v0.29.1 | 17 d’abril del 2025 | — | 64 bits ZIP Notes de la versióWhat's Changed
- chore: "off of a" false positive by @hippietrail in #1081
- feat: phrase corrections: like a plague, have went, case and point, aswell by @hippietrail in #1078
- Dictionary curation 2025 04 17 by @hippietrail in #1080
- fix: #1075 package logo font for vscode extension by @hippietrail in #1077
Full Changelog: v0.29.0...v0.29.1 |
| v0.29.0 | 15 d’abril del 2025 | — | 64 bits ZIP Notes de la versióWhat's Changed
- refactor: remove unneeded logic for repeated words by @hippietrail in #1020
- fix: improve to handle -s -es and -ed endings by @hippietrail in #1003
- feat: start clarifying affix system by @hippietrail in #972
- refactor: improve logic and robustness of then→than by @hippietrail in #1021
- Curate existing rules by @elijah-potter in #1023
- fix: new logic and false positives by @hippietrail in #1024
- build(deps): bump tokio from 1.44.1 to 1.44.2 by @dependabot in #1040
- build(deps): bump indexmap from 2.8.0 to 2.9.0 by @dependabot in #1037
- build(deps): bump uuid from 1.12.0 to 1.16.0 by @dependabot in #1038
- feat: use the old code if parallel unavailable by @hippietrail in #1019
- feat: mention which verb triggered lint in msg by @hippietrail in #1034
- feat: Expand "cuz", correct "on face value" by @hippietrail in #1030
- feat: exempt "you guys" from the possessive your linter by @hippietrail in #1027
- feat: trail and error→trial and error by @hippietrail in #1044
- chore: tweak priority/position of statusbar item and add Harper logo by @hippietrail in #1043
- chore: "side of a" false positive by @hippietrail in #1029
- feat: Add special cases to sentence capitalization by @hippietrail in #1031
- feat: don't allow "let's" to trigger a following compound by @hippietrail in #1032
- Dictionary curation 2025 04 04 by @hippietrail in #1028
- feature: highly kept (secret)→well-kept by @hippietrail in #1045
- Documentation updates by @mcecode in #1000
- chore: manually spotted 3 things our lints would flag in doc comments by @hippietrail in #1047
- feat: sequential pronouns: don't detect "my US", make case insensitive by @hippietrail in #1026
- feat(devshell): init devshell by @alDuncanson in #1014
- harper.js API reference generation improvements by @mcecode in #1050
- fix(comments): ignore comments CSpell compatibility by @mcecode in #1046
- fix: update vscode deps by @hippietrail in #1042
- feat: hone in on→home in on by @hippietrail in #1059
- Adj of a curation 2025 04 09 by @hippietrail in #1053
- Dictionary curation 2025 04 08 by @hippietrail in #1052
- fix: make modal-of linter case insensitive by @hippietrail in #1048
- build(deps): bump clap from 4.5.34 to 4.5.36 by @dependabot in #1060
- build(deps): bump anyhow from 1.0.97 to 1.0.98 by @dependabot in #1063
- build(deps): bump lru from 0.13.0 to 0.14.0 by @dependabot in #1061
- build(deps): bump smallvec from 1.14.0 to 1.15.0 by @dependabot in #1062
- feat(core): add simple corrections from my notes by @elijah-potter in #1025
- Fix bug 1066 "Stack Overflow", dictionary curation, adjective-of-a curation by @hippietrail in #1068
- feat: add for (a)while, after (a)while, unless if, suffice to say by @hippietrail in #1071
Full Changelog: v0.28.0...v0.29.0 |
| v0.28.0 | 3 d’abril del 2025 | — | 64 bits ZIP Notes de la versióWhat's Changed
- fix(vscode-plugin): sleep a longer time after openUntitled by @kiding in #1004
- docs: update link to website by @alDuncanson in #1007
- feat(harper-cli): make lint accept user & file-local dictionary by @kiding in #987
- feat(ls): use PlainEnglish parser for language id "text" by @86xsk in #968
- docs: fix grammar by @alDuncanson in #1009
- feat(comments): add scala support by @tymcauley in #970
- docs(core): update the Author a Rule page to align with code by @elijah-potter in #1008
- feat(core): make LintConfig sorted by key by @elijah-potter in #1012
- feat: wrote first draft of statistics logging by @elijah-potter in #454
- feat(obsidian): add debounce setting by @elijah-potter in #1015
- feat(harper.js): significantly improve worker performance by @elijah-potter in #1016
- feat: #20 : comma spacing and #498 : Asian commas by @hippietrail in #891
- feat(core): added a bunch more common rules by @elijah-potter in #940
- chore: merge and sort original and non-US sections by @hippietrail in #977
- Adj of a curation 2025 04 02 by @hippietrail in #1006
New Contributors
- @alDuncanson made their first contribution in #1007
- @tymcauley made their first contribution in #970
Full Changelog: v0.27.0...v0.28.0 |
| v0.27.0 | 1 d’abril del 2025 | — | 64 bits ZIP Notes de la versióWhat's Changed
- fix(harper-ls): handle language mode change and VS Code auto detect by @kiding in #966
- feat: linters for common mistakes with "another" by @hippietrail in #963
- Dictionary curation 2025 03 06 by @hippietrail in #837
- feat(core): flag " of a" by @hippietrail in #967
- fix: include the full set of personal pronouns and possessives by @hippietrail in #964
- fix: 2 words in curated dict lack / before annotations by @hippietrail in #958
- feat: implement #828 by @hippietrail in #853
- VS Code Extension Updates by @mcecode in #960
- doc(core): write up the difference between a Linter and a PatternLinter by @elijah-potter in #973
- fix(core): remove bad phrase by @elijah-potter in #974
- fix: handle another false positive in "adjective of a" by @hippietrail in #980
- feat(harper-typst): ignore file path as arguments, regex, .display by @kiding in #976
- Improve doc coverage by @elijah-potter in #979
- feat: detect capitalized false positives by @hippietrail in #988
- fix(harper-cli): set American as the default dialect by @kiding in #986
- build(deps): bump once_cell from 1.21.1 to 1.21.3 by @dependabot in #996
- feat: more false positives: "inside of" & "out of" by @hippietrail in #992
- template for feature requests on github by @hippietrail in #981
- build(deps): bump clap from 4.5.32 to 4.5.34 by @dependabot in #995
- feat: implement #993 by @hippietrail in #994
- Dialect indicator for VS Code extension by @hippietrail in #985
- chore: "head of a" false positive + test by @hippietrail in #999
- test(core): confirm that #720 is no longer present by @elijah-potter in #975
- fix(wordpress): crashes when options menu is opened by @elijah-potter in #1002
Full Changelog: v0.26.0...v0.27.0 |
| v0.26.0 | 21 de març del 2025 | — | 64 bits ZIP Notes de la versióWhat's Changed
- docs: fix user dictionary by @kit494way in #893
- feat: mask out comments beginning with spellchecker:ignore by @grantlemons in #861
- feat(harper.js): export both binary and inlinedBinary for different runtimes by @Asuka109 in #607
- feat: linter for "as far back as" to replace "as early back as" by @hippietrail in #889
- feat: flag "explanation mark/point" instead of "exclamation" by @hippietrail in #895
- feat: correct "in anyway" to "in any way" by @hippietrail in #894
- build(deps): bump @babel/helpers from 7.26.9 to 7.26.10 in /packages by @dependabot in #899
- fix: two spelling mistakes based on homophones by @hippietrail in #886
- feat: allow blank lines and comments in dictionary.dict by @hippietrail in #756
- docs: fix typo #906 by @hippietrail in #912
- hotfix(core): properly store spans in PatternLinter cache by @elijah-potter in #926
- Dictionary curation 2025 03 12 by @hippietrail in #902
- Dialect prototyping by @elijah-potter in #925
- feat: insert newline automatically in just addnoun by @elijah-potter in #931
- docs: fix 3 grammar mistakes by @hippietrail in #933
- feat: linter for "each and everyone" by @hippietrail in #923
- feat: expand the "get rid off" lint to cover "get ride of" by @hippietrail in #900
- fix(vscode-plugin): ignore non-existent ".git" files, support untitled/unsaved files on VS Code by @kiding in #927
- feat(core): improve assertion to allow overlapping suggestions by @elijah-potter in #935
- build(deps): bump @wordpress/editor from 14.19.0 to 14.20.0 in /packages by @dependabot in #915
- build(deps): bump indexmap from 2.7.1 to 2.8.0 by @dependabot in #921
- build(deps): bump tokio from 1.43.0 to 1.44.1 by @dependabot in #919
- build(deps-dev): bump @types/node from 22.13.9 to 22.13.10 in /packages by @dependabot in #913
- build(deps): bump foldhash from 0.1.4 to 0.1.5 by @dependabot in #917
- feat: correct "along time" to "a long time" by @hippietrail in #910
- Add -able affix to open (openable) by @claydugo in #930
- docs: mention hidden library dependencies by @elijah-potter in #943
- feat(core): create new test assertion for nth suggestion results by @elijah-potter in #942
- build: migrate to pnpm workspace & biome by @Asuka109 in #924
- build(deps): bump serde from 1.0.218 to 1.0.219 by @dependabot in #920
- build(deps): bump clap from 4.5.31 to 4.5.32 by @dependabot in #946
- Web improvements by @elijah-potter in #944
- feat: ignore shebang lines by @holmanb in #947
- feat(web): add mask-image to header by @Asuka109 in #951
- fix(core): reduce ambiguity for AvoidContraction by @elijah-potter in #941
- chore: add comments describing major sections by @hippietrail in #952
New Contributors
- @kit494way made their first contribution in #893
- @holmanb made their first contribution in #947
Full Changelog: v0.25.1...v0.26.0 |
| v0.25.1 | 11 de març del 2025 | — | 64 bits ZIP Notes de la versióWhat's Changed
- docs(ls): give example config that disables sentence_capitalization by @elijah-potter in #879
- fix(core): indexing problem in Regexish work by @elijah-potter in #883
- Just getforms improvements by @hippietrail in #862
- Dictionary curation 2025 03 11 by @hippietrail in #884
- fix(core): insert paragraph breaks after code blocks by @elijah-potter in #882
Full Changelog: v0.25.0...v0.25.1 |
| v0.25.0 | 10 de març del 2025 | — | 64 bits ZIP Notes de la versióWhat's Changed
- docs: update integrations section by @mcecode in #755
- Typst Corrections by @grantlemons in #442
- refactor: add comments to just addnoun and tweak logic by @hippietrail in #605
- feat: implements #841 by @hippietrail in #842
- Add WordPress Plugin Documentation and Demo by @elijah-potter in #838
- feat: add just newest-dict-changes by @hippietrail in #701
- Spellcheck improvements by @elijah-potter in #844
- fix: add missing "gotten rid off" to other "rid off" by @hippietrail in #840
- Rules page improvements by @elijah-potter in #843
- build(deps): bump axios from 1.8.1 to 1.8.2 in /packages by @dependabot in #845
- Regexish by @hippietrail in #669
- fix: fall back to grep when rg is not available by @hippietrail in #848
- feat: flag "monumentous" and offer "momentous" and "monumental" by @hippietrail in #864
- build(deps-dev): bump svelte-check from 4.1.4 to 4.1.5 in /packages by @dependabot in #874
- build(deps): bump typst-syntax from 0.13.0 to 0.13.1 by @dependabot in #867
- build(deps-dev): bump typescript from 5.7.3 to 5.8.2 in /packages by @dependabot in #871
- build(deps-dev): bump autoprefixer from 10.4.20 to 10.4.21 in /packages by @dependabot in #873
- Dictionary curation 2025 03 08 by @hippietrail in #860
- feat: add many variants of "change of tact"->"tack" by @hippietrail in #852
- feat: implement #525 (worse/worst confusion) by @hippietrail in #856
- build(deps): bump cached from 0.54.0 to 0.55.1 by @dependabot in #868
- build(deps): bump anyhow from 1.0.96 to 1.0.97 by @dependabot in #865
- Build against an older GLIBC version by @elijah-potter in #877
- Cache busting by @elijah-potter in #876
- build(deps): bump thiserror from 2.0.11 to 2.0.12 by @dependabot in #866
- build(deps): bump serde_json from 1.0.139 to 1.0.140 by @dependabot in #869
- feat: add a lint to correct "in of itself" to "in and of itself" by @hippietrail in #863
- feat: implement "ticking time clock" by @hippietrail in #851
- feat: implements #746 by @hippietrail in #855
- feat(dict): added words to dictionary by @ficcdaf in #847
- fix: Ignore hex codes inside rgb function calls by @grantlemons in #857
- feat: Added Linux musl compilations by @kiding in #878
New Contributors
- @kiding made their first contribution in #878 |
| v0.24.0 | 5 de març del 2025 | — | 64 bits ZIP Notes de la versióWhat's Changed
- feat(core): add five technical words to the curated dictionary by @86xsk in #767
- Rid off phrase corrections by @hippietrail in #717
- chore: new words and fixes to existing entries by @hippietrail in #783
- fix(core): don't ignore blocking word-likes by @elijah-potter in #788
- fix(core): remove bad Forthwith rule by @elijah-potter in #787
- fix(core): address edge-case from #744 by @elijah-potter in #786
- feat: implement false positive "the great might of" by @hippietrail in #795
- chore: add words and improve affix annotations by @hippietrail in #793
- test: check that dictionary attributes can be spread over two entries by @hippietrail in #779
- test(core): issue #798 by @elijah-potter in #799
- chore: add words, fix annotations by @hippietrail in #805
- feat(web): create page for debugging the title-case algo by @elijah-potter in #801
- chore: curate dictionary by @hippietrail in #803
- build(deps-dev): bump @types/jasmine from 5.1.6 to 5.1.7 in /packages by @dependabot in #810
- build(deps-dev): bump rollup from 4.34.6 to 4.34.9 in /packages by @dependabot in #808
- build(deps): bump clap from 4.5.29 to 4.5.31 by @dependabot in #814
- build(deps-dev): bump prettier from 3.5.2 to 3.5.3 in /packages by @dependabot in #811
- build(deps): bump serde_json from 1.0.138 to 1.0.139 by @dependabot in #813
- feat(core): add a ton of rules from the backlog by @elijah-potter in #797
- WordPress plugin by @elijah-potter in #817
- Dictionary curation 2025 03 04 by @hippietrail in #819
- build(deps-dev): bump @types/node from 22.13.4 to 22.13.9 in /packages by @dependabot in #818
- test(core): added test with capital letters by @elijah-potter in #738
- build(deps): bump pulldown-cmark from 0.12.2 to 0.13.0 by @dependabot in #693
- refactor(core): proper noun linters use canonical casing and JSON file by @elijah-potter in #834
- Dictionary curation 2025 03 05 by @hippietrail in #833
- feat: lex 0s 1s 0's 1's etc as words by @hippietrail in #775
- refactor: nominal and determiner word types by @hippietrail in #731
New Contributors
- @86xsk made their first contribution in #767 |
| v0.23.0 | 25 de febrer del 2025 | — | 64 bits ZIP Notes de la versióWhat's Changed
- feat: another exception for "back in the days before" by @hippietrail in #712
- feat(core): allow the ThenThan linter to cover more cases by @elijah-potter in #714
- Create linter for non-idiomatic "back in the days" by @elijah-potter in #707
- Make Lintkind::Spelling exclusive to one rule. by @elijah-potter in #713
- feat: github template for reporting false positives by @hippietrail in #728
- chore: dictionary curation by @hippietrail in #727
- Overhaul by @elijah-potter in #726
- feat(core): added technical words to dictionary by @ficcdaf in #729
- feat: lex 4-digit plural decades by @hippietrail in #675
- fix(core): edge case found in Harper's documentation by @elijah-potter in #737
- fix(core): address edge cases in ThenThan rule by @elijah-potter in #735
- feat(core): add rule that corrects ban together by @elijah-potter in #734
- fix(vscode-plugin): update config keys to new standard by @mcecode in #733
- feat: reimplement "operative system(s)" by @hippietrail in #719
- fix(core): restrict GeneralCompoundNouns to ignore adverb prefixes by @elijah-potter in #736
- feat(core): added plural form of integration by @ficcdaf in #740
- build(deps): bump typst-syntax from 0.12.0 to 0.13.0 by @dependabot in #757
- build(deps): bump anyhow from 1.0.95 to 1.0.96 by @dependabot in #758
- build(deps-dev): bump prettier from 3.4.2 to 3.5.2 in /packages by @dependabot in #763
- build(deps-dev): bump @vitest/browser from 3.0.5 to 3.0.6 in /packages by @dependabot in #762
- build(deps-dev): bump @rollup/plugin-node-resolve from 15.3.1 to 16.0.0 in /packages by @dependabot in #764
- chore: dictionary curation by @hippietrail in #745
- feat: tests for sentences containing a decade by @hippietrail in #747
- feat(vscode-plugin): config updates by @mcecode in #754
- fix(core): improper pattern by @elijah-potter in #739
- doc(web): updated environment and language-server documentation on the website by @ficcdaf in #741
- build(deps): bump serde from 1.0.217 to 1.0.218 by @dependabot in #760
- feat: add just sample to list all forms of random dictionary words by @hippietrail in #646
- build(deps): bump ordered-float from 4.6.0 to 5.0.0 by @dependabot in #759
- build(deps-dev): bump @microsoft/api-documenter from 7.26.7 to 7.26.10 in /packages by @dependabot in #765
- feat: capitalize multi-word country and capital city names by @hippietrail in #703
- Fuzz results by @elijah-potter in #773
- feat: move 'could of' etc from matcher.rs to its own linter by @hippietrail in #715
- fix: better ascii and hex digit checks by @hippietrail in #776
- build(deps-dev): bump @microsoft/api-extractor from 7.49.2 to 7.50.1 in /packages by @dependabot in #761
- fix: mostly j annotations for adverbs in -ly by @hippietrail in #778
New Contributors
- @ficcdaf made their first contribution in #729 |
| 0.22.0 | 17 de febrer del 2025 | — | 64 bits ZIP Notes de la versióWhat's Changed
- feat(core): create hyphenation rule for out-of-date by @elijah-potter in #671
- chore: use just sampleforms to fix curated dict entries by @hippietrail in #660
- fix: change "and alike" phrase correction to "and the like" by @hippietrail in #705
- Add Automattic Lingo and Branding by @elijah-potter in #706
- fix(core): possesive -> possessive typo in lint message by @b-sharman in #690
- build(deps): bump smallvec from 1.13.2 to 1.14.0 by @dependabot in #694
- build(deps-dev): bump @types/node from 22.13.1 to 22.13.4 in /packages by @dependabot in #698
- build(deps-dev): bump jasmine and @types/jasmine in /packages by @dependabot in #696
- build(deps): bump clap from 4.5.28 to 4.5.29 by @dependabot in #695
- build(deps-dev): bump vite-plugin-top-level-await from 1.4.4 to 1.5.0 in /packages by @dependabot in #699
- build(deps-dev): bump @sveltejs/adapter-node from 3.0.3 to 5.2.12 in /packages by @dependabot in #700
- build(deps-dev): bump flowbite from 3.1.1 to 3.1.2 in /packages by @dependabot in #697
- feat(harper.js): allow modification to the dictionary. by @elijah-potter in #683
- fix(core): someways is not a noun by @elijah-potter in #708
- fix(core): make ChangeTack lint more specific by @elijah-potter in #709
New Contributors
- @b-sharman made their first contribution in #690
Full Changelog: v0.21.1...v0.22.0 |
| 0.21.1 | 13 de febrer del 2025 | — | 64 bits ZIP Notes de la versióWhat's Changed
- Proper noun caps australia by @hippietrail in #651
- feat: Flag "discuss about" instead of "discuss" by @hippietrail in #645
- feat: suggestion to change "sooner than later" by @hippietrail in #644
- feat: proper noun capitalization for Malaysia by @hippietrail in #652
- Implements #505 could of, should of, would of -> ... have by @hippietrail in #647
- Remove Duplicate Spelling Suggestions by @elijah-potter in #654
- feat(core): condense further more by @elijah-potter in #655
- feat: rename FullDictionary -> MutableDictionary and add some doc comments by @grantlemons in #658
- chore: fixes to curated dictionary affixes by @hippietrail in #650
- build(deps): bump once_cell from 1.20.2 to 1.20.3 by @dependabot in #634
- feat: add some words to curated dictionary by @hippietrail in #596
- feat(web): make underlines animate into existence on page load by @elijah-potter in #664
- Chock full by @hippietrail in #666
- Several New Linters by @elijah-potter in #663
- feat: multi-word proper nouns for Canada by @hippietrail in #657
- fix(core): edge cases in the closed compound noun rule by @elijah-potter in #670
- docs: add nixpkgs as an installation method by @sumnerevans in #656
New Contributors
- @sumnerevans made their first contribution in #656
Full Changelog: v0.20.0...v0.21.1 |
| 0.20.0 | 10 de febrer del 2025 | — | 64 bits ZIP |