You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: CHANGELOG.md
+36Lines changed: 36 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -5,6 +5,42 @@ All notable changes to Vectrix will be documented in this file.
5
5
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
6
6
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
8
+
## [0.0.16] - 2026-03-05
9
+
10
+
Code quality and architecture cleanup release — eliminates MODEL_INFO indirection layer, enforces registry as single source of truth for all model metadata, fixes ETSModel refit bug, and adds refit contract tests.
11
+
12
+
### Fixed
13
+
14
+
**ETSModel refit() State Corruption**
15
+
-`engine/ets.py`: `_computeSSE()` called `_filter()` which mutated `self.level/trend/seasonal` as a side-effect during optimization
16
+
- This caused refit() on the same data to produce 175%+ divergence from original fit()
17
+
- Added state save/restore in `_computeSSE` using try/finally pattern
18
+
- All 6 refit-capable models now pass same-data similarity test (<5% divergence)
19
+
20
+
### Changed
21
+
22
+
**Registry as Single Source of Truth (SSoT)**
23
+
-`engine/registry.py`: Added `tier`, `seasonal`, `hourly` fields to `ModelSpec`
24
+
- Added `selectModels()` for data-characteristic-based model selection
25
+
- Added `getCoreModelIds()` for dynamic ensemble core pool
26
+
-`vectrix.py`: Replaced hardcoded model lists with `selectModels()` and `getCoreModelIds()`
27
+
-`flat_defense/diagnostic.py`: Replaced `MODEL_INFO` import with `getModelInfo()` direct call
28
+
-`models/selector.py`: Same — `MODEL_INFO` → `getModelInfo()` direct call
29
+
-`types.py`: Removed `_LazyModelInfo` class and `MODEL_INFO` variable entirely (48 lines deleted)
30
+
31
+
**Exception Handling**
32
+
-`vectrix.py`: Replaced 6 bare `except Exception:` with specific types (`ValueError`, `RuntimeError`, `np.linalg.LinAlgError`, etc.)
33
+
34
+
**Code Deduplication**
35
+
-`vectrix.py`: Unified sequential/parallel model evaluation result handling into `storeResult()` helper
Accuracy & engine improvement release — FFT period detection bug fix eliminates spurious seasonal periods that degraded M4 Daily OWA from 0.820 to 0.996. Three new Rust DNA functions added. PeriodicDropDetector seasonal false positive fix. Visualization module (plotly). Overall M4 AVG OWA improved from 0.877 to 0.848.
Copy file name to clipboardExpand all lines: landing/static/llms-full.txt
+1-1Lines changed: 1 addition & 1 deletion
Original file line number
Diff line number
Diff line change
@@ -4,7 +4,7 @@
4
4
5
5
Vectrix is a Python library for time series forecasting. It evaluates 30+ statistical models (ETS, ARIMA, Theta, CES, DOT, MSTL, TBATS, GARCH, and more), validates each on a holdout set, and returns the best one with 95% confidence intervals — in a single function call.
Copy file name to clipboardExpand all lines: llms-full.txt
+1-1Lines changed: 1 addition & 1 deletion
Original file line number
Diff line number
Diff line change
@@ -2,7 +2,7 @@
2
2
3
3
> Zero-config time series forecasting library for Python. Automatic model selection with built-in Rust engine (29 accelerated functions), adaptive intelligence, full regression suite, and business analytics.
Copy file name to clipboardExpand all lines: llms.txt
+1-1Lines changed: 1 addition & 1 deletion
Original file line number
Diff line number
Diff line change
@@ -2,7 +2,7 @@
2
2
3
3
> Zero-config time series forecasting library for Python. Automatic model selection with built-in Rust engine. NumPy/SciPy/Pandas with adaptive intelligence, regression, and business analytics.
0 commit comments