fabc79d0dcf77ad5d5aa16b4f96e737d071cc502
The amber "auto-picked" warning persisted even after the user explicitly picked a branch via the picker — the resort flow only updated the message text from "auto-picked X" to "selected X" but kept the warning visible. That reads as "you should review this" when in fact the user already did. Now: when /api/resort honors a user's explicit branch selection, the matching auto-picked-branch warning is dropped from WARNINGS. The BranchPicker in the ModTable expansion (sortof-app.jsx ~818) keeps the picker accessible if the user wants to switch branches later. Initial /api/sort still emits the warning (the user hasn't picked yet); suppression only kicks in once selected_modids honors a group's pick.
sortof
Project Zomboid mod load-order sorter for dedicated servers. Paste workshop
IDs or a collection URL; get back the WorkshopItems=, Mods=, and Map=
lines for servertest.ini.
Stack
- FastAPI + asyncpg, Python 3.12.
- Postgres 16 (Docker).
- DepotDownloader for fetching
mod.info/map.infofrom each cached workshop item. - Vanilla JSX + index.html, no build step (Babel-standalone in-browser).
Setup
docker compose up -d sortof_db
python3.12 -m venv api/.venv
api/.venv/bin/pip install -r api/requirements.txt
python3.12 -m venv worker/.venv
worker/.venv/bin/pip install -r worker/requirements.txt
.env next to docker-compose.yml:
POSTGRES_USER=sortof
POSTGRES_PASSWORD=<random>
POSTGRES_DB=sortof
SORTOF_CORS_ORIGINS=http://127.0.0.1:8801
Set DD_PATH to the DepotDownloader binary, then:
api/.venv/bin/uvicorn app:app --host 127.0.0.1 --port 8801
worker/.venv/bin/python drain.py
Layout
api/ FastAPI service, sort engine, response adapters
worker/ drain worker (DepotDownloader + mod.info parser)
frontend/ index.html + JSX
init/ Postgres bootstrap migrations (run on first boot)
data/ checked-in JSON config (e.g., pz_versions.json)
docs/ specs, plans
Description
Languages
Python
58.1%
JavaScript
28%
HTML
12.4%
PLpgSQL
1.5%