diff --git a/.haml-lint_todo.yml b/.haml-lint_todo.yml
index ec0a9d3a49369b2a181c945e23384d9a42452ec8..26599fcc7be47d6a774edeed03525f3280b3bb54 100644
--- a/.haml-lint_todo.yml
+++ b/.haml-lint_todo.yml
@@ -1,6 +1,6 @@
 # This configuration was generated by
 # `haml-lint --auto-gen-config`
-# on 2023-07-18 11:29:47 -0400 using Haml-Lint version 0.48.0.
+# on 2023-07-18 11:56:05 -0400 using Haml-Lint version 0.48.0.
 # The point is for the user to remove these configuration records
 # one by one as the lints are removed from the code base.
 # Note that changes in the inspected code, or installation of new
@@ -26,13 +26,12 @@ linters:
       - 'app/views/admin/reports/show.html.haml'
       - 'app/views/disputes/strikes/show.html.haml'
 
-  # Offense count: 41
+  # Offense count: 40
   InstanceVariables:
     exclude:
       - 'app/views/admin/reports/_actions.html.haml'
       - 'app/views/admin/roles/_form.html.haml'
       - 'app/views/admin/webhooks/_form.html.haml'
-      - 'app/views/auth/registrations/_sessions.html.haml'
       - 'app/views/auth/registrations/_status.html.haml'
       - 'app/views/auth/sessions/two_factor/_otp_authentication_form.html.haml'
       - 'app/views/authorize_interactions/_post_follow_actions.html.haml'
diff --git a/app/views/auth/registrations/_session.html.haml b/app/views/auth/registrations/_session.html.haml
new file mode 100644
index 0000000000000000000000000000000000000000..11eae566fadb99b4e00d2129b22468df6b2d3ab5
--- /dev/null
+++ b/app/views/auth/registrations/_session.html.haml
@@ -0,0 +1,16 @@
+%tr
+  %td
+    %span{ title: session.user_agent }<
+      = fa_icon "#{session_device_icon(session)} fw", 'aria-label': session_device_icon(session)
+      = ' '
+      = t 'sessions.description', browser: t("sessions.browsers.#{session.browser}", default: session.browser.to_s), platform: t("sessions.platforms.#{session.platform}", default: session.platform.to_s)
+  %td
+    %samp= session.ip
+  %td
+    - if current_session.session_id == session.session_id
+      = t 'sessions.current_session'
+    - else
+      %time.time-ago{ datetime: session.updated_at.iso8601, title: l(session.updated_at) }= l(session.updated_at)
+  %td
+    - if current_session.session_id != session.session_id && !current_account.suspended?
+      = table_link_to 'times', t('sessions.revoke'), settings_session_path(session), method: :delete
diff --git a/app/views/auth/registrations/_sessions.html.haml b/app/views/auth/registrations/_sessions.html.haml
index 55d753c18a70b6da434463743ac31264c252c7e1..929129a5a179b32c722befac39e7cf8e73c0ca5d 100644
--- a/app/views/auth/registrations/_sessions.html.haml
+++ b/app/views/auth/registrations/_sessions.html.haml
@@ -14,21 +14,4 @@
         %th= t 'sessions.activity'
         %th
     %tbody
-      - @sessions.each do |session|
-        %tr
-          %td
-            %span{ title: session.user_agent }<
-              = fa_icon "#{session_device_icon(session)} fw", 'aria-label': session_device_icon(session)
-              = ' '
-              = t 'sessions.description', browser: t("sessions.browsers.#{session.browser}", default: session.browser.to_s), platform: t("sessions.platforms.#{session.platform}", default: session.platform.to_s)
-          %td
-            %samp= session.ip
-          %td
-            - if current_session.session_id == session.session_id
-              = t 'sessions.current_session'
-            - else
-              %time.time-ago{ datetime: session.updated_at.iso8601, title: l(session.updated_at) }= l(session.updated_at)
-          %td
-            - if current_session.session_id != session.session_id && !current_account.suspended?
-              = table_link_to 'times', t('sessions.revoke'), settings_session_path(session), method: :delete
-
+      = render partial: 'session', collection: sessions
diff --git a/app/views/auth/registrations/edit.html.haml b/app/views/auth/registrations/edit.html.haml
index 27d3f331eb86e095be155ff2150c5f89b8e83ffb..3e9b0cb6bda1d9c62e8568a29ced14895854de71 100644
--- a/app/views/auth/registrations/edit.html.haml
+++ b/app/views/auth/registrations/edit.html.haml
@@ -30,7 +30,7 @@
 
 %hr.spacer/
 
-= render 'sessions'
+= render partial: 'sessions', object: @sessions
 
 - unless current_account.suspended?
   %hr.spacer/