From 55d3794bfb5d6251b4d702b32e727596bdf21845 Mon Sep 17 00:00:00 2001 From: indifferentketchup Date: Mon, 4 May 2026 03:27:54 +0000 Subject: [PATCH] Add full sortof codebase: API, drain workers, frontend, schema, specs --- .gitignore | 48 + README.md | 90 +- api/adapters.py | 683 ++++++ api/app.py | 1480 +++++++++++++ api/db.py | 34 + api/expansion.py | 140 ++ api/jobs.py | 199 ++ api/mlos_sort.py | 712 ++++++ api/parse.py | 75 + api/requirements.txt | 5 + api/steam.py | 82 + data/pz_versions.json | 11 + docker-compose.yml | 25 + docs/a11y-audit-2026-05-01.md | 118 + docs/a11y-changes-2026-05-01.md | 112 + docs/backlog/polling-path-pz-build.md | 54 + docs/brand-changes-2026-05-01.md | 122 + docs/brand-tokens-2026-05-01.md | 145 ++ docs/plans/2026-04-30-multi-branch-picker.md | 1125 ++++++++++ docs/plans/2026-05-01-collection-expansion.md | 1679 ++++++++++++++ docs/specs/2026-04-30-multi-branch-picker.md | 155 ++ docs/specs/2026-04-30-patch-tier.md | 87 + .../specs/2026-05-01-build-context-dep-add.md | 174 ++ docs/specs/2026-05-01-collection-expansion.md | 270 +++ frontend/img/broccoli_shadow_square.png | Bin 0 -> 19075 bytes frontend/img/ketchup_bottle.png | Bin 0 -> 683848 bytes frontend/img/ketchup_bottle.svg | 9 + frontend/index.html | 1433 ++++++++++++ frontend/sortof-app.jsx | 1953 +++++++++++++++++ frontend/sortof-data.jsx | 56 + frontend/tweaks-panel.jsx | 425 ++++ init/01_schema.sql | 127 ++ init/02_sort_jobs.sql | 29 + init/03_mod_id_conflicts.sql | 13 + init/04_required_wsids.sql | 12 + init/05_required_wsids_scraped_at.sql | 7 + init/06_sort_jobs_pz_build.sql | 5 + init/07_mod_parsed_is_addon.sql | 7 + init/08_broken_mod_reports.sql | 20 + precacher/precacher.py | 210 ++ worker/drain.py | 229 ++ worker/mlos_sort.py | 682 ++++++ worker/worker.py | 586 +++++ 43 files changed, 13375 insertions(+), 53 deletions(-) create mode 100644 .gitignore create mode 100644 api/adapters.py create mode 100644 api/app.py create mode 100644 api/db.py create mode 100644 api/expansion.py create mode 100644 api/jobs.py create mode 100644 api/mlos_sort.py create mode 100644 api/parse.py create mode 100644 api/requirements.txt create mode 100644 api/steam.py create mode 100644 data/pz_versions.json create mode 100644 docker-compose.yml create mode 100644 docs/a11y-audit-2026-05-01.md create mode 100644 docs/a11y-changes-2026-05-01.md create mode 100644 docs/backlog/polling-path-pz-build.md create mode 100644 docs/brand-changes-2026-05-01.md create mode 100644 docs/brand-tokens-2026-05-01.md create mode 100644 docs/plans/2026-04-30-multi-branch-picker.md create mode 100644 docs/plans/2026-05-01-collection-expansion.md create mode 100644 docs/specs/2026-04-30-multi-branch-picker.md create mode 100644 docs/specs/2026-04-30-patch-tier.md create mode 100644 docs/specs/2026-05-01-build-context-dep-add.md create mode 100644 docs/specs/2026-05-01-collection-expansion.md create mode 100644 frontend/img/broccoli_shadow_square.png create mode 100644 frontend/img/ketchup_bottle.png create mode 100644 frontend/img/ketchup_bottle.svg create mode 100644 frontend/index.html create mode 100644 frontend/sortof-app.jsx create mode 100644 frontend/sortof-data.jsx create mode 100644 frontend/tweaks-panel.jsx create mode 100644 init/01_schema.sql create mode 100644 init/02_sort_jobs.sql create mode 100644 init/03_mod_id_conflicts.sql create mode 100644 init/04_required_wsids.sql create mode 100644 init/05_required_wsids_scraped_at.sql create mode 100644 init/06_sort_jobs_pz_build.sql create mode 100644 init/07_mod_parsed_is_addon.sql create mode 100644 init/08_broken_mod_reports.sql create mode 100644 precacher/precacher.py create mode 100644 worker/drain.py create mode 100644 worker/mlos_sort.py create mode 100644 worker/worker.py diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..26d59ea --- /dev/null +++ b/.gitignore @@ -0,0 +1,48 @@ +# Secrets / runtime config +.env +.env.local +.env.*.local + +# Python virtualenvs (api/.venv, worker/.venv, etc.) +.venv/ +venv/ +env/ + +# Python bytecode caches +__pycache__/ +*.py[cod] +*$py.class +.pytest_cache/ +.mypy_cache/ +.ruff_cache/ + +# Local ad-hoc backups (.bak / .bak-YYYYMMDD-HHMM / .bak-