# 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 47 → 45 (-1.7)
- Rubric changed (rubric-2026.08.18 → rubric-2026.08.15) — scores are not directly comparable.

## Lenses

- Code Health 61 → 87 (+25.8)
- Architecture 100 → 94 (-5.9)
- Maturity 52 → 50 (-1.6)
- Readiness 26 → 17 (-8.9)
- Security 100 → 93 (-7.0)

## Resolved (114)

- AudioStreamer.end (cognitive 16) (vibevoice/modular/streamer.py)
- Coverage not included — suite not readable by the collector
- DPMSolverMultistepScheduler.__init__ (cognitive 16) (vibevoice/schedule/dpm_solver.py)
- DPMSolverMultistepScheduler.__init__ (cyclomatic 17) (vibevoice/schedule/dpm_solver.py)
- DPMSolverMultistepScheduler.convert_model_output (cognitive 24) (vibevoice/schedule/dpm_solver.py)
- DPMSolverMultistepScheduler.convert_model_output (cyclomatic 17) (vibevoice/schedule/dpm_solver.py)
- DPMSolverMultistepScheduler.multistep_dpm_solver_second_order_update (cognitive 17) (vibevoice/schedule/dpm_solver.py)
- DPMSolverMultistepScheduler.multistep_dpm_solver_second_order_update (cyclomatic 19) (vibevoice/schedule/dpm_solver.py)
- DPMSolverMultistepScheduler.set_timesteps (cognitive 17) (vibevoice/schedule/dpm_solver.py)
- DPMSolverMultistepScheduler.set_timesteps (cyclomatic 17) (vibevoice/schedule/dpm_solver.py)
- DPMSolverMultistepScheduler.step (cognitive 16) (vibevoice/schedule/dpm_solver.py)
- DPMSolverMultistepScheduler.step (cyclomatic 17) (vibevoice/schedule/dpm_solver.py)
- Dependency hygiene not measured — dependency manifest found but not parsed for hygiene
- Duplicated block (10 lines × 2) (vibevoice/modular/modeling_vibevoice.py)
- Duplicated block (10 lines × 2) (vibevoice/modular/modular_vibevoice_tokenizer.py)
- Duplicated block (10 lines × 2) (vllm_plugin/model.py)
- Duplicated block (11 lines × 2) (vibevoice/modular/modeling_vibevoice_asr.py)
- Duplicated block (11 lines × 2) (vllm_plugin/scripts/gradio_asr_demo_api_video.py)
- Duplicated block (11 lines × 3) (vibevoice/modular/modular_vibevoice_tokenizer.py)
- Duplicated block (12 lines × 2) (demo/vibevoice_asr_gradio_demo.py)
- …and 94 more

## New (12)

- Coverage not measured — test suite did not build
- Dimension evaluation failed
- Duplicated block (10 lines × 2) (vibevoice/modular/modeling_vibevoice_streaming_inference.py)
- Duplicated block (15 lines × 2) (vibevoice/modular/modular_vibevoice_tokenizer.py)
- Duplicated block (17 lines × 2) (vibevoice/modular/configuration_vibevoice.py)
- Duplicated block (8 lines × 2) (vibevoice/modular/modeling_vibevoice_streaming_inference.py)
- Duplicated block (9 lines × 2) (vibevoice/modular/modeling_vibevoice_streaming_inference.py)
- Low: security finding (details withheld)
- Low: security finding (details withheld)
- Medium: security finding (details withheld)
- Medium: security finding (details withheld)
- No tests found
