Parallel adaptive discovery walk; fix PyInstaller tracerite data files

- scanner: replace serial DFS with 16-worker priority work-queue, one
  scandir round trip per directory (DirEntry mtimes), per-subtree
  exponential backoff (persisted in scan-state.json v2), leaf candidates
  gated on max(dir, newest video file) mtime so growing downloads and
  lazy NTFS dir mtimes are handled
- spec: collect_data_files('tracerite') so style.css/script.js ship
- guibuild: tolerate non-UTF-8 console when printing status glyphs
- ruff format pass on indexer.py/index_store.py (hook requirement)
This commit is contained in:
2026-09-09 03:37:31 +00:00
parent 26af7c633b
commit d1f1b9ecb8
5 changed files with 349 additions and 191 deletions
+4
View File
@@ -11,6 +11,7 @@ import sys
import mediahive.winmain
import mediahive.server
from pathlib import Path
from PyInstaller.utils.hooks import collect_data_files
block_cipher = None
@@ -32,6 +33,9 @@ _datas = [
# Bundled Vue frontend served by the FastAPI backend
(str(_frontend_build), "mediahive/frontend-build"),
]
# tracerite (indirect dep) loads style.css / script.js at runtime; PyInstaller
# has no hook for it, so collect its package data explicitly
_datas += collect_data_files("tracerite")
if _icon_win.exists():
_datas.append((str(_icon_win), "mediahive/assets"))
if _icon_mac.exists():