5 Commits

Author SHA1 Message Date
afea4bbe98 fix: strip leading UTF-8 BOM in parse_mod_info
mod.info files saved by Windows notepad start with a U+FEFF BOM, which
made the first line's `name=` regex miss; affected mods displayed with
empty name (sort still worked because `id=` on subsequent lines parsed
fine, but MOD_DB display name fell back to mod_id). Both copies of
mlos_sort.py updated; existing 23 BOM-affected rows already cleaned in
place from raw_mod_info.
2026-05-06 21:30:38 +00:00
8deaf82eac working on add/fix/remove buttons 2026-05-06 05:10:19 +00:00
cee433f47e feat: modpack-bundled sorting rules + B41/B42 build pair
- data/modpack_rules/helldrinx.txt: bundled rules for HellDrinx FULL/LITE
- app.py auto-injects modpack rules when a trigger wsid is in input;
  user-supplied rules are appended after and override on conflict
- MANUAL_BUILD_PAIRS: betterLockpicking (B41) ↔ NFsBetterLockpicking (B42)
- mlos_sort.py: minor adjustments (kept in lockstep across api/worker)
2026-05-04 15:58:39 +00:00
b73325882e feat: pzmm conflict detection + content-type categorization
- mod_files manifest table populated at parse time
- POST /api/conflicts endpoint
- mod_types fingerprinting feeds derive_category
- DD filelist regex broadened to cover conflict-eligible exts
- media/maps/<*>/* excluded from manifest (per-mod namespaced,
  no conflict value, can be tens of MB per mod)

Plan: docs/plans/2026-05-04-pzmm-conflict-and-typing.md
2026-05-04 15:22:35 +00:00
55d3794bfb Add full sortof codebase: API, drain workers, frontend, schema, specs 2026-05-04 03:27:54 +00:00