Skip to content

Release 2026.04.1 - #2044

Merged
divbzero merged 6 commits into
mainfrom
develop
Apr 29, 2026
Merged

Release 2026.04.1#2044
divbzero merged 6 commits into
mainfrom
develop

Conversation

@divbzero

Copy link
Copy Markdown
Contributor

2026.04.1

divbzero and others added 6 commits April 8, 2026 07:17
🔗 [Jira Ticket M2-10532](https://mindlogger.atlassian.net/browse/M2-10532)

Audit dependencies:

    make audit

Update direct dependencies:

    uv add "aiohttp>=3.13.4"
    uv add "cryptography>=46.0.6"
    uv add "pyjwt>=2.12.0"

Update indirect dependencies:

    uv sync --upgrade-package pyasn1
    uv sync --upgrade-package pygments
    uv sync --upgrade-package requests

Clean up pinned Python version:

- Update .python-version 3.13.1 (patch version) → 3.13 (minor version)
- Update Dockerfile to use .python-version

Before:

    Vulnerabilities detected!
    Checked: 184 dependencies
    Vulnerable: 15 vulnerabilities (8 low, 5 medium, 2 high)

    ┏━━━━━━━━━━━━━━┳━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━┓
    ┃ Package      ┃ Version ┃ Vulnerability ID    ┃ Severity ┃ Fix Versions ┃ Aliases        ┃
    ┡━━━━━━━━━━━━━━╇━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━┩
    │ aiohttp      │ 3.13.3  │ GHSA-p998-jp59-783m │ MEDIUM   │ 3.13.4       │ CVE-2026-34515 │
    │ aiohttp      │ 3.13.3  │ GHSA-hcc4-c3v8-rx92 │ LOW      │ 3.13.4       │ CVE-2026-34513 │
    │ aiohttp      │ 3.13.3  │ GHSA-m5qp-6w8w-w647 │ MEDIUM   │ 3.13.4       │ CVE-2026-34516 │
    │ aiohttp      │ 3.13.3  │ GHSA-3wq7-rqq7-wx6j │ LOW      │ 3.13.4       │ CVE-2026-34517 │
    │ aiohttp      │ 3.13.3  │ GHSA-mwh4-6h8g-pg8w │ LOW      │ 3.13.4       │ CVE-2026-34519 │
    │ aiohttp      │ 3.13.3  │ GHSA-966j-vmvw-g2g9 │ LOW      │ 3.13.4       │ CVE-2026-34518 │
    │ aiohttp      │ 3.13.3  │ GHSA-63hf-3vf5-4wqf │ LOW      │ 3.13.4       │ CVE-2026-34520 │
    │ aiohttp      │ 3.13.3  │ GHSA-c427-h43c-vf67 │ MEDIUM   │ 3.13.4       │ CVE-2026-34525 │
    │ aiohttp      │ 3.13.3  │ GHSA-w2fm-2cpv-w7v5 │ MEDIUM   │ 3.13.4       │ CVE-2026-22815 │
    │ aiohttp      │ 3.13.3  │ GHSA-2vrm-gr82-f7m5 │ LOW      │ 3.13.4       │ CVE-2026-34514 │
    │ cryptography │ 46.0.5  │ GHSA-m959-cc7f-wv43 │ LOW      │ 46.0.6       │ CVE-2026-34073 │
    │ pyasn1       │ 0.6.2   │ GHSA-jr27-m4p2-rc6r │ HIGH     │ 0.6.3        │ CVE-2026-30922 │
    │ Pygments     │ 2.19.2  │ GHSA-5239-wwwm-4pmq │ LOW      │ 2.20.0       │ CVE-2026-4539  │
    │ PyJWT        │ 2.10.1  │ GHSA-752w-5fwx-jx9f │ HIGH     │ 2.12.0       │ CVE-2026-32597 │
    │ requests     │ 2.32.4  │ GHSA-gc5v-m9x4-r6x2 │ MEDIUM   │ 2.33.0       │ CVE-2026-25645 │
    └──────────────┴─────────┴─────────────────────┴──────────┴──────────────┴────────────────┘

After:

    No vulnerabilities or maintenance issues detected!
    Checked: 184 dependencies
    All dependencies appear safe!
🔗 [Jira Ticket M2-10532](https://mindlogger.atlassian.net/browse/M2-10532)

This is a follow-up to #2032. I forgot to push this small fix to include `.python-version` for Docker.
🔗 [Jira Ticket M2-10505](https://mindlogger.atlassian.net/browse/M2-10505)

Changes include:

- NFKC normalize password first
- Disallow all unicode whitespace
- Increase minimum length to 10 grapheme clusters
- Require at least 3 character types of uppercase, lowercase, caseless, number, and symbol
…2037)

Previously, fetching a deleted activity without a version would cause a `NullPointerError` or undefined behavior downstream (attempting `schema.applet_id` on `None`). Now it returns a proper 404.

Changes:

- Add null check after ActivitiesCRUD.get_by_id() to raise ActivityDoeNotExist
- Update test assertion to expect HTTP 404 instead of generic != 200

Notes:

- `ActivityDoeNotExist` already existed in `apps/activities/errors.py`
- Only affects the unversioned code path in `activity_retrieve` (the versioned path was already safe)
…2038)

🔗 [Jira Ticket M2-10505](https://mindlogger.atlassian.net/browse/M2-10505)

Changes include:

- Validate caseless characters in passwords as both uppercase and lowercase.

This is a follow-up to pull request #2036. After thinking through @jodybrookover’s comments, seems to make sense to allow caseless characters in passwords to validate as both uppercase and lowercase letters. There tend to be more caseless characters than uppercase or lowercase letters, and this matches the behavior already implemented on the frontend with:

- ChildMindInstitute/mindlogger-admin#2207
- ChildMindInstitute/mindlogger-app-refactor#1089
- ChildMindInstitute/mindlogger-web-refactor#719
🔗 [Jira Ticket M2-10505](https://mindlogger.atlassian.net/browse/M2-10505)

Changes include:

- Reject passwords that contain standard emoji or regional indicators.

This is a follow-up to pull requests #2036 and #2038 that brings backend password validation in line with what @adeiji implemented for emojis on the front end in:

- ChildMindInstitute/mindlogger-admin#2207
- ChildMindInstitute/mindlogger-app-refactor#1089
- ChildMindInstitute/mindlogger-web-refactor#719
@divbzero
divbzero requested a review from aweiland April 29, 2026 14:22
@divbzero
divbzero merged commit 0346bf1 into main Apr 29, 2026
32 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants