diff --git a/.github/workflows/test-ruby.yml b/.github/workflows/test-ruby.yml
index 12b991f762..bcf63bb59e 100644
--- a/.github/workflows/test-ruby.yml
+++ b/.github/workflows/test-ruby.yml
@@ -284,8 +284,8 @@ jobs:
ports:
- 6379:6379
- elasticsearch:
- image: docker.elastic.co/elasticsearch/elasticsearch:7.17.13
+ search:
+ image: ${{ matrix.search-image }}
env:
discovery.type: single-node
xpack.security.enabled: false
@@ -315,6 +315,11 @@ jobs:
- '3.0'
- '3.1'
- '.ruby-version'
+ search-image:
+ - docker.elastic.co/elasticsearch/elasticsearch:7.17.13
+ include:
+ - ruby-version: '.ruby-version'
+ search-image: docker.elastic.co/elasticsearch/elasticsearch:8.10.2
steps:
- uses: actions/checkout@v4
diff --git a/Dockerfile b/Dockerfile
index 4d397e3bdf..8e40091add 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -1,6 +1,6 @@
# syntax=docker/dockerfile:1.4
# This needs to be bookworm-slim because the Ruby image is built on bookworm-slim
-ARG NODE_VERSION="20.7-bookworm-slim"
+ARG NODE_VERSION="20.8-bookworm-slim"
FROM ghcr.io/moritzheiber/ruby-jemalloc:3.2.2-slim as ruby
FROM node:${NODE_VERSION} as build
diff --git a/Gemfile.lock b/Gemfile.lock
index 6a516cc328..514d7e114d 100644
--- a/Gemfile.lock
+++ b/Gemfile.lock
@@ -324,7 +324,7 @@ GEM
ruby-progressbar (~> 1.4)
globalid (1.1.0)
activesupport (>= 5.0)
- haml (6.1.2)
+ haml (6.2.0)
temple (>= 0.8.2)
thor
tilt
@@ -333,8 +333,8 @@ GEM
activesupport (>= 5.1)
haml (>= 4.0.6)
railties (>= 5.1)
- haml_lint (0.50.0)
- haml (>= 4.0, < 6.2)
+ haml_lint (0.51.0)
+ haml (>= 4.0)
parallel (~> 1.10)
rainbow
rubocop (>= 1.0)
@@ -749,7 +749,7 @@ GEM
climate_control (>= 0.0.3, < 1.0)
test-prof (1.2.3)
thor (1.2.2)
- tilt (2.2.0)
+ tilt (2.3.0)
timeout (0.4.0)
tpm-key_attestation (0.12.0)
bindata (~> 2.4)
@@ -775,7 +775,7 @@ GEM
unf (0.1.4)
unf_ext
unf_ext (0.0.8.2)
- unicode-display_width (2.4.2)
+ unicode-display_width (2.5.0)
uri (0.12.2)
validate_email (0.1.6)
activemodel (>= 3.0)
diff --git a/app/javascript/mastodon/components/column.jsx b/app/javascript/mastodon/components/column.jsx
index d737bd347c..cf9df3ba27 100644
--- a/app/javascript/mastodon/components/column.jsx
+++ b/app/javascript/mastodon/components/column.jsx
@@ -22,12 +22,6 @@ export default class Column extends PureComponent {
scrollable = document.scrollingElement;
} else {
scrollable = this.node.querySelector('.scrollable');
-
- // Some columns have nested `.scrollable` containers, with the outer one
- // being a wrapper while the actual scrollable content is deeper.
- if (scrollable.classList.contains('scrollable--flex')) {
- scrollable = scrollable?.querySelector('.scrollable') || scrollable;
- }
}
if (!scrollable) {
diff --git a/app/javascript/mastodon/features/explore/index.jsx b/app/javascript/mastodon/features/explore/index.jsx
index 1a66adc87c..fefdc23fab 100644
--- a/app/javascript/mastodon/features/explore/index.jsx
+++ b/app/javascript/mastodon/features/explore/index.jsx
@@ -67,47 +67,45 @@ class Explore extends PureComponent {