diff --git a/constraints.txt b/constraints.txt
index f495bd4..cee28f0 100644
--- a/constraints.txt
+++ b/constraints.txt
@@ -8,7 +8,7 @@ asgiref==3.8.1
     # via
     #   django
     #   django-htmx
-attrs==23.2.0
+attrs==24.1.0
     # via
     #   outcome
     #   trio
@@ -39,7 +39,7 @@ django-environ==0.11.2
     # via -r requirements.in
 django-extensions==3.2.3
     # via -r requirements.in
-django-htmx==1.18.0
+django-htmx==1.19.0
     # via -r requirements.in
 django-linear-migrations==2.13.0
     # via -r requirements.in
@@ -75,7 +75,7 @@ sortedcontainers==2.4.0
     # via trio
 sqlparse==0.5.1
     # via django
-trio==0.26.0
+trio==0.26.1
     # via
     #   selenium
     #   trio-websocket
diff --git a/requirements-dev.txt b/requirements-dev.txt
index 9df809f..240129d 100644
--- a/requirements-dev.txt
+++ b/requirements-dev.txt
@@ -9,13 +9,13 @@ asgiref==3.8.1
     #   -c constraints.txt
     #   django
     #   django-browser-reload
-attrs==23.2.0
+attrs==24.1.0
     # via
     #   -c constraints.txt
     #   hypothesis
     #   outcome
     #   trio
-black==24.4.2
+black==24.8.0
     # via -r requirements-dev.in
 blessed==1.20.0
     # via curtsies
@@ -38,7 +38,7 @@ click==8.1.7
     # via
     #   black
     #   pip-tools
-coverage[toml]==7.6.0
+coverage[toml]==7.6.1
     # via pytest-cov
 curtsies==0.4.2
     # via bpython
@@ -66,7 +66,7 @@ h11==0.14.0
     # via
     #   -c constraints.txt
     #   wsproto
-hypothesis==6.108.5
+hypothesis==6.108.8
     # via -r requirements-dev.in
 identify==2.6.0
     # via pre-commit
@@ -155,7 +155,7 @@ requests==2.32.3
     #   bpython
     #   pytest-base-url
     #   pytest-selenium
-ruff==0.5.5
+ruff==0.5.6
     # via -r requirements-dev.in
 selenium==4.23.1
     # via
@@ -179,7 +179,7 @@ sqlparse==0.5.1
     #   django-debug-toolbar
 tenacity==9.0.0
     # via pytest-selenium
-trio==0.26.0
+trio==0.26.1
     # via
     #   -c constraints.txt
     #   selenium
@@ -205,7 +205,7 @@ websocket-client==1.8.0
     # via
     #   -c constraints.txt
     #   selenium
-wheel==0.43.0
+wheel==0.44.0
     # via pip-tools
 wsproto==1.2.0
     # via
diff --git a/requirements.txt b/requirements.txt
index f01d95c..335517b 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -8,7 +8,7 @@ asgiref==3.8.1
     # via
     #   django
     #   django-htmx
-attrs==23.2.0
+attrs==24.1.0
     # via
     #   outcome
     #   trio
@@ -39,7 +39,7 @@ django-environ==0.11.2
     # via -r requirements.in
 django-extensions==3.2.3
     # via -r requirements.in
-django-htmx==1.18.0
+django-htmx==1.19.0
     # via -r requirements.in
 django-linear-migrations==2.13.0
     # via -r requirements.in
@@ -75,7 +75,7 @@ sortedcontainers==2.4.0
     # via trio
 sqlparse==0.5.1
     # via django
-trio==0.26.0
+trio==0.26.1
     # via
     #   selenium
     #   trio-websocket