{ "1.5.3": { "content": [ "• MAJOR: Proper three-stage upload process - uploads now correctly track changeset creation, node operation, and changeset closing as separate steps", "• NEW: Enhanced upload error handling - failures in each stage (create changeset, upload node, close changeset) are now handled appropriately", "• NEW: Improved upload status display - shows 'Creating changeset...', 'Uploading...', and 'Closing changeset...' with time remaining for changeset close", "• NEW: Error message details - tap the error icon (!) on failed uploads to see exactly what went wrong and at which stage", "• NEW: OSM message notifications - notification dots appear on Settings button and OSM Account section when you have unread messages on OpenStreetMap", "• NEW: 'View Messages on OSM' button - easily access your OSM messages from within the app (respects current upload destination)", "• IMPROVED: Moved 'Delete OSM Account' link from About page to OSM Account page - now only appears when logged in and respects current upload destination (production vs sandbox)", "• IMPROVED: Proper 59-minute changeset window handling - node submission and changeset closing share the same timer from successful changeset creation", "• IMPROVED: Step 2 failures (node operations) retry indefinitely within the 59-minute window instead of giving up after 3 attempts", "• IMPROVED: Changeset close retry logic - continues trying for up to 59 minutes, then trusts OSM auto-close (never errors out once node is submitted)", "• IMPROVED: Orphaned changeset cleanup - if network fails after changeset creation but before node upload, we properly close the changeset before retrying", "• IMPROVED: Upload queue processing is now more robust and continues when individual items encounter errors", "• IMPROVED: Real-time UI updates for all upload status changes, attempt counts, and time remaining (only shows countdown when changeset close has failed)", "• FIXED: Queue processing no longer gets stuck when individual uploads fail", "• FIXED: Orphaned pending nodes - removing queue items or clearing the queue now properly removes temporary markers from the map", "• IMPROVED: Removed placeholder FOV values from built-in profiles - FOV functionality remains available for custom profiles when actual device specifications are known", "• IMPROVED: Better debugging support throughout the upload pipeline for easier troubleshooting" ] }, "1.5.2": { "content": [ "• MAJOR: Fixed severe tile loading performance issue - eliminated expensive filesystem searches on every tile request", "• IMPROVED: Smart cache routing - only checks offline cache when actually needed, dramatically improving browsing speed", "• IMPROVED: Simplified tile loading architecture - replaced HTTP interception with clean TileProvider implementation", "• IMPROVED: Cross-platform tile performance optimizations - better retry timing, request deduplication, queue management", "• IMPROVED: Network status indicator now focuses only on surveillance data loading, not tile loading (tiles show their own progress)", "• IMPROVED: Node limit behavior - buttons now show helpful messages instead of being disabled, encouraging users to zoom in for safe editing", "• IMPROVED: Indicator positioning - network status and node limit indicators automatically move down when search bar is visible", "• IMPROVED: Reduced complexity in cache management and state tracking", "• FIXED: Max nodes setting now correctly limits rendering only (not data fetching) to prevent UI lag", "• FIXED: New node limit indicator shows when not all devices are displayed due to rendering limit", "• FIXED: Tile cache properly clears when switching between tile providers/types - no more mixed tiles", "• FIXED: Network status indicator no longer shows false timeouts during surveillance data splitting operations" ] }, "1.5.1": { "content": [ "• NEW: Bing satellite imagery - high-quality satellite tiles used by the iD editor, no API key required", "• IMPROVED: Enhanced tile provider system with quadkey format support (for Bing Maps and similar providers)", "• IMPROVED: Flexible subdomain patterns - supports both 0-3 and 1-4 subdomain ranges for load balancing", "• IMPROVED: Tile URL validation now accepts either {quadkey} or {x}/{y}/{z} coordinate systems" ] }, "1.5.0": { "content": [ "• NEW: First-submission guide popup - provides essential guidance and links before your first device submission", "• NEW: Manual access to dialogs in Settings > About - view welcome message and submission guide anytime" ] }, "1.4.6": { "content": [ "• IMPROVED: Tile fetching reliability - removed retry limits so visible tiles always load eventually", "• FIXED: Queue management - cancel requests for off-screen tiles, ongoing requests continue normally" ] }, "1.4.5": { "content": [ "• NEW: Minimum zoom level (Z15) enforced for adding and editing surveillance nodes to ensure precise positioning", "• NEW: Minimum zoom level (Z10) enforced for offline area downloads to prevent insanely large areas", "• IMPROVED: Offline area download confirmation now shows as popup with 'View Progress in Settings' button instead of snackbar" ] }, "1.4.4": { "content": [ "• FOV range notation parsing - now supports OSM data like '90-270' (180° FOV centered at 180°)", "• Complex range notation support: 'ESE;90-125;290' displays multiple FOV cones correctly", "• Profiles now support optional specific FOV values", "• Smart cone rendering - variable FOV widths, 360° cameras show full circles" ] }, "1.4.3": { "content": [ "• NEW: Proximity warning when placing nodes too close together - prevents accidental duplicate submissions" ] }, "1.4.2": { "content": [ "• NEW: Dedicated 'Upload Queue' page - queue items are now shown in a proper list view instead of a popup", "• NEW: 'OpenStreetMap Account' page for managing OSM login and account settings", "• NEW: 'View My Edits on OSM' button takes you directly to your edit history on OpenStreetMap" ] }, "1.4.1": { "content": [ "• NEW: 'Extract node from way/relation' option for constrained nodes (currently disabled while we decide what that means)" ] }, "1.4.0": { "content": [ "• IMPROVED: Advanced editing options now only show apps available on your platform (iOS/Android)", "• Supported editors: Vespucci (Android), StreetComplete (Android), EveryDoor (both), Go Map!! (iOS)", "• Web editors (iD, RapiD) remain available on all platforms as before" ] }, "1.3.4": { "content": [ "• NEW: 'Pause Upload Queue' toggle in Offline Settings - stops uploads while keeping live data access", "• Useful for metered connections or when you want to batch uploads later", "• FIXED: Sheets now resize when rotating between orientations" ] }, "1.3.3": { "content": [ "• UX: Edits re-enabled. Only nodes which are part of ways/relations cannot be moved", "• NEW: Added builtin surveillance device profiles for Rekor and Axis Communications ALPR cameras", "• NEW: Advanced editing options - access iD Editor, RapiD, Vespucci, StreetComplete, and other OSM editors", "• NEW: 'View on OSM' links to see nodes directly on OpenStreetMap website", "• UX: Auto-clickable URLs in all tag values - any URL becomes a tappable link", "• UX: Tag lists now scroll with max height to keep buttons and map visible" ] }, "1.3.2": { "content": [ "• HOTFIX: Temporarily disabled node editing to prevent OSM database issues while a bug is resolved", "• UX: Fixed Android navigation bar covering settings page content" ] }, "1.3.1": { "content": [ "• UX: Network status indicator always enabled", "• UX: Direction slider wider on small screens", "• UX: Fixed iOS keyboard missing 'Done' in settings", "• UX: Fixed multi-direction nodes in upload queue", "• UX: Improved suspected locations loading indicator; removed popup, fixed stuck spinner" ] }, "1.2.8": { "content": [ "• UX: Profile selection is now a required step to prevent accidental submission of default profile", "• NEW: Note in welcome message about not submitting data you cannot vouch for personally (no street view etc)", "• NEW: Added default operator profiles for the most common private operators nationwide (Lowe's, Home Depot, et al)", "• NEW: Support for cardinal directions in OSM data, multiple directions on a node" ] }, "1.2.7": { "content": [ "• NEW: Compass indicator shows map orientation; tap to spin north-up", "• Smart area caching: Loads 3x larger areas and refreshes data every 60 seconds for much faster browsing", "• Enhanced tile loading: Increased retry attempts with faster delays - tiles load much more reliably", "• Better network status: Simplified loading indicator logic", "• Instant node display: Surveillance devices now appear immediately when data finishes loading", "• Node limit alerts: Get notified when some nodes are not drawn" ] }, "1.2.4": { "content": [ "• New welcome popup for first-time users with essential privacy information", "• Automatic changelog display when app updates (like this one!)", "• Added Release Notes viewer in Settings > About", "• Enhanced user onboarding and transparency about data handling", "• Improved documentation for contributors" ] }, "1.2.3": { "content": [ "• Enhanced map performance and stability", "• Improved offline sync reliability", "• Added better error handling for uploads", "• Various bug fixes and improvements" ] }, "1.2.2": { "content": [ "• New surveillance device profiles added", "• Improved tile loading performance", "• Fixed issue with GPS accuracy", "• Updated translations" ] }, "1.2.0": { "content": [ "• Major UI improvements", "• Added proximity alerts", "• Enhanced offline capabilities", "• New suspected locations feature" ] } }