Conversation
Dependabot didn't merge uv.lock and requirements.txt changes in a single pull request as expected. Change-Id: I0733c119e8dd980adba79e0e6450fc1425931a85
Change-Id: I533a788483729ebaa03a776a8a976898d190dc64
Change-Id: Ie2556349fae8cd5e3c507431953b26b30e12a568
Bumps [py-cord](https://github.com/Pycord-Development/pycord) from 2.6.1 to 2.7.0. - [Release notes](https://github.com/Pycord-Development/pycord/releases) - [Changelog](https://github.com/Pycord-Development/pycord/blob/master/CHANGELOG.md) - [Commits](Pycord-Development/pycord@v2.6.1...v2.7.0) --- updated-dependencies: - dependency-name: py-cord dependency-version: 2.7.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com>
Change-Id: Id05171074983e05a1f03ca23b649bd55aafbbfcb
Change-Id: I2cd6769204dfd589ac76a4c69a55aebea549c090
Bumps [tomlkit](https://github.com/sdispater/tomlkit) from 0.13.3 to 0.14.0. - [Release notes](https://github.com/sdispater/tomlkit/releases) - [Changelog](https://github.com/python-poetry/tomlkit/blob/master/CHANGELOG.md) - [Commits](python-poetry/tomlkit@0.13.3...0.14.0) --- updated-dependencies: - dependency-name: tomlkit dependency-version: 0.14.0 dependency-type: direct:development update-type: version-update:semver-minor ... Change-Id: Icfb59654a5acf4f359f4b2e1141ede14445eaba2 Signed-off-by: dependabot[bot] <support@github.com>
* Added Python 3.13 Change-Id: I421d7869c6c1baa22d456cef022dc7a37810cffb
* Bump black from 25.12.0 to 26.1.0 * Bump pathspec from 0.12.1 to 1.0.3 * Formatting using Black * Sync dependencies using uv Bumps [black](https://github.com/psf/black) from 25.12.0 to 26.1.0. - [Release notes](https://github.com/psf/black/releases) - [Changelog](https://github.com/psf/black/blob/main/CHANGES.md) - [Commits](psf/black@25.12.0...26.1.0) --- updated-dependencies: - dependency-name: black dependency-version: 26.1.0 dependency-type: direct:development update-type: version-update:semver-major ... --- Bumps [pathspec](https://github.com/cpburnz/python-pathspec) from 0.12.1 to 1.0.3. - [Release notes](https://github.com/cpburnz/python-pathspec/releases) - [Changelog](https://github.com/cpburnz/python-pathspec/blob/master/CHANGES.rst) - [Commits](cpburnz/python-pathspec@v0.12.1...v1.0.3) --- updated-dependencies: - dependency-name: pathspec dependency-version: 1.0.3 dependency-type: direct:development update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com>
Bumps [dill](https://github.com/uqfoundation/dill) from 0.4.0 to 0.4.1. - [Release notes](https://github.com/uqfoundation/dill/releases) - [Commits](uqfoundation/dill@0.4.0...0.4.1) Change-Id: I80b0ed32919aa1c2df29461bdd76c5624c4b34a8 --- updated-dependencies: - dependency-name: dill dependency-version: 0.4.1 dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com>
Bumps [packaging](https://github.com/pypa/packaging) from 25.0 to 26.0. - [Release notes](https://github.com/pypa/packaging/releases) - [Changelog](https://github.com/pypa/packaging/blob/main/CHANGELOG.rst) - [Commits](pypa/packaging@25.0...26.0) Change-Id: If1e020814d3e3dbb7062f760554cf40edd7b4812 --- updated-dependencies: - dependency-name: packaging dependency-version: '26.0' dependency-type: direct:development update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com>
Bumps [multidict](https://github.com/aio-libs/multidict) from 6.7.0 to 6.7.1. - [Release notes](https://github.com/aio-libs/multidict/releases) - [Changelog](https://github.com/aio-libs/multidict/blob/master/CHANGES.rst) - [Commits](aio-libs/multidict@v6.7.0...v6.7.1) Change-Id: I62b95c17d63b328ba18319baa41e66b52dbe7f96 --- updated-dependencies: - dependency-name: multidict dependency-version: 6.7.1 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com>
Bumps [pathspec](https://github.com/cpburnz/python-pathspec) from 1.0.3 to 1.0.4. - [Release notes](https://github.com/cpburnz/python-pathspec/releases) - [Changelog](https://github.com/cpburnz/python-pathspec/blob/master/CHANGES.rst) - [Commits](cpburnz/python-pathspec@v1.0.3...v1.0.4) --- updated-dependencies: - dependency-name: pathspec dependency-version: 1.0.4 dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com>
Change-Id: I401dab4a040d2587a518ab49bc5b335cab3a10ca
Change-Id: I766e7bf0fa3d0b0b811116f384476c2198ea8f88
Change-Id: Ibc7dfaf0d2fec68f40a0d366ba15929361b875f9
Bug: #389 Change-Id: I6b68ad7fe526aede117a03e44bd6553fd35a79ff
WalkthroughBumps project to 0.1.15, expands Python support to allow 3.13, updates many dependency pins and hashes, adjusts CI workflows and Dependabot config, removes import-time dotenv load, and adds modal Changes
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~25 minutes Possibly related PRs
Suggested labels
Suggested reviewers
Poem
🚥 Pre-merge checks | ✅ 2 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (2 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Bug: #389 Change-Id: I6b68ad7fe526aede117a03e44bd6553fd35a79ff
There was a problem hiding this comment.
Actionable comments posted: 5
🤖 Fix all issues with AI agents
In @.github/workflows/postcommit.yml:
- Around line 21-26: The job is failing for forked PRs because the
actions/checkout step uses a ref and later push/delete actions require base-repo
access; add a guard so the job (or the specific steps that push/delete) only
runs for non-fork PRs by checking that the PR head repo matches the base repo
(e.g., compare github.event.pull_request.head.repo.full_name to
github.repository or compare owner fields) and apply the same guard to the
delete-cancelled-runs step in test.yml; update the BRANCH_NAME usage to only be
used when that guard allows the checkout/push/delete flow.
In @.github/workflows/test.yml:
- Around line 39-51: The "Delete cancelled runs in the same concurrency group"
step should skip forked PRs to avoid 403s; update its if condition to require
both the existing matrix.python-version check and that the PR head repo is not a
fork (e.g., require github.event.pull_request.head.repo.fork == false or that
github.event.pull_request.head.repo.full_name == github.repository), leaving the
GH_TOKEN and TARGET_SHA env vars and the run block intact; ensure the new if
combines the checks (logical AND) so the deletion only runs for non-fork PRs on
Python 3.12.
In `@cog/class_role.py`:
- Around line 120-134: The clear_items implementation in TokenModal uses a
double-underscore attribute self.__weights which is name-mangled differently
than the parent discord.ui.Modal (causing AttributeError not caught by the
ValueError except); extract this logic into a shared mixin/utility used by both
cog/class_role.py and cog/ctf.py (e.g., a ClearableModalMixin with a clear_items
method) and update TokenModal and the duplicate in cog/ctf.py to call it; inside
the mixin's clear_items, attempt to clear self._children and then clear weights
by first trying self.__weights, and if that raises AttributeError, fall back to
the parent-mangled name (e.g., _Modal__weights) via getattr/setattr or a
try/except that catches AttributeError and clears the fallback attribute so both
modal subclasses work reliably.
In `@cog/ctf.py`:
- Around line 284-298: The clear_items method duplicates a workaround and uses a
double-underscore attribute (__weights) which will be name-mangled incorrectly
in SubmitModal subclasses; update by extracting this logic into a shared mixin
(e.g., ClearableModalMixin) and have both SubmitModal and any other modal
classes use it, and inside the mixin reference the correctly mangled attribute
name (_Modal__weights) alongside _children and handle both ValueError and
AttributeError; replace the existing clear_items implementations in cog/ctf.py
(clear_items) and cog/class_role.py with inheritance from the new mixin so the
duplicate fix is centralized.
In `@RELEASE-NOTES-0.1.md`:
- Around line 17-18: Replace the inconsistent "Upgraded" wording with the
project-standard "Updated" for dependency version changes in the RELEASE-NOTES
entries referencing "(`#385`) Upgraded multidict from 6.7.0 to 6.7.1." and "(`#371`)
Upgraded py-cord from 2.6.1 to 2.7.0." (and any other similar lines in the same
section, e.g., lines 22-26), so each dependency change uses "Updated" instead of
"Upgraded" to match the historical convention.
Change-Id: I2226800dfc8692f19328421d6581345cf4e1e319
Bug: #389 Change-Id: I6b68ad7fe526aede117a03e44bd6553fd35a79ff
Bumps [pytokens](https://github.com/tusharsadhwani/pytokens) from 0.3.0 to 0.4.1. - [Commits](tusharsadhwani/pytokens@0.3.0...0.4.1) --- updated-dependencies: - dependency-name: pytokens dependency-version: 0.4.1 dependency-type: direct:development update-type: version-update:semver-minor ... Bug: #390 Change-Id: Ic29c9f600767f3a5725f025d4f9cb6962f22eaf1 Signed-off-by: dependabot[bot] <support@github.com>
Bumps [py-cord](https://github.com/Pycord-Development/pycord) from 2.7.0 to 2.7.1. - [Release notes](https://github.com/Pycord-Development/pycord/releases) - [Changelog](https://github.com/Pycord-Development/pycord/blob/master/CHANGELOG.md) - [Commits](Pycord-Development/pycord@v2.7.0...v2.7.1) --- updated-dependencies: - dependency-name: py-cord dependency-version: 2.7.1 dependency-type: direct:production update-type: version-update:semver-patch ... Bug: #394 Change-Id: Iebcc67c199a307e8115777fd72bb02040cffdc75 Signed-off-by: dependabot[bot] <support@github.com>
Bumps [flask](https://github.com/pallets/flask) from 3.1.2 to 3.1.3. - [Release notes](https://github.com/pallets/flask/releases) - [Changelog](https://github.com/pallets/flask/blob/main/CHANGES.rst) - [Commits](pallets/flask@3.1.2...3.1.3) --- updated-dependencies: - dependency-name: flask dependency-version: 3.1.3 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com>
Bumps [pylint](https://github.com/pylint-dev/pylint) from 4.0.4 to 4.0.5. - [Release notes](https://github.com/pylint-dev/pylint/releases) - [Commits](pylint-dev/pylint@v4.0.4...v4.0.5) --- updated-dependencies: - dependency-name: pylint dependency-version: 4.0.5 dependency-type: direct:development update-type: version-update:semver-patch ... Bug: #406 Change-Id: Ieac54fd01125ce4ab3beabf2adba39c288c9e259 Signed-off-by: dependabot[bot] <support@github.com>
Bumps [isort](https://github.com/PyCQA/isort) from 7.0.0 to 8.0.0. - [Release notes](https://github.com/PyCQA/isort/releases) - [Changelog](https://github.com/PyCQA/isort/blob/main/CHANGELOG.md) - [Commits](PyCQA/isort@7.0.0...8.0.0) --- updated-dependencies: - dependency-name: isort dependency-version: 8.0.0 dependency-type: direct:development update-type: version-update:semver-major ... Bug: #402 Change-Id: Iebfff42acd6a687d9482991ac6a3b3717ac14bf3 Signed-off-by: dependabot[bot] <support@github.com>
Bumps [platformdirs](https://github.com/tox-dev/platformdirs) from 4.5.1 to 4.9.2. - [Release notes](https://github.com/tox-dev/platformdirs/releases) - [Changelog](https://github.com/tox-dev/platformdirs/blob/main/docs/changelog.rst) - [Commits](tox-dev/platformdirs@4.5.1...4.9.2) --- updated-dependencies: - dependency-name: platformdirs dependency-version: 4.9.2 dependency-type: direct:development update-type: version-update:semver-minor ... Bug: #412 Change-Id: If33538491257fde29aceacdde635300b7f355a2c Signed-off-by: dependabot[bot] <support@github.com>
Bumps [mysql-connector-python](https://github.com/mysql/mysql-connector-python) from 9.5.0 to 9.6.0. - [Changelog](https://github.com/mysql/mysql-connector-python/blob/trunk/CHANGES.txt) - [Commits](mysql/mysql-connector-python@9.5.0...9.6.0) --- updated-dependencies: - dependency-name: mysql-connector-python dependency-version: 9.6.0 dependency-type: direct:production update-type: version-update:semver-minor ... Bug: #382 Change-Id: I5d6c8f5527eb04b4730197394cc013bf7880ef0b Signed-off-by: dependabot[bot] <support@github.com>
Bug: #389 Change-Id: I6b68ad7fe526aede117a03e44bd6553fd35a79ff
Bug: #389 Change-Id: I6b68ad7fe526aede117a03e44bd6553fd35a79ff
Bug: #389 Change-Id: I6b68ad7fe526aede117a03e44bd6553fd35a79ff
Bug: #407 Change-Id: I37f7d9bcdbd29b29d7573d77ee91f62d94b75779
Bug: #389 Change-Id: I6b68ad7fe526aede117a03e44bd6553fd35a79ff
Bug: #389 Change-Id: I6b68ad7fe526aede117a03e44bd6553fd35a79ff
There was a problem hiding this comment.
Actionable comments posted: 2
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In `@RELEASE-NOTES-0.1.md`:
- Line 18: Update the py-cord version text in RELEASE-NOTES-0.1.md to match the
actual pinned dependency version (py-cord==2.7.1) used in pyproject.toml and
requirements.txt: find the occurrences that currently say "2.7.0" (notably the
entries around the referenced lines) and change them to "2.7.1" so the release
notes reflect the shipped version.
In `@requirements.txt`:
- Around line 137-139: The requirements lock currently pins werkzeug==3.1.5
which is vulnerable; update the entry for werkzeug (replace "werkzeug==3.1.5")
to version 3.1.6 and regenerate the corresponding hashes for requirements.txt
(or re-run your dependency lock/compile step) so the new --hash values match
3.1.6; ensure any dependency files or lock artifacts are updated consistently
across the repo after changing the version.
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: ASSERTIVE
Plan: Pro
Run ID: 6fa2cc56-02e1-43a8-abda-a30125dc4d02
⛔ Files ignored due to path filters (1)
uv.lockis excluded by!**/*.lock
📒 Files selected for processing (5)
RELEASE-NOTES-0.1.mdcog/version_info.pypyproject.tomlrequirements.txtrequirements_dev.txt
| flask==3.1.3 \ | ||
| --hash=sha256:0ef0e52b8a9cd932855379197dd8f94047b359ca0a78695144304cb45f87c9eb \ | ||
| --hash=sha256:f4bcbefc124291925f1a26446da31a5178f9483862233b23c0c96a20701f670c |
There was a problem hiding this comment.
🧩 Analysis chain
🏁 Script executed:
#!/bin/bash
set -euo pipefail
# Check advisory status for Werkzeug 3.1.5 (read-only)
python - << 'PY'
import json, urllib.request
query = {
"package": {"name": "werkzeug", "ecosystem": "PyPI"},
"version": "3.1.5"
}
req = urllib.request.Request(
"https://api.osv.dev/v1/query",
data=json.dumps(query).encode(),
headers={"Content-Type":"application/json"}
)
with urllib.request.urlopen(req) as r:
data = json.load(r)
print(json.dumps(data, indent=2))
PYRepository: SCAICT/SCAICT-uwu
Length of output: 2643
🏁 Script executed:
#!/bin/bash
# First, locate and check the requirements.txt file
fd -name "requirements.txt" -type f
# Get the total line count
wc -l requirements.txt 2>/dev/null || echo "File not found in root"
# Check lines around 460 for werkzeug
sed -n '455,465p' requirements.txt 2>/dev/null || echo "Could not read file"Repository: SCAICT/SCAICT-uwu
Length of output: 851
🌐 Web query:
Werkzeug GHSA-29vq-49wr-vm6x security advisory vulnerability details
💡 Result:
GHSA-29vq-49wr-vm6x is a Moderate severity (CVSS 6.3) vulnerability in Werkzeug affecting versions before 3.1.6. It involves the safe_join function on Windows allowing special device names (e.g., NUL, CON) in multi-segment paths like "example/NUL". This bypasses prior filtering from GHSA-hgf8-39gv-g3f2. When send_from_directory serves such a path, the file opens but reading hangs indefinitely, causing Denial of Service (CWE-67: Improper Handling of Windows Device Names). Associated CVE is CVE-2026-27199. Patched in Werkzeug 3.1.6 (released 2026-02-19) via commit f407712fdc60a09c2b3f4fe7db557703e5d9338d. Upgrade to 3.1.6 or later. No specific workarounds mentioned beyond avoiding untrusted paths on Windows or not using send_from_directory with user input.
Citations:
- 1: GHSA-29vq-49wr-vm6x
- 2: https://nvd.nist.gov/vuln/detail/CVE-2026-27199
- 3: https://github.com/pallets/werkzeug/security
- 4: https://www.sentinelone.com/vulnerability-database/cve-2026-27199/
- 5: https://www.cvedetails.com/cve/CVE-2026-27199/
- 6: GHSA-29vq-49wr-vm6x
- 7: https://werkzeug.palletsprojects.com/en/stable/changes/
- 8: https://github.com/pallets/werkzeug/releases
- 9: https://github.com/pallets/werkzeug/blob/main/CHANGES.rst
Bump Werkzeug to 3.1.6 to address security vulnerability.
The lock contains werkzeug==3.1.5 (line 460), which is affected by GHSA-29vq-49wr-vm6x (CVSS 6.3). This Moderate severity vulnerability in the safe_join function on Windows allows device name bypass, potentially causing denial of service. Werkzeug 3.1.6, released 2026-02-19, patches this issue.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@requirements.txt` around lines 137 - 139, The requirements lock currently
pins werkzeug==3.1.5 which is vulnerable; update the entry for werkzeug (replace
"werkzeug==3.1.5") to version 3.1.6 and regenerate the corresponding hashes for
requirements.txt (or re-run your dependency lock/compile step) so the new --hash
values match 3.1.6; ensure any dependency files or lock artifacts are updated
consistently across the repo after changing the version.
Change-Id: Ida8e3b6e060b1c4c7a2e0b2a72c73ef85ad7e829
Bug: #389 Change-Id: I6b68ad7fe526aede117a03e44bd6553fd35a79ff
Bug: #389 Change-Id: I6b68ad7fe526aede117a03e44bd6553fd35a79ff
Bumps [black](https://github.com/psf/black) from 26.1.0 to 26.3.1. - [Release notes](https://github.com/psf/black/releases) - [Changelog](https://github.com/psf/black/blob/main/CHANGES.md) - [Commits](psf/black@26.1.0...26.3.1) --- updated-dependencies: - dependency-name: black dependency-version: 26.3.1 dependency-type: direct:development update-type: version-update:semver-minor ... Bug: #425 Change-Id: Iecf0b7ca837db6bba82751b18e974c3d9aea7e24 Signed-off-by: dependabot[bot] <support@github.com>
Bug: #389 Change-Id: I6b68ad7fe526aede117a03e44bd6553fd35a79ff
Bug: #389 Change-Id: I6b68ad7fe526aede117a03e44bd6553fd35a79ff
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In `@RELEASE-NOTES-0.1.md`:
- Line 26: The release note line "* (`#409`) (0.2.x branch only) Upgraded
hatchling from 1.28.0 to 1.29.0." in RELEASE-NOTES-0.1.md is misleading for the
0.1.15 notes; either remove that bullet if hatchling was not changed in 0.1.x,
or reword it to clarify scope (e.g., "Backport not applied to 0.1.x — change
applies to 0.2.x only") if it must remain; update the text accordingly so the
entry correctly reflects whether the upgrade occurred on the 0.1 branch.
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: ASSERTIVE
Plan: Pro
Run ID: ef79c1e7-05e6-4746-9fa1-456839c41903
⛔ Files ignored due to path filters (1)
uv.lockis excluded by!**/*.lock
📒 Files selected for processing (5)
.github/workflows/notion.ymlRELEASE-NOTES-0.1.mdcog/version_info.pypyproject.tomlrequirements_dev.txt
💤 Files with no reviewable changes (1)
- .github/workflows/notion.yml
Change-Id: I6b68ad7fe526aede117a03e44bd6553fd35a79ff
Summary by CodeRabbit
New Features
Bug Fixes
Documentation
Chores
CI