[x] proxy passthrough mode supported via config option, with a fix to oauth redirects to support an nginx reverse proxy
[x] replaced all instances of @functools.cache with @functools.lru_cache with explicit maxsize argument to mitigate OOMs on the server due to temporal cache busting
[x] split CLI maintenance task generator into two commands - one for sending new tasks to the #techs-live channel, and the other for sending stale tasks to the #tech-leads channel. Refactored out of cli.py into commands/maintenance.py in the process.
[x] Converted all links sent through Discord to use markdown-style [link_embedding]() so it's prettier
[x] Added specific references to new/stale maintenance tasks and other listed comms which didn't have associated links
[x] enforce_discord_nicknames now sends a DM to the user if their neon isn't associated, and a summary of nick changes to #discord-automation
Yet another PR that got away from me...
@functools.cache
with@functools.lru_cache
with explicitmaxsize
argument to mitigate OOMs on the server due to temporal cache bustingcli.py
intocommands/maintenance.py
in the process.[link_embedding]()
so it's prettierenforce_discord_nicknames
now sends a DM to the user if their neon isn't associated, and a summary of nick changes to #discord-automation