# Changes for Newsboat # Unreleased - expected 2025-12-21 Lists below only mention user-visible changes, but the full list of contributors for this release also includes TK. ### Added ### Changed - Bumped minimum supported Rust version to 1.88.0 ### Deprecated ### Removed ### Fixed ### Security # 2.41 - 2025-09-21 Lists below only mention user-visible changes, but the full list of contributors for this release also includes bogdasar1985. ### Added - Error message for when operation is not supported in the current view (Dennis van der Schagt) - Fallback to libxml2's encoding autodetection when Newsboat's fails (#3070) (Dennis van der Schagt) - Import feed titles from OPML (#3063) (Jorenar) ### Changed - Ported some helper programs that generate parts of the documentation from C++ to AWK, which was already used for some other helper scripts (Dennis van der Schagt, Juho Eerola) - Switched from `curl_proxytype` to `long int` for compatibility with curl 8.16.0+ (Carno) - Updated translations: Chinese (CookiePieWw), Dutch (Dennis van der Schagt), German (Lysander Trischler), Italian (Mauro Scomparin), Polish (Carno), Russian and Ukrainian (Alexander Batischev), Swedish (Dennis Öberg), Turkish (Emir SARI) - Bumped minimum supported Rust version to 1.85.0 - Updated vendored library expected-lite to 0.9.0 (Alexander Batischev) ### Fixed - Crash in `:dumpconfig` after `:set` was used to toggle or reset a non-existent option (#3104) (Dennis van der Schagt) - Crash in RSS parsers if there is no "channel" element (Burkov Egor) - Error messages being written to stdout rather than stderr (Lysander Trischler) # 2.40 - 2025-06-21 ### Added - `latestunread` feed sort order, which sorts feeds by their most recent unread article (#2492) (Daniel Lublin) - contrib: "monochrome" colorscheme (Halano) ### Changed - Bumped minimum supported GCC version to GCC 7 - Default `cleanup-on-quit` changed from `yes` to the new option `nudge`, which shows a message and waits for a keypress when unreachable items are found in the cache. This avoids accidental data loss (#1183) (Dennis van der Schagt) - Updated translations: Chinese (CookiePieWw), Dutch (Dennis van der Schagt), German (Lysander Trischler), Italian (Mauro Scomparin), Polish (Carno), Russian and Ukrainian (Alexander Batischev), Spanish (Roboron3042), Swedish (Dennis Öberg), Turkish (Emir SARI) - Bumped minimum supported Rust version to 1.83.0 - Updated vendored library json.hpp to 3.12.0 ### Removed - Support for GCC 5 and 6, in line with previous deprecation of compilers that don't support C++17 ### Fixed - Crash when invoking `edit-flags` from a new-style binding (i.e. `bind`) (Dennis van der Schagt) - Query feed configs not being read from the urls file when `urls-source` is set to `opml` (#3057) (Jorenar) - Some remote APIs not reading tags from the urls file (Dennis van der Schagt) - `exec:` and `filter:` feeds could be opened in the browser even though they don't have a URL (Juho Eerola) ## 2.39 - 2025-03-23 ### Added - New `bind` command, which is an improvement on both `bind-key` and `macro`. It allows multi-key bindings (that's new!) which execute one or more actions (similar to macros), and can have a description that'll be displayed in the help dialog (that's new too!). It also offers an additional syntax for specifying keys: instead of `^R`, one can write ``. Multi-key bindings are slightly limited in that bindings with same prefix must all be the same length to avoid ambiguity when executing them (if I had bindings `for` and `fork`, and typed `for`, Newsboat wouldn't know if that's it or I'm going to type `k` next) (#1165) (Dennis van der Schagt, Alexander Batischev, Lysander Trischler) - contrib/newsboat-idlefeeds.sh: a script to show feeds that weren't updated in a given amount of time (T3SQ8) ### Changed - Highlighting in the help form is now case-insensitive (#2998) (Juho Eerola) - Updated translations: Dutch (Dennis van der Schagt), German (Lysander Trischler), Italian (Mauro Scomparin), Polish (Carno), Russian and Ukrainian (Alexander Batischev), Swedish (Dennis Öberg), Turkish (Emir SARI) - Bumped minimum supported Rust version to 1.81.0 ### Deprecated - Compilers that don't support C++17. This release compiles with `-std=c++17`, but only for compatibility with header files of libicu 75+; Newsboat itself only uses C++14 for now. The next release might start using C++17 features, so please open an issue if that'll cause problems for you (#3031) (Alexander Batischev) ### Removed - Support for Clang 4, because it doesn't accept `-std=c++17` (#3031) (Alexander Batischev) ### Fixed - Crash when setting a non-existent variable (#2989) (Dennis van der Schagt) - Highlights not displayed for searches that contain less-than sign, due to errors in quoting (#3008) (Juho Eerola) - Building with libicu 75+, which requires C++17. libicu is an indirect dependency of Newsboat via libxml2 (#3031) (Alexander Batischev) ## 2.38 - 2024-12-22 Lists below only mention user-visible changes, but the full list of contributors for this release also includes Juho Eerola. ### Added - Shell completions for ZSH (Ludovico Gerardi) - Keymap hint for "Clear filter" when filter is active (Dennis van der Schagt) - Better logs when Miniflux authentication fails with something other than 401 Unauthorized (Dennis van der Schagt) - Support for enclosures with Miniflux (Anshul Gupta) ### Changed - Shell completions are now installed into directories where shells are looking for them. Previously, completions were installed into doc/contrib (Ludovico Gerardi) - Updated translations: Chinese (CookiePieWw), Dutch (Dennis van der Schagt), German (Lysander Trischler), Italian (Mauro Scomparin), Polish (Carno), Russian and Ukrainian (Alexander Batischev), Spanish (Roboron3042), Swedish (Dennis Öberg), Turkish (Emir SARI) - Bumped minimum supported Rust version to 1.79.0 ### Fixed - `MKDIR` not being used in all the relevant places of the Makefile (Ludovico Gerardi) - Dates far in the past or the future not being stored correctly (#2871) (Dennis van der Schagt) - `cookie-cache` having not effect on `reload-all` (bound to `R` by default, also activated by `auto-reload`) (#2935) (Dennis van der Schagt) ## 2.37 - 2024-09-22 ### Added - contrib: a bookmark plugin for Readeck (Ada Wildflower) - Podboat: podcasts can now be "missing", meaning a file was downloaded by Podboat but removed by some other program (Dennis van der Schagt) - contrib: completions file for fish shell (Dennis van der Schagt) ### Changed - Sped up `-x reload` a little by grouping feeds on the same domain. Other ways to trigger a reload already had this optimization (Juho Eerola) - Sped up FreshRSS integration with regard to marking articles as read (fjebaker) - Updated translations: Chinese (CookiePieWw), Dutch (Dennis van der Schagt), German (Lysander Trischler), Italian (Mauro Scomparin), Polish (Carno), Russian and Ukrainian (Alexander Batischev), Spanish (Roboron3042), Turkish (Emir SARI) - Bumped minimum supported Rust version to 1.77.0 - Updated vendored library Catch2 to 3.7.0 (Alexander Batischev) ### Fixed - Newsboat spamming sites with requests when `download-retries` is changed from its default of 1 and the site returns HTTP code 304 Not Modified (#2732) (Dennis van der Schagt) - Crash on articles with combining Unicode characters (#2805) (Dennis van der Schagt) - Crash on articles where author name ends in a closing parenthesis (Mikhail Yumanov) - Cursor highlighting the wrong list entry after the terminal was resized (#2845) (Dennis van der Schagt) - `highlight-article` with expressions that contain flags had no effect on unread articles (#2814) (Dennis van der Schagt) - "Searching..." message not disappearing when the search is over (#2837) (Dennis van der Schagt) ### Security - Fixed clickjacking vulnerability on newsboat.org (reported by Kunal Mhaske) ## 2.36.1 - 2024-09-22 ### Fixed - Newsboat spamming sites with requests when `download-retries` is changed from its default of 1 and the site returns HTTP code 304 Not Modified (#2732) (Dennis van der Schagt) ## 2.35.1 - 2024-09-22 ### Fixed - Newsboat spamming sites with requests when `download-retries` is changed from its default of 1 and the site returns HTTP code 304 Not Modified (#2732) (Dennis van der Schagt) ## 2.34.1 - 2024-09-22 ### Fixed - Newsboat spamming sites with requests when `download-retries` is changed from its default of 1 and the site returns HTTP code 304 Not Modified (#2732) (Dennis van der Schagt) ## 2.33.1 - 2024-09-22 ### Fixed - Newsboat spamming sites with requests when `download-retries` is changed from its default of 1 and the site returns HTTP code 304 Not Modified (#2732) (Dennis van der Schagt) ## 2.32.1 - 2024-09-22 ### Fixed - Newsboat spamming sites with requests when `download-retries` is changed from its default of 1 and the site returns HTTP code 304 Not Modified (#2732) (Dennis van der Schagt) ## 2.31.1 - 2024-09-22 ### Fixed - Newsboat spamming sites with requests when `download-retries` is changed from its default of 1 and the site returns HTTP code 304 Not Modified (#2732) (Dennis van der Schagt) ## 2.30.2 - 2024-09-22 ### Fixed - Newsboat spamming sites with requests when `download-retries` is changed from its default of 1 and the site returns HTTP code 304 Not Modified (#2732) (Dennis van der Schagt) ## 2.29.1 - 2024-09-22 ### Fixed - Newsboat spamming sites with requests when `download-retries` is changed from its default of 1 and the site returns HTTP code 304 Not Modified (#2732) (Dennis van der Schagt) ## 2.28.1 - 2024-09-22 ### Fixed - Newsboat spamming sites with requests when `download-retries` is changed from its default of 1 and the site returns HTTP code 304 Not Modified (#2732) (Dennis van der Schagt) ## 2.27.1 - 2024-09-22 ### Fixed - Newsboat spamming sites with requests when `download-retries` is changed from its default of 1 and the site returns HTTP code 304 Not Modified (#2732) (Dennis van der Schagt) ## 2.26.1 - 2024-09-22 ### Fixed - Newsboat spamming sites with requests when `download-retries` is changed from its default of 1 and the site returns HTTP code 304 Not Modified (#2732) (Dennis van der Schagt) ## 2.25.1 - 2024-09-22 ### Fixed - Newsboat spamming sites with requests when `download-retries` is changed from its default of 1 and the site returns HTTP code 304 Not Modified (#2732) (Dennis van der Schagt) ## 2.24.1 - 2024-09-22 ### Fixed - Newsboat spamming sites with requests when `download-retries` is changed from its default of 1 and the site returns HTTP code 304 Not Modified (#2732) (Dennis van der Schagt) ## 2.23.1 - 2024-09-22 ### Fixed - Newsboat spamming sites with requests when `download-retries` is changed from its default of 1 and the site returns HTTP code 304 Not Modified (#2732) (Dennis van der Schagt) ## 2.22.2 - 2024-09-22 ### Fixed - Newsboat spamming sites with requests when `download-retries` is changed from its default of 1 and the site returns HTTP code 304 Not Modified (#2732) (Dennis van der Schagt) ## 2.21.1 - 2024-09-22 ### Fixed - Newsboat spamming sites with requests when `download-retries` is changed from its default of 1 and the site returns HTTP code 304 Not Modified (#2732) (Dennis van der Schagt) ## 2.20.2 - 2024-09-22 ### Fixed - Newsboat spamming sites with requests when `download-retries` is changed from its default of 1 and the site returns HTTP code 304 Not Modified (#2732) (Dennis van der Schagt) ## 2.19.1 - 2024-09-22 ### Fixed - Newsboat spamming sites with requests when `download-retries` is changed from its default of 1 and the site returns HTTP code 304 Not Modified (#2732) (Dennis van der Schagt) ## 2.36 - 2024-06-22 ### Changed - Improved readability of `--help`: better alignment, replace unreadable ad hoc filenames with `` (Dennis van der Schagt) - Updated translations: Brazilian Portuguese (André L. C. Moreira), Chinese (CookiePieWw), Dutch (Dennis van der Schagt), German (Lysander Trischler), Italian (Mauro Scomparin), Polish (Carno), Russian and Ukrainian (Alexander Batischev), Swedish (Dennis Öberg), Turkish (Emir SARI) - Updated vendored library Catch2 to 3.5.4 (Nikos Tsipinakis) expected-lite to 0.8.0 ### Fixed - Updated default color configuration in the docs (Xiao Pan) - Parts of contrib/ not being installed (Dennis van der Schagt) ### Security - Added DMARC policy for newsboat.org to better prevent spoofing (we already had an SPF record) (reported by Kunal Mhaske) ## 2.35 - 2024-03-24 Lists below only mention user-visible changes, but the full list of contributors for this release also includes Daniel Oh and Lucio Sauer. ### Added - Support for Feedbin (#716) (James Vaughan) - `--queue-file`, `--search-history-file`, and `--cmdline-history-file` options to specify locations of the respective files. This, along with the existing options `--url-file`, `--config-file`, and `--cache-file`, lets the user fully customize the locations instead of relying on XDG or dotfiles (#57) (CookiePieWw) - `miniflux-flag-star` setting, so articles flagged in Newsboat appear as starred in Miniflux (#2235) (gilcu3) - `miniflux-show-special-feeds` setting (enabled by default) which adds a "Starred Items" feed to the feedlist for those two use Miniflux (gilcu3) - Podboat: if `--log-level` is specified but `--log-file` isn't, write the log to a file named after the template `podboat_%Y-%m-%d_%H.%M.%S.log`, i.e. use the current date and time. The same functionality was added to Newsboat proper in 2.31 (Dennis van der Schagt) - contrib: a bookmark plugin for Linkding (Mike Hall) - contrib: a bookmark plugin for Wallabag (Mike Hall) - contrib: a filter to turn twtxt protocol into RSS (Cyril Augier) - contrib: a filter to add newlines to Slashdot feed (Dennis van der Schagt) ### Changed - Build in C++14 mode. This does *not* increase our requirements for compilers, because the ones we require already provide C++14 support - Updated translations: Chinese (CookiePieWw), Dutch (Dennis van der Schagt), German (Lysander Trischler), Italian (Mauro Scomparin), Polish (Carno), Russian and Ukrainian (Alexander Batischev), Swedish (deob83), Turkish (Emir SARI) - Updated vendored library optional-lite to 3.6.0 - Bumped minimum supported Rust version to 1.72.1 ### Fixed - `%>[char]` format not working inside a conditional format (e.g. `%D %?T?%-63t%> %T&%t?`) (#2645) (Juho Eerola) ## 2.34 - 2023-12-25 Lists below only mention user-visible changes, but the full list of contributors for this release also includes bogdasar1985, who made quite a few changes to Newsboat internals (and continues work on even more!). ### Added - `latest_article_age` feed attribute; it's similar to the `age` attribute of an article, and can be used to e.g. hide feeds which were recently updated (#2619) (Dennis van der Schagt) ### Changed - Updated translations: Chinese (CookiePieWw), Dutch (Dennis van der Schagt), German (Lysander Trischler), Italian (Mauro Scomparin), Polish (Carno), Russian and Ukrainian (Alexander Batischev) - Updated vendored library json.hpp to 3.11.3 - Bumped minimum supported Rust version to 1.70.0 ### Fixed - Articles in Mastodon feeds having no titles when using Newsboat with NextCloud News (#2573) (Dennis van der Schagt) ## 2.33 - 2023-09-24 ### Added - Support for `0`..`9` keys in dialog overview. If you never used dialog overview, it's invoked by `V` key by default and is very useful if you also employ `^V`/`^G`/`^X` to keep multiple dialogs open within Newsboat (Dennis van der Schagt) - Support importing OPML 2.0 with `--import-from-opml` (#2448) (bogdasar1985) ### Changed - Image enclosures are now displayed at the start of the article. This improves support for Mastodon feeds (#2305, #2495) (Dennis van der Schagt) - In feeds that lack title and whose URLs end entirely in digits, use the description as a title instead. This improves support for Mastodon feeds and hopefully doesn't break others (#2530) (Martin Vilcans) - Taught contrib/image-preview/nbrun to take Newsboat's CLI arguments (venomega) - Updated translations: Dutch (Dennis van der Schagt), German (Lysander Trischler), Italian (Mauro Scomparin), Polish (Carno), Russian and Ukrainian (Alexander Batischev), Spanish (Roboron3042), Swedish (Dennis Öberg), Turkish (Emir SARI) - Bumped minimum supported Rust version to 1.68.2 ### Fixed - Hanging if scripts used by `filter:`, `bookmark-cmd`, or `html-renderer` process their input in a streaming fashion rather than reading it entirely before outputting anything (Alexander Batischev) - Slowness in opening and navigating feeds that contain many items (#229) (Dennis van der Schagt) - `--export-to-opml` producing invalid OPML documents (missing `text` attribute) (#2518) (bogdasar1985) ## 2.32 - 2023-06-25 ### Added - contrib: a filter to remove Substack's "Subscribe now" prompts from the posts (NunoSempere) - contrib: an image pager which can spot all the images in a post and display them with either `feh` or `kitty`'s `icat` (whyrgola) - Tags in OPML export. This is implemented as a new option, `--export-to-opml2`, because the output format is OPML version 2.0 rather than the 1.0 that `--export-to-opml` produces. We intend to make OPML 2.0 the default in some future major release of Newsboat (#871) (Gwyneth Morgan) ### Changed - Enclosures are only enqueued if their MIME type looks like a podcast or is empty. This prevents Newsboat from e.g. enqueueing images from Mastodon feeds (#2367) (Dennis van der Schagt) - Asciidoctor is a truly optional dependency now. `make all` still builds docs, but at least one can `make newsboat` and such without installing Asciidoctor (#2353) (Alexander Batischev) - Newlines are now removed from the author's name (#2434) (blankie) - If the same URL is used in `` and/or ``/`