From 7b2c16c78c5d720da2ee2a2cf1c40241513f67cc Mon Sep 17 00:00:00 2001
From: naskya <m@naskya.net>
Date: Fri, 24 May 2024 03:56:17 +0900
Subject: [PATCH 01/15] =?UTF-8?q?ci:=20fix=20paths=20=F0=9F=A5=B4?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .gitlab-ci.yml | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 085de02e97..23af4fbc9f 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -314,9 +314,10 @@ pages:
   services: []
   before_script: []
   script:
-    - mkdir -p public/backend_rs
-    - cp --recursive target/doc public/backend-rs/doc
-    - printf '<meta http-equiv="refresh" content="0; url=%s">' 'backend_rs' > public/backend-rs/doc/index.html
+    - rm --recursive --force public/backend-rs
+    - cp --recursive target/doc public
+    - mv public/doc public/backend-rs
+    - printf '<meta http-equiv="refresh" content="0; url=%s">' 'backend_rs' > public/backend-rs/index.html
   artifacts:
     paths:
       - public

From dba30250238c9d6d80dd24260e5919f5fa15ac54 Mon Sep 17 00:00:00 2001
From: naskya <m@naskya.net>
Date: Fri, 24 May 2024 03:59:09 +0900
Subject: [PATCH 02/15] ci: remove job dependency for cargo:doc

---
 .gitlab-ci.yml | 3 ---
 1 file changed, 3 deletions(-)

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 23af4fbc9f..5f7d4fb1a7 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -264,9 +264,6 @@ cargo:clippy:
 
 cargo:doc:
   stage: doc
-  needs:
-    - cargo:test
-    - test:build
   rules:
     - if: $DOC == 'true'
       when: always

From 1b529f65487510b75a66374b89b259972558c6d5 Mon Sep 17 00:00:00 2001
From: naskya <m@naskya.net>
Date: Fri, 24 May 2024 04:03:24 +0900
Subject: [PATCH 03/15] ci: fix command options

I didn't know that BusyBox's commands don't have verbose flags
---
 .gitlab-ci.yml | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 5f7d4fb1a7..ef960036a8 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -311,8 +311,8 @@ pages:
   services: []
   before_script: []
   script:
-    - rm --recursive --force public/backend-rs
-    - cp --recursive target/doc public
+    - rm -r -f public/backend-rs
+    - cp -r target/doc public
     - mv public/doc public/backend-rs
     - printf '<meta http-equiv="refresh" content="0; url=%s">' 'backend_rs' > public/backend-rs/index.html
   artifacts:

From d0a96b6e7b0115b21da56cefb6f271e180d34745 Mon Sep 17 00:00:00 2001
From: naskya <m@naskya.net>
Date: Fri, 24 May 2024 04:10:54 +0900
Subject: [PATCH 04/15] ci: fix paths again

---
 .gitlab-ci.yml | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index ef960036a8..59b82dcfa9 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -311,8 +311,9 @@ pages:
   services: []
   before_script: []
   script:
-    - rm -r -f public/backend-rs
-    - cp -r target/doc public
+    - mkdir -p public
+    - rm -rf public/backend-rs
+    - cp -r target/doc public/doc
     - mv public/doc public/backend-rs
     - printf '<meta http-equiv="refresh" content="0; url=%s">' 'backend_rs' > public/backend-rs/index.html
   artifacts:

From 9567f63b150462619cc39a153b86043b75340507 Mon Sep 17 00:00:00 2001
From: CI <project_7_bot_1bfaee5701aed20091a86249a967a6c1@noreply.firefish.dev>
Date: Thu, 23 May 2024 20:05:18 +0000
Subject: [PATCH 05/15] fix(deps): update dependency @redocly/openapi-core to
 v1.13.0

---
 packages/backend/package.json |  2 +-
 pnpm-lock.yaml                | 10 +++++-----
 2 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/packages/backend/package.json b/packages/backend/package.json
index da536fc3ed..c7b809acbc 100644
--- a/packages/backend/package.json
+++ b/packages/backend/package.json
@@ -31,7 +31,7 @@
 		"@koa/router": "12.0.1",
 		"@ladjs/koa-views": "9.0.0",
 		"@peertube/http-signature": "1.7.0",
-		"@redocly/openapi-core": "1.12.2",
+		"@redocly/openapi-core": "1.13.0",
 		"@sinonjs/fake-timers": "11.2.2",
 		"adm-zip": "0.5.10",
 		"ajv": "8.13.0",
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index d6c44af97d..17221d60d5 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -70,8 +70,8 @@ importers:
         specifier: 1.7.0
         version: 1.7.0
       '@redocly/openapi-core':
-        specifier: 1.12.2
-        version: 1.12.2
+        specifier: 1.13.0
+        version: 1.13.0
       '@sinonjs/fake-timers':
         specifier: 11.2.2
         version: 11.2.2
@@ -2007,8 +2007,8 @@ packages:
   '@redocly/config@0.5.0':
     resolution: {integrity: sha512-oA1ezWPT2tSV9CLk0FtZlViaFKtp+id3iAVeKBme1DdP4xUCdxEdP8umB21iLKdc6leRd5uGa+T5Ox4nHBAXWg==}
 
-  '@redocly/openapi-core@1.12.2':
-    resolution: {integrity: sha512-dImBZaKws54a4/QdoAVsLDm4/gfVnzAVD68pSGFPMTLNM2AZINvevfUfOrbUNTXwHvG2UJkthUxDGQZLsp3Vaw==}
+  '@redocly/openapi-core@1.13.0':
+    resolution: {integrity: sha512-lPvVE4+QjWMXCEIui994pYBZGqvEsodaCJPCJLkx6RK3OL/6Ss8wN17YTDmF49tzw3xgA8t4+x7TqelUSRcZUQ==}
     engines: {node: '>=14.19.0', npm: '>=7.0.0'}
 
   '@rollup/plugin-alias@5.1.0':
@@ -9282,7 +9282,7 @@ snapshots:
 
   '@redocly/config@0.5.0': {}
 
-  '@redocly/openapi-core@1.12.2':
+  '@redocly/openapi-core@1.13.0':
     dependencies:
       '@redocly/ajv': 8.11.0
       '@redocly/config': 0.5.0

From 2bee0f374513b5ec43b1f77dd58a16036c180bcb Mon Sep 17 00:00:00 2001
From: CI <project_7_bot_1bfaee5701aed20091a86249a967a6c1@noreply.firefish.dev>
Date: Thu, 23 May 2024 20:05:40 +0000
Subject: [PATCH 06/15] fix(deps): update dependency aws-sdk to v2.1627.0

---
 packages/backend/package.json |  2 +-
 pnpm-lock.yaml                | 10 +++++-----
 2 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/packages/backend/package.json b/packages/backend/package.json
index da536fc3ed..02c38e5ba6 100644
--- a/packages/backend/package.json
+++ b/packages/backend/package.json
@@ -36,7 +36,7 @@
 		"adm-zip": "0.5.10",
 		"ajv": "8.13.0",
 		"archiver": "7.0.1",
-		"aws-sdk": "2.1626.0",
+		"aws-sdk": "2.1627.0",
 		"axios": "1.7.2",
 		"backend-rs": "workspace:*",
 		"blurhash": "2.0.5",
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index d6c44af97d..4fd95e081f 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -85,8 +85,8 @@ importers:
         specifier: 7.0.1
         version: 7.0.1
       aws-sdk:
-        specifier: 2.1626.0
-        version: 2.1626.0
+        specifier: 2.1627.0
+        version: 2.1627.0
       axios:
         specifier: 1.7.2
         version: 1.7.2
@@ -3030,8 +3030,8 @@ packages:
     resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==}
     engines: {node: '>= 0.4'}
 
-  aws-sdk@2.1626.0:
-    resolution: {integrity: sha512-auPVi0ZwmWioHcXK7A6RReNVk9y4GmvT5gPQvq5ictss/Cl/Yb9vjy/6DrZ2wUjSVAE16z5IVyE6G4Zsdhr+JQ==}
+  aws-sdk@2.1627.0:
+    resolution: {integrity: sha512-jcgGkGc4zZ8VZymw8RzD9BrnxHjmV7Lb1fc7Kw9Hku67PKSSoEp/sMGagjOBjBU7saRcACRPBFR7dgUyIDHGNw==}
     engines: {node: '>= 10.0.0'}
 
   axios@0.24.0:
@@ -10475,7 +10475,7 @@ snapshots:
     dependencies:
       possible-typed-array-names: 1.0.0
 
-  aws-sdk@2.1626.0:
+  aws-sdk@2.1627.0:
     dependencies:
       buffer: 4.9.2
       events: 1.1.1

From 111d1c49f286a1f1ba21bf44e2aecabf44f4e401 Mon Sep 17 00:00:00 2001
From: naskya <m@naskya.net>
Date: Fri, 24 May 2024 08:20:57 +0900
Subject: [PATCH 07/15] ci: deploy the docs

---
 .gitlab-ci.yml | 39 +++++----------------------------------
 1 file changed, 5 insertions(+), 34 deletions(-)

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 59b82dcfa9..d1852ac9ca 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -280,45 +280,16 @@ cargo:doc:
       when: always
   services: []
   before_script:
-    - apt-get update && apt-get -y upgrade
-    - apt-get install -y --no-install-recommends build-essential clang mold
+    - apt-get update
+    - apt-get install -y --no-install-recommends build-essential clang mold nodejs npm
     - cp ci/cargo/config.toml /usr/local/cargo/config.toml
+    - npm install --global netlify-cli
   script:
     - cargo doc --no-deps
-  artifacts:
-    paths:
-      - target/doc
-
-pages:
-  stage: doc
-  needs:
-    - cargo:doc
-  rules:
-    - if: $DOC == 'true'
-      when: always
-    - if: $DOC == 'false'
-      when: never
-    - if: $CI_COMMIT_BRANCH == 'develop'
-      changes:
-        paths:
-          - packages/backend-rs/**/*
-          - packages/macro-rs/**/*
-          - Cargo.toml
-          - Cargo.lock
-          - package.json
-      when: always
-  image: docker.io/alpine:latest
-  services: []
-  before_script: []
-  script:
     - mkdir -p public
-    - rm -rf public/backend-rs
     - cp -r target/doc public/doc
-    - mv public/doc public/backend-rs
-    - printf '<meta http-equiv="refresh" content="0; url=%s">' 'backend_rs' > public/backend-rs/index.html
-  artifacts:
-    paths:
-      - public
+    - printf '<meta http-equiv="refresh" content="0; url=%s">' 'backend_rs' > public/doc/index.html
+    - netlify deploy --dir=public
 
 renovate:
   stage: dependency

From 327aec6d64ba8bf890d876e22c5416032d74b542 Mon Sep 17 00:00:00 2001
From: CI <project_7_bot_1bfaee5701aed20091a86249a967a6c1@noreply.firefish.dev>
Date: Fri, 24 May 2024 04:05:09 +0000
Subject: [PATCH 08/15] chore(deps): update rust crate syn to 2.0.66

---
 Cargo.lock | 56 +++++++++++++++++++++++++++---------------------------
 Cargo.toml |  2 +-
 2 files changed, 29 insertions(+), 29 deletions(-)

diff --git a/Cargo.lock b/Cargo.lock
index ec0d696b71..6720692cdf 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -103,7 +103,7 @@ checksum = "0ae92a5119aa49cdbcf6b9f893fe4e1d98b04ccbf82ee0584ad948a44a734dea"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.65",
+ "syn 2.0.66",
 ]
 
 [[package]]
@@ -154,7 +154,7 @@ checksum = "16e62a023e7c117e27523144c5d2459f4397fcc3cab0085af8e2224f643a0193"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.65",
+ "syn 2.0.66",
 ]
 
 [[package]]
@@ -165,7 +165,7 @@ checksum = "c6fa2087f2753a7da8cc1c0dbfcf89579dd57458e36769de5ac750b4671737ca"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.65",
+ "syn 2.0.66",
 ]
 
 [[package]]
@@ -430,7 +430,7 @@ dependencies = [
  "proc-macro-crate",
  "proc-macro2",
  "quote",
- "syn 2.0.65",
+ "syn 2.0.66",
  "syn_derive",
 ]
 
@@ -731,7 +731,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "edb49164822f3ee45b17acd4a208cfc1251410cf0cad9a833234c9890774dd9f"
 dependencies = [
  "quote",
- "syn 2.0.65",
+ "syn 2.0.66",
 ]
 
 [[package]]
@@ -1478,7 +1478,7 @@ checksum = "0122b7114117e64a63ac49f752a5ca4624d534c7b1c7de796ac196381cd2d947"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.65",
+ "syn 2.0.66",
 ]
 
 [[package]]
@@ -1507,7 +1507,7 @@ checksum = "c34819042dc3d3971c46c2190835914dfbe0c3c13f61449b2997f4e9722dfa60"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.65",
+ "syn 2.0.66",
 ]
 
 [[package]]
@@ -1747,7 +1747,7 @@ dependencies = [
  "quote",
  "serde",
  "serde_json",
- "syn 2.0.65",
+ "syn 2.0.66",
  "thiserror",
 ]
 
@@ -1842,7 +1842,7 @@ dependencies = [
  "napi-derive-backend",
  "proc-macro2",
  "quote",
- "syn 2.0.65",
+ "syn 2.0.66",
 ]
 
 [[package]]
@@ -1857,7 +1857,7 @@ dependencies = [
  "quote",
  "regex",
  "semver",
- "syn 2.0.65",
+ "syn 2.0.66",
 ]
 
 [[package]]
@@ -1985,7 +1985,7 @@ checksum = "ed3955f1a9c7c0c15e092f9c887db08b1fc683305fdf6eb6684f22555355e202"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.65",
+ "syn 2.0.66",
 ]
 
 [[package]]
@@ -2077,7 +2077,7 @@ checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.65",
+ "syn 2.0.66",
 ]
 
 [[package]]
@@ -2138,7 +2138,7 @@ dependencies = [
  "proc-macro-error",
  "proc-macro2",
  "quote",
- "syn 2.0.65",
+ "syn 2.0.66",
 ]
 
 [[package]]
@@ -2296,7 +2296,7 @@ checksum = "2f38a4412a78282e09a2cf38d195ea5420d15ba0602cb375210efbc877243965"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.65",
+ "syn 2.0.66",
 ]
 
 [[package]]
@@ -2478,7 +2478,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "8021cf59c8ec9c432cfc2526ac6b8aa508ecaf29cd415f271b8406c1b851c3fd"
 dependencies = [
  "quote",
- "syn 2.0.65",
+ "syn 2.0.66",
 ]
 
 [[package]]
@@ -2944,7 +2944,7 @@ dependencies = [
  "proc-macro-error",
  "proc-macro2",
  "quote",
- "syn 2.0.65",
+ "syn 2.0.66",
 ]
 
 [[package]]
@@ -2985,7 +2985,7 @@ dependencies = [
  "proc-macro2",
  "quote",
  "sea-bae",
- "syn 2.0.65",
+ "syn 2.0.66",
  "unicode-ident",
 ]
 
@@ -3076,7 +3076,7 @@ checksum = "6048858004bcff69094cd972ed40a32500f153bd3be9f716b2eed2e8217c4838"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.65",
+ "syn 2.0.66",
 ]
 
 [[package]]
@@ -3549,7 +3549,7 @@ dependencies = [
  "proc-macro2",
  "quote",
  "rustversion",
- "syn 2.0.65",
+ "syn 2.0.66",
 ]
 
 [[package]]
@@ -3571,9 +3571,9 @@ dependencies = [
 
 [[package]]
 name = "syn"
-version = "2.0.65"
+version = "2.0.66"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d2863d96a84c6439701d7a38f9de935ec562c8832cc55d1dde0f513b52fad106"
+checksum = "c42f3f41a2de00b01c0aaad383c5a45241efc8b2d1eda5661812fda5f3cdcff5"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -3589,7 +3589,7 @@ dependencies = [
  "proc-macro-error",
  "proc-macro2",
  "quote",
- "syn 2.0.65",
+ "syn 2.0.66",
 ]
 
 [[package]]
@@ -3673,7 +3673,7 @@ checksum = "46c3384250002a6d5af4d114f2845d37b57521033f30d5c3f46c4d70e1197533"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.65",
+ "syn 2.0.66",
 ]
 
 [[package]]
@@ -3770,7 +3770,7 @@ checksum = "5b8a1e28f2deaa14e508979454cb3a223b10b938b45af148bc0986de36f1923b"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.65",
+ "syn 2.0.66",
 ]
 
 [[package]]
@@ -3875,7 +3875,7 @@ checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.65",
+ "syn 2.0.66",
 ]
 
 [[package]]
@@ -4089,7 +4089,7 @@ dependencies = [
  "once_cell",
  "proc-macro2",
  "quote",
- "syn 2.0.65",
+ "syn 2.0.66",
  "wasm-bindgen-shared",
 ]
 
@@ -4111,7 +4111,7 @@ checksum = "e94f17b526d0a461a191c78ea52bbce64071ed5c04c9ffe424dcb38f74171bb7"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.65",
+ "syn 2.0.66",
  "wasm-bindgen-backend",
  "wasm-bindgen-shared",
 ]
@@ -4395,7 +4395,7 @@ checksum = "15e934569e47891f7d9411f1a451d947a60e000ab3bd24fbb970f000387d1b3b"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.65",
+ "syn 2.0.66",
 ]
 
 [[package]]
diff --git a/Cargo.toml b/Cargo.toml
index fdf50085aa..11416bad83 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -36,7 +36,7 @@ serde = "1.0.202"
 serde_json = "1.0.117"
 serde_yaml = "0.9.34"
 strum = "0.26.2"
-syn = "2.0.65"
+syn = "2.0.66"
 sysinfo = "0.30.12"
 thiserror = "1.0.61"
 tokio = "1.37.0"

From 9cc3cf95e9027a370765b2d63c934bc5fb10a7ea Mon Sep 17 00:00:00 2001
From: CI <project_7_bot_1bfaee5701aed20091a86249a967a6c1@noreply.firefish.dev>
Date: Fri, 24 May 2024 12:05:56 +0000
Subject: [PATCH 09/15] fix(deps): update dependency bull to v4.12.9

---
 packages/backend/package.json |  2 +-
 pnpm-lock.yaml                | 10 +++++-----
 2 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/packages/backend/package.json b/packages/backend/package.json
index fb9dbbdda2..b242eecd8e 100644
--- a/packages/backend/package.json
+++ b/packages/backend/package.json
@@ -40,7 +40,7 @@
 		"axios": "1.7.2",
 		"backend-rs": "workspace:*",
 		"blurhash": "2.0.5",
-		"bull": "4.12.8",
+		"bull": "4.12.9",
 		"cacheable-lookup": "TheEssem/cacheable-lookup",
 		"cbor-x": "1.5.9",
 		"chalk": "5.3.0",
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index cdd92dab6a..06079f2092 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -97,8 +97,8 @@ importers:
         specifier: 2.0.5
         version: 2.0.5
       bull:
-        specifier: 4.12.8
-        version: 4.12.8
+        specifier: 4.12.9
+        version: 4.12.9
       cacheable-lookup:
         specifier: TheEssem/cacheable-lookup
         version: https://codeload.github.com/TheEssem/cacheable-lookup/tar.gz/dd2fb616366a3c68dcf321a57a67295967b204bf
@@ -3191,8 +3191,8 @@ packages:
   builtins@5.1.0:
     resolution: {integrity: sha512-SW9lzGTLvWTP1AY8xeAMZimqDrIaSdLQUcVr9DMef51niJ022Ri87SwRRKYm4A6iHfkPaiVUu/Duw2Wc4J7kKg==}
 
-  bull@4.12.8:
-    resolution: {integrity: sha512-JgZVAR3ChuesMWSJfQjgTyXb6kdT6qos3ft9pt0AASRMiRZIjDxHMtxfcOs2Zf8O9uSv0Y5ycYwv5Te3liGJ3A==}
+  bull@4.12.9:
+    resolution: {integrity: sha512-rqka/O9ZBfrKgI4fanhN6XW0AJ9WYRakjHlCJPjoHyh79xIvEjyU8hvs/CCeRdrbU6zSw8UNfDOjCUaQO1MTuQ==}
     engines: {node: '>=12'}
 
   busboy@1.6.0:
@@ -10698,7 +10698,7 @@ snapshots:
     dependencies:
       semver: 7.6.2
 
-  bull@4.12.8:
+  bull@4.12.9:
     dependencies:
       cron-parser: 4.9.0
       get-port: 5.1.1

From f81ad7ec0b04db5d691ef92739171c297ebcaf60 Mon Sep 17 00:00:00 2001
From: naskya <m@naskya.net>
Date: Fri, 24 May 2024 21:14:57 +0900
Subject: [PATCH 10/15] ci: fix cargo docs job

---
 .gitlab-ci.yml | 7 +++----
 1 file changed, 3 insertions(+), 4 deletions(-)

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index d1852ac9ca..caa859f926 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -286,10 +286,9 @@ cargo:doc:
     - npm install --global netlify-cli
   script:
     - cargo doc --no-deps
-    - mkdir -p public
-    - cp -r target/doc public/doc
-    - printf '<meta http-equiv="refresh" content="0; url=%s">' 'backend_rs' > public/doc/index.html
-    - netlify deploy --dir=public
+    - printf '<meta http-equiv="refresh" content="0; url=%s">' 'backend_rs' > target/doc/index.html
+    - cd target/doc
+    - netlify deploy --prod --site="${CARGO_DOC_SITE_ID}" --dir=.
 
 renovate:
   stage: dependency

From a7e5abf67d5549d941835785c538d30d58f0f204 Mon Sep 17 00:00:00 2001
From: naskya <m@naskya.net>
Date: Fri, 24 May 2024 21:43:38 +0900
Subject: [PATCH 11/15] ci: make sure backend build test doesn't fail when
 backend-rs build cache is not present

---
 .gitlab-ci.yml | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index caa859f926..28b9d38c55 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -83,7 +83,7 @@ test:build:
     - pnpm run migrate
     - psql --host postgres --user "${POSTGRES_USER}" --dbname "${POSTGRES_DB}" --command "$(cat docs/downgrade.sql)"
 
-test:build:backend_ts_only:
+test:build:backend_ts:
   stage: test
   rules:
     - if: $TEST == 'true'
@@ -112,12 +112,14 @@ test:build:backend_ts_only:
     - apt-get update && apt-get -y upgrade
     - apt-get -y --no-install-recommends install curl
     - curl -fsSL 'https://deb.nodesource.com/setup_18.x' | bash -
-    - apt-get install -y --no-install-recommends build-essential python3 nodejs postgresql-client
+    - apt-get install -y --no-install-recommends build-essential clang mold python3 perl nodejs postgresql-client
     - corepack enable
     - corepack prepare pnpm@latest --activate
     - mkdir -p packages/backend-rs/built
     - cp packages/backend-rs/index.js packages/backend-rs/built/index.js
     - cp packages/backend-rs/index.d.ts packages/backend-rs/built/index.d.ts
+    - cp ci/cargo/config.toml /usr/local/cargo/config.toml
+    - test -f packages/backend-rs/built/backend-rs.linux-x64-gnu.node || pnpm --filter 'backend-rs' run build:debug
     - cp .config/ci.yml .config/default.yml
     - export PGPASSWORD="${POSTGRES_PASSWORD}"
     - psql --host postgres --user "${POSTGRES_USER}" --dbname "${POSTGRES_DB}" --command 'CREATE EXTENSION pgroonga'
@@ -127,7 +129,7 @@ test:build:backend_ts_only:
     - pnpm run migrate
     - psql --host postgres --user "${POSTGRES_USER}" --dbname "${POSTGRES_DB}" --command "$(cat docs/downgrade.sql)"
 
-test:build:client_only:
+test:build:client:
   stage: test
   rules:
     - if: $TEST == 'true'

From 0e9d7f388a51a657325356d165f29df4a5e03a94 Mon Sep 17 00:00:00 2001
From: naskya <m@naskya.net>
Date: Fri, 24 May 2024 22:11:56 +0900
Subject: [PATCH 12/15] fix (backend-rs): don't check quoted post in antennas

---
 .../backend-rs/src/misc/get_note_all_texts.rs | 24 +++++++++++++++----
 .../backend-rs/src/misc/get_note_summary.rs   |  2 +-
 2 files changed, 20 insertions(+), 6 deletions(-)

diff --git a/packages/backend-rs/src/misc/get_note_all_texts.rs b/packages/backend-rs/src/misc/get_note_all_texts.rs
index 12afe6d679..13fed2c581 100644
--- a/packages/backend-rs/src/misc/get_note_all_texts.rs
+++ b/packages/backend-rs/src/misc/get_note_all_texts.rs
@@ -2,7 +2,7 @@ use crate::database::db_conn;
 use crate::model::entity::{drive_file, note};
 use sea_orm::{prelude::*, QuerySelect};
 
-/// TODO: handle name collisions better
+// TODO?: handle name collisions
 #[crate::export(object, js_name = "NoteLikeForAllTexts")]
 pub struct NoteLike {
     pub file_ids: Vec<String>,
@@ -13,14 +13,26 @@ pub struct NoteLike {
     pub reply_id: Option<String>,
 }
 
-pub async fn all_texts(note: NoteLike, include_in_reply_to: bool) -> Result<Vec<String>, DbErr> {
+/// Returns [Vec<String>] containing the post text, content warning,
+/// those of the "parent" (replied/quoted) posts, and alt texts of attached files.
+///
+/// ## Arguments
+///
+/// * `note` - [NoteLike] object
+/// * `include_parent` - whether to take the reply-to post and quoted post into account
+pub async fn all_texts(note: NoteLike, include_parent: bool) -> Result<Vec<String>, DbErr> {
     let db = db_conn().await?;
 
     let mut texts: Vec<String> = vec![];
+    let is_renote: bool;
 
     if let Some(text) = note.text {
+        is_renote = false;
         texts.push(text);
+    } else {
+        is_renote = true;
     }
+
     if let Some(cw) = note.cw {
         texts.push(cw);
     }
@@ -37,8 +49,10 @@ pub async fn all_texts(note: NoteLike, include_in_reply_to: bool) -> Result<Vec<
             .flatten(),
     );
 
-    if let Some(renote_id) = &note.renote_id {
-        if let Some((text, cw)) = note::Entity::find_by_id(renote_id)
+    if note.renote_id.is_some() && (include_parent || is_renote) {
+        let renote_id = note.renote_id.unwrap();
+
+        if let Some((text, cw)) = note::Entity::find_by_id(&renote_id)
             .select_only()
             .columns([note::Column::Text, note::Column::Cw])
             .into_tuple::<(Option<String>, Option<String>)>()
@@ -56,7 +70,7 @@ pub async fn all_texts(note: NoteLike, include_in_reply_to: bool) -> Result<Vec<
         }
     }
 
-    if include_in_reply_to && note.reply_id.is_some() {
+    if include_parent && note.reply_id.is_some() {
         if let Some((text, cw)) = note::Entity::find_by_id(note.reply_id.as_ref().unwrap())
             .select_only()
             .columns([note::Column::Text, note::Column::Cw])
diff --git a/packages/backend-rs/src/misc/get_note_summary.rs b/packages/backend-rs/src/misc/get_note_summary.rs
index 85e7b02b8e..64a0b52da2 100644
--- a/packages/backend-rs/src/misc/get_note_summary.rs
+++ b/packages/backend-rs/src/misc/get_note_summary.rs
@@ -1,6 +1,6 @@
 use serde::{Deserialize, Serialize};
 
-// TODO: handle name collisions in a better way
+// TODO?: handle name collisions
 #[derive(Debug, Deserialize, Serialize)]
 #[serde(rename_all = "camelCase")]
 #[crate::export(object, js_name = "NoteLikeForGetNoteSummary")]

From 35f30d989599cc37008923289ab104f38ff1f66e Mon Sep 17 00:00:00 2001
From: naskya <m@naskya.net>
Date: Fri, 24 May 2024 22:18:32 +0900
Subject: [PATCH 13/15] chore (backend-rs): make internal functions/modules
 private

---
 packages/backend-rs/src/service/antenna/process_new_note.rs | 2 +-
 packages/backend-rs/src/service/nodeinfo/mod.rs             | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/packages/backend-rs/src/service/antenna/process_new_note.rs b/packages/backend-rs/src/service/antenna/process_new_note.rs
index 683c22c506..ba9ba10d78 100644
--- a/packages/backend-rs/src/service/antenna/process_new_note.rs
+++ b/packages/backend-rs/src/service/antenna/process_new_note.rs
@@ -78,7 +78,7 @@ pub async fn update_antennas_on_new_note(
     Ok(())
 }
 
-pub async fn add_note_to_antenna(antenna_id: &str, note: &Note) -> Result<(), Error> {
+async fn add_note_to_antenna(antenna_id: &str, note: &Note) -> Result<(), Error> {
     // for timeline API
     redis_conn()
         .await?
diff --git a/packages/backend-rs/src/service/nodeinfo/mod.rs b/packages/backend-rs/src/service/nodeinfo/mod.rs
index e3511ba7e8..4d1eb1fa90 100644
--- a/packages/backend-rs/src/service/nodeinfo/mod.rs
+++ b/packages/backend-rs/src/service/nodeinfo/mod.rs
@@ -1,3 +1,3 @@
 pub mod fetch;
 pub mod generate;
-pub mod schema;
+mod schema;

From 589324cd6d0d4e60ab37cd37e39a40d17487cf24 Mon Sep 17 00:00:00 2001
From: naskya <m@naskya.net>
Date: Fri, 24 May 2024 22:20:40 +0900
Subject: [PATCH 14/15] chore (backend-rs): update comment

---
 packages/backend-rs/index.d.ts             | 11 +++++------
 packages/backend-rs/src/config/constant.rs |  6 +++---
 2 files changed, 8 insertions(+), 9 deletions(-)

diff --git a/packages/backend-rs/index.d.ts b/packages/backend-rs/index.d.ts
index e32025b151..31e8ef9174 100644
--- a/packages/backend-rs/index.d.ts
+++ b/packages/backend-rs/index.d.ts
@@ -13,9 +13,9 @@ export const USER_ACTIVE_THRESHOLD: number
  * List of file types allowed to be viewed directly in the browser
  * Anything not included here will be responded as application/octet-stream
  * SVG is not allowed because it generates XSS <- we need to fix this and later allow it to be viewed directly
- * https://github.com/sindresorhus/file-type/blob/main/supported.js
- * https://github.com/sindresorhus/file-type/blob/main/core.js
- * https://developer.mozilla.org/en-US/docs/Web/Media/Formats/Containers
+ * * <https://github.com/sindresorhus/file-type/blob/main/supported.js>
+ * * <https://github.com/sindresorhus/file-type/blob/main/core.js>
+ * * <https://developer.mozilla.org/en-US/docs/Web/Media/Formats/Containers>
  */
 export const FILE_TYPE_BROWSERSAFE: string[]
 export interface EnvConfig {
@@ -240,7 +240,6 @@ export interface ImageSize {
   height: number
 }
 export function getImageSizeFromUrl(url: string): Promise<ImageSize>
-/** TODO: handle name collisions better */
 export interface NoteLikeForAllTexts {
   fileIds: Array<string>
   userId: string
@@ -1175,7 +1174,7 @@ export function updateAntennasOnNewNote(note: Note, noteAuthor: Acct, noteMutedU
 export function fetchNodeinfo(host: string): Promise<Nodeinfo>
 export function nodeinfo_2_1(): Promise<any>
 export function nodeinfo_2_0(): Promise<any>
-/** NodeInfo schema version 2.0. https://nodeinfo.diaspora.software/docson/index.html#/ns/schema/2.0 */
+/** NodeInfo schema version 2.0. <https://nodeinfo.diaspora.software/docson/index.html#/ns/schema/2.0> */
 export interface Nodeinfo {
   /** The schema version, must be 2.0. */
   version: string
@@ -1324,7 +1323,7 @@ export function getTimestamp(id: string): number
  * With the length of 16, namely 8 for cuid2, roughly 1427399 IDs are needed
  * in the same millisecond to reach 50% chance of collision.
  *
- * Ref: https://github.com/paralleldrive/cuid2#parameterized-length
+ * Ref: <https://github.com/paralleldrive/cuid2#parameterized-length>
  */
 export function genId(): string
 /** Generate an ID using a specific datetime */
diff --git a/packages/backend-rs/src/config/constant.rs b/packages/backend-rs/src/config/constant.rs
index 7f71a230b5..e0e7c7459a 100644
--- a/packages/backend-rs/src/config/constant.rs
+++ b/packages/backend-rs/src/config/constant.rs
@@ -15,9 +15,9 @@ pub const USER_ACTIVE_THRESHOLD: i32 = 3 * DAY;
 /// List of file types allowed to be viewed directly in the browser
 /// Anything not included here will be responded as application/octet-stream
 /// SVG is not allowed because it generates XSS <- we need to fix this and later allow it to be viewed directly
-/// <https://github.com/sindresorhus/file-type/blob/main/supported.js>
-/// <https://github.com/sindresorhus/file-type/blob/main/core.js>
-/// <https://developer.mozilla.org/en-US/docs/Web/Media/Formats/Containers>
+/// * <https://github.com/sindresorhus/file-type/blob/main/supported.js>
+/// * <https://github.com/sindresorhus/file-type/blob/main/core.js>
+/// * <https://developer.mozilla.org/en-US/docs/Web/Media/Formats/Containers>
 #[crate::export]
 pub const FILE_TYPE_BROWSERSAFE: [&str; 41] = [
     // Images

From 293c1c65405ac6c00faf6438a83428cc778eb55e Mon Sep 17 00:00:00 2001
From: naskya <m@naskya.net>
Date: Fri, 24 May 2024 22:36:48 +0900
Subject: [PATCH 15/15] chore (backend-rs): some more comments

---
 packages/backend-rs/src/config/server.rs | 12 ++++++++++--
 1 file changed, 10 insertions(+), 2 deletions(-)

diff --git a/packages/backend-rs/src/config/server.rs b/packages/backend-rs/src/config/server.rs
index 838516af04..26babb4953 100644
--- a/packages/backend-rs/src/config/server.rs
+++ b/packages/backend-rs/src/config/server.rs
@@ -11,20 +11,27 @@ pub const VERSION: &str = macro_rs::read_version_from_package_json!();
 struct ServerConfig {
     pub url: String,
     pub port: u16,
-    /// host to listen on
+    /// the host address to bind to
     pub bind: Option<String>,
     pub disable_hsts: Option<bool>,
 
+    /// PostgreSQL configurations
     pub db: DbConfig,
+    /// Redis configurations
     pub redis: RedisConfig,
+    /// secondary Redis server configurations
     pub cache_server: Option<RedisConfig>,
 
+    /// proxy host used for HTTP requests
     pub proxy: Option<String>,
+    /// proxy host used for SMTP requests
     pub proxy_smtp: Option<String>,
+    /// hosts to bypass the proxy
     pub proxy_bypass_hosts: Option<Vec<String>>,
 
     pub allowed_private_networks: Option<Vec<String>>,
     // TODO: i64 -> u64 (NapiValue is not implemented for u64)
+    /// maximum file size that can be uploaded to the drive (in bytes)
     pub max_file_size: Option<i64>,
     pub access_log: Option<String>,
     pub cluster_limits: Option<WorkerConfigInternal>,
@@ -38,9 +45,10 @@ struct ServerConfig {
     pub deliver_job_max_attempts: Option<u32>,
     pub inbox_job_max_attempts: Option<u32>,
 
-    /// deprecated
+    /// deprecated in favor of `max_log_level`
     pub log_level: Option<Vec<String>>,
 
+    /// verbosity of the server log. `error`, `warn`, `info`, `debug`, or `trace`
     pub max_log_level: Option<String>,
 
     pub syslog: Option<SysLogConfig>,