What's Changed
- Replace Thymeleaf with jte for web templates by @hwesselmann in #30
- feat: phase 1 optimizations — jte templates, ObjectMapper, virtual threads, caching by @hwesselmann in #31
- feat: phase 2 architecture — controller decoupling, encoding centralisation, cache-evict meta-annotation by @hwesselmann in #32
- feat: phase 3 — harden BearerTokenFilter + fix SpotBugs findings by @hwesselmann in #33
- feat: phases 2-4 — architecture polish, security hardening, NullMarked by @hwesselmann in #34
- new ui design with updated logos, colors and design elements by @hwesselmann in #35
Full Changelog: v1.3.1...v1.4.0