# Changelog

> **This is the PUBLIC form of this artifact. Findings are listed in full, but the details of SECURITY findings — which rule fired, in which file, on which line, and how to fix it — are deliberately withheld, and any secret-scanner results are excluded entirely. Where detail is absent here it was REMOVED FOR PUBLICATION; it is not missing from the analysis. The complete artifact is available from the repository owner.**

## Score

- CAI 53 → 40 (-13.2)
- Rubric changed (rubric-2026.08.18 → rubric-2026.08.15) — scores are not directly comparable.

## Lenses

- Code Health 63 → 86 (+23.0)
- Architecture 88 → 96 (+7.9)
- Maturity 65 → 59 (-5.8)
- Readiness 39 → 16 (-22.5)
- Security 66 → 48 (-17.3)

## Resolved (289)

- AlpacaDatasetConverter.__call__ (cognitive 21) (src/llamafactory/data/converter.py)
- AlpacaDatasetConverter.__call__ (cyclomatic 20) (src/llamafactory/data/converter.py)
- BaseTrainer.__init__ (cognitive 19) (src/llamafactory/v1/core/base_trainer.py)
- BaseTrainer.fit (cognitive 50) (src/llamafactory/v1/core/base_trainer.py)
- BaseTrainer.fit (cyclomatic 16) (src/llamafactory/v1/core/base_trainer.py)
- Change coupling: cal_lr.py ↔ length_cdf.py (scripts/stat_utils/cal_lr.py)
- Change coupling: chatter.py ↔ chatbot.py (src/llamafactory/webui/chatter.py)
- Change coupling: chatter.py ↔ infer.py (src/llamafactory/webui/chatter.py)
- Change coupling: eval.py ↔ train.py (src/llamafactory/webui/components/eval.py)
- Change coupling: top.py ↔ runner.py (src/llamafactory/webui/components/top.py)
- Change coupling: train.py ↔ runner.py (src/llamafactory/webui/components/train.py)
- Change coupling: workflow.py ↔ workflow.py (src/llamafactory/train/dpo/workflow.py)
- Change coupling: workflow.py ↔ workflow.py (src/llamafactory/train/pt/workflow.py)
- Change coupling: workflow.py ↔ workflow.py (src/llamafactory/train/rm/workflow.py)
- Coverage not included — suite not readable by the collector
- CustomDPOTrainer.__init__ (cognitive 20) (src/llamafactory/train/dpo/trainer.py)
- CustomKTOTrainer.__init__ (cognitive 22) (src/llamafactory/train/kto/trainer.py)
- CustomKTOTrainer.log (cognitive 17) (src/llamafactory/train/kto/trainer.py)
- CustomPPOTrainer.__init__ (cognitive 20) (src/llamafactory/train/ppo/trainer.py)
- CustomPPOTrainer.batched_forward_pass (cognitive 18) (src/llamafactory/train/ppo/trainer.py)
- …and 269 more

## New (20)

- Coverage not measured — test suite did not build
- Dimension evaluation failed
- Duplicated block (11 lines × 2) (src/llamafactory/webui/runner.py)
- Duplicated block (13 lines × 2) (src/llamafactory/data/converter.py)
- Duplicated block (14 lines × 2) (src/llamafactory/v1/plugins/trainer_plugins/distributed/fsdp2.py)
- Duplicated block (21 lines × 2) (src/llamafactory/v1/plugins/model_plugins/kernels/ops/mlp/cuda_fused_moe.py)
- Duplicated block (6 lines × 2) (src/llamafactory/v1/plugins/trainer_plugins/distributed/fsdp2.py)
- Duplicated block (8 lines × 2) (src/llamafactory/data/formatter.py)
- Duplicated block (8 lines × 2) (src/llamafactory/data/processor/pairwise.py)
- Duplicated block (8 lines × 3) (src/llamafactory/data/converter.py)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- Low IaC: DS-0026 (docker/docker-cuda/Dockerfile.base)
- No artifact signing
- No build provenance
- No tests found
- hideOtherLanguageToc (cognitive 23) (docs/_static/js/switcher.js)
- hideOtherLanguageToc (cyclomatic 19) (docs/_static/js/switcher.js)

## Changes since last survey

- 3 commits — 2 feature/other, 1 fixes

## By area

- src/llamafactory — 2 commits
- (root) — 1 commit

## Notable commits

- fix: [assets] fix broken links in README (#10728)
- change: [model] add MOSS-VL support (#10708)
- change: [v1] refactor NPU kernel matching by model type (#10643)
