The plans were AI-readable implementation walkthroughs for features
that are now shipped (multi-branch picker, collection expansion,
pzmm conflict/typing). The matching specs in docs/specs/ remain as
the canonical decision record; the plans are operating recipes that
have served their purpose. Git history still has them.
Also delete the four 2026-05-01 one-shot deliverables (a11y audit +
changes, brand tokens + changes). They captured the audit moment
and the applied diff; both are now in commit history.
- delete api/categorize.py: orphaned module, never imported. The live
pzmm-types→category mapping is _types_to_category in mlos_sort.py.
- delete api/adapters.py:_autopick_ambiguous: 5-line wrapper around
_apply_branch_rules with zero callers in current source.
- delete docs/backlog/polling-path-pz-build.md: described work that
shipped — init/06_sort_jobs_pz_build.sql plus pz_build plumbing in
jobs.create_job, app._route_to_job, and app._build_result_for_job.
- sync MAP_LINE convention comment in api/mlos_sort.py with the worker
copy (Muldraugh, KY is appended at the end, not prepended at the
front — see adapters.build_response:577).
- update init/04_required_wsids.sql header to reflect the authed-API
fetch path (HTML scrape was retired in 3a34b71).
- soften the now-stale '~14 rows' count in app._strip_path_prefix's
docstring.
Drops missing-dep warnings whose source mod's mod.info `require=` is
out of sync with its Steam Workshop Required Items sidebar. Author
edits to mod.info often lag build ports; trusting the sidebar means
B42 sorts no longer raise warnings on B41-only deps the author has
already retired (e.g. tikitown's Diederiks Tile Palooza, EN_Newburbs).
Filter is conservative: only drops a dep when (a) we have a cached
wsid for it, (b) that wsid is wrong-build for the user's pz_build,
and (c) the source mod's required_wsids list (with required_scraped_at
populated as the "we have evidence" gate, since the column itself
defaults to '{}') excludes that wsid.
Also swaps worker.fetch_required_wsids from public-page HTML scrape
to authenticated IPublishedFileService/GetDetails. Same `children`
data, no 429 cooldowns. Removes the now-unused throttle/cooldown
infrastructure (SORTOF_STEAM_MIN_INTERVAL / SORTOF_STEAM_COOLDOWN
env vars are no longer read).
See docs/specs/2026-05-06-stale-requires-filter.md.
- 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
Add/remove/swap warning-action handlers no longer auto-fire /api/sort.
They mutate the input textarea idempotently; the sort button gets a
pending cue when current input != last-sorted input. Branch-picker
(/api/resort, cheap) keeps instant behavior. Spec lives in
docs/specs/2026-05-04-staged-warning-actions.md.