0.43 2021-11-16
        - New menu class that has an entry at the very end,
          similar to the input text prefix,
          that is always available. (lerepp)
        - Fix error message in case of server error (500)
          response.
        - Added utility funcition to util that gets all direct
          childNodes of a given element by a tag or class. (lerepp)
        - Remove 'X-Frame-Options' in favor of 'frame-ancestors'
          as a CSP rule.
        - Fix CSS compression for new SASS compiler.
        - Support dynamic menu extensions.
        - Dynamically extend buttongroup menus.
        - Update to menu.js's removeItems function to only delete
          direct childNodes aswell as a specification to test for it. (lerepp)
        - Make actions private in panels and views.
        - Move pagination out of resultinfo.
        - Add support for "adopted" button groups and anchor children
          to prepend to.
        - New menu class that has a container for further
          entries at the very end that is always available. (lerepp)
        - Reorder documentation menu and make query languages the
          default entry point. (hebasta)
        - Fix init of matches.
        - Fix tests on text method to accept undef for Mojo >= 9.21.
        - Plugin::TagHelpers::ContenBlock now on CPAN.
        - Fix navigation behaviour for folded subdirectories.
        - Introduce legacy redirects for tutorial links.
        - Improve QueryParam response.
        - Fold all top-level navigation items.
        - Add plugin service to redirect to a certain location.
        - Add support for pagination information to retrieve by plugins.
        - Buttongroup menus can be opened at different positions.
        - Fix buttongroup anchoring if anchor doesn't exist.
        - Fix blind header titles.
        - Turn "upgradeTo" into an object prototype.
        - Fix QueryParam response to work with Chrome (#149).
        - Added DemoServer plugin.
        - Support CSP disabling.
        - Update intro.js (#109; hebasta)
        - Introduce pagination panel.
        - Support for inactive buttongroup items.
        - Support default values for state.
        - Introduce state manager (#119).
        - Support default value for plugin toggle embeddings.
        - Fix wrong handling of utf8 input in login that can
          lead to server crash.
        - Fix query-by-match for multiple colons.

0.42 2021-06-18
        - Added GitHub based CI for perl.
        - Added further methods for communicating JSON Files
          with the server to the APIs (lerepp).
        - Remove ruby-sass requirement (fixes #123).
        - Added support to issue new OAuth2 tokens.
        - Added tests for Mojolicious >= 9.11 compatibility.
        - Replace old Kalamar logo with new KorAP logo
          (designed by Norbert Cußler-Volz)
        - Added large footer.
        - Make KorAP logo stay when side menu is active
          (fixes #133).
        - Change samesite to 'None' to temporarily
          allow for session riding by plugins.
        - Overhaul of menuSpec to use getElementsByClassName
          and getElementsById instead of child accessors
          (lerepp).
        - List tokens of a client.
        - Upgrade Mojolicious dependency to 9.19.
        - Added query reference API.
        - Use AutoSecrets plugin to improve security.
        - Fixed bug where missing documentation pages raise
          exceptions in Mojo >= 9.0.
        - Support revocation of tokens.
        - Disable caching in auth routes.
        - Deprecate JWT flow. In the future only OAuth2
          flow will be supported and will be the default
          option for authentication and authorization.
        - Added settings navigation by default.
        - Fix rendering bug in unauthenticated oauth route.
        - Add option to toggle password fields.
        - Add "copy to clipboard" feature for input fields.
        - Add "copy to clipboard" for client id.
        - Show settings only on demand.

        WARNING: Upgrading to Mojolicious 9.19 will
          invalidate all sessions. This is a security update.
        
        WARNING: Even testing this distribution will rewrite your
          kalamar.secret file to migrate to kalamar.secret.json.
          It will keep kalamar.secret - but you'll advise to
          delete the file after checking the integrity with
          kalamar.secret.json.
        - Separate prefix style from non-item style
          in menus.

0.41 2021-03-01
        - 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.
        - Fetch plugin configs from JSON file to be
          CSP compliant.
        - Support CSP in Matomo/Piwik plugin.
        - Removed deprecated default behaviour
          of the Piwik/Matomo plugin.
        - Support CSP in overview SVG image.
        - Fix guided tour to work with CSP.
        - Fix strict-mode in tour.
        - Define resources in Makefile.
        - Support Mojolicious >= 9.
        - Remove deprecated helper methods.
        - Introduce Kalamar::Request and
          kalamar->request helper.
        - Move /js/tracking.js to /settings/asset/tracking.js
          to simplify asset configuration in proxy servers.
        - Fix working directory for plugin configuration.
        - Make mailto: embedding CSP compliant.
        - Add frame-src to Piwik plugin as '*' may be
          overwritten.
        - Fix tutorial queries (reported by margaretha).

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