v6.4.20
Wed Sep 02 2026
Bug Fixes
API
- ship every event to the engine, and never store an empty task error
query_event_datafiltered events by the caller's date window, so an event whose dates all fall outside it vanished from the payload while the dataset's variable list still offered it -construct_all_graphsthen died with "filters had no matches". Events are markers the engine places relative to the window, so the event frame now ships whole and the date arguments are gone.drun.job_logreturns an empty stderr for some failed jobs, and it was stored verbatim and cascaded asParent task 'GRAPHCONSTRUCT' failed with ''- a failed model with no reason on it. The cascade now substitutes the topic and drun job id. Backport of !1389; the live-model call sites do not exist on 3.57.10. - reference points from dataset min, and the event grouping filter Reference points for variables outside ATTR_BASELINE were the per-variable minimum of the job's own window. When the window is a single period - or a variable is constant across it - that minimum IS the value, so the variable decomposes to exactly zero and its contribution lands in the unexplained base; waterfalls showed only Base, Media and Total. Take the minimum over the dataset instead -
full_stmt, already resolved in both submit paths - falling back to the window minimum for variables the dataset has no rows for.query_event_dataalso comparedGroupingagainst the combination's region instead of its grouping, so a segmented combination silently got a different segment's events: (DEU, all, sme_retail) returned theallgrouping's 60-event calendar rather than its own 3. Backport of !1388; the grouping typo is fixed on main by bc7dbc9f. 3.57.10's full_stmt carriesVariable, notVarId, so the mins key on slug and fold straight into add_baseline rather than needing the MR's wrapper.