6 Commits

Author SHA1 Message Date
8deaf82eac working on add/fix/remove buttons 2026-05-06 05:10:19 +00:00
158bc7c1d7 refactor: split auto-rules into modpack/ vs curated/ provenance subdirs
The previous flat data/rules/ flattened a real distinction:
  - data/rules/modpack/  mirrors of upstream modpack-author-bundled
                         sorting_rules.txt (HellDrinx). Update when
                         upstream publishes; don't unilaterally edit.
  - data/rules/curated/  sortof-operator-authored rules for individual
                         mods whose authors didn't declare load order
                         in their mod.info (RV Interior Expansion).

The loader stays provenance-agnostic; trigger values in _RULES_TRIGGERS
are paths relative to data/rules/ ("modpack/helldrinx.txt" etc.).
File headers in each rules file declare the provenance category and
edit policy.
2026-05-04 16:34:23 +00:00
ae408ea437 refactor: data/modpack_rules → data/rules; auto-apply on resort path
The directory was misnamed — these are wsid-triggered sorting-rule
overlays, not modpack-specific. HellDrinx happens to be a modpack but
RV Interior Expansion isn't; both use the same generic mechanism.

Renames:
  data/modpack_rules/        → data/rules/
  _MODPACK_RULES_*           → _RULES_*
  _modpack_rules_for         → _auto_rules_for
  _parse_rules_with_modpacks → _parse_rules_combined
  _emit_modpack_rules_warnings → _emit_rules_applied_warnings
  warning tag "modpack-rules-applied" → "rules-applied"

Bug fix: /api/resort was passing {} rules to sort_mods, silently
dropping every auto-injected rule. The frontend runs an automatic
resort after each /api/sort (driven by localStorage branchSelections),
so the user always saw the resort output — where rv_expansion.txt's
loadAfter chain wasn't taking effect. Now resort goes through
_parse_rules_combined and emits rules-applied warnings the same way
/api/sort does.
2026-05-04 16:31:50 +00:00
3336b2f661 feat: build-suffix labels for [add] actions; chain RV Interior Expansion after Project RV B42
Label format change ('!missing' actions):
  - "add TrueMoozic (renamed from truemusic)" → "add TrueMoozic B42"
  - "add truemusic"                           → "add truemusic B41"
Build context lives in the suffix; the alias-rename hint was redundant
because the user already sees the original mod_id in the warning text.

RV Interior Expansion ordering (B42):
  PROJECTRVInterior42 → RVInteriorExpansion → RVInteriorExpansionPart2
  map folders: map_distanciado → map_aquatsar → rvupdate → rv2 → Muldraugh, KY
Authors didn't declare loadAfter in mod.info; new modpack rules file
data/modpack_rules/rv_expansion.txt establishes the chain. Triggers fire
when either expansion wsid (3618427553 / 3622163276) is in input.
2026-05-04 16:21:35 +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
55d3794bfb Add full sortof codebase: API, drain workers, frontend, schema, specs 2026-05-04 03:27:54 +00:00