worldwatcher.app
← Dam Incidents
Changelog
All notable changes to worldwatcher.app are documented here. The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
Version 0.6.4 · 2026-08-27
Fixed
- Country filter zooms to that country’s pins and stays there (home view no longer snaps back to the world)
Version 0.6.3 · 2026-08-27
Changed
- Map and Auto no longer use Carto tiles (those now watermark “API key required”)
- Dark and light basemaps are Esri canvas, same as Aerial’s Esri tiles
Version 0.6.2 · 2026-08-27
Added
- Cause tab links to the related flood when a dam row has related_flood_id
Version 0.6.1 · 2026-08-27
Changed
- Notes and change-log time tags are Zulu (13:43:00Z)
- Notes keep a UTC date next to the clock (2026-08-27 13:43:00Z)
- Change log at is the Zulu clock; date stays the UTC calendar day
Version 0.6.0 · 2026-08-27
Added
- Data tab on the incident detail panel
- Record and Change log now live on the Data tab
Changed
- Desktop detail panel widened from 400px to 520px so the extra tab fits
- Sources tab is now sources only
- Contact and Report a correction panels stay matched to the detail panel width (520px)
Version 0.5.5 · 2026-08-27
Changed
- Event tab: What happened and Status render as paragraphs
- Notes render as a timestamped list (time and zone, newest first)
- Change log shows time and zone, not date only
Version 0.5.4 · 2026-08-25
Changed
- Reporter name is required on the Report a correction form
- Empty or whitespace-only names are rejected in the browser and on the server
- Email remains optional; Contact form name stays optional
Version 0.5.3 · 2026-08-23
Changed
- Contact and Report a correction panels now centered in viewport on desktop (centered vertically and horizontally)
- Panels remain bottom-hugging on mobile with compact rounded corners
Version 0.5.2 · 2026-08-23
Fixed
- Contact and Report a correction forms: honeypot spam-trap fields renamed to avoid browser autofill interference
- Browser password managers no longer auto-fill honeypot fields (was silently blocking legitimate submissions)
- Honeypot fields now use non-semantic names (hp_leave_blank, hp_field_blank) with autocomplete="off"
- Contact and Report a correction panels now same width as incident detail panel (400px on desktop, matching layout)
Security
- Honeypot anti-spam protection remains active with improved field names that avoid triggering autofill
Version 0.5.1 · 2026-08-23
Fixed
- Report a correction and Contact panels: Send buttons now sit directly under the last field with normal gap
- Panels no longer stretch to full viewport height; they hug the form content instead
- Fixed empty space appearing above Send buttons on tall viewports
- On mobile, panels scroll if needed but buttons follow fields naturally rather than gluing to screen bottom
Added
- Optional Name and Email fields added to Report a correction form
- When name or email provided in correction reports, they appear in the GitHub issue (**Name:** and **Email:** lines)
Version 0.5.0 · 2026-08-23
Added
- Contact form: visitors can now send feedback, questions, or suggestions without signing into GitHub
- Contact link in footer navigation (Standards · Terms · Privacy · Contact)
- Contact messages create GitHub issues labeled 'contact' for review
- Real per-IP rate limiting (5 requests per 10 minutes) on both contact and correction forms
- Honeypot spam protection on both contact and correction forms
Changed
- Privacy policy updated to mention contact form does not require GitHub account
Security
- Hardened correction and contact APIs with per-IP rate limiting
- Added invisible honeypot fields to prevent automated spam
- Enhanced origin validation to require browser-like requests
Version 0.4.1 · 2026-08-23
Changed
- Correction form success message updated to professional visitor-facing tone
Version 0.4.0 · 2026-08-23
Added
- No-login correction reporting: visitors can now send correction reports without signing into GitHub
- Serverless API endpoint handles GitHub issue creation on behalf of visitors
- Same-origin form submission for correction reports with rate limiting and spam protection
Changed
- Form inputs now show accent-colored border on focus instead of cream outline halo
- Input, textarea, and select focus styling changed to border-color transition for better visibility
Fixed
- Privacy policy updated to clarify that GitHub account is not needed to submit corrections
Version 0.3.1 · 2026-08-23
Fixed
- Main left panel filter order corrected: country navigator now appears before Years section
- Layout order is now: country navigator (< select > Reset) → Years row (from, to, slider inline) → period chips + Large dams
Version 0.3.0 · 2026-08-23
Added
- Main left panel country filter with navigation arrows (< select > Reset)
- Filters both incident list and map pins
- Selecting a country automatically zooms/fits the map to that country's visible incidents
- Main country filter is independent of Dashboard country filter
- Country filter hidden on Floods layer
Changed
- Main panel year controls now on single compact row: from year, to year, and slider all inline
- Year input fields narrowed to 70px each to fit slider on same row
- Layout order: year row → country navigator → period chips + Large dams
Version 0.2.6 · 2026-08-23
Fixed
- Dark theme now persists correctly after page refresh
- theme.js now removes data-theme attribute when dark mode is selected instead of doing nothing
- app.js now applies stored theme preference on initialization before first paint
- Fixed FOUC (flash of unstyled content) where dark mode would briefly show light panels on refresh
Version 0.2.5 · 2026-08-23
Fixed
- Year chips and Large dams filter now work independently as intended
- Clicking a year chip (All, This year, Last year, 5y, 10y, post-2000, post-1900, post-1800) no longer clears Large dams state
- Toggling Large dams no longer affects selected year period or year slider
- Period chip click handlers now only bind to [data-period] buttons, excluding Large dams chip
- Fixed setPeriod() and syncPeriodFromYears() to only update period chips, not Large dams
- Dashboard year chips also fixed to work independently of Large dams filter
Version 0.2.4 · 2026-08-23
Fixed
- Large dams chip now uses the same on/off styling as year chips (transparent with border when off, accent fill when on)
- Removed grey background styling from Large dams chip so it matches year chip appearance in both main panel and Settings
- Removed leading gap before "Large dams" text caused by empty ::before pseudo-element (category chip dot)
- Both Large dams chips (main panel and Settings) now have identical appearance matching year chips in both light and dark themes
Version 0.2.3 · 2026-08-23
Fixed
- Dashboard countries chip now rectangular (4px radius) instead of pill-shaped, and right-aligned in year period row
- Large dams chip moved to end of main left panel period chips row (after post-1800), with vertical divider before it
Version 0.2.2 · 2026-08-23
Fixed
- Country count chip now appears as last item in Dashboard year period row (after post-1800), not on separate row
- All chips tightened: padding reduced from 5px 8px to 5px 7px so text fills chip with no excess empty space
- Country count chip styled as compact rectangular chip matching period chip family
Version 0.2.1 · 2026-08-23
Fixed
- Dashboard country navigator now spans full width with proper alignment: < select > Reset
- Country count chip moved after year period chips, displayed as rectangular labeled button
- Large dams filter chip moved from Dashboard to main left panel, placed after year chips with divider
- Large dams chip in main panel and Settings stay synced
Version 0.2.0 · 2026-08-23
Changed
- Dashboard country row: improved alignment with all elements in one horizontal row, vertically centered
- Country count moved after Reset button and displayed as a labeled button (e.g., "134 countries")
- Reset button now always visible, including when "All countries" is selected
- New country row layout: < select > | Reset | [N countries]
- Large dams filter chip added to Dashboard panel, placed after year chips with a divider
- Large dams chip in Dashboard has soft grey background for visual separation from year period chips
- Both Large dams chips (Dashboard and Settings) stay in sync and control the same filter
Version 0.1.8 · 2026-08-23
Changed
- Dashboard year controls now on single compact row: from year, to year, and slider all inline
- Year input fields narrowed to 70px each to fit slider on same row
- Dashboard country row now displays count, narrower select, navigation arrows, and reset button all on one line
- Country select field narrowed to 120-180px to accommodate all controls on a single row
- Added reset button to quickly return to "All countries" view
- Reset button is hidden when already viewing all countries
Version 0.1.7 · 2026-08-23
Changed
- Dashboard country count now displayed beside country navigator instead of as overview tile
- Dashboard overview streamlined to 3 tiles: Incidents, Deaths, Years Span
- Removed duplicate incident count from dashboard (kept overview tile, removed separate count line)
- Timeline chart now shows visible hover tooltips with year and incident count (replaces browser-native SVG title)
Version 0.1.6 · 2026-08-23
Added
- Complete changelog page at /changelog.html with full version history from 0.1.0 onward
- Link to full changelog from Settings panel
- Hover tooltips on dashboard timeline chart showing year and incident count
Changed
- Settings panel now shows compact recent version notes with link to full history
Version 0.1.5 · 2026-08-23
Changed
- Dashboard country filter moved below year scroller in dashboard controls
- Dashboard headline stats now respect selected country filter
- Country stat shows "1 Country" when a country is selected
- Added prev/next country navigation arrows to dashboard country filter
Version 0.1.4 · 2026-08-23
Changed
- Adaptive select zoom: map now zooms to appropriate level based on dam size when clicking an incident
- Large dams (height ≥30m or large reservoir capacity) zoom to 14-15 to show both structure and reservoir
- Medium dams (height 10-30m) zoom to 16
- Small structures (weirs, sluices, small irrigation tanks) zoom to 17-18 for better structure visibility
- Replaces previous fixed zoom level of 19 which was too close for large reservoirs
Version 0.1.3 · 2026-08-23
Fixed
- Map now enforces maxZoom of 19 to ensure incident selection reaches true object-scale aerial view
- Selected pin overlay shrinks at high zoom (z17+) to avoid covering small structures like tanks
Version 0.1.2 · 2026-08-23
Changed
- Select zoom now goes to max zoom (object scale) so the dam/tank is clearly visible on aerial imagery
Version 0.1.1 · 2026-08-23
Fixed
- Pin selection no longer duplicates dam name labels on the map
Changed
- Tighter map zoom (13 → 15) when selecting an incident from the list or clicking a pin
Version 0.1.0 · 2026-08-22
Added
- Interactive map of dam incidents and floods worldwide
- 2,184 documented dam failures, breaches, incidents, and watches (1864-2026)
- 370 major flood events with severity tracking
- Dashboard with statistics and timeline analysis
- Settings panel with Large dams filter
- Google Search indexing: robots.txt, sitemap.xml with 2,559 URLs
- Query parameter URLs for SEO-friendly incident links
- Standards, Terms, and Privacy pages
- Theme toggle (light/dark mode)
- Pin labels at high zoom levels
- Correction reporting via GitHub issues
© 2026 worldwatcher.app