diff --git a/apps/config/package-lock.json b/apps/config/package-lock.json
index c08c044c..36414441 100644
--- a/apps/config/package-lock.json
+++ b/apps/config/package-lock.json
@@ -15,7 +15,7 @@
                 "jiti": "2.4.2",
                 "pkg-types": "2.1.0",
                 "typescript": "5.8.3",
-                "typescript-eslint": "8.31.0"
+                "typescript-eslint": "8.31.1"
             }
         },
         "node_modules/@es-joy/jsdoccomment": {
@@ -332,16 +332,16 @@
             "license": "MIT"
         },
         "node_modules/@typescript-eslint/eslint-plugin": {
-            "version": "8.31.0",
-            "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.31.0.tgz",
-            "integrity": "sha512-evaQJZ/J/S4wisevDvC1KFZkPzRetH8kYZbkgcTRyql3mcKsf+ZFDV1BVWUGTCAW5pQHoqn5gK5b8kn7ou9aFQ==",
+            "version": "8.31.1",
+            "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.31.1.tgz",
+            "integrity": "sha512-oUlH4h1ABavI4F0Xnl8/fOtML/eu8nI2A1nYd+f+55XI0BLu+RIqKoCiZKNo6DtqZBEQm5aNKA20G3Z5w3R6GQ==",
             "license": "MIT",
             "dependencies": {
                 "@eslint-community/regexpp": "^4.10.0",
-                "@typescript-eslint/scope-manager": "8.31.0",
-                "@typescript-eslint/type-utils": "8.31.0",
-                "@typescript-eslint/utils": "8.31.0",
-                "@typescript-eslint/visitor-keys": "8.31.0",
+                "@typescript-eslint/scope-manager": "8.31.1",
+                "@typescript-eslint/type-utils": "8.31.1",
+                "@typescript-eslint/utils": "8.31.1",
+                "@typescript-eslint/visitor-keys": "8.31.1",
                 "graphemer": "^1.4.0",
                 "ignore": "^5.3.1",
                 "natural-compare": "^1.4.0",
@@ -361,15 +361,15 @@
             }
         },
         "node_modules/@typescript-eslint/parser": {
-            "version": "8.31.0",
-            "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.31.0.tgz",
-            "integrity": "sha512-67kYYShjBR0jNI5vsf/c3WG4u+zDnCTHTPqVMQguffaWWFs7artgwKmfwdifl+r6XyM5LYLas/dInj2T0SgJyw==",
+            "version": "8.31.1",
+            "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.31.1.tgz",
+            "integrity": "sha512-oU/OtYVydhXnumd0BobL9rkJg7wFJ9bFFPmSmB/bf/XWN85hlViji59ko6bSKBXyseT9V8l+CN1nwmlbiN0G7Q==",
             "license": "MIT",
             "dependencies": {
-                "@typescript-eslint/scope-manager": "8.31.0",
-                "@typescript-eslint/types": "8.31.0",
-                "@typescript-eslint/typescript-estree": "8.31.0",
-                "@typescript-eslint/visitor-keys": "8.31.0",
+                "@typescript-eslint/scope-manager": "8.31.1",
+                "@typescript-eslint/types": "8.31.1",
+                "@typescript-eslint/typescript-estree": "8.31.1",
+                "@typescript-eslint/visitor-keys": "8.31.1",
                 "debug": "^4.3.4"
             },
             "engines": {
@@ -385,13 +385,13 @@
             }
         },
         "node_modules/@typescript-eslint/scope-manager": {
-            "version": "8.31.0",
-            "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.31.0.tgz",
-            "integrity": "sha512-knO8UyF78Nt8O/B64i7TlGXod69ko7z6vJD9uhSlm0qkAbGeRUSudcm0+K/4CrRjrpiHfBCjMWlc08Vav1xwcw==",
+            "version": "8.31.1",
+            "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.31.1.tgz",
+            "integrity": "sha512-BMNLOElPxrtNQMIsFHE+3P0Yf1z0dJqV9zLdDxN/xLlWMlXK/ApEsVEKzpizg9oal8bAT5Sc7+ocal7AC1HCVw==",
             "license": "MIT",
             "dependencies": {
-                "@typescript-eslint/types": "8.31.0",
-                "@typescript-eslint/visitor-keys": "8.31.0"
+                "@typescript-eslint/types": "8.31.1",
+                "@typescript-eslint/visitor-keys": "8.31.1"
             },
             "engines": {
                 "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
@@ -402,13 +402,13 @@
             }
         },
         "node_modules/@typescript-eslint/type-utils": {
-            "version": "8.31.0",
-            "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.31.0.tgz",
-            "integrity": "sha512-DJ1N1GdjI7IS7uRlzJuEDCgDQix3ZVYVtgeWEyhyn4iaoitpMBX6Ndd488mXSx0xah/cONAkEaYyylDyAeHMHg==",
+            "version": "8.31.1",
+            "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.31.1.tgz",
+            "integrity": "sha512-fNaT/m9n0+dpSp8G/iOQ05GoHYXbxw81x+yvr7TArTuZuCA6VVKbqWYVZrV5dVagpDTtj/O8k5HBEE/p/HM5LA==",
             "license": "MIT",
             "dependencies": {
-                "@typescript-eslint/typescript-estree": "8.31.0",
-                "@typescript-eslint/utils": "8.31.0",
+                "@typescript-eslint/typescript-estree": "8.31.1",
+                "@typescript-eslint/utils": "8.31.1",
                 "debug": "^4.3.4",
                 "ts-api-utils": "^2.0.1"
             },
@@ -425,9 +425,9 @@
             }
         },
         "node_modules/@typescript-eslint/types": {
-            "version": "8.31.0",
-            "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.31.0.tgz",
-            "integrity": "sha512-Ch8oSjVyYyJxPQk8pMiP2FFGYatqXQfQIaMp+TpuuLlDachRWpUAeEu1u9B/v/8LToehUIWyiKcA/w5hUFRKuQ==",
+            "version": "8.31.1",
+            "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.31.1.tgz",
+            "integrity": "sha512-SfepaEFUDQYRoA70DD9GtytljBePSj17qPxFHA/h3eg6lPTqGJ5mWOtbXCk1YrVU1cTJRd14nhaXWFu0l2troQ==",
             "license": "MIT",
             "engines": {
                 "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
@@ -438,13 +438,13 @@
             }
         },
         "node_modules/@typescript-eslint/typescript-estree": {
-            "version": "8.31.0",
-            "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.31.0.tgz",
-            "integrity": "sha512-xLmgn4Yl46xi6aDSZ9KkyfhhtnYI15/CvHbpOy/eR5NWhK/BK8wc709KKwhAR0m4ZKRP7h07bm4BWUYOCuRpQQ==",
+            "version": "8.31.1",
+            "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.31.1.tgz",
+            "integrity": "sha512-kaA0ueLe2v7KunYOyWYtlf/QhhZb7+qh4Yw6Ni5kgukMIG+iP773tjgBiLWIXYumWCwEq3nLW+TUywEp8uEeag==",
             "license": "MIT",
             "dependencies": {
-                "@typescript-eslint/types": "8.31.0",
-                "@typescript-eslint/visitor-keys": "8.31.0",
+                "@typescript-eslint/types": "8.31.1",
+                "@typescript-eslint/visitor-keys": "8.31.1",
                 "debug": "^4.3.4",
                 "fast-glob": "^3.3.2",
                 "is-glob": "^4.0.3",
@@ -464,15 +464,15 @@
             }
         },
         "node_modules/@typescript-eslint/utils": {
-            "version": "8.31.0",
-            "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.31.0.tgz",
-            "integrity": "sha512-qi6uPLt9cjTFxAb1zGNgTob4x9ur7xC6mHQJ8GwEzGMGE9tYniublmJaowOJ9V2jUzxrltTPfdG2nKlWsq0+Ww==",
+            "version": "8.31.1",
+            "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.31.1.tgz",
+            "integrity": "sha512-2DSI4SNfF5T4oRveQ4nUrSjUqjMND0nLq9rEkz0gfGr3tg0S5KB6DhwR+WZPCjzkZl3cH+4x2ce3EsL50FubjQ==",
             "license": "MIT",
             "dependencies": {
                 "@eslint-community/eslint-utils": "^4.4.0",
-                "@typescript-eslint/scope-manager": "8.31.0",
-                "@typescript-eslint/types": "8.31.0",
-                "@typescript-eslint/typescript-estree": "8.31.0"
+                "@typescript-eslint/scope-manager": "8.31.1",
+                "@typescript-eslint/types": "8.31.1",
+                "@typescript-eslint/typescript-estree": "8.31.1"
             },
             "engines": {
                 "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
@@ -487,12 +487,12 @@
             }
         },
         "node_modules/@typescript-eslint/visitor-keys": {
-            "version": "8.31.0",
-            "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.31.0.tgz",
-            "integrity": "sha512-QcGHmlRHWOl93o64ZUMNewCdwKGU6WItOU52H0djgNmn1EOrhVudrDzXz4OycCRSCPwFCDrE2iIt5vmuUdHxuQ==",
+            "version": "8.31.1",
+            "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.31.1.tgz",
+            "integrity": "sha512-I+/rgqOVBn6f0o7NDTmAPWWC6NuqhV174lfYvAm9fUaWeiefLdux9/YI3/nLugEn9L8fcSi0XmpKi/r5u0nmpw==",
             "license": "MIT",
             "dependencies": {
-                "@typescript-eslint/types": "8.31.0",
+                "@typescript-eslint/types": "8.31.1",
                 "eslint-visitor-keys": "^4.2.0"
             },
             "engines": {
@@ -1614,14 +1614,14 @@
             }
         },
         "node_modules/typescript-eslint": {
-            "version": "8.31.0",
-            "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.31.0.tgz",
-            "integrity": "sha512-u+93F0sB0An8WEAPtwxVhFby573E8ckdjwUUQUj9QA4v8JAvgtoDdIyYR3XFwFHq2W1KJ1AurwJCO+w+Y1ixyQ==",
+            "version": "8.31.1",
+            "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.31.1.tgz",
+            "integrity": "sha512-j6DsEotD/fH39qKzXTQRwYYWlt7D+0HmfpOK+DVhwJOFLcdmn92hq3mBb7HlKJHbjjI/gTOqEcc9d6JfpFf/VA==",
             "license": "MIT",
             "dependencies": {
-                "@typescript-eslint/eslint-plugin": "8.31.0",
-                "@typescript-eslint/parser": "8.31.0",
-                "@typescript-eslint/utils": "8.31.0"
+                "@typescript-eslint/eslint-plugin": "8.31.1",
+                "@typescript-eslint/parser": "8.31.1",
+                "@typescript-eslint/utils": "8.31.1"
             },
             "engines": {
                 "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
diff --git a/apps/config/package.json b/apps/config/package.json
index c622e514..37f21076 100644
--- a/apps/config/package.json
+++ b/apps/config/package.json
@@ -11,6 +11,6 @@
         "jiti": "2.4.2",
         "pkg-types": "2.1.0",
         "typescript": "5.8.3",
-        "typescript-eslint": "8.31.0"
+        "typescript-eslint": "8.31.1"
     }
 }
diff --git a/apps/extract-subs/default.nix b/apps/extract-subs/default.nix
index 99de8e8f..aa3f828a 100644
--- a/apps/extract-subs/default.nix
+++ b/apps/extract-subs/default.nix
@@ -5,7 +5,7 @@
 }:
 buildApp {
   src = ./.;
-  npmDepsHash = "sha256-J3XMcq5pxyOddR9EfhoDtaDrCQz+UE5gb1C6XdapRVY=";
+  npmDepsHash = "sha256-EN0L5/C4+3p1gBa3kyT0gs090fd+kxEPwcZMIm2pb88=";
 
   runtimeInputs = [
     ffmpeg-full
diff --git a/apps/extract-subs/package-lock.json b/apps/extract-subs/package-lock.json
index 6489ab26..a0796535 100644
--- a/apps/extract-subs/package-lock.json
+++ b/apps/extract-subs/package-lock.json
@@ -9,7 +9,7 @@
             "version": "0.0.0",
             "dependencies": {
                 "@types/fluent-ffmpeg": "2.1.27",
-                "@types/node": "22.15.2",
+                "@types/node": "22.15.3",
                 "esbuild": "0.25.3",
                 "eslint": "9.25.1",
                 "fluent-ffmpeg": "2.1.3",
@@ -649,9 +649,9 @@
             "license": "MIT"
         },
         "node_modules/@types/node": {
-            "version": "22.15.2",
-            "resolved": "https://registry.npmjs.org/@types/node/-/node-22.15.2.tgz",
-            "integrity": "sha512-uKXqKN9beGoMdBfcaTY1ecwz6ctxuJAcUlwE55938g0ZJ8lRxwAZqRz2AJ4pzpt5dHdTPMB863UZ0ESiFUcP7A==",
+            "version": "22.15.3",
+            "resolved": "https://registry.npmjs.org/@types/node/-/node-22.15.3.tgz",
+            "integrity": "sha512-lX7HFZeHf4QG/J7tBZqrCAXwz9J5RD56Y6MpP0eJkka8p+K0RY/yBTW7CYFJ4VGCclxqOLKmiGP5juQc6MKgcw==",
             "license": "MIT",
             "dependencies": {
                 "undici-types": "~6.21.0"
diff --git a/apps/extract-subs/package.json b/apps/extract-subs/package.json
index d885697d..656e3408 100644
--- a/apps/extract-subs/package.json
+++ b/apps/extract-subs/package.json
@@ -9,7 +9,7 @@
     "dependencies": {
         "@types/fluent-ffmpeg": "2.1.27",
         "fluent-ffmpeg": "2.1.3",
-        "@types/node": "22.15.2",
+        "@types/node": "22.15.3",
         "esbuild": "0.25.3",
         "eslint": "9.25.1",
         "jiti": "2.4.2",
diff --git a/apps/list2series/default.nix b/apps/list2series/default.nix
index a81cebd2..189a5220 100644
--- a/apps/list2series/default.nix
+++ b/apps/list2series/default.nix
@@ -1,7 +1,7 @@
 {buildApp, ...}:
 buildApp {
   src = ./.;
-  npmDepsHash = "sha256-7DNUgSJ9lS2McrxzgjjPjNBxGEx1XYqTpGpd5eJkBNU=";
+  npmDepsHash = "sha256-nsAJM8BnZOmXOUazZNYu7fBK7BqKVNxVqQVyqqumaCI=";
 
   runtimeInputs = [];
 
diff --git a/apps/list2series/package-lock.json b/apps/list2series/package-lock.json
index a3ba800e..6b348fc7 100644
--- a/apps/list2series/package-lock.json
+++ b/apps/list2series/package-lock.json
@@ -8,7 +8,7 @@
             "name": "list2series",
             "version": "0.0.0",
             "dependencies": {
-                "@types/node": "22.15.2",
+                "@types/node": "22.15.3",
                 "axios": "1.9.0",
                 "esbuild": "0.25.3",
                 "eslint": "9.25.1",
@@ -35,7 +35,7 @@
                 "jiti": "2.4.2",
                 "pkg-types": "2.1.0",
                 "typescript": "5.8.3",
-                "typescript-eslint": "8.31.0"
+                "typescript-eslint": "8.31.1"
             }
         },
         "node_modules/@esbuild/aix-ppc64": {
@@ -640,9 +640,9 @@
             "license": "MIT"
         },
         "node_modules/@types/node": {
-            "version": "22.15.2",
-            "resolved": "https://registry.npmjs.org/@types/node/-/node-22.15.2.tgz",
-            "integrity": "sha512-uKXqKN9beGoMdBfcaTY1ecwz6ctxuJAcUlwE55938g0ZJ8lRxwAZqRz2AJ4pzpt5dHdTPMB863UZ0ESiFUcP7A==",
+            "version": "22.15.3",
+            "resolved": "https://registry.npmjs.org/@types/node/-/node-22.15.3.tgz",
+            "integrity": "sha512-lX7HFZeHf4QG/J7tBZqrCAXwz9J5RD56Y6MpP0eJkka8p+K0RY/yBTW7CYFJ4VGCclxqOLKmiGP5juQc6MKgcw==",
             "license": "MIT",
             "dependencies": {
                 "undici-types": "~6.21.0"
diff --git a/apps/list2series/package.json b/apps/list2series/package.json
index 3ce924b1..0af09a90 100644
--- a/apps/list2series/package.json
+++ b/apps/list2series/package.json
@@ -7,7 +7,7 @@
         "build": "node_ver=$(node -v); esbuild src/app.ts --bundle --platform=node --target=\"node${node_ver:1:2}\" --outfile=out/bin/app.cjs"
     },
     "dependencies": {
-        "@types/node": "22.15.2",
+        "@types/node": "22.15.3",
         "axios": "1.9.0",
         "esbuild": "0.25.3",
         "eslint": "9.25.1",
diff --git a/apps/mc-mods/default.nix b/apps/mc-mods/default.nix
index 9a165997..10f8464f 100644
--- a/apps/mc-mods/default.nix
+++ b/apps/mc-mods/default.nix
@@ -5,7 +5,7 @@
 }:
 buildApp {
   src = ./.;
-  npmDepsHash = "sha256-3qTbuR1E5/ftEIU/DhhgXNyeXk4LRPhKoufSUwgVLBA=";
+  npmDepsHash = "sha256-8Vj/h0eYZH+U8Bx5iyJJzhdqenU+BJVMi0PkJFcZ4oQ=";
 
   runtimeInputs = [
     nodejs_latest
diff --git a/apps/mc-mods/package-lock.json b/apps/mc-mods/package-lock.json
index bc78c301..46579c11 100644
--- a/apps/mc-mods/package-lock.json
+++ b/apps/mc-mods/package-lock.json
@@ -8,7 +8,7 @@
             "name": "mc-mods",
             "version": "0.0.0",
             "dependencies": {
-                "@types/node": "22.15.2",
+                "@types/node": "22.15.3",
                 "esbuild": "0.25.3",
                 "eslint": "9.25.1",
                 "jiti": "2.4.2",
@@ -34,7 +34,7 @@
                 "jiti": "2.4.2",
                 "pkg-types": "2.1.0",
                 "typescript": "5.8.3",
-                "typescript-eslint": "8.31.0"
+                "typescript-eslint": "8.31.1"
             }
         },
         "node_modules/@esbuild/aix-ppc64": {
@@ -639,9 +639,9 @@
             "license": "MIT"
         },
         "node_modules/@types/node": {
-            "version": "22.15.2",
-            "resolved": "https://registry.npmjs.org/@types/node/-/node-22.15.2.tgz",
-            "integrity": "sha512-uKXqKN9beGoMdBfcaTY1ecwz6ctxuJAcUlwE55938g0ZJ8lRxwAZqRz2AJ4pzpt5dHdTPMB863UZ0ESiFUcP7A==",
+            "version": "22.15.3",
+            "resolved": "https://registry.npmjs.org/@types/node/-/node-22.15.3.tgz",
+            "integrity": "sha512-lX7HFZeHf4QG/J7tBZqrCAXwz9J5RD56Y6MpP0eJkka8p+K0RY/yBTW7CYFJ4VGCclxqOLKmiGP5juQc6MKgcw==",
             "license": "MIT",
             "dependencies": {
                 "undici-types": "~6.21.0"
diff --git a/apps/mc-mods/package.json b/apps/mc-mods/package.json
index b99602b9..de2159af 100644
--- a/apps/mc-mods/package.json
+++ b/apps/mc-mods/package.json
@@ -7,7 +7,7 @@
         "build": "node_ver=$(node -v); esbuild src/app.ts --bundle --platform=node --target=\"node${node_ver:1:2}\" --outfile=out/bin/app.cjs"
     },
     "dependencies": {
-        "@types/node": "22.15.2",
+        "@types/node": "22.15.3",
         "esbuild": "0.25.3",
         "eslint": "9.25.1",
         "jiti": "2.4.2",
diff --git a/apps/pin-inputs/default.nix b/apps/pin-inputs/default.nix
index f041124b..06b4a8c0 100644
--- a/apps/pin-inputs/default.nix
+++ b/apps/pin-inputs/default.nix
@@ -1,7 +1,7 @@
 {buildApp, ...}:
 buildApp {
   src = ./.;
-  npmDepsHash = "sha256-3Z5iR8jtU2g42CycUMMYfM3cOa6kKcJwwY3ui94caZY=";
+  npmDepsHash = "sha256-aLhrUC6cael2GOva613MUO4Sc4PLEw9kTLhNmATuphU=";
 
   runtimeInputs = [];
 
diff --git a/apps/pin-inputs/package-lock.json b/apps/pin-inputs/package-lock.json
index 2ab263f3..ff397f21 100644
--- a/apps/pin-inputs/package-lock.json
+++ b/apps/pin-inputs/package-lock.json
@@ -8,7 +8,7 @@
             "name": "pin-inputs",
             "version": "0.0.0",
             "dependencies": {
-                "@types/node": "22.15.2",
+                "@types/node": "22.15.3",
                 "esbuild": "0.25.3",
                 "eslint": "9.25.1",
                 "jiti": "2.4.2",
@@ -34,7 +34,7 @@
                 "jiti": "2.4.2",
                 "pkg-types": "2.1.0",
                 "typescript": "5.8.3",
-                "typescript-eslint": "8.31.0"
+                "typescript-eslint": "8.31.1"
             }
         },
         "node_modules/@esbuild/aix-ppc64": {
@@ -639,9 +639,9 @@
             "license": "MIT"
         },
         "node_modules/@types/node": {
-            "version": "22.15.2",
-            "resolved": "https://registry.npmjs.org/@types/node/-/node-22.15.2.tgz",
-            "integrity": "sha512-uKXqKN9beGoMdBfcaTY1ecwz6ctxuJAcUlwE55938g0ZJ8lRxwAZqRz2AJ4pzpt5dHdTPMB863UZ0ESiFUcP7A==",
+            "version": "22.15.3",
+            "resolved": "https://registry.npmjs.org/@types/node/-/node-22.15.3.tgz",
+            "integrity": "sha512-lX7HFZeHf4QG/J7tBZqrCAXwz9J5RD56Y6MpP0eJkka8p+K0RY/yBTW7CYFJ4VGCclxqOLKmiGP5juQc6MKgcw==",
             "license": "MIT",
             "dependencies": {
                 "undici-types": "~6.21.0"
diff --git a/apps/pin-inputs/package.json b/apps/pin-inputs/package.json
index 4490eba8..9994ac57 100644
--- a/apps/pin-inputs/package.json
+++ b/apps/pin-inputs/package.json
@@ -7,7 +7,7 @@
         "build": "node_ver=$(node -v); esbuild src/app.ts --bundle --platform=node --target=\"node${node_ver:1:2}\" --outfile=out/bin/app.cjs"
     },
     "dependencies": {
-        "@types/node": "22.15.2",
+        "@types/node": "22.15.3",
         "esbuild": "0.25.3",
         "eslint": "9.25.1",
         "jiti": "2.4.2",
diff --git a/apps/update-sources/default.nix b/apps/update-sources/default.nix
index ed91a487..dd7ea4ad 100644
--- a/apps/update-sources/default.nix
+++ b/apps/update-sources/default.nix
@@ -12,7 +12,7 @@
 }:
 buildApp {
   src = ./.;
-  npmDepsHash = "sha256-lQ2RCJ1hvx3lMkF9YKY80IlTUiRLguQOBqIrSbFggLw=";
+  npmDepsHash = "sha256-D5RK/bbpJZdSu6FsbK1cqLsp4RLiJTexhyoPnTJLIsg=";
 
   runtimeInputs = [
     curl
diff --git a/apps/update-sources/package-lock.json b/apps/update-sources/package-lock.json
index f419eefa..b5033ff8 100644
--- a/apps/update-sources/package-lock.json
+++ b/apps/update-sources/package-lock.json
@@ -8,7 +8,7 @@
             "name": "update-sources",
             "version": "0.0.0",
             "dependencies": {
-                "@types/node": "22.15.2",
+                "@types/node": "22.15.3",
                 "esbuild": "0.25.3",
                 "eslint": "9.25.1",
                 "jiti": "2.4.2",
@@ -639,9 +639,9 @@
             "license": "MIT"
         },
         "node_modules/@types/node": {
-            "version": "22.15.2",
-            "resolved": "https://registry.npmjs.org/@types/node/-/node-22.15.2.tgz",
-            "integrity": "sha512-uKXqKN9beGoMdBfcaTY1ecwz6ctxuJAcUlwE55938g0ZJ8lRxwAZqRz2AJ4pzpt5dHdTPMB863UZ0ESiFUcP7A==",
+            "version": "22.15.3",
+            "resolved": "https://registry.npmjs.org/@types/node/-/node-22.15.3.tgz",
+            "integrity": "sha512-lX7HFZeHf4QG/J7tBZqrCAXwz9J5RD56Y6MpP0eJkka8p+K0RY/yBTW7CYFJ4VGCclxqOLKmiGP5juQc6MKgcw==",
             "license": "MIT",
             "dependencies": {
                 "undici-types": "~6.21.0"
diff --git a/apps/update-sources/package.json b/apps/update-sources/package.json
index dd2c8cc4..17182e28 100644
--- a/apps/update-sources/package.json
+++ b/apps/update-sources/package.json
@@ -7,7 +7,7 @@
         "build": "node_ver=$(node -v); esbuild src/app.ts --bundle --platform=node --target=\"node${node_ver:1:2}\" --outfile=out/bin/app.cjs"
     },
     "dependencies": {
-        "@types/node": "22.15.2",
+        "@types/node": "22.15.3",
         "esbuild": "0.25.3",
         "eslint": "9.25.1",
         "jiti": "2.4.2",
diff --git a/configurations/nos/modules/docker/immich/images/machine-learning.nix b/configurations/nos/modules/docker/immich/images/machine-learning.nix
index 285f8b8a..05123661 100644
--- a/configurations/nos/modules/docker/immich/images/machine-learning.nix
+++ b/configurations/nos/modules/docker/immich/images/machine-learning.nix
@@ -1,8 +1,8 @@
 pkgs:
 pkgs.dockerTools.pullImage rec {
   imageName = "ghcr.io/immich-app/immich-machine-learning";
-  imageDigest = "sha256:48fc9c8315a00e1856cb9dff1db626ec8c7f1e424d60a6002c7f04ce94fdfa9a";
-  hash = "sha256-ZTsAMlqByJFznaZH+bvYD2qtjG811q+J2r2l78/eaa0=";
+  imageDigest = "sha256:f45063889794008cfc02fcf9d359b55fe37d1f8ebaf89653c89e1dd0e876eb7d";
+  hash = "sha256-+wfQue+miBX+gNtOgs/UTWBMt2lriJcAGwhnr6QWzK8=";
   finalImageName = imageName;
   finalImageTag = "release";
 }
diff --git a/configurations/nos/modules/docker/immich/images/server.nix b/configurations/nos/modules/docker/immich/images/server.nix
index e3d3d37e..e709fb88 100644
--- a/configurations/nos/modules/docker/immich/images/server.nix
+++ b/configurations/nos/modules/docker/immich/images/server.nix
@@ -1,8 +1,8 @@
 pkgs:
 pkgs.dockerTools.pullImage rec {
   imageName = "ghcr.io/immich-app/immich-server";
-  imageDigest = "sha256:71cb6d2a6587f6481ae22b1cd743c74f163acbf26ade4df890e4425bb1f2e891";
-  hash = "sha256-M/t9NcZGRitWM9+rHiFjd8PreKqnW2EsHD1rS+nBH6M=";
+  imageDigest = "sha256:6680d88486251b0264a78a1934fe82eef875555aa6d84d703a0980328a5d5c31";
+  hash = "sha256-NGvRah2apg5j3/X7rCdq5DJc0dFB90/JksbmU49Twa8=";
   finalImageName = imageName;
   finalImageTag = "release";
 }
diff --git a/flake.lock b/flake.lock
index 8aae9db8..f236ffd4 100644
--- a/flake.lock
+++ b/flake.lock
@@ -441,11 +441,11 @@
     "gtk-theme-src": {
       "flake": false,
       "locked": {
-        "lastModified": 1745008666,
-        "narHash": "sha256-jOhG8k3pn+sWFTyYIjtmGyi1k6Eye94s7p6wHHsP1W4=",
+        "lastModified": 1745785192,
+        "narHash": "sha256-T0X0h4Bz3sy5jqtB1PkpjFnB8jO3CehOxgRwPPG54Ds=",
         "owner": "dracula",
         "repo": "gtk",
-        "rev": "82837065c824158d4242c19ea7dded7645b9a9f1",
+        "rev": "3834a1bac175b226cff6b1c94faac9aba2819bd5",
         "type": "github"
       },
       "original": {
@@ -461,11 +461,11 @@
         ]
       },
       "locked": {
-        "lastModified": 1745782215,
-        "narHash": "sha256-mx27J2HYQT+nGXTyUWKrUuxRzpr1FVVr59ZH4oNzOyw=",
+        "lastModified": 1745858959,
+        "narHash": "sha256-B1FQwPCFLL3cbHc2nxT3/UI1uprHp2h1EA6M2JVe0oQ=",
         "owner": "nix-community",
         "repo": "home-manager",
-        "rev": "7b2aae3fb39928aecc5e41c10a9c87c4881614d5",
+        "rev": "d0d9d0a1454d5a0200693570618084d80a8b336c",
         "type": "github"
       },
       "original": {
@@ -542,11 +542,11 @@
         ]
       },
       "locked": {
-        "lastModified": 1745682254,
-        "narHash": "sha256-bdkyE8HDfeOj9IOeSnh4ST+Sxte7ucY37ImOUTBrr5g=",
+        "lastModified": 1745790590,
+        "narHash": "sha256-E/GvnES9Rf3qQWy/w+Ru5s/U76zN+bYBIck1g/YZPw0=",
         "owner": "horriblename",
         "repo": "hyprgrass",
-        "rev": "9125826ccc16bd3722fd07d74e7c5677b9c6d128",
+        "rev": "9b548876dcd30924047feed6b3b3086142d53ab4",
         "type": "github"
       },
       "original": {
@@ -577,11 +577,11 @@
         "xdph": "xdph"
       },
       "locked": {
-        "lastModified": 1745756886,
-        "narHash": "sha256-oXfvqaWENRd8CaxbQEHntH9PzNsjUaWalBIcG7xk/Lw=",
+        "lastModified": 1745795931,
+        "narHash": "sha256-i4zlEa2lnANuOZA1aA/X0cNGM7x9MLZqqmKP6fwfPEA=",
         "owner": "hyprwm",
         "repo": "Hyprland",
-        "rev": "0302bfdc2207f9b5482fb07aa6052e7f6cb237ca",
+        "rev": "f5c5cfa960c157c8df50b496f621290234ac4505",
         "type": "github"
       },
       "original": {
@@ -956,11 +956,11 @@
     "modernz-src": {
       "flake": false,
       "locked": {
-        "lastModified": 1745028019,
-        "narHash": "sha256-7d1+7HtuqNrw5n68xorUv6gimbFFHS9nUQeGnIh1zhg=",
+        "lastModified": 1745861103,
+        "narHash": "sha256-IOdYF47qc456Ffzi6NNsr2nsskg+MBj+Y7xHVPdvPKg=",
         "owner": "Samillion",
         "repo": "ModernZ",
-        "rev": "6c49917529ab419a539d04f355a4760279964e57",
+        "rev": "7b0a1ab702a4f2773eb20ad1c77ec257bdeca22d",
         "type": "github"
       },
       "original": {
@@ -1112,11 +1112,11 @@
         ]
       },
       "locked": {
-        "lastModified": 1745781855,
-        "narHash": "sha256-0y0x9VF7UgNXyWZpgR55fVjzAxp1hd6aEwcff9NEFfs=",
+        "lastModified": 1745850287,
+        "narHash": "sha256-YsVPbA+6ytOz4hh7lSHieRzHGBw7uglWNQ47tPo2jIU=",
         "owner": "Mic92",
         "repo": "nix-fast-build",
-        "rev": "0e5cbf407f2189941a766906bafe919b71f9126f",
+        "rev": "fc256b5e39013bb147e230a4fec513bd72c3b699",
         "type": "github"
       },
       "original": {
@@ -1775,11 +1775,11 @@
     "spotifyplus-src": {
       "flake": false,
       "locked": {
-        "lastModified": 1745728452,
-        "narHash": "sha256-mvKbDchFvD1Z4BmisSWCidwLWBBQL7rFM7CT717ZUr0=",
+        "lastModified": 1745785499,
+        "narHash": "sha256-zKJPUjMlLD9MHeqr70wEBHc6dhLCvPj9uDFR0hXi4hs=",
         "owner": "thlucas1",
         "repo": "homeassistantcomponent_spotifyplus",
-        "rev": "e2b82ab5371636f5b1c13f78264667c1732aa4d5",
+        "rev": "bca176bb4a35299a8378d9ec504593e268c87868",
         "type": "github"
       },
       "original": {
@@ -1842,11 +1842,11 @@
         ]
       },
       "locked": {
-        "lastModified": 1745780832,
-        "narHash": "sha256-jGzkZoJWx+nJnPe0Z2xQBUOqMKuR1slVFQrMjFTKgeM=",
+        "lastModified": 1745848521,
+        "narHash": "sha256-gNrTO3pEjmu3WiuYrUHJrTGCFw9v+qZXCFmX/Vjf5WI=",
         "owner": "numtide",
         "repo": "treefmt-nix",
-        "rev": "b2b6c027d708fbf4b01c9c11f6e80f2800b5a624",
+        "rev": "763f1ce0dd12fe44ce6a5c6ea3f159d438571874",
         "type": "github"
       },
       "original": {
@@ -1958,11 +1958,11 @@
     "wakewords-src": {
       "flake": false,
       "locked": {
-        "lastModified": 1745474691,
-        "narHash": "sha256-XpfmqO2x0AnY88q5eNg+OHO9slYVoI3UHXxICazkM54=",
+        "lastModified": 1745833925,
+        "narHash": "sha256-94Bm3WWIx/dP88RbmSCOJvE9qPYcaPhgkfGuNyNSYek=",
         "owner": "fwartner",
         "repo": "home-assistant-wakewords-collection",
-        "rev": "755eded16d3f6feeb8556d2044357f07713e04e2",
+        "rev": "c7fbdcef2342974f05831dddae15462fd00bad4f",
         "type": "github"
       },
       "original": {
diff --git a/modules/ags/config/default.nix b/modules/ags/config/default.nix
index e17ec9e4..310ebe4b 100644
--- a/modules/ags/config/default.nix
+++ b/modules/ags/config/default.nix
@@ -1,3 +1,3 @@
 {
-  npmDepsHash = "sha256-vFmoRCPuSV8MJPzvnYPOEivmKKRdpWwCJ5ij3UhUB6I=";
+  npmDepsHash = "sha256-KRL8LERrp1xX2KxjZtJxUKD2mzoQcZry7EO9PV3mStE=";
 }
diff --git a/modules/ags/config/package-lock.json b/modules/ags/config/package-lock.json
index b935798c..f5958141 100644
--- a/modules/ags/config/package-lock.json
+++ b/modules/ags/config/package-lock.json
@@ -15,7 +15,7 @@
                 "eslint-plugin-jsdoc": "50.6.11",
                 "fzf": "0.5.2",
                 "jiti": "2.4.2",
-                "typescript-eslint": "8.31.0"
+                "typescript-eslint": "8.31.1"
             }
         },
         "node_modules/@es-joy/jsdoccomment": {
@@ -332,16 +332,16 @@
             "license": "MIT"
         },
         "node_modules/@typescript-eslint/eslint-plugin": {
-            "version": "8.31.0",
-            "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.31.0.tgz",
-            "integrity": "sha512-evaQJZ/J/S4wisevDvC1KFZkPzRetH8kYZbkgcTRyql3mcKsf+ZFDV1BVWUGTCAW5pQHoqn5gK5b8kn7ou9aFQ==",
+            "version": "8.31.1",
+            "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.31.1.tgz",
+            "integrity": "sha512-oUlH4h1ABavI4F0Xnl8/fOtML/eu8nI2A1nYd+f+55XI0BLu+RIqKoCiZKNo6DtqZBEQm5aNKA20G3Z5w3R6GQ==",
             "license": "MIT",
             "dependencies": {
                 "@eslint-community/regexpp": "^4.10.0",
-                "@typescript-eslint/scope-manager": "8.31.0",
-                "@typescript-eslint/type-utils": "8.31.0",
-                "@typescript-eslint/utils": "8.31.0",
-                "@typescript-eslint/visitor-keys": "8.31.0",
+                "@typescript-eslint/scope-manager": "8.31.1",
+                "@typescript-eslint/type-utils": "8.31.1",
+                "@typescript-eslint/utils": "8.31.1",
+                "@typescript-eslint/visitor-keys": "8.31.1",
                 "graphemer": "^1.4.0",
                 "ignore": "^5.3.1",
                 "natural-compare": "^1.4.0",
@@ -361,15 +361,15 @@
             }
         },
         "node_modules/@typescript-eslint/parser": {
-            "version": "8.31.0",
-            "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.31.0.tgz",
-            "integrity": "sha512-67kYYShjBR0jNI5vsf/c3WG4u+zDnCTHTPqVMQguffaWWFs7artgwKmfwdifl+r6XyM5LYLas/dInj2T0SgJyw==",
+            "version": "8.31.1",
+            "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.31.1.tgz",
+            "integrity": "sha512-oU/OtYVydhXnumd0BobL9rkJg7wFJ9bFFPmSmB/bf/XWN85hlViji59ko6bSKBXyseT9V8l+CN1nwmlbiN0G7Q==",
             "license": "MIT",
             "dependencies": {
-                "@typescript-eslint/scope-manager": "8.31.0",
-                "@typescript-eslint/types": "8.31.0",
-                "@typescript-eslint/typescript-estree": "8.31.0",
-                "@typescript-eslint/visitor-keys": "8.31.0",
+                "@typescript-eslint/scope-manager": "8.31.1",
+                "@typescript-eslint/types": "8.31.1",
+                "@typescript-eslint/typescript-estree": "8.31.1",
+                "@typescript-eslint/visitor-keys": "8.31.1",
                 "debug": "^4.3.4"
             },
             "engines": {
@@ -385,13 +385,13 @@
             }
         },
         "node_modules/@typescript-eslint/scope-manager": {
-            "version": "8.31.0",
-            "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.31.0.tgz",
-            "integrity": "sha512-knO8UyF78Nt8O/B64i7TlGXod69ko7z6vJD9uhSlm0qkAbGeRUSudcm0+K/4CrRjrpiHfBCjMWlc08Vav1xwcw==",
+            "version": "8.31.1",
+            "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.31.1.tgz",
+            "integrity": "sha512-BMNLOElPxrtNQMIsFHE+3P0Yf1z0dJqV9zLdDxN/xLlWMlXK/ApEsVEKzpizg9oal8bAT5Sc7+ocal7AC1HCVw==",
             "license": "MIT",
             "dependencies": {
-                "@typescript-eslint/types": "8.31.0",
-                "@typescript-eslint/visitor-keys": "8.31.0"
+                "@typescript-eslint/types": "8.31.1",
+                "@typescript-eslint/visitor-keys": "8.31.1"
             },
             "engines": {
                 "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
@@ -402,13 +402,13 @@
             }
         },
         "node_modules/@typescript-eslint/type-utils": {
-            "version": "8.31.0",
-            "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.31.0.tgz",
-            "integrity": "sha512-DJ1N1GdjI7IS7uRlzJuEDCgDQix3ZVYVtgeWEyhyn4iaoitpMBX6Ndd488mXSx0xah/cONAkEaYyylDyAeHMHg==",
+            "version": "8.31.1",
+            "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.31.1.tgz",
+            "integrity": "sha512-fNaT/m9n0+dpSp8G/iOQ05GoHYXbxw81x+yvr7TArTuZuCA6VVKbqWYVZrV5dVagpDTtj/O8k5HBEE/p/HM5LA==",
             "license": "MIT",
             "dependencies": {
-                "@typescript-eslint/typescript-estree": "8.31.0",
-                "@typescript-eslint/utils": "8.31.0",
+                "@typescript-eslint/typescript-estree": "8.31.1",
+                "@typescript-eslint/utils": "8.31.1",
                 "debug": "^4.3.4",
                 "ts-api-utils": "^2.0.1"
             },
@@ -425,9 +425,9 @@
             }
         },
         "node_modules/@typescript-eslint/types": {
-            "version": "8.31.0",
-            "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.31.0.tgz",
-            "integrity": "sha512-Ch8oSjVyYyJxPQk8pMiP2FFGYatqXQfQIaMp+TpuuLlDachRWpUAeEu1u9B/v/8LToehUIWyiKcA/w5hUFRKuQ==",
+            "version": "8.31.1",
+            "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.31.1.tgz",
+            "integrity": "sha512-SfepaEFUDQYRoA70DD9GtytljBePSj17qPxFHA/h3eg6lPTqGJ5mWOtbXCk1YrVU1cTJRd14nhaXWFu0l2troQ==",
             "license": "MIT",
             "engines": {
                 "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
@@ -438,13 +438,13 @@
             }
         },
         "node_modules/@typescript-eslint/typescript-estree": {
-            "version": "8.31.0",
-            "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.31.0.tgz",
-            "integrity": "sha512-xLmgn4Yl46xi6aDSZ9KkyfhhtnYI15/CvHbpOy/eR5NWhK/BK8wc709KKwhAR0m4ZKRP7h07bm4BWUYOCuRpQQ==",
+            "version": "8.31.1",
+            "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.31.1.tgz",
+            "integrity": "sha512-kaA0ueLe2v7KunYOyWYtlf/QhhZb7+qh4Yw6Ni5kgukMIG+iP773tjgBiLWIXYumWCwEq3nLW+TUywEp8uEeag==",
             "license": "MIT",
             "dependencies": {
-                "@typescript-eslint/types": "8.31.0",
-                "@typescript-eslint/visitor-keys": "8.31.0",
+                "@typescript-eslint/types": "8.31.1",
+                "@typescript-eslint/visitor-keys": "8.31.1",
                 "debug": "^4.3.4",
                 "fast-glob": "^3.3.2",
                 "is-glob": "^4.0.3",
@@ -464,15 +464,15 @@
             }
         },
         "node_modules/@typescript-eslint/utils": {
-            "version": "8.31.0",
-            "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.31.0.tgz",
-            "integrity": "sha512-qi6uPLt9cjTFxAb1zGNgTob4x9ur7xC6mHQJ8GwEzGMGE9tYniublmJaowOJ9V2jUzxrltTPfdG2nKlWsq0+Ww==",
+            "version": "8.31.1",
+            "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.31.1.tgz",
+            "integrity": "sha512-2DSI4SNfF5T4oRveQ4nUrSjUqjMND0nLq9rEkz0gfGr3tg0S5KB6DhwR+WZPCjzkZl3cH+4x2ce3EsL50FubjQ==",
             "license": "MIT",
             "dependencies": {
                 "@eslint-community/eslint-utils": "^4.4.0",
-                "@typescript-eslint/scope-manager": "8.31.0",
-                "@typescript-eslint/types": "8.31.0",
-                "@typescript-eslint/typescript-estree": "8.31.0"
+                "@typescript-eslint/scope-manager": "8.31.1",
+                "@typescript-eslint/types": "8.31.1",
+                "@typescript-eslint/typescript-estree": "8.31.1"
             },
             "engines": {
                 "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
@@ -487,12 +487,12 @@
             }
         },
         "node_modules/@typescript-eslint/visitor-keys": {
-            "version": "8.31.0",
-            "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.31.0.tgz",
-            "integrity": "sha512-QcGHmlRHWOl93o64ZUMNewCdwKGU6WItOU52H0djgNmn1EOrhVudrDzXz4OycCRSCPwFCDrE2iIt5vmuUdHxuQ==",
+            "version": "8.31.1",
+            "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.31.1.tgz",
+            "integrity": "sha512-I+/rgqOVBn6f0o7NDTmAPWWC6NuqhV174lfYvAm9fUaWeiefLdux9/YI3/nLugEn9L8fcSi0XmpKi/r5u0nmpw==",
             "license": "MIT",
             "dependencies": {
-                "@typescript-eslint/types": "8.31.0",
+                "@typescript-eslint/types": "8.31.1",
                 "eslint-visitor-keys": "^4.2.0"
             },
             "engines": {
@@ -1597,14 +1597,14 @@
             }
         },
         "node_modules/typescript-eslint": {
-            "version": "8.31.0",
-            "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.31.0.tgz",
-            "integrity": "sha512-u+93F0sB0An8WEAPtwxVhFby573E8ckdjwUUQUj9QA4v8JAvgtoDdIyYR3XFwFHq2W1KJ1AurwJCO+w+Y1ixyQ==",
+            "version": "8.31.1",
+            "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.31.1.tgz",
+            "integrity": "sha512-j6DsEotD/fH39qKzXTQRwYYWlt7D+0HmfpOK+DVhwJOFLcdmn92hq3mBb7HlKJHbjjI/gTOqEcc9d6JfpFf/VA==",
             "license": "MIT",
             "dependencies": {
-                "@typescript-eslint/eslint-plugin": "8.31.0",
-                "@typescript-eslint/parser": "8.31.0",
-                "@typescript-eslint/utils": "8.31.0"
+                "@typescript-eslint/eslint-plugin": "8.31.1",
+                "@typescript-eslint/parser": "8.31.1",
+                "@typescript-eslint/utils": "8.31.1"
             },
             "engines": {
                 "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
diff --git a/modules/ags/config/package.json b/modules/ags/config/package.json
index 8232fcb5..26257798 100644
--- a/modules/ags/config/package.json
+++ b/modules/ags/config/package.json
@@ -10,6 +10,6 @@
         "eslint-plugin-jsdoc": "50.6.11",
         "fzf": "0.5.2",
         "jiti": "2.4.2",
-        "typescript-eslint": "8.31.0"
+        "typescript-eslint": "8.31.1"
     }
 }
diff --git a/modules/ags/hyprland.nix b/modules/ags/hyprland.nix
index 980a7a9d..42036677 100644
--- a/modules/ags/hyprland.nix
+++ b/modules/ags/hyprland.nix
@@ -185,13 +185,12 @@ in {
           }
         ];
 
-        # FIXME: https://github.com/hyprwm/Hyprland/discussions/10146
-        # bindn = map mkBind [
-        #   {
-        #     key = "Escape";
-        #     command = "ags request closeAll";
-        #   }
-        # ];
+        bindn = map mkBind [
+          {
+            key = "Escape";
+            command = "ags request closeAll";
+          }
+        ];
 
         bindr = map mkBind [
           {