Skip to content

v11.5.0

Choose a tag to compare

@misaugstad misaugstad released this 25 Jun 23:29
788a18a

Highlights

  • Explore page UI refresh — redesigned right sidebar centered on badges/achievements and communal progress, both Explore and Validate now scale to browser width, scroll-wheel zoom on both tools, minimap zoom buttons, refreshed buttons/colors/fonts, plus assorted bug fixes and code modernization #303, #1121, #2260, #3594 (PR #4255)
  • AccessScore comes to the v3 API with a new severity-, quality-, and tag-aware scoring model #3855 (PR #4298)
  • New Admin "API Analytics" tab showing v3 public API usage aggregated from activity logs #4262 (PR #4270)
  • New admin-only "Not validated by an admin" filter on the admin LabelMap, for partners tracking admin review coverage #4243 (PR #4313)

Public API (/v3) — new endpoints & improvements

  • New GET /v3/api/accessScoreStreets and GET /v3/api/accessScoreRegions #3855 (PR #4298)
  • New GET /v3/api/regions — neighborhood info & geometry, similar to /v3/api/streets #4017 (PR #4253)
  • New GET /v3/api/overallStatsByDay and GET /v3/api/aggregateStatsByDay — daily time-series of label/validation activity, with live charts in the docs #4274 (PR #4275)
  • overallStats validation stats are now split into combined / human / ai breakdowns so consumers can separate AI votes from human votes #4223 (PR #4251) — see Breaking changes
  • aggregateStats has a new tutorial_labels count field #3981 (PR #4293)
  • New /cropImage/:labelType/:labelId/metadata endpoint, mirroring /backupImage #4226 (PR #4260)
  • API streaming failures are now logged so large-export empty 200s aren't silent #4161, #4133 (PR #4306)
  • Standardized API errors across the Cities/Region/Stats controllers #3871 (PR #4268)
  • Fixed /v3/api/streets returning user_ids: [null] with an off-by-one user_count #3887 (PR #4305) — see Breaking changes
  • Fixed assorted v3 API input-validation bugs (PR #4261)

⚠️ Breaking public API changes

All on the /v3 preview API (changed in place per #3871). Consumers should
review before upgrading.

  • All v3 output field names are now snake_case — JSON bodies, GeoJSON properties, CSV headers, and shapefile/GeoPackage fields. Query params stay camelCase. Affects aggregateStats, cities, labelTypeslabel_types, labelTagslabel_tags, streetTypesstreet_types, labelClusters, and the metadata serializers #3871 (PR #4264)
  • Validation results are now strings: /v3/api/validations returns "validation_result": "Agree" (no more validation_result_string); the filter param is now ?validationResult=Agree; /v3/api/validationResultTypes drops its id field; labels-API validations aggregate casing changes (user:agreeuser:Agree) #4230 (PR #4263)
  • overallStats validations block restructured: validations.Overallvalidations.combined.Overall (plus new human / ai siblings) #4223 (PR #4251)
  • Removed the v2 AccessScore API entirely — /v2/access/score/streets and /v2/access/score/neighborhoods now return 404 (these were the only /v2 routes; superseded by the v3 endpoints above) #3864 (PR #4304)

Security

  • Hardened v3 API raw-SQL filter escaping and validated saveImage label-type/name path inputs (PR #4239)
  • Scoped CSRF token injection to same-origin fetch requests #4232 (PR #4311)

Bug fixes & performance

  • Fixed fire-and-forget DB writes in the gallery and UTM-contribution paths #4229 (PR #4309)
  • Detach PanoMarker resize/pov_changed listeners on removal to prevent leaks #4231 (PR #4307)
  • Fixed a discarded DBIO in the validation-undo path #4228 (PR #4299)
  • Use the geom GIST index for the label_point bbox filter #4238 (PR #4312)

Developer experience & infrastructure

Full Changelog: v11.4.3...v11.5.0