Skip to content

v0.4.1

Choose a tag to compare

@github-actions github-actions released this 27 Sep 22:10
· 10 commits to 2ea9cdea617d45ddbfb53800dd756008b6c360fd since this release

Release: v0.4.1

Release Date: 2026-09-26

⚠️ Breaking Changes:

  • E2E Dashboards only use CDRs whose NR Mode matches the Dashboard's NR Mode. Existing CDRs receive an NR Mode proposed from their file name (SA only when the name says SA/Standalone, otherwise NSA); review SA CDRs in the Workspace Datasets table, or SA Dashboards may show Data needed.

🌟 New Features:

  • CDR datasets have an NR Mode (NSA or SA). Uploads propose it from each file name and offer a per-file selector before processing starts, the Workspace Datasets table shows an editable NR Mode column after Input Type, and changes are logged. The value lives in dataset_profiles, so it is included in workspace exports, transfers, backups and restores.

🚀 Enhancements:

  • Distribution charts with explicit range buckets (for example Buckets = 1,5,20) now stack and list <1, 1-5, 5-20 and 20+ in ascending numeric order instead of the order in which values first appear in the CDR rows.
  • pyproject.toml now reports the application version and lists every directly imported runtime dependency (httpx, pillow and certifi were missing or only listed for development); requirements.txt pins Pillow and certifi explicitly. The release helper also updates the pyproject.toml version, and the unused tools/BuildBinary.py script copied from another project was removed.
  • Dashboard Universe selectors, the PPT export universe dialog (whose title shows the NR Mode, for example CDR datasets (NSA)), default universes (latest two CDRs per type, or one for Multivendor) and pre-cached universes only consider CDRs of the Dashboard's NR Mode. Changing a Dashboard's NR Mode selects the newest CDRs of the new mode.
  • Dashboard pre-caching covers every CDR plus the newest one, two, three and four CDRs of each type, skipping duplicate or impossible universes. It runs on its own low-priority worker instead of the shared background scheduler: open Dashboards are pre-cached first, closed ones pause while an open Dashboard needs work, and foreground preparations and PPT exports pause it until they finish. PPT exports are no longer blocked by pre-caching; the export job pre-caches its chosen universe before applying its own selections. Manage Dashboards shows Checking Cache and Pre-Caching Universe n/m (with · Waiting while queued or paused).
  • The first action of every E2E Dashboard filter selector is Select All / None (formerly All values) and toggles between selecting every value and none; selecting all still keeps an open selection that includes values from future CDRs.
  • A Dashboard that opens with a Title Slide shows the Scope, the selected Regions and the Cities directly below the cover subtitle and its decorative line, with the same layout in the viewer and in the exported PPT and in distinct green, cyan and pink accents. The PPT cover subtitle now keeps the template text instead of repeating the Scope, and Title and Transition subtitles in exported PPTs (Dashboards and E2E Reporting) use the template's yellow accent.
  • The Dashboard viewer has a Scope selector before Dashboard Filters. Changing it asks for confirmation, because every chart is rendered again, and then applies the new scope with its default Dataset Universe.
  • The Report Template Editor has Find & Replace (also Ctrl/Cmd+F) to search every template cell, move between matches and replace in the current cell or the whole template; replacements remain unsaved edits until the template is saved.
  • Dashboard Datasets & Filters is now a sub-panel of Manage Dashboards: Open Filters shows it directly below the corresponding Dashboard row and Close Filters removes it, instead of a separate panel below the library.
  • Dashboard PowerPoint file and folder names include the NR Mode (NSA or SA) before the Dashboard name, for example 20260927_101500 - NSA - Dashboard - Operator Comparison - All Regions.pptx.
  • Dashboard names are unique per NR Mode, so an NSA and an SA Dashboard can share a name; copies and imports only add a suffix when the name is taken in the same NR Mode.
  • The Dashboards and Report Templates tables are sorted by NR Mode (NSA first) and then name, ignoring an NSA/SA marker written in the name. The Report Templates table calls its type column NR Mode and adds Last Updated by, the user behind the latest import, edit, rename, duplicate, default change or NR Mode move (stored in report_templates.updated_by).
  • Dashboard PowerPoint export requests return as soon as the job is created. Resolving the export universe, cover labels, Filters column and file name now happens inside the background job, so a busy server no longer delays queuing; problems such as a universe without valid CDRs mark the job as failed with the reason.
  • The Dashboard viewer shows the NR Mode before the Dashboard name, a larger violet slide title and golden-yellow subtitle, and the applied Scope, Regions and Cities in distinct colours separated by bold dots. Its lavender Scope selector matches the adjacent action buttons in height and text size.

🐛 Bug fixes:

  • Multivendor E2E Reporting chart-set jobs no longer fail on their first chart with an undefined prepare_multivendor_catalog_entry error.
  • Dashboards whose Report Template cannot be read now return the template validation message instead of a server error.
  • Query Builder accepts selected CDRs whose names contain quotes or apostrophes; source_dataset_name is now emitted as a correctly escaped SQL literal.
  • Hierarchical failure-count charts draw nested row separators from their parent label column on every row, instead of shifting them to the left after the first bar with a count label.
  • E2E Reporting chart-set identifiers use the configured Application Config timezone, so they match the displayed generation time.
  • The Dashboard PPT job Filters column keeps the requested date range (for example Oldest to Newest) when an already prepared Dashboard snapshot is reused for the export.
  • Sign-in rejects a malformed stored password hash instead of raising a server error, and dataset workers no longer fail when their CDR is deleted while it is still processing.
  • A Dashboard marked Ready no longer returns to preparation after another Dashboard is opened: adding or filling combined-table columns keeps prepared universes valid, and only row changes invalidate them.
  • Reduced Dashboard timeouts (504) and memory pressure on smaller servers: Dashboard preparation runs in the background while the browser polls its progress, read-only requests retry transient gateway errors, status checks reuse their results and read universe manifests directly, identical cached universes share one snapshot, and only recently used snapshots keep chart frames in memory (DASHBOARD_ANALYTIC_DASHBOARD_FRAME_CACHE_SNAPSHOTS). A new preparation now only supersedes the same user's earlier request.
  • The Materialization status bar shows 100% when all fields are up to date instead of 0%.
  • PowerPoint Job actions such as Relaunch no longer ignore clicks: the jobs table is only rebuilt when its data changes and never while a mouse button is held over it, and Relaunch gives immediate busy feedback and ignores repeated clicks until the server answers.
  • The Dashboard library Generate Dashboard PPT action (renamed from Generate PPT Dashboard) is available immediately after the table is redrawn instead of staying disabled until the next status poll, following the same rule as the status sync: only Dashboards without usable CDRs cannot be exported.
  • The PPT export dialog explains why Generate PPT is waiting (Loading values… while the Operators, Vendors, Regions and Cities load, or a hint when no CDR is selected), and confirming shows a Queuing Dashboard PPT progress overlay until the server has queued the job.
  • Dashboard covers (viewer and PPT) keep their Region and City lines when the per-CDR catalogue lacks those values or cannot be loaded: the Dashboard's own Region and City filter values, which resolve source-column aliases, complete them. A PPT job opened with View Dashboard Snapshot shows exactly the Scope, Regions and Cities of its exported cover; jobs exported earlier rebuild them from their Filters column. A selection that covers every Region or City, from either the CDR catalogue or the Dashboard's filter options and ignoring case and spaces, is labelled All Regions / All Cities instead of listing the individual names.
  • Title and Transition slide subtitles in the Dashboard viewer use the template's yellow accent instead of a grey colour inherited from the viewer panel, and structural slide text scales with the slide so it no longer overflows short viewers. The viewer actions no longer overlap the slide selector on narrower screens.
  • The automated test suite passes again: tests wait for isolated dataset workers and combined CDR rebuilds, and reflect the E2E Reporting access rules, renamed mapping controls and current chart rendering contracts.

📚 Documentation:

  • README and Deployment Configuration list the demo bootstrap account with its current user-viewer role. Workspace Config documents the ascending order of explicit distribution ranges, and Project Structure describes how the test client waits for background dataset processing, the release helper and pyproject.toml. Workspace Management documents NR Mode, and E2E Dashboards and Technical Considerations describe NR-aware universes, background pre-caching priorities, status labels and the frame-cache setting.