Features
- feat: add recents & other tabs in dashboard list (@nextchamp-saqib)
- feat: remove workbook folders (#1198) (@nextchamp-saqib)
- feat: workbook template mechanism + gallery UI (Day 2, PR 1) (@nextchamp-saqib)
- feat: ERPNext demo-data generator (Day 1) (@nextchamp-saqib)
- feat: ERPNext workbook templates (Sales, Purchasing, Accounting, Stock) (@nextchamp-saqib)
- feat: shared-copy workbook-template import (admin-only, org-shared) (@nextchamp-saqib)
- feat: sync template dashboards to manual layout + real previews (@nextchamp-saqib)
- feat: workbook templates as a cross-app hook contract (@nextchamp-saqib)
- feat: workbook template updates via version + checksum (#1228) (@nextchamp-saqib)
- feat(telemetry): track library workbook adoption (@nextchamp-saqib)
- feat: nudge insights admins to prebuilt module dashboards (@nextchamp-saqib)
Bug Fixes
- fix: prevent empty state flash (@nextchamp-saqib)
- fix: tie sparkline toggle to date column instead of comparison (#1186) (@AdnanQuazi)
- fix: validate_expression endpoint (#1187) (@nextchamp-saqib)
- fix: sync filterState with default filter config on save (@AdnanQuazi)
- fix: parse and searlize date range picker value (@AdnanQuazi)
- fix: allow clear button to propagate undefined values (@AdnanQuazi)
- fix: validate_expression endpoint (#1187) (#1189) (@mergify[bot])
- fix: avoid frappe.get_single_value (#1199) (@nextchamp-saqib)
- fix: avoid frappe.get_single_value (#1199) (#1200) (@mergify[bot])
- fix: resolve incorrect drill-down data on sorted date charts (#1202) (@AdnanQuazi)
- fix: resolve incorrect drill-down data on sorted date charts (#1202) (#1203) (@mergify[bot])
- fix: sync filterState with default filter config on save (@AdnanQuazi)
- fix: parse and searlize date range picker value (@AdnanQuazi)
- fix: allow clear button to propagate undefined values (@AdnanQuazi)
- fix: use heart icon for dashboard favorites (#1207) (@Neeraaaj)
- fix: enforce per-role export permission on query download (#1212) (@manish31-oss)
- fix: enforce per-role export permission on query download (#1212) (#1215) (@mergify[bot])
- fix: german translation for 'Host' (#1217) (@ews-pgasser)
- fix: keep POT updates in a single self-updating PR (#1219) (@nextchamp-saqib)
- fix: commit template import inside the lock (@nextchamp-saqib)
- fix: don't import apps faked into the installed-apps set (@nextchamp-saqib)
- fix: bypass share-permission check on the org-shared copy (@nextchamp-saqib)
- fix: fill list height so the empty state centers (@nextchamp-saqib)
- fix: get_list dashboards and queries (#1224) (@nextchamp-saqib)
- fix: clarify Allow Data Download interacts with per-role export permission (#1216) (@nextchamp-saqib)
- fix: make workbook folder drag-and-drop work on touch devices (@nextchamp-saqib)
- fix: avoid double write when dragging item between folders (@nextchamp-saqib)
- fix(telemetry): use boot_config + direct pulse client (@nextchamp-saqib)
- fix: generate dashboard preview when created already populated (@nextchamp-saqib)
- fix: supersede pending banner retry on re-entry (@nextchamp-saqib)
- fix(src2): funnel chart drill-down (#1233) (@nextchamp-saqib)