All notable changes to TRACER are recorded here. This project follows semantic versioning.
tracer scan: a fast, conservative day-one read of a traces file, before any training. It groups traffic by similarity and measures, on a held-out slice it never saw, how much a near-free model can answer at your target agreement, using exact Clopper-Pearson bounds, with an optional per-1k and monthly savings estimate. Ships a self-contained HTML report with an interactive 3D map of the embedding space (hover-to-inspect cells, a Verdict/Label colour toggle, and PCA/UMAP/t-SNE layouts). Exposed astracer.scan().- Distance-based OOD safety gate: at inference the router defers inputs that fall far from the training distribution (kNN distance, global and per-predicted-label thresholds) regardless of surrogate confidence, so off-distribution traffic goes to the teacher instead of getting a confident guess.
tracer fit --treesto opt in the tree surrogates, and--skipto drop named candidates from the zoo.- Trace loaders accept common key aliases for both input and label
(
input/query/text/prompt/questionandteacher/teacher_output/label/intent/output/answer). - Bring-your-own embeddings for
tracer scan: local sentence-transformers by default (--embed-model), a precomputed.npy(--embeddings), or your own HTTP embedding endpoint (--embed-url, with header and response-key options).
- The parity gate now certifies on an exact held-out lower bound instead of an in-sample point estimate, so a policy cannot clear the target by in-sample luck and then break the contract on real traffic. Coverage is now monotonic in the target, and a hybrid select-then-verify procedure recovers coverage at strict targets that a plain held-out split discarded.
- Tree surrogates (decision tree, random forest, extra-trees, gradient boosting)
are now off by default in
tracer fit; the default zoo is the fast linear and MLP heads. Use--treesfor hard, high-class-count tasks. - The HTML report is restyled to the light Tracer theme, and the word "audit" is dropped across the report and docs.
- Non-monotonic coverage in the gate (a stricter target could deploy more coverage than a looser one).
- NaN-robustness in acceptor fitting on degenerate surrogates.
Initial public releases: the parity-gated router (fit, update, load_router,
serve), the HTML report and Sankey diagram, and the embedder factories.