|
| 1 | +# Changelog |
| 2 | + |
| 3 | +All notable changes to TRACER are recorded here. This project follows semantic |
| 4 | +versioning. |
| 5 | + |
| 6 | +## 0.2.0 (2026-06) |
| 7 | + |
| 8 | +### Added |
| 9 | +- `tracer scan`: a fast, conservative day-one read of a traces file, before any |
| 10 | + training. It groups traffic by similarity and measures, on a held-out slice it |
| 11 | + never saw, how much a near-free model can answer at your target agreement, |
| 12 | + using exact Clopper-Pearson bounds, with an optional per-1k and monthly savings |
| 13 | + estimate. Ships a self-contained HTML report with an interactive 3D map of the |
| 14 | + embedding space (hover-to-inspect cells, a Verdict/Label colour toggle, and |
| 15 | + PCA/UMAP/t-SNE layouts). Exposed as `tracer.scan()`. |
| 16 | +- Distance-based OOD safety gate: at inference the router defers inputs that fall |
| 17 | + far from the training distribution (kNN distance, global and per-predicted-label |
| 18 | + thresholds) regardless of surrogate confidence, so off-distribution traffic goes |
| 19 | + to the teacher instead of getting a confident guess. |
| 20 | +- `tracer fit --trees` to opt in the tree surrogates, and `--skip` to drop named |
| 21 | + candidates from the zoo. |
| 22 | +- Trace loaders accept common key aliases for both input and label |
| 23 | + (`input/query/text/prompt/question` and |
| 24 | + `teacher/teacher_output/label/intent/output/answer`). |
| 25 | +- Bring-your-own embeddings for `tracer scan`: local sentence-transformers by |
| 26 | + default (`--embed-model`), a precomputed `.npy` (`--embeddings`), or your own |
| 27 | + HTTP embedding endpoint (`--embed-url`, with header and response-key options). |
| 28 | + |
| 29 | +### Changed |
| 30 | +- The parity gate now certifies on an exact held-out lower bound instead of an |
| 31 | + in-sample point estimate, so a policy cannot clear the target by in-sample luck |
| 32 | + and then break the contract on real traffic. Coverage is now monotonic in the |
| 33 | + target, and a hybrid select-then-verify procedure recovers coverage at strict |
| 34 | + targets that a plain held-out split discarded. |
| 35 | +- Tree surrogates (decision tree, random forest, extra-trees, gradient boosting) |
| 36 | + are now off by default in `tracer fit`; the default zoo is the fast linear and |
| 37 | + MLP heads. Use `--trees` for hard, high-class-count tasks. |
| 38 | +- The HTML report is restyled to the light Tracer theme, and the word "audit" is |
| 39 | + dropped across the report and docs. |
| 40 | + |
| 41 | +### Fixed |
| 42 | +- Non-monotonic coverage in the gate (a stricter target could deploy more coverage |
| 43 | + than a looser one). |
| 44 | +- NaN-robustness in acceptor fitting on degenerate surrogates. |
| 45 | + |
| 46 | +## 0.1.3 |
| 47 | + |
| 48 | +Initial public releases: the parity-gated router (`fit`, `update`, `load_router`, |
| 49 | +`serve`), the HTML report and Sankey diagram, and the embedder factories. |
0 commit comments