Releases: hotosm/tasking-manager
v5.5 OSM Sandbox
OSM Tasking Manager – Sandbox Production Release 🌐
This release publishes the Sandbox feature to the production instance of the Tasking Manager.
• Sandbox PR: #7133
• Discussion: #7148
HOT's Sandbox implementation builds on development from the OSM US Tasking Manager and introduces a controlled, isolated environment for onboarding, practice projects, and projects involving private or sensitive data that should not be published to OpenStreetMap.
Key Use Cases
- Safe environment for onboarding and contributor training without impacting live OSM data
- Supports guided practice sessions and workflow familiarization
- Enables pilot and test projects before production launch
- Supports private, restricted, or sensitive datasets that must not be published to OSM
- Suitable for internal-only mapping and experimental initiatives
Working with Sandbox
How can Sandbox projects be identified?
You can filter Sandbox projects in both the Explore and Manage sections. Clear visual cues are also displayed throughout the workflow to distinguish sandbox project.
![]() Explore Filter |
![]() Manage View |
![]() Workflow Visual Cue |
|
At what stage can a project author choose between Sandbox and Production?
Environment selection happens during project creation. When cloning a project, you can also choose the target environment.
![]() Environment selection during Project Setup |
Can the project environment be modified after creation?
No. Once created, a project cannot be switched between Sandbox and OSM database.
Which editors are available in Sandbox projects?
Only the iD editor is enabled for sandbox projects.
Can Sandbox project priority be changed?
No. All Sandbox projects default to low priority, and this cannot be adjusted.
What happens to Sandbox data?
Sandbox data will be flushed monthly.
If you need your Sandbox project data preserved, please raise a ticket here and we will follow up.
Future improvement: We plan to introduce a feature to download project-specific Sandbox data prior to cleanup.
A big thanks to everyone who contributed to development, testing, review, and stabilization of this release 🙌
Other notable improvements in this release include:
- Terradraw library switch for task splitting during project creation
- Filter by imagery type using API
- Task list page sorting improvements
- Resources tab reordering
- Digital Public Goods badge display
- Vakidation mail enhancements
- Backend support for messaging all campaign contributors
Expand to see detailed codebase changes 🖥️
- Refactor split task by drawing to use TerraDraw by @suzit-10 in /pull/7139
- Filter projects based on imagery type by @prabinoid in /pull/7138
- Fix task list page jumping to wrong page on selection with sort by @heathdutton in /pull/7124
- Feat/integration tests by @prabinoid in /pull/7137
- Feat/osm sandbox by @prabinoid in /pull/7133
- FIxes NESTED FE ENV formatting issue by @nischalstha9 in /pull/7142
- Add digital public good badge to readme and website home page by @spwoodcock in /pull/7143
- Place resource tab as a last tab by @suzit-10 in /pull/7144
- Sandbox feature on staging 🎉 by @ramyaragupathy in /pull/7145
- fix: Project clone to support database selection by @prabinoid in /pull/7149
- feat: Admins to send message to a campaign contributors by @prabinoid in /pull/7147
- fix: Only id editors allowed as mapping and validation editors for sandbox by @prabinoid in /pull/7151
- Sandbox related updates by @ramyaragupathy in /pull/7152
- Set sandbox projects priority to low by default by @prabinoid in /pull/7166
- Enable ID editor only as an editor option on sandbox projects by @suzit-10 in /pull/7165
- Remove priority indicator for sandbox projects by @suzit-10 in /pull/7167
- Change wording of database selection on project selection by @suzit-10 in /pull/7168
- Add cue for sandbox project notation by @suzit-10 in /pull/7169
- Change the project's database filter wording by @suzit-10 in /pull/7170
- Add filter project mode filter manage project section by @suzit-10 in /pull/7171
- Add plain text alternative to email messages by @heathdutton in /pull/7122
- Sandbox enhancements by @ramyaragupathy in /pull/7174
- v5.5 OSM sandbox release by @ramyaragupathy in /pull/7176
Full Changelog: v5.4.1...v5.5
v5.5 Hotfix
Hotfix: Fix Contributions Page Crash for Sandbox Projects
Related issue: #7177
Fixed a crash on the Contributions page for sandbox projects that occurred when a user’s preferred editor was set to anything other than the iD editor.
Contributions page was not properly handling non-iD editor preferences in sandbox contexts, which caused it to fail during rendering.
What's Changed
- In case of sandbox project set the default editor as a
ID editorand ignore the user's default editor. by @suzit-10 in #7179 - Staging: v5.5 Hotfix contribution page crash by @ramyaragupathy in #7180
- v5.5 Hotfix by @ramyaragupathy in #7181
Full Changelog: v5.5...v5.5-hotfix
v5.4.1
v5.4.1 release focuses on improving everyday usability across the platform.
👥 Contributions & User Data
- Contributor filtering by level fixed
- Task splits excluded from contribution counts, improving the accuracy of contributor statistics.
- Corrected percent mapped after task invalidation when tasks are invalidated, ensuring mapping percentages remain accurate.
🧭 Interface & Usability
- Markdown support enabled in Project Q&A section, making descriptions and instructions clearer and easier to read.
- Improved panel arrangement to provide a clearer guidance and smoother workflow while contributing to a task.
- Campaign names now link directly to their corresponding campaign pages for faster navigation.
- User mention in Project Q& A are now sorted alphabetically, making it easier to find and select users.
Expand to see detailed codebase changes 🖥️
- Remove hardcoded `/api/v2/` prefixes from backend URLs (follow-up to #6938) by @suzit-10 in /pull/7046
- Fix filtering contributors by level by @suzit-10 in /pull/7116
- Extend markdown attributes to support various markdown features by @prabinoid in /pull/7123
- feat: sort the contributors list by @suzit-10 in /pull/7128
- make campaign clickable by @suzit-10 in /pull/7127
- WIP: Integration tests refactor by @prabinoid in /pull/7093
- Fix: exclude split tasks from contribution counts by @heathdutton in /pull/7126
- Fix percent mapped calculation after task invalidation by @heathdutton in /pull/7125
- Traefik version upgraded to v3.6.1 by @prabinoid in /pull/7129
- Improve panel ordering and default tab selection based on task state by @suzit-10 in /pull/7130
- v5.4.1 by @ramyaragupathy in /pull/7131
- v5.4.1 release to production by @ramyaragupathy in /pull/7132
New Contributors
- @heathdutton made their first contribution in #7126
Full Changelog: v5.4.0...v5.4.1
v5.4.0
👥 User Profile Deletion
Tasking Manager v5.4.0 introduces user account deletion controls, enabling both self-service deletion and administrator-initiated deletion of user profiles.
- Self-deletion: Users can now delete their own accounts directly from their profile settings. This supports better privacy control and compliance with data protection expectations.
- Admin deletion: Administrators can delete user accounts when required (e.g., inactive users, policy enforcement, or support requests), ensuring cleaner user management across the platform.
What's Changed
- Hide social links in footer using empty strings by @jacobwhall in #7004
- Preserve mentions and URLs by storing generated comment text in session storage by @suzit-10 in #7117
- PR 6334 User deletion by @prabinoid in #7070
- Bring latest to staging v5.4.0 by @ramyaragupathy in #7119
- v5.4 release by @ramyaragupathy in #7120
Full Changelog: v5.3.3...v5.4.0
v5.3.3
This release focuses on preventing comment loss during navigation, improving task validation tracking, and refining roles & team management, along with several backend stability fixes.
⭐ Key Highlights
Prevent comment loss on navigation
Users will now see a confirmation pop-up if they attempt to leave a page with an unposted comment. This helps prevent accidental data loss during reloads or navigation.
(Related: #6684)
Validator ID added to Task JSON
A new validatedBy attribute has been added to task JSON, allowing visibility into which user validated a task directly from the task grid. (Related: #6954)
Expand to see detailed codebase changes 🖥️
- Save comment draft in session to prevent data loss on reload/navigation by @suzit-10 in /pull/7075
- Refactor pm_only dependency to admin_only by @prabinoid in /pull/7064
- Add validator id in task json by @prabinoid in /pull/7069
- Token decode error exception handled by @prabinoid in /pull/7079
- Update team edit permission by @suzit-10 in /pull/7099
- Access the team management page by @suzit-10 in /pull/7092
- Role duplicatioin on update by @suzit-10 in /pull/7101
- Remove undefined listed as a hashtag by @suzit-10 in /pull/7083
- Remove composite fk on project teams and add id pk by @prabinoid in /pull/7090
- v5.3.3 staging release by @ramyaragupathy in /pull/7102
- Fix role deletion logic and refine role assignment by @suzit-10 in /pull/7104
- Memoize role list by @suzit-10 in /pull/7106
- Merge fix from dev -> staging (v5.3.3 staging release) by @nischalstha9 in /pull/7105
- v5.3.3 Production release by @nischalstha9 in /pull/7107
Full Changelog: v5.3.2...v5.3.3
v5.3.2
What's Changed
- Remove remaining Mapbox-specific code and migrate to Maplibre implementation by @suzit-10 in #7041
- Fix/6941 update badges levels loader by @suzit-10 in #7085
- Accept numeric values only as a search input on project list of notification by @suzit-10 in #7081
- Fix extra iD URL parameter
offsetnot working for custom imagery issue by @royallsilwallz in #6950 - Bring v5.3.2 to staging by @ramyaragupathy in #7086
- Staging v5.3.2 to Production by @prabinoid in #7098
Full Changelog: v5.3.1...v5.3.2
v5.3.1
This release resolves several long-standing user-reported issues that significantly improve team management, contributor insights, and the overall usability of the Tasking Manager.
- Order project contributors by mapped/validated tasks (#6987)
Project managers can now sort contributors by mapped, validated, or combined task counts.
This helps quickly identify validators, assess quality, and monitor mapping patterns—especially in large projects.
- Remove non-functional density layer (#6755)
The outdated and broken Density basemap used during project creation has been removed.
This avoids confusion, prevents blank map displays, and prepares the interface for a future integration of a reliable, high-resolution population density layer.
- Enable team deletion without manually finding all linked projects (#6773)
Teams can now be unlinked more efficiently, enabling deletion without manually tracking historical project associations. The backend now supports controlled unlinking with safety checks to avoid permission misconfigurations.
- Add project ID column on project list view (#7005)
The Project ID is now visible in the list view, making it easier to:
• Quickly locate specific projects
• Verify order when sorted by “New”
• Reduce naming confusion across similar projects
This aligns UI output with CSV exports where projectID was already available.
- Fix broken MapSwipe stats on Partner Pages
Partner Pages now correctly fetch and display MapSwipe statistics.
The update prevents blocking behavior, handles CSRF authentication, and aligns the GraphQL query with recent MapSwipe changes—restoring accurate partner-level insights.
Expand to see detailed codebase changes 🖥️
- Enable sorting contributors list by mapped, validated, and combined tasks by @suzit-10 in /pull/7020
- Remove density layer from base layer options list by @suzit-10 in /pull/7028
- Prevent accessing unauthorized pages through url by @suzit-10 in /pull/7034
- Infra: update ecs scale down bounds by @nischalstha9 in /pull/7051
- Update project save validation by @suzit-10 in /pull/7035
- Unlink team from a project for allowing team deletion by @prabinoid in /pull/6953
- Show specific error messages on team unlinking failure (follow-up to #6953) by @suzit-10 in /pull/7063
- Refactor base layer switch logic to use visibility toggling instead of `setStyle()` by @suzit-10 in /pull/7045
- Add ID Column on project list view by @suzit-10 in /pull/7065
- Fix/mapping level naming by @prabinoid in /pull/7062
- Change project and task geom columns wkt to ewkt to make it projection aware by @prabinoid in /pull/7058
- Change default contact address by @prabinoid in /pull/7057
- Refactored partners stats to be non blocking operation, handle csrf auth and update the graphql query as per mapswipe update by @prabinoid in /pull/7061
- Move super mapper to done by @ramyaragupathy /pull/7071
- Fix flaky test cases for user role and level update in users list by @suzit-10 in /pull/7042
- v5.3.1 to staging by @ramyaragupathy in /pull/7073
- v5.3.1 to Production by @nischalstha9 in /pull/7077
Full Changelog: v5.2.1...v5.3.1
v5.2.1
What's Changed
- private project mapping and validation permission checks team membership along with project allowed users by @prabinoid in #7049
- Hotfix: private project mapping and validation permission checks team membership along with project allowed users by @nischalstha9 in #7050
Full Changelog: v5.2.0...v5.2.1
v5.2.0
Introducing Super Mappers and Badges
This release introduces two major new features:
- Badges and
- the new Super Mapper level, to better recognize mapper expertise and enhance project quality.
🏅 Badges
Badges are a brand-new way to celebrate mapper achievements. They’re automatically awarded based on your lifetime mapping activity in OpenStreetMap.
Examples include:
- 🛣️ Highways Badge: 1,000 km of highways created
- 🌊 Waterways Badge: 1,000 km of waterways created
- 🏠 Buildings Badge: 100,000 buildings created
Badges will appear on your Tasking Manager profile and Contributions page: https://tasks.hotosm.org/contributions
💪 Super Mapper Level
A new top-tier level, Super Mapper, sits above Advanced users.
To qualify, you’ll need to:
1. Earn the required badges (Highways, Waterways, Buildings)
2. Pass a human review by Tasking Manager admins (and later, select Super Mappers)
This new level helps project creators confidently assign complex mapping tasks to the most skilled contributors, thereby improving mapping quality and easing pressure on validator teams.
⚙️ Project Permissions
Project creators can now:
- Restrict mapping and validation access by mapper level, including the new Super Mapper level
- Restrict projects to Advanced-only users (previously unavailable)
Existing project permissions will automatically align with this new structure without changes.
This feature was made possible through a collaboration between HOTOSM and Codeando México with the idea proposed by @RAytoun. Please check out @SColchester's OSM diary post for further details.
Expand to see detailed codebase changes 🖥️
- user stats table and model by @categulario in /pull/6800
- Correct localization key for `timeSpentContributing` by @suzit-10 in /pull/6991
- Download task grid file with auth token using fetch and Blob by @suzit-10 in /pull/6993
- Remove fixed width causing login button overlap. by @suzit-10 in /pull/6985
- eslint fixes for super mapper feature by @categulario in /pull/6997
- fix progress message for levels by @categulario in /pull/6998
- fix(infra/ecs): add ohsome envs by @nischalstha9 in/pull/7000
- Restore three requested functionality related to super mapper by @categulario in /pull/7013
- fix problem when deleting level with votes by @categulario in /pull/7014
- clear next level and votes on badge and level update by @categulario in /pull/7016
- properly handle when there is no next level for the user by @categulario in /pull/7017
- Fix/script formatting by @prabinoid in /pull/7018
- Add option to immediately exit cron_jobs script by @jacobwhall in /pull/7003
- project id from taskdto instead of task object by @prabinoid in /pull/7021
- Run pre-commit on all files by @prabinoid in /pull/7022
- badges not assigned by @categulario in /pull/7023
- allow listing projects to map or validate as anonymous user by @categulario in /pull/7024
- Fix/project search by @categulario in /pull/7025
- set default validation permission to any with intermediate level by @categulario in /pull/7026
- bring back project statistics: users per level by @categulario in /pull/7027
- Use check and update stats function in refresh mapper level command by @prabinoid in /pull/7019
- Update docs by @prabinoid in /pull/7011
- Adapt frontend test cases as per supper mapper changes by @suzit-10 in /pull/7029
- Update user stats in parallel by @prabinoid in /pull/7031
- Application db pool made dynamic and created separate connection and … by @prabinoid in /pull/7036
- New badges + mapper level system (ie: Supper Mapper) by @emi420 in /pull/7033
- Make `ecs_execute_command` controllable from env by @nischalstha9 in/pull/7037
- Exception handling for users not found in osm and users deleted from osm by @prabinoid in /pull/7038
- Merge develop changes to staging by @nischalstha9 in /pull/7039
- SuperMapper Release to production. by @nischalstha9 in /pull/7047
New Contributors
- @categulario made their first contribution in #6800
- @jacobwhall made their first contribution in #7003
Full Changelog: v5.1.2...v5.2.0
v5.1.2
What's Changed
- project id in reset task action while setting action history by @prabinoid in #7010
- Hotfix for #7009 by @ramyaragupathy in #7012
Full Changelog: v5.1.1...v5.1.2



