From ad6adf7a4cf7225132a8ea4f4eb2fc7591269e89 Mon Sep 17 00:00:00 2001 From: Cal Corum Date: Tue, 31 Mar 2026 18:00:43 -0500 Subject: [PATCH] =?UTF-8?q?docs:=20sync=20KB=20=E2=80=94=20release-2026.3.?= =?UTF-8?q?31-2.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- major-domo/release-2026.3.31-2.md | 38 +++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 major-domo/release-2026.3.31-2.md diff --git a/major-domo/release-2026.3.31-2.md b/major-domo/release-2026.3.31-2.md new file mode 100644 index 0000000..54d38f6 --- /dev/null +++ b/major-domo/release-2026.3.31-2.md @@ -0,0 +1,38 @@ +--- +title: "Discord Bot Release — 2026.3.13" +description: "Enforce free agency lock deadline — block /dropadd FA pickups after week 14, plus performance batch from backlog issues." +type: reference +domain: major-domo +tags: [release-notes, deployment, discord, major-domo] +--- + +# Discord Bot Release — 2026.3.13 + +**Date:** 2026-03-31 +**Tag:** `2026.3.13` +**Image:** `manticorum67/major-domo-discordapp:2026.3.13` / `:production` +**Server:** akamai (`~/container-data/major-domo`) +**Deploy method:** `.scripts/deploy.sh -y` (docker compose pull + up) + +## Release Summary + +Enforces the previously unused `fa_lock_week` config (week 14) in the transaction builder. After the deadline, `/dropadd` blocks adding players FROM Free Agency while still allowing drops TO FA. Also includes a batch of performance PRs from the backlog that were merged between 2026.3.12 and this tag. + +## Changes + +### New Features +- **Free agency lock enforcement** — `TransactionBuilder.add_move()` now checks `current_week >= fa_lock_week` and rejects FA pickups after the deadline. Dropping to FA remains allowed. Config already existed at `fa_lock_week = 14` but was never enforced. (PR #122) + +### Performance +- Eliminate redundant API calls in trade views (PR #116, issue #94) +- Eliminate redundant GET after create/update and parallelize stats (PR #112, issue #95) +- Parallelize N+1 player/creator lookups with `asyncio.gather()` (PR #118, issue #89) +- Consolidate duplicate `league_service.get_current_state()` calls in `add_move()` into a single shared fetch (PR #122) + +### Bug Fixes +- Fix race condition: use per-user dict for `_checked_teams` in trade views (PR #116) + +## Deployment Notes +- No migrations required +- No config changes needed — `fa_lock_week = 14` already existed in config +- Rollback: `ssh akamai "cd ~/container-data/major-domo && docker pull manticorum67/major-domo-discordapp@sha256:94d59135f127d5863b142136aeeec9d63b06ee63e214ef59f803cedbd92b473e && docker tag manticorum67/major-domo-discordapp@sha256:94d59135f127d5863b142136aeeec9d63b06ee63e214ef59f803cedbd92b473e manticorum67/major-domo-discordapp:production && docker compose up -d discord-app"`