0.41 2021-01-28
        - Introduce CORS headers to the proxy.
        - Introduce Content Security Policy.
        - Remove default api endpoint from config to
          enable changes in the 'Kalamar' config environment
          while keeping the api_path.
        - Added advice in Readme regarding scripts in
          Windows Powershell (lerepp).
        - Establish CSP plugin.
        - Added nonce helper to CSP plugin.
        - Remove no-js class in nonced inline script.
        - Introduce HSTS header for https_only conf.
        - Send 'nosniff' header.
        - defer main script.
        - Introduce X-Frame-Options header.
        - Introduce X-XSS-Protection header.
        - Support CSP in notifications framework.

0.40 2020-12-17
        - Modernize ES and fix in-loops.
        - add roll() method to state object.
        - Fix wrong hint-mirror behaviour in Firefox.
        - Fix VC fragments for redundant constraints.
        - Modernize ES and improve variable declarations.
        - Improve JS test coverage for Datepicker.
        - Fix character errors in hint helper at position 0.
        - Improve JS test coverage for tutorial.
        - Move "use strict" to file level.
        - Fix bug where event bubbles when prefix is clicked
          in hint menu.
        - Remove email support from login (as is not
          or no longer supported by LDAP) (#99).
        - Fix requirement of KorAP.vc in docgroupref
          (which broke the vc demo).
        - Improve RegEx-Button in vc builder.
        - Added 'Troubleshooting' section to Readme.
        - Update for Mojolicious >= 8.66.

0.39 2020-10-07
        - Add information on secret file to Readme.
        - Change default API endpoint to korap.ids-mannheim.de.
        - Fix label for toggle plugins.
        - Activate plugin registry.
        - Forward 'pipe' parameter to backend.
        - Introduce base css file for plugins.
        - Refactoring of sass files.
        - Added query form API to plugin server.
        - Exclude search results from robot indices.
        - Added responsive 'news' style.
        - Add support for icons in plugin definition (hebasta).
        - Change buttonGroup API to accept class and
          icon definitions.
        - Added query parameter API to plugin server.
        - Minor documentation fix in Koral.
        - Added banner style.
        - Introduced early 'Plugins' plugin to embed external
          services.
        - Introduced *-latest.css/*-latest.js files for plugin
          assets.
        - Add associates() method to state objects.
        - Add minimize() method to views.
        - Add "setWidget" action for plugin registration.
        - Add clear() method to state objects.
        - Fix "setWidget" action when the service was closed
          instead of minimized.
        - Add registrable permissions to widgets and services
          (#112).
        - Fix plugin info box.

        WARNING: If you relied on the former default API endpoint
          being http://localhost:9999/, this will break your
          deployment. Please override the default API endpoint.

0.38 2020-06-16
        - Support X-Forwarded-Host name for proxy.
        - Document API URI.
        - Improve redirect handling in proxy.
        - Added support for OAuth2 client registration.
        - Added support for OAuth2 client listing.
        - Added requestMsg() methods to clients for retrieving
          data from the embedding server.
        - Improve error status codes.
        - Support HTML responses for match information.
        - Reuse failure template.
        - Added support for OAuth2 client unregistration.
        - Remove experimental status of proxy (and therefore
          configuration option 'experimental_proxy') and enable
          proxy by default.
        - Establish 'after_search_results' content part.
        - Establish 'after_search' hook.
        - Recommend log in on zero matches in search results
          in case not logged in (addresses #67).
        - Update Mojolicious requirement for security reasons.
        - Fix order of promises in login handling.
        - Update Test::Mojo::Session to be compatible with latest
          version of Mojolicious.
        - Added Dockerfile.

0.37 2020-01-16
        - Removed deprecated 'kalamar_test_port' helper.
        - Separated KalamarHelpers and KalamarPages.
        - Renamed 'doc_link_to' to 'embedded_link_to'
          and deprecated 'doc_link_to'.
        - Renamed 'doc_ext_link_to' to 'ext_link_to'
          and deprecated 'doc_ext_link_to'.
        - Renamed 'doc_uc' to 'under_construction'
          and deprecated 'doc_uc'.
        - Introduced 'page_title' helper.
        - Simplified documentation routing.
        - Added 'realm' parameter to 'embedded_link_to' helper.
        - Introduced 'navigation' helper with 'realm' parameter.
        - Deprecated 'doc_navi' helper in favor of 'navigation'
          helper.
        - Added 'navi->set' and 'navi->add' helper.
        - Added settings skeleton.
        - Added query panel for query views.
        - Added result panel for plugin registration (hebasta).
        - Added state object.
        - Added toggle button to buttongroup.
        - Added pipe object to implement KoralPipes.
        - Separated "service" from "widget" plugin embeddings.
        - Implemented preliminary host->plugin communication.
        - Fixed matchID transformation to deal with textSigles
          having dashes.
        - Catch timeouts in proxy.
        - Support non-verbal elements in token table view.
        - Refresh corpus statistics by clicking the
          statistics button (#107, hebasta)
        - Fixed links to Leibniz association (hebasta)
        - Make proxy timeouts configurable.
        - Show busy indicator while waiting for query results
          (#104).
        - Update JS dependencies.

0.36 2019-09-19
        - Rename all cookies to be independent
          for different instance (#94).
        - Enable https only via
          configuration option 'https_only'.
        - Make VC replaceable via KorAP.vc.fromJson().
        - Emit 'after_render' in proxy responses
          to make it accessible to post processing
          (such as the Piwik plugin).
        - Fix treatment of legacy "collection" parameter.
        - Fix pagination by not repeating page value in URL.
        - Added auto-refresh of OAuth tokens.
        - Added token revocation on logout.
        - Improve visibility of keyword fields in metadata view.

        WARNING: This requires relogin for all users!

0.35 2019-07-19
        - Added EXPERIMENTAL proxy to API route.
        - Remove deprecated api configuration
          (requires api_path instead now).
        - Deprecated 'collection' parameter in
          favor of 'cq' (#92).
        - Update API for statistics.
        - Introduced documentation on CQL (margaretha).
        - Introduced documentation on Cosmas 2.
        - Improved documentation on APIs.
        - Introduced documentation on FCS-QL (margaretha).
        - Enable experimental proxy via
          configuration option 'experimental_proxy'.
        - Updated documentation on annotations.
        - Introduced documentation on Annis QL (margaretha).
        - Improved documentation on data.
        - Removed documentation stub for wildcards
          (fully integrated in C2 documentation).
        - Improved documentation on regular expressions.

0.34 2019-06-26
        - Introduced guided tour (hebasta, #19).
        - Updated dependency on M::P::Notifications to
          be compatible with recent versions of Mojolicious.
        - Introduce cuts in token views.
        - Improve QueryCreator to single-quote-escape special
          characters in orth-line and include more symbols.
        - Remove deprecated auth_support support.
        - Add OAuth2 password grand flow.

0.33 2019-03-28
        - Fix problem with serialization and deserialization
          of large numerical values (#87).
        - Added command to generate example HTML file
          to pick from JS test suite.

        WARNING: This requires complete recaching, so run
          $ perl script/kalamar chi clear default
          $ perl script/kalamar chi clear user
          in your MOJO_MODE environment after update.

0.32 2019-03-12
        - Support attachements in metadata fields (#77).
        - Added ping request option to Piwik.
        - Fix handling of login errors.
        - Added Statistics reload option (hebasta, #66).
        - Fixed VC query serialization (hebasta).
        - Fix treatment of 'data:,'-attachements.
        - Rename "Institute for the German Language" to
          "Leibniz Institute for the German Language".
        - Fixed "next"-character in paginations.
        - Added new IDS logo.
        - Fix timeout cache (#84).

0.31 2018-11-30
        - Update to Mojolicious >= 8.06.
        - Made Authentication/Authorization a separated Kalamar::Plugin::Auth
          (deprecated most helpers from Kalamar::Plugin::KalamarUser).
        - Introduced abstract 'korap_request' helper.
        - Introduce 'sidebar' content_block.
        - Introduce 'headerButtonGroup' content_block.
        - Added corpusByMatch assistant (#27).
        - Fixed XML fragment serialization in KQ highlighter.

0.30 2018-11-13
        - Rewrote backend:
          - Removed dependency of Mojolicious::Plugin::Search.
          - Removed abstract API.
        - Improved backend error handling.
        - Improved backend test suite.
        - Removed MMap cache from default configuration
          and rely on in-memory cache.
        - Introduced Piwik as a separated plugin
          (no longer a mandatory plugin).

0.29 2018-10-05
        - Deprecated Kalamar.api configuration key
          in favor of Kalamar.api_path.
        - Fix replacement of docs with docGroupRefs in
          VC builder.
        - Improve touch support for menus.
        - Improve touch support for annotation assistant.
        - Move token table view to marked match.
        - Added metadata headers.
        - Update to Mojolicious >= 8.02.

0.28 2018-08-29
        - Introduced Widget based plugin system.
        - Added corpus statistics to VC (hebasta, #25).
        - Introduce center alignment (#63).
        - Change KWIC lines from table style
          to flexbox style (#31).
        - Added doc group reference to VC builder (#62).
        - Show VC name, when a reference is defined.
        - Make close in match view to minimize.
        - Add minimize button to VC.
        - Make unspecified values in VC a button.
        - Fixed KoralQuery view to correctly update session.

0.27 2018-07-23
        - Introduced content blocks to create
          flexible entry lists in the footer
        - Add marker for "cutted" matches.
        - Re-enabled Windows installations.
        - Added buttongroup class.
        - Introduced panel and view system for
          results and matches.
        - Support verbatim keys/values in QueryCreator
          to deal with Koral issue #42.

0.26 2018-04-06
        - Added meta data view.
        - Attach reference line to match bottom.
        - Separate match views and integrate relation menu
          into reference line.
        - Attach querycreator object to annotation table.
        - Update client side dependencies
        - Introduce development mode to client side code.
        - Generalized Poliqarp tutorials and made
          example queries corpus independent.
        - Improve README.
        - Protect login for csrf attacks.
        - Remember app state after login (issue #20).
        - Fixed DRuKoLA annotation assistant data.
        - Fixed server error reporting.
        - Introduced text type in VC creation.
        - Removed "contains" and "containsnot" from
          string type.
        - Added "ne" operation to date meta type.
        - Added Piwik/Matomo integration.

0.25 2018-01-31
        - Make annotation assistant configurable.
        - Support multiple prefixes in menus.
        - Show annotation tooltips in table views.
        - Improve result display when JavaScript is disabled.
        - Improve VC creation tool by supporting "blurring".
        - Make tutorial queries localizable for different default corpora.
        - Update dependencies.
        - Add lwc annotations.
        - Adapt support for new relation serialization by Krill.

0.24 2017-11-22
        - Added support for relation visualization.
        - Added support for FCSQL.

0.23 2017-09-20
        - Added query creator tool.
        - Fix visualization of empty contexts in KWIC.
        - Added announcement template.

0.22 2017-06-26
        - Added user authentification using Kustvakts LDAP
          connection.
        - Added X-Forwarded-For.
        - Introduced proxy_prefix as a configuration option.
        - Added support for more rewrite options in js.
        - Fixed legacy sigle parsing.

0.21 2017-02-01
        - Use textSigle for API communication instead of
          {corpus,doc,text}ID.
        - Added alert to annotation assistant.
        - Improved menu creation.
        - Introduced benchmark system.
        - select elements are now improved menus.
        - Annotation menu do not append menus anymore.
        - Updated dependency for bugfixed Localize.
        - Improved readme for localization generation.
        - Fixed select menus to show selected item on
          initialization.
        - Improved compatibility for new text sigles.
        - Fixed alert to not be correctly hidden.
        - Added download of tree visualizations.
        - Do not show multiple identical annotations
          in table view.
        - Added preliminary support for metadata columns.
        - Added preliminary support for multimenus.
        - Updated to more recent version of Mojolicious (7.23).
        
0.20 2016-05-25
        - Improved menu using sliders.
        - Improved menu to make prefixes chooseable,
          even if list can't be filtered.
          - Improve pageup/pagedown behaviour in menus.
          - Fixed multiple bugs in menu.

0.19 2016-04-28
        - Improved datepicker to enter date strings.
        - Improved menus to have fixed length depending
          on entry list.

0.18 2016-02-29
        - Support for dashes in identifiers.
        - Minor changes to the layout.
        - Simplified configuration file.

0.17 2015-11-13
        - Support a larger template cache.
        - Minor style adjustments.

0.16 2015-06-18
        - Update to new KoralQuery API.
          WARNING! This version is no longer compatible
          with old responses of Krill.
        - Introduced new notifications engine.

0.15 2015-05-21
        - Cleanup for GitHub release
        - First realease on GitHub.

0.14 2015-04-15
        - Redesign of JS and Sass assets
        - Introduced RequireJS
        - Introduced VC
        - Improved tutorial
        - Localized client files

0.13 2015-03-10
        - Project name is now "Kalamar"
        - Removed Mr Crabs - introduced Karl
        - Support semantic markup for KWIC
        - Fixed Click-bug in annotation menu
        - Renamed "KorAP" classes to "Kalamar"
        - Support proxy

0.12 2015-01-28
        - Fixed alignment bug

0.11 2014-01-16
        - Fixed paging bug with the async api
        - Disabled Testing feature in tutorial
        - Improved test suite

0.10 2014-12-21
        - Fixed time_exceeded bug
        - Fixed test_port bug for inspection button

0.09 2014-12-03
        - Added new API module

0.08 2014-11-19
        - Added new suggestion module

0.07 2014-11-03
        - Added API-Response view

0.06 2014-09-22
        - Updated certain Notifications and AssetPack plugins
  - Updated pagination plugin

0.05 2014-07-15
        - Improved tutorial support
        - Added Exception mail system

0.04 2014-07-08
        - Fixed template view
        - Preliminary match view
        - Switched to asset pipeline wth sass
        - Added syntax highlighting to JSON
        - Update to Api 0.1

0.03 2014-06-20
        - Added preliminary autocompletion support (freetime project)

0.02 2014-06-17
        - Added morphological tables

0.01 2014-05-31
        - Simplifications:
          Notifications plugin is at
          https://github.com/Akron/Mojolicious-Plugin-Notifications
          All other plugins can be found at CPAN