# [2.0.0-next.1](https://code.castopod.org/adaures/castopod/compare/v1.11.0...v2.0.0-next.1) (6/19/2024)
### Bug Fixes
* add missing php-icons config file to bundle ([56612f0](56612f0c76))
* **docs:** add base to og image using env variable ([fe67659](fe676590f2))
* **import:** rewrite download_file helper to output curl response directly to file ([eb7ad2f](eb7ad2f7e1))
* include app/Resources/icons folder to bundle ([3fd5efc](3fd5efc795))
* **platforms:** add platforms service + reduce memory consumption when rendering platform cards ([fe73e9f](fe73e9fae9))
* set owner email visibility when editing podcast ([fc4f982](fc4f982556)), closes [#473](https://code.castopod.org/adaures/castopod/issues/473)
### Build System
* release next major version as prerelease ([8275226](827522643e))
### Features
* add Plugins module with base files for plugins architecture ([7253e13](7253e13ac2))
* **plugins:** abstract settings form for general, podcast and episode types ([b62b483](b62b483ad9))
* **plugins:** activate / deactivate plugin using settings table ([27d2a1b](27d2a1b0ff))
* **plugins:** add aside with plugin metadata next to plugin's readme ([dfb7888](dfb7888aeb))
* **plugins:** add before channel/item hooks to allow podcast/episode data edit when generating rss ([80d2c48](80d2c48ee2))
* **plugins:** add json schema definition for plugin manifest ([b5eddf3](b5eddf351f))
* **plugins:** add methods to easily retrieve general, podcast and episode settings in hooks methods ([3a900bb](3a900bbab6))
* **plugins:** add new field types + validate & cast user data before storing settings ([6f833fc](6f833fc76a))
* **plugins:** add options to manifest for building forms and storing plugin settings ([3d8aedf](3d8aedf9c3))
* **plugins:** add settings page for podcast and episode if defined in the plugin's manifest ([89ac92f](89ac92fb41))
* **plugins:** add siteHead hook to add custom meta tags to public pages ([e80a33b](e80a33bf2a))
* **plugins:** display errors when plugin is invalid instead of crashing ([8ec7909](8ec79097bb))
* **plugins:** handle empty states and long strings in UI ([45ac2a4](45ac2a4be9))
* **plugins:** load and validate plugin manifest.json ([1510e36](1510e36c0a))
* **plugins:** load plugins using file locator service ([587938d](587938d2bf))
* **plugins:** load README.md file to view plugin's instructions in UI ([e6bfdfc](e6bfdfc390))
* **plugins:** register plugins using Plugin.php file instead of namespace + simplify i18n structure ([2035c39](2035c39fd1))
* **plugins:** uninstall plugins via CLI and admin UI ([9a80de4](9a80de4068))
* set owner email to hidden by default in podcast create form ([7a6d9df](7a6d9df6db))
* support podcast:txt tag with verify use case ([57e459e](57e459e187)), closes [#468](https://code.castopod.org/adaures/castopod/issues/468)
### BREAKING CHANGES
* next major release including plugins architecture
# [1.7.0](https://code.castopod.org/adaures/castopod/compare/v1.6.5...v1.7.0) (11/29/2023)
### Bug Fixes
* **admin-ux:** hide navigation submenus in details panel for easier scanning ([b047a3c](b047a3c670))
* **admin:** remove episode title truncation + display description in two lines in episode list ([f4ffa30](f4ffa30ec4)), closes [#386](https://code.castopod.org/adaures/castopod/issues/386)
* **auth:** display error messages from validator ([5a834c0](5a834c0f89))
* **housekeeping:** remove unnecessary $tablePrefix variable when resetting post count ([97d793f](97d793f55e)), closes [#383](https://code.castopod.org/adaures/castopod/issues/383)
* **import:** handle bad values for location attributes ([642981f](642981fd35))
* **import:** use cocur/slugify library to handle non latin text ([4ca7f9c](4ca7f9ccae))
* move monetization outside of podcast form + add broadcast section to podcast menu ([dff8516](dff85168b3))
* **nodeinfo2:** import database config + use dynamic table prefix for active local actors query ([6a7ef01](6a7ef0109a))
* **persons:** set roles field as optional + set `Cast > Host` as default value ([02132dc](02132dc466)), closes [#347](https://code.castopod.org/adaures/castopod/issues/347)
* **platforms:** make platforms' websites and submit urls more prominent ([61cf8fa](61cf8fa3e2))
* **podcast-form:** move fediverse section below author section ([1861d67](1861d67971))
* reorder podcast form fields + extract sync feeds to its own form ([2d52fa1](2d52fa1046))
### Features
* **admin:** add rss feed link to podcast side navigation ([18e2633](18e2633a49))
* **icons:** update new Deezer logo ([f2d5b27](f2d5b272ac))
* **install:** init database and create superadmin using CLI ([02d4ba6](02d4ba69ac)), closes [#380](https://code.castopod.org/adaures/castopod/issues/380)
* **ux:** add episode description to episode cards ([5f8d413](5f8d413b84))
## [1.6.1](https://code.castopod.org/adaures/castopod/compare/v1.6.0...v1.6.1) (2023-09-09)
### Bug Fixes
* **admin:** redirect root fediverse route to fediverse-blocked-actors ([ba5324e](ba5324ea19))
* **analytics:** show full referrer domain in web pages visits reports ([6be38e9](6be38e9fda)), closes [#367](https://code.castopod.org/adaures/castopod/issues/367)
* **auth:** overwrite Shield's PermissionFilter ([c6e8000](c6e8000bab))
* **auth:** update shield from v1.0.0-beta.3 to v1.0.0-beta.6 ([23842df](23842df03a))
* **platforms:** add missing tiktok to social platforms seed ([8dfdaf3](8dfdaf3215))
* remove fediverse prefix to prevent migration error + load routes during podcast import ([7ff1dbe](7ff1dbe903))
* **routes:** overwrite RouteCollection to include all routes + update js and php dependencies ([b4f1b91](b4f1b916bf))
* update Router to include latest CI changes with alternate-content logic ([ae57601](ae57601c83))
* use podcast-activity named route instead of not existing actor route ([3c35718](3c357183ca))
# [1.6.0](https://code.castopod.org/adaures/castopod/compare/v1.5.2...v1.6.0) (2023-08-28)
### Bug Fixes
* **home:** update where clause when getting all podcasts to prevent draft podcasts from showing up ([7a1eea5](7a1eea58d3))
* **media:** copy and delete temp file when saving instead of moving it for FS FileManager ([9346e78](9346e787bd)), closes [#338](https://code.castopod.org/adaures/castopod/issues/338)
* **media:** get path using media_path_absolute when saving media file ([754e7a6](754e7a6b4b))
* **media:** init file properties in setAttributes' Model method + set defaults to pathinfo data ([0775add](0775add678))
* **premium-podcasts:** show premium flag only when podcast has published premium episodes ([d10c4fd](d10c4fd753))
* **s3:** add a flag to serve media files by redirecting to a presigned url instead of default proxy ([11aa358](11aa3586a0))
### Features
* **episode:** add preview link in admin to view and share episode before publication ([7d21b35](7d21b3509e))
# [1.4.0](https://code.castopod.org/adaures/castopod/compare/v1.3.5...v1.4.0) (2023-06-21)
### Bug Fixes
* **charts:** set duration charts label to HHhMM for listening time analytics ([3fc1d8e](3fc1d8e18d))
* **embed:** set height of player iframe from config ([4665741](4665741425))
* **s3:** serve files without cache if dummy cache handler + add http referer header to redirect ([30db9f0](30db9f0667))
* **s3:** use presigned request uri to serve static files ([cb92dc7](cb92dc73f1))
* **webmanifest:** import misc helper to get site_icon_url ([548a11d](548a11d501))
### Features
* **import:** run podcast imports' processes asynchronously using tasks ([d8e1d40](d8e1d4031d))
* **rest-api:** add endpoints for episodes and full text search for podcasts and episodes ([85505d4](85505d4b31)), closes [#296](https://code.castopod.org/adaures/castopod/issues/296)