Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
104 commits
Select commit Hold shift + click to select a range
602d82f
Route feature metadata persistence through to_json()
vb-dbrks Aug 24, 2026
faea0c6
Correct anomaly detection docs that misdescribe behaviour
vb-dbrks Aug 24, 2026
c53c669
Name the segment-training thresholds in one module
vb-dbrks Aug 25, 2026
6bc0e1b
Validate baseline columns before they can corrupt a key
vb-dbrks Aug 25, 2026
2cdeaa4
Compute one baseline key, in Python and in Spark, and pin their agree…
vb-dbrks Aug 25, 2026
07cae7e
Judge each metric against its own group's baseline, via baseline_by
vb-dbrks Aug 25, 2026
839f637
Make the anomaly benchmarks reach the published report
vb-dbrks Aug 25, 2026
1d4abc7
Test offline that the relative feature separates a contextual anomaly
vb-dbrks Aug 25, 2026
1548c64
Verify baseline conditioning through Spark, MLflow and Unity Catalog
vb-dbrks Aug 25, 2026
4fd087e
Measure whether conditioning actually detects better, and publish it
vb-dbrks Aug 25, 2026
d38bf95
Document baseline conditioning, and record it as a breaking change
vb-dbrks Aug 25, 2026
d480802
Record the first run of the conditioning experiment
vb-dbrks Aug 25, 2026
9993c38
Add the plain-tabular regime to the conditioning harness
vb-dbrks Aug 25, 2026
fee682f
Choose a baseline grouping on the baseline cost model, not the segmen…
vb-dbrks Aug 25, 2026
7d13390
Mark row anomaly detection as beta
vb-dbrks Aug 25, 2026
77894a3
BREAKING: include baseline_by in the model configuration hash
vb-dbrks Aug 25, 2026
df36282
Stop fitting a scaler that cannot affect the model
vb-dbrks Aug 25, 2026
b0658bc
Make baseline_by a queryable registry column
vb-dbrks Aug 25, 2026
175533c
Match the shipped forest configuration in the harness
vb-dbrks Aug 25, 2026
5ee0219
Record why a second detector is not added to the ensemble
vb-dbrks Aug 25, 2026
bbe9d9e
Document the heuristic path and the compatibility debt
vb-dbrks Aug 25, 2026
57bcebb
Publish the comparison against the previous release
vb-dbrks Aug 25, 2026
774e5a2
Correct the real-data finding, and publish the tabular regime
vb-dbrks Aug 25, 2026
7375f9b
Write the quality page for users, not for the team
vb-dbrks Aug 25, 2026
8df14ab
Refresh the quality benchmarks in the nightly
vb-dbrks Aug 25, 2026
ccf7de8
Redact the features derived from a redacted column
vb-dbrks Aug 25, 2026
f510b89
BREAKING: remove the legacy segment_by anomaly path in favour of base…
vb-dbrks Aug 26, 2026
7667ffe
Add a reverse map from engineered feature name to source column
vb-dbrks Aug 26, 2026
9be52d4
Close the redaction hole: drop every feature derived from a redacted …
vb-dbrks Aug 26, 2026
65c3d86
Render contributions for a reader and reframe the prompt around basel…
vb-dbrks Aug 26, 2026
e6d52a7
Pin the group-conditioning invariants with tests
vb-dbrks Aug 26, 2026
0568704
Performance: one baseline join for all metrics; drop count() emptines…
vb-dbrks Aug 26, 2026
ca5a6c2
Add the SMD estimator bake-off, and move the train/test loader to dat…
vb-dbrks Aug 26, 2026
65cc55b
Step 0: settle the time-series estimator by measurement, and drop Led…
vb-dbrks Aug 26, 2026
56a423d
Add the Mahalanobis detector, with non-negative leave-one-out attribu…
vb-dbrks Aug 26, 2026
45e0adc
Pin the IsolationForest path against change, before wiring anything t…
vb-dbrks Aug 27, 2026
f01c43e
Dispatch attribution by estimator, so contributions work without SHAP
vb-dbrks Aug 27, 2026
fe946a1
Select the detector with a `profile`, defaulted so nothing changes
vb-dbrks Aug 27, 2026
88218e0
Decline automatic profile detection, and drop the "auto" name that im…
vb-dbrks Aug 27, 2026
3535f18
Verify the timeseries profile against a real workspace, settling two …
vb-dbrks Aug 27, 2026
f2cf126
Fix the docs build, which commit 07cae7e1 in this PR broke
vb-dbrks Aug 27, 2026
3758eed
Document the profile, and rename the contract from "SHAP" to "feature…
vb-dbrks Aug 27, 2026
9778ee1
Add two deck slides: comparing like with like, and correlation breaking
vb-dbrks Aug 27, 2026
966e833
Repair the row anomaly demo, which this PR broke, and verify it by ru…
vb-dbrks Aug 27, 2026
e4fed0a
Correct a false claim: DQX does model calendar seasonality
vb-dbrks Aug 28, 2026
7d438de
Withdraw a false safety claim about trend, and measure why neither fi…
vb-dbrks Aug 28, 2026
d286d08
Measure the fix for trend that does work: persist a fitted trend and …
vb-dbrks Aug 28, 2026
16e94ad
Move the limitations out of a warning block and into one FAQ entry
vb-dbrks Aug 28, 2026
7e3d032
Tell the LLM what a contribution measures, so explanations stop misde…
vb-dbrks Aug 28, 2026
74c73d9
Add two demos framed on the domain problem, one per profile
vb-dbrks Aug 28, 2026
5d0b995
Fix two broken links and a parameter that never existed in the compre…
vb-dbrks Aug 28, 2026
dba3b05
Rewrite the anomaly demos for teaching, retire the old one, and cover…
vb-dbrks Aug 28, 2026
dc14ef6
Replace the correlation slide with an inspection line
vb-dbrks Aug 28, 2026
3e81084
Correct the FAQ on single-metric series: a timestamp is context
vb-dbrks Aug 28, 2026
c76eccf
Advise rather than apply a discovered grouping on explicit columns
vb-dbrks Aug 28, 2026
edfb069
Leave CHANGELOG.md to the maintainers
vb-dbrks Aug 28, 2026
4717277
Publish anomaly quality in the existing benchmarks report
vb-dbrks Aug 28, 2026
69f4018
Merge branch 'main' into feat/anomaly-group-conditioning
vb-dbrks Aug 28, 2026
83b6c68
Make the detector choice reachable from a run config
vb-dbrks Sep 2, 2026
93b59e1
Correct the profile guidance for ordinary tabular data
vb-dbrks Sep 2, 2026
a0ade1d
Add the temporal baseline fit
vb-dbrks Sep 2, 2026
e1cc7d5
Wire the temporal baseline into feature engineering
vb-dbrks Sep 2, 2026
fe80305
Expose baseline_over_time on train(), and hash it
vb-dbrks Sep 2, 2026
a53eb6c
Do not make the detector robust: measured, it costs more than it buys
vb-dbrks Sep 2, 2026
d9d24d6
Report extrapolation, and warn where the temporal baseline will not help
vb-dbrks Sep 2, 2026
dfb6ae6
Document baseline_over_time, and teach the decision in the demos
vb-dbrks Sep 2, 2026
40e198c
Publish the temporal baseline's quality in the benchmark report
vb-dbrks Sep 2, 2026
f03f76c
Mark staleness before scoring, not after
vb-dbrks Sep 2, 2026
c11d570
Keep the time column through the scoring select
vb-dbrks Sep 3, 2026
14935d0
Pin the scoring select rule without needing a workspace
vb-dbrks Sep 3, 2026
b418b54
Report detection quality honestly in the demos, and document what the…
vb-dbrks Sep 3, 2026
0fffdce
Interpolate the severity tail in tail-probability space
vb-dbrks Sep 3, 2026
e3515c4
Estimate the severity quantiles precisely enough for the tail to mean…
vb-dbrks Sep 3, 2026
79e5e8b
Make the three comparison bases reachable from run-config YAML in the…
vb-dbrks Sep 3, 2026
f92808e
Teach time as a basis rather than a feature, on data where it works
vb-dbrks Sep 3, 2026
b411349
Address the pre-Beta review: four blockers, four issues, four suppres…
vb-dbrks Sep 4, 2026
af6b815
Scale a discovery fixture to the floor the fit actually sees
vb-dbrks Sep 4, 2026
69c7014
Make the permission-error predicate public rather than suppress the lint
vb-dbrks Sep 4, 2026
5486b1d
Raise the mlflow floor to the release that fixes Databricks unified auth
vb-dbrks Sep 4, 2026
dea2bd0
Refuse a generated feature name that would overwrite a real column
vb-dbrks Sep 4, 2026
d70b6b9
Fit both comparison bases before imputing nulls, and choose the basis…
vb-dbrks Sep 4, 2026
df04f61
Make an unseen categorical value visible, and count derived features …
vb-dbrks Sep 4, 2026
92d8ef7
Say what expected_anomaly_rate, _rel_baseline and the severity tail a…
vb-dbrks Sep 4, 2026
cae9256
Publish one benchmark run, measured under the protocol DQX actually uses
vb-dbrks Sep 4, 2026
25d2a79
Derive the cardinality assertion from the fixture instead of hardcodi…
vb-dbrks Sep 4, 2026
a5922b4
Strip ANSI colour codes I committed into .build-constraints.txt
vb-dbrks Sep 4, 2026
a5d5195
Merge origin/main, regenerating uv.lock rather than hand-merging it
vb-dbrks Sep 4, 2026
1af9817
Name cloudpickle as the sklearn serialization format, which MLflow 3 …
vb-dbrks Sep 4, 2026
8689f80
Standardise the response before the temporal fit, so a metric's units…
vb-dbrks Sep 7, 2026
9269c02
Name the mechanism that absorbs a collinear one-hot pair correctly
vb-dbrks Sep 7, 2026
1c868b9
Report the order-dependence figure we measured, not the one the revie…
vb-dbrks Sep 7, 2026
4d95cce
Stop claiming the bucket median is what makes the temporal fit robust
vb-dbrks Sep 7, 2026
95fa777
Remove expected_anomaly_rate, which never changed what DQX flags
vb-dbrks Sep 7, 2026
661496c
Document the expected_anomaly_rate removal in the guide's upgrade path
vb-dbrks Sep 7, 2026
2d3b004
Withdraw the bucket-median robustness claim from the second place it …
vb-dbrks Sep 7, 2026
f6f7279
Read feature provenance from the recorded transform, not from spelling
vb-dbrks Sep 7, 2026
9cb049e
Explain the correlation-aware detector by source column, not by engin…
vb-dbrks Sep 7, 2026
85b72b4
Stop the AI explanation prompt inventing a direction its inputs do no…
vb-dbrks Sep 7, 2026
70340cf
Correct the claim that both detectors catch an unseen category
vb-dbrks Sep 7, 2026
03634c9
Report the benchmark under the protocol users actually run, and recor…
vb-dbrks Sep 7, 2026
cba27d6
Fix the broken doc anchor that was failing the Docusaurus build
vb-dbrks Sep 7, 2026
c4ac135
Explain the column that caused the anomaly, not a view of it, a norma…
vb-dbrks Sep 7, 2026
da4f698
Tell the explanation model what a contribution was measured against, …
vb-dbrks Sep 8, 2026
5cafe9c
Unit-test the row-at-a-time attribution variant, which had no unit co…
vb-dbrks Sep 8, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 6 additions & 1 deletion .github/workflows/nightly.yml
Original file line number Diff line number Diff line change
Expand Up @@ -626,7 +626,12 @@ jobs:
# The run fails if performance degrades by more than 25%.
# Tests are run sequentially to reduce variability.
# Do at least 5 rounds to get more stable results.
UV_FROZEN=1 uv run --all-extras pytest tests/perf -v -n 1 \
# Anomaly benchmarks are deselected here: --benchmark-compare-fail applies to the whole
# invocation and cannot be scoped per test, and those benchmarks are dominated by MLflow
# and Unity Catalog control-plane latency, so they would trip a 25% mean gate on variance
# alone. They still produce a baseline in the step above; only the timing comparison skips
# them. Their detection quality is gated by assertions in tests/integration_anomaly/.
UV_FROZEN=1 uv run --all-extras pytest tests/perf -v -n 1 -m "not anomaly" \
--benchmark-storage=$BENCHMARKS_DIR \
--benchmark-compare=baseline \
--benchmark-compare-fail=mean:25% \
Expand Down
Loading
Loading