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 2026Releases
latest 60 of 77-
v2.0.0-rc.623 Aug 2026 pre-releaseRelease notes
Open source →See the changelog: https://github.com/flarum/framework/blob/v2.0.0-rc.6/CHANGELOG.md
Release notes
Open source →Added
- (core) add a setting to disable sticky pinning on the All Discussions page by @gianniguida [#4609]
- (core) add a
tinkercommand 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
$onQueueby @imorland [#4853] - (core) unwrap
RoutingQueuewhen 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/flagstypings 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
DetailedDropdownItemcheck 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
Userinstance by @imorland [#4839] - (core) fix PHPStan errors under phpstan 2.2.6 / illuminate 13.22 by @imorland [#4842]
- (core) fix
queue:resumewith 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
ColorPreviewInputinstead of coercing to black by @imorland [#4856] - (tags) validate the
currentTagcache 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.viewLastSeenAtin 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
ondismisswhen 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
Inputin 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--textdropdown 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]
-
v2.0.0-rc.508 Jul 2026 pre-releaseRelease notes
Open source →See the changelog: https://github.com/flarum/framework/blob/v2.0.0-rc.5/CHANGELOG.md
Release notes
Open source →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_selectorsetting 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]=0is 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
roleattribute toPostStreamitems 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]
-
v2.0.0-rc.418 Jun 2026 pre-releaseRelease notes
Open source →See the changelog: https://github.com/flarum/framework/blob/v2.0.0-rc.4/CHANGELOG.md
Release notes
Open source →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
MariaDBto the frontendDatabaseDriverenum by @DavideIadeluca [#4701]
Changed
- (tags) convert
TagLinkButtonto TSX with an extensiblelinkItemslist by @imorland [#4755]
Fixed
- (flags) type
Flag::$reasonand$reason_detailas 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)
TypeErrorwhen 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
ExtensionPageby @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
editCredentialscheck 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]
-
v2.0.0-rc.309 Jun 2026 pre-releaseRelease notes
Open source →See the changelog: https://github.com/flarum/framework/blob/v2.0.0-rc.3/CHANGELOG.md
Release notes
Open source →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
QueueFactoryby @imorland [#4683] - (mentions) align mentions in post with the rest of the text by @dsevillamartin [#4692]
- (emoji) reserve a square box for
img.emojito avoid layout shift (CLS) by @imorland [#4685] - (core) queue worker
TypeErroron a null connection name withilluminate/queue13.15+ by @imorland [#4700] - (tags, sticky) declare
flarum/realtimeas an optional dependency so the realtime extender loads before its consumers, fixingTypeError: mt(...) is not a constructorby @imorland [#4699]
Performance
- (core) fix N+1
group_userqueries when serializing users by @imorland [#4696]
-
v2.0.0-rc.201 Jun 2026 pre-releaseRelease notes
Open source →See the changelog: https://github.com/flarum/framework/blob/v2.0.0-rc.2/CHANGELOG.md
Release notes
Open source →Added
- (core) per-class queue routing on
AbstractJobby @imorland [#4656] - (core)
QueueFactory::getPausedQueues()forilluminate/queuev13.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: ellipsison long button labels by @imorland [#4628] - (core) scope the
UserResourcegroups relationship to viewable groups by @imorland [#4629] - (core) add missing
getHidden()to theLog\Context\Repositorystub by @imorland [#4633] - (core) avoid duplicate
ModelNotFoundExceptionlogs on orphaned queued jobs by @imorland [#4634] - (core) resolve
VersionerInterfacefrom 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-assetsdisk 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
NotificationSyncerby @imorland [#4647] - (core)
TypeErrorin theRevisedevent when post content isNULLby @imorland [#4648] - (core) prevent
UserSecurityPagecrash 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.onbuildrace against async Mithril redraw by @imorland [#4657] - (core) surface event posts in discussion
PATCHresponses and route title changes viarename()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\SearchDriverclass-string types toSearcherInterfaceby @imorland [#4668] - (core) guard
EloquentBufferagainst 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_atinrealtime:infoby @imorland [#4630] - (realtime) reconstruct Pusher on iOS reconnect to bypass the
lives:2budget by @ekumanov [#4654] - (realtime) only force-reconnect on iOS
visibilitychangeby @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-loadFlagPostModalby @imorland [#4659] - (nicknames) cast min/max length settings to int before passing to
Schema\Strby @imorland [#4599]
Changed
- (tags) drop legacy unused background columns from the tags table by @Abdooo2235 [#4529]
Performance
- (core) skip MIME detection in
JsDirectoryCompilerwhen the file extension already matches by @imorland [#4632]
- (core) per-class queue routing on
-
v2.0.0-rc.118 Apr 2026 pre-releaseRelease notes
Open source →Added
- (core) reset-settings button and confirmation modal on extension admin pages, backed by
DELETE /api/settingsandSettings\Event\Resetby @imorland [#4522] - (core)
forum-widgetextension category by @imorland [#4543] - (core) HiDPI avatar srcset — generate @2x/@3x variants on upload and expose
avatarSrcseton 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::authorizePresenceChannelextender for gating presence-channel access by @imorland [#4573]
Fixed
- (core) suppress PHP warning when extension name lacks
vendor/packageformat 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\Serializerattribute fields now run throughserializeValueso 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
ReplyPlaceholdercomposing state on mobile by @imorland [#4533] - (core) preserve array values in
Attribute::serializeValueto avoid "Array to string conversion" for extensions returning arrays fromStr-typed attributes by @imorland [#4534] - (core) small correctness and accessibility fixes — serializer meta caching, queue exception handler,
@hasSectiondirective,CheckboxinputAttrs, FormGroupSwitcharia-describedbyby @imorland [#4562] - (core) restore controls icon on
UserCardso the mobile controls button is visible by @imorland [#4568] - (core) remove hardcoded radio input
nameinFormGroupso multiple radio groups can coexist by @rafaucau [#4571] - (core) prevent FontAwesome Kit from overriding
displayon hidden icon elements by @imorland [#4575] - (core) validate logo, favicon and dark-mode logo uploads via a shared
AbstractImageValidatorby @luceos [#4579] - (admin) improve
StatusWidgetmobile 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
idcolumn inis_unread_stickysubquery so extensions that joindiscussionsno longer break by @imorland [#4520] - (tags) use
hasPermissionforbypassTagCountsso 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
_.templatecode-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
notificationsto 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
TagFilterby @imorland [#4563]
- (core) reset-settings button and confirmation modal on extension admin pages, backed by
-
v2.0.0-beta.822 Mar 2026 pre-releaseRelease notes
Open source →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
IdWithDisplayNameSlugDriverby @imorland [#4470] - (core) redirect-only OAuth flow — rewrite
ResponseFactoryby @imorland [#4461] - (core)
CloseWatcherAPI for modals and dropdowns by @imorland [#4433] - (core) haptic feedback user preference and utility by @imorland [#4430] [#4434]
- (core) reusable
Herocomponent 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
EmailSendFailedevent 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_allowedtranslation for error view by @imorland [#4418] - (core) preserve translations when switching locale by @imorland [#4400]
- (core) return
Less_Tree_Keywordfor boolean custom Less functions by @imorland [#4406] - (core) prevent
Uncaught ReferenceErrorfor async default exports by @imorland [#4397] - (core) use correct
--page-bottom-paddingCSS 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
HasFormattedContentand mentions unparsers by @imorland [#4452] - (gdpr) add GDPR safeguard for cancelled erasure requests by @imorland [#4387]
- (jest-config) rename
src/boostrap/tosrc/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
DialogMessageafter 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
contentattr type toAlertcomponent 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]
-
v2.0.0-beta.721 Feb 2026 pre-releaseRelease notes
Open source →Added
- fire
ApplicationBootedevent 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
gotoIteminSearchModalto prevent crash by @imorland [#4376] - (tooltip) add
containerprop to fix notification button tooltip positioning by @imorland [#4375] - (admin) correct tree array construction in
GeneralSearchSourceby @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-schemeproperty to root.less for better dark-mode support by @zDaleZ [#4357] - prep for beta.7 by @imorland [#4377]
- fire
-
v2.0.0-beta.625 Jan 2026 pre-releaseRelease notes
Open source →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]
-
v2.0.0-beta.521 Dec 2025 pre-releaseRelease notes
Open source →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
DiscussionListItemby @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]
-
v2.0.0-beta.424 Nov 2025 pre-releaseRelease notes
Open source →Changed
- (a11y) improve a11y of avatar with no avatarUrl by @DavideIadeluca [#4248]
- improve extensibility of
PostUserby @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]
-
v2.0.0-beta.325 Apr 2025 pre-releaseRelease notes
Open source →Changed
- (a11y) misc a11y improvements by @SychO9 [#4211]
- allow labels of
PostStreamScrubberto be customized by @DavideIadeluca [#4181] - improve extensibility of Admin Pages by @DavideIadeluca [#4200]
- improve extensibility of
IndexPageby @DavideIadeluca [#4182] - improve extensibility of
PostMetacomponent 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-fixby @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
TagHeroby @DavideIadeluca [#4198] - allow extending
PostPreviewcontent by @DavideIadeluca [#4197] - improve extensibility of
WelcomeHeroby @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
unreadlabel is shown in Scrubber by @DavideIadeluca [#4185] - change starting position of
aria-posinsetby @DavideIadeluca [#4191] - return empty object if selected mail driver is unavailable by @DavideIadeluca [#4183]
- (tags) resolve
a11ywarnings 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]
sendmaildriver fails by @SychO9 [#4168]suspended_untilserialized 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]
-
v2.0.0-beta.217 Jan 2025 pre-releaseRelease notes
Open source →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)
-
v2.0.0-beta.108 Dec 2024 pre-releaseRelease notes
Open source →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/imageto 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-varvars [#3912] - cleanup composer deps (40dcaf882cd017463ca792762d4aa11de8c5c7da)
- corrected typos in routes comments [#3840]
- extract
FormModalfromModal[#3922] - extract
buildSettingComponentmethod into aFormGroupcomponent [#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.jsconverted 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
::classsyntax to fetch class name instead ofget_class()function [#3910] - use
hex_colorrule for color validation [#3936] - use
str_containsinstead ofstrpos[#3841] - graceful failure from extend/override errors [#4134]
Fixed
- (a11y) convert empty links to buttons [#3926]
- (approval)
PostWasApprovedevent 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
::classattribute for schedule [#3903] - default labels with
SettingDropdownandSelectDropdown[#3854] - duplicated
mentionsUsersin 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
UserSearchResultto 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=falsemight 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
WelcomeHeroextensible [#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
MariaDBdriver [#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
Notificationextender [#3974] - add
whenExtensionDisabledtoConditionalextender [#3847] - add option for filtering read stickied on all discussions page [#4073]
- allow resetting settings to default [#3935]
- define
FLARUM_STARTconstant [#4082] - dispatch event to
flarum/installation-packageson 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]
-
1.8.1913 Aug 2026 -
v1.8.1803 Aug 2026 -
v1.8.1715 Jun 2026 -
v1.8.1618 Apr 2026 -
v1.8.1510 Apr 2026Nothing published for this version
-
v1.8.1408 Mar 2026Nothing published for this version
-
v1.8.1309 Feb 2026Nothing published for this version
-
v1.8.1207 Jan 2026Nothing published for this version
-
v1.8.1108 Oct 2025Nothing published for this version
-
v1.8.1012 Mar 2025Nothing published for this version
-
v1.8.920 Nov 2024Nothing published for this version
-
v1.8.822 Oct 2024Nothing published for this version
-
v1.8.709 Oct 2024Nothing published for this version
-
v1.8.608 Oct 2024Nothing published for this version
-
v1.8.505 Jan 2024Nothing published for this version
-
v1.8.414 Dec 2023Nothing published for this version
-
v1.8.318 Oct 2023Nothing published for this version
-
v1.8.222 Sep 2023Nothing published for this version
-
v1.8.123 May 2023Release notes
Open source →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)
-
v1.8.020 May 2023Release notes
Open source →Fixed
- (a11y) reply placeholder not accessible [#3793]
- (bbcode) highlight.js does not work after changing post content [#3817]
- (bbcode) localize quote
wrotestring [#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]
UserSecurityPagenot 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_matchis 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
mentionedBypost relation results [#3780] - (likes) limit
likesrelationship 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
installandupdateinterfaces [#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
Revisedevent [#3789]
-
v1.7.224 Mar 2023Nothing published for this version
-
v1.7.112 Mar 2023Release notes
Open source →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)
-
v1.7.009 Mar 2023Release notes
Open source →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
Modelextender [#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
idcan 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
Dropdowncomponents 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-configfor release (748cca6) - remove use of deprecated phpunit assertion (3af0481)
- set flarum version to 1.7.0 for dev (2517bc0)
- update JS dependencies [#3695]
-
v1.6.310 Jan 2023Release notes
Open source →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).
-
v1.6.218 Nov 2022Release notes
Open source →Fixed
- XSS Vulnerability in core (https://github.com/flarum/framework/pull/3684).
-
v1.6.116 Nov 2022 -
v1.6.013 Nov 2022Release notes
Open source →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
ColorPreviewInputfor GroupModal color input [#3650] - send notifications of a new reply when post is approved [#3656]
-
v1.5.013 Sep 2022Release notes
Open source →Fixed
- (a11y) add accessible labels to notification grid options [#3520]
- (a11y) present post streams as feeds [#3522]
- (a11y) set
aria-busywhen editing a post stream item [#3521] - (compilation) versioner not inject into compilers [#3589]
- (mentions) accessing
idof nulluserrelation [#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]
$eventsproperty 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
srcfolder [#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
AlertManagerIndexPageandUserPagecomponents to TS [#3536] - convert
BadgeCheckboxandNavigationcomponents 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
pushandpull_requestactions at the same time [#3597] - refactor prefix matrix and add
MySQL 8.0&PHP 7.3to 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
isCollapsedinstead ofrangeCount[#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]
-
v1.4.104 Aug 2022Nothing published for this version
-
v1.4.012 Jul 2022Release notes
Open source →Added
created_atandupdated_atcolumns added to several tables (https://github.com/flarum/framework/pull/3435)- Priorities added to AdminNav links (https://github.com/flarum/framework/pull/3453)
app.translatorallows 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
relandtargetattributes 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)
assertAdmintests 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)
-
v1.3.107 Jun 2022Release notes
Open source →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. -->
-
v1.3.013 May 2022Release notes
Open source →From v1.2.1 on all bundled Flarum extensions and
flarum/coreare 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-userCSS 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)
-
v1.2.110 Mar 2022Release notes
Open source →Fixed
- Don't escape single quotes in discussion title meta tags (60600f4d2b8f0c5dac94c329041427a0a08fad42)
-
v1.2.020 Jan 2022Release notes
Open source →Added
- View
READMEdocumentation 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
textareasetting type to admin pages (https://github.com/flarum/framework/pull/3141). - Allow registering settings as
Lessconfig 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
Lesscustom function extender with ais-extension-enabledfunction (https://github.com/flarum/framework/pull/3190). - Support for
fewin 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
loadWhererelation 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).
StatusWidgettools extensibility (https://github.com/flarum/framework/pull/3189).- Allow switching the
ImageManagerdriver (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
listItemshelper (https://github.com/flarum/framework/pull/3147). - Replace
for ... inwithArray.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-labelattribute 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
ItemListtypings (https://github.com/flarum/framework/pull/3005). - Add priority order to discussion page controls (https://github.com/flarum/framework/pull/3165).
- Use
@phpin 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
colorItemsto anItemList(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
primaryControlitems 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-liveregions to focus screenreader attention on alerts as they appear (https://github.com/flarum/framework/pull/3237). - Prevent unwarranted
a11ywarnings 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 thisnot recognized by some IDEs (https://github.com/flarum/framework/pull/3142).Model.save()cannot savenullhasOnerelationship (https://github.com/flarum/framework/pull/3131).- Edit post
until replypolicy broken on PHP 8 (https://github.com/flarum/framework/pull/3145). - Inaccurate
Component.componentargument 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
maxfilesargument incorrectly (bfd81a83cfd0fa8125395a147ff0c9ce622f38e3). Activatedevent 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-actornot 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).listItemsnot accepting allMithril.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).
WelcomeHerois displayed when content is empty (https://github.com/flarum/framework/pull/3219).last_activity_at, last_seen_atupdated on all API requests (https://github.com/flarum/framework/pull/3231).RememberMeaccess token updated twice in API requests (https://github.com/flarum/framework/pull/3233).- Error in
fundingitem incomposer.jsonbricks the frontend (https://github.com/flarum/framework/pull/3239). - Escaped quotes in window title (https://github.com/flarum/framework/pull/3264)
schedule:listcommand fails due to missing timezone configuration.
Deprecated
- Unused
eventedutility (https://github.com/flarum/framework/pull/3125).
- View
-
v1.1.122 Oct 2021 -
v1.1.012 Oct 2021Release notes
Open source →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
preloadextender (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
ItemListforDiscussionPagecontent (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
-
v1.0.428 Jun 2021Release notes
Open source →Fixed
- Upgrade to v1.0 resets the "view" permission on all tags (https://github.com/flarum/framework/pull/2941)
-
v1.0.322 Jun 2021Release notes
Open source →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)
-
v1.0.206 Jun 2021 -
v1.0.102 Jun 2021Release notes
Open source →Fixed
- Installation fails on environments without proc_* functions enabled or mysql client binary (https://github.com/flarum/framework/issues/2890)
-
v1.0.025 May 2021Release notes
Open source →Added
- Task scheduling
load()method onApiControllerextender 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
unparsemethod 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
insertTextandstyleSelectedTextfrom 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
migrationstable 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:
viewDiscussionstoviewForumandviewUserListtosearchUsers(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:migrationcommand 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
mailkey is removed from the laravel related config (https://github.com/flarum/framework/pull/2796)
-
v0.1.0-beta.1615 Mar 2021 pre-releaseRelease notes
Open source →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-Byheader 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
mutatemethod on ApiSerializer extender toattributes(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)
TextEditoris 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
usergambit withauthorgambit (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, useAccessToken::findValidinstead (https://github.com/flarum/framework/pull/2651)
Deprecated
GetModelIsPrivateevent (https://github.com/flarum/framework/pull/2587)CheckingPasswordevent (https://github.com/flarum/framework/pull/2176)event()helper (https://github.com/flarum/framework/pull/2608)AccessToken::generateargument$lifetime(https://github.com/flarum/framework/pull/2651)Rememberer::rememberargument$tokenshould receive an instance ofRememberAccessTokenwithAccessTokenbeing deprecated (https://github.com/flarum/framework/pull/2651)Rememberer::rememberUser(https://github.com/flarum/framework/pull/2651)SessionAuthenticator::logInargument$userId, should be replaced withAccessToken(https://github.com/flarum/framework/pull/2651)TextEditorhas been moved tocommon(https://github.com/flarum/framework/pull/2649)UserFilter(91e8b56)
-
v0.1.0-beta.1520 Dec 2020 pre-releaseRelease notes
Open source →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.discussionsbeing 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).
goToIndexin 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
GetDisplayNameandPrepareUserGroups(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).
-
v0.1.0-beta.14.102 Nov 2020 pre-releaseRelease notes
Open source →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.
-
v0.1.0-beta.1420 Oct 2020 pre-releaseRelease notes
Open source →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
liveHumanTimeshelper 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
getEmailSubjectinMailableInterface(https://github.com/flarum/framework/pull/2244) - Force LF line endings on windows (https://github.com/flarum/framework/pull/2321)
- Add a
Linkcomponent for internal and external links (https://github.com/flarum/framework/pull/2315) ConfirmDocumentUnloadcomponent- 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\Applicationno longer implementsIlluminate\Contracts\Foundation\Application(#2142)Flarum\Foundation\Applicationno longer inheritsIlluminate\Container\Container(#2142)pathshave been split off fromFlarum\Foundation\ApplicationintoFlarum\Foundation\Paths, which can be injected where needed (#2142)Flarum\User\Gateno longer implementsIlluminate\Contracts\Auth\Access\Gate(https://github.com/flarum/framework/pull/2181)- Improve Group Gambit performance (https://github.com/flarum/framework/pull/2192)
- Switch to
dayjsfrommomentjs(https://github.com/flarum/framework/pull/2219) - Don't create a
biocolumn inusersfor 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.phpinto 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.streamwithflarum/utils/Stream(https://github.com/flarum/framework/pull/2316) - Replace
affixedSidebarutil withAffixedSidebarcomponent - Replace
m.withAttrwithflarum/utils/withAttr - Scroll Listener is now passive, performance improvement (https://github.com/flarum/framework/pull/2387)
Fixed
generate:migrationcommand 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
SameSiteis explicitly set for cookies (https://github.com/flarum/framework/pull/2159) - Ensure
Flarum\User\Event\AvatarChangedevent 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 Discussionspage when it isn't the default route (https://github.com/flarum/framework/pull/2047) - Accept
'0'asfalseforflarum/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)
UrlGeneratorcan now generate urls with optional parameters (https://github.com/flarum/framework/pull/2246)- Allow
lessto 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\AbstractConfigureRoutesevent classFlarum\Event\ConfigureApiRoutesevent classFlarum\Event\ConfigureForumRoutesevent classFlarum\Console\Event\Configuringevent classFlarum\Event\ConfigureModelDatesevent classFlarum\Event\ConfigureLocalesevent classFlarum\Event\ConfigureModelDefaultAttributesevent classFlarum\Event\GetModelRelationshipevent classFlarum\User\Event\BioChangedevent classFlarum\Database\MigrationServiceProvidermoved intoFlarum\Database\DatabaseServiceProvider- Unused
admin/components/Widgetcomponent (admin/component/DashboardWidgetshould be used instead) - Mandrill mail driver (https://github.com/flarum/framework/commit/bca833d3f1c34d45d95bf905902368a2753b8908)
Deprecated
Flarum\User\Event\GetDisplayNameevent class- Global path helpers,
Flarum\Foundation\Applicationpath methods (https://github.com/flarum/framework/pull/2155) Flarum\User\AssertPermissionTrait(https://github.com/flarum/framework/pull/2044)
-
v0.1.0-beta.1304 May 2020 pre-releaseRelease notes
Open source →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
privateinstead ofprotected, 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 methodsinsertBefore()andinsertAfter()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\Strhelper classFlarum\Event\ConfigureMiddlewareevent
Deprecated
Flarum\Event\AbstractConfigureRoutesevent classFlarum\Event\ConfigureApiRoutesevent classFlarum\Event\ConfigureForumRoutesevent classFlarum\Event\ConfigureLocalesevent class