Box-drawing chars (U+2500), em dashes (U+2014), and en dashes (U+2013)
in comments, section dividers, log messages, and docstrings are not
representable on legacy code pages like CP1252. Replace them with plain
ASCII dashes so the codebase is consistently ASCII-safe.
User-facing UI strings (placeholders, separators, display text in the
frontend) are left unchanged since they render in the browser which
handles Unicode natively.
1. Export route: stop_training() only signals the subprocess — wait up to
30s for it to actually exit before loading the export checkpoint, avoiding
a GPU memory race.
2. Training reset: clear _should_stop so /api/train/status returns phase=idle
instead of staying stuck on phase=stopped after a user-triggered stop.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>