Skip to content

v0.6.0

Choose a tag to compare

@denzuko denzuko released this 12 Jun 11:56
· 36 commits to develop since this release
339bf92

Added

  • Subscriber self-service commands (src/requests.lisp): info, who (gated by :advertised), query (own settings), set mail|nomail|digest
  • BITNET-style archive search (src/requests.lisp): search <keyword>, index, get <list> <N> against Maildir archives; :search-enabled per list
  • AllFix file distribution (src/state.lisp): files command (FILES.BBS), mlisp-admin hatch (add file + announce); :distrib-files state tracking
  • Plugin filter pipeline (src/filters.lisp): :pre-filter and :post-filter hooks; exit codes 0=pass 1=reject 2=hold 3=discard; space-separated filter chains; invoke-filter-chain / invoke-single-filter
  • Example filters: etc/filters/spamassassin, etc/filters/clamav, etc/filters/gemini-archive, etc/unsubscribe-cgi/unsub.sh
  • mlisp-admin hatch: add file to distrib archive + announce to subscribers
  • 27 new BATS specs (test_mlisp_v06.bats + test_mlisp_filters.bats)

Fixed

  • string-trim " \t" trimming literal t from filter paths — fixed to (list #\Space #\Tab) (classic CL footgun: \t in a string is \ + t)
  • string-to-message: CRLF normalisation — strip \r before header parsing
  • sb-posix:getpid replaced with (random 99999) for standalone binary compat
  • Duplicate windowed-increment-bounce removed from diagnose.lisp
  • Forward declarations added to distrib.lisp, metrics.lisp
  • *compile-file-failure-behaviour* set to :warn in all build scripts

Test coverage: 416 tests (78 FiveAM + 338 BATS)

Full Changelog: v0.5.0...v0.6.0