Skip to content

Latest commit

 

History

History
518 lines (411 loc) · 56.1 KB

File metadata and controls

518 lines (411 loc) · 56.1 KB

Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

8.0.0-rc.5 (2026-07-24)

Bug Fixes

  • deps: address 14 dependency vulnerabilities (audit 2026-07-24) (#1635) (18fd2a2)

8.0.0-rc.4 (2026-07-24)

Features

  • data: add countries v4 vector tile pipeline notebook (#1610) (a4836b4)
  • mobile: frontend rework — view tabs, bottom nav, location tools, legend & map chrome (GMW-1070) (#1627) (75a236a)
  • promote alerts widget + login out of feature flags, remove alerts-staging (#1619) (6ed8023)

Bug Fixes

  • correct user_role_other API key + revive signup role fields (#1622) (70fd090)
  • custom-area reset 400 + upload/save fixes (GMW-1067) (#1612) (c553f09)
  • deps: address 20 dependency vulnerabilities (#1616) (9a4bf39)
  • keep small widget values visible in number formatting (#1608) (191b89a)
  • net change y-axis double-converts km² to ha (GMW-1071) (#1626) (ee1a68d)
  • PATCH /users for profile update (current_user is GET-only, was 404) (#1624) (ba427f9)
  • persist free-text 'Other' role (user_other_role key) (#1620) (10a6cd0)
  • profile update goes direct to BE /users; align getToken cookie for /auth/me GET (#1625) (c87901c)
  • profile update persists (correct key + same-origin PATCH proxy) (#1621) (6991d40)
  • resolve Node engine version mismatch (GMW-1055) (#1617) (ae35fd7)
  • sync user profile updates with BE (current_user source of truth) (#1623) (9f737d0)
  • test: distinct testids for mobile Menu/Help triggers (GMW-1070) (#1628) (9663864)
  • use PATCH for user updates + stop logging password payloads (#1618) (faa4c84)

Performance Improvements

  • eager-load mobile header LCP image via priority (GMW-1075) (#1630) (e8d7076)

8.0.0-rc.3 (2026-07-16)

Features

  • add monitored area legend to alerts widget and map legends (#1593) (be9df22)
  • draw and analyse saved custom areas on map click (#1599) (b108b20)

Bug Fixes

  • add thousands separators to net change widget Y-axis (GMW-1054) (#1600) (8ea451c)
  • alerts widget axis labels and monitored areas outline (#1592) (46327c4)
  • correct species widget no-data behaviour (GMW-1062) (#1606) (666a8e7)
  • filter alerts map layer by widget date range (#1590) (7d9e506)
  • only require current password when changing password in account form (GMW-1046) (#1594) (713ac67)
  • order map-tip contextual layers on the map (GMW-1057) (#1603) (c5abe54)
  • prevent empty toast on dark-mode OS (GMW-1043) (#1607) (2273db6)

8.0.0-rc.2 (2026-07-09)

Features

  • user profile role field + required-field markers (GMW-1043) (#1583) (627b8d7)

Bug Fixes

  • allow selecting roles in profile dropdown inside dialog (GMW-1043) (#1586) (4ccc395)
  • preserve logo aspect ratio to silence next/image warning (#1585) (e3b9546)
  • role dropdown hidden behind menu dialog on profile (GMW-1043) (#1584) (d418539)
  • show widget list by default on mobile (#1582) (b9e5747)
  • unify mobile bottom-toolbar icons (#1580) (5cb5cd9)

8.0.0-rc.1 (2026-07-08)

Features

  • Transifex Live only + server-rendered snippet (#1578) (fdfad87)

Bug Fixes

  • log window.Transifex to debug Transifex Live init (be5ceb1)
  • popup and widget control accessibility amendments (#1575) (207b923)
  • popup docking behavior and widget accessibility improvements (#1577) (2f21464)

Performance Improvements

  • fix CLS from client-only layout switch (GMW) (#1579) (62c8314)

8.0.0-rc.0 (2026-07-06)

Bug Fixes

  • data-driven year range in extent & net-change info + dropdowns (GMW-1039) (e410f44)
  • fly map to worldwide on Reset page (GMW-1037) (eea5d64)

2.0.0 (2026-07-06)

Miscellaneous Chores

  • drop release-as bootstrap now that v2.0.0-rc.0 is cut (90741c1)

2.0.0-rc.0 (2026-07-06)

Features

  • accessibility improvements (ARIA, button names, touch targets) (f9517ee)
  • accessibility improvements (ARIA, button names, touch targets) (9995cc5)
  • add branded accessible 404 and 500 error pages (6a4c4d7)
  • add cross-app SSO between GMW and MRTT (e4310a2)
  • add cross-app SSO between GMW and MRTT (c346ef2)
  • add MRTT sites grouped by landscape to saved areas (9b73c73)
  • add MRTT sites grouped by landscape to saved areas (84a9f53)
  • add timeline slider with animated playback to habitat extent widget (b81b0aa)
  • add xs breakpoint and adapt location toolbar to card width (0a7ef63)
  • add year axis to net change brush track (8e45e76)
  • add year dropdown to habitat extent timeline sentence (a0ca47e)
  • add year dropdown to habitat extent timeline sentence (3010649)
  • align net change tooltip rows (label left, value right) (8f1953e)
  • analysis: migrate NetChange to GMW v4 unified classification IC (cc3a6c8)
  • analysis: migrate NetChange to GMW v4 unified classification ImageCollection (94191af)
  • App Router migration (5e78f1b)
  • compact per-source legend controls and source reordering (86e5bfc)
  • data: add notebook to export GMW v4 gain/loss map tiles (800071d)
  • data: add notebook to export GMW v4 gain/loss map tiles (0cd9248)
  • disable year dropdown selection while timeline is playing (5352c7c)
  • extract widgets-deck disclaimer banner and refine dialog close button (d6d3883)
  • gate extent layer source by timeline_slider flag (b5ac006)
  • gate extent layer source by timeline_slider flag (653c472)
  • gate habitat extent timeline slider behind feature flag (4754d4d)
  • implement gain-loss-v4 tilesets for net change layer (GMW-1035) (63d9a3f)
  • implement gain-loss-v4 tilesets for net change layer (GMW-1035) (6e83f99)
  • implement new net change design + shared chart tick/brush (GMW-845) (6c4c6d3)
  • implement new net change design, shared chart tick and brush (GMW-845) (671f3d3)
  • improve a11y on Slider and TimelineSlider (b32458b)
  • keep a brush tick per date, thin labels when they would crowd (29db393)
  • make timeline draggable and clickable across the full track (4cddf9c)
  • migrate HabitatExtent analysis to GMW v4 multiband raster (4f6e1ef)
  • migrate HabitatExtent analysis to GMW v4 multiband raster (6e52990)
  • mobile: 20px gap between location card and first widget (51b63ab)
  • mobile: align legend, map controls, sidebar buttons to xl breakpoint (dc2aa7e)
  • mobile: redesign legend with Collapsible (20c4b20)
  • mobile: redesign navigation bar with tooltips and shared News component (f11c7ae)
  • mobile: responsive dialog, widget collapse, nav bp alignment (5d2eaf1)
  • mobile: switch layout at xl breakpoint + redesigned nav bar (ad277da)
  • mobile: switch to xl (1280px) breakpoint, redesign nav and legend (022fbe0)
  • mobile: tweak widgets layout widths and padding (a7c8d54)
  • move desktop/mobile layout breakpoint from xl to lg (b830603)
  • redesign net change widget (gain/loss bars, brush, extent layer) (837cf40)
  • redesign net change widget with gain/loss bars, brush and extent layer (7d54f12)
  • remove brush x-axis line and add ticks (net change + alerts) (51032e6)
  • render net change brush year axis with ticks below the brush band (e55fb12)
  • replace inline print styles with dedicated print report page (9df2ea8)
  • replace inline print styles with dedicated print report page (d15d783)
  • replace TimelineSlider with Timeline component in habitat extent widget (9e05b8b)
  • show gain and loss in net change chart tooltip (534b2dd)
  • smooth client-side navigation with persistent map state (2ed6a1a)
  • smooth client-side navigation with persistent map state (3454903)
  • split legend controls for national dashboard (17ded6d)
  • switch mobile/desktop layout at xl breakpoint (1280px) (32f0de3)
  • sync net change brush with chart (0d52ca0)
  • timeline slider for habitat extent widget (f102b9a)

Bug Fixes

  • add DialogTitle to saved-areas dialog for a11y (6d0cbc4)
  • add gap between brush ticks and axis labels (098c5f8)
  • add top fade overlay to planet date select popup (733b98f)
  • add vertical spacing between net change sentence, map tip banner and chart (1a358a0)
  • align basemap settings spacing, cursor styles, and hydration (cfbbeb4)
  • align national dashboard per-source controls with parent legend (67551db)
  • align net-change brush and even out timeline labels (2931866)
  • align net-change brush and even out timeline labels (e34953a)
  • align Playwright specs with a11y switch role and category UI (8e4b264)
  • analysis: restore zero anchor row for 1985 base year (34b70a8)
  • anchor net change gain/loss bars at zero (f39e2fe)
  • auto-reload GMW after silent SSO restore (14a684c)
  • auto-reload GMW after silent SSO restore so the page reflects the new session (3a049f3)
  • break datasets barrel circular imports causing Turbopack SSR 500 (6d181a7)
  • build SSO authorize redirects from public origin, not Heroku dyno host (7b1fae2)
  • bump Node to 22.20.0 so CI installs rolldown native binding (b5d1faf)
  • call /users/current_user on backend, not /users/me (b70c66c)
  • cap planet date select popup height and make it scrollable (9e9b1fd)
  • cap planet date select popup height and make it scrollable (6b84d5f)
  • center brush axis labels under their ticks (8965147)
  • ci: unblock Playwright build by guarding NEXT_PUBLIC_FEATURED_FLAGS parse (c7de92e)
  • clip overflowing widget content inside legend statistics dialog (b057045)
  • close controlled dialogs on outside click (f327196)
  • correct MapMarker image aspect ratio to match natural dimensions (3566888)
  • deploy analysis-production from main + replace dead credentials action (255d0fd)
  • deploy analysis-production from main and replace dead credentials action (5177458)
  • deps: address 13 dependency vulnerabilities (1977d3c)
  • deps: address dependency vulnerabilities (undici, form-data) (ec1c3b4)
  • deps: bump alerts-tiler mocha>serialize-javascript override to 7.0.5 to fix CPU exhaustion DoS (GHSA-qj8w-gfj5-8c6v) (b8cbc77)
  • deps: bump alerts-tiler mocha>serialize-javascript override to 7.0.5 to fix CPU exhaustion DoS (GHSA-qj8w-gfj5-8c6v) (1bb5938)
  • deps: override @tootallnate/once to 3.0.1 in cloud functions (GHSA-vpq2-c234-7xj6) (3870f31)
  • deps: override axios>follow-redirects to 1.16.0 to fix custom auth header leak on cross-domain redirects (GHSA-r4q5-vmmm-2653) (8c07ae8)
  • deps: override axios>follow-redirects to 1.16.0 to fix custom auth header leak on cross-domain redirects (GHSA-r4q5-vmmm-2653) (38c05f6)
  • deps: override flatted to 3.4.1 to fix unbounded recursion DoS in parse() (GHSA-25h7-pfq9-p65f) (bb1f62c)
  • deps: override lint-staged>yaml to 2.8.3 to fix stack overflow via deeply nested YAML collections (GHSA-48c2-rrv3-qjmp) (3d699e5)
  • deps: override lint-staged>yaml to 2.8.3 to fix stack overflow via deeply nested YAML collections (GHSA-48c2-rrv3-qjmp) (52fb5e6)
  • deps: override minimatch>brace-expansion to fix zero-step sequence DoS (GHSA-f886-m6hf-6m8v) (0262da1)
  • deps: override minimatch>brace-expansion to fix zero-step sequence DoS (GHSA-f886-m6hf-6m8v) (592414e)
  • deps: override picomatch transitive deps to fix extglob ReDoS and POSIX class method injection (GHSA-c2c7-rcm5-vvqj, GHSA-3v7f-55p6-f55p) (d67f93b)
  • deps: override picomatch transitive deps to fix extglob ReDoS and POSIX class method injection (GHSA-c2c7-rcm5-vvqj, GHSA-3v7f-55p6-f55p) (8b5a76a)
  • deps: override recharts>lodash to 4.18.1 to fix _.template code injection and .unset/.omit prototype pollution (GHSA-r5fr-rjxr-66jc, GHSA-f23m-r3pf-42rh) (024f780)
  • deps: override recharts>lodash to 4.18.1 to fix _.template code injection and .unset/.omit prototype pollution (GHSA-r5fr-rjxr-66jc, GHSA-f23m-r3pf-42rh) (eb777d0)
  • deps: override serialize-javascript to 7.0.4 in alerts-tiler to fix RCE (GHSA-5c6j-r48x-rmvq) (919c1c3)
  • deps: override webpack to 5.104.1 to fix buildHttp SSRF bypasses (GHSA-8fgc-7cc6-rx7x, GHSA-38r7-794h-5758) (c9a8c7c)
  • deps: patch brace-expansion DoS via scoped pnpm override (6572b26)
  • deps: patch form-data CRLF injection in fetch-alerts (GHSA-hmw2-7cc7-3qxx) (e5ab53f)
  • deps: pin @eslint/eslintrc>js-yaml to 4.2.0 to fix quadratic-complexity DoS in merge key handling (GHSA-h67p-54hq-rp68) (12db334)
  • deps: pin axios>form-data to 4.0.6 to fix CRLF injection via unescaped multipart field names (GHSA-hmw2-7cc7-3qxx) (92aa1aa)
  • deps: pin brace-expansion to 5.0.6 under minimatch@^10 to fix DoS (GHSA-jxxr-4gwj-5jf2) (698201f)
  • deps: pin eslint-plugin-react-hooks>@babel/core to 7.29.6 to fix arbitrary file read via sourceMappingURL comment (GHSA-4x5r-pxfx-6jf8) (9b5d8a1)
  • deps: pin next-auth>uuid to 11.1.1 (GHSA-w5hq-g745-h8pq) (ef9a8ae)
  • deps: pin next-auth>uuid to 11.1.1 to fix buffer bounds check (GHSA-w5hq-g745-h8pq) (f1cfcd6)
  • deps: pin next>postcss override to exact version (a28cbc7)
  • deps: pin next>postcss override to exact version (521a182)
  • deps: prune redundant pnpm overrides (e49aa97)
  • deps: remove braces blanket override (a3eb674)
  • deps: remove lint-staged>yaml override (851574e)
  • deps: remove micromatch>picomatch override (67acb29)
  • deps: remove minimatch>brace-expansion overrides (a7ad7cb)
  • deps: remove recharts>lodash override (2f3155d)
  • deps: remove tinyglobby>picomatch override (8937003)
  • deps: upgrade axios to 1.15.0 in alerts-tiler to fix NO_PROXY SSRF bypass and cloud metadata exfiltration (GHSA-3p68-rc4w-qgx5, GHSA-fvcv-3m26-pcqx) (f09bfee)
  • deps: upgrade axios to 1.15.0 in alerts-tiler to fix NO_PROXY SSRF bypass and cloud metadata exfiltration (GHSA-3p68-rc4w-qgx5, GHSA-fvcv-3m26-pcqx) (fb9a693)
  • deps: upgrade axios to 1.15.0 in fetch-alerts to fix NO_PROXY SSRF bypass and cloud metadata exfiltration (GHSA-3p68-rc4w-qgx5, GHSA-fvcv-3m26-pcqx) (f0b814c)
  • deps: upgrade axios to 1.15.0 in fetch-alerts to fix NO_PROXY SSRF bypass and cloud metadata exfiltration (GHSA-3p68-rc4w-qgx5, GHSA-fvcv-3m26-pcqx) (2100c9d)
  • deps: upgrade axios to 1.15.0 in fetch-alerts-heatmap to fix NO_PROXY SSRF bypass and cloud metadata exfiltration (GHSA-3p68-rc4w-qgx5, GHSA-fvcv-3m26-pcqx) (ab34001)
  • deps: upgrade axios to 1.15.0 in fetch-alerts-heatmap to fix NO_PROXY SSRF bypass and cloud metadata exfiltration (GHSA-3p68-rc4w-qgx5, GHSA-fvcv-3m26-pcqx) (982c9a8)
  • deps: upgrade axios to 1.15.0 to fix NO_PROXY SSRF bypass and cloud metadata exfiltration (GHSA-3p68-rc4w-qgx5, GHSA-fvcv-3m26-pcqx) (5e49ee9)
  • deps: upgrade axios to 1.15.0 to fix NO_PROXY SSRF bypass and cloud metadata exfiltration (GHSA-3p68-rc4w-qgx5, GHSA-fvcv-3m26-pcqx) (f3c974a)
  • deps: upgrade dompurify to 3.4.9 to fix mXSS/XSS sanitizer bypasses (GHSA-76mc-f452-cxcm, GHSA-hpcv-96wg-7vj8, GHSA-r47g-fvhr-h676, GHSA-rp9w-3fw7-7cwq) (6014d8a)
  • deps: upgrade flatted and minimatch in analysis cloud function (GHSA-25h7, GHSA-7r86, GHSA-23c5) (322f3c5)
  • deps: upgrade next to 16.1.7 to fix CSRF bypass, HTTP request smuggling, image cache DoS, postponed resume DoS, and HMR websocket CSRF (GHSA-mq59, GHSA-ggv3, GHSA-3x4c, GHSA-h27x, GHSA-jcc7) (23871d6)
  • deps: upgrade next to 16.2.3 to fix Server Components DoS (GHSA-q4gf-8mx6-v5v3) (0400170)
  • deps: upgrade next to 16.2.3 to fix Server Components DoS (GHSA-q4gf-8mx6-v5v3) (c0d638b)
  • deps: upgrade node-forge to 1.4.0 in upload-alerts to fix certificate chain bypass, Ed25519/RSA-PKCS signature forgery, and BigInteger.modInverse DoS (GHSA-2328-f5f3-gj25, GHSA-q67f-28xg-22rw, GHSA-5m6q-g25r-mvwx, GHSA-ppp5-5v6c-4jwp) (efef751)
  • deps: upgrade node-forge to 1.4.0 in upload-alerts to fix certificate chain bypass, Ed25519/RSA-PKCS signature forgery, and BigInteger.modInverse DoS (GHSA-2328-f5f3-gj25, GHSA-q67f-28xg-22rw, GHSA-5m6q-g25r-mvwx, GHSA-ppp5-5v6c-4jwp) (695812b)
  • deps: upgrade nodemailer to 8.0.5 to fix SMTP command injection via CRLF in Transport name option (GHSA-vvjj-xcjg-gr5g) (c8aba58)
  • deps: upgrade nodemailer to 8.0.5 to fix SMTP command injection via CRLF in Transport name option (GHSA-vvjj-xcjg-gr5g) (3326b11)
  • deps: upgrade nodemailer to 8.0.9 to fix CRLF header injection via List-* comment fields (GHSA-268h-hp4c-crq3, GHSA-wqvq-jvpq-h66f, GHSA-r7g4-qg5f-qqm2) (aacdf27)
  • deps: upgrade tqdm to 4.66.3 to fix CLI arguments injection (CVE-2024-34062) (f82dfb3)
  • deps: upgrade transitive deps in alerts-tiler to clear non-breaking advisories (02208c6)
  • deps: upgrade transitive deps in alerts-tiler to clear non-breaking advisories (3f36332)
  • deps: upgrade transitive deps in analysis to clear high/moderate advisories (78fe739)
  • deps: upgrade transitive deps in analysis to clear high/moderate advisories (ed85d24)
  • deps: upgrade transitive deps in fetch-alerts to clear remaining advisories (5d27e14)
  • deps: upgrade transitive deps in fetch-alerts to clear remaining advisories (69b0f1c)
  • deps: upgrade transitive deps in fetch-alerts-heatmap to clear remaining advisories (132a8aa)
  • deps: upgrade transitive deps in fetch-alerts-heatmap to clear remaining advisories (63e23c1)
  • deps: upgrade undici to 7.28.0 to fix 7 advisories via jsdom (GHSA-vmh5-mc38-953g, GHSA-vxpw-j846-p89q, GHSA-hm92-r4w5-c3mj) (10083c5)
  • develop pre-releases track next version as rc (3f6a252)
  • develop pre-releases track next version as rc (11845d1)
  • dialog: close button outside card on desktop, restore outside-click close (a8af942)
  • dialog: edge fade indicators and welcome modal close placement (3c5bf1b)
  • drop invalid className prop on PopoverPortal (0dba3c8)
  • drop redundant DialogClose positioning override in legend item (2f499f4)
  • extend net change brush handles down to just above the axis (f9ac9d7)
  • fall back to next-auth session in silent SSO + clear next-auth cookies on logout (401c398)
  • give net change brush left/right margin so edge handles aren't clipped (016a0f5)
  • guard flyTo callers against uninitialized react-map-gl refs (fc9bc9a)
  • guard flyTo callers against uninitialized react-map-gl refs (7032ad8)
  • guard JSON.parse against undefined NEXT_PUBLIC_FEATURED_FLAGS (280a175)
  • guard JSON.parse against undefined NEXT_PUBLIC_FEATURED_FLAGS (ae13e1a)
  • habitat-extent: use per-year tileset for map layer (f1c3814)
  • harden cross-domain SSO between GMW and MRTT in production (c9e5027)
  • harden cross-domain SSO restore and CORS pathways (6549161)
  • hide scroll fade in welcome dialog (c0757e4)
  • hydration: wrap useLocalStorage to prevent React #418 in prod (f20025f)
  • indent national dashboard widget legend (5ecd0c4)
  • inset net change brush bars above the axis with padded y-domain (8ccbb43)
  • install rolldown native bindings for all CI platforms (75c0efb)
  • keep net change brush pattern above the axis ticks (b52d505)
  • legend: render only one legend at xl breakpoint (22e58e7)
  • map scroll zoom (7ccc07b)
  • national dashboard multi-source rendering (GMW-1020) (6c3ccd9)
  • parse opacity string to number for Slider defaultValue (0d98805)
  • patch axios and tmp vulnerabilities in cloud-functions (419cdbd)
  • patch axios and tmp vulnerabilities in cloud-functions (ec88cfd)
  • patch moderate audit vulnerabilities (ecee890)
  • patch moderate audit vulnerabilities (2032879)
  • pin API URLs in .env.test and guard useLocation destructuring (89f6bc4)
  • pin API URLs in .env.test and guard useLocation destructuring (fec4227)
  • pin tmp to ^0.2.7 in analysis cloud function (f38829c)
  • pin tmp to ^0.2.7 in analysis cloud function (security) (d71a1a9)
  • planet-date-select dropdown empty when mosaics response shape varies (2063921)
  • preserve bounds across location nav and write them after fly (fd78305)
  • prevent fisheries sub-widget data loss on layer toggle (4580d5f)
  • prevent map jump-back when switching locations (36fbc8e)
  • prevent mobile logo from overlapping map legend (f6bc814)
  • prevent restoration-sites filter dropdown from being clipped (53ecc6f)
  • prevent restoration-sites filter dropdown from being clipped (4e58ce6)
  • prevent WDPA 404 by neutralizing useLocation placeholder (a9bf4ef)
  • prevent WDPA 404 from useLocation placeholder (4ed1ea9)
  • print report map layers, controls, and disabled state (9213326)
  • purge stale national dashboard layers on location change (6baee59)
  • register import and react eslint plugins for flat config (6e6b45a)
  • remount habitat-extent prod layers on year change (9cee382)
  • remount habitat-extent prod layers on year change (20b8bda)
  • remove duplicated monitored areas text from alerts widget (d7cf906)
  • remove duplicated monitored areas text from alerts widget (e2fe672)
  • remove stale Recoil turbopack aliases from next.config.js (a44a4f4)
  • remove styled-jsx dependency causing build failures (509b22f)
  • remove styled-jsx dependency causing build failures (0abc974)
  • render national dashboard sources independently (b74a9bb)
  • render net change bars flush with no gap (5d296dc)
  • render visible brush track for net change widget (f367c3c)
  • replace <p> with <div> in chart tooltips to fix hydration error (51ee678)
  • replace national dashboard palette color clashing with extent (fc0641f)
  • replace nested button in categories menu with visual indicator (71be130)
  • resolve all ESLint errors across codebase (3328860)
  • resolve browser console warnings (f484754)
  • resolve build break after next@16.2.3 tsconfig auto-migration (db7f904)
  • resolve build break after next@16.2.3 tsconfig auto-migration (41651ab)
  • resolve Playwright test failures from app-router migration (5148770)
  • resolve runtime React/HTML warnings (145139a)
  • restore keyboard and outside-click handling on dialogs (c1d021f)
  • restore location modal click and clean dashboard layout (8c6ea67)
  • restore location modal click and clean dashboard layout (efa1907)
  • restore mobile layout and widgets scroll (63cdf8b)
  • restore mobile layout and widgets scroll (fedf4ad)
  • restore widgets deck and print button style polish (5247907)
  • show all brush tick marks with an even subset of labels (e46f4f7)
  • shrink date select fade and viewport padding (feead6d)
  • snap timeline marker instantly while dragging (62905e8)
  • split zoom controls into per-button tooltips (2229881)
  • SSO authorize uses public origin instead of Heroku dyno host (f761804)
  • SSO calls /users/current_user, not /users/me (root cause of broken cross-app SSO) (9bada5f)
  • SSO session fallback + cross-cookie logout cleanup (d890caf)
  • stabilize drawing-tool and logo-desktop Playwright flakes (31961fd)
  • stabilize drawing-tool and logo-desktop Playwright flakes (e1d747c)
  • stack net change gain/loss bars per year via stackId (be02817)
  • suppress Radix Dialog a11y warnings and fix nested button (6502e7b)
  • tests: add Firefox support, rewrite CI workflow, fix Radix click issues (81f6958)
  • tests: add missing data-testid attributes to source components (493e276)
  • tests: assert visibility instead of no-op in legend test (cfe0f4a)
  • tests: complete Playwright test suite overhaul — 54/55 pass (736db6a)
  • tests: dismiss welcome dialog via global setup (8b74591)
  • tests: fix broken images, legend, and layer legend test IDs (c67d204)
  • tests: fix drawing-tool, categories, interactivity, and navigation tests (8e0351f)
  • use sign stack offset so net change gain/loss bars diverge (321fb18)
  • use standalone server and disable WebGL for stable CI tests (9374fdd)
  • use standalone server and disable WebGL for stable CI tests (2ab764f)
  • widen brush side margins so edge labels are not clipped (4d3c9ea)
  • widgets: scope selector to custom area, force custom category on toggle-all (514d6ff)
  • widgets: show active widgets regardless of selected category (ecdc153)

Performance Improvements

  • adaptive scale and single reduceRegion in cloud analysis calculations (2889b18)
  • analysis: reduce GEE timeout risk in HabitatExtent and NetChange (35bbdbe)
  • replace List.iterate() with toBands() in cloud analysis calculations (84f74af)
  • replace per-image reduceRegion with multi-band stacking in cloud analysis (3da5d24)
  • stabilize height chart memos and reuse sorted fisheries list (e403a1c)

Reverts

  • drop suppressHydrationWarning on <html> (e73a9a6)
  • undo widgets container split into separate component files (3e6caf4)

v0.1.0

Unreleased

Added

  • New animated widget to have access to widgets deck

Changed

  • New params to URL. Layer and widget id stored in URL independently
  • Custom language selector
  • New (fixed) navigation bar for app tool
  • Restyle of the whole interface
  • Widgets deck added
  • Planet layers separate from the rest of contextual layers
  • New legend with functionality for layers
  • Edit function for custom areas removed
  • New cursor to map for interactive layers
  • "Select data" changed to "widgets deck"

Fixed

Removed

  • Print report
  • Highlighted places

Released 25/09/2023

Added

  • Blog post tags

Changed

  • Access to Blog (news) moved from main menu to sidebar
  • Access to different tools simplified (menu, language, blog and user guide)

Fixed

  • Blurry images in blog section

Removed

  • Link to subsections in Global Mangrove Alliance

Released 23/08/2023

Added

  • Blog content and images

test

- Expand / collapse widgets interactivity
- Menu categories interactivity
- Drawing tool flow

Changed

  • Gobal Tidal Wetland Change layer
  • Categories added to url with router instead of recoil
  • Google Analytics tag
  • Max Zoom level in planet Imagery contextual layers
  • Blog post modal height

Fixed

  • IUCN ecosystem_assessment tooltip position
  • Duplicated layers for extent and restoration

Removed

Released 26/07/2023

Added

  • React query
  • Radix UI
  • Playwright for testing
  • Tests
  • Species by country widget
  • Species distribution widget
  • Protection layer
  • Potential benefit to fisheries widget (restoration)
  • Driver of change widget
  • New language selector
  • Restoration sites widget and filters
  • National Dashboard widget
  • Mangrove fisheries widget
  • Contextual layers
    • selector
    • Allen coral atlas
    • Global tidal wetland change
    • Tidal flats
  • Flood protection widget
  • Data application guide added to widgets
  • Blog - Communications section
  • User guide

Changed

  • Migration from create react app to Next 13
  • Migration to TS
  • Migration fom styled components to Tailwind
  • Migration from redux to Recoil
  • Protection widget
  • Restoration sites layer
  • Satellite basemap selector
  • Mangrove alerts
    • Alerts frequency layer improvement
    • New chart added
    • New layer for locations monitored added

Fixed

  • Bug in biomass widget
  • Bug in alerts layer
  • Bug in info links for some widgets

Removed

  • Sagas
  • Storybook