# Changelog

## [Unreleased]

### Added
- 完整的单元测试套件：`test_core_lib.exe`（音频缓冲区、预加重、GCC-PHAT、距离估计、威胁跟踪、特征提取器形状验证）
- `run_demo.bat` 一键运行脚本：自动构建并执行核心测试 + ONNX 推理 + 离线演示
- `build_core_test.bat`：单独编译所有测试可执行文件
- JSON 格式 label map 支持（兼容旧版 `"index: label"` 文本格式）
- `.gitattributes`：统一行尾符和 diff 行为

### Changed
- **FFT 引擎**：移除损坏的 `kiss_fft` 依赖，替换为内联 Cooley-Tukey FFT，推理速度提升约 33×
- **ONNX Runtime 兼容**：将 API 版本降级至 17 以匹配本地 v1.17.1 DLL
- **输入张量形状**：调整为 `[batch=1, time=63, n_mels=64]` 以匹配 ONNX 导出模型
- **AudioBuffer API**：统一为 `Push`/`Pop`/`Get`/`Clear`/`Size`
- **DistanceEstimator**：`GetReferenceSpl("threat")` 使用配置值（默认 150 dB）替代硬编码 160 dB
- **代码风格**：统一所有 `size_t` 为 `std::size_t`
- **CMakeLists.txt**：清理多余空行；install 规则仅在 `BUILD_ROS_WRAPPER=ON` 时生效
- **`.gitignore`**：扩展为更全面的忽略规则

### Fixed
- 修复 `AudioBuffer`、`FeatureExtractor`、`DistanceEstimator` 的头文件/实现不匹配问题
- 修复 Windows 路径 Unicode 转换（`MultiByteToWideChar`）
- 修复缺失的 `<memory>` 头文件包含
- 修复 `pipeline.cpp` 和 ROS 包装器以使用 `Pipeline::Process` 返回 `AcousticFrame`

### Removed
- `kiss_fft` 第三方库（头文件和实现均缺失，无法编译）
