v0.15.0 - Diagnostic Visualisations and Bug Fixes
UI Updates
- Added a new tab in the digiqual app that provides visualisation of the diagnostic tests
Bug Fixes
Detailed Fixes
1.
app/app.py
Bug 1 (
outcome_stats
is undefined): Verified that this was already resolved in the current codebase (it was appropriately set as a @reactive.calc and was in scope).
Bug 4 (Plots vanishing due to arbitrary dependencies): Promoted
current_study
to an explicit reactive.Value() and decoupled its initialization into an @reactive.effect. Now it strictly responds to explicit data inputs/columns rather than silently reconstructing on downstream dependencies.
Bug 9 (Global random state): Replaced the global initialization np.random.seed(42) inside
viz_diagnostics_overview()
with a localized np.random.default_rng(42).
2.
src/digiqual/pod.py
&
src/digiqual/plotting.py
Bug 2 & Bug 3 (Non-monotonic np.interp errors for PoD arrays): Updated
calculate_reliability_point
logic in
pod.py
to use np.maximum.accumulate enforcing monotonicity of the Lower Confidence Interval arrays before solving the bootstrap inverse.
Deduplicated the interpolation logic in
plotting.py
directly linking it back to
calculate_reliability_point
.
3.
src/digiqual/adaptive.py
Bug 5 (Shell injection): Stripped shell=True from subprocess execution. String interpolation of paths was sanitized using shlex.split.
Bug 6 (Hardcoded Degrees): Discarded the static definition make_pipeline(PolynomialFeatures(3), ...) in the query-by-committee algorithm, swapping it to dynamically resolve the optimal structural complexity up to degree=3 using Cross Validation.
Bug 7 (Fewer than N simulated gaps): Refined the exploration generator
_fill_gaps
. It now uses a robust while-loop (up to 10 expansion iterations) to continuously pull spatial candidates until exactly n points withstand the proximity filter.
Bug 11 (Dirty loop inheritance): Propagated clean_df into current_data systematically.
4.
src/digiqual/diagnostics.py
Bug 8 (Constant gaps thresholding): Resolved misleading remediation suggestions by capping max_gap_ratio to 0.0 when zero variance exists in uniform inputs.
Bug 10 (Double Validation): Eliminated O(N) validation overlaps by introducing skip_validation=True on redundant interior calls across the orchestrators.
Full Changelog: v0.14.0...v0.15.0