Add PREPROCESS_TIMEOUT config (default 120s). Expose read_meta() and use
one read per job in list_jobs() instead of read_status + read_manifest.
Co-authored-by: Cursor <cursoragent@cursor.com>
Drop per-job subdirs for phone-friendly Syncthing layout with
stem-suffixed filenames; keep web state in meta/.
Co-authored-by: Cursor <cursoragent@cursor.com>
Remove SFTPGo; mount event data from the Syncthing folder, watch
incoming/, and name variants after the source stem.
Co-authored-by: Cursor <cursoragent@cursor.com>