@@ -0,0 +1,41 @@ |
| 1 | +# Changelog |
| 2 | + |
| 3 | +## 0.1.0.dev0 — 2026-04-20 |
| 4 | + |
| 5 | +Initial pre-alpha. Full 11-primitive battery shipped. |
| 6 | + |
| 7 | +### Primitives |
| 8 | + |
| 9 | +- **Adherence** |
| 10 | + - `delta_kl` — mean JS/KL divergence between base and fine-tuned next-token distributions |
| 11 | + - `adapter_revert` — reversion under adversarial paraphrase (needs `sway-eval[semsim]`) |
| 12 | + - `prompt_collapse` — exponential-decay fit of divergence over context length |
| 13 | +- **Attribution** |
| 14 | + - `section_internalization` *(flagship)* — per-section `effective_sis` with leak check |
| 15 | + - `paraphrase_invariance` — memorization vs. generalization, intent-aware |
| 16 | + - `preference_flip` — DPO/ORPO chosen/rejected margin inversion |
| 17 | +- **Calibration** |
| 18 | + - `style_fingerprint` — 6-dim numpy-only stylistic shift vs. document |
| 19 | + - `calibration_drift` — general-knowledge regression on a packaged 30-item pack |
| 20 | + - `leakage` — greedy LCS recall + perturbation fragility |
| 21 | +- **Ablation** |
| 22 | + - `adapter_ablation` *(signature primitive)* — λ-scaled divergence curve with linearity, saturation, overshoot metrics |
| 23 | +- **Baseline** |
| 24 | + - `null_adapter` — stats scaffolding for z-score calibration (implementation pending) |
| 25 | + |
| 26 | +### Infrastructure |
| 27 | + |
| 28 | +- `DifferentialBackend` + `ScalableDifferentialBackend` protocols |
| 29 | +- HuggingFace + PEFT backend with `disable_adapter` / `set_adapter` toggling and LoRA-scale mutation |
| 30 | +- Dummy backend for unit tests (canned responses + linear-blend scalable mode) |
| 31 | +- YAML spec loader, composite score (four-category weighted), rich terminal + JSON + JUnit + Markdown reports |
| 32 | +- Typer CLI: `run`, `gate`, `check`, `diff`, `autogen`, `doctor`, `report` |
| 33 | +- `.dlm` bridge (`dlm-sway[dlm]`): resolver + full-battery autogen |
| 34 | +- Matplotlib visualizations (`dlm-sway[viz]`): SIS bar chart, ablation curve, KL histogram |
| 35 | + |
| 36 | +### Known gaps |
| 37 | + |
| 38 | +- Null-adapter baseline is scaffolded but its HF-level materialization (building random-init LoRAs at matched rank) is not yet wired — probes fall back to fixed thresholds until the next milestone. |
| 39 | +- Custom backend entry-point dispatch (`kind: custom`) is stubbed but not implemented. |
| 40 | +- MLX backend is registered as a future-milestone target; all MLX paths raise `BackendNotAvailableError`. |
| 41 | +- PyPI publication of the `dlm-sway` wheel is pending a clean CI release workflow. |