Changelog
For upcoming release.
All notable changes for developers or end users will be documented in this file. Please always update this file within every MR, note:
- use links pointing to your use case and/or issue (See Documentation Guidelines), and
- use several lines with a sentence each in the right categories (add sub-categories as needed)
For example, Max Power would write in the documentation section:
- Clarified wording for [shade layer use case](usecases/done/shade_layer.md), fixes [#1873](https://issues.permaplant.net/1873). _(Max Power)_
Highlights
- User progress in the guided tour is now tracked per step, enabling users to resume where they left off and ensuring that users who previously completed the tour only see newly added steps. (Alfons Mueller)
Landing Page
- Add Eszter to team-members on the landing page #2484 (Moritz Adelsberger)
- Move Alfons to inactive on the landing page #2515 (Alfons Mueller)
- Move Johannes to inactive on the landing page #2516 (Johannes Ziehengraser)
Important Changes for Developers
Meetings
- From now on PM Meeting Notes will be in the PM repo.
- PM Meeting Agenda & Notes for 05.12.2025 11:30 (Markus Raab, Paul Bachinger)
- Meeting Agenda&Notes for 08.12.2025 9:00 (Markus Raab, Patrick Grassl)
- Meeting Agenda&Notes for 15.12.2025 9:00 (Markus Raab, Alfons Müller)
- Meeting Agenda&Notes for 22.12.2025 9:00 (Markus Raab, Justus Weilguni)
- Meeting Agenda&Notes for 29.12.2025 9:00 (Markus Raab, Ben Schlegel)
- Meeting Agenda&Notes for 05.01.2026 9:00 (Markus Raab, Christoph Schreiner)
- Meeting Agenda&Notes for 12.01.2026 9:00 (Markus Raab, Johannes Ziehengraser)
- Meeting Agenda&Notes for 19.01.2026 9:00 (Markus Raab, Maiia Kuzmishyna)
- Meeting Agenda&Notes for 26.01.2026 9:00 (Markus Raab, Moritz Muth)
- Add presentation slides to meeting notes for 29.12.2025 9:00 (Moritz Muth)
- Meeting Agenda&Notes for 02.02.2026 9:00 (Markus Raab, Hannes Zettl)
- Meeting Agenda&Notes for 09.02.2026 9:00 (Markus Raab, Christoph Kraus)
- Meeting Agenda&Notes for 16.02.2026 9:00 (Markus Raab, Patrick Grassl)
- Meeting Agenda&Notes for 23.02.2026 9:00 (Markus Raab, Ben Schlegel)
- Meeting Agenda&Notes for 02.03.2026 9:00 (Markus Raab, Elizaveta Mokshantseva)
Compatibility
Migrations
- MIGRATION: Added database constraints for the hierarchy (Christoph Schreiner)
- MIGRATION: Fix existing plant rows violating rank consistency before adding hierarchy constraint (Paul Bachinger)
- Added migration to add uuidv4 constraints to fields holding user ids #2432 (Alfons Mueller)
- Standardized migration header comments for release preparation #2529 (Paul Bachinger)
Scraper Data
- Added function to delete and merge plants #1412 (Christoph Schreiner)
- Added text replacements to scraper pipeline #1740 (Christoph Schreiner)
Bug Fixes
Frontend
- Fixed timeline date picker scrolls to incorrect date on page refresh #2265 (Maiia Kuzmishyna)
- Implement silent sign-in if user is already logged in #2256 (Christoph Kraus)
- Plantings are sometimes not loaded due to incorrect visible bounds #2284 (Maiia Kuzmishyna)
- Added guided tour frontend functionality for dark mode, pausing and tracking user progress #2481 (Alfons Mueller)
- Added warning when opening the inventory to notify users it is work in progress #2376 (Alfons Mueller)
- Handle server shutdown message in frontend and enable readonly mode #2410 (Alfons Mueller)
- Fix map sorting and pagination #2195 (Moritz Muth)
- Renamed PermaplanT realm to Perma. #2508 (Lukas Oberhauser)
Features
Bug Fixes
- Display file-alert icon for missing Nextcloud images #2178 (Maiia Kuzmishyna)
- Fix local dev not working anymore #2265 (Johannes Ziehengraser)
- Optimized performance of toolbars resizing #2440 (Maiia Kuzmishyna)
- Improved UX of Nextcloud image error handling #1776. (Maiia Kuzmishyna)
- Changed auth server url where used #2494 (Johannes Ziehengraser)
- Fixed timeline not auto-collapsed when going below a certain window size #2488 (Maiia Kuzmishyna)
- No telemetry sending if no endpoint defined #2470. (Johannes Ziehengraser)
- Fixed automatically removed plantings now being marked in timeline #1566 (Maiia Kuzmishyna)
- Fixed error messages on logout #1515 (Maiia Kuzmishyna)
- Fixed Notes text box losing focus during planting edit #2383 (Vseslav Levchenko)
- Fixed timeline not adjusting day when resizing #1086 (Vseslav Levchenko)
- Fixed E2E base layer tests passing int instead of string to Playwright assertions (Paul Bachinger)
Development
- Reopen toolbars automatically #2290 (Moritz Muth)
- Improve positioning of map overlay toggles #2275 (Moritz Muth)
Libraries
- Change to using ua-parser-js v1 to use MIT License #1732 (Andrei Dinu-Coreth)
Backend
- Added Backend functionality for guided tour pausing and incremental progress #2480 (Alfons Mueller)
- Add goodbye message sent on server shutdown#578 (Justus Weilguni)
- Add check for membership when creating seeds and maps #2471 (Justus Weilguni)
- Refactor map search to retrieve results in a single query #2195 (Justus Weilguni)
- Added sorting to the maps find endpoint. #2411 (Justus Weilguni)
- Renamed PermaplanT realm to Perma. #2507 (Lukas Oberhauser)
Features
- Add OpenTelemetry #1806 (Johannes Ziehengraser)
- Add OpenTelemetry instrumentation for tokio #2451 (Johannes Ziehengraser)
Libraries
Bug Fixes
- Have make generate a schema.rs if not present #2466 (Justus Weilguni)
Libraries
Tools
- Updated auto-rebase-mrs.sh to handle new repository domain name and enhanced overall reliability. #2463 (Patrick Grassl)
- Fixed auto-rebase-mrs.sh #2496 (Patrick Grassl)
Build System
- Upgrade pgAdmin dependency #2445 (Moritz Muth)
- Added clippy constraints to make run-backend #2311 (Justus Weilguni)
CI
- Added hybrid job allocation strategy to Jenkins deployment pipelines to improve resource utilization and reduce wait times #2437 (Paul Bachinger)
- Pinned docker images with hash #2400 (Paul Bachinger)
- Improved Jenkins pipeline resilience by adding agent fallback logic and configurable execution flags for staging and E2E tests. #2456 (Patrick Grassl)
- Adjusted Jenkins pipeline and E2E tests according to current hardware specifications. #2474 (Patrick Grassl)
- Added hz-production-agent to
DOCKER_BUILD_NODESfor reliable local Docker build capacity #760. (Paul Bachinger)
Documentation
- Fixed links in release template #2529 (Paul Bachinger)
- Added new status label documentation #2246 (Elizaveta Mokshantseva)
- Simplified scraper documentation #634 (Christoph Schreiner)
- Added opentelemetry design decisions #1976 (Johannes Ziehengraser)
- Bumped version and finalized release notes #2400 (Paul Bachinger)
- Fixed deprecated links #2400 (Paul Bachinger)
- Fixed blog date and team role (Paul Bachinger)
- Added documentation for scope::database label #2446 (Elizaveta Mokshantseva)
- Add documentation for bigint and date usage in backend and typeshare #2421 (Justus Weilguni)
- Add documentation on were .env files are located #2448 (Johannes Ziehengraser)
- Added subfolders for decisions #2285 (Alfons Mueller)
- Fixed broken links #2456 (Patrick Grassl)
- Add documentation on how to use signoz #2448 (Johannes Ziehengraser)
- Moved decisions to correct folders and fixed links (Alfons Mueller)
- Added 'Resolve Merge Conflicts Section' #2477 (Moritz Adelsberger)
- Add documentation on how to use signoz #2448 (Johannes Ziehengraser)
- Added guided tour improvement ideas #2180 (Alfons Mueller)
- Added guided tour overview documentation #2180 (Alfons Mueller)
- Added decision on the use of JSON #1823 (Alfons Mueller)
- Added technical overview of data handling relevant for GDPR guidelines #1591 (Alfons Mueller)
- Added Vseslav to contributors as part of onboarding #2486 (Vseslav Levchenko)
- Added Environment Variables Section to Docker Development Setup #2472 (Moritz Adelsberger)
- Improved dev setup onboarding docs by adding a Next Steps page #2240 (Moritz Adelsberger)
- Added decision document for polygon overlap handling. #2288 (Alfons Mueller)
- Renamed PermaplanTDev Nextcloud folder and chat to PermaDev in Onboarding template #2503 (Vseslav Levchenko)
- Added decision on replacement library for hull.js #1889 (Alfons Mueller)
- Add Mo to contributors #2464 (Moritz Adelsberger)
- Added decision for scraper csv validation #1811 (Christoph Schreiner)
- Add Lukas to contributors as part of onboarding #2502 (Lukas Oberhauser)
- Added decision for nextcloud baselayer images #2304 (Alfons Mueller)
- Offboarding Richard (Richard Wutscher)
- Fixed Markdown in database table description #2520 (Vseslav Levchenko)
- Fixed typo and updated URL in dev setup documentation #2521 (Vseslav Levchenko)
Workflows
- Added guided tour update workflow #2226 (Alfons Mueller)
- Added guideline on frontend images error handling #1776. (Maiia Kuzmishyna)
- Add documentation on the usage of new affects guided-tour label #2319 (Alfons Mueller)
- Updated access control usecase #2361 (Justus Weilguni)
- Removed contributors from CODEOWNERS 2447 (Elizaveta Mokshantseva)
Use Cases
Tests
Unit Tests
- Fixed broken heatmap tests #2422 (Christoph Schreiner)
E2E
- Improved E2E test stability by adding retries and unique names for failures #2350 (Christoph Kraus)
- removed time.sleep(5) during login and improved flakiness of login test #1901 (Christoph Kraus)
- print map name on create for debugging, refactor tour closing for less useless information, improved map opening steps to search first #2460 (Christoph Kraus)
- enable image based e2e tests again after canvas changes and nextcloud 401 fix #2273 (Christoph Kraus)
- Improved E2E test stability by adding retries and unique names for failures #2350 (Christoph Kraus)
- changed rm to rm -f to avoid errors when state file is not present #2040 (Christoph Kraus)
- Implemented multi-select E2E tests using drag-and-drop selection. #841 (Christoph Kraus)
- upgrade playwright version to 1.58.0 #2493 (Christoph Kraus)
- Added E2E test to verify date validation error is shown when end date is before start date in planting details #2489 (Christoph Kraus)
- Implement remember selected layer between map visits in E2E tests #2459 (Christoph Kraus)
- Enabled image based e2e tests again after nextcloud fix #2485 (Christoph Kraus)
- add missing undo/redo in existing e2e tests #2045 (Christoph Kraus)
- Add short timeout to check if tour close button exists. #2531 (Christoph Kraus)
Statistics
TODO add