- Add paths.py: BASE_DIR/DOWNLOAD_DIR/CONFIG_PATH anchored on __file__
so paths resolve regardless of the launch cwd
- Route main_router and all site modules through DOWNLOAD_DIR/CONFIG_PATH,
replacing os.getcwd()-based download dirs and the "config.yaml" literal
- main_router compare engine: read Excel as str with keep_default_na,
strip/normalize 运单号, drop blanks, and isin against a set so
int/float-vs-str mismatches no longer produce false "undelivered"
- Shunxin: give downloaded files unique microsecond temp names and read
Excel as str to preserve long-waybill precision
- Normalize bare except: to except Exception: across affected files
Co-Authored-By: Claude <noreply@anthropic.com>