PackageTrack
Sign in Get early access

flarum/core

Delightfully simple forum software.

1.8.19 1.5M downloads/mo #4645 most downloaded on Packagist flarum/flarum-core

What this package is like to depend on

Last release today

23 Aug 2026

Ships fairly regularly

a new release about every 2 weeks

Most releases are documented

notes for 25 of 41 stable releases

Nothing withdrawn

no release was ever pulled

11 years old

77 releases · first in 2015

20 releases in the last 12 months

see the full history below

Release timeline

77 releases · Aug 2015 to Aug 2026
2016 2017 2018 2019 2020 2021 2022 2023 2024 2025 2026
Release Pre-release

Releases

latest 60 of 77
  1. v2.0.0-rc.6 23 Aug 2026 pre-release
    Release notes Open source →
    Release notes

    Added

    • (core) add a setting to disable sticky pinning on the All Discussions page by @gianniguida [#4609]
    • (core) add a tinker command for an interactive REPL by @imorland [#4829]
    • (core) add database version requirements with recommended-version warnings by @imorland [#4834]
    • (core) add pausable queues by @imorland [#4841]
    • (core) add a queue dashboard widget with failed-jobs management by @imorland [#4846]
    • (core) make the queue dashboard widget's tiles extensible by @imorland [#4849]
    • (core) add header extension seams to the queue dashboard widget by @imorland [#4850]
    • (core) allow migrations to run in isolation by @DavideIadeluca [#4864]
    • (core) add a setting to force a FontAwesome icon style forum-wide by @imorland [#4868]
    • (core) fail integration tests that run N+1 queries by @imorland [#4871]
    • (core) add an optional theme switcher in the header by @imorland [#4936]
    • (core) surface search in the fixed mobile navigation by @imorland [#4937]
    • (core) add a setting to sort the discussion list by title by @imorland [#4921]
    • (audit) audit queue pause and resume by @imorland [#4845]
    • (tags) let a tag set the sort its discussion list opens with by @imorland [#4922]
    • (core) show links back to the forum as the discussion they point at by @imorland [#4924]
    • (core) add an experimental opt-in CJK search mode by @imorland [#4965]

    Changed

    • (core) route queued jobs at push time instead of via a shared static $onQueue by @imorland [#4853]
    • (core) unwrap RoutingQueue when identifying the queue driver by @imorland [#4855]
    • (core) derive asset revisions from compiled output and rebuild in place by @imorland [#4857]
    • (core) rewrite the embed frontend by @imorland [#4832]
    • (core) don't force asset writes on every debug-mode request by @imorland [#4861]
    • (deps) use the upstream sourcemap package by @imorland [#4895]
    • (deps) raise the Symfony floor to 7.4 by @imorland [#4898]
    • (deps) require the sourcemap release carrying the 8.5 deprecation fix by @imorland [#4904]
    • (ci) fix the PHP-version matrix, drop unused Xdebug, and modernise workflow actions by @imorland [#4835]
    • (ci) add an optional Redis/Valkey service in the reusable backend workflow by @imorland [#4840]
    • (ci) support testing against multiple Redis clients in the reusable backend workflow by @imorland [#4847]
    • (ts) fix the ext:flarum/flags typings path in the realtime tsconfig by @imorland [#4858]

    Fixed

    • (core) allow boolean settings with truthy defaults to be disabled by @huoxin233 [#4782]
    • (core) fix the search modal overlapping the navigation drawer on mobile by @karl-bullock [#4811]
    • (core) block disabling the default language pack by @TowyTowy [#4813]
    • (core) show the index title control when no nav item is active by @karl-bullock [#4821]
    • (core) fix DetailedDropdownItem check and option icons overlapping in phone dropdown menus by @karl-bullock [#4822]
    • (core) fix a 400 on the notifications index from an invalid default include (and its N+1) by @imorland [#4828]
    • (testing) run after-commit callbacks inline in integration tests by @imorland [#4833]
    • (core) cache permissions per group set instead of per User instance by @imorland [#4839]
    • (core) fix PHPStan errors under phpstan 2.2.6 / illuminate 13.22 by @imorland [#4842]
    • (core) fix queue:resume with no argument clearing every pause by @imorland [#4844]
    • (core) handle network connection loss in the frontend by @gianniguida [#4854]
    • (core) preserve an empty color in ColorPreviewInput instead of coercing to black by @imorland [#4856]
    • (tags) validate the currentTag cache against the current route's slug by @imorland [#4860]
    • (core) complete the wide-screen breakpoints for the main layout by @imorland [#4869]
    • (core) stop multiple phone header controls stacking on top of each other by @imorland [#4870]
    • (core) keep icons whose style carries meaning out of the forced style by @imorland [#4873]
    • (core) keep the unread comment icon's weight out of the forced style by @imorland [#4878]
    • (core) keep the page shell rendered while a discussion loads by @imorland [#4881]
    • (sticky) look up the excerpt relationship on the discussions resource by @imorland [#4883]
    • (akismet) modernize the API client, fail open, verify keys, and recheck edits by @imorland [#4884]
    • (core) revision webfont URLs so a font upgrade cannot serve from stale caches by @imorland [#4885]
    • (tags) wrap the selected tags in the tag-selection setting by @imorland [#4886]
    • (core) let gambit suggestions wrap instead of running off the dropdown by @imorland [#4888]
    • (realtime) honour user.viewLastSeenAt in the typing indicator by @ekumanov [#4880]
    • (realtime) stop the reconnect catch-up from emptying the discussion list by @imorland [#4889]
    • (core) name the pane pin button and expose whether it is pinned by @imorland [#4890]
    • (approval) scope the unapproved fade to text, not the whole post by @karl-bullock [#4836]
    • (mentions) prevent a deleted fallback for unsynced posts during formatting by @huoxin233 [#4824]
    • (messages) repair dialogs left pointing at a deleted first or last message by @karl-bullock [#4851]
    • (core) drop the dead FontAwesome noscript fallback, and say what forcing a style costs by @imorland [#4892]
    • (core) hold icons blank rather than wrong while a Kit or CDN font loads by @imorland [#4893]
    • (core) recognise a finished scheduler run without a removed Symfony method by @imorland [#4897]
    • (core) run the caller's ondismiss when an alert is dismissed by @imorland [#4899]
    • (core) tell assistive technology which dropdown option is selected by @imorland [#4900]
    • (core) keep a saved falsy setting in settings modals too by @imorland [#4901]
    • (core) distinguish a missing announcement excerpt from an empty one by @imorland [#4902]
    • (realtime) retry a realtime push whose connection was interrupted by @imorland [#4903]
    • (core) clamp the desktop container widths to the available space by @imorland [#4905]
    • (core) stop the header overlapping itself when it runs out of room by @imorland [#4906]
    • (core) line up the items in the header overflow menu by @imorland [#4908]
    • (core) show and let people cancel an active search from the header by @imorland [#4909]
    • (phpstan) recognize conditional model casts by @drewmt [#4920]
    • (core) treat relative links as the forum's own by @imorland [#4927]
    • (core) include user groups when listing discussions by @imorland [#4928]
    • (core) register Input in the common export manifest by @imorland [#4929]
    • (core) don't fatal the admin payload on a non-core sort type by @imorland [#4931]
    • (extension-manager) label the icon-only extension card buttons for screen readers by @imorland [#4934]
    • (a11y) only show the button focus background for keyboard focus by @imorland [#4938]
    • (tags) resolve differently-cased tag slugs in Utf8SlugDriver::fromSlugs() by @imorland [#4940]
    • (core) route notification emails through the queue router regardless of provider boot order by @imorland [#4941]
    • (core) make the LESS compiler cache resilient to concurrent writes by @imorland [#4942]
    • (core) keep old-line-only news out of the announcements feed by @imorland [#4945]
    • (statistics) stop the date range dropdown being clipped by the entity columns by @imorland [#4950]
    • (core) don't underline Button--text dropdown toggles on hover by @imorland [#4950]
    • (statistics) populate the previous period series on the chart by @drewmt [#4952]
    • (statistics) count the whole custom range in the per-entity period totals by @imorland [#4956]
    • (core) scope haptic feedback to browsers with the Vibration API, and hide its setting elsewhere by @imorland [#4957]
    • (core) don't treat an unreadable package manifest as an empty extension list by @imorland [#4958]
    • (core) validate the table prefix against the database driver's identifier limit by @imorland [#4961]
    • (core) break ties in sorted listings by primary key so paginated results are stable by @imorland [#4962]
    • (core) tune wide-screen reading width and sidebar widths by @imorland [#4964]
    • (core) move mobile search into the drawer and index toolbar by @imorland [#4968]
    • (realtime) stamp typing events on arrival instead of trusting the sender's clock by @ekumanov [#4966]
    • (core) restore the gap between the index sidebar and the discussion list by @imorland [#4971]

    Security

    • (core) stop email values being parsed as markup by @imorland [#4874]
    • (core) declare token models' keys as strings (harden GHSA-55f2-h36g-96c3) by @imorland [#4935]
    • (core) authenticate the updater against the database credentials by @imorland [#4972]

    Performance

    • (core) prefetch the post stream chunks after boot by @imorland [#4838]
    • (core) load the discussion and its post window in parallel by @imorland [#4862]
    • (core) add a single-discussion fast path for the posts ID linkage query by @imorland [#4863]
    • (tags) cut the min-tags policy from four COUNT queries to at most one by @imorland [#4865]
    • (core) materialize post visibility once; flat grouped relation aggregates by @imorland [#4866]
    • (core) load limited BelongsToMany includes in two narrow phases by @imorland [#4867]
    • (core) cache resolved model casts per class by @imorland [#4875]
    • (mentions) eager load the discussion of mentioning posts by @imorland [#4876]
    • (core) point endpoint eager loads back at their parent models by @imorland [#4877]
    • (sticky) serve the excerpt as an attribute instead of including posts by @imorland [#4882]
    Open source →
  2. v2.0.0-rc.5 08 Jul 2026 pre-release
    Release notes Open source →
    Release notes

    Added

    • (markdown) continue lists when pressing Enter in the Markdown editor by @linkrobins [#4778]

    Changed

    • (audit) move the bundled third-party integrations out to their own extensions by @imorland [#4807]
    • (audit) remove the clarkwinkelmann-author-change integration (replaced by fof/author-change) by @imorland [#4806]
    • (deps) remove redundant nested lockfiles for gdpr/realtime by @imorland [#4801]

    Fixed

    • (core) set an explicit title on notification emails so it can't leak by @imorland [#4768]
    • (core) register a default for the show_language_selector setting by @imorland [#4792]
    • (core) reject oversized-dimension images before decoding by @imorland [#4794]
    • (core) return an empty page instead of a 500 when page[limit]=0 is requested by @linkrobins [#4775]
    • (core) bind the database transactions manager by @imorland [#4800]
    • (core) render the abandoned-extensions email body by @imorland [#4804]
    • (core) fix iPad/touch devices requiring a double-tap in the discussion list by @imorland [#4556]
    • (a11y) add a role attribute to PostStream items by @claudiushenrichs [#4780]
    • (messages) use the correct route name in the dialogs dropdown by @imorland [#4791]
    • (tags) show a friendly model name for the tag slug driver setting by @imorland [#4793]
    • (tags) update tag metadata when a pending discussion is approved by @linkrobins [#4777]
    • (gdpr) send the erasure completion email in the user's locale by @grimur82 [#4786]
    • (gdpr) share view data for the erasure completion email by @imorland [#4798]
    • (realtime) recover desktop tabs after silent socket loss and catch up on missed events by @ekumanov [#4718]

    Security

    • (core) harden avatar-from-URL fetch with a streaming cap, resolution guard, and link-local block by @imorland [#4795]
    • (deps) pin axios to patched 0.33.x to clear advisories by @imorland [#4802]
    • (deps) bump vulnerable transitive dev deps (minimatch, serialize-javascript) by @imorland [#4803]

    Performance

    • (likes) don't default-include post likes on the discussion index by @imorland [#4796]
    • (core) eager-load discussion state on the posts endpoint by @imorland [#4797]

    Documentation

    • (core) update the Laravel version in PHP docblocks by @DavideIadeluca [#4762]
    Open source →
  3. v2.0.0-rc.4 18 Jun 2026 pre-release
    Release notes Open source →
    Release notes

    Added

    • (audit) migrate the Audit extension to 2.x, split first-party integrations, and add GDPR/core coverage by @imorland [#4711]
    • (core, realtime) notify browsing users when the forum's assets are updated by @imorland [#4752]
    • (realtime) ambient typing indicators on the discussion list by @imorland [#4731]
    • (realtime) ambient typing dots on the index sidebar tag list by @imorland [#4756]
    • (realtime) make the typing indicator reusable and movable by @imorland [#4721]
    • (gdpr) audit-log the erasure request lifecycle by @imorland [#4732]
    • (approval) log discussion approval in the audit log by @imorland [#4748]
    • (core) add MariaDB to the frontend DatabaseDriver enum by @DavideIadeluca [#4701]

    Changed

    • (tags) convert TagLinkButton to TSX with an extensible linkItems list by @imorland [#4755]

    Fixed

    • (flags) type Flag::$reason and $reason_detail as nullable by @imorland [#4760]
    • (a11y) fix the aria-label text key for the new discussion button by @claudiushenrichs [#4758]
    • (core) debounce the loading indicator to avoid flicker by @imorland [#4750]
    • (avatar) ensure the base image exists for small avatar uploads by @dsevillamartin [#4740]
    • (tags) delegate tag slug resolution to the active slug driver by @imorland [#4739]
    • (tags) serialize an unslugged tag's slug to the API by @DavideIadeluca [#4746]
    • (realtime) only relay client events to channels the sender is subscribed to by @imorland [#4738]
    • (nicknames) TypeError when creating a user with a nickname by @imorland [#4734]
    • (pusher) boot crash and restore discussion-list updates by @imorland [#4730]
    • (core) don't apply JSON:API query validation to internal API requests by @imorland [#4728]
    • (core) return HTTP 503 when the upgrade page is shown by @DavideIadeluca [#4720]
    • (core) add the missing database display name on the ExtensionPage by @DavideIadeluca [#4747]
    • (core) add accessible labels to composer control buttons by @imorland [#4723]
    • (a11y) add an accessible label to the new discussion button by @claudiushenrichs [#4749]
    • (realtime) show the correct notification toast, and stop dropping it by @imorland [#4713]
    • (audit) remove circular optional-dependencies on first-party extensions by @imorland [#4712]
    • (core) fix abandoned-extensions sync never being scheduled by @imorland [#4707]
    • (core) avoid re-fetching the page of posts embedded in the initial page load by @ekumanov [#4703]
    • (mentions) fix post mention notification jumping by @zxbmmmmmmmmm [#4686]

    Performance

    • (core) avoid loading the target user's groups in the editCredentials check by @imorland [#4729]
    • (admin) lazy-load sortablejs to shrink the admin bundle by @imorland [#4754]

    Documentation

    • (realtime) provide a realtime docs link by @imorland [#4722]
    Open source →
  4. v2.0.0-rc.3 09 Jun 2026 pre-release
    Release notes Open source →
    Release notes

    Added

    • (core) detect and surface a database driver/server mismatch (e.g. MariaDB vs MySQL) by @imorland [#4682]
    • (core) content negotiation for forum error handling by @dsevillamartin [#4677]

    Fixed

    • (core) refresh the user count and list after user creation by @DavideIadeluca [#4687]
    • (core) lopsided post divider on mobile by @linkrobins [#4691]
    • (core) stub the full Queue Pause/Resume surface on QueueFactory by @imorland [#4683]
    • (mentions) align mentions in post with the rest of the text by @dsevillamartin [#4692]
    • (emoji) reserve a square box for img.emoji to avoid layout shift (CLS) by @imorland [#4685]
    • (core) queue worker TypeError on a null connection name with illuminate/queue 13.15+ by @imorland [#4700]
    • (tags, sticky) declare flarum/realtime as an optional dependency so the realtime extender loads before its consumers, fixing TypeError: mt(...) is not a constructor by @imorland [#4699]

    Performance

    • (core) fix N+1 group_user queries when serializing users by @imorland [#4696]
    Open source →
  5. v2.0.0-rc.2 01 Jun 2026 pre-release
    Release notes Open source →
    Release notes

    Added

    • (core) per-class queue routing on AbstractJob by @imorland [#4656]
    • (core) QueueFactory::getPausedQueues() for illuminate/queue v13.11+ compatibility by @forumaker [#4673]

    Fixed

    • (core) add XSLT polyfill so the forum still boots on browsers without XSLT support by @imorland [#4359]
    • (core) misaligned user badges in posts — positioned relative to the username instead of the avatar by @luceos [#4582]
    • (core) hide the search clear button when collapsed in tablet mode by @huoxin233 [#4594]
    • (core) prevent the search modal from opening when the clear button is clicked by @huoxin233 [#4595]
    • (core) prevent discussion list cache wipe on back-navigation to tag pages by @imorland [#4598]
    • (core) send transactional emails in the recipient's preferred locale by @imorland [#4627]
    • (core) restore text-overflow: ellipsis on long button labels by @imorland [#4628]
    • (core) scope the UserResource groups relationship to viewable groups by @imorland [#4629]
    • (core) add missing getHidden() to the Log\Context\Repository stub by @imorland [#4633]
    • (core) avoid duplicate ModelNotFoundException logs on orphaned queued jobs by @imorland [#4634]
    • (core) resolve VersionerInterface from the container and cache rev-manifest reads by @imorland [#4638]
    • (core) track avatar HiDPI variants on users to remove srcsetFor() filesystem calls by @imorland [#4639]
    • (core) resolve the email logo URL via the flarum-assets disk by @imorland [#4640]
    • (core) lower the SMTP ping threshold to 20s to survive idle-disconnect from relays by @imorland [#4641]
    • (core) notification dedup query never matching non-null data on MySQL by @imorland [#4645]
    • (core) notification and email duplicates from a queue race in NotificationSyncer by @imorland [#4647]
    • (core) TypeError in the Revised event when post content is NULL by @imorland [#4648]
    • (core) prevent UserSecurityPage crash when the user loads asynchronously by @datlechin [#4651]
    • (core) send the user slug, not username, for the profile author filter by @imorland [#4655]
    • (core) TextEditor.onbuild race against async Mithril redraw by @imorland [#4657]
    • (core) surface event posts in discussion PATCH responses and route title changes via rename() by @imorland [#4658]
    • (core) harden pgsql search configuration handling by @imorland [#4663]
    • (core) replace the async-CSS dual path with a render-blocking stylesheet to fix FOUC by @imorland [#4664]
    • (core) widen Extend\SearchDriver class-string types to SearcherInterface by @imorland [#4668]
    • (core) guard EloquentBuffer against orphaned/mock models by @imorland [#4669]
    • (core) resolve native tooltip flash, async teardown leaks, and dynamic tooltip text by @huoxin233 [#4674]
    • (core) mobile discussion total post count not updating on reply by @imorland [#4678]
    • (admin) keep the extension danger badge visible on long names by @imorland [#4660]
    • (realtime) reconnect the WebSocket and catch up on missed events after iOS Safari backgrounding by @ekumanov [#4590]
    • (realtime) cast boolean setting correctly by @imorland [#4624]
    • (realtime) order users by joined_at in realtime:info by @imorland [#4630]
    • (realtime) reconstruct Pusher on iOS reconnect to bypass the lives:2 budget by @ekumanov [#4654]
    • (realtime) only force-reconnect on iOS visibilitychange by @imorland [#4662]
    • (gdpr) harden export download with an audit trail, single-use links, and an active expiry check by @imorland [#4642]
    • (tags) restore subquery for permitted tag IDs (regression from #4502) by @imorland [#4649]
    • (flags) drop literal 'undefined' from the Inappropriate reason and lazy-load FlagPostModal by @imorland [#4659]
    • (nicknames) cast min/max length settings to int before passing to Schema\Str by @imorland [#4599]

    Changed

    • (tags) drop legacy unused background columns from the tags table by @Abdooo2235 [#4529]

    Performance

    • (core) skip MIME detection in JsDirectoryCompiler when the file extension already matches by @imorland [#4632]
    Open source →
  6. v2.0.0-rc.1 18 Apr 2026 pre-release
    Release notes Open source →
    Release notes

    Added

    • (core) reset-settings button and confirmation modal on extension admin pages, backed by DELETE /api/settings and Settings\Event\Reset by @imorland [#4522]
    • (core) forum-widget extension category by @imorland [#4543]
    • (core) HiDPI avatar srcset — generate @2x/@3x variants on upload and expose avatarSrcset on the user resource by @imorland [#4555]
    • (core) weekly sync of the abandoned-extensions list with admin notifications and manual "Check Now" trigger by @imorland [#4560]
    • (realtime) Realtime::authorizePresenceChannel extender for gating presence-channel access by @imorland [#4573]

    Fixed

    • (core) suppress PHP warning when extension name lacks vendor/package format by @imorland [#4510]
    • (core) strip trailing slash from URI before route dispatch by @imorland [#4511]
    • (core) incorrect bottom page padding by @imorland [#4518]
    • (core) Api\Serializer attribute fields now run through serializeValue so booleans no longer serialize as strings by @imorland [#4530]
    • (core) PaginatedListState::paramsChanged() uses value comparison so back-navigation preserves loaded pages and scroll by @imorland [#4532]
    • (core) show avatar and badges in ReplyPlaceholder composing state on mobile by @imorland [#4533]
    • (core) preserve array values in Attribute::serializeValue to avoid "Array to string conversion" for extensions returning arrays from Str-typed attributes by @imorland [#4534]
    • (core) small correctness and accessibility fixes — serializer meta caching, queue exception handler, @hasSection directive, Checkbox inputAttrs, FormGroup Switch aria-describedby by @imorland [#4562]
    • (core) restore controls icon on UserCard so the mobile controls button is visible by @imorland [#4568]
    • (core) remove hardcoded radio input name in FormGroup so multiple radio groups can coexist by @rafaucau [#4571]
    • (core) prevent FontAwesome Kit from overriding display on hidden icon elements by @imorland [#4575]
    • (core) validate logo, favicon and dark-mode logo uploads via a shared AbstractImageValidator by @luceos [#4579]
    • (admin) improve StatusWidget mobile layout on the dashboard by @imorland [#4531]
    • (admin) avatar driver default value and abandoned-sync message padding by @imorland [#4567]
    • (admin) nav dropdown flickers on mobile by @luceos [#4578]
    • (sticky) qualify ambiguous id column in is_unread_sticky subquery so extensions that join discussions no longer break by @imorland [#4520]
    • (tags) use hasPermission for bypassTagCounts so the permission works for non-admins on restricted tags by @imorland [#4539]
    • (tags) use forum description for meta description on tags homepage by @imorland [#4558]
    • (core) enforce expiry check on password reset token submission by @imorland [#4550]
    • (core) invalidate active sessions when password is changed by @imorland [#4551]
    • (core) delete stale password tokens when requesting a new reset by @imorland [#4552]
    • (core) harden avatar-from-URL Guzzle client — disable redirects, add timeout and size limit by @imorland [#4553]
    • (deps) bump lodash and lodash-es to 4.18.1 to pick up prototype-pollution and _.template code-injection fixes by @dependabot [#4515] [#4516] [#4517] [#4523]

    Changed

    • (core) replace "community" wording with "forum" for consistency by @luceos [#4580]
    • (webpack-config) remove deprecated Babel plugins from config by @rafaucau [#4498]

    Performance

    • (core) eliminate N+1 queries on the discussion list by @imorland [#4508]
    • (core) add composite index on notifications to fix slow unread-count queries by @imorland [#4509]
    • (core) frontend performance improvements — preconnect hints, fetchpriority, FOUC fix, viewport by @imorland [#4561]
    • (tags) resolve tag slugs in a single batch query in TagFilter by @imorland [#4563]
    Open source →
  7. v2.0.0-beta.8 22 Mar 2026 pre-release
    Release notes

    Added

    • (realtime) extender API, per-extension integrations, and notification toasts by @imorland [#4473]
    • (admin) announcements widget on admin dashboard by @imorland [#4471]
    • (admin) collapsible extension categories, health widget & abandoned package support by @imorland [#4392]
    • (core, mentions, likes) implement IdWithDisplayNameSlugDriver by @imorland [#4470]
    • (core) redirect-only OAuth flow — rewrite ResponseFactory by @imorland [#4461]
    • (core) CloseWatcher API for modals and dropdowns by @imorland [#4433]
    • (core) haptic feedback user preference and utility by @imorland [#4430] [#4434]
    • (core) reusable Hero component by @imorland [#4215]
    • (core) customizable user avatar drivers by @imorland [#4130]
    • (core) add haptic feedback to core and bundled extensions by @imorland [#4430]
    • (core) convert uploaded avatars to WebP, add batch migration command by @imorland [#4431]
    • (core) convert uploaded logos to WebP, support animated GIF by @imorland [#4458]
    • (core) add dark mode logo support by @imorland [#4457]
    • (core) change logout from GET to POST by @imorland [#4448]
    • (core) upgrade FontAwesome from 6.x to 7.x by @imorland [#4388]
    • (core) load FontAwesome CDN/Kit non-blocking by @imorland [#4463]
    • (core) load CSS asynchronously to eliminate render-blocking stylesheets by @imorland [#4462]
    • (gdpr) PII field declarations and anonymized context support by @imorland [#4396]
    • (gdpr) port confirmation token invalidation, IP logging and IP purge by @imorland [#4423]
    • (mail) add Postmark driver by @imorland [#4455]
    • (mail) log send failures and fire EmailSendFailed event by @imorland [#4385]
    • (package-manager) replace flarum.org API with Packagist search by @imorland [#4394]
    • (tags) fix tags mutation shows [deleted] and related improvements by @imorland [#4393]
    • (realtime) make notification toast duration configurable; 0 disables toasts by @imorland [#4497]
    • (subscriptions) add support for auto follow discussions on create by @huoxin233 [#4464]
    • (install) support queue configuration in installer file by @imorland [#4484]
    • (core) add support for pgsql's search_path by @johannsa [#4241]

    Fixed

    • (core) various styling fixes: mobile post padding, unread notification contrast, primary button text colour by @imorland [#4480]
    • (realtime) restore full-width new-activity banner; move state to IndexPage by @imorland [#4481]
    • (core) make user search case-insensitive across all supported databases by @imorland [#4467]
    • (core) normalize database version strings in admin dashboard by @imorland [#4466]
    • (core) skip password check on update page for passwordless drivers by @imorland [#4435]
    • (core) add missing method_not_allowed translation for error view by @imorland [#4418]
    • (core) preserve translations when switching locale by @imorland [#4400]
    • (core) return Less_Tree_Keyword for boolean custom Less functions by @imorland [#4406]
    • (core) prevent Uncaught ReferenceError for async default exports by @imorland [#4397]
    • (core) use correct --page-bottom-padding CSS variable in App by @imorland [#4438]
    • (core) use luma-based text colour for primary buttons to ensure contrast by @imorland [#4451]
    • (core) add left padding to posts on mobile by @imorland [#4422]
    • (core) reduce post horizontal padding on mobile to 15px by @imorland [#4456]
    • (core) prevent hr at end of poststream if more children are present by @imorland [#4460]
    • (core) LESS mixin definitions and skip-to-content link visibility by @imorland [#4389]
    • (core) disable auto_tls for None encryption, add SSL cert verification bypass by @imorland [#4445]
    • (approval) apply opacity to whole unapproved post, not child elements by @imorland [#4453]
    • (formatter) handle null content in HasFormattedContent and mentions unparsers by @imorland [#4452]
    • (gdpr) add GDPR safeguard for cancelled erasure requests by @imorland [#4387]
    • (jest-config) rename src/boostrap/ to src/bootstrap/ and update all imports by @imorland [#4413]
    • (less) fix FA Kit icon alignment and spurious icon regressions by @imorland [#4409]
    • (mentions) prevent crash when tag or group has no icon/color by @imorland [#4447]
    • (mentions) resolve editor-ready race condition without arbitrary timeout by @imorland [#4411]
    • (messages) refresh DialogMessage after create to resolve number expression by @imorland [#4384]
    • (nicknames) sanitize display names to prevent injection in HTML notification emails by @imorland [#4454]
    • (notifications) scope notification queries to the authenticated user by @imorland [#4441]
    • (notifications) invalidate unread count cache on delete all by @imorland [#4390]
    • (package-manager) reject extensions incompatible with current Flarum major version by @imorland [#4412]
    • (package-manager) restrict task list endpoint to admins only by @imorland [#4410]
    • (search) use SlugManager in AuthorFilter to support custom slug drivers by @imorland [#4486]
    • (settings) register missing defaults for admin dropdown settings by @imorland [#4491]
    • (sticky) sticky discussions in hidden tags appear on all-discussions page by @imorland [#4492]
    • (user) delete avatar file from disk when user account is deleted by @imorland [#4485]
    • (core) capture extension name by value in initializer error closure by @imorland [#4482]
    • (core) add missing content attr type to Alert component by @rafaucau [#4495]
    • (emoji) update to Emoji/Unicode 17 by @imorland [#4489]

    Changed

    • upgrade Illuminate components to Laravel 13 by @imorland [#4468]
    • (core) flarum-webpack-config 3.0.3 by @imorland [#4398]
    • (core) remove Array.prototype.flat polyfill by @imorland [#4483]
    • (extensions) re-sort extension order during migrate to pick up new optional-dependencies by @imorland [#4493]
    Open source →
  8. v2.0.0-beta.7 21 Feb 2026 pre-release
    Release notes

    Added

    • fire ApplicationBooted event after all service provider boot callbacks complete by @imorland [#4366]

    Fixed

    • (tooltip) destroy tooltip instance on component removal to prevent orphaned tooltips by @imorland [#4382]
    • (tags) authors unable to rename/hide own discussions in restricted tags by @imorland [#4379]
    • handle null gotoItem in SearchModal to prevent crash by @imorland [#4376]
    • (tooltip) add container prop to fix notification button tooltip positioning by @imorland [#4375]
    • (admin) correct tree array construction in GeneralSearchSource by @imorland [#4373]
    • (forum) sync discussion URL immediately on programmatic scroll by @iPurpl3x [#4371]
    • (realtime) error when post not visible due to tag restrictions by @imorland [#4369]
    • (forum) show pop-in animation on first post when loading a discussion by @iPurpl3x [#4362]
    • (forum) prevent scroll jump when loading discussion to a specific post by @iPurpl3x [#4361]

    Changed

    • eliminate redundant DB writes in auth middleware and cache notification counts by @imorland [#4380]
    • store scheduler last-run timestamp in cache instead of database by @imorland [#4364]
    • fix rogue settings delete query that ran on every request by @imorland [#4368]
    • (realtime) replace raw DB query with Eloquent for external settings cache by @imorland [#4367]
    • add color-scheme property to root.less for better dark-mode support by @zDaleZ [#4357]
    • prep for beta.7 by @imorland [#4377]
    Open source →
  9. v2.0.0-beta.6 25 Jan 2026 pre-release
    Release notes

    Added

    • highlight abandoned packages, expose PHP info by @imorland [#4323]
    • request error handler for extension toggles by @dsevillamartin [#4333]

    Fixed

    • (realtime) likes sync after 20 replies by @edgeinfinity1 [#4319]
    • (realtime) tag-specified discussion pushing by @edgeinfinity1 [#4320]
    • (suspend) suspend without reason/message by @imorland [#4345]
    • (likes) likes not loaded on firstPost via XHR by @imorland [#4327]
    • security page moderation access by @imorland [#4325]
    • firstPost callback console error by @imorland [#4326]
    • registry warnings for lazy-loaded chunks by @imorland [#4331]
    • minified JS identification by @imorland [#4329]
    • custom use translation value by @imorland [#4347]
    • larastan-extension path for packages by @imorland [#4348]

    Changed

    • upgrade to Laravel 12, PHPStan 2.x, and LaraStan 3.x by @imorland [#4268]
    • update wikimedia/less.php from 4.x to 5.x by @Krinkle [#4225]
    • queue and log missed changes for Laravel 12 by @imorland [#4342]
    • allow LaravelServiceProvider or AbstractServiceProvider by @imorland [#4349]
    • prep for beta.6 by @imorland [#4343]
    Open source →
  10. v2.0.0-beta.5 21 Dec 2025 pre-release
    Release notes

    Added

    • (realtime) donate Realtime extension to Flarum Foundation by @luceos [#4295]
    • (gdpr) move GDPR extension into monorepo by @imorland [#4290]
    • allow to disable slidable on DiscussionListItem by @DavideIadeluca [#4303]
    • null email driver availability by @imorland [#4311]

    Fixed

    • (messages) delete conversation when no messages are left by @SychO9 [#4236]
    • (tags) tags page edit icon position, preload FA kit by @imorland [#4305]
    • (realtime) realtime dist being ignored by @imorland [#4307]
    • missing translation for legacy search component by @imorland [#4314]
    • mentions not always eager loaded in the notification email context by @imorland [#4308]
    • backwards TLS/SSL encryption mapping by @imorland [#4310]
    • sidebar width by @imorland [#4312]
    • minor styling fixes by @imorland [#4315]
    • FA icon shift when using Kit by @imorland [#4304]
    • email notification and information templates not rendering named slot content by @imorland [#4317]

    Changed

    • (gdpr) enable PHPStan and address issues by @imorland [#4309]
    • bump brace-expansion from 1.1.11 to 1.1.12 by @dependabot [#4274]
    • bump form-data from 4.0.1 to 4.0.4 by @dependabot [#4273]
    Open source →
  11. v2.0.0-beta.4 24 Nov 2025 pre-release
    Release notes

    Changed

    • (a11y) improve a11y of avatar with no avatarUrl by @DavideIadeluca [#4248]
    • improve extensibility of PostUser by @imorland [#4252]
    • readme badges markdown format by @szepeviktor [#4239]
    • bump js-yaml from 4.1.0 to 4.1.1 by @dependabot [#4280]
    • bump js-yaml from 3.14.1 to 4.1.1 by @dependabot [#4285]

    Fixed

    • action dropdown inaccessible near bottom of userlist by @imorland [#4250]
    • (a11y) missing default alt text for avatar by @imorland [#4243]
    • validate mail settings for whitespace by @imorland [#4251]
    • condition for displaying not sending message in MailPage by @notanothervibecoder [#4260]
    • error when importing from extension unless enabled by @imorland [#4261]
    • restore xdebug.max_nesting_level after less compilation by @DavideIadeluca [#4263]
    • randomized username fails validation by @imorland [#4283]
    • developer tokens not visible if not in first page by @imorland [#4266]
    • avatar editor overlay stretching prevention by @imorland [#4265]
    • (admin) IPAddress component unavailable in admin frontend by @imorland [#4275]
    • safari issues with dropdown menus by @imorland [#4286]

    Added

    • conditional setting extender by @imorland [#4287]
    • confirmation dialog for permission scope deletion by @DavideIadeluca [#4272]
    • admin StatusWidgetItem by @imorland [#4258]
    • database queue support with queue settings by @imorland [#4270]
    • fontawesome cdn and kits support by @imorland [#4271]
    • server hostname configuration for Pusher integration by @notanothervibecoder [#4253]
    • php 8.5 testing support by @imorland [#4284]
    Open source →
  12. v2.0.0-beta.3 25 Apr 2025 pre-release
    Release notes

    Changed

    • (a11y) misc a11y improvements by @SychO9 [#4211]
    • allow labels of PostStreamScrubber to be customized by @DavideIadeluca [#4181]
    • improve extensibility of Admin Pages by @DavideIadeluca [#4200]
    • improve extensibility of IndexPage by @DavideIadeluca [#4182]
    • improve extensibility of PostMeta component by @DavideIadeluca [#4196]
    • make search debounce time extensible by @DavideIadeluca [#4172]
    • Sanitize page in Tag (#4170) by @rob006 (15112c2f40656db8c310945e6c7255b90570379f)
    • Codebase cleanup by @xHeaven [#4161]
    • audit-fix by @SychO9 (fbe7be69ef573d0d39f70454bfd02ab94857db8a)
    • increase composer job timeout by @SychO9 (fa88731fe1f4473831af6ba56b186c72924307d9)
    • optimize querying post index by @SychO9 [#4178]
    • render after first post items once by @SychO9 (973f4f6f6ba8574b9d56674df94a02f060464ca4)
    • (tags) improve extensibility of TagHero by @DavideIadeluca [#4198]
    • allow extending PostPreview content by @DavideIadeluca [#4197]
    • improve extensibility of WelcomeHero by @DavideIadeluca [#4199]
    • make it easier to add content after the first post by @DavideIadeluca [#4186]

    Fixed

    • (security) Session Hijacking via Authoritative Subdomain Cookie Overwrite by @novacuum (f19007f42466ebf881307670a32d14516444ac24)
    • fixes issue with smtp non-tls connections by @luceos [#4203]
    • change condition when unread label is shown in Scrubber by @DavideIadeluca [#4185]
    • change starting position of aria-posinset by @DavideIadeluca [#4191]
    • return empty object if selected mail driver is unavailable by @DavideIadeluca [#4183]
    • (tags) resolve a11y warnings in Admin Frontend by @DavideIadeluca [#4184]
    • (em) skip incompatible extension updates by @SychO9 [#4177]
    • (phpstan) incompatibility with recent updates by @SychO9 (1b9ff2b6fa90a9c991b6e1d9ab5bd959802bd099)
    • (webpack) chunk module path checking fails with dotted directories by @DavideIadeluca [#4179]
    • sendmail driver fails by @SychO9 [#4168]
    • suspended_until serialized as date instead of datetime by @SychO9 [#4169]
    • messages UI/UX improvement by @SychO9 [#4173]
    • messages inconsistencies by @SychO9 [#4174]
    • prevent users from seeing their own flags by @SychO9 [#4167]
    • visual bugs by @SychO9 (97e56af2cd8e97e4ef10235d3e584d0def2afffc)

    Added

    • (messages) messages page extensible content by @SychO9 (561e22784a547c8aa92120e0972a9cc97ac21645)
    • (pm) delete own messages by @SychO9 [#4180]
    • (pm) messages anchor link by @SychO9 [#4175]
    • actions dropdown in admin user list by @DavideIadeluca [#4188]
    • advanced admin registry extenders by @SychO9 [#4209]
    • reusable component for showing IP address by @DavideIadeluca [#4187]
    Open source →
  13. v2.0.0-beta.2 17 Jan 2025 pre-release
    Release notes

    Fixed

    • (em) incorrect extension compatibility check [#4155]
    • (webpack) produces incorrect ext namespace (a7d584f8e1ec650035dafd660a70586d1d0d6bb9)
    • bad modal alert text alignment [#4152]
    • beta.1 early bugs (a81d13e26c1c2191859493de2ad45a515ad07b90)
    • code split fails with common module [#4151]
    • composer no longer autofocusing [#4149]
    • conditional renders 0 (1cd644d27feb4eeea5cbaedd009a3af2643af396)
    • custom styles from 1.x can crash the app [#4159]
    • discussion page renders before loading is finished [#4158]
    • discussion posts not always properly loaded [#4156]
    • fixed side nav missing top spacing [#4147]
    • invisible dropdown text when header is colored (958dec594486cbc14cf8f922db324a8ffc0245e3)
    • lazy module import always returns default module [#4148]
    • mistakenly removed code (33121ed1cc260bf967f0b8c4d10ab5099410bac0)
    • select input cuts off [#4157]
    • tag selection icon alignment [#4153]
    • unexpected subscription breaks rendering [#4150]
    • use correct human time format key [#4154]

    Changed

    • (mentions) only access related mentions if loaded (9fe17b3c24c5b9236e419a00c1230b2994b8c009)
    • extensibility improvements (00426c85e38efc91554af33644b088e72b3b3c1b)
    Open source →
  14. v2.0.0-beta.1 08 Dec 2024 pre-release
    Release notes

    Changed

    • php 8.4 [#4103]
    • JSON:API refactor [#3971]
    • (mentions) allow renderer to be used without context [#3954]
    • (flags) add pagination to flags list [#3931]
    • (mentions) add integration test for reply approval notification [#3748]
    • (mentions,emoji) tie autocomplete to editor instance [#3913]
    • (phpstan) upgrade to be compatible with latest dependency updates [#3835]
    • (tags) prevent loading tag state if loaded previously [#4009]
    • (testing) run flarum/testing packages tests back again [#3844]
    • Do not catch exceptions when testing Console commands [#3813]
    • Patch vulnerability advisory [#3966]
    • Search box improvements on tablet devices [#4076]
    • Test using MySQL 8.1 [#3870]
    • Upgrade dependencies [#3830], [#4012]
    • Upgrade intervention/image to 3.2 [#3947]
    • Upgrade Wikimedia/less.php to 4.1 [#3837]
    • Upgrade Mithril to 2.2 [#3831]
    • (tags) Wrong tag input width if contains CJK characters [#4127]
    • allow custom actions runner to be defined [#3988]
    • avoid using .fa() mixins and @fa-var vars [#3912]
    • cleanup composer deps (40dcaf882cd017463ca792762d4aa11de8c5c7da)
    • corrected typos in routes comments [#3840]
    • extract FormModal from Modal [#3922]
    • extract buildSettingComponent method into a FormGroup component [#3927]
    • fix typos [#4021]
    • function names (d15438846895a5cf7b5a584479ef63a6e3119925)
    • handle deprecations from 1.x [#3909]
    • ignore deprecation errors in prod [#4072]
    • improve debugging experience [#3944]
    • improve test suite [#3814]
    • increase phpstan level to 6 [#3836]
    • HeaderPrimary.js converted to typescript [#4052]
    • merge the app with the container & implement the ApplicationContract [#3862]
    • recover bundlewatch [#3829]
    • remove ExtenderInterface[] as a conditional option, only support callable or ::class invoke [#3904]
    • remove listing of posts in the show discussion endpoint [#4067]
    • remove unused vars in catch [#3839]
    • simplify if else conditions [#3843]
    • simplify variable assignment using null coalescing operator [#4000]
    • support composer auth in workflows [#3961]
    • switch formatter to format-message [#4088]
    • transpile js to es6 [#3699]
    • unify frontend initializers naming [#4003]
    • update FontAwesome v6 icon search link [#4036]
    • use ::class syntax to fetch class name instead of get_class() function [#3910]
    • use hex_color rule for color validation [#3936]
    • use str_contains instead of strpos [#3841]
    • graceful failure from extend/override errors [#4134]

    Fixed

    • (a11y) convert empty links to buttons [#3926]
    • (approval) PostWasApproved event triggered incorrectly [#3930]
    • (em) prevent use if missing php functions (94b0d67a4020e1b7027e0df53dee1d681dc822e1)
    • (em) production ready check (f6e84a0dc576d1cfe8539b7438244edf156e3b1a)
    • (testing) use cookie for testing authentication [#3924]
    • 3 char hex color is incorrectly modified to 6 [#4013]
    • Add conditional rendering for email status in MailPage.tsx [#3997]
    • Logout controller allows open redirects [#3948], [#4091]
    • allow use of an attribute named relationships (1ead69e9b66ae9bc335be663498b7ea706adbf73)
    • cannot install without db prefix [#4001]
    • change length of email field [#4118]
    • color input changes while typing [#3919]
    • console extender does not accept ::class attribute for schedule [#3903]
    • default labels with SettingDropdown and SelectDropdown [#3854]
    • duplicated mentionsUsers in extend.php (2b56129d70d18686a73d044ff65b418eef83f388)
    • handled API errors break preloaded content [#3920]
    • improve the flarum validator [#4133]
    • installation command config path can be null (07623afacde590c45a20537add3b72a919050819)
    • larastan changed namespace [#3955]
    • larastan changes frequently (af2a32a3a4f50874c63785f5168e1df60f947553)
    • load event mentioned tags on show discussion endpoint [#3915]
    • move UserSearchResult to common (35f76bce60361caac8001c41c421de30f567b221)
    • notify for all posts switch field loading state [#3938]
    • only set actor on events that have it [#3914]
    • overflowing forum stats [#3940]
    • paginated list limit hard to change [#3918]
    • prevent wiping out existing database on install [#4092]
    • reset save button state when an error occurs in admin page [#4010]
    • usage of aria-hidden=false might cause inconsistent behavior [#4074]
    • use dynamic viewport units for height of Modals [#3951]
    • user pages history not registered [#3916]
    • validate required cli install args [#4093]
    • make WelcomeHero extensible [#3848]
    • Update the scheduler info link in admin (#3826)

    Added

    • Export Registry [#3842]
    • Code Splitting [#3860]
    • Fontawesome v6 [#4020]
    • extension bisect [#3980]
    • extension list UI [#4066]
    • admin search UI [#4022]
    • add support for PgSQL [#3985]
    • add support for SQLite [#3984]
    • separate MariaDB driver [#4132]
    • advanced maintenance modes [#3977]
    • notification unsubscribe links [#3872]
    • email overhaul with HTML multipart [#3872]
    • date time formats from locales [#4029]
    • messages extension [#4028]
    • search drivers (revamp search system) [#3893]
    • search UI/UX revamp [#3941]
    • post search adapted with global search [#4019]
    • vanilla CSS color scheme changes [#3996]
    • (emoji) allow the user to set the CDN address [#3908]
    • (nicknames) allow OAuth to provide a nickname [#4004]
    • (sticky) make excerpt optional in sticky [#4016]
    • JS Notification extender [#3974]
    • add whenExtensionDisabled to Conditional extender [#3847]
    • add option for filtering read stickied on all discussions page [#4073]
    • allow resetting settings to default [#3935]
    • define FLARUM_START constant [#4082]
    • dispatch event to flarum/installation-packages on release [#3625]
    • eloquent factories (primarily for tests) [#3982]
    • frontend content flexible order priorities [#3765]
    • improve emoji autocomplete [#3923]
    • recover support for ico favicon [#4126]
    • theming and extensibility improvements [#3876]
    Open source →
  15. 1.8.19 13 Aug 2026
    Release notes

    Full Changelog: v1.8.18...1.8.19

    Open source →
  16. v1.8.18 03 Aug 2026
    Release notes

    Full Changelog: v1.8.17...v1.8.18

    Open source →
  17. v1.8.17 15 Jun 2026
    Release notes

    Full Changelog: v1.8.16...v1.8.17

    Open source →
  18. v1.8.16 18 Apr 2026
    Release notes

    Full Changelog: v1.8.15...v1.8.16

    Open source →
  19. v1.8.15 10 Apr 2026

    Nothing published for this version

  20. v1.8.14 08 Mar 2026

    Nothing published for this version

  21. v1.8.13 09 Feb 2026

    Nothing published for this version

  22. v1.8.12 07 Jan 2026

    Nothing published for this version

  23. v1.8.11 08 Oct 2025

    Nothing published for this version

  24. v1.8.10 12 Mar 2025

    Nothing published for this version

  25. v1.8.9 20 Nov 2024

    Nothing published for this version

  26. v1.8.8 22 Oct 2024

    Nothing published for this version

  27. v1.8.7 09 Oct 2024

    Nothing published for this version

  28. v1.8.6 08 Oct 2024

    Nothing published for this version

  29. v1.8.5 05 Jan 2024

    Nothing published for this version

  30. v1.8.4 14 Dec 2023

    Nothing published for this version

  31. v1.8.3 18 Oct 2023

    Nothing published for this version

  32. v1.8.2 22 Sep 2023

    Nothing published for this version

  33. v1.8.1 23 May 2023
    Release notes

    Fixed

    • recover temporary solution for html entities in browser title (e72541e35de4f71f9d870bbd9bb46ddf586bdf1d)
    • custom contrast color affected by parents (577890d89c593ae5b6cb96083fab69e2f1ae600c)
    • reply placeholder wrong positioning (253a3d281dbf5ce3fa712b629b80587cf67e7dbe)
    • (mentions) missed post mentions UI changes with lazy loading [#3832]
    • (mentions) cannot use newly introduced mentionables extender [#3849]
    • (mentions) missing slug from post mention links (5a4bb7c)
    Open source →
  34. v1.8.0 20 May 2023
    Release notes

    Fixed

    • (a11y) reply placeholder not accessible [#3793]
    • (bbcode) highlight.js does not work after changing post content [#3817]
    • (bbcode) localize quote wrote string [#3809]
    • (mentions) mentions XHR fired even after mentioning is done [#3806]
    • (package-manager) available core updates cause an error in the dashboard (fab71f2)
    • (tags) not all tags are loaded in the permission grid [#3804]
    • (tags) tag discussion modal filters with exact matches only after first index [#3786]
    • (testing) always clear cache in integration test's tearDown [#3818]
    • UserSecurityPage not exported (232618a)
    • isDark() utility can receive null value [#3774]
    • approving a post does not bump user comment_count [#3790]
    • circular dependencies disable all involved extensions [#3785]
    • color input overflowing the input box [#3796]
    • deleting a discussion from the profile does not visually remove it [#3799]
    • discussion page showing horizontal scroll on iOS [#3821]
    • empty string displayed as SelectDropdown title [#3773]
    • filter values are not validated [#3795]
    • infinite scroll not initialized for notifications on big screens [#3733]
    • notification subject discussion eager loading fails [#3788]
    • null as 2nd param in preg_match is deprecated [#3801]
    • unread count in post stream not visible [#3791]
    • unreadable badge icon on certain colors [#3810]
    • integrity constraint violation [#3772]

    Changed

    • (core,mentions) limit mentionedBy post relation results [#3780]
    • (likes) limit likes relationship results [#3781]
    • Change some methods from private to protected, to be able to extend the affected classes [#3802]
    • Do not catch exceptions when testing Console commands [#3813]
    • drop usage of jquery in install and update interfaces [#3797]
    • extensibility improvements [#3729]
    • major frontend JS cleanup [#3609]
    • revert ineffective code for encoding of page title [#3768]
    • speed up post creation time [#3808]

    Added

    • (mentions,tags) tag mentions [#3769]
    • add delete own posts permission [#3784]
    • add a trait to flush the formatter cache in tests [#3811]
    • add user creation to users list page [#3744]
    • cli command for enabling or disabling an extension [#3816]
    • conditional extenders [#3759]
    • provide old content to Revised event [#3789]
    Open source →
  35. v1.7.2 24 Mar 2023

    Nothing published for this version

  36. v1.7.1 12 Mar 2023
    Release notes

    Fixed

    • (tags) composer tag selection modal using wrong primary max & min numbers (abc9670659426b765274376945b818b70d84848c)
    • missing parameter names in token title translation. (#3752)
    • hardcoded language strings in StatusWidget (#3754)
    • hide developer tokens section in if there is nothing to display or create (#3753)
    • improve sessions user UI on mobile (dd868ab44e11e892d020e3b9412553c6a789e68d)
    Open source →
  37. v1.7.0 09 Mar 2023
    Release notes

    Added

    • (actions) allow running JS tests in GH actions [#3730]
    • (core) PHP 8.2 Support [#3709]
    • (jest) create jest config package for unit testing [#3678]
    • (jest) mithril component testing [#3679]
    • (phpstan) foundation for usage in extensions [#3666]
    • (seo) Do not use h3 header for poster author in posts stream [#3732]
    • (seo) Use h2 header for discussions on discussions list [#3731]
    • (seo) shift h1 tag from logo to discussion title [#3724]
    • (tags) admin tag selection component (reusable tag selection modal) [#3686]
    • Admin User Search [#3712]
    • access tokens user management UI [#3587]
    • add display name column to admin users list [#3740]
    • allow push additional items to the end of the poststream [#3691]
    • allow using utf8 characters in tag slugs [#3588]
    • expose queue driver, schedule status [#3593]
    • expose {time} to eventPost data, fix renamed tooltip [#3698]
    • frontend Model extender [#3646]
    • global logout to clear all sessions, access tokens, email tokens and password tokens [#3605]
    • improved page navigation for users list [#3741]
    • introduce frontend extenders [#3645]

    Fixed

    • (mentions) correctly convert a 3 char. hex color to a 6 char. one [#3694]
    • (mentions) post reply mention missing notification on approval [#3738]
    • (phpstan) adapt phpstan package for extension use [#3727]
    • (tags) clickable tag labels have underline [#3737]
    • (tags) tag text color contrast [#3653]
    • 3 digit hex color value in color input not supported [#3706]
    • column id can be ambiguous in group filter with extensions [#3696]
    • disallow certain dangerous LESS features (1761660)
    • evaluated page title content [#3684]
    • invalid translation key for scheduler dashboard [#3736]
    • load actor.groups on showforumcontroller [#3716]
    • make go-to-page input number-like [#3743]
    • normal logout affects all sessions [#3571]
    • permissions table on mobile is unusable [#3722]
    • post dropdown opens all dropdowns in .Post-actions [#3675]
    • typo in Formatter extender docblock [#3676]
    • undefined showing in dropdown active title [#3700]

    Changed

    • (phpstan) enable phpstan in bundled extensions [#3667]
    • Add missing states exports to compat.ts [#3683]
    • Indicate cross-origin request in generic error message [#3669]
    • Merge branch 'release/v1.6.2' (e0b9dcf)
    • The negate field doesn't get used, which means you cant exclude tags [#3713]
    • Update forum.less to fix the misalignment of the choose tags button [#3726]
    • yarn audit-fix (8ddb0fe)
    • yarn (ee1e04c)
    • convert Dropdown components to TS [#3608]
    • fix php 8.1 on preg_match 2nd argument being null, which also optimizes slightly (d7b9a03)
    • improve group mentions parsing [#3723]
    • prepare @flarum/jest-config for release (748cca6)
    • remove use of deprecated phpunit assertion (3af0481)
    • set flarum version to 1.7.0 for dev (2517bc0)
    • update JS dependencies [#3695]
    Open source →
  38. v1.6.3 10 Jan 2023
    Release notes

    Fixed

    • Post mentions can be used to read any post on the forum without access control (ab1c868b978e8b0d09a5d682c54665dae17d0985).
    • Notifications can leak restricted content (d0a2b95dca57d3dae9a0d77b610b1cb1d0b1766a).
    • Any user including unactivated can reply in public discussions whose first post was permanently deleted (12f14112a0ecd1484d97330b82beb2a145919015).
    • (subscriptions) Post notifications not getting access checked (https://github.com/flarum/framework/commit/e5f05166a062a9a6eb7c12e28728bfd5db7270e3).
    Open source →
  39. v1.6.2 18 Nov 2022
    Release notes

    Fixed

    • XSS Vulnerability in core (https://github.com/flarum/framework/pull/3684).
    Open source →
  40. v1.6.1 16 Nov 2022
    Release notes

    Fixed

    • JS dependencies update breaks utilities.
    Open source →
  41. v1.6.0 13 Nov 2022
    Release notes

    Fixed

    • (approval) posts approved for deleted users error (b5874a0)
    • (regression) bad import (5f2d7fb)
    • akismet fails when the extension is not on a version (45d9121)
    • apply flex for AppearancePage colors input [#3651]
    • groupmentions have poor contrast on some backgrounds [#3672]
    • larastan v1 incompatible with phpstan v1.9.0 [#3665]
    • package manager failures not showing alerts [#3647]
    • password reset leaks user existence [#3616]
    • statistics previous period chart is unclear [#3654]

    Changed

    • (package-manager) config composer to use web php version (fd19645)
    • (package-manager) set min core version and add warning (31c3cfc)
    • (statistics) prepare v1.5.1 (dc215ab)
    • Apply fixes from StyleCI (267f675)
    • Fix tag discussion count decreased by 2 when hiding before deleting [#3660]
    • Log migration path when up/down keys are missing [#3664]
    • Make it possible to extend SetupScript [#3643]
    • Setup PHPStan Level 5 [#3553]
    • yarn format (c5c312d)
    • add missing last period to custom date ranges [#3661]
    • add priorities to profile settings page [#3657]
    • allow specifying php extensions in workflow (b0b47a0)
    • format js (06963df)
    • group mentions [#3658]
    • remove styleci from changelog (b2fa28e)
    • set flarum version to dev for 1.6.0 (fc743ba)
    • throw an exception when no serializer is provided to the controller [#3614]

    Added

    • (statistics) support for custom date ranges [#3622]
    • Allow additional login params, Introduce LogInValidator [#3670]
    • Allow additional reset password params, introduce ForgotPasswordValidator [#3671]
    • add statistics chart export button [#3662]
    • allow specifying extensions when installing an instance [#3655]
    • contrast util with yiq calculator [#3652]
    • customizable session driver [#3610]
    • replace ColorPreviewInput for GroupModal color input [#3650]
    • send notifications of a new reply when post is approved [#3656]
    Open source →
  42. v1.5.0 13 Sep 2022
    Release notes

    Fixed

    • (a11y) add accessible labels to notification grid options [#3520]
    • (a11y) present post streams as feeds [#3522]
    • (a11y) set aria-busy when editing a post stream item [#3521]
    • (compilation) versioner not inject into compilers [#3589]
    • (mentions) accessing id of null user relation [#3618]
    • (subscriptions) add missing table prefix for filter gambit [#3599]
    • (tags) use default index sortmap [#3615]
    • Move guzzle requirement to core [#3544]
    • MyISAM tables for extensions during installation (75aaef7, f926c58)
    • Set the translator locale to user preference for email notifications [#3525]
    • $events property declared dynamically [#3598]
    • core settings header has no priority (33bf228)
    • html entities shown raw in page title [#3542]
    • incorrect centring of deleted user avatars in notification list [#3569]
    • intellisense imports defaulting to absolute path from src folder [#3549]
    • minor backward compatible fix for php 8.1 in st_replace (07b2f86)
    • post query wildcard selection causes ambiguity [#3621]
    • potential static caching memory exhaustion [#3548]
    • prepare release workflow has invalid layout (70e483d)
    • remove deprecation warning for decoding null values (590639f)
    • replace .fa() mixin usage with .fas() [#3537]
    • return type hint static is php 8+ (b01b75e)
    • sticky nav content displays below post stream [#3575]
    • titles positioned wrongly with custom header height [#3550]
    • typo in error message (1a189f4)
    • unread notifications are globally cached between users. [#3543]
    • update workflow name (628c281)
    • user has wrong discussion read status [#3591]

    Changed

    • (approval, likes) use subscribers [#3577]
    • (package-manager) last tweaks before beta tag (335c602)
    • (statistics) add release notes for 1.4.1 (f4ace73)
    • (statistics) rewrite for performance on very large communities [#3531]
    • (statistics) split timed data into per-model XHR requests [#3601]
    • (tags) Replace event helper with event dispatcher [#3570]
    • Add loading="lazy" attribute for avatars [#3578]
    • Create CODEOWNERS (6e48a03)
    • MyISAM tables for extensions during installation" (f128190)
    • convert AlertManager IndexPage and UserPage components to TS [#3536]
    • convert Badge Checkbox and Navigation components to TS [#3532]
    • convert core modals to TypeScript [#3515]
    • convert page components to TypeScript [#3538]
    • debug line slipped in while rebasing a PR [#3580]
    • don't pass password field between auth modals [#3626]
    • fix github issue templates (d3e456a)
    • format code (4954621)
    • getting the release workflow in (5530400)
    • link logo at the top with the official website [#3552]
    • prevent running both push and pull_request actions at the same time [#3597]
    • refactor prefix matrix and add MySQL 8.0 & PHP 7.3 to workflows [#3595]
    • relying on a third-party for avatar URL tests is unreliable [#3586]
    • require guzzle 6 or 7 (46b3b7a)
    • split FA imports into separate Less file for easy overriding [#3535]
    • unify JS actions into one (rewritten flarum/action-build) [#3573]
    • update version constant during cycle 22 (d864405)
    • use isCollapsed instead of rangeCount [#3581]
    • use github issue template forms [#3526]

    Added

    • (likes) Add likes tab to user profile [#3528]
    • (likes) Option to prevent users liking their own posts [#3534]
    • (modals) support stacking modals, remove bootstrap modals dependency [#3456]
    • (subscriptions) add option to send notifications when not caught up [#3503]
    • Add custom class for email confirmation alert [#3584]
    • Admin debug mode warning [#3590]
    • Delete all notifications [#3529]
    • Queue package manager commands [#3418]
    • Restart the queue worker after cache clearing, ext enable/disable, save settings [#3565]
    • add createTableIfNotExists migration helper [#3576]
    • add new workflow for generating release meta (0901e59)
    • clear password & email tokens when appropriate [#3567]
    • discussion UTF-8 slug driver [#3606]
    • expose assets base url to frontend forum model [#3566]
    • extender to add custom less variables [#3530]
    • publish assets on admin dashboard cache clear [#3564]
    • throttle email change, email confirmation, and password reset endpoints. [#3555]
    Open source →
  43. v1.4.1 04 Aug 2022

    Nothing published for this version

  44. v1.4.0 12 Jul 2022
    Release notes

    Added

    • created_at and updated_at columns added to several tables (https://github.com/flarum/framework/pull/3435)
    • Priorities added to AdminNav links (https://github.com/flarum/framework/pull/3453)
    • app.translator allows retrieving and setting locale (https://github.com/flarum/framework/pull/3451)
    • Extensions can now declare custom settings components for use with buildSettingComponent (https://github.com/flarum/framework/pull/3494)
    • Implement extensibility on rel and target attributes on links (https://github.com/flarum/framework/pull/3455)
    • New backend tests were added to some of the bundled extensions (https://github.com/flarum/framework/issues/3508)

    Changed

    • Split boot script for Flarum in HTML footer into two parts for CSP hashing (https://github.com/flarum/framework/pull/3461)
    • Split asset compilation by giving assembling compilers its own method (https://github.com/flarum/framework/pull/3446)
    • Increase visibility of Component typescript class for better extensibility (https://github.com/flarum/framework/pull/3437)

    Fixed

    • Mentioning an event post breaks the notification dropdown (https://github.com/flarum/framework/pull/3493)
    • Suspension modal shows after suspension is over (https://github.com/flarum/framework/pull/3449)
    • CLI based installations don't exit with an error code on failure (https://github.com/flarum/framework/pull/3452)
    • Tabbing through dropdown controls doesn't make them visible (https://github.com/flarum/framework/pull/3450)
    • Requiring zero tags on new discussions forces the user to select tags (https://github.com/flarum/framework/pull/3448)
    • Long topic titles in the notification list don't overflow (https://github.com/flarum/framework/pull/3500)
    • Subtags of tags the user has access to are visible even if these are not accessible (https://github.com/flarum/framework/pull/3419)
    • assertAdmin tests access based on wrong gate ability (https://github.com/flarum/framework/pull/3501)
    • Increasing the composer header size causes elements to slip underneath (https://github.com/flarum/framework/pull/3502)
    • The profile mentions tab errors when sorting by created_at (https://github.com/flarum/framework/pull/3506)
    Open source →
  45. v1.3.1 07 Jun 2022
    Release notes

    Changed

    • UserCard now has ItemList for easier extending (https://github.com/flarum/framework/pull/3436)

    Fixed

    • Button to go directly to all results page is hidden while API request for search hasn't completed (https://github.com/flarum/framework/pull/3431)
    • Setting extender does not register modifications beyond first fluent call (https://github.com/flarum/framework/pull/3439)
    • Link to font awesome icons list no longer works (https://github.com/flarum/framework/commit/df1bdd2ad84e992414c0e1e7be576558b4b0fe29)
    • Mentions: mentions with deleted authors not showing (https://github.com/flarum/framework/pull/3432)
    • Nicknames: regex validation isn't functional (https://github.com/flarum/framework/pull/3430)
    • Subscriptions: reply notifications not working (https://github.com/flarum/framework/pull/3445)
    • Suspend: not providing suspension reason breaks mail (https://github.com/flarum/framework/pull/3433)

    <!-- One-time commit-based diff due to monorepo rework. Diffing against the 1.2.1 tag doesn't work due to unrelated histories. -->

    Open source →
  46. v1.3.0 13 May 2022
    Release notes

    From v1.2.1 on all bundled Flarum extensions and flarum/core are merged into one monorepo. As a result of this, the full code diff linked above looks rather complex and messy compared to the full list of changes made for this release.

    Added

    • [A11Y] Added role feed to DiscussionList (https://github.com/flarum/framework/pull/3359)
    • Support multiple confirmation dialogs when closing a tab/window (https://github.com/flarum/framework/pull/3372)
    • Markdown: markdown toolbar support for admin frontend (https://github.com/flarum/framework/commit/16d5cc11e3aee5c94aeed877987cdb199a2a0d2c)

    Changed

    • Post number calculation is now executed inside the database layer, preventing integrity constraints (https://github.com/flarum/framework/pull/3358)
    • Errors from within extensions no longer make Flarum crash but trigger a visible warning (https://github.com/flarum/framework/pull/3349)
    • Sorting options for discussion index is now extensible (https://github.com/flarum/framework/pull/3377)
    • Event listeners from the framework now are added before those of extensions (https://github.com/flarum/framework/pull/3373)

    Fixed

    • Typings and missing typescript components (https://github.com/flarum/framework/pull/3348)
    • Post--by-start-user CSS class is not added to post html (https://github.com/flarum/framework/pull/3356)
    • Timestamps for notifications are incorrect on servers that have a timezone different than UTC (https://github.com/flarum/framework/pull/3379)
    • Extensions with dependencies that are enabled do not cause dependencies to be enforced (https://github.com/flarum/framework/pull/3352)
    • Search using non-words doesn't work (https://github.com/flarum/framework/pull/3385)
    • Slugs are not working for other languages than English (https://github.com/flarum/framework/pull/3387)
    • Deprecations are triggered on PHP 8.1 (https://github.com/flarum/framework/pull/3384)
    • Post permalink for subdirectory installs have duplicate paths segments (https://github.com/flarum/framework/pull/3354)
    • Composer discussion title is not always clearly visible (https://github.com/flarum/framework/pull/3413)
    • Mentions: extensions re-using mentions can cause errors due to missing context (https://github.com/flarum/framework/pull/3382)
    • Tags: tag selection modal errors on new discussions when pressing down (https://github.com/flarum/framework/issues/3403)
    • [A11Y] Tags: focus to input and layout of tag selection modal are off (https://github.com/flarum/framework/pull/3412)
    • Subscriptions: searching inside the following page will search in all discussions (https://github.com/flarum/framework/pull/3376)
    Open source →
  47. v1.2.1 10 Mar 2022
    Release notes

    Fixed

    • Don't escape single quotes in discussion title meta tags (60600f4d2b8f0c5dac94c329041427a0a08fad42)
    Open source →
  48. v1.2.0 20 Jan 2022
    Release notes

    Added

    • View README documentation in extension pages (https://github.com/flarum/framework/pull/3094).
    • Declare & Use CSS Custom Properties (https://github.com/flarum/framework/pull/3146).
    • Lazy draw dropdowns to improve performance (https://github.com/flarum/framework/pull/2925).
    • Default Settings Extender (https://github.com/flarum/framework/pull/3127).
    • Add textarea setting type to admin pages (https://github.com/flarum/framework/pull/3141).
    • Allow registering settings as Less config vars through Settings Extender (https://github.com/flarum/framework/pull/3011).
    • Allow replacing of blade template namespaces via extender (https://github.com/flarum/framework/pull/3167).
    • Update to Webpack 5 (https://github.com/flarum/framework/pull/3135).
    • Introduce Less custom function extender with a is-extension-enabled function (https://github.com/flarum/framework/pull/3190).
    • Support for few in ICU Message syntax (https://github.com/flarum/framework/pull/3122).
    • ES6 local support for number formatting (https://github.com/flarum/framework/pull/3099).
    • Added dedicated endpoint for retrieving single groups (https://github.com/flarum/framework/pull/3084).
    • Callback loadWhere relation eager loading extender (https://github.com/flarum/framework/pull/3116).
    • Extensible document title driver implementation (https://github.com/flarum/framework/pull/3109).
    • Type checks, typescript coverage GH action (https://github.com/flarum/framework/pull/3136).
    • Add color indicator in appearance admin page instead of validating colors (https://github.com/flarum/framework/pull/3140).
    • Add typing files for our translator libraries (https://github.com/flarum/framework/pull/3175).
    • StatusWidget tools extensibility (https://github.com/flarum/framework/pull/3189).
    • Allow switching the ImageManager driver (https://github.com/flarum/framework/pull/3195).
    • Events for notification read/all read actions (https://github.com/flarum/framework/pull/3203).

    Changed

    • Testing with php8.1 (https://github.com/flarum/framework/pull/3102).
    • Migrate fully to Yarn (https://github.com/flarum/framework/pull/3155).
    • Handle post rendering errors to avoid crashes (https://github.com/flarum/framework/pull/3061).
    • Added basic filtering, sorting, and pagination to groups endpoint (https://github.com/flarum/framework/pull/3084).
    • Pass IP address to API Client pipeline (https://github.com/flarum/framework/pull/3124).
    • Rename Extension Page "Uninstall" to "Purge" (https://github.com/flarum/framework/pull/3123).
    • [A11Y] Improve accessibility for discussion reply count on post stream (https://github.com/flarum/framework/pull/3090).
    • Improved post loading support (https://github.com/flarum/framework/pull/3100).
    • Rewrite SubtreeRetainer into Typescript (https://github.com/flarum/framework/pull/3137).
    • Rewrite ModalManager and state to Typescript (https://github.com/flarum/framework/pull/3007).
    • Rewrite frontend application files to Typescript (https://github.com/flarum/framework/pull/3006).
    • Allow extensions to modify the minimum search length in the Search component (https://github.com/flarum/framework/pull/3130).
    • Allow use of any tag in listItems helper (https://github.com/flarum/framework/pull/3147).
    • Replace for ... in with Array.reduce (https://github.com/flarum/framework/pull/3149).
    • Page title format is now implemented through translations (https://github.com/flarum/framework/pull/3077, https://github.com/flarum/framework/pull/3228)
    • Add aria-label attribute to the navigation drawer button (https://github.com/flarum/framework/pull/3157).
    • Convert extend util to TypeScript (https://github.com/flarum/framework/pull/2928).
    • Better typings for DiscussionListState (https://github.com/flarum/framework/pull/3132).
    • Rewrite ItemList, update ItemList typings (https://github.com/flarum/framework/pull/3005).
    • Add priority order to discussion page controls (https://github.com/flarum/framework/pull/3165).
    • Use @php in Blade templates (https://github.com/flarum/framework/pull/3172).
    • Convert some common classes/utils to TS (https://github.com/flarum/framework/pull/2929).
    • Convert routes to Typescript (https://github.com/flarum/framework/pull/3177).
    • Move admin colorItems to an ItemList (https://github.com/flarum/framework/pull/3186).
    • Centralize pagination/canonical meta URL generation in Document (https://github.com/flarum/framework/pull/3077).
    • Use revision versioner to allow custom asset versioning (https://github.com/flarum/framework/pull/3183).
    • Split up application error handling (https://github.com/flarum/framework/pull/3184).
    • Make SlugManager available to blade template (https://github.com/flarum/framework/pull/3194).
    • Convert models to TS (https://github.com/flarum/framework/pull/3174).
    • Allow loading relations in other discussion endpoints (https://github.com/flarum/framework/pull/3191).
    • Improve selected text stylization (https://github.com/flarum/framework/pull/2961).
    • Extract notification primaryControl items to an ItemList (https://github.com/flarum/framework/pull/3204).
    • Frontend code housekeeping (#3214, #3213).
    • Only retain scroll position if coming from discussion (https://github.com/flarum/framework/pull/3229).
    • Use aria-live regions to focus screenreader attention on alerts as they appear (https://github.com/flarum/framework/pull/3237).
    • Prevent unwarranted a11y warnings on custom Button subclasses (https://github.com/flarum/framework/pull/3238).

    Fixed

    • Missing locale text in the user editing modal (https://github.com/flarum/framework/pull/3093).
    • Dashes in table prefix prevent installation (https://github.com/flarum/framework/pull/3089).
    • Missing autocomplete attributes to input fields (https://github.com/flarum/framework/pull/3088).
    • Missing route parameters throwing an error (https://github.com/flarum/framework/pull/3118).
    • Mail settings select component never used (https://github.com/flarum/framework/pull/3120).
    • White avatar image throws javascript errors on the profile page (https://github.com/flarum/framework/pull/3119).
    • Unformatted avatar upload validation errors (https://github.com/flarum/framework/pull/2946).
    • Webkit input clear button shows up with the custom one (https://github.com/flarum/framework/pull/3128).
    • Media query breakpoints conflict with Windows display scaling (https://github.com/flarum/framework/pull/3139).
    • typeof this not recognized by some IDEs (https://github.com/flarum/framework/pull/3142).
    • Model.save() cannot save null hasOne relationship (https://github.com/flarum/framework/pull/3131).
    • Edit post until reply policy broken on PHP 8 (https://github.com/flarum/framework/pull/3145).
    • Inaccurate Component.component argument typings (https://github.com/flarum/framework/pull/3148).
    • Scrolling notification list infinitely repeats (https://github.com/flarum/framework/pull/3159).
    • Argument for INFO constant was assigned to maxfiles argument incorrectly (bfd81a83cfd0fa8125395a147ff0c9ce622f38e3).
    • Activated event is sent every time an email is confirmed instead of just once (https://github.com/flarum/framework/pull/3163).
    • [A11Y] Modal close button missing accessible label (https://github.com/flarum/framework/pull/3161).
    • [A11Y] Auth modal inputs missing accessible labels (https://github.com/flarum/framework/pull/3207).
    • [A11Y] Triggering click on drawer button can cause layered backdrops (https://github.com/flarum/framework/pull/3018).
    • [A11Y] Focus can leave open nav drawer on mobile (https://github.com/flarum/framework/pull/3018).
    • [A11Y] Post action items not showing when focus is within the post (https://github.com/flarum/framework/pull/3173).
    • [A11Y] Missing accessible label for alert dismiss button (https://github.com/flarum/framework/pull/3237).
    • Error accessing the forum after saving a setting with more than 65k characters (https://github.com/flarum/framework/pull/3162).
    • Cannot restart queue from within (https://github.com/flarum/framework/pull/3166).
    • Post--by-actor not showing when comparing user instances (https://github.com/flarum/framework/pull/3170).
    • Incorrect typings for Modal hide() method (https://github.com/flarum/framework/pull/3180).
    • Avatar Upload throws errors with correct mimetype and incorrect extension (https://github.com/flarum/framework/pull/3181).
    • Clicking the dropdown button on a post opens all dropdowns in Post-actions (https://github.com/flarum/framework/pull/3185).
    • getPlainContent() causes external content to be fetched (https://github.com/flarum/framework/pull/3193).
    • listItems not accepting all Mithril.Children (https://github.com/flarum/framework/pull/3176).
    • Notifications mark as read option updates all notifications including the read ones (https://github.com/flarum/framework/pull/3202).
    • Post meta permalink not properly generated (https://github.com/flarum/framework/pull/3216).
    • Broken contribution link in README (https://github.com/flarum/framework/pull/3211).
    • WelcomeHero is displayed when content is empty (https://github.com/flarum/framework/pull/3219).
    • last_activity_at, last_seen_at updated on all API requests (https://github.com/flarum/framework/pull/3231).
    • RememberMe access token updated twice in API requests (https://github.com/flarum/framework/pull/3233).
    • Error in funding item in composer.json bricks the frontend (https://github.com/flarum/framework/pull/3239).
    • Escaped quotes in window title (https://github.com/flarum/framework/pull/3264)
    • schedule:list command fails due to missing timezone configuration.

    Deprecated

    • Unused evented utility (https://github.com/flarum/framework/pull/3125).
    Open source →
  49. v1.1.1 22 Oct 2021
    Release notes

    Fixed

    • Performance issue with very large communities.
    Open source →
  50. v1.1.0 12 Oct 2021
    Release notes

    Added

    • Info command now displays MySQL version, queue driver, mail driver (https://github.com/flarum/framework/pull/2991)
    • Use organization Prettier config (https://github.com/flarum/framework/pull/2967)
    • Support for global typings in extensions (https://github.com/flarum/framework/pull/2992)
    • Typings for class component state attribute (https://github.com/flarum/framework/pull/2995)
    • Custom colorising with CSS custom properties (https://github.com/flarum/framework/pull/3001)
    • Theme Extender to allow overriding LESS files (https://github.com/flarum/framework/pull/3008)
    • Update lastSeenAt when authenticating via API (https://github.com/flarum/framework/pull/3058)
    • NoJs Admin View (https://github.com/flarum/framework/pull/3059)
    • Preload FontAwesome, JS and CSS, and add preload extender (https://github.com/flarum/framework/pull/3057)

    Changed

    • Move Day.js plugin types import to global typings (https://github.com/flarum/framework/pull/2954)
    • Avoid resolving excluded middleware on each middleware items
    • Allow extra attrs provided to <Select> to be passed through to the DOM element (https://github.com/flarum/framework/pull/2959)
    • Limit height of code blocks (https://github.com/flarum/framework/pull/3012)
    • Update normalize.css from v3.0.2 to v8.0.1 (https://github.com/flarum/framework/pull/3015)
    • Permission Grid: stick the headers to handle a lot of tags (https://github.com/flarum/framework/pull/2887)
    • Use ItemList for DiscussionPage content (https://github.com/flarum/framework/pull/3004)
    • Move email confirmation to POST request (https://github.com/flarum/framework/pull/3038)
    • Minor CSS code cleanup (https://github.com/flarum/framework/pull/3026)
    • Replace username with display name in more places (https://github.com/flarum/framework/pull/3040)
    • Rewrite Button to Typescript (https://github.com/flarum/framework/pull/2984)
    • Rewrite AdminPage abstract component into Typescript (https://github.com/flarum/framework/pull/2996)
    • Allow adding page parameters to PaginatedListState (https://github.com/flarum/framework/pull/2935)
    • Pass filter params to getApiDocument (https://github.com/flarum/framework/pull/3037)
    • Use author filter instead of gambit to get a user's discussions (https://github.com/flarum/framework/pull/3068)
    • [A11Y] Accessibility improvements for the Search component (https://github.com/flarum/framework/pull/3017)
    • Add determinism to extension order resolution (https://github.com/flarum/framework/pull/3076)
    • Add cache control headers to the admin area (https://github.com/flarum/framework/pull/3097)

    Fixed

    • HLJS 11 new styles resulting in double padding (https://github.com/flarum/framework/pull/2909)
    • Internal API client attempting to load an uninstantiated session
    • Empty post footer taking visual space (https://github.com/flarum/framework/pull/2926)
    • Unrecognized component class custom attribute typings (https://github.com/flarum/framework/pull/2962)
    • User edit groups permission not visually depending on view hidden groups permission (https://github.com/flarum/framework/pull/2880)
    • Event post excerpt preview triggers error (https://github.com/flarum/framework/pull/2964)
    • Missing settings defaults for display name driver and User slug driver (https://github.com/flarum/framework/pull/2971)
    • [A11Y] Icons not hidden from screenreaders (https://github.com/flarum/framework/pull/3027)
    • [A11Y] Checkboxes not focusable (https://github.com/flarum/framework/pull/3014)
    • Uploading ICO favicons resulting in server errors (https://github.com/flarum/framework/pull/2949)
    • Missing proper validation for large avatar upload payload (https://github.com/flarum/framework/pull/3042)
    • [A11Y] Missing focus rings in control elements (https://github.com/flarum/framework/pull/3016)
    • Unsanitised integer query parameters (https://github.com/flarum/framework/pull/3064)
    Code Contributors

    @lhsazevedo, @Ornanovitch, @pierres, @the-turk, @iPurpl3x

    Issue Reporters

    @uamv, @dannyuk1982, @BurnNoticeSpy, @haarp, @peopleinside, @matteocontrini

    Open source →
  51. v1.0.4 28 Jun 2021
    Release notes

    Fixed

    • Upgrade to v1.0 resets the "view" permission on all tags (https://github.com/flarum/framework/pull/2941)
    Open source →
  52. v1.0.3 22 Jun 2021
    Release notes

    Changed

    • Removed [forum] prefix from Request Password and Email Confirmation emails (a4a81c0)
    • Adopt huntr.dev for handling our security vulnerability reports (https://github.com/flarum/framework/pull/2918)
    • Maintenance handler can now be replaced through the service container (ioc) (4acff91)
    • The colors on the auto generated avatars are now based on the Display Name of the user (https://github.com/flarum/framework/pull/2873)

    Fixed

    • Avatar in notifications list are incorrectly aligned (https://github.com/flarum/framework/pull/2906)
    • FilesystemManager is not compatible with upstream Laravel implementation (https://github.com/flarum/framework/pull/2936)
    Open source →
  53. v1.0.2 06 Jun 2021
    Release notes

    Fixed

    • Critical XSS vulnerability
    Open source →
  54. v1.0.1 02 Jun 2021
    Release notes

    Fixed

    • Installation fails on environments without proc_* functions enabled or mysql client binary (https://github.com/flarum/framework/issues/2890)
    Open source →
  55. v1.0.0 25 May 2021
    Release notes

    Added

    • Task scheduling
    • load() method on ApiController extender to allow eager loading of relations (https://github.com/flarum/framework/pull/2724)
    • Installation supports enabling a set of extensions (https://github.com/flarum/framework/pull/2757)
    • RequestUtil helper class added to abstract the logic of the actor, session, locale and route name from the request (https://github.com/flarum/framework/pull/2449)
    • Code scanning action with GitHub CodeQL (https://github.com/flarum/framework/pull/2744)
    • The Formatter extender now has an unparse method to allow extensions to hook into the unparsing of content (https://github.com/flarum/framework/pull/2780)
    • A Filesystem extender allows direct modification and addition of filesystem disks (https://github.com/flarum/framework/pull/2732)
    • A slug driver based on the User ID was introduced (https://github.com/flarum/framework/pull/2787)
    • An extensible users list was added to the admin area (https://github.com/flarum/framework/pull/2626)
    • Headers hardened by adding Referer Policy, Xss Protection and Content type (https://github.com/flarum/framework/pull/2721)
    • Tooltip component (https://github.com/flarum/framework/pull/2843)
    • Moved insertText and styleSelectedText from markdown to core (https://github.com/flarum/framework/pull/2826)
    • A squashed database schema install dump to speed up new installs (https://github.com/flarum/framework/pull/2842)
    • Pagination in the canonical URL for discussion pages (https://github.com/flarum/framework/pull/2853)
    • PaginatedListState for the DiscussionList and to support paginated lists in the frontend (https://github.com/flarum/framework/pull/2781)
    • Introduce the new webpack config and flarum-tsconfig for typehinting (https://github.com/flarum/framework/pull/2856)

    Changed

    • Now tracking bundle sizes to keep an eye on web performance (https://github.com/flarum/framework/pull/2695)
    • Eager load relations on ListPostsController to improve performance (https://github.com/flarum/framework/pull/2717)
    • Replace classList with clsx library (https://github.com/flarum/framework/pull/2760)
    • Replaced the javascript based loading spinner with a pure CSS version (https://github.com/flarum/framework/pull/2764)
    • Route names now have to be unique (https://github.com/flarum/framework/pull/2771)
    • ActorReference is now available from the error handler middleware (https://github.com/flarum/framework/pull/2410)
    • The migrations table now has an Auto Increment ID (https://github.com/flarum/framework/pull/2794)
    • Assets and avatars are now managed using Laravel filesystem disks (https://github.com/flarum/framework/pull/2729)
    • Extracted asset publishing (php flarum assets:publish) from migrating (https://github.com/flarum/framework/pull/2731)
    • Assets were compiled in the format <asset>-<revision>.<js|css>, this is now <asset>.<js|css>?v=<revision> (https://github.com/flarum/framework/pull/2805)
    • The powered by header can now be configured in the config under headers (https://github.com/flarum/framework/pull/2777)
    • Switched to the ICU format for translation files (https://github.com/flarum/framework/pull/2759)
    • Allow extend and override to apply to multiple methods in one call
    • Notifications dropdown and list refactored (https://github.com/flarum/framework/pull/2822)
    • Updated validation locale strings based on Laravel 8 changes (https://github.com/flarum/framework/pull/2829)
    • Caching of permissions is now taken care of centrally, reducing code duplication (https://github.com/flarum/framework/pull/2832)
    • Replaced lodash-es by throttle-debounce to reduce bundle size (https://github.com/flarum/framework/pull/2827)
    • Internal API requests are now executed through middleware (https://github.com/flarum/framework/pull/2783)
    • Permission changes: viewDiscussions to viewForum and viewUserList to searchUsers (https://github.com/flarum/framework/pull/2854)

    Fixes

    • Javascript is shown when editing the title of a discussion (https://github.com/flarum/framework/pull/2693)
    • Canonical url logic uses request object which causes wrong URL's when a different page is default (https://github.com/flarum/framework/pull/2674)
    • Dropdown toggle has no aria label (https://github.com/flarum/framework/pull/2668)
    • Nav drawer is focusable when off-screen on small viewports (https://github.com/flarum/framework/pull/2666)
    • Search input has no aria-label and no role (https://github.com/flarum/framework/pull/2669)
    • Code duplication exists between SendConfirmationEmailController and AccountActivationMailer (https://github.com/flarum/framework/pull/2493)
    • When setting tags as homepage default, visiting a tag will show all posts (https://github.com/flarum/framework/pull/2754)
    • Locale cache is cleared twice when cache clearing (https://github.com/flarum/framework/pull/2738)
    • When cache clearing fails an exception can be thrown due to a partial flush (https://github.com/flarum/framework/pull/2756)
    • Database migrations rely on MyISAM even though the eventual migrated database does not use it (https://github.com/flarum/framework/pull/2442)
    • Discussion search result is not sorted by relevance by default (https://github.com/flarum/framework/pull/2773)
    • Extensions cannot register custom searcher classes (https://github.com/flarum/framework/pull/2755)
    • Searching discussion titles is not possible (https://github.com/flarum/framework/pull/2698)
    • Boot errors due to failing extenders throw a generic error (https://github.com/flarum/framework/pull/2740)
    • Required argument to Component.$() isn't really required (https://github.com/flarum/framework/pull/2844)
    • Component does not allows use of all mithril lifecycle functionality (https://github.com/flarum/framework/pull/2847)

    Removed

    • The make:migration command has been removed (https://github.com/flarum/framework/pull/2686)
    • Background fade on the header has been removed (https://github.com/flarum/framework/pull/2685)
    • Remove vendor prefixes in less (https://github.com/flarum/framework/pull/2766)
    • The session is no longer available from the User class (https://github.com/flarum/framework/pull/2790)
    • The mail key is removed from the laravel related config (https://github.com/flarum/framework/pull/2796)
    Open source →
  56. v0.1.0-beta.16 15 Mar 2021 pre-release
    Release notes

    Added

    • Allow event subscribers (https://github.com/flarum/framework/pull/2535)
    • Allow Settings extender to have a default value (https://github.com/flarum/framework/pull/2495)
    • Allow hooking into the sending of notifications before being send (https://github.com/flarum/framework/pull/2533)
    • PHP 8 support (https://github.com/flarum/framework/pull/2507)
    • Search extender (https://github.com/flarum/framework/pull/2483)
    • User badges to post preview (https://github.com/flarum/framework/pull/2555)
    • Optional extension dependencies allow a booting order (https://github.com/flarum/framework/pull/2579)
    • Auth extender (https://github.com/flarum/framework/pull/2176)
    • X-Powered-By header added to allow indexers easier data aggregation of Flarum adoption (https://github.com/flarum/framework/pull/2618)

    Changed

    • Run integration tests in transaction (https://github.com/flarum/framework/pull/2304)
    • Allow policies to return a boolean for simplified allow/deny (https://github.com/flarum/framework/pull/2534)
    • Converted highlight helper to typescript (https://github.com/flarum/framework/pull/2532)
    • Add accessibility attributes to Mark as Read button (https://github.com/flarum/framework/pull/2564)
    • Dismiss errors on change email modal upon a new request (00913d5)
    • Disabled extensions now are marked with a red circle instead of a red dot (https://github.com/flarum/framework/pull/2562)
    • Extension dependency errors now show the extension title instead of the ID (https://github.com/flarum/framework/pull/2563)
    • Change mutate method on ApiSerializer extender to attributes (https://github.com/flarum/framework/pull/2578)
    • Moved locale files to the core from the language pack (https://github.com/flarum/framework/pull/2408)
    • AdminPage extensibility and generic improvements (https://github.com/flarum/framework/pull/2593)
    • Remove entry of authors, link to https://flarum.org/team (https://github.com/flarum/framework/pull/2625)
    • Search and filtering are split (https://github.com/flarum/framework/pull/2454)
    • Move IP identification into a middleware (https://github.com/flarum/framework/pull/2624)
    • Editor Driver abstraction introduced (https://github.com/flarum/framework/pull/2594)
    • Allow overriding routes (https://github.com/flarum/framework/pull/2577)
    • Split user edit permissions into permissions for editing of user credentials, username, groups and suspending (https://github.com/flarum/framework/pull/2620)
    • Reduced number of admin extension categories (https://github.com/flarum/framework/pull/2604)
    • Move search related classes to a dedicated Query namespace (https://github.com/flarum/framework/pull/2645)
    • Rewrite common helpers into typescript (https://github.com/flarum/framework/pull/2541)
    • TextEditor is moved to the common namespace for use in the admin frontend (https://github.com/flarum/framework/pull/2649)
    • Update Laravel/Illuminate components to 8 (https://github.com/flarum/framework/pull/2576)
    • Eager load relations in discussion listing to improve performance (https://github.com/flarum/framework/pull/2639)
    • Adopt flarum/testing package (https://github.com/flarum/framework/pull/2545)
    • Replace user gambit with author gambit (612a57c)
    • Posts page of on user profile loads posts using username instead of id (30017ee)

    Fixed

    • Transform css breaks iOS scroll functionality (https://github.com/flarum/framework/pull/2527)
    • Composer header is hidden on mobile devices (https://github.com/flarum/framework/pull/2279)
    • Cannot delete a post or discussion of a deleted user (https://github.com/flarum/framework/pull/2521)
    • DiscussionListPane jumps around not keeping the scroll position (https://github.com/flarum/framework/pull/2402)
    • Infinite scroll on notifications dropdown broken (https://github.com/flarum/framework/pull/2524)
    • The show language selector switch remains toggled on (9347b12)
    • Model Visibility extender throws exception on extensions that aren't installed or enabled (https://github.com/flarum/framework/pull/2580)
    • Extensions are marked as enabled when enabling fails to unmet extension dependencies (https://github.com/flarum/framework/pull/2558)
    • Routes to admin extension pages without a valid ID break the admin page (https://github.com/flarum/framework/pull/2584)
    • Disabled fieldset use an incorrect CSS property disallowed (https://github.com/flarum/framework/pull/2585)
    • Scrolling to a post that is already loaded the Load More button shows and does not trigger (https://github.com/flarum/framework/pull/2388)
    • Opening discussions on some mobile devices require a double tap (https://github.com/flarum/framework/pull/2607)
    • iOS devices show erratic behavior in the post stream while updating (https://github.com/flarum/framework/pull/2548)
    • Small mobile screens partially hides the composer when the keyboard is open (https://github.com/flarum/framework/pull/2631)
    • Clearing cache does not clear the template cache in storage/views (https://github.com/flarum/framework/pull/2648)
    • Boot errors show critical information (https://github.com/flarum/framework/pull/2633)
    • List user endpoint discloses last online even if user choose against it (https://github.com/flarum/framework/pull/2634)
    • Group gambit disclosed hidden groups (https://github.com/flarum/framework/pull/2657)
    • Search results on small windows not fully visible (https://github.com/flarum/framework/pull/2650)
    • Composer goes off screen on Safari when starting to type (https://github.com/flarum/framework/pull/2660)
    • A search that has no results shows the search results dropdown (b88a7cb)
    • The composer modal moves around when typing on Safari (a64c398)

    Removed

    • Deprecated CSRF wildcard path match
    • Deprecated policy and visibility scoping events
    • Deprecated post types event
    • Deprecated validation events
    • Deprecated notification events
    • Deprecated floodgate
    • Deprecated user preferences event
    • Deprecated formatting events
    • Deprecated api events
    • Deprecated bootstrap.php support
    • PHP 7.2 support (https://github.com/flarum/framework/pull/2507)
    • Bidi attribute in the rendered HTML (https://github.com/flarum/framework/pull/2602)
    • AccessToken::find, use AccessToken::findValid instead (https://github.com/flarum/framework/pull/2651)

    Deprecated

    • GetModelIsPrivate event (https://github.com/flarum/framework/pull/2587)
    • CheckingPassword event (https://github.com/flarum/framework/pull/2176)
    • event() helper (https://github.com/flarum/framework/pull/2608)
    • AccessToken::generate argument $lifetime (https://github.com/flarum/framework/pull/2651)
    • Rememberer::remember argument $token should receive an instance of RememberAccessToken with AccessToken being deprecated (https://github.com/flarum/framework/pull/2651)
    • Rememberer::rememberUser (https://github.com/flarum/framework/pull/2651)
    • SessionAuthenticator::logIn argument $userId, should be replaced with AccessToken (https://github.com/flarum/framework/pull/2651)
    • TextEditor has been moved to common (https://github.com/flarum/framework/pull/2649)
    • UserFilter (91e8b56)
    Open source →
  57. v0.1.0-beta.15 20 Dec 2020 pre-release
    Release notes

    Added

    • Slug drivers support (https://github.com/flarum/framework/pull/2456).
    • Notification type extender (https://github.com/flarum/framework/pull/2424).
    • Validation extender (https://github.com/flarum/framework/pull/2102).
    • Post extender (https://github.com/flarum/framework/pull/2101).
    • Notification channel extender (https://github.com/flarum/framework/pull/2432).
    • Service provider extender (https://github.com/flarum/framework/pull/2437).
    • API serializer extender (https://github.com/flarum/framework/pull/2438).
    • User preferences extender (https://github.com/flarum/framework/pull/2463).
    • Settings extender (https://github.com/flarum/framework/pull/2452).
    • ApiController extender (https://github.com/flarum/framework/pull/2451).
    • Model visibility extender (https://github.com/flarum/framework/pull/2460).
    • Policy extender (https://github.com/flarum/framework/pull/2461).

    Changed

    • Time helpers converted to Typescript (https://github.com/flarum/framework/pull/2391).
    • Improved the formatter extender (https://github.com/flarum/framework/pull/2098).
    • Improve wording on installer when facing file permission issues (https://github.com/flarum/framework/pull/2435).
    • Background color of checkbox toggles improved for better usability (https://github.com/flarum/framework/pull/2443).
    • Route resolving refactored (https://github.com/flarum/framework/pull/2425).
    • Administration panel UX refactored (https://github.com/flarum/framework/pull/2409).
    • Floodgate moved to middleware and extender added (https://github.com/flarum/framework/pull/2170).
    • DRY up image uploading logic (https://github.com/flarum/framework/pull/2477).
    • Process isolation on testing (https://github.com/flarum/framework/commit/984f751c718c89501cc09857bc271efa2c7eea8c).
    • Forum and admin javascript exports namespaced (https://github.com/flarum/framework/pull/2488).

    Fixed

    • Web updater does not take into account subfolder installations (https://github.com/flarum/framework/pull/2426).
    • Callables handling in extenders failed (https://github.com/flarum/framework/pull/2423).
    • Scrolling on mobile from PostSteam changes didn't work correctly (https://github.com/flarum/framework/pull/2385).
    • Side pane covers part of the discussion page due to app.discussions being empty (https://github.com/flarum/framework/commit/102e76b084bf47fdfb4c73f95e1fbb322537f7aa).
    • Change email modal keeps showing the previous error message even on success (https://github.com/flarum/framework/pull/2467).
    • Comment count not updated when discussions are deleted (https://github.com/flarum/framework/pull/2472).
    • goToIndex in PostStream does not trigger an xhr to retrieve new data (https://github.com/flarum/framework/commit/09e2736cbcc267594b660beabbd001d9030f9880).
    • On refresh the post number is reduced by one (https://github.com/flarum/framework/pull/2476).
    • Queue worker would instantiate a new Queue factory, not the bound one (https://github.com/flarum/framework/pull/2481).
    • Header accidentally has a border bottom (https://github.com/flarum/framework/pull/2489).
    • Namespace mentioned in docblock is incorrect (https://github.com/flarum/framework/pull/2494).
    • Scrolling inside longer discussions (especially Firefox) skips posts (https://github.com/flarum/framework/commit/210a6b3e253d7917bd1eacd3ed8d2f95073ae99d).
    • Uploading avatars that are jpg/jpeg fails with a validation error (https://github.com/flarum/framework/pull/2497).

    Removed

    • MomentJS alias (https://github.com/flarum/framework/pull/2428).
    • Deprecated user events GetDisplayName and PrepareUserGroups (https://github.com/flarum/framework/pull/2428).
    • AssertPermissionTrait (https://github.com/flarum/framework/pull/2428).
    • Path related helpers and methods in Application (https://github.com/flarum/framework/pull/2428).
    • Backward compatibility layers from the frontend rewrite (https://github.com/flarum/framework/pull/2428).

    Deprecated

    • CheckingForFlooding (https://github.com/flarum/framework/commit/8e25bcb68f86cc992c46dfa70368419fe9f936ac).
    Open source →
  58. v0.1.0-beta.14.1 02 Nov 2020 pre-release
    Release notes

    Fixed

    • SuperTextarea component is not exported.
    • Symfony dependencies do not match those depended on by Laravel (https://github.com/flarum/framework/pull/2407).
    • Scripts from textformatter aren't executed (https://github.com/flarum/framework/pull/2415)
    • Sub path installations have no page title.
    • Losing focus of Composer area when coming from fullscreen.
    Open source →
  59. v0.1.0-beta.14 20 Oct 2020 pre-release
    Release notes

    Added

    • Check dependencies before enabling / disabling extensions (https://github.com/flarum/framework/pull/2188)
    • Set up temporary infrastructure for TypeScript in core (https://github.com/flarum/framework/pull/2206)
    • Better UI for request error modals (https://github.com/flarum/framework/pull/1929)
    • Display name extender, tests, frontend UI (https://github.com/flarum/framework/pull/2174)
    • Scroll to post or show alert when editing a post from another page (https://github.com/flarum/framework/pull/2108)
    • Feature to test email config by sending an email to the current user (https://github.com/flarum/framework/pull/2023)
    • Allow searching users by group ID using the group gambit (https://github.com/flarum/framework/pull/2192)
    • Use liveHumanTimes helper to update times without reload/rerender (https://github.com/flarum/framework/pull/2208)
    • View extender, tests (https://github.com/flarum/framework/pull/2134)
    • User extender to replace PrepareUserGroups (https://github.com/flarum/framework/pull/2110)
    • Increase extensibility of skeleton PHP (https://github.com/flarum/framework/pull/2308, https://github.com/flarum/framework/pull/2318)
    • Pass a translator instance to getEmailSubject in MailableInterface (https://github.com/flarum/framework/pull/2244)
    • Force LF line endings on windows (https://github.com/flarum/framework/pull/2321)
    • Add a Link component for internal and external links (https://github.com/flarum/framework/pull/2315)
    • ConfirmDocumentUnload component
    • Error handler middleware can now be manipulated by the middleware extender

    Changed

    • Update to Mithril 2 (https://github.com/flarum/framework/pull/2255)
    • Stop storing component instances (https://github.com/flarum/framework/issues/1821, https://github.com/flarum/framework/issues/2144)
    • Update to Laravel 6.x (https://github.com/flarum/framework/issues/2055)
    • Flarum\Foundation\Application no longer implements Illuminate\Contracts\Foundation\Application (#2142)
    • Flarum\Foundation\Application no longer inherits Illuminate\Container\Container (#2142)
    • paths have been split off from Flarum\Foundation\Application into Flarum\Foundation\Paths, which can be injected where needed (#2142)
    • Flarum\User\Gate no longer implements Illuminate\Contracts\Auth\Access\Gate (https://github.com/flarum/framework/pull/2181)
    • Improve Group Gambit performance (https://github.com/flarum/framework/pull/2192)
    • Switch to dayjs from momentjs (https://github.com/flarum/framework/pull/2219)
    • Don't create a bio column in users for new installations (https://github.com/flarum/framework/pull/2215)
    • Start converting core JS to TypeScript (https://github.com/flarum/framework/pull/2207)
    • Make Carbon an explicit dependency (https://github.com/flarum/framework/commit/3b39c212e0fef7522e7d541a9214ff3817138d5d)
    • Use Symfony's translator interface instead of Laravel's (https://github.com/flarum/framework/pull/2243)
    • Use newer versions of fontawesome (https://github.com/flarum/framework/pull/2274)
    • Use URL generator instead of app()->url() where possible (https://github.com/flarum/framework/pull/2302)
    • Move config from config.php into an injectable helper class (https://github.com/flarum/framework/pull/2271)
    • Use reserved TLD for bogus and test urls (https://github.com/flarum/framework/commit/6860b24b70bd04544dde90e537ce021a5fc5a689)
    • Replace m.stream with flarum/utils/Stream (https://github.com/flarum/framework/pull/2316)
    • Replace affixedSidebar util with AffixedSidebar component
    • Replace m.withAttr with flarum/utils/withAttr
    • Scroll Listener is now passive, performance improvement (https://github.com/flarum/framework/pull/2387)

    Fixed

    • generate:migration command for extensions (https://github.com/flarum/framework/commit/443949f7b9d7558dbc1e0994cb898cbac59bec87)
    • Container config for UninstalledSite (https://github.com/flarum/framework/commit/ecdce44d555dd36a365fd472b2916e677ef173cf)
    • Tooltip glitch on page chang (https://github.com/flarum/framework/issues/2118)
    • Using multiple extenders in tests (https://github.com/flarum/framework/commit/c4f4f218bf4b175a30880b807f9ccb1a37a25330)
    • Header glitch when opening modals (https://github.com/flarum/framework/pull/2131)
    • Ensure SameSite is explicitly set for cookies (https://github.com/flarum/framework/pull/2159)
    • Ensure Flarum\User\Event\AvatarChanged event is properly dispatched (https://github.com/flarum/framework/pull/2197)
    • Show correct error message on wrong password when changing email (https://github.com/flarum/framework/pull/2171)
    • Discussion unreadCount could be higher than commentCount if posts deleted (https://github.com/flarum/framework/pull/2195)
    • Don't show page title on the default route (https://github.com/flarum/framework/pull/2047)
    • Add page title to All Discussions page when it isn't the default route (https://github.com/flarum/framework/pull/2047)
    • Accept '0' as false for flarum/components/Checkbox (https://github.com/flarum/framework/pull/2210)
    • Fix PostStreamScrubber background (https://github.com/flarum/framework/pull/2222)
    • Test port on BaseUrl tests (https://github.com/flarum/framework/pull/2226)
    • UrlGenerator can now generate urls with optional parameters (https://github.com/flarum/framework/pull/2246)
    • Allow less to be compiled independently of Flarum (https://github.com/flarum/framework/pull/2252)
    • Use correct number abbreviation (https://github.com/flarum/framework/pull/2261)
    • Ensure avatar html uses alt tags for accessibility (https://github.com/flarum/framework/pull/2269)
    • Escape regex when searching (https://github.com/flarum/framework/pull/2273)
    • Remove unneeded semicolons inserted during JS compilation (https://github.com/flarum/framework/pull/2280)
    • Don't require a username/password for SMTP (https://github.com/flarum/framework/pull/2287)
    • Allow uppercase entries for SMTP encryption validation (https://github.com/flarum/framework/pull/2289)
    • Ensure that the right number of posts is returned from list posts API (https://github.com/flarum/framework/pull/2291)
    • Fix a variety of PostStream bugs (https://github.com/flarum/framework/pull/2160, https://github.com/flarum/framework/pull/2160)
    • Sliding discussion glitch on mobile (https://github.com/flarum/framework/pull/2324)
    • Sliding discussion button in wrong place (https://github.com/flarum/framework/pull/2330, https://github.com/flarum/framework/pull/2383)
    • Sliding discussion glitch on mobile (https://github.com/flarum/framework/pull/2381)
    • Fix PostStream for posts with top margins, and scrubber position when scrolling below posts (https://github.com/flarum/framework/pull/2369)

    Removed

    • Flarum\Event\AbstractConfigureRoutes event class
    • Flarum\Event\ConfigureApiRoutes event class
    • Flarum\Event\ConfigureForumRoutes event class
    • Flarum\Console\Event\Configuring event class
    • Flarum\Event\ConfigureModelDates event class
    • Flarum\Event\ConfigureLocales event class
    • Flarum\Event\ConfigureModelDefaultAttributes event class
    • Flarum\Event\GetModelRelationship event class
    • Flarum\User\Event\BioChanged event class
    • Flarum\Database\MigrationServiceProvider moved into Flarum\Database\DatabaseServiceProvider
    • Unused admin/components/Widget component (admin/component/DashboardWidget should be used instead)
    • Mandrill mail driver (https://github.com/flarum/framework/commit/bca833d3f1c34d45d95bf905902368a2753b8908)

    Deprecated

    • Flarum\User\Event\GetDisplayName event class
    • Global path helpers, Flarum\Foundation\Application path methods (https://github.com/flarum/framework/pull/2155)
    • Flarum\User\AssertPermissionTrait (https://github.com/flarum/framework/pull/2044)
    Open source →
  60. v0.1.0-beta.13 04 May 2020 pre-release
    Release notes

    Added

    • Console extender (#2057)
    • CSRF extender (#2095)
    • Event extender (#2097)
    • Mail extender (#2012)
    • Model extender (#2100)
    • Posts by users that started a discussion now have the CSS class .Post--by-start-user
    • PHPUnit 8 compatibility
    • Composer 2 compatibility
    • Permission groups can now be hidden (#2129)
    • Confirmation popup when hiding or deleting posts (#2135)

    Changed

    • Updated less.php dependency version to 3.0
    • Updated JS dependencies
    • All notifications and other emails now processed through the queue, if enabled (#978, #1928, #1931, #2096)
    • Simplified uploads, removing need to store intermediate files (#2117)
    • Improved date handling for dates older than 1 year (#2034)
    • Linting and automatic formatting for JS (#2099)
    • Translation files from Language Packs are only loaded for extensions that are enabled (#2020)
    • PHP extenders' properties are now private instead of protected, intentionally making it harder to extend these classes (#1958)
    • Preparation for upgrading Laravel components to 5.8 and then 6.0 (#2055, #2117)
    • Allowed permission checks based on model classes in addition to instances (#1977)

    Fixed

    • Users can no longer restore discussions hidden by admins (#2037)
    • Issues of the Modal not showing or auto hiding (#1504, #1813, #2080)
    • Columnar layout on admin extensions page was broken in Firefox (#2029, #2111)
    • Non-dismissible modals could still be dismissed using the ESC key (#1917)
    • New discussions were added to the discussion list above unread sticky posts (#1751, #1868)
    • New discussions not visible to users when using Pusher (#2076, #2077)
    • Permission icons were aligned unevenly in admin permissions list (#2016, #2018)
    • Notification bubble not inversed on mobile with colored header (#1983, #2109)
    • Post stream scrubber clicks jumped back to first post (#1945)
    • Loading state of Switch toggle component was hard to see (#2039, #1491)
    • Flarum\Extend\Middleware: The methods insertBefore() and insertAfter() did not work as described (#2063, #2084)

    Removed

    • Support for PHP 7.1 (#2014)
    • Zend compatibility bridge (#2010)
    • SES mail support (#2011)
    • Backward compatibility layer for Flarum\Mail\DriverInterface, new methods from beta.12 are now required
    • Flarum\Util\Str helper class
    • Flarum\Event\ConfigureMiddleware event

    Deprecated

    • Flarum\Event\AbstractConfigureRoutes event class
    • Flarum\Event\ConfigureApiRoutes event class
    • Flarum\Event\ConfigureForumRoutes event class
    • Flarum\Event\ConfigureLocales event class
    Open source →

Every package, every release, already written down.

The archive is open and free. Watching your own project is what we are building next.

Browse the archive