fix(scan): 修复重新部署后初次扫描遮罩不显示

根因:firstScan 依赖 hasScanLog()(SQLite 是否曾有成功扫描日志)。数据目录
持久化挂载后,首次成功扫描的日志永久存在,导致后续每次重新构建镜像并重新部署
的启动扫描期间 hasScanLog() 恒为 true、firstScan 恒为 false,遮罩不显示。

改为基于内存态 scanState.startupScanning:仅 server.js 启动扫描时置 true、
runScanAsync 结束后清零;手动/定时/懒触发扫描均不置位,保持后台静默。
This commit is contained in:
DuMate
2026-09-27 11:52:28 +08:00
parent aef687b6e5
commit 75b1c4d348
4 changed files with 9 additions and 11 deletions
+1
View File
@@ -86,6 +86,7 @@ app.listen(PORT, () => {
// 启动时 rawCache 恒为 null,直接触发即可,无需 invalidateScan)
if (mode === 'storage' && !scanState.scanning) {
scanState._triggerSource = 'startup'
scanState.startupScanning = true // 部署后启动扫描:供前端显示首次扫描遮罩,扫描结束即清零
runScanAsync()
console.log(`[auto-scan] 启动后立即扫描缓存目录:${storage}`)
}