                           ━━━━━━━━━━━━━━━━━━
                            ELFEED CHANGELOG
                           ━━━━━━━━━━━━━━━━━━


1 Version 4.0.1 (2026-06-11)
════════════════════════════

  • Bugfix: Improve shr image insertion, compatibility with
    `elfeed-tube'.
  • Bugfix: Prefix argument handling of `elfeed-show-next'.
  • Bugfix: Call `elfeed-update-hook' also for feeds which have not been
    modified.
  • Minor code cleanup (requires, private function namespacing).


2 Version 4.0.0 (2026-06-06)
════════════════════════════

2.1 General
───────────

  • `elfeed-entry-point': New customization option to customize `M-x
    elfeed' to either the search or tree buffer.
  • `elfeed-search-mode', `elfeed-show-mode', `elfeed-tree-mode': All
    Elfeed major modes derive from `special-mode'.
  • Hide irrelevant commands in `M-x' if
    `read-extended-command-predicate' is set to
    `command-completion-default-include-p'.
  • `elfeed-confirm-browse-url': New customization option.
  • `elfeed-use-libxml': New customization option to enable parsing via
    `libxml'.
  • New mouse menus in all Elfeed major modes.
  • Mouse support in the search buffer and the header line.
  • Moved elfeed-web.el to the separate repository at
    <https://github.com/emacs-elfeed/elfeed-web>.
  • Show title and search filter in Ibuffer via the variable
    `list-buffers-directory'.
  • `elfeed-last-update-relative': New option to show last database
    update in the header line relative to the current time.
  • `elfeed-csv-export': Marked as autoloaded, `elfeed-csv' is not
    required anymore.


2.2 Database
────────────

  • `elfeed-db-directory': Change default to `~/.emacs.d/elfeed'. The
    change is backward compatible. If `~/.elfeed' is present, it will be
    used.
  • `elfeed-db-cache-timeout': New option to keep archive content cache
    alive.
  • `elfeed-db-save', `elfeed-db-pack': Reduce risk for database
    corruptions by writing to temporary files first and renaming
    atomically afterwards.
  • `elfeed-db-gc', `elfeed-db-pack': Scan entry and feed meta data for
    `elfeed-ref' references. This way other packages can reference
    content with the reference kept in the metadata.
  • `elfeed-db-gc': Deduplicate strings in the database to reduce
    on-disk and in-memory size.


2.3 Feed updates
────────────────

  • `elfeed-delete-feed': New command to delete feed with all entries
    from the db.
  • `elfeed-fetch-functions': New hook to implement custom feed
    fetching. This hook can be used by `elfeed-protocol', to generate a
    feed from an external program, or to modify fetched content.
  • `elfeed-make-tagger': Support matching on entry categories.
  • `elfeed-update-background': New function to update Elfeed in the
    background from a timer.
  • `elfeed-feeds': Feeds can specify per-feed options as a
    plist. Currently supported options are `:no-update', `:fetch-link',
    `:readable' and `:show-entry'.
  • `elfeed-feeds': Feeds can specify a `:no-update' option to disable
    feed updates.  The feed appears still in the list for manual
    updates, and you can configure autotags for the entries which are
    part of the feed.
  ┌────
  │ ;; Do not update this feed
  │ (setq elfeed-feeds
  │  '(("https://yhetil.org/emacs-devel/new.atom" :no-update t emacs)
  │    ...))
  └────
  • Support for the JSON Feed format. JSON feeds are automatically
    detected, parsed with the Emacs JSON parser, but otherwise treated
    like the usual RSS or Atom feeds.


2.4 Tree buffer
───────────────

  • New `elfeed-tree-mode' which lists all feeds and tags as a tree
    structure.
  • `elfeed-tree': New command which opens an `elfeed-tree-mode' buffer.


2.5 Search buffer
─────────────────

  • `elfeed-search': New command as entry point.
  • `elfeed-search-set-filter', `elfeed-search-tag-all': Filter and tag
    completion using `completing-read-multiple'. Disable completion via
    the variable `elfeed-search-completion'.
  • `elfeed-search-set-filter': Support shorter age filter syntax, e.g.,
    `@6months'.
  • `elfeed-search-date-filter', `elfeed-search-feed-filter' and
    `elfeed-search-exclude-feed-filter': New commands bound to `@', `='
    and `~' to filter for the date or feed at point.
  • `elfeed-search-(un)tag-all', `elfeed-search-toggle-all',
    `elfeed-search-(un)tag-all-unread': If prefix argument is given, tag
    or untag all entries, not only the selected ones.
  …  …
