diff --git a/.clang-format b/.clang-format
new file mode 100644
index 0000000000000000000000000000000000000000..1acba5a7b179ea4635daf46fa2b2f2efe0b3c101
--- /dev/null
+++ b/.clang-format
@@ -0,0 +1,2 @@
+BasedOnStyle: Google
+SortIncludes: false
diff --git a/.github/workflows/conda/environment_macos_linux.yml b/.github/workflows/conda/environment_macos_linux.yml
index 19d2602249ff0f448416061a8883ab0eebcadf2b..c716d6433a46da73a7a2dc1c677987468aebd337 100644
--- a/.github/workflows/conda/environment_macos_linux.yml
+++ b/.github/workflows/conda/environment_macos_linux.yml
@@ -14,6 +14,7 @@ dependencies:
   - lxml
   - pylatexenc
   - qhull
+  - qhull-static
   - cmake
   - ccache
   - cxx-compiler
diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml
index ff325f2bba47c6de132e5d22f0814f59b54b36d9..a731840efe3f9a50c52921e36a39e6f3e31ca06e 100644
--- a/.pre-commit-config.yaml
+++ b/.pre-commit-config.yaml
@@ -1,8 +1,10 @@
 ci:
   autoupdate_branch: devel
+  autofix_prs: false
+  autoupdate_schedule: quarterly
 repos:
 - repo: https://github.com/astral-sh/ruff-pre-commit
-  rev: v0.4.10
+  rev: v0.5.1
   hooks:
   - id: ruff
     args:
@@ -10,7 +12,7 @@ repos:
     - --exit-non-zero-on-fix
   - id: ruff-format
 - repo: https://github.com/pre-commit/mirrors-clang-format
-  rev: v18.1.7
+  rev: v18.1.8
   hooks:
   - id: clang-format
     args:
diff --git a/src/contact_patch_func_matrix.cpp b/src/contact_patch_func_matrix.cpp
index aec69f679343239468301f7bc100fe5f4ef18881..1a6ad2106a0868a5936307e57772df749c48d308 100644
--- a/src/contact_patch_func_matrix.cpp
+++ b/src/contact_patch_func_matrix.cpp
@@ -382,6 +382,8 @@ ContactPatchFunctionMatrix::ContactPatchFunctionMatrix() {
   contact_patch_matrix[GEOM_OCTREE][BV_KDOP16] = &contact_patch_function_not_implemented;
   contact_patch_matrix[GEOM_OCTREE][BV_KDOP18] = &contact_patch_function_not_implemented;
   contact_patch_matrix[GEOM_OCTREE][BV_KDOP24] = &contact_patch_function_not_implemented;
+  contact_patch_matrix[GEOM_OCTREE][HF_AABB] = &contact_patch_function_not_implemented;
+  contact_patch_matrix[GEOM_OCTREE][HF_OBBRSS] = &contact_patch_function_not_implemented;
 
   contact_patch_matrix[GEOM_BOX][GEOM_OCTREE]  = &contact_patch_function_not_implemented;
   contact_patch_matrix[GEOM_SPHERE][GEOM_OCTREE]  = &contact_patch_function_not_implemented;
@@ -401,6 +403,8 @@ ContactPatchFunctionMatrix::ContactPatchFunctionMatrix() {
   contact_patch_matrix[BV_KDOP16][GEOM_OCTREE]  = &contact_patch_function_not_implemented;
   contact_patch_matrix[BV_KDOP18][GEOM_OCTREE]  = &contact_patch_function_not_implemented;
   contact_patch_matrix[BV_KDOP24][GEOM_OCTREE]  = &contact_patch_function_not_implemented;
+  contact_patch_matrix[HF_AABB][GEOM_OCTREE] = &contact_patch_function_not_implemented;
+  contact_patch_matrix[HF_OBBRSS][GEOM_OCTREE] = &contact_patch_function_not_implemented;
 #endif
   // clang-format on
 }