changelist-2026-06-02.md 5.87 KB

Changelist / 2026-06-02

本次补充交付(2026-06-02 15:09 UTC)

目标

把当前状态从“仍在稳定推进”升级为“已确认异常退出、需要排查”的交接包。

本次纳入交付的内容

类别 内容
证据 PID=431703PID=424691 均已退出
状态 observable 目录仍停在 chromaprint_progress.json + chromaprint.pkl
风险 没有 reference_*,没有 evaluate.py,没有明确 traceback
文档 CHANGELOGchangelistdelivery handoffsession handoffAGENT memory

文件级变更

文件 说明
./CHANGELOG.md 补记 build-index 异常退出 checkpoint
./delivery-handoff-2026-06-02.md 顶部改写为异常排查接管包
./session-handoff.md 顶部快照切到“进程已退出、无下游产物”
../AGENT.md 更新长期记忆,避免新 session 误判为仍在运行

当前最重要的 fresh evidence

  • 观测时间:2026-06-02 15:09:19 UTC
  • ps -p 431703:无存活进程
  • ps -p 424691:无存活进程
  • pgrep -af 'run_demo.py build-index|evaluate.py ...':未发现接续进程
  • observable 目录仅有:
    • chromaprint.pkl
    • chromaprint_progress.json
  • 末次 progress:
    • status=building
    • refs_done=4420/8000
  • 未出现:
    • reference_*
    • evaluate.py

重要决策

  1. 当前已不应继续把它描述成“仅仅线性慢”。
  2. 下一轮工作应转向 build-index 异常退出排查
  3. 新提交已经有意义,因为状态从“运行中”变成了“已退出且无下游产物”。

本次追加交付(2026-06-02 15:18 UTC)

新增代码修复

文件 变更
../acr-engine/run_demo.py build-index / demo 关键日志统一 flush=True
../acr-engine/src/engines/chromaprint_matcher.py chromaprint 阶段 progress 日志 flush=True
../acr-engine/src/engines/ecapa_embedder.py embedding/reference 阶段关键日志 flush=True

新增验证证据

  • 极小样本复现:/tmp/chroma_repro_tiny12
  • 结果:RC=1
  • 现在日志已实时落盘,不再是 0 bytes
    • [build-index] starting chromaprint index ...
    • [build-reference-index] start: refs=12 ...
    • ValueError: No reference embeddings were produced ...

结论

  • 当前已修复“失败时日志完全不可见”的可观测性问题。
  • 下一轮 root cause 排查可以直接依赖实时日志,而不再需要盲等。

本次追加交付(2026-06-02 15:22 UTC)

新增代码修复

文件 变更
../acr-engine/src/engines/chromaprint_matcher.py 坏音频/缺失音频跳过;progress 增加 skipped_refs
../acr-engine/src/engines/ecapa_embedder.py 坏音频/缺失音频跳过;progress 增加 skipped_refs

新增验证证据

  • 最小容错复现:/tmp/chroma_skip_repro
  • 输入:1 good mp3 + 1 bad mp3
  • 结果:RC=0
  • 验证点:
    • 日志可见 skip decode failure
    • chromaprint_progress.jsonstatus=complete
    • reference_progress.jsonstatus=complete
    • 两个 progress 文件都记录 skipped_refs=1
    • 最终成功产出 reference_embs.npy / reference_ids.npy

结论

  • 当前已验证:单个坏 MP3 不再拖垮整轮 build-index
  • 下一轮应回到真实路径复现,确认主问题是否就是由坏 MP3 触发。

本次追加交付(2026-06-02 15:29 UTC)

新增运行证据

类别 内容
rerun fixed real-path 200-ref rerun 仍在前台运行:session 19709
chromaprint 200/200 完成,skipped_refs=0
reference 已进入 embedding/reference 阶段,并完成 25/200 checkpoint
产物 已落盘 reference_progress.jsonreference_embs.partial.npyreference_ids.partial.npy

当前最重要的 fresh evidence

  • 观测时间:2026-06-02 15:29:17 UTC
  • 输出目录:/tmp/fma_realpath_small_rerun_index2
  • chromaprint_progress.json
    • status=complete
    • refs_done=200/200
    • hashes=57577
    • postings=187446
    • skipped_refs=0
  • reference_progress.json
    • status=building
    • refs_done=25/200
    • windows_done=256
    • skipped_refs=0
  • 已出现:
    • reference_embs.partial.npy
    • reference_ids.partial.npy

结论

  • 这次 fixed rerun 已经证明:修复后的真实路径样本不再卡死在 chromaprint 阶段。
  • 当前最有价值的下一步,变为继续盯 reference_* 完成或捕获新的明确失败证据。

本次追加交付(2026-06-02 15:35 UTC)

新增运行证据

类别 内容
chromaprint 200/200 完成,skipped_refs=0
reference 200/200 完成,windows_done=2068
产物 reference_embs.npyreference_ids.npy 已完整落盘
shape embedding_shape=[2068, 192]

当前最重要的 fresh evidence

  • 观测时间:2026-06-02 15:35:19 UTC
  • 输出目录:/tmp/fma_realpath_small_rerun_index2
  • reference_progress.json
    • status=complete
    • refs_done=200/200
    • windows_done=2068
    • embedding_shape=[2068, 192]
    • skipped_refs=0
  • 最终产物:
    • reference_embs.npy1588352 bytes
    • reference_ids.npy74576 bytes
  • stdout 明确出现:
    • Built reference index: 2068 windows, embeddings shape (2068, 192)
    • [done] embedding index built: 2068 refs

结论

  • 当前已确认:修复后的真实路径 rerun 不仅能进入 reference 阶段,而且能完整产出最终 embedding index。
  • 下一轮最高价值工作应切到:评测链是否自动衔接,以及必要时补显式 evaluate smoke。